Skip to main content
Glama

calendar_create_calendar

Create a new empty iCloud calendar for a project, trip, or club when no existing calendar fits; it syncs to the owner's devices.

Instructions

Create a new, empty event calendar in the owner's iCloud account; it syncs to their devices.

Use when: the owner wants a separate calendar (a project, a trip, a club) and calendar_list_calendars shows none that fits. Not for renaming (use calendar_update_calendar), for Reminders lists (use reminders_create_list), or for filing existing events (create the calendar, then use calendar_move_event). Parameters: name is 1 to 100 characters on one line; runs of whitespace are collapsed to one space. Behavior: refused, creating nothing, when a calendar with that name already exists in any case, so a repeat of a successful call errors rather than duplicating. Other calendar tools see it at once; the owner's devices after sync. To undo, use calendar_delete_calendar (an empty calendar is deleted without a preview). Returns: {created: true, name, id}; pass the name or id to the other calendar tools. Errors: "There is already a calendar called ..." (use that one), or a name that is empty, too long or on several lines.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesName of the new calendar.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -{
      -  "additionalProperties": true,
      -  "title": "calendar_create_calendarDictOutput",
      -  "type": "object"
      -}New value: +null
  2. Addedv0.11.0

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only declare the write/open-world/non-idempotent profile; the description goes further, disclosing the duplicate-name refusal (and that a repeat call errors rather than duplicating, consistent with idempotentHint=false), visibility timing across calendar tools vs. device sync, that undo is via calendar_delete_calendar with no preview, and the exact return shape and error strings.

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?

It is longer than most one-parameter tools, but it is clearly front-loaded (purpose, then Use when, Parameters, Behavior, Returns, Errors) and every labeled section earns its place. Slightly dense, but no filler sentences.

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 one-parameter mutation with no output schema, the description covers the return value, the undo path, cross-tool visibility, the failure modes, and sibling routing. Nothing an agent needs in order to call this correctly 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 100% and the schema itself only says 'Name of the new calendar', so the baseline would be 3. The description adds real constraints beyond the schema: 1-100 characters, single line, whitespace runs collapsed to one space, plus the empty/too-long/multiline error conditions.

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?

The first clause states a specific verb+resource+scope: 'Create a new, empty event calendar in the owner's iCloud account', and adds the sync consequence. It is unmistakably distinct from siblings like calendar_create_event (events) and reminders_create_list (Reminders lists), which are 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 Guidelines5/5

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

It gives an explicit 'Use when' condition (owner wants a separate calendar and calendar_list_calendars shows none that fits) and four 'Not for' exclusions that each redirect to the correct alternative (calendar_update_calendar, reminders_create_list, calendar_move_event). Nothing is left to inference.

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