Pipory
Node reference

Google Calendar (OAuth)

Google Calendar (OAuth) node reference - all 34 operations, the credential it needs, and a worked example.

Google Calendar with a connected Google account. Events (create, read, update, replace, delete, move, import, quick-add, expand a recurring series, manage guests and RSVPs), calendars, your subscription list, sharing rules, free/busy, colours and settings.

Credential: Google account - see Credentials.

Scopes

Each operation below lists the scope it needs. Scopes are ticked as a scope preset when you connect the Google account, then consented to on Google's screen — one preset covers all 34 operations, because Google's broad calendar scope is a superset of its seven narrower ones (calendar.events, calendar.calendars, calendar.calendarlist, calendar.acls, calendar.settings.readonly, calendar.freebusy and their readonly variants). If a run fails with a permission error, the node names the missing scope in the error - grant it and re-run; you do not need to rebuild the workflow.

Operations (34)

Events — read

OperationWhat it doesScope
listEventsList events (one page)Google Calendar — calendar
listAllEventsList all events (follow pagination)Google Calendar — calendar
getEventGet eventGoogle Calendar — calendar
listEventInstancesList instances of a recurring eventGoogle Calendar — calendar

Events — write

OperationWhat it doesScope
createEventCreate eventGoogle Calendar — calendar
quickAddCreate event from text (quick add)Google Calendar — calendar
updateEventUpdate event (keep other fields)Google Calendar — calendar
replaceEventReplace event (clear other fields)Google Calendar — calendar
deleteEventDelete eventGoogle Calendar — calendar
moveEventMove event to another calendarGoogle Calendar — calendar
importEventImport event (private copy)Google Calendar — calendar
addAttendeesAdd attendees (keep existing)Google Calendar — calendar
respondToEventSet my RSVP on an eventGoogle Calendar — calendar

Calendars

OperationWhat it doesScope
getCalendarGet calendarGoogle Calendar — calendar
createCalendarCreate calendarGoogle Calendar — calendar
updateCalendarUpdate calendar (keep other fields)Google Calendar — calendar
replaceCalendarReplace calendar (clear other fields)Google Calendar — calendar
deleteCalendarDelete calendarGoogle Calendar — calendar

My calendar list

OperationWhat it doesScope
listCalendarsList my calendarsGoogle Calendar — calendar
getCalendarListEntryGet calendar list entryGoogle Calendar — calendar
subscribeCalendarSubscribe to a calendarGoogle Calendar — calendar
updateCalendarListEntryUpdate list entry (keep other fields)Google Calendar — calendar
replaceCalendarListEntryReplace list entry (clear other fields)Google Calendar — calendar
unsubscribeCalendarUnsubscribe from a calendarGoogle Calendar — calendar

Sharing (access rules)

OperationWhat it doesScope
listAclRulesList sharing rulesGoogle Calendar — calendar
getAclRuleGet sharing ruleGoogle Calendar — calendar
createAclRuleShare calendar with someoneGoogle Calendar — calendar
updateAclRuleUpdate sharing rule (keep other fields)Google Calendar — calendar
replaceAclRuleReplace sharing ruleGoogle Calendar — calendar
deleteAclRuleRevoke sharing ruleGoogle Calendar — calendar

Availability & metadata

OperationWhat it doesScope
freebusyQuery free/busyGoogle Calendar — calendar
getColorsGet colour definitionsGoogle Calendar — calendar
listSettingsList my calendar settingsGoogle Calendar — calendar
getSettingGet one calendar settingGoogle Calendar — calendar

Example

Book a kickoff call with a Meet link when a deal closes

A CRM trigger fires on a won deal and the workflow puts the kickoff in the calendar: the customer and the account manager are invited, Google generates the Meet link, both sides are emailed, and the deal id is stashed on the event so a later workflow can find it again without storing anything of its own.

Set Operation to createEvent, then fill in:

FieldValueNotes
calendarIdprimaryDefaults to primary when left blank
summaryKickoff — {{trigger.deal.name}}The event title
startDateTime{{trigger.deal.kickoffAt}}RFC3339. Leave blank and set startDate instead for an all-day event
endDateTime{{trigger.deal.kickoffEndAt}}RFC3339
timeZoneEurope/LondonRequired when the times carry no UTC offset
attendees{{trigger.deal.contactEmail}}, optional:{{trigger.deal.ownerEmail}}Comma-separated; an optional: prefix marks a guest optional
createMeetLinktrueAsks Google for a Meet link and sends conferenceDataVersion=1 so it is not silently dropped
reminderOverridespopup:10, email:60method:minutes pairs; setting any override turns the calendar defaults off
sendUpdatesallThe API emails nobody by default — set this or the guests never hear about it
extendedPropertiesPrivate{"dealId": "{{trigger.deal.id}}"}Your own metadata; find the event later with privateExtendedProperty=dealId=123 on List events

Sets {{kickoff.eventId}}, {{kickoff.htmlLink}} (the open-in-Calendar URL), {{kickoff.hangoutLink}} (the Meet link, once Google has provisioned it), {{kickoff.start}}, {{kickoff.end}}, {{kickoff.attendees}} (an array of email addresses) and {{kickoff.event}} (the untouched Calendar resource). A following Slack node can post {{kickoff.hangoutLink}}.