Skip to main content
Glama
icloud-mcp

icloud-mcp

by adamzaidi

list_calendars

Retrieve all iCloud calendars with IDs, names, and supported event types so you can select the right calendar for events.

Instructions

List all calendars in iCloud Calendar (e.g. Personal, Work, School). Returns calendarId, name, and supported event types. When ICLOUD_MCP_SUBSCRIBED_CALENDARS=on, configured read-only subscribed (ICS/webcal) calendars are included with readOnly:true and subscribed:true, and subscribedCalendars reports that setting.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "list_calendars"
  }
}

Input Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv2.5.1

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the burden and does a decent job: it discloses the read-only nature, the exact return fields, and non-obvious conditional behavior (subscribed ICS/webcal calendars appear with readOnly:true and subscribed:true, plus a subscribedCalendars flag reflecting the setting). It stops short of auth/permission requirements or failure modes, but the conditional-flag disclosure goes beyond what a bare list tool usually offers.

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?

Front-loaded with the core action and sample values, then the return shape, then the conditional edge case — a logical progression. The final sentence is dense and comma-heavy, but every clause carries new information, so nothing is wasted.

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 zero-parameter, read-only listing tool with no annotations and no output schema, the description supplies exactly what an agent needs: what is listed, what fields come back, and how results change under the subscribed-calendars setting. There is no material gap left for a correct invocation.

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?

The tool takes zero parameters, so the baseline is 4 — there is nothing for the description to disambiguate. The mention of an environment variable is genuinely useful context, but it is not a call-site parameter and does not raise the score further.

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 plus resource ('List all calendars in iCloud Calendar') and scopes it with examples (Personal, Work, School). The resource word 'calendars' cleanly separates it from siblings like list_events, list_mailboxes, and list_reminder_lists, and the enumerated return fields (calendarId, name, supported event types) remove any ambiguity about what comes back.

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

Usage Guidelines3/5

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

Usage is only implied — an agent can infer this is the discovery step before list_events or create_event, but the description never says so explicitly nor names any alternative or exclusion. The one conditional it does give (ICLOUD_MCP_SUBSCRIBED_CALENDARS=on) is about behavior, not about when to choose this tool.

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