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
Name | Label | Type | Control Type | Description | Required |
---|---|---|---|---|---|
clientId | Client Id | STRING | TEXT | true | |
clientSecret | Client Secret | STRING | TEXT | true |
Actions
Add Attendees to Event
Name: addAttendeesToEvent
Invites one or more person to an existing event.
Properties
Name | Label | Type | Control Type | Description | Required |
---|---|---|---|---|---|
calendarId | Calendar Identifier | STRING | SELECT | true | |
eventId | Event ID | STRING Depends OncalendarId | SELECT | ID of the event to add attendees to. | true |
attendees | Attendees | ARRAY Items[STRING] | ARRAY_BUILDER | The attendees of the event. | true |
Output
Type: OBJECT
Properties
Name | Type | Control Type |
---|---|---|
iCalUID | STRING | TEXT |
id | STRING | TEXT |
summary | STRING | TEXT |
startTime | DATE_TIME | DATE_TIME |
endTime | DATE_TIME | DATE_TIME |
etag | STRING | TEXT |
eventType | STRING | TEXT |
htmlLink | STRING | TEXT |
status | STRING | TEXT |
location | STRING | TEXT |
hangoutLink | STRING | TEXT |
attendees | ARRAY Items[{INTEGER(additionalGuests), STRING(comment), STRING(displayName), STRING(email), STRING(id), BOOLEAN(optional), BOOLEAN(organizer), BOOLEAN(resource), STRING(responseStatus), BOOLEAN(self)}] | ARRAY_BUILDER |
attachments | ARRAY Items[{STRING(fileId), STRING(fileUrl), STRING(iconLink), STRING(mimeType), STRING(title)}] | ARRAY_BUILDER |
reminders | OBJECT 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
Name | Label | Type | Control Type | Description | Required |
---|---|---|---|---|---|
calendarId | Calendar Identifier | STRING | SELECT | true | |
summary | Title | STRING | TEXT | Title of the event. | false |
allDay | All Day Event? | BOOLEAN Optionstrue, false | SELECT | true | |
start | Start Date | DATE | DATE | The start date of the event. | true |
end | End Date | DATE | DATE | The end date of the event. | true |
start | Start Date Time | DATE_TIME | DATE_TIME | The (inclusive) start time of the event. For a recurring event, this is the start time of the first instance. | true |
end | End Date Time | DATE_TIME | DATE_TIME | The (exclusive) end time of the event. For a recurring event, this is the end time of the first instance. | true |
description | Description | STRING | TEXT | Description of the event. Can contain HTML. | false |
location | Location | STRING | TEXT | Geographic location of the event as free-form text. | false |
attachments | Attachments | ARRAY Items[FILE_ENTRY] | ARRAY_BUILDER | false | |
attendees | Attendees | ARRAY Items[STRING] | ARRAY_BUILDER | The attendees of the event. | false |
guestsCanInviteOthers | Guest Can Invite Others | BOOLEAN Optionstrue, false | SELECT | Whether attendees other than the organizer can invite others to the event. | false |
guestsCanModify | Guest Can Modify | BOOLEAN Optionstrue, false | SELECT | Whether attendees other than the organizer can modify the event. | false |
guestsCanSeeOtherGuests | Guest Can See Other Guests | BOOLEAN Optionstrue, false | SELECT | Whether attendees other than the organizer can see who the event’s attendees are. | false |
sendUpdates | Send Updates | STRING Optionsall, externalOnly, none | SELECT | Whether to send notifications about the creation of the new event. Note that some emails might still be sent. | false |
useDefault | Use Default Reminders | BOOLEAN Optionstrue, false | SELECT | Whether the default reminders of the calendar apply to the event. | true |
reminders | Reminders | ARRAY Items[{STRING(method), INTEGER(minutes)}] | ARRAY_BUILDER | false |
Output
Type: OBJECT
Properties
Name | Type | Control Type |
---|---|---|
iCalUID | STRING | TEXT |
id | STRING | TEXT |
summary | STRING | TEXT |
startTime | DATE_TIME | DATE_TIME |
endTime | DATE_TIME | DATE_TIME |
etag | STRING | TEXT |
eventType | STRING | TEXT |
htmlLink | STRING | TEXT |
status | STRING | TEXT |
location | STRING | TEXT |
hangoutLink | STRING | TEXT |
attendees | ARRAY Items[{INTEGER(additionalGuests), STRING(comment), STRING(displayName), STRING(email), STRING(id), BOOLEAN(optional), BOOLEAN(organizer), BOOLEAN(resource), STRING(responseStatus), BOOLEAN(self)}] | ARRAY_BUILDER |
attachments | ARRAY Items[{STRING(fileId), STRING(fileUrl), STRING(iconLink), STRING(mimeType), STRING(title)}] | ARRAY_BUILDER |
reminders | OBJECT 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
Name | Label | Type | Control Type | Description | Required |
---|---|---|---|---|---|
calendarId | Calendar Identifier | STRING | SELECT | true | |
text | Text | STRING | TEXT | The text describing the event to be created. | true |
sendUpdates | Send Updates | STRING Optionsall, externalOnly, none | SELECT | Whether to send notifications about the creation of the new event. Note that some emails might still be sent. | false |
Output
Type: OBJECT
Properties
Name | Type | Control Type |
---|---|---|
iCalUID | STRING | TEXT |
id | STRING | TEXT |
summary | STRING | TEXT |
startTime | DATE_TIME | DATE_TIME |
endTime | DATE_TIME | DATE_TIME |
etag | STRING | TEXT |
eventType | STRING | TEXT |
htmlLink | STRING | TEXT |
status | STRING | TEXT |
location | STRING | TEXT |
hangoutLink | STRING | TEXT |
attendees | ARRAY Items[{INTEGER(additionalGuests), STRING(comment), STRING(displayName), STRING(email), STRING(id), BOOLEAN(optional), BOOLEAN(organizer), BOOLEAN(resource), STRING(responseStatus), BOOLEAN(self)}] | ARRAY_BUILDER |
attachments | ARRAY Items[{STRING(fileId), STRING(fileUrl), STRING(iconLink), STRING(mimeType), STRING(title)}] | ARRAY_BUILDER |
reminders | OBJECT 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
Name | Label | Type | Control Type | Description | Required |
---|---|---|---|---|---|
calendarId | Calendar Identifier | STRING | SELECT | true | |
eventId | Event ID | STRING Depends OncalendarId | SELECT | ID 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
Name | Label | Type | Control Type | Description | Required |
---|---|---|---|---|---|
calendarId | Calendar Identifier | STRING | SELECT | true | |
eventType | Event Type | ARRAY Items[STRING] | ARRAY_BUILDER | Event types to return. | false |
maxResults | Max Results | INTEGER | INTEGER | Maximum 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 |
q | Search Terms | STRING | TEXT | Free 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.label | false |
dateRange | Date Range | OBJECT Properties{DATE_TIME(from), DATE_TIME(to)} | OBJECT_BUILDER | Date range to find events that exist in this range. | false |
Output
Type: ARRAY
Properties
Name | Type | Control 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
Name | Label | Type | Control Type | Description | Required |
---|---|---|---|---|---|
calendarId | Calendar Identifier | STRING | SELECT | true | |
dateRange | Date Range | OBJECT Properties{DATE_TIME(from), DATE_TIME(to)} | OBJECT_BUILDER | Date range to find free time. | true |
Output
Type: ARRAY
Properties
Name | Type | Control 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
Name | Label | Type | Control Type | Description | Required |
---|---|---|---|---|---|
calendarId | Calendar Identifier | STRING | SELECT | true | |
eventId | Event ID | STRING Depends OncalendarId | SELECT | ID of the event to update. | true |
summary | Title | STRING | TEXT | New title of the event. | false |
allDay | All Day Event? | BOOLEAN Optionstrue, false | SELECT | false | |
start | Start Date | DATE | DATE | New start date of the event. | true |
end | End Date | DATE | DATE | New end date of the event. | true |
start | Start Date Time | DATE_TIME | DATE_TIME | New (inclusive) start time of the event. For a recurring event, this is the start time of the first instance. | true |
end | End Date Time | DATE_TIME | DATE_TIME | New (exclusive) end time of the event. For a recurring event, this is the end time of the first instance. | true |
description | Description | STRING | TEXT | New description of the event. Can contain HTML. | false |
attendees | Attendees | ARRAY Items[STRING] | ARRAY_BUILDER | New attendees of the event. | false |
Output
Type: OBJECT
Properties
Name | Type | Control Type |
---|---|---|
iCalUID | STRING | TEXT |
id | STRING | TEXT |
summary | STRING | TEXT |
startTime | DATE_TIME | DATE_TIME |
endTime | DATE_TIME | DATE_TIME |
etag | STRING | TEXT |
eventType | STRING | TEXT |
htmlLink | STRING | TEXT |
status | STRING | TEXT |
location | STRING | TEXT |
hangoutLink | STRING | TEXT |
attendees | ARRAY Items[{INTEGER(additionalGuests), STRING(comment), STRING(displayName), STRING(email), STRING(id), BOOLEAN(optional), BOOLEAN(organizer), BOOLEAN(resource), STRING(responseStatus), BOOLEAN(self)}] | ARRAY_BUILDER |
attachments | ARRAY Items[{STRING(fileId), STRING(fileUrl), STRING(iconLink), STRING(mimeType), STRING(title)}] | ARRAY_BUILDER |
reminders | OBJECT 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
Name | Label | Type | Control Type | Description | Required |
---|---|---|---|---|---|
calendarId | Calendar Identifier | STRING | SELECT | true |
Output
Type: OBJECT
Properties
Name | Type | Control Type |
---|---|---|
iCalUID | STRING | TEXT |
id | STRING | TEXT |
summary | STRING | TEXT |
startTime | DATE_TIME | DATE_TIME |
endTime | DATE_TIME | DATE_TIME |
etag | STRING | TEXT |
eventType | STRING | TEXT |
htmlLink | STRING | TEXT |
status | STRING | TEXT |
location | STRING | TEXT |
hangoutLink | STRING | TEXT |
attendees | ARRAY Items[{INTEGER(additionalGuests), STRING(comment), STRING(displayName), STRING(email), STRING(id), BOOLEAN(optional), BOOLEAN(organizer), BOOLEAN(resource), STRING(responseStatus), BOOLEAN(self)}] | ARRAY_BUILDER |
attachments | ARRAY Items[{STRING(fileId), STRING(fileUrl), STRING(iconLink), STRING(mimeType), STRING(title)}] | ARRAY_BUILDER |
reminders | OBJECT 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
Connection Setup
Create OAuth 2.0 Application
- Go to the Google Cloud Console.
- Click on the project dropdown in the top navigation bar.
- Click New Project.
- Enter a project name and click Create.
- Click on the project dropdown again.
- Select the project you just created.
- Go to the APIs & Services.
- Go to the OAuth consent screen.
- Click Get Started.
- Enter an App name and add user support email. Click Next.
- Select your Audience and click Next.
- Add email addresses and click Next.
- Agree to the terms and click Create.
- Go to Data Access.
- Click on Add or Remove Scopes.
- Select all necessary scopes.
- Click Update.
- Click Save.
- Go to the Clients.
- Click on Create Client.
- Click on application type dropdown.
- Choose Web application as the application type.
- Click on Add Uri.
- Enter a redirect URI, e.g.,
https://app.bytechef.io/callback
,http://127.0.0.1:5173/callback
. Click Create. - Click on the client you just created.
- Copy the Client ID and Client Secret. Use these credentials to create a connection in ByteChef.
Enable Google Calendar API
- In the Google Cloud Console, select your project.
- Go to the APIs & Services.
- Click on ENABLE APIS AND SERVICES.
- Search for “calendar” in the search bar.
- Click on Google Calendar API.
- Click Enable.