Omar-V2/mcp-ical

A Model Context Protocol Server that allows you to interact with your MacOS Calendar through natural language.

321 ★69 forksPythonUpdated 1y ago

What you need to know

A Python MCP server (MIT) for macOS that turns natural-language calendar management into a conversational experience - creating, updating, and querying events in the macOS Calendar app via PyObjC.

Install

git clone https://github.com/Omar-V2/mcp-ical.git && cd mcp-ical
uv sync
Configure in ~/Library/Application Support/Claude/claude_desktop_config.json with command "uv", args ["--directory", "/ABS/PATH/mcp-ical", "run", "mcp-ical"]

Usage

  • Prerequisites: uv package manager, macOS with Calendar app configured, an MCP client (Claude for Desktop recommended)
  • Launch Claude from the terminal (/Applications/Claude.app/Contents/MacOS/Claude) so macOS calendars permission prompt triggers - launching from Finder will not
  • Ask in natural language: 'What's my schedule for next week?', 'Schedule a team lunch next Thursday at 1 PM', 'Move tomorrow's team meeting to 3 PM'
  • Supports custom calendar selection, locations, notes, reminders, recurring events, and free-time availability queries

Key features

  • Natural-language event creation with custom calendar selection, location, notes, smart reminders, and recurring events
  • Smart schedule management and free-time/availability queries (e.g. 'When am I free for a 2-hour meeting next Tuesday?')
  • Intelligent event updates: time/date changes, calendar transfers, location and note edits, reminder adjustments
  • View all calendars with smart suggestions; works with Google Calendar when synced through iCloud

Best for

macOS users who want to manage Apple Calendar entirely through natural-language chat with an AI assistant.

Caveats

  • macOS only (requires macOS Calendar app and PyObjC)
  • Claude must be launched from the terminal to trigger the calendar permission prompt
  • Known issues: non-standard recurring schedules may not set correctly; better results with Claude 3.5 Sonnet than Haiku; reminder timing for recurring all-day events may be off by one day
  • Tests create temporary calendars/events - only run in development environments
Platforms: macOSClients: Claude for Desktop · any MCP-compatible client
Documentation ↗

Reviewed 2026-08-07

Topics

icalendarllmmcpmcp-servermodel-context-protocol
View on GitHub ↗
Stars
321★
Forks
69
Language
Python
License
MIT
Created
2025-02-09
Last push
2025-04-21