Skip to main content

πŸš€ Quickstart

Connect to Google Calendar with Nango and see data flow in 2 minutes.
1

Create an integration

In Nango (free signup), go to Integrations -> Configure New Integration -> Google Calendar.
Nango has credentials you can use for testing. Activate them in the dashboard.
2

Authorize Google Calendar

Go to Connections -> Add Test Connection -> Authorize, then log in to Google Calendar. Later, you’ll let your users do the same directly from your app.
3

Call the Google Calendar API

Let’s make your first request to the Google Calendar API (fetch a list of calendars). Replace the placeholders below with your secret key, integration ID, and connection ID:
curl "https://api.nango.dev/proxy/calendar/v3/users/me/calendarList?maxResults=10" \
  -H "Authorization: Bearer <NANGO-SECRET-KEY>" \
  -H "Provider-Config-Key: <INTEGRATION-ID>" \
  -H "Connection-Id: <CONNECTION-ID>"
Or fetch credentials dynamically via the Node SDK or API.βœ… You’re connected! Check the Logs tab in Nango to inspect requests.
4

Implement Nango in your app

Follow our Auth implementation guide to integrate Nango in your app.To obtain your own production credentials, follow the setup guide linked below.

πŸ“š Google Calendar Integration Guides

Nango maintained guides for common use cases. Official docs: Google Calendar API documentation

🧩 Pre-built syncs & actions for Google Calendar

Enable them in your dashboard. Extend and customize to fit your needs.

ACL

Function nameDescriptionTypeSource code
delete-acl-ruleDelete an access control rule from a calendarActionπŸ”— Github
get-acl-ruleGet an access control rule by IDActionπŸ”— Github
list-acl-rulesList ACL rules for a calendar with pagination supportActionπŸ”— Github
update-acl-ruleUpdate an access control ruleActionπŸ”— Github

Calendar

Function nameDescriptionTypeSource code
create-acl-ruleCreate an access control ruleActionπŸ”— Github
find-free-slotsQuery free/busy data and return gaps meeting a minimum durationActionπŸ”— Github
get-colorsReturn available calendar and event color definitionsActionπŸ”— Github

Calendar List

Function nameDescriptionTypeSource code
insert-calendar-to-listAdd an existing calendar to the user’s calendar list with optional colorsActionπŸ”— Github

CalendarList

Function nameDescriptionTypeSource code
watch-calendar-listSubscribe to changes in the calendar listActionπŸ”— Github
calendar-listFull sync of the user’s calendar list, including access role, colors, primary/selected flags, and deleted status.SyncπŸ”— Github

Calendars

Function nameDescriptionTypeSource code
clear-calendarClear a calendar by deleting all eventsActionπŸ”— Github
create-calendarCreate a new secondary Google Calendar with the specified title.ActionπŸ”— Github
delete-calendarDelete a secondary calendarActionπŸ”— Github
get-calendar-list-entryRetrieve a calendar list entry with access role and colorsActionπŸ”— Github
get-calendarGet a calendar by IDActionπŸ”— Github
list-calendar-listList calendars in the user’s calendar listActionπŸ”— Github
query-free-busyReturn free/busy blocks for one or more calendars in a time rangeActionπŸ”— Github
remove-calendar-from-listRemove a calendar from the user’s calendar listActionπŸ”— Github
update-calendar-list-entryUpdate a calendar list entry’s settingsActionπŸ”— Github
update-calendarUpdate a calendar’s metadataActionπŸ”— Github

Channels

Function nameDescriptionTypeSource code
stop-channelStop push notifications for a channelActionπŸ”— Github

Events

Function nameDescriptionTypeSource code
add-attendeeAdd an attendee to an existing calendar eventActionπŸ”— Github
create-all-day-eventCreate an all-day calendar event using start and end datesActionπŸ”— Github
create-eventCreate a calendar eventActionπŸ”— Github
create-recurring-eventCreate a recurring event with supplied start, end, and RRULE valuesActionπŸ”— Github
delete-eventDelete a calendar eventActionπŸ”— Github
get-eventGet an event by ID from Google CalendarActionπŸ”— Github
import-eventImport an event as a private copy using an iCalendar UIDActionπŸ”— Github
list-event-instancesList instances of a recurring eventActionπŸ”— Github
list-eventsList events on a calendarActionπŸ”— Github
list-upcoming-eventsList upcoming events from now, ordered by start timeActionπŸ”— Github
move-eventMove an event to another calendar, changing its organizerActionπŸ”— Github
patch-eventPartially update only provided event fields like time, location, or descriptionActionπŸ”— Github
quick-add-eventCreate an event from a text stringActionπŸ”— Github
remove-attendeeFetch an event, remove an attendee by email, and patch attendeesActionπŸ”— Github
search-eventsSearch a calendar’s events by text query and optional time boundsActionπŸ”— Github
update-attendee-responseFetch an event and update one attendee response statusActionπŸ”— Github
update-eventUpdate a calendar eventActionπŸ”— Github
watch-eventsSubscribe to event changes on a calendarActionπŸ”— Github

Settings

Function nameDescriptionTypeSource code
get-settingRetrieve a single Google Calendar user setting by IDActionπŸ”— Github
list-settingsList calendar settingsActionπŸ”— Github
settingsFetch all user settings across pages from Google CalendarActionπŸ”— Github
watch-settingsSubscribe to changes in calendar settingsActionπŸ”— Github
settingsSync calendar settingsSyncπŸ”— Github

Users

Function nameDescriptionTypeSource code
whoamiReturn the current user’s Google account ID and emailActionπŸ”— Github

Others

Function nameDescriptionTypeSource code
calendar-eventsIncrementally sync full Google Calendar event objects, defaulting to the primary calendar with an initial one-month lookbackSyncπŸ”— Github