Inserts a new event to a specified calendar.
This example inserts an event into the calender specified by ID = "support@chilkatcloud.com"
Returns the JSON of the event that was created.
IncludeFile "CkJsonObject.pb"
IncludeFile "CkStringBuilder.pb"
IncludeFile "CkRest.pb"
IncludeFile "CkOAuth2.pb"
Procedure ChilkatExample()
rest.i = CkRest::ckCreate()
If rest.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success.i
; Provide a previously obtained OAuth2 access token.
oauth2.i = CkOAuth2::ckCreate()
If oauth2.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkOAuth2::setCkAccessToken(oauth2, "OAUTH2_ACCESS_TOKEN")
CkRest::ckSetAuthOAuth2(rest,oauth2)
success = CkRest::ckConnect(rest,"www.googleapis.com",443,1,1)
If success <> 1
Debug CkRest::ckLastErrorText(rest)
CkRest::ckDispose(rest)
CkOAuth2::ckDispose(oauth2)
ProcedureReturn
EndIf
; The following code creates the JSON request body.
; The JSON created by this code is shown below.
jsonReq.i = CkJsonObject::ckCreate()
If jsonReq.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkJsonObject::ckUpdateString(jsonReq,"kind","calendar#event")
CkJsonObject::ckUpdateString(jsonReq,"status","confirmed")
CkJsonObject::ckUpdateString(jsonReq,"summary","QXQC")
CkJsonObject::ckUpdateString(jsonReq,"description","21st Annual QXQC Gathering")
CkJsonObject::ckUpdateString(jsonReq,"location","Quigley's Irish Pub, 43 E Jefferson Ave, Naperville, IL 60540, USA")
CkJsonObject::ckUpdateString(jsonReq,"start.dateTime","2017-12-09T20:00:00-06:00")
CkJsonObject::ckUpdateString(jsonReq,"end.dateTime","2017-12-09T23:00:00-06:00")
CkJsonObject::ckUpdateString(jsonReq,"attendees[0].email","dean@example.com")
CkJsonObject::ckUpdateString(jsonReq,"attendees[0].responseStatus","needsAction")
CkJsonObject::ckUpdateString(jsonReq,"attendees[1].email","support@chilkatcloud.com")
CkJsonObject::ckUpdateBool(jsonReq,"attendees[1].organizer",1)
CkJsonObject::ckUpdateBool(jsonReq,"attendees[1].self",1)
CkJsonObject::ckUpdateString(jsonReq,"attendees[1].responseStatus","accepted")
CkJsonObject::ckUpdateString(jsonReq,"attendees[2].email","ajay@example.com")
CkJsonObject::ckUpdateString(jsonReq,"attendees[2].responseStatus","needsAction")
CkJsonObject::ckUpdateString(jsonReq,"attendees[3].email","jim@example.com")
CkJsonObject::ckUpdateString(jsonReq,"attendees[3].responseStatus","needsAction")
CkJsonObject::ckUpdateString(jsonReq,"attendees[4].email","gilian@example.com")
CkJsonObject::ckUpdateString(jsonReq,"attendees[4].responseStatus","needsAction")
CkJsonObject::ckUpdateBool(jsonReq,"reminders.useDefault",1)
sbReq.i = CkStringBuilder::ckCreate()
If sbReq.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkJsonObject::ckEmitSb(jsonReq,sbReq)
CkRest::ckAddHeader(rest,"Content-Type","application/json")
sbJson.i = CkStringBuilder::ckCreate()
If sbJson.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkRest::ckFullRequestSb(rest,"POST","/calendar/v3/calendars/support@chilkatcloud.com/events",sbReq,sbJson)
If success <> 1
Debug CkRest::ckLastErrorText(rest)
CkRest::ckDispose(rest)
CkOAuth2::ckDispose(oauth2)
CkJsonObject::ckDispose(jsonReq)
CkStringBuilder::ckDispose(sbReq)
CkStringBuilder::ckDispose(sbJson)
ProcedureReturn
EndIf
If CkRest::ckResponseStatusCode(rest) <> 200
Debug "Received error response code: " + Str(CkRest::ckResponseStatusCode(rest))
Debug "Response body:"
Debug CkStringBuilder::ckGetAsString(sbJson)
CkRest::ckDispose(rest)
CkOAuth2::ckDispose(oauth2)
CkJsonObject::ckDispose(jsonReq)
CkStringBuilder::ckDispose(sbReq)
CkStringBuilder::ckDispose(sbJson)
ProcedureReturn
EndIf
json.i = CkJsonObject::ckCreate()
If json.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkJsonObject::ckLoadSb(json,sbJson)
; The following code parses the JSON response.
; A sample JSON response is shown below the sample code.
kind.s
etag.s
id.s
status.s
htmlLink.s
created.s
updated.s
summary.s
description.s
location.s
creatorEmail.s
creatorSelf.i
organizerEmail.s
organizerSelf.i
startDateTime.s
endDateTime.s
iCalUID.s
sequence.i
hangoutLink.s
remindersUseDefault.i
i.i
count_i.i
email.s
responseStatus.s
organizer.i
self.i
kind = CkJsonObject::ckStringOf(json,"kind")
etag = CkJsonObject::ckStringOf(json,"etag")
id = CkJsonObject::ckStringOf(json,"id")
status = CkJsonObject::ckStringOf(json,"status")
htmlLink = CkJsonObject::ckStringOf(json,"htmlLink")
created = CkJsonObject::ckStringOf(json,"created")
updated = CkJsonObject::ckStringOf(json,"updated")
summary = CkJsonObject::ckStringOf(json,"summary")
description = CkJsonObject::ckStringOf(json,"description")
location = CkJsonObject::ckStringOf(json,"location")
creatorEmail = CkJsonObject::ckStringOf(json,"creator.email")
creatorSelf = CkJsonObject::ckBoolOf(json,"creator.self")
organizerEmail = CkJsonObject::ckStringOf(json,"organizer.email")
organizerSelf = CkJsonObject::ckBoolOf(json,"organizer.self")
startDateTime = CkJsonObject::ckStringOf(json,"start.dateTime")
endDateTime = CkJsonObject::ckStringOf(json,"end.dateTime")
iCalUID = CkJsonObject::ckStringOf(json,"iCalUID")
sequence = CkJsonObject::ckIntOf(json,"sequence")
hangoutLink = CkJsonObject::ckStringOf(json,"hangoutLink")
remindersUseDefault = CkJsonObject::ckBoolOf(json,"reminders.useDefault")
i = 0
count_i = CkJsonObject::ckSizeOfArray(json,"attendees")
While i < count_i
CkJsonObject::setCkI(json, i)
email = CkJsonObject::ckStringOf(json,"attendees[i].email")
responseStatus = CkJsonObject::ckStringOf(json,"attendees[i].responseStatus")
organizer = CkJsonObject::ckBoolOf(json,"attendees[i].organizer")
self = CkJsonObject::ckBoolOf(json,"attendees[i].self")
i = i + 1
Wend
Debug "Example Completed."
CkRest::ckDispose(rest)
CkOAuth2::ckDispose(oauth2)
CkJsonObject::ckDispose(jsonReq)
CkStringBuilder::ckDispose(sbReq)
CkStringBuilder::ckDispose(sbJson)
CkJsonObject::ckDispose(json)
ProcedureReturn
EndProcedure
{
"kind": "calendar#event",
"status": "confirmed",
"summary": "QXQC",
"description": "21st Annual QXQC Gathering",
"location": "Quigley's Irish Pub, 43 E Jefferson Ave, Naperville, IL 60540, USA",
"start": {
"dateTime": "2017-12-09T20:00:00-06:00"
},
"end": {
"dateTime": "2017-12-09T23:00:00-06:00"
},
"attendees": [
{
"email": "dean@example.com",
"responseStatus": "needsAction"
},
{
"email": "support@chilkatcloud.com",
"organizer": true,
"self": true,
"responseStatus": "accepted"
},
{
"email": "ajay@example.com",
"responseStatus": "needsAction"
},
{
"email": "jim@example.com",
"responseStatus": "needsAction"
},
{
"email": "gilian@example.com",
"responseStatus": "needsAction"
}
],
"reminders": {
"useDefault": true
}
}
{
"kind": "calendar#event",
"etag": "\"3020332888490000\"",
"id": "oqel9ijr6rgfgqg12b0qtlhfjs",
"status": "confirmed",
"htmlLink": "https://www.google.com/calendar/event?eid=b3FlbDlpanI2cmdmZ3FnMTJiMHF0bGhmanMgc3VwcG9ydEBjaGlsa2F0Y2xvdWQuY29t",
"created": "2017-11-08T18:40:44.000Z",
"updated": "2017-11-08T18:40:44.245Z",
"summary": "QXQC",
"description": "21st Annual QXQC Gathering",
"location": "Quigley's Irish Pub, 43 E Jefferson Ave, Naperville, IL 60540, USA",
"creator": {
"email": "support@chilkatcloud.com",
"self": true
},
"organizer": {
"email": "support@chilkatcloud.com",
"self": true
},
"start": {
"dateTime": "2017-12-09T20:00:00-06:00"
},
"end": {
"dateTime": "2017-12-09T23:00:00-06:00"
},
"iCalUID": "oqel9ijr6rgfgqg12b0qtlhfjs@google.com",
"sequence": 0,
"attendees": [
{
"email": "dean@example.com",
"responseStatus": "needsAction"
},
{
"email": "support@chilkatcloud.com",
"organizer": true,
"self": true,
"responseStatus": "accepted"
},
{
"email": "ajay@example.com",
"responseStatus": "needsAction"
},
{
"email": "jim@example.com",
"responseStatus": "needsAction"
},
{
"email": "gilian@example.com",
"responseStatus": "needsAction"
}
],
"hangoutLink": "https://plus.google.com/hangouts/_/chilkatcloud.com/qxqc?hceid=c3VwcG9ydEBjaGlsa2F0Y2xvdWQuY29t.oqel9ijr6rgfgqg12b0qtlhfjs",
"reminders": {
"useDefault": true
}
}