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.