Skip to main content
Glama

Change an event

events_edit
Destructive

Change, move or reschedule an event the account organises, in place and in one call: its subject, body, location, start and end, how it shows, its privacy, reminders and video link, and its guests - addGuests invited, removeGuests taken off. Only what is named changes: the event keeps its id, every other guest's answer and its join link, a start named alone keeps its length and an end named alone keeps its start. Start and end are named as events_create names them, so naming both in the other form turns a timed event all-day or back, and are written in the person's own time zone as events_create writes them. What the account's provider lacks is refused with the reason, as on events_create, and so is a new body for an Outlook online meeting, whose join details it holds. Changing guests takes inviting allowed on the account. A whole series' start and end are its first occurrence's, and a change to a whole series holding occurrences changed apart from it is refused, naming each by when its series set it, so none of theirs is undone. Its provider sends a meeting's guests the change from the account's own address - Apple from its own address under the person's name, and a calendar server from the account's own address, to every guest, where it says it sends updates itself, a meeting with guests refused elsewhere - as notify chooses. Like every write, the answer names the event's provider, its calendarId where its provider addresses it by one, and its webLink. Guests' own hours hold a change as they hold events_create: every guest's where its times change, an added guest's at its time otherwise.

Input Schema

NameRequiredDescriptionDefault
endNo
bodyNo
scopeNoFor an occurrence of a recurring series: occurrence, where omitted, acts on that occurrence alone, series on its whole series. A series named by its own seriesId is refused unless series is passed.
startNo
videoNoA Meet link on a Google account or a Teams link on a work Microsoft account, given back under joinUrl.
notifyNoWho the provider tells: every guest where omitted, externalOnly only guests outside Google Calendar, none nobody. Outlook tells every guest of a meeting it makes, changes or cancels, so there only an answer goes untold.
showAsNoHow it shows; Google shows busy or free alone.
accountYesThe connected account, by the address calendars_list names.
eventIdYesThe event's id, as events_list names it.
privacyNo
subjectNo
locationNo
providerNoThe account's provider, as calendars_list names it; needed only where two connected accounts share an address.
addGuestsNoAddresses to invite.
remindersNoMinutes before its start each reminder sounds, Outlook keeping one; empty for none.
calendarIdNoThe calendar holding the event, by the calendarId events_list names; a Google account's event outside its default calendar needs it.
guestZonesNoA guest's own time zone, only as the person names it - never inferred from an address, a language or a provider.
removeGuestsNoGuests to take off, by address.
unusualHoursAgreedNoTrue only once the person has agreed to send at the hours an answer named as unusual for a guest.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / provider / enum
      Previous value: -[
      -  "google",
      -  "microsoft",
      -  "icloud"
      -]New value: +[
      +  "google",
      +  "microsoft",
      +  "icloud",
      +  "caldav"
      +]
  2. Changed1 schema field changed
    • changedInput schema / properties / provider / enum
      Previous value: -[
      -  "google",
      -  "microsoft"
      -]New value: +[
      +  "google",
      +  "microsoft",
      +  "icloud"
      +]
  3. First observed

TDQS

A4.5/5.0
Behavior5/5

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

With annotations already covering safety (readOnly=false, destructive=true, openWorld=true), the description adds substantial non-obvious behavior: only named fields change, id and other guests' answers are preserved, start-alone/end-alone inheritance, timed↔all-day conversion, provider-specific refusals (Outlook online-meeting body, unsupported provider features), the 'inviting allowed' account requirement, series-divergence refusal semantics, and per-provider notification behavior. It even discloses the return payload shape despite no output schema.

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

Conciseness3/5

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

The purpose is correctly front-loaded, but the body is a dense multi-clause paragraph built from em-dashes and semicolons that is hard to parse on first read. Nearly every sentence carries real information, yet a bullets/short-sentence restructure would deliver the same content with far less parsing cost.

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 19-parameter destructive write with no output schema, the description covers everything an agent needs: mutation semantics, refusal cases and their reasons, permission prerequisites, notification side effects, timezone rules, series constraints, and the shape of the answer (provider, calendarId, webLink). Nothing material 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 68% with hand-written descriptions on the tricky fields (scope, notify, showAs, video, reminders, guestZones, calendarId). The description compensates further by explaining the interaction the schema cannot: start named alone keeps its length, end alone keeps its start, and naming both in the other form flips timed/all-day. Minor fields (subject, body, location, privacy) get no extra semantics, but they are self-evident.

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?

States a specific verb and resource ('Change, move or reschedule an event the account organises, in place and in one call') and enumerates exactly which fields are editable, including guest add/remove. This is clearly the in-place mutation tool, distinguishable from events_create (referenced for naming conventions) and from events_cancel/events_get by the listed field set.

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?

Gives a strong operating context: what counts as a change, how single-occurrence vs whole-series edits behave, and that a series with diverging occurrences is refused. It does not explicitly route the agent away from this tool to events_cancel for cancellation or events_create for new events, so the alternative-choice guidance is 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.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.