Omar-V2/mcp-ical

View on GitHub ↗

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

324 ★70 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
Stars
324★
Forks
70
Language
Python
License
MIT
Created
2025-02-09
Last push
2025-04-21