UpdateCalendarEvent
Update an existing calendar event. Only the supplied fields change; omitted fields keep their current values. The change is written to Google immediately and attendees are notified of it, so confirm details with the user first. Get the `eventId` from ListCalendarEvents. `scope` picks how much of a recurring series changes and is always required: \"this_event\" edits one occurrence (pass the occurrence's `recurrenceId` from ListCalendarEvents) and leaves the rest of the series alone; \"all\" edits the series itself — with `time` that MOVES EVERY OCCURRENCE, so never use \"all\" to reschedule a single occurrence. Non-recurring events use \"all\". There is no this-and-following update: end the series with DeleteCalendarEvent's \"this_and_following\" and create a new event instead. Passing `attendees` replaces the full attendee list — include everyone who should remain, not just additions. An empty string for `description` or `location` clears it. Fails on events from calendars the user cannot edit. `rsvp` sets the user's own response to an invitation and is independent of the field edits — it can be the only thing this call changes. It applies at the same `scope` as the rest of the call, and only works on events the user is actually an attendee of.
UpdateCalendarEvent
Update an existing calendar event. Only the supplied fields change; omitted fields keep their current values. The change is written to Google immediately and attendees are notified of it, so confirm details with the user first. Get the eventId from ListCalendarEvents.
scope picks how much of a recurring series changes and is always required: "this_event" edits one occurrence (pass the occurrence's recurrenceId from ListCalendarEvents) and leaves the rest of the series alone; "all" edits the series itself — with time that MOVES EVERY OCCURRENCE, so never use "all" to reschedule a single occurrence. Non-recurring events use "all". There is no this-and-following update: end the series with DeleteCalendarEvent's "this_and_following" and create a new event instead.
Passing attendees replaces the full attendee list — include everyone who should remain, not just additions. An empty string for description or location clears it. Fails on events from calendars the user cannot edit.
rsvp sets the user's own response to an invitation and is independent of the field edits — it can be the only thing this call changes. It applies at the same scope as the rest of the call, and only works on events the user is actually an attendee of.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
eventId |
string | Yes | The event's id, from ListCalendarEvents or CreateCalendarEvent. |
scope |
"all" | "this_event" |
Yes | How much of a recurring series an update applies to. |
recurrenceId |
string | No | The recurrenceId of the targeted occurrence, from its ListCalendarEvents entry. Required for "this_event"; omit for "all". |
title |
string | No | Replacement title. Omit to keep the current title. |
description |
string | No | Replacement event body/description. An empty string clears it; omit to keep the current one. |
location |
string | No | Replacement location label. An empty string clears it; omit to keep the current one. |
time |
EventTimeInput | No | Replacement time: a timed span with kind "timed" (startsAt, endsAt, optional timeZone) or whole days with kind "allDay" (startDate, exclusive endDate). Omit to keep the current time. |
attendees |
AttendeeInput[] | No | Replacement attendee list — replaces all current attendees, so include everyone who should remain. Omit to leave attendees unchanged. |
recurrenceLines |
string[] | No | Replacement RFC 5545 recurrence lines. An empty list makes the event one-off; omit to keep the current recurrence. Only valid with scope "all". |
conference |
"google_meet" | "remove" |
No | Change the event's video conference: "google_meet" attaches a fresh Google Meet, "remove" detaches the current conference. Omit to leave it untouched. |
reminders |
EventRemindersInput | No | Replacement notification reminders. useDefault: true follows the calendar's own defaults; otherwise overrides replaces the whole list with entries of method "popup" (a Kuuumba notification) or "email" and minutes before the start — an empty list silences the event. Omit to keep the current reminders. |
rsvp |
"accepted" | "declined" | "tentative" |
No | Set the user's own response to the invitation: "accepted", "declined", or "tentative". Omit to leave their response alone. |