Sample code for 30+ languages & platforms
Xbase++

Get a Google Calendar

See more Google Calendar Examples

Demonstrates how to get a particular Google Calendar. The calendar can be referenced by the calendar ID, or by the keyword "primary".

Chilkat Xbase++ Downloads

Xbase++
LOCAL nSuccess
LOCAL oJsonToken
LOCAL oHttp
LOCAL cJsonResponse
LOCAL oJson
LOCAL nNumSettings
LOCAL i

nSuccess := 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..
oJsonToken := CreateObject("Chilkat.JsonObject")
nSuccess := oJsonToken:LoadFile("qa_data/tokens/googleCalendar.json")
IF (oJsonToken:HasMember("access_token") == 0)
    ? "No access token found."
    oJsonToken:destroy()
    RETURN
ENDIF

oHttp := CreateObject("Chilkat.Http")
oHttp:AuthToken := oJsonToken:StringOf("access_token")

//  Let's get the primary calendar.
cJsonResponse := oHttp:QuickGetStr("https://www.googleapis.com/calendar/v3/users/me/calendarList/primary")
IF (oHttp:LastMethodSuccess != 1)
    ? oHttp:LastErrorText
    oJsonToken:destroy()
    oHttp:destroy()
    RETURN
ENDIF

? cJsonResponse

//  A sample response is:

//  {
//   "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
//  }

//  It can be parsed like this:
oJson := CreateObject("Chilkat.JsonObject")
oJson:Load(cJsonResponse)

? "kind: " + oJson:StringOf("kind")
? "id: " + oJson:StringOf("id")

//  Examine the notification settings, if any..
nNumSettings := oJson:SizeOfArray("notificationSettings.notifications")
IF (nNumSettings > 0)
    i := 0
    DO WHILE i < nNumSettings
        oJson:I := i
        ? "Notification Type: " + oJson:StringOf("notificationSettings.notifications[i].type")
        ? "Notification Method: " + oJson:StringOf("notificationSettings.notifications[i].method")
        i := i + 1
    ENDDO
ENDIF

oJsonToken:destroy()
oHttp:destroy()
oJson:destroy()