Update an event
update_eventPartially update Google Calendar events: change time, title, attendees, or reminders without overwriting unspecified fields. Reschedule one recurring occurrence and notify guests.
Instructions
Partially updates an event (PATCH): only the provided fields change, but a provided nested object REPLACES its predecessor wholesale — attendees replaces the entire guest list (get_event first, send the complete new list), reminders replaces all overrides, and a time change should carry BOTH the new start and end (start_date_time + end_date_time, or start_date + end_date). To reschedule one occurrence of a recurring series, pass that instance's id (from list_event_instances) as event_id; passing the series master id changes every occurrence. Guests hear about the change only with send_updates=all. Also works to update Out of Office / Focus Time blocks. Returns the updated event.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| summary | No | New event title. | |
| add_meet | No | Attach a Google Meet conference. The returned conferenceData may be status=pending — re-run get_event for the final Meet link. | |
| color_id | No | Event color id ("1".."11"; the palette is fixed by Google). | |
| end_date | No | All-day event end date, EXCLUSIVE — the day after the last day (a one-day event on the 5th ends on the 6th). | |
| event_id | Yes | The event id from list_events or create_event output. A recurring-instance id (masterId_20260101T100000Z from list_event_instances) addresses one occurrence. | |
| location | No | Free-form location, e.g. a room name or address. | |
| attendees | No | Guest list. On update this REPLACES the whole list — fetch the event first and send the complete new list. Invitation emails go out only with send_updates=all. | |
| reminders | No | Custom reminders (max 5). Setting this turns default reminders off for the event. | |
| time_zone | No | IANA time zone for start/end (e.g. "Europe/Berlin"). REQUIRED for recurring events; otherwise optional when the RFC3339 offsets already say everything. | |
| recurrence | No | RRULE/RDATE/EXRULE/EXDATE lines (RFC 5545) making the event recurring, e.g. ["RRULE:FREQ=WEEKLY;BYDAY=MO,WE"]. Requires the timed pair plus time_zone. | |
| start_date | No | All-day event start date (YYYY-MM-DD). Pair with end_date. | |
| visibility | No | Who can see event details on a shared calendar. | |
| calendar_id | Yes | The calendar id from list_calendars, or "primary" for the authenticated user's main calendar. | |
| description | No | Event description (plain text or simple HTML). | |
| send_updates | No | Who receives an email about this change: all guests, only guests outside your organization, or nobody. Defaults to none — attendees are NOT notified unless you pass all. | |
| transparency | No | opaque = the event blocks time in free/busy (default); transparent = it does not (shows as free). | |
| end_date_time | No | Timed event end, RFC3339. Pair with start_date_time. | |
| start_date_time | No | Timed event start, RFC3339 (e.g. 2026-09-01T10:00:00+02:00 or ...Z). Pair with end_date_time. | |
| guests_can_modify | No | Whether guests may edit the event. | |
| use_default_reminders | No | Use the calendar's default reminders (ignored when reminders[] is given). | |
| guests_can_invite_others | No | Whether guests may invite more people. | |
| guests_can_see_other_guests | No | Whether guests can see the guest list. |