Xojo Plugin Google Calendar: Move Event to Another Calendar

Back to Index

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")

Documentation: https://developers.google.com/google-apps/calendar/v3/reference/events/move


Dim rest As New Chilkat.Rest
Dim success As Boolean

//   Provide a previously obtained OAuth2 access token.
Dim oauth2 As New Chilkat.OAuth2
oauth2.AccessToken = "OAUTH2_ACCESS_TOKEN"
rest.SetAuthOAuth2(oauth2)

success = rest.Connect("www.googleapis.com",443,True,True)
If (success <> True) Then
    System.DebugLog(rest.LastErrorText)
    Return
End If

rest.AddQueryParam("destination","chilkatcloud.com_su2u8trmo6rlq2jh6cr9hb032o@group.calendar.google.com")

Dim sbReq As New Chilkat.StringBuilder

Dim sbJson As New Chilkat.StringBuilder
success = rest.FullRequestSb("POST","/calendar/v3/calendars/support@chilkatcloud.com/events/35ocdnnjofbtfs6c602uqvdg9u/move",sbReq,sbJson)
If (success <> True) Then
    System.DebugLog(rest.LastErrorText)
    Return
End If

If (rest.ResponseStatusCode <> 200) Then
    System.DebugLog("Received error response code: " + Str(rest.ResponseStatusCode))
    System.DebugLog("Response body:")
    System.DebugLog(sbJson.GetAsString())
    Return
End If

Dim json As New Chilkat.JsonObject
json.LoadSb(sbJson)

//  The following code parses the JSON response.
//  A sample JSON response is shown below the sample code.
Dim kind As String
Dim etag As String
Dim id As String
Dim status As String
Dim htmlLink As String
Dim created As String
Dim updated As String
Dim summary As String
Dim description As String
Dim location As String
Dim creatorEmail As String
Dim creatorSelf As Boolean
Dim organizerEmail As String
Dim organizerDisplayName As String
Dim startDateTime As String
Dim endDateTime As String
Dim iCalUID As String
Dim sequence As Int32
Dim hangoutLink As String
Dim remindersUseDefault As Boolean
Dim i As Int32
Dim count_i As Int32
Dim email As String
Dim responseStatus As String
Dim self As Boolean

kind = json.StringOf("kind")
etag = json.StringOf("etag")
id = json.StringOf("id")
status = json.StringOf("status")
htmlLink = json.StringOf("htmlLink")
created = json.StringOf("created")
updated = json.StringOf("updated")
summary = json.StringOf("summary")
description = json.StringOf("description")
location = json.StringOf("location")
creatorEmail = json.StringOf("creator.email")
creatorSelf = json.BoolOf("creator.self")
organizerEmail = json.StringOf("organizer.email")
organizerDisplayName = json.StringOf("organizer.displayName")
startDateTime = json.StringOf("start.dateTime")
endDateTime = json.StringOf("end.dateTime")
iCalUID = json.StringOf("iCalUID")
sequence = json.IntOf("sequence")
hangoutLink = json.StringOf("hangoutLink")
remindersUseDefault = json.BoolOf("reminders.useDefault")
i = 0
count_i = json.SizeOfArray("attendees")
While i < count_i
    json.I = i
    email = json.StringOf("attendees[i].email")
    responseStatus = json.StringOf("attendees[i].responseStatus")
    self = json.BoolOf("attendees[i].self")
    i = i + 1
Wend

System.DebugLog("Example Completed.")

Sample JSON Response Body

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