> ## Documentation Index
> Fetch the complete documentation index at: https://docs.macro.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 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 Macro 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.                                                                                                                                                                                          |
