calendar-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_calendarsA | List all Calendar.app calendars across all accounts, with name, UUID, color, and account info. UUIDs can be passed to list_events, search_events, and get_event to filter by calendar. |
| list_eventsA | List calendar events within a date range. Queries the Calendar.app SQLite database via OccurrenceCache, which correctly expands recurring event instances rather than just listing master events. Returns events sorted by start time. |
| get_eventA | Get full details of a single Calendar.app event by UUID, including attendees and all metadata. The uuid field is returned by list_events and search_events. |
| search_eventsA | Search Calendar.app events by text across title, description, and location. Queries CalendarItem directly for fast full-text matching. For recurring events returns the master event; use list_events for occurrence-level detail. |
| create_eventA | Create a new event in Calendar.app. Goes through AppleScript so Calendar.app syncs the new event to all connected accounts. Returns the uid of the created event. Supports recurring events via the recurrence field. |
| update_eventA | Update properties of an existing Calendar.app event identified by its uid. Only provided fields are changed. Goes through AppleScript so changes sync to all connected accounts. |
| delete_eventA | Permanently delete a Calendar.app event identified by its uid. Goes through AppleScript so the deletion syncs to all connected accounts. This action cannot be undone. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 7 tools
Each tool targets a distinct operation: fetching one event, listing by range, searching by text, listing calendars, and the create/update/delete lifecycle. The overlap between list_events and search_events is clearly resolved by different query methods and return semantics.
All tools follow a consistent verb_noun snake_case pattern: get/list/search/create/update/delete plus event/calendars. Pluralization is used sensibly for list operations, so there are no confusing deviations.
Seven tools is well-scoped for a calendar server. Each tool covers a distinct and necessary operation without redundancy, and there is no bloat or overly thin coverage.
The event lifecycle is fully covered with create, get, list, search, update, and delete, and calendar enumeration supports filtering and event retrieval. Calendar creation and modification are reasonably left out since calendars are typically account-managed, so there are no critical dead ends.