loading…
Search for a command to run...
loading…
Provides Claude with full access to Apple Calendar on macOS for event management, smart scheduling, and schedule analytics. It enables natural language event cr
Provides Claude with full access to Apple Calendar on macOS for event management, smart scheduling, and schedule analytics. It enables natural language event creation, conflict detection, and template-based scheduling through AppleScript integration.
macOS Only Node.js 20+ License: MIT
Note: This MCP server requires macOS with Apple Calendar.
A Model Context Protocol (MCP) server that provides Claude with full access to Apple Calendar for smart scheduling, calendar management, and time management assistance.
Clone/Install the server:
cd ~/mcp-servers/calendar
npm install
npm run build
Grant Calendar Access:
Configure Claude Code:
The server is already configured in:
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"apple-calendar": {
"command": "node",
"args": [
"/path/to/apple-calendar-mcp/dist/index.js"
]
}
}
}
Restart Claude Code:
The server will auto-start when Claude Code launches.
"List my calendars"
"Create a calendar called Work"
"Rename the Work calendar to Office"
"Delete the Test calendar"
"Create an event 'Team Meeting' tomorrow at 2pm in the life calendar"
"Schedule 'Dentist Appointment' next Tuesday at 10am with 1 hour duration"
"Add 'Coffee with Sarah' at 3pm today at Starbucks"
The server understands:
"Find free time tomorrow for a 1 hour meeting"
"Check if I'm free Friday at 3pm"
"Suggest the best time for a meeting next week, I prefer mornings"
"Find free time during business hours only"
"Search for 'dentist' events this month"
"Find all events with 'meeting' in the title from last week"
"Search for events at 'Starbucks' this year"
"Create a template called 'standup' with 15 minute duration"
"Schedule a standup meeting from template tomorrow at 9am"
"List all my templates"
"Analyze my schedule for this week"
"Show insights for next week"
"How busy am I this month?"
~/mcp-servers/calendar/
├── src/
│ ├── index.ts # Entry point
│ ├── server.ts # MCP server with all tools
│ ├── applescript/
│ │ ├── bridge.ts # AppleScript execution wrapper
│ │ ├── calendar-ops.ts # Calendar CRUD operations
│ │ └── event-ops.ts # Event CRUD operations
│ ├── utils/
│ │ ├── date-parser.ts # Natural language date parsing (chrono-node)
│ │ └── conflict-detector.ts # Conflict detection & free time finding
│ └── storage/
│ └── database.ts # SQLite for templates & history
├── storage/
│ └── calendar.db # SQLite database (auto-created)
└── dist/ # Compiled JavaScript
chrono-node for parsing natural language datesosascript calls for reliable Calendar accessDefault settings (stored in SQLite):
default_calendar: "life"default_event_duration: 1 hour (3600000 ms)business_hours_start: 9 (9am)business_hours_end: 17 (5pm)npm run build
npm run dev
npx @modelcontextprotocol/inspector npx tsx src/index.ts
Solution: Grant automation permissions in System Preferences > Security & Privacy > Privacy > Automation
~/Library/Logs/Claude/npm run buildnpx tsx src/index.tsPotential features for v2:
MIT
Built by Null-Phnix
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"apple-calendar-mcp-server": {
"command": "npx",
"args": []
}
}
}