Sample code for 30+ languages & platforms
B4X

List Google Calendars

See more Google Calendar Examples

Demonstrates how to list the Google Calendars for an account.

Chilkat B4X Downloads

B4X
Dim success As Boolean = False

'  This example requires the Chilkat API to have been previously unlocked.
'  See Global Unlock Sample for sample code.

'  This example uses a previously obtained access token having permission for the 
'  Google Calendar scope.

'  In this example, Get Google Calendar OAuth2 Access Token, the access
'  token was saved to a JSON file.  This example fetches the access token from the file..
Dim jsonToken As ChilkatJsonObject
jsonToken.Initialize
success = jsonToken.LoadFile("qa_data/tokens/googleCalendar.json")
If jsonToken.HasMember("access_token") = False Then
    Log("No access token found.")
    Return
End If

Dim http As ChilkatHttp
http.Initialize("http")
http.AuthToken = jsonToken.StringOf("access_token")

Dim jsonResponse As String = http.QuickGetStr("https://www.googleapis.com/calendar/v3/users/me/calendarList")
If http.LastMethodSuccess <> True Then
    Log(http.LastErrorText)
    Return
End If


Log(jsonResponse)
Log("-----------------------------")

'  This is a sample JSON response:
'  (Sample code to iterate over the JSON response is shown below.)

'  {
'   "kind": "calendar#calendarList",
'   "etag": "\"p32cfpufit76da0g\"",
'   "nextSyncToken": "CJj8-fLpzNUCEhhzdXBwb3J0QGNoaWxrYXRjbG91ZC5jb20=",
'   "items": [
'    {
'     "kind": "calendar#calendarListEntry",
'     "etag": "\"1465249947472000\"",
'     "id": "support@chilkatcloud.com",
'     "summary": "support@chilkatcloud.com",
'     "timeZone": "America/Chicago",
'     "colorId": "14",
'     "backgroundColor": "#9fe1e7",
'     "foregroundColor": "#000000",
'     "selected": true,
'     "accessRole": "owner",
'     "defaultReminders": [
'      {
'       "method": "popup",
'       "minutes": 10
'      }
'     ],
'     "notificationSettings": {
'      "notifications": [
'       {
'        "type": "eventCreation",
'        "method": "email"
'       },
'       {
'        "type": "eventChange",
'        "method": "email"
'       },
'       {
'        "type": "eventCancellation",
'        "method": "email"
'       },
'       {
'        "type": "eventResponse",
'        "method": "email"
'       }
'      ]
'     },
'     "primary": true
'    },
'    {
'     "kind": "calendar#calendarListEntry",
'     "etag": "\"1502373382732000\"",
'     "id": "#contacts@group.v.calendar.google.com",
'     "summary": "Contacts",
'     "timeZone": "America/Chicago",
'     "colorId": "13",
'     "backgroundColor": "#92e1c0",
'     "foregroundColor": "#000000",
'     "selected": true,
'     "accessRole": "reader",
'     "defaultReminders": []
'    },
'    {
'     "kind": "calendar#calendarListEntry",
'     "etag": "\"1502373376447000\"",
'     "id": "en.usa#holiday@group.v.calendar.google.com",
'     "summary": "Holidays in United States",
'     "timeZone": "America/Chicago",
'     "colorId": "8",
'     "backgroundColor": "#16a765",
'     "foregroundColor": "#000000",
'     "selected": true,
'     "accessRole": "reader",
'     "defaultReminders": []
'    }
'   ]
'  }
'  

'  Iterate over the JSON response..
Dim json As ChilkatJsonObject
json.Initialize
json.Load(jsonResponse)

Dim numCalendars As Int = json.SizeOfArray("items")
Dim i As Int = 0
Do While i < numCalendars
    Log("--- " & i & " ---")
    json.I = i
    Log("kind: " & json.StringOf("items[i].kind"))
    Log("id: " & json.StringOf("items[i].id"))

    '  Examine the notification settings, if any..
    Dim numSettings As Int = json.SizeOfArray("items[i].notificationSettings.notifications")
    If numSettings > 0 Then
        Dim j As Int = 0
        Do While j < numSettings
            json.J = j
            Log("Notification Type: " & json.StringOf("items[i].notificationSettings.notifications[j].type"))
            Log("Notification Method: " & json.StringOf("items[i].notificationSettings.notifications[j].method"))
            j = j + 1
        Loop
    End If

    i = i + 1
Loop