Google Actions
Create Calendar Event
Booking form → Calendar event
API Trigger receives a form payload, creates a calendar event with the booker as attendee
Event
API Trigger
body
Create Calendar Event
summary
Booking with {{body.name}}
start
{{body.start}}
end
{{body.end}}
attendees
{{body.email}}
eventId
htmlLink
Create an event on your primary Google Calendar and (optionally) email invites to attendees.
Inputs
| Input | Type | Description |
|---|---|---|
| summary | string | Required. Event title. |
| start | string | Required. ISO 8601 datetime with timezone offset — e.g. 2026-06-15T14:00:00+03:00 or 2026-06-15T11:00:00Z. |
| end | string | Required. ISO 8601 datetime, same format as start. |
| description | string | Optional event description / notes. |
| location | string | Optional location text — physical address, room name or URL. |
| attendees | string | Optional comma-separated list of attendee emails — [email protected], [email protected]. Each gets a calendar invite (see Notes below). |
Outputs
| Output | Type | Description |
|---|---|---|
| eventId | string | Google Calendar event id |
| htmlLink | string | Direct link to the event in Google Calendar UI |
| error | string | Empty on success. Contains Google's error message when status is ERROR |
Permissions required
This action needs the Manage Calendar events capability on the Google connection (OAuth scope calendar.events). If the user unchecked it during the wizard, the run fails with 403 — open the connection card, click Reconnect Google, re-check Manage Calendar events.
Notes
- The action posts with
sendUpdates=all, so attendees are emailed when the event is created. A silent-insert option isn't exposed yet — if you need it, use the API directly or open a request for an extra input. - Events are created on the user's primary calendar only. Shared / secondary calendars are not supported yet.
- Times must be ISO 8601 with offset (
+03:00orZ). Without an offset Google rejects the call asInvalid time format. - All-day events (date-only, no time) are not supported on this action — pass full timestamps.
Example use cases
- Form → meeting — API Trigger receives a booking form → Create Calendar Event for the requested slot, attendees = booker + you.
- Telegram → standup —
/standupcommand in a chat creates a 15-minute calendar slot tomorrow with the team list. - Helper flow scheduling — a parent flow gathers a list of pending tasks and a helper flow creates one event per task.
Errors you might see
error output | Meaning |
|---|---|
Event summary (title) is required | The summary input was empty after sources resolved. |
Event start time is required / Event end time is required | Same — the time inputs ended up empty. |
Invalid time format (or similar 400 from Google) | start / end is not a valid ISO 8601 datetime, or missing offset. |
Insufficient Permission | Connection lacks calendar.events. Reconnect with the box checked. |
Google connection has been revoked — reconnect it from the Connections page. | The user revoked Fainflow on Google's side, or refresh token expired. |