Google Calendar Block
Manage Google Calendar events
The Google Calendar block integrates Google Calendar into your workflow so you can create, read, update, and list calendar events using OAuth authentication. Reach for it to automate scheduling, check availability, manage attendees, and send invitations as part of an automated flow. Email invitations are sent asynchronously and delivery depends on recipients' Google Calendar settings.
Overview
| Property | Value |
|---|---|
| Type | google_calendar |
| Category | tools |
| Color | #E0E0E0 |
When to Use
- Create calendar events with a title, description, location, start/end times, and attendees.
- List events within a time window to check availability or build a schedule digest.
- Get the full details of a specific event by its ID.
- Add an event quickly from natural language (e.g. "Meeting with John tomorrow at 3pm for 1 hour").
- Invite additional attendees to an existing event, optionally replacing the current attendee list.
- Control whether email notifications go to all attendees, external attendees only, or no one.
Configuration
Operation
Choose what the block does. The selected operation controls which fields are shown below.
| Label | ID |
|---|---|
| Create Event | create |
| List Events | list |
| Get Event | get |
| Quick Add (Natural Language) | quick_add |
| Invite Attendees | invite |
Google Calendar Account
Required OAuth credential connecting the Google Calendar account used for the request (scope https://www.googleapis.com/auth/calendar). Select an account from the OAuth picker.
Calendar
In basic mode, use the file-selector to pick a calendar from your account. In advanced mode, type a Calendar ID directly (e.g. primary or calendar@gmail.com). Maps to the calendarId input in basic mode and manualCalendarId in advanced mode. Defaults to primary at runtime if neither is provided.
Event Title (summary) — Create only
Required. The title/summary of the new event (e.g. Meeting with team).
Description (description) — Create only
Optional. A longer description for the event body.
Location (location) — Create only
Optional. The physical or virtual location of the event (e.g. Conference Room A).
Start Date & Time (startDateTime) — Create only
Required. Event start in RFC3339 format, e.g. 2025-10-28T14:00:00-08:00 or 2025-10-28T22:00:00Z.
End Date & Time (endDateTime) — Create only
Required. Event end in RFC3339 format, e.g. 2025-10-28T15:00:00-08:00 or 2025-10-28T23:00:00Z.
Attendees (attendees) — Create, Quick Add, Invite
A comma-separated list of email addresses, e.g. john@example.com, jane@example.com. The block converts this to an array before sending to the API. Required for Quick Add.
Start Time Filter (timeMin) — List only
Optional. Lower bound for events to return (RFC3339 timestamp). Events starting before this time are excluded.
End Time Filter (timeMax) — List only
Optional. Upper bound for events to return (RFC3339 timestamp). Events starting after this time are excluded.
Event ID (eventId) — Get and Invite only
Required for both Get and Invite. The unique ID of the calendar event to fetch or update.
Natural Language Event (text) — Quick Add only
Required. A plain-English description of the event, e.g. Meeting with John tomorrow at 3pm for 1 hour. Google Calendar's NLP parses the time and title automatically.
Replace Existing Attendees (replaceExisting) — Invite only
Controls whether new attendees are merged with or replace the current attendee list.
| Label | ID |
|---|---|
| Add to existing attendees | false |
| Replace all attendees | true |
Send Email Notifications (sendUpdates) — Create, Quick Add, Invite only
Controls how Google Calendar delivers email invitations to attendees. Defaults to all if not set.
| Label | ID |
|---|---|
| All attendees (recommended) | all |
| External attendees only | externalOnly |
| None (no emails sent) | none |
Inputs & Outputs
-
Inputs:
operation(string) — Operation to perform (create,list,get,quick_add,invite)credential(string) — Google Calendar OAuth access tokencalendarId(string) — Calendar identifier (from selector, basic mode)manualCalendarId(string) — Manual calendar identifier (advanced mode)summary(string) — Event title (Create)description(string) — Event description (Create)location(string) — Event location (Create)startDateTime(string) — Event start time in RFC3339 format (Create)endDateTime(string) — Event end time in RFC3339 format (Create)attendees(string) — Comma-separated attendee email list (Create, Quick Add, Invite)timeMin(string) — Start time filter in RFC3339 format (List)timeMax(string) — End time filter in RFC3339 format (List)eventId(string) — Event identifier (Get, Invite)text(string) — Natural language event description (Quick Add)replaceExisting(string) — Whether to replace existing attendees:"true"or"false"(Invite)sendUpdates(string) — Email notification mode:all,externalOnly, ornone(Create, Quick Add, Invite)
-
Outputs:
content(string) — Human-readable operation result message (e.g. confirmation of creation, count of events found)metadata(json) — Full event details:id,htmlLink,status,summary,description,location,start,end,attendees,creator,organizer(for List: alsoeventsarray,nextPageToken,nextSyncToken,timeZone)
Tools
- Google Calendar Create Event (
google_calendar_create) — Creates a new event on the specified calendar. Accepts title, description, location, RFC3339 start/end times, optional timezone, attendee emails, and notification preference. - Google Calendar List Events (
google_calendar_list) — Returns all events in a calendar, optionally bounded bytimeMinandtimeMaxRFC3339 timestamps. Response includes an events array with pagination tokens. - Google Calendar Get Event (
google_calendar_get) — Fetches a single event by its ID from the specified calendar, returning full event details. - Google Calendar Quick Add (
google_calendar_quick_add) — Creates an event from a natural-language string using Google Calendar's NLP. Optionally patches attendees onto the created event immediately after. - Google Calendar Invite Attendees (
google_calendar_invite) — Adds or replaces attendees on an existing event identified byeventId. Fetches the current event first, merges or replaces the attendee list, then PUTs the full event back to preserve all other fields.
YAML Example
google_calendar_1:
type: google_calendar
name: "Google Calendar"
inputs:
operation: "create"
credential: "{{credentials.google-calendar}}"
calendarId: "primary"
summary: "Meeting with team"
startDateTime: "2025-10-28T14:00:00-08:00"
endDateTime: "2025-10-28T15:00:00-08:00"
attendees: "john@example.com, jane@example.com"
sendUpdates: "all"
connections:
outgoing:
- target: next-block-id