Skip to main content
Glama

Update an event

update_event
DestructiveIdempotent

Partially 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

TableJSON Schema
NameRequiredDescriptionDefault
summaryNoNew event title.
add_meetNoAttach a Google Meet conference. The returned conferenceData may be status=pending — re-run get_event for the final Meet link.
color_idNoEvent color id ("1".."11"; the palette is fixed by Google).
end_dateNoAll-day event end date, EXCLUSIVE — the day after the last day (a one-day event on the 5th ends on the 6th).
event_idYesThe event id from list_events or create_event output. A recurring-instance id (masterId_20260101T100000Z from list_event_instances) addresses one occurrence.
locationNoFree-form location, e.g. a room name or address.
attendeesNoGuest 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.
remindersNoCustom reminders (max 5). Setting this turns default reminders off for the event.
time_zoneNoIANA time zone for start/end (e.g. "Europe/Berlin"). REQUIRED for recurring events; otherwise optional when the RFC3339 offsets already say everything.
recurrenceNoRRULE/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_dateNoAll-day event start date (YYYY-MM-DD). Pair with end_date.
visibilityNoWho can see event details on a shared calendar.
calendar_idYesThe calendar id from list_calendars, or "primary" for the authenticated user's main calendar.
descriptionNoEvent description (plain text or simple HTML).
send_updatesNoWho 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.
transparencyNoopaque = the event blocks time in free/busy (default); transparent = it does not (shows as free).
end_date_timeNoTimed event end, RFC3339. Pair with start_date_time.
start_date_timeNoTimed event start, RFC3339 (e.g. 2026-09-01T10:00:00+02:00 or ...Z). Pair with end_date_time.
guests_can_modifyNoWhether guests may edit the event.
use_default_remindersNoUse the calendar's default reminders (ignored when reminders[] is given).
guests_can_invite_othersNoWhether guests may invite more people.
guests_can_see_other_guestsNoWhether guests can see the guest list.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes well beyond the annotations by disclosing the wholesale-replacement semantics for attendees and reminders, the necessity of sending both start and end for time changes, the master-vs-instance recurrence behavior, and the notification default (send_updates defaults to none). These are behavioral traits the annotations (readOnly=false, destructiveHint=true, idempotentHint=true, openWorldHint=true) do not convey, and they do not contradict any of them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Every sentence carries a distinct operational warning: PATCH semantics, replacement behavior, time pairing, recurrence addressing, notification defaults, applicability, and return value. The most critical constraint is front-loaded in the first sentence, and there is no filler or repetition of schema content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 22-parameter mutation tool with no output schema, the description covers all major failure modes: lost guest lists, broken time updates, accidental series-wide changes, silent notifications, and OOO/focus-time applicability. It also states the return value ("Returns the updated event"). Remaining details like the exclusive end_date are already in the schema, so nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so each parameter is already documented. The description adds update-specific meta-semantics the schema cannot express uniformly: PATCH merge behavior, "a provided nested object REPLACES its predecessor wholesale", the requirement to pair start/end, and the send_updates default. It does not restate individual parameter formats, which the schema already covers.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening phrase "Partially updates an event (PATCH): only the provided fields change" names a specific verb, resource, and method in one breath. It further distinguishes itself from siblings by spelling out the recurrence nuance (instance id vs series master id) and noting it "Also works to update Out of Office / Focus Time blocks," so an agent can separate it from create_event, delete_event, and move_event without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides strong conditional routing: "get_event first, send the complete new list" for attendees, "pass that instance's id (from list_event_instances)" for rescheduling one recurrence, and "Guests hear about the change only with send_updates=all". It references sibling tools as preconditions. It does not explicitly contrast against move_event (for a pure time shift) or delete_event, so exclusions are implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/A1-x-Tech/mcp-google-calendar'

If you have feedback or need assistance with the MCP directory API, please join our Discord server