Moves an event to another calendar, i.e. changes an event's organizer.
This example moves event ID="35ocdnnjofbtfs6c602uqvdg9u" from the calendar (ID = "support@chilkatcloud.com") to the calendar (ID = "chilkatcloud.com_su2u8trmo6rlq2jh6cr9hb032o@group.calendar.google.com")
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
CkRest::ckAddQueryParam(rest,"destination","chilkatcloud.com_su2u8trmo6rlq2jh6cr9hb032o@group.calendar.google.com")
sbReq.i = CkStringBuilder::ckCreate()
If sbReq.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
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/35ocdnnjofbtfs6c602uqvdg9u/move",sbReq,sbJson)
If success <> 1
Debug CkRest::ckLastErrorText(rest)
CkRest::ckDispose(rest)
CkOAuth2::ckDispose(oauth2)
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)
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
organizerDisplayName.s
startDateTime.s
endDateTime.s
iCalUID.s
sequence.i
hangoutLink.s
remindersUseDefault.i
i.i
count_i.i
email.s
responseStatus.s
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")
organizerDisplayName = CkJsonObject::ckStringOf(json,"organizer.displayName")
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")
self = CkJsonObject::ckBoolOf(json,"attendees[i].self")
i = i + 1
Wend
Debug "Example Completed."
CkRest::ckDispose(rest)
CkOAuth2::ckDispose(oauth2)
CkStringBuilder::ckDispose(sbReq)
CkStringBuilder::ckDispose(sbJson)
CkJsonObject::ckDispose(json)
ProcedureReturn
EndProcedure
{
"kind": "calendar#event",
"etag": "\"3020341523602000\"",
"id": "35ocdnnjofbtfs6c602uqvdg9u",
"status": "confirmed",
"htmlLink": "https://www.google.com/calendar/event?eid=MzVvY2RubmpvZmJ0ZnM2YzYwMnVxdmRnOXUgc3VwcG9ydEBjaGlsa2F0Y2xvdWQuY29t",
"created": "2017-11-08T18:25:38.000Z",
"updated": "2017-11-08T19:52:41.801Z",
"summary": "QXQC",
"description": "20th 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": "chilkatcloud.com_su2u8trmo6rlq2jh6cr9hb032o@group.calendar.google.com",
"displayName": "Party Calendar"
},
"start": {
"dateTime": "2017-11-09T20:00:00-06:00"
},
"end": {
"dateTime": "2017-11-09T23:00:00-06:00"
},
"iCalUID": "35ocdnnjofbtfs6c602uqvdg9u@google.com",
"sequence": 0,
"attendees": [
{
"email": "dean@example.com",
"responseStatus": "needsAction"
},
{
"email": "support@chilkatcloud.com",
"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/support?hceid=c3VwcG9ydEBjaGlsa2F0Y2xvdWQuY29t.35ocdnnjofbtfs6c602uqvdg9u",
"reminders": {
"useDefault": true
}
}