Google Calendar
Integrate your application with the Google Calendar API
🚀 Quickstart
Connect to Google Calendar with Tenklo and see data flow in 2 minutes.
In Tenklo (free signup), go to Integrations -> Configure New Integration -> Google Calendar.
Tenklo has credentials you can use for testing. Activate them in the dashboard.
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.
Let's make your first request to the Google Calendar API (fetch a list of calendars). Replace the placeholders below with your Environment API key, integration ID, and connection ID:
curl "https://api.tenklo.dev/proxy/calendar/v3/users/me/calendarList?maxResults=10" \
-H "Authorization: Bearer <NANGO-API-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 Tenklo to inspect requests.
Follow our Auth implementation guide to integrate Tenklo in your app.
To obtain your own production credentials, follow the setup guide linked below.
📚 Google Calendar Integration Guides
Tenklo maintained guides for common use cases.
-
How to register your own Google Calendar OAuth app
Register an OAuth app with Google Calendar and obtain credentials to connect it to Tenklo -
How to setup webhooks with Google Calendar on Tenklo Set up Google Calendar push notifications using notification channels to receive real-time calendar and event updates
-
Google App & Security Review Pass Google's OAuth app verification to go to production
Official docs: Google Calendar API documentation
🧩 Pre-built syncs & actions for Google Calendar
Explore Nango-provided actions in your dashboard. Extend and customize them to fit your needs.
Others
| Function name | Description | Type | Source code |
|---|---|---|---|
add-attendee | Fetch an event, append an attendee, and patch the attendee list | Action | 🔗 Github |
clear-calendar | Clear the primary calendar by deleting all events. | Action | 🔗 Github |
create-acl-rule | Create an access control rule | Action | 🔗 Github |
create-all-day-event | Create an all-day calendar event using start and end dates | Action | 🔗 Github |
create-calendar | Create a new secondary Google Calendar with the specified title. | Action | 🔗 Github |
create-event | Create a calendar event | Action | 🔗 Github |
create-recurring-event | Create a recurring event with supplied start, end, and RRULE values | Action | 🔗 Github |
delete-acl-rule | Delete an access control rule | Action | 🔗 Github |
delete-calendar | Delete a calendar | Action | 🔗 Github |
delete-event | Delete a calendar event | Action | 🔗 Github |
find-free-slots | Query free/busy data and return gaps meeting a minimum duration. | Action | 🔗 Github |
get-acl-rule | Get an access control rule by ID | Action | 🔗 Github |
get-calendar-list-entry | Retrieve a calendar list entry with access role and colors | Action | 🔗 Github |
get-calendar | Get a calendar by ID | Action | 🔗 Github |
get-colors | Return available calendar and event color definitions | Action | 🔗 Github |
get-event | Get an event by ID | Action | 🔗 Github |
get-setting | Retrieve a single Google Calendar user setting by ID | Action | 🔗 Github |
import-event | Import an event as a private copy using an iCalendar UID. | Action | 🔗 Github |
insert-calendar-to-list | Add an existing calendar to the user's list with optional colors | Action | 🔗 Github |
list-acl-rules | List ACL rules for a calendar with pagination support | Action | 🔗 Github |
list-calendar-list | List calendars in the user's calendar list | Action | 🔗 Github |
list-event-instances | List instances of a recurring event | Action | 🔗 Github |
list-events | List events on a calendar | Action | 🔗 Github |
list-settings | List calendar settings | Action | 🔗 Github |
list-upcoming-events | List upcoming events from now, ordered by start time | Action | 🔗 Github |
move-event | Move an event to another calendar, changing its organizer. | Action | 🔗 Github |
patch-event | Partially update only provided event fields like time, location, or description | Action | 🔗 Github |
query-free-busy | Return free/busy blocks for one or more calendars in a time range | Action | 🔗 Github |
quick-add-event | Create an event from a text string | Action | 🔗 Github |
remove-attendee | Remove an attendee from a Google Calendar event by email | Action | 🔗 Github |
remove-calendar-from-list | Remove a calendar from the user's calendar list | Action | 🔗 Github |
search-events | Search a calendar's events by text query and optional time bounds | Action | 🔗 Github |
settings | Fetch all user settings across pages from Google Calendar | Action | 🔗 Github |
stop-channel | Stop push notifications for a channel | Action | 🔗 Github |
update-acl-rule | Update an access control rule | Action | 🔗 Github |
update-attendee-response | Fetch an event and update one attendee's response status | Action | 🔗 Github |
update-calendar-list-entry | Update a calendar list entry's settings | Action | 🔗 Github |
update-calendar | Update a calendar's metadata | Action | 🔗 Github |
update-event | Update a calendar event | Action | 🔗 Github |
watch-calendar-list | Subscribe to changes in the calendar list | Action | 🔗 Github |
watch-events | Subscribe to event changes on a calendar | Action | 🔗 Github |
watch-settings | Subscribe to changes in calendar settings | Action | 🔗 Github |
whoami | Return the current user's Google account ID and email | Action | 🔗 Github |
calendar-events | Incrementally sync full Google Calendar event objects | Sync | 🔗 Github |
calendar-list | Full sync of the user's calendar list, including access role, colors, primary/selected flags, and deleted status. | Sync | 🔗 Github |
settings | Sync calendar settings | Sync | 🔗 Github |