Apple Calendar & Reminders
FreeNot checkedRead Apple Calendar events and Reminders on macOS via EventKit.
About
Read Apple Calendar events and Reminders on macOS via EventKit.
README
A macOS MCP server that gives Claude read access to Apple Calendar and Reminders via EventKit. Communicates over stdio using JSON-RPC.
Requirements
- macOS 13.0+
- Swift 6.0+
Build
git clone https://github.com/dickdavis/apple-bridge-mcp.git
cd apple-bridge-mcp
swift build -c release
Binary: .build/release/AppleBridge
Test
swift test
Tests use a mock EventKit layer and do not require system permissions.
Install
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"apple-bridge": {
"command": "/absolute/path/to/.build/release/AppleBridge"
}
}
}
Restart Claude Desktop after updating the config.
Claude Code
Add to ~/.claude/settings.json or project-level .claude/settings.json:
{
"mcpServers": {
"apple-bridge": {
"command": "/absolute/path/to/.build/release/AppleBridge"
}
}
}
Other MCP Clients
Point any stdio-capable MCP client at the binary. No arguments or environment variables required.
Permissions
macOS will prompt for Calendar and Reminders access on first use. Grant access when prompted.
If the permission dialogs never appear (common when running inside tmux, screen, or other terminal multiplexers), run the following from your terminal emulator directly:
apple-bridge-mcp --permissions
Important: This command must be run from the terminal emulator itself (e.g. Terminal.app, iTerm2, Warp), not from within tmux or screen. macOS requires a direct connection to the window server to display permission dialogs. When run inside a multiplexer, the dialogs are silently suppressed and access is denied.
Permissions are checked per invocation. Granting or revoking access takes effect immediately without restarting the server.
Tools
Calendar
calendar_list_calendars — List all calendars.
- No parameters.
- Returns:
{ id, title, type, color, source, isImmutable }for each calendar.
calendar_get_events — Fetch events in a date range.
startDate(string, required) — ISO 8601endDate(string, required) — ISO 8601calendarIds(string array, optional) — filter by calendarsearchText(string, optional) — filter by title/notes
calendar_get_event_detail — Full detail for one event.
eventId(string, required)- Returns alarms, recurrence rules, organizer, attendees, timestamps.
Reminders
reminders_list_lists — List all reminder lists.
- No parameters.
- Returns:
{ id, title, color, source, reminderCount }for each list.
reminders_get_reminders — Fetch reminders with filters.
listIds(string array, optional) — filter by listincludeCompleted(boolean, optional, default: false)dueBefore(string, optional) — ISO 8601dueAfter(string, optional) — ISO 8601searchText(string, optional) — filter by title/notes
reminders_get_reminder_detail — Full detail for one reminder.
reminderId(string, required)- Returns alarms, recurrence rules, timestamps.
License
MIT
Installing Apple Calendar & Reminders
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/dickdavis/apple-bridge-mcpFAQ
Is Apple Calendar & Reminders MCP free?
Yes, Apple Calendar & Reminders MCP is free — one-click install via Unyly at no cost.
Does Apple Calendar & Reminders need an API key?
No, Apple Calendar & Reminders runs without API keys or environment variables.
Is Apple Calendar & Reminders hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Apple Calendar & Reminders in Claude Desktop, Claude Code or Cursor?
Open Apple Calendar & Reminders on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Compare Apple Calendar & Reminders with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All productivity MCPs




