Skip to main content
Glama

Answer an invitation

events_respond
Destructive

Accept, tentatively accept or decline an invitation - an RSVP of yes, maybe or no; the account's provider sends the answer, with message where given, to its organiser from the account's own address unless notify is none. Answering a whole series answers each occurrence answered apart from it too, and says under replaced how many of their answers it replaced. In a calendar connected by its server's password, the server sends it where it says it sends answers itself - every time and with no message, so a call there naming a message or notify other than all is refused - and the answer is refused where it says no such thing. An invitation in an iCloud calendar is answered from its invitation letter or in Apple's own Calendar app, never here.

Input Schema

NameRequiredDescriptionDefault
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.
notifyNoWhether the organiser is told: all where omitted, none to answer untold; on Google, externalOnly tells an organiser outside Google Calendar alone.
accountYesThe connected account, by the address calendars_list names.
eventIdYesThe event's id, as events_list names it.
messageNoWords sent to the organiser with the answer; on Google every guest of the event can read them too.
providerNoThe account's provider, as calendars_list names it; needed only where two connected accounts share an address.
responseYes
calendarIdNoThe calendar holding the event, by the calendarId events_list names; a Google account's event outside its default calendar needs it.

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.1/5.0
Behavior5/5

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

Annotations only declare destructive/open-world/not-read-only, but the description adds substantial behavior: the answer is sent from the account's own address, message visibility on Google, notify semantics, replacement counts for series, server-side answering for password-connected calendars, and the refusal conditions. This is exactly the kind of context annotations cannot convey.

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 front-loaded, but the rest is a single densely nested sentence with convoluted phrasing such as 'the answer is refused where it says no such thing.' The information earns its place, but the structure makes it harder to parse than necessary.

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 an 8-parameter mutation tool with no output schema, the description covers provider-specific refusals, series replacement reporting, and iCloud exclusion. It leaves some edge cases implicit, such as what happens when answering a non-invitation event, but is otherwise rich enough to call the tool correctly.

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 already 88%, so the baseline is 3. The description goes beyond it by explaining cross-parameter interactions: 'notify is none' suppresses sending the message, and on server-side calendars 'naming a message or notify other than all is refused.'

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

Purpose4/5

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

The opening clause gives a precise verb set and resource: 'Accept, tentatively accept or decline an invitation - an RSVP of yes, maybe or no.' That is clearly distinct from events_create, events_edit or events_cancel, though no sibling is named explicitly.

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?

It gives explicit when-not guidance ('An invitation in an iCloud calendar is answered from its invitation letter or in Apple's own Calendar app, never here') and scope-selection rules for series versus occurrences. It stops short of naming sibling tools as alternatives for unsupported cases.

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.