Skip to main content
Glama

update_event

Destructive

Update an existing event in place. Provide only the fields to change in the patch object. The eventType field is Google-only — returns EVENT_TYPE_NOT_SUPPORTED on Outlook/CalDAV. Datetime contract (start/end): same accepted shapes as create_event — date-only (isAllDay:true), "Z"/offset (absolute), or naive+matching timeZone. Three patch-specific rules: (1) omitting BOTH start and end leaves the stored times untouched (fields are never inferred from one another); (2) including start OR end REQUIRES isAllDay in the SAME patch — the event's current all-day status is never read or assumed, so a patch with only start and no isAllDay is rejected with 400 DATETIME_ALLDAY_REQUIRED; (3) supplying startTimeZone/endTimeZone WITHOUT the matching start/end is rejected with 400 DATETIME_TIMEZONE_WITHOUT_START — it would otherwise be silently dropped by some providers.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
patchYes
eventIdYesProvider event ID to update
accountIdYesAccount UUID
providerCalendarIdYesProvider-side calendar identifier

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Goes well beyond the destructiveHint=true annotation: documents provider-specific limits (eventType Google-only), specific error codes (EVENT_TYPE_NOT_SUPPORTED, DATETIME_ALLDAY_REQUIRED, DATETIME_TIMEZONE_WITHOUT_START), and the silent-drop failure mode it guards against. This is exactly the behavioral context an agent needs before a mutation.

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

Conciseness4/5

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

Purpose is front-loaded, then the datetime contract, then the numbered patch rules — a logical order with no filler. The rule sentences are dense and pack multiple clauses each, which costs some readability.

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

Completeness4/5

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

For a mutation tool with no output schema, it covers the risky parts (datetime patching, provider divergence, rejection modes) thoroughly. It doesn't describe the success response or confirm whether unspecified fields are always preserved, but nothing critical for correct invocation 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 75%, and the description adds real meaning on top: the interplay of start/end/isAllDay, what happens when both are omitted, and why timezone fields without their datetime are rejected. Enum fields like visibility and reminders get no prose, so it's not fully exhaustive.

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 ('Update an existing event in place') and immediately clarifies the patch semantics ('Provide only the fields to change'). It also anchors the datetime contract to create_event, letting an agent place it against the create/update/delete family without opening a 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?

Gives clear use-case framing (partial patch on an existing event) and rules for edge cases, including the explicit rejection behaviors. It does not explicitly say when to prefer create_event or get_event instead, but the update-only framing makes the boundary reasonably clear.

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.

Resources