Sample code for 30+ languages & platforms
VB.NET

List Google Calendars

See more Google Calendar Examples

Demonstrates how to list the Google Calendars for an account.

Chilkat VB.NET Downloads

VB.NET
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 New Chilkat.JsonObject
success = jsonToken.LoadFile("qa_data/tokens/googleCalendar.json")
If (jsonToken.HasMember("access_token") = False) Then
    Debug.WriteLine("No access token found.")
    Exit Sub
End If

Dim http As New Chilkat.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
    Debug.WriteLine(http.LastErrorText)
    Exit Sub
End If


Debug.WriteLine(jsonResponse)
Debug.WriteLine("-----------------------------")

' 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 New Chilkat.JsonObject
json.Load(jsonResponse)

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

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

    i = i + 1
End While