Skip to main content
Glama
iCloud Calendar MCP Server

iCloud Calendar MCP Server

by Glob0x17

delete_event

Destructive

Permanently removes an iCloud Calendar event by its unique identifier after user confirmation; use when an event must be canceled or removed and the action cannot be undone.

Instructions

Delete a calendar event by its identifier.

Before using this tool, make sure to:

  1. Confirm with the user that they want to delete the event

  2. Verify the event exists by listing events first

  3. Note that this action cannot be undone

Args: event_id: Unique identifier of the event to delete

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "event_id": "<event_id>"
    },
    "name": "delete_event"
  }
}

Input Schema

NameRequiredDescriptionDefault
event_idYes

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.1

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and openWorldHint=true, so the safety profile is partly structured. The description still adds real value beyond that: it states the deletion is permanent ('cannot be undone') and mandates a confirm-with-user and pre-verification step. It does not describe failure modes (event not found, permission errors), which keeps it from a 5.

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?

Front-loaded with the core action, then a short numbered precondition list, then a compact Args block. Every line carries operational value and there is no filler or repetition.

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?

An output schema exists, so return values need no explanation, and the description covers the destructive workflow an agent needs before calling. What remains missing is error/not-found behavior and any authorization requirement, which matter for a single-parameter destructive tool but are minor given the annotation coverage.

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

Parameters3/5

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

There is a single required parameter with 0% schema description coverage, so the description carries the burden. It supplies only 'Unique identifier of the event to delete,' which largely restates the parameter name and does not say where to obtain the ID (e.g., from list_events) or its format.

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 description opens with a specific verb-plus-resource statement: 'Delete a calendar event by its identifier.' The mutation verb 'delete' plus scoping to 'by its identifier' clearly separates it from the create_event/update_event/list_events siblings, though it never names those alternatives 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 concrete preconditions: confirm with the user, verify the event exists by listing events first (an implicit pointer to list_events), and note the action is irreversible. There is no explicit 'do not use this when...' exclusion, but the workflow guidance is unusually clear for a destructive tool.

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