Sample code for 30+ languages & platforms
Swift

Google Calendar -- Generate Event JSON

See more Google Calendar Examples

Demonstrates how to generate the JSON for an event resource. This code can be used as a template for generating JSON to insert new events.

See https://developers.google.com/google-apps/calendar/v3/reference/events#resource for details about the Calender Event Resource JSON.

Chilkat Swift Downloads

Swift

func chilkatTest() {
    // This example (below) generates the following JSON:
    // Note: Your application code would construct the event JSON using your
    // desired subset of members.  For boolean values, you would pass true or false.
    // For date or date/time values, you would pass the appropriately formatted date/time string.

    // {
    //   "kind": "calendar#event",
    //   "etag": "some_etag",
    //   "id": "string value",
    //   "status": "string value",
    //   "htmlLink": "string value",
    //   "created": "datetime value",
    //   "updated": "datetime value",
    //   "summary": "string value",
    //   "description": "string value",
    //   "location": "string value",
    //   "colorId": "string value",
    //   "creator": {
    //     "id": "string value",
    //     "email": "string value",
    //     "displayName": "string value",
    //     "self": true
    //   },
    //   "organizer": {
    //     "id": "string value",
    //     "email": "string value",
    //     "displayName": "string value",
    //     "self": true
    //   },
    //   "start": {
    //     "date": "date value",
    //     "dateTime": "datetime value",
    //     "timeZone": "string value"
    //   },
    //   "end": {
    //     "date": "date value",
    //     "dateTime": "datetime value",
    //     "timeZone": "string value"
    //   },
    //   "endTimeUnspecified": true,
    //   "recurrence": [
    //     "string value"
    //   ],
    //   "recurringEventId": "string value",
    //   "originalStartTime": {
    //     "date": "date value",
    //     "dateTime": "datetime value",
    //     "timeZone": "string value"
    //   },
    //   "transparency": "string value",
    //   "visibility": "string value",
    //   "iCalUID": "string value",
    //   "sequence": 1234,
    //   "attendees": [
    //     {
    //       "id": "string value",
    //       "email": "string value",
    //       "displayName": "string value",
    //       "organizer": true,
    //       "self": true,
    //       "resource": true,
    //       "optional": true,
    //       "responseStatus": "string value",
    //       "comment": "string value",
    //       "additionalGuests": 1234
    //     },
    //     {
    //       "id": "string value",
    //       "email": "string value",
    //       "displayName": "string value",
    //       "organizer": true,
    //       "self": true,
    //       "resource": true,
    //       "optional": true,
    //       "responseStatus": "string value",
    //       "comment": "string value",
    //       "additionalGuests": 1234
    //     }
    //   ],
    //   "attendeesOmitted": true,
    //   "extendedProperties": {
    //     "private": {
    //       "someKey": "string value"
    //     },
    //     "shared": {
    //       "someKey": "string value"
    //     }
    //   },
    //   "hangoutLink": "string value",
    //   "gadget": {
    //     "type": "string value",
    //     "title": "string value",
    //     "link": "string value",
    //     "iconLink": "string value",
    //     "width": 1234,
    //     "height": 1234,
    //     "display": "string value",
    //     "preferences": {
    //       "someKey": "string value"
    //     }
    //   },
    //   "anyoneCanAddSelf": true,
    //   "guestsCanInviteOthers": true,
    //   "guestsCanModify": true,
    //   "guestsCanSeeOtherGuests": true,
    //   "privateCopy": true,
    //   "locked": true,
    //   "reminders": {
    //     "useDefault": true,
    //     "overrides": [
    //       {
    //         "method": "string value",
    //         "minutes": 1234
    //       }
    //     ]
    //   },
    //   "source": {
    //     "url": "string value",
    //     "title": "string value"
    //   },
    //   "attachments": [
    //     {
    //       "fileUrl": "string value",
    //       "title": "string value",
    //       "mimeType": "string value",
    //       "iconLink": "string value",
    //       "fileId": "string value"
    //     },
    //     {
    //       "fileUrl": "string value",
    //       "title": "string value",
    //       "mimeType": "string value",
    //       "iconLink": "string value",
    //       "fileId": "string value"
    //     }
    //   ]
    // }

    let json = CkoJsonObject()!
    json.updateString(jsonPath: "kind", value: "calendar#event")
    json.updateString(jsonPath: "etag", value: "some_etag")
    json.updateString(jsonPath: "id", value: "string value")
    json.updateString(jsonPath: "status", value: "string value")
    json.updateString(jsonPath: "htmlLink", value: "string value")
    json.updateString(jsonPath: "created", value: "datetime value")
    json.updateString(jsonPath: "updated", value: "datetime value")
    json.updateString(jsonPath: "summary", value: "string value")
    json.updateString(jsonPath: "description", value: "string value")
    json.updateString(jsonPath: "location", value: "string value")
    json.updateString(jsonPath: "colorId", value: "string value")
    json.updateString(jsonPath: "creator.id", value: "string value")
    json.updateString(jsonPath: "creator.email", value: "string value")
    json.updateString(jsonPath: "creator.displayName", value: "string value")
    json.updateBool(jsonPath: "creator.self", value: true)
    json.updateString(jsonPath: "organizer.id", value: "string value")
    json.updateString(jsonPath: "organizer.email", value: "string value")
    json.updateString(jsonPath: "organizer.displayName", value: "string value")
    json.updateBool(jsonPath: "organizer.self", value: true)
    json.updateString(jsonPath: "start.date", value: "date value")
    json.updateString(jsonPath: "start.dateTime", value: "datetime value")
    json.updateString(jsonPath: "start.timeZone", value: "string value")
    json.updateString(jsonPath: "end.date", value: "date value")
    json.updateString(jsonPath: "end.dateTime", value: "datetime value")
    json.updateString(jsonPath: "end.timeZone", value: "string value")
    json.updateBool(jsonPath: "endTimeUnspecified", value: true)
    json.updateString(jsonPath: "recurrence[0]", value: "string value")
    json.updateString(jsonPath: "recurringEventId", value: "string value")
    json.updateString(jsonPath: "originalStartTime.date", value: "date value")
    json.updateString(jsonPath: "originalStartTime.dateTime", value: "datetime value")
    json.updateString(jsonPath: "originalStartTime.timeZone", value: "string value")
    json.updateString(jsonPath: "transparency", value: "string value")
    json.updateString(jsonPath: "visibility", value: "string value")
    json.updateString(jsonPath: "iCalUID", value: "string value")
    json.updateNumber(jsonPath: "sequence", numericStr: "1234")

    json.updateString(jsonPath: "attendees[0].id", value: "string value")
    json.updateString(jsonPath: "attendees[0].email", value: "string value")
    json.updateString(jsonPath: "attendees[0].displayName", value: "string value")

    // Note: We could alternately specify an index using "i", which allows
    // for an application to construct using a loop with a variable..
    json.i = 0
    json.updateBool(jsonPath: "attendees[i].organizer", value: true)
    json.updateBool(jsonPath: "attendees[i].self", value: true)
    json.updateBool(jsonPath: "attendees[i].resource", value: true)
    json.updateBool(jsonPath: "attendees[i].optional", value: true)
    json.updateString(jsonPath: "attendees[i].responseStatus", value: "string value")
    json.updateString(jsonPath: "attendees[i].comment", value: "string value")
    json.updateNumber(jsonPath: "attendees[i].additionalGuests", numericStr: "1234")

    json.i = 1
    json.updateString(jsonPath: "attendees[i].id", value: "string value")
    json.updateString(jsonPath: "attendees[i].email", value: "string value")
    json.updateString(jsonPath: "attendees[i].displayName", value: "string value")

    json.updateBool(jsonPath: "attendees[1].organizer", value: true)
    json.updateBool(jsonPath: "attendees[1].self", value: true)
    json.updateBool(jsonPath: "attendees[1].resource", value: true)
    json.updateBool(jsonPath: "attendees[1].optional", value: true)
    json.updateString(jsonPath: "attendees[1].responseStatus", value: "string value")
    json.updateString(jsonPath: "attendees[1].comment", value: "string value")
    json.updateNumber(jsonPath: "attendees[1].additionalGuests", numericStr: "1234")

    json.updateBool(jsonPath: "attendeesOmitted", value: true)
    json.updateString(jsonPath: "extendedProperties.private.someKey", value: "string value")
    json.updateString(jsonPath: "extendedProperties.shared.someKey", value: "string value")
    json.updateString(jsonPath: "hangoutLink", value: "string value")
    json.updateString(jsonPath: "gadget.type", value: "string value")
    json.updateString(jsonPath: "gadget.title", value: "string value")
    json.updateString(jsonPath: "gadget.link", value: "string value")
    json.updateString(jsonPath: "gadget.iconLink", value: "string value")
    json.updateNumber(jsonPath: "gadget.width", numericStr: "1234")
    json.updateNumber(jsonPath: "gadget.height", numericStr: "1234")
    json.updateString(jsonPath: "gadget.display", value: "string value")
    json.updateString(jsonPath: "gadget.preferences.someKey", value: "string value")
    json.updateBool(jsonPath: "anyoneCanAddSelf", value: true)
    json.updateBool(jsonPath: "guestsCanInviteOthers", value: true)
    json.updateBool(jsonPath: "guestsCanModify", value: true)
    json.updateBool(jsonPath: "guestsCanSeeOtherGuests", value: true)
    json.updateBool(jsonPath: "privateCopy", value: true)
    json.updateBool(jsonPath: "locked", value: true)
    json.updateBool(jsonPath: "reminders.useDefault", value: true)
    json.updateString(jsonPath: "reminders.overrides[0].method", value: "string value")
    json.updateNumber(jsonPath: "reminders.overrides[0].minutes", numericStr: "1234")
    json.updateString(jsonPath: "source.url", value: "string value")
    json.updateString(jsonPath: "source.title", value: "string value")
    json.updateString(jsonPath: "attachments[0].fileUrl", value: "string value")
    json.updateString(jsonPath: "attachments[0].title", value: "string value")
    json.updateString(jsonPath: "attachments[0].mimeType", value: "string value")
    json.updateString(jsonPath: "attachments[0].iconLink", value: "string value")
    json.updateString(jsonPath: "attachments[0].fileId", value: "string value")
    json.updateString(jsonPath: "attachments[1].fileUrl", value: "string value")
    json.updateString(jsonPath: "attachments[1].title", value: "string value")
    json.updateString(jsonPath: "attachments[1].mimeType", value: "string value")
    json.updateString(jsonPath: "attachments[1].iconLink", value: "string value")
    json.updateString(jsonPath: "attachments[1].fileId", value: "string value")

    json.emitCompact = false
    print("\(json.emit()!)")

}