Update event
update_eventUpdates an event. title, start and end describe the complete new state — including whether it is all-day: an event created all-day becomes a timed event if this call passes timestamps, and vice versa.
Two kinds of event are addressable:
Events THIS access created (via
event_idfrom create_event) — always.Any other event in a calendar the user allowed managing, visible in
list_calendarsasmanageable: true. Their ids come fromget_availability.
Four things are refused, and each says what to do instead — pass that on rather than retrying:
• the calendar is not released for managing (the user can allow it per calendar)
• it is shared at less than full detail (a setting, not a temporary error)
• the event is a synchronised COPY — change the original in the named source calendar, the change reaches this one by itself
• someone else organises it — call respond_to_event with response: "declined" and the same event_id instead
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | New end — same form as `start`; INCLUSIVE for all-day events. | |
| start | Yes | New start — ISO 8601 with timezone (…+02:00 or …Z), or a bare date (2026-07-28) for an all-day event. | |
| title | Yes | ||
| all_day | No | Force an all-day event; time components in start/end are discarded. | |
| event_id | Yes | Identifier from create_event | |
| location | No | ||
| time_zone | No | IANA zone, e.g. America/New_York. Preserves the named zone for timed events (so recurrences follow daylight saving) and decides the local day for all-day ones. Defaults to UTC. | |
| calendar_id | No | ||
| description | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| updated | Yes | ||
| event_id | Yes | ||
| calendar_id | Yes |