Sample code for 30+ languages & platforms
Classic ASP

List Google Calendars

See more Google Calendar Examples

Demonstrates how to list the Google Calendars for an account.

Chilkat Classic ASP Downloads

Classic ASP
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<%
success = 0

' 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..
set jsonToken = Server.CreateObject("Chilkat.JsonObject")
success = jsonToken.LoadFile("qa_data/tokens/googleCalendar.json")
If (jsonToken.HasMember("access_token") = 0) Then
    Response.Write "<pre>" & Server.HTMLEncode( "No access token found.") & "</pre>"
    Response.End
End If

set http = Server.CreateObject("Chilkat.Http")
http.AuthToken = jsonToken.StringOf("access_token")

jsonResponse = http.QuickGetStr("https://www.googleapis.com/calendar/v3/users/me/calendarList")
If (http.LastMethodSuccess <> 1) Then
    Response.Write "<pre>" & Server.HTMLEncode( http.LastErrorText) & "</pre>"
    Response.End
End If

Response.Write "<pre>" & Server.HTMLEncode( jsonResponse) & "</pre>"
Response.Write "<pre>" & Server.HTMLEncode( "-----------------------------") & "</pre>"

' 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..
set json = Server.CreateObject("Chilkat.JsonObject")
success = json.Load(jsonResponse)

numCalendars = json.SizeOfArray("items")
i = 0
Do While i < numCalendars
    Response.Write "<pre>" & Server.HTMLEncode( "--- " & i & " ---") & "</pre>"
    json.I = i
    Response.Write "<pre>" & Server.HTMLEncode( "kind: " & json.StringOf("items[i].kind")) & "</pre>"
    Response.Write "<pre>" & Server.HTMLEncode( "id: " & json.StringOf("items[i].id")) & "</pre>"

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

    i = i + 1
Loop

%>
</body>
</html>