calendar_calendars
Reads calendar collections. Use to inspect available calendars before creating or updating events.
Read and write Apple Reminders and Calendar on macOS — tasks, checklists, lists and events — through EventKit, with the native apps as the store.
LABSCO SUMMARY
Because everything lands in EventKit, what an agent writes shows up on the iPhone in the same second and what you set by hand reads back through the same tools. The write surface is deliberately narrower than the read surface: alarms, recurrence and locations round-trip but are configured in the Apple apps.
A macOS-only MCP server over EventKit that covers both Apple Reminders and Apple Calendar. Five service-scoped tools take an action field — read, create, update, delete — across reminders, their subtasks, reminder lists, calendar events and the calendars themselves. The EventKit work is done by a vendored event Swift CLI that the published npm package ships pre-built, so there is no separate install step.
reminders_tasksreminders_tasksreminders_subtasksreminders_listsspan scoping deletes across a recurring series — calendar_eventscalendar_calendarsYYYY-MM-DD, YYYY-MM-DD HH:mm:ss local time, or ISO 8601 with a timezonemacOS and Node.js 20 or later; run npx mcp-server-apple-events (published as mcp-server-apple-events 1.5.0). Building from a clone additionally needs Xcode Command Line Tools and pnpm. macOS attributes the privacy prompt to the vendored event binary, so the first call asks for access to Reminders and Calendars once and that single grant covers every MCP client on the machine. Two writes need more than that: inviting attendees to an event goes through Calendar.app scripting and needs an Automation grant plus a GUI session, and excepting one occurrence of a recurring series with occurrenceDate goes over CalDAV and needs ICLOUD_APPLE_ID with an app-specific password. Alarms, recurrence rules and location triggers read back but cannot be written here; set them in Reminders.app or Calendar.app. Headless runs cannot answer a permission prompt, so a stuck EventKit call is killed after 30 s and returns an error — tune it with EVENTKIT_CLI_TIMEOUT_MS.
One command — npx mcp-server-apple-events
USE CASES
Create the reminder in the right list with a due date, priority and tags, then attach the checklist items as subtasks so progress is visible in Reminders.app rather than buried in a note.
Read the events in today's window and the reminders due today, then block the remaining work into the calendar as new events.
Filter reminders by list, priority, tag or overdue window, then update or delete in place. Cross-list moves are not supported, so a reminder that belongs elsewhere is recreated rather than moved.
Delete the event with occurrenceDate set to that date, which routes over CalDAV and removes only that occurrence. Without it, a delete scoped to a single event can only ever except the series start.
Update the event with the attendee addresses on their own — attendees travel through Calendar.app while every other field travels through EventKit, so a combined update is refused rather than half-applied.
Counted once with only startup setup. Other versions, modes or optional credentials may expose a different list.
calendar_calendarsReads calendar collections. Use to inspect available calendars before creating or updating events.
calendar_eventsManages calendar events (time blocks). Supports reading, creating, updating, and deleting calendar events.
reminders_listsManages reminder lists. Supports reading, creating, updating, and deleting reminder lists.
reminders_subtasksManages subtasks/checklists within reminders. Subtasks are stored in the notes field and visible in the native Reminders app. Use this to create checklist items for a reminder.
reminders_tasksManages reminder tasks. Supports reading, creating, updating, and deleting reminders.
BEFORE YOU INSTALL
5 tools when we connected.
CONTEXT COST
Rated by the size of the 5 tool definitions that ride along on every turn, not by how many there are
INSTALLATION
npx mcp-server-apple-events{
"mcpServers": {
"apple-reminders": {
"command": "npx",
"args": [
"-y",
"mcp-server-apple-events"
]
}
}
}Open Settings → Tools and click "+"
Set Type to stdio and ID to apple-reminders
Set Command to npx and Args to -y mcp-server-apple-events
git clone https://github.com/FradSer/mcp-server-apple-events.git
cd mcp-server-apple-events
pnpm install
pnpm build{
"mcpServers": {
"apple-reminders": {
"command": "node",
"args": [
"<YOUR_PATH_TO_MCP_SERVER_APPLE_EVENTS>/dist/index.js"
]
}
}
}Building from source needs Xcode Command Line Tools and pnpm; pnpm install also builds the bundled event helper. <YOUR_PATH_TO_MCP_SERVER_APPLE_EVENTS> is the full path of your clone. The npx route in the other tabs needs none of this.