Manual setup required. The maintainer's config contains paths only you know — edit the placeholders below before adding it to Claude Code.
1
Prepare the server locally
Run this once before adding it to Claude Code.
cd ~/mcp-servers/calendar
npm install
npm run build2
Register it in Claude Code
claude mcp add apple-calendar -- node /path/to/apple-calendar-mcp/dist/index.jsReplace any placeholder paths in the command with the real path on your machine.
Available Tools (19)
Once configured, Apple Calendar gives your AI agent access to:
list_calendarsList all available calendarscreate_calendarCreate new calendarsdelete_calendarDelete calendarsrename_calendarRename existing calendarscreate_eventCreate events with natural language date parsinglist_eventsList events in a specific calendarlist_all_eventsList events across all calendarssearch_eventsSearch for events by keywordupdate_eventUpdate event propertiesdelete_eventDelete eventsmove_eventMove events between calendarsfind_free_timeFind available time slotscheck_conflictsCheck for scheduling conflictssuggest_optimal_timeAI-powered time suggestions with preferencescreate_templateSave event configurations as reusable templatesuse_templateCreate events from templateslist_templatesView all saved templatesdelete_templateRemove templatesanalyze_scheduleGet insights on meeting density and time spentTry It Out
After setup, try these prompts with your AI agent:
→Create an event 'Team Meeting' tomorrow at 2pm in the work calendar.
→Find free time tomorrow for a 1 hour meeting during business hours.
→Analyze my schedule for this week and tell me how busy I am.
→Suggest the best time for a meeting next week, I prefer mornings.
→Search for all events with 'dentist' in the title this month.
Prerequisites & system requirements
- An MCP-compatible client (Claude Code, Cursor, Windsurf, Claude Desktop, or Codex)
- Node.js 18+ with npm/npx installed
Keep this setup from going cold
Save the docs, env vars, and workflow around Apple Calendar in Conare so Claude Code, Codex, and Cursor remember it next time.