This is a catch-all provider — any valid URL under
https://www.googleapis.com is supported. Google Calendar REST API endpoints. Construct URLs as https://www.googleapis.com/calendar/v3/{path} — common roots: calendars/primary/events, calendars/{calendarId}/events/{eventId}, users/me/calendarList, users/me/settings/timezone, freeBusy. Authentication is brokered through Pipedream Connect — the end-user sees a single “Pipedream wants to access your Google Account” consent screen on connect. Rules that prevent 400s and silent failures: timed events need start/end dateTime as RFC3339 WITH a UTC offset (e.g. 2026-06-11T09:00:00-04:00) or a timeZone field alongside; recurring events REQUIRE timeZone, and recurrence is an array of RFC5545 RRULE/RDATE/EXDATE lines with NO DTSTART or DTEND; timeMin/timeMax query params also need RFC3339 with offset. Prefer PATCH over PUT to update events — PUT replaces the whole resource and WIPES any field you omit. Listing in chronological order needs orderBy=startTime with singleEvents=true (Lava auto-adds singleEvents when you forget). Creating a Meet link via conferenceData.createRequest needs conferenceDataVersion=1 in the query (Lava auto-adds it). Attendee email notifications are controlled by the sendUpdates query param (all, externalOnly, none — default none, so invitations are NOT emailed unless you ask). The Lava gateway requires a JSON body on every non-GET call — for endpoints that take no body (quickAdd, delete), send an empty object as body_json. See https://developers.google.com/workspace/calendar/api/v3/reference for the full reference. The endpoints below are curated examples.Endpoints
Get the connected user’s default time zone. Use this as a cheap auth probe after connect, and to schedule events in the user’s local time without guessing.
GEThttps://www.googleapis.com/calendar/v3/users/me/settings/timezone — Free
- SDK
- cURL
List the calendars on the user’s calendar list with their IDs and access roles. Use calendar IDs from here in place of ‘primary’ to read or write other calendars.
GEThttps://www.googleapis.com/calendar/v3/users/me/calendarList — Free
- SDK
- cURL
List events on a calendar. For upcoming events in chronological order, pass timeMin (RFC3339 with offset), singleEvents=true, and orderBy=startTime. Responses are projected to scheduling essentials — pass filter {“mode”: “full”} for raw event resources.
GEThttps://www.googleapis.com/calendar/v3/calendars/primary/events?timeMin=2026-06-11T00:00:00Z&singleEvents=true&orderBy=startTime&maxResults=25 — Free
- SDK
- cURL
Get a single event by ID, including full attendee and conference detail.
GEThttps://www.googleapis.com/calendar/v3/calendars/primary/events/{eventId} — Free
- SDK
- cURL
Create an event. Timed events need start/end dateTime in RFC3339 with an offset or a timeZone field; recurring events require timeZone and RFC5545 recurrence lines. Add sendUpdates=all to email invitations to attendees (default sends none).
POSThttps://www.googleapis.com/calendar/v3/calendars/primary/events?sendUpdates=all — Free
- SDK
- cURL
Create an event from a natural-language sentence in the text query param (URL-encoded), e.g. “Lunch with Sam tomorrow at noon”. Google parses the time and title. Takes no body fields — send an empty JSON object as the body.
POSThttps://www.googleapis.com/calendar/v3/calendars/primary/events/quickAdd?text=Lunch%20with%20Sam%20tomorrow%20at%20noon — Free
- SDK
- cURL
Query busy intervals across one or more calendars for a time window — the availability check before proposing a meeting time. timeMin/timeMax are RFC3339 with offset; items lists calendar IDs.
POSThttps://www.googleapis.com/calendar/v3/freeBusy — Free
- SDK
- cURL
Partially update an event — only the fields in the body change. This is the recommended way to update; use PUT only when replacing the whole event.
PATCHhttps://www.googleapis.com/calendar/v3/calendars/primary/events/{eventId} — Free
- SDK
- cURL
Replace an event entirely. PUT has no patch semantics — any field omitted from the body is wiped, and start/end are required. GET the event first, modify, then PUT it back; prefer PATCH for partial changes.
PUThttps://www.googleapis.com/calendar/v3/calendars/primary/events/{eventId} — Free
- SDK
- cURL
Delete an event. Returns an empty 204 response on success. Add sendUpdates=all to email cancellations to attendees. Takes no body fields — send an empty JSON object as the body.
DELETEhttps://www.googleapis.com/calendar/v3/calendars/primary/events/{eventId}?sendUpdates=all — Free
- SDK
- cURL
Next Steps
All Providers
Browse all supported AI providers
Forward Proxy
Learn how to construct proxy URLs and authenticate requests