Google Actions
Update Calendar Event
Reschedule an event from chat
Bot message updates the location of a known event

Telegram Bot
Bot Update
message
Update Calendar Event
eventId
{{vault.LATEST_EVENT_ID}}
location
message
eventId
htmlLink
Update fields on an existing Google Calendar event. Only the inputs you actually fill are sent — other fields stay unchanged. Attendees are emailed about the change automatically.
Inputs
| Input | Type | Description |
|---|---|---|
| eventId | string | Required. The event id (returned by Create / List / Get Event). |
| summary | string | Optional new title. |
| start | string | Optional new start — ISO 8601 with offset (e.g. 2026-06-15T14:00:00+03:00). |
| end | string | Optional new end — same format as start. |
| description | string | Optional new description. |
| location | string | Optional new location. |
| attendees | string | Optional comma-separated emails — replaces the entire attendee list (Google PATCH semantics for arrays). |
At least one of the optional fields must be filled — an empty PATCH would be a no-op and is rejected client-side with an error.
Outputs
| Output | Type | Description |
|---|---|---|
| eventId | string | Same id you passed in (for chaining). |
| htmlLink | string | Link to the updated event in Google Calendar UI. |
| error | string | Empty on success. Contains Google's error message when status is ERROR. |
Permissions required
Manage Calendar events capability (calendar.events). Reconnect with the box checked if it's missing.
Notes
- Attendees field replaces, not merges. If you set
[email protected], anyone else previously invited gets removed (and emailed about the cancellation). To add someone, you have to send the full list. - Send updates flag is hardcoded to
all— every change emails attendees. - Only fields you fill are sent. Empty inputs are not interpreted as "clear this field" — they are just ignored. To clear a field, the API needs explicit null/empty values, which this action doesn't expose yet. Open an issue if you need it.
Example use cases
- Reschedule on conflict — flow lists today's events, finds an overlap with a new request, and updates the existing event's
start/endinstead of creating a new one. - Add a note from chat — Telegram message updates the
descriptionof the latest event with the user's note. - Pin location after the fact — once a meeting room is decided, flow patches
location.
Errors you might see
error output | Meaning |
|---|---|
eventId is required | The eventId input was empty. |
At least one field … must be provided to update | All optional fields were empty. |
Not Found | No event with that id on the primary calendar. |
Invalid time format | start / end is not a valid ISO 8601 datetime. |
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. |