Skip to content

Google Calendar

Google Calendar is a web-based application that allows users to schedule and organize events, appointments, and reminders, synchronizing across multiple devices.

Categories: calendars-and-scheduling

Type: googleCalendar/v1


Connections

Version: 1

OAuth2 Authorization Code

Properties

NameLabelTypeControl TypeDescriptionRequired
clientIdClient IdSTRINGTEXTtrue
clientSecretClient SecretSTRINGTEXTtrue

Actions

Add Attendees to Event

Name: addAttendeesToEvent

Invites one or more person to an existing event.

Properties

NameLabelTypeControl TypeDescriptionRequired
calendarIdCalendar IdentifierSTRINGSELECTtrue
eventIdEvent IDSTRING
Depends On calendarId
SELECTID of the event to add attendees to.true
attendeesAttendeesARRAY
Items [STRING]
ARRAY_BUILDERThe attendees of the event.true

Output

Type: OBJECT

Properties

NameTypeControl Type
iCalUIDSTRINGTEXT
idSTRINGTEXT
summarySTRINGTEXT
startTimeDATE_TIMEDATE_TIME
endTimeDATE_TIMEDATE_TIME
etagSTRINGTEXT
eventTypeSTRINGTEXT
htmlLinkSTRINGTEXT
statusSTRINGTEXT
locationSTRINGTEXT
hangoutLinkSTRINGTEXT
attendeesARRAY
Items [{INTEGER(additionalGuests), STRING(comment), STRING(displayName), STRING(email), STRING(id), BOOLEAN(optional), BOOLEAN(organizer), BOOLEAN(resource), STRING(responseStatus), BOOLEAN(self)}]
ARRAY_BUILDER
attachmentsARRAY
Items [{STRING(fileId), STRING(fileUrl), STRING(iconLink), STRING(mimeType), STRING(title)}]
ARRAY_BUILDER
remindersOBJECT
Properties {[{STRING(method), INTEGER(minutes)}](overrides), BOOLEAN(useDefault)}
OBJECT_BUILDER

JSON Example

{
"label" : "Add Attendees to Event",
"name" : "addAttendeesToEvent",
"parameters" : {
"calendarId" : "",
"eventId" : "",
"attendees" : [ "" ]
},
"type" : "googleCalendar/v1/addAttendeesToEvent"
}

Create Event

Name: createEvent

Creates an event

Properties

NameLabelTypeControl TypeDescriptionRequired
calendarIdCalendar IdentifierSTRINGSELECTtrue
summaryTitleSTRINGTEXTTitle of the event.false
allDayAll Day Event?BOOLEAN
Options true, false
SELECTtrue
startStart DateDATEDATEThe start date of the event.true
endEnd DateDATEDATEThe end date of the event.true
startStart Date TimeDATE_TIMEDATE_TIMEThe (inclusive) start time of the event. For a recurring event, this is the start time of the first instance.true
endEnd Date TimeDATE_TIMEDATE_TIMEThe (exclusive) end time of the event. For a recurring event, this is the end time of the first instance.true
descriptionDescriptionSTRINGTEXTDescription of the event. Can contain HTML.false
locationLocationSTRINGTEXTGeographic location of the event as free-form text.false
attachmentsAttachmentsARRAY
Items [FILE_ENTRY]
ARRAY_BUILDERfalse
attendeesAttendeesARRAY
Items [STRING]
ARRAY_BUILDERThe attendees of the event.false
guestsCanInviteOthersGuest Can Invite OthersBOOLEAN
Options true, false
SELECTWhether attendees other than the organizer can invite others to the event.false
guestsCanModifyGuest Can ModifyBOOLEAN
Options true, false
SELECTWhether attendees other than the organizer can modify the event.false
guestsCanSeeOtherGuestsGuest Can See Other GuestsBOOLEAN
Options true, false
SELECTWhether attendees other than the organizer can see who the event’s attendees are.false
sendUpdatesSend UpdatesSTRING
Options all, externalOnly, none
SELECTWhether to send notifications about the creation of the new event. Note that some emails might still be sent.false
useDefaultUse Default RemindersBOOLEAN
Options true, false
SELECTWhether the default reminders of the calendar apply to the event.true
remindersRemindersARRAY
Items [{STRING(method), INTEGER(minutes)}]
ARRAY_BUILDERfalse

Output

Type: OBJECT

Properties

NameTypeControl Type
iCalUIDSTRINGTEXT
idSTRINGTEXT
summarySTRINGTEXT
startTimeDATE_TIMEDATE_TIME
endTimeDATE_TIMEDATE_TIME
etagSTRINGTEXT
eventTypeSTRINGTEXT
htmlLinkSTRINGTEXT
statusSTRINGTEXT
locationSTRINGTEXT
hangoutLinkSTRINGTEXT
attendeesARRAY
Items [{INTEGER(additionalGuests), STRING(comment), STRING(displayName), STRING(email), STRING(id), BOOLEAN(optional), BOOLEAN(organizer), BOOLEAN(resource), STRING(responseStatus), BOOLEAN(self)}]
ARRAY_BUILDER
attachmentsARRAY
Items [{STRING(fileId), STRING(fileUrl), STRING(iconLink), STRING(mimeType), STRING(title)}]
ARRAY_BUILDER
remindersOBJECT
Properties {[{STRING(method), INTEGER(minutes)}](overrides), BOOLEAN(useDefault)}
OBJECT_BUILDER

JSON Example

{
"label" : "Create Event",
"name" : "createEvent",
"parameters" : {
"calendarId" : "",
"summary" : "",
"allDay" : false,
"start" : "2021-01-01T00:00:00",
"end" : "2021-01-01T00:00:00",
"description" : "",
"location" : "",
"attachments" : [ {
"extension" : "",
"mimeType" : "",
"name" : "",
"url" : ""
} ],
"attendees" : [ "" ],
"guestsCanInviteOthers" : false,
"guestsCanModify" : false,
"guestsCanSeeOtherGuests" : false,
"sendUpdates" : "",
"useDefault" : false,
"reminders" : [ {
"method" : "",
"minutes" : 1
} ]
},
"type" : "googleCalendar/v1/createEvent"
}

Create Quick Event

Name: createQuickEvent

Add Quick Calendar Event

Properties

NameLabelTypeControl TypeDescriptionRequired
calendarIdCalendar IdentifierSTRINGSELECTtrue
textTextSTRINGTEXTThe text describing the event to be created.true
sendUpdatesSend UpdatesSTRING
Options all, externalOnly, none
SELECTWhether to send notifications about the creation of the new event. Note that some emails might still be sent.false

Output

Type: OBJECT

Properties

NameTypeControl Type
iCalUIDSTRINGTEXT
idSTRINGTEXT
summarySTRINGTEXT
startTimeDATE_TIMEDATE_TIME
endTimeDATE_TIMEDATE_TIME
etagSTRINGTEXT
eventTypeSTRINGTEXT
htmlLinkSTRINGTEXT
statusSTRINGTEXT
locationSTRINGTEXT
hangoutLinkSTRINGTEXT
attendeesARRAY
Items [{INTEGER(additionalGuests), STRING(comment), STRING(displayName), STRING(email), STRING(id), BOOLEAN(optional), BOOLEAN(organizer), BOOLEAN(resource), STRING(responseStatus), BOOLEAN(self)}]
ARRAY_BUILDER
attachmentsARRAY
Items [{STRING(fileId), STRING(fileUrl), STRING(iconLink), STRING(mimeType), STRING(title)}]
ARRAY_BUILDER
remindersOBJECT
Properties {[{STRING(method), INTEGER(minutes)}](overrides), BOOLEAN(useDefault)}
OBJECT_BUILDER

JSON Example

{
"label" : "Create Quick Event",
"name" : "createQuickEvent",
"parameters" : {
"calendarId" : "",
"text" : "",
"sendUpdates" : ""
},
"type" : "googleCalendar/v1/createQuickEvent"
}

Delete Event

Name: deleteEvent

Deletes an event from Google Calendar.

Properties

NameLabelTypeControl TypeDescriptionRequired
calendarIdCalendar IdentifierSTRINGSELECTtrue
eventIdEvent IDSTRING
Depends On calendarId
SELECTID of the event to delete.true

JSON Example

{
"label" : "Delete Event",
"name" : "deleteEvent",
"parameters" : {
"calendarId" : "",
"eventId" : ""
},
"type" : "googleCalendar/v1/deleteEvent"
}

Get Events

Name: getEvents

List events from the specified Google Calendar.

Properties

NameLabelTypeControl TypeDescriptionRequired
calendarIdCalendar IdentifierSTRINGSELECTtrue
eventTypeEvent TypeARRAY
Items [STRING]
ARRAY_BUILDEREvent types to return.false
maxResultsMax ResultsINTEGERINTEGERMaximum number of events returned on one result page. The number of events in the resulting page may be less than this value, or none at all, even if there are more events matching the query. Incomplete pages can be detected by a non-empty nextPageToken field in the response.false
qSearch TermsSTRINGTEXTFree text search terms to find events that match these terms in the following fields: summary, description, location, attendee’s displayName, attendee’s email, workingLocationProperties.officeLocation.buildingId, workingLocationProperties.officeLocation.deskId, workingLocationProperties.officeLocation.label and workingLocationProperties.customLocation.labelfalse
dateRangeDate RangeOBJECT
Properties {DATE_TIME(from), DATE_TIME(to)}
OBJECT_BUILDERDate range to find events that exist in this range.false

Output

Type: ARRAY

Properties

NameTypeControl Type
OBJECT
Properties {STRING(iCalUID), STRING(id), STRING(summary), DATE_TIME(startTime), DATE_TIME(endTime), STRING(etag), STRING(eventType), STRING(htmlLink), STRING(status), STRING(location), STRING(hangoutLink), [{INTEGER(additionalGuests), STRING(comment), STRING(displayName), STRING(email), STRING(id), BOOLEAN(optional), BOOLEAN(organizer), BOOLEAN(resource), STRING(responseStatus), BOOLEAN(self)}](attendees), [{STRING(fileId), STRING(fileUrl), STRING(iconLink), STRING(mimeType), STRING(title)}](attachments), {[{STRING(method), INTEGER(minutes)}](overrides), BOOLEAN(useDefault)}(reminders)}
OBJECT_BUILDER

JSON Example

{
"label" : "Get Events",
"name" : "getEvents",
"parameters" : {
"calendarId" : "",
"eventType" : [ "" ],
"maxResults" : 1,
"q" : "",
"dateRange" : {
"from" : "2021-01-01T00:00:00",
"to" : "2021-01-01T00:00:00"
}
},
"type" : "googleCalendar/v1/getEvents"
}

Get Free Time Slots

Name: getFreeTimeSlots

Get free time slots from Google Calendar.

Properties

NameLabelTypeControl TypeDescriptionRequired
calendarIdCalendar IdentifierSTRINGSELECTtrue
dateRangeDate RangeOBJECT
Properties {DATE_TIME(from), DATE_TIME(to)}
OBJECT_BUILDERDate range to find free time.true

Output

Type: ARRAY

Properties

NameTypeControl Type
OBJECT
Properties {DATE_TIME(startTime), DATE_TIME(endTime)}
OBJECT_BUILDER

JSON Example

{
"label" : "Get Free Time Slots",
"name" : "getFreeTimeSlots",
"parameters" : {
"calendarId" : "",
"dateRange" : {
"from" : "2021-01-01T00:00:00",
"to" : "2021-01-01T00:00:00"
}
},
"type" : "googleCalendar/v1/getFreeTimeSlots"
}

Update Event

Name: updateEvent

Updates event in Google Calendar.

Properties

NameLabelTypeControl TypeDescriptionRequired
calendarIdCalendar IdentifierSTRINGSELECTtrue
eventIdEvent IDSTRING
Depends On calendarId
SELECTID of the event to update.true
summaryTitleSTRINGTEXTNew title of the event.false
allDayAll Day Event?BOOLEAN
Options true, false
SELECTfalse
startStart DateDATEDATENew start date of the event.true
endEnd DateDATEDATENew end date of the event.true
startStart Date TimeDATE_TIMEDATE_TIMENew (inclusive) start time of the event. For a recurring event, this is the start time of the first instance.true
endEnd Date TimeDATE_TIMEDATE_TIMENew (exclusive) end time of the event. For a recurring event, this is the end time of the first instance.true
descriptionDescriptionSTRINGTEXTNew description of the event. Can contain HTML.false
attendeesAttendeesARRAY
Items [STRING]
ARRAY_BUILDERNew attendees of the event.false

Output

Type: OBJECT

Properties

NameTypeControl Type
iCalUIDSTRINGTEXT
idSTRINGTEXT
summarySTRINGTEXT
startTimeDATE_TIMEDATE_TIME
endTimeDATE_TIMEDATE_TIME
etagSTRINGTEXT
eventTypeSTRINGTEXT
htmlLinkSTRINGTEXT
statusSTRINGTEXT
locationSTRINGTEXT
hangoutLinkSTRINGTEXT
attendeesARRAY
Items [{INTEGER(additionalGuests), STRING(comment), STRING(displayName), STRING(email), STRING(id), BOOLEAN(optional), BOOLEAN(organizer), BOOLEAN(resource), STRING(responseStatus), BOOLEAN(self)}]
ARRAY_BUILDER
attachmentsARRAY
Items [{STRING(fileId), STRING(fileUrl), STRING(iconLink), STRING(mimeType), STRING(title)}]
ARRAY_BUILDER
remindersOBJECT
Properties {[{STRING(method), INTEGER(minutes)}](overrides), BOOLEAN(useDefault)}
OBJECT_BUILDER

JSON Example

{
"label" : "Update Event",
"name" : "updateEvent",
"parameters" : {
"calendarId" : "",
"eventId" : "",
"summary" : "",
"allDay" : false,
"start" : "2021-01-01T00:00:00",
"end" : "2021-01-01T00:00:00",
"description" : "",
"attendees" : [ "" ]
},
"type" : "googleCalendar/v1/updateEvent"
}

Triggers

New or Updated Event

Name: newOrUpdatedEvent

Triggers when an event is added or updated

Type: DYNAMIC_WEBHOOK

Properties

NameLabelTypeControl TypeDescriptionRequired
calendarIdCalendar IdentifierSTRINGSELECTtrue

Output

Type: OBJECT

Properties

NameTypeControl Type
iCalUIDSTRINGTEXT
idSTRINGTEXT
summarySTRINGTEXT
startTimeDATE_TIMEDATE_TIME
endTimeDATE_TIMEDATE_TIME
etagSTRINGTEXT
eventTypeSTRINGTEXT
htmlLinkSTRINGTEXT
statusSTRINGTEXT
locationSTRINGTEXT
hangoutLinkSTRINGTEXT
attendeesARRAY
Items [{INTEGER(additionalGuests), STRING(comment), STRING(displayName), STRING(email), STRING(id), BOOLEAN(optional), BOOLEAN(organizer), BOOLEAN(resource), STRING(responseStatus), BOOLEAN(self)}]
ARRAY_BUILDER
attachmentsARRAY
Items [{STRING(fileId), STRING(fileUrl), STRING(iconLink), STRING(mimeType), STRING(title)}]
ARRAY_BUILDER
remindersOBJECT
Properties {[{STRING(method), INTEGER(minutes)}](overrides), BOOLEAN(useDefault)}
OBJECT_BUILDER

JSON Example

{
"label" : "New or Updated Event",
"name" : "newOrUpdatedEvent",
"parameters" : {
"calendarId" : ""
},
"type" : "googleCalendar/v1/newOrUpdatedEvent"
}


Additional instructions


anl-c-google-calendar-md

Connection Setup

Create OAuth 2.0 Application

  1. Go to the Google Cloud Console.
  2. Click on the project dropdown in the top navigation bar.
  3. Click New Project.
  4. Enter a project name and click Create.
  5. Click on the project dropdown again.
  6. Select the project you just created.
  7. Go to the APIs & Services.
  8. Go to the OAuth consent screen.
  9. Click Get Started.
  10. Enter an App name and add user support email. Click Next.
  11. Select your Audience and click Next.
  12. Add email addresses and click Next.
  13. Agree to the terms and click Create.
  14. Go to Data Access.
  15. Click on Add or Remove Scopes.
  16. Select all necessary scopes.
  17. Click Update.
  18. Click Save.
  19. Go to the Clients.
  20. Click on Create Client.
  21. Click on application type dropdown.
  22. Choose Web application as the application type.
  23. Click on Add Uri.
  24. Enter a redirect URI, e.g., https://app.bytechef.io/callback, http://127.0.0.1:5173/callback. Click Create.
  25. Click on the client you just created.
  26. Copy the Client ID and Client Secret. Use these credentials to create a connection in ByteChef.

Enable Google Calendar API

  1. In the Google Cloud Console, select your project.
  2. Go to the APIs & Services.
  3. Click on ENABLE APIS AND SERVICES.
  4. Search for “calendar” in the search bar.
  5. Click on Google Calendar API.
  6. Click Enable.