Apple Calendar MCP
Apple Calendar MCP
Eine Claude-Desktop-Erweiterung, die Claude vollen Zugriff auf Apple Calendar unter macOS über das erstklassige EventKit-Framework von Apple gewährt. Ereignisse lesen, suchen, erstellen und löschen – einschließlich Serienterminen (bearbeitet pro Vorkommen oder für alle zukünftigen Vorkommen), Alarmen, strukturierten Orten, Teilnehmer-Rückmeldungen und Verfügbarkeit (frei/belegt).
Verpackt als MCPB-Desktop-Erweiterung mit dem Calendar.app-Symbol und Ein-Klick-Installation.
Begleitend zu den Apple Mail-, Apple Reminders-, Apple Notes- und Apple Messages-Konnektoren.
Was es tut
Tool | Beschreibung |
| Jeder Kalender mit ID, Titel, Farbe, Quelle/Konto, Schreibzugriffs-Flag und welcher der Standard ist |
| Einen neuen Kalender erstellen (optional mit Farbe und Quelle) |
| Einen vorhandenen Kalender umbenennen oder einfärben |
| Einen Kalender und alle seine Ereignisse löschen (zerstörerisch) |
| Kalenderanzahl, Ereignisse heute, Ereignisse in den nächsten 7 Tagen, nächstes anstehendes Ereignis |
| Ereignisvorkommen in einem Datumsbereich mit Filtern: Kalender, Text, ganztägig, abgesagt |
| Volltextsuche über Titel, Notizen und Ort, innerhalb eines optionalen Datumsbereichs |
| Vollständige Details – Notizen, URL, Organisator, Teilnehmer + deren Antworten, Serienregel, Alarme, Ort, Zeitzone |
|
|
| Zusammengeführte belegte Intervalle (frei/belegt) über einen Bereich – die Lücken sind Ihre freien Slots |
| Erstellen mit vollständigem Eigenschaftssatz: Serienregel, Alarme, strukturierter Ort, Verfügbarkeit, Zeitzone |
| Beliebiges Teilmengen von Eigenschaften aktualisieren; |
| Ein Ereignis oder Vorkommen einer Serie löschen (span-bewusst) |
Related MCP server: Apple EventKit MCP Server
So funktioniert es
Die Kommunikation mit Calendar erfolgt über EventKit (EKEventStore, EKEvent, EKCalendar, EKRecurrenceRule, EKAlarm, EKStructuredLocation) via PyObjC – dasselbe erstklassige Framework, das auch Calendar.app selbst verwendet, und liest denselben lokalen Speicher (einschließlich iCloud-, Google- und Exchange-synchronisierter Kalender).
Dies ist derselbe Ansatz wie beim begleitenden Apple-Reminders-Konnektor und unterscheidet sich vom AppleScript/JXA-Weg: EventKit legt das vollständige Datenmodell offen (Serienrückmeldung, Bearbeitung pro Vorkommen, Teilnehmerantworten, strukturierte Orte) und ist deutlich schneller. Anders als bei Reminders sind Ereignisabfragen in EventKit synchron, sodass keine asynchrone Brücke benötigt wird; die eine Besonderheit ist, dass das Ereignis-Prädikat pro Abfrage höchstens ~4 Jahre abdeckt, daher werden größere Bereiche transparent in Blöcke aufgeteilt.
Serientermine
Vorkommen eines Serientermins teilen sich eine stabile event_id; jedes von list_events zurückgegebene Vorkommen trägt auch ein occurrence_date. Schreibwerkzeuge akzeptieren beides:
occurrence_datewählt welches Vorkommen Sie ansprechenspanwählt den Umfang:this_event(nur dieses Vorkommen, es wird abgetrennt) oderfuture_events(dieses Vorkommen und alles danach)
Voraussetzungen
macOS 14 Sonoma oder neuer (
requestFullAccessToEventswurde in 14 hinzugefügt)Python 3.11+
Claude Desktop mit Erweiterungsunterstützung
Kalenderberechtigung – Vollzugriff – für Claude Desktop (siehe unten)
Installation
Option 1: Desktop-Erweiterung (empfohlen)
Laden Sie die neueste .mcpb von Releases herunter und doppelklicken Sie dann zur Installation.
Oder aus dem Quellcode erstellen:
git clone https://github.com/falconbradley/claude-connector-apple-calendar.git
cd claude-connector-apple-calendar
./build.shDoppelklicken Sie dann auf dist/apple-calendar.mcpb (oder ziehen Sie es in Claude Desktop).
Die Erweiterung erscheint unter Einstellungen > Erweiterungen mit dem Kalender-Symbol.
Option 2: Manuelle MCP-Konfiguration
Bearbeiten Sie ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"apple-calendar": {
"command": "uv",
"args": ["run", "--project", "/path/to/claude-connector-apple-calendar", "apple-calendar-mcp"]
}
}
}Berechtigungen
Beim ersten Aufruf eines Kalender-Tools durch Claude fordert macOS Sie auf, den Kalender-Zugriff zu gewähren. Wählen Sie Vollzugriff – die macOS-14+-Berechtigung „Nur hinzufügen" kann Ereignisse nicht zurücklesen, sodass jedes Lesewerkzeug (und das Zurücklesen nach jedem Schreibvorgang) fehlschlagen würde.
Wenn die Aufforderung nicht erscheint (was bei unsignierten Interpreten passieren kann, die als untergeordnete Prozesse gestartet werden):
Öffnen Sie Systemeinstellungen → Datenschutz & Sicherheit → Kalender
Fügen Sie Claude Desktop (oder den Prozess, der
uvausführt) hinzu und aktivieren Sie VollzugriffBeenden und starten Sie Claude Desktop neu
Um den Zugriffsstatus zu überprüfen, führen Sie Folgendes aus:
sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db \
"SELECT client, auth_value FROM access WHERE service='kTCCServiceCalendar'"(auth_value von 2 = Vollzugriff, 0 = verweigert.)
Verwendungsbeispiele
Nach der Installation können Sie Claude einfach natürlich fragen:
„Was steht heute in meinem Kalender?"
„Wann bin ich morgen Nachmittag eine Stunde lang frei?"
„Plane am Freitag um 12 Uhr ein Mittagessen mit Sam im Zuni Café."
„Verschiebe meinen Termin um 15 Uhr auf 16:30 und mache ihn 45 Minuten lang."
„Richte ein wöchentliches Team-Sync jeden Dienstag um 10 Uhr für die nächsten 8 Wochen ein."
„Sage nur das Stand-up nächsten Montag ab, behalte den Rest der Serie."
„Füge meinem Zahnarzttermin eine Erinnerung 10 Minuten vorher hinzu."
„Wer hat nicht auf die Offsite-Einladung geantwortet?"
„Erstelle einen Kalender ‚Reisen' und lege meinen Flugplan hinein."
Aus dem Quellcode erstellen
# Install mcpb CLI (one time)
npm install -g @anthropic-ai/mcpb
# Install uv (one time, if not already installed)
curl -LsSf https://astral.sh/uv/install.sh | sh
# Build the extension
./build.sh
# Or manually:
mcpb validate manifest.json
mcpb pack . dist/apple-calendar.mcpbProjektstruktur
claude-connector-apple-calendar/
├── manifest.json # MCPB desktop extension manifest
├── icon.png # Calendar.app icon (512x512)
├── icons/ # Multi-size icons
│ ├── icon-128.png
│ ├── icon-256.png
│ └── icon-512.png
├── pyproject.toml # Python package + dependencies
├── build.sh # Validate + pack build script (gates on version drift)
├── tools/ # Dev-only icon extraction (not packed)
├── tests/
│ └── test_e2e.py # End-to-end tests
└── src/
└── apple_calendar_mcp/
├── __init__.py
├── server.py # MCP tools (MCPServer)
├── calendars.py # EventKit-backed CalendarStore
├── permissions.py # TCC grant helpers
└── models.py # Pydantic data modelsTests
# Static tests (model shapes, validation, helpers — no permission needed)
uv run python tests/test_e2e.py --skip-live
# Full suite (requires Calendar permission)
uv run python tests/test_e2e.pyLive-Tests arbeiten mit einem dedizierten __claude_mcp_test__-Kalender, der beim Setup erstellt und am Ende wieder entfernt wird.
Sicherheit & Datenschutz
Alle Daten bleiben auf Ihrem Mac – dies ist ein lokaler MCP-Server. EventKit liest aus demselben Speicher, den auch Calendar.app verwendet, einschließlich iCloud/Google/Exchange-synchronisierter Kalender.
Operationen werden durch macOS TCC gesteuert: Es passiert nichts, bis Sie den Kalenderzugriff gewähren.
Nur für macOS (
"platforms": ["darwin"]im Manifest).Der Konnektor greift nie über die Kalender-Entität hinaus – keine Erinnerungen, Kontakte oder Dateien.
Zerstörerische Operationen (
delete_calendar,delete_event) sind explizite Werkzeuge, die das Modell aufrufen muss; sie laufen nicht als Nebeneffekte von Lesevorgängen.Das Erstellen oder Ändern von Ereignissen sendet niemals Einladungen per E-Mail – die öffentliche API von EventKit kann keine Teilnehmer hinzufügen, sodass nichts Ihren Computer verlässt.
Fehlerbehebung
„Apple-Kalenderzugriff wurde nicht gewährt" Öffnen Sie Systemeinstellungen → Datenschutz & Sicherheit → Kalender, stellen Sie sicher, dass Claude Desktop mit Vollzugriff (nicht „Nur hinzufügen") aufgeführt ist, und starten Sie Claude Desktop neu.
Berechtigungsaufforderung erscheint nicht Unsignierte Python-Interpreter, die von Claude Desktop gestartet werden, lösen die Aufforderung manchmal nicht automatisch aus. Fügen Sie Claude Desktop manuell unter Systemeinstellungen → Datenschutz & Sicherheit → Kalender hinzu.
Ereignisse, die mehr als ~4 Jahre in der Zukunft liegen, erscheinen nicht Das Ereignis-Prädikat von EventKit deckt pro Abfrage höchstens 4 Jahre ab. Der Konnektor teilt größere Bereiche automatisch in Blöcke auf, aber extrem große Bereiche werden langsam – bevorzugen Sie engere Fenster.
Eine Bearbeitung eines Serientermins hat die gesamte Serie geändert
Übergeben Sie occurrence_date (aus list_events), um ein einzelnes Vorkommen anzusprechen, und behalten Sie span='this_event' bei. span='future_events' überschreibt absichtlich dieses Vorkommen und alles danach.
Kann Claude Personen zu einem Meeting einladen? Nein – die öffentliche API von EventKit legt Teilnehmer nur lesbar offen. Claude kann lesen, wer eingeladen ist und wie sie geantwortet haben, aber Sie fügen Einladungen in Calendar.app hinzu.
Erweiterung erscheint nach der Installation nicht Stellen Sie sicher, dass Sie eine aktuelle Claude-Desktop-Version verwenden, die MCPB-Erweiterungen unterstützt. Starten Sie Claude Desktop nach der Installation neu.
Roadmap
v1 – veröffentlicht
Kalender auflisten, erstellen, umbenennen, löschen
Ereignisse auflisten, suchen, abrufen mit Filtern und Paginierung
Ereignisse erstellen, aktualisieren, löschen (span-bewusst für Serien)
Serienregeln (täglich/wöchentlich/monatlich/jährlich mit Intervallen, nach Wochentag, nach Monat, Positionsangaben, Endbedingungen)
Alarme (relativ, absolut)
Strukturierte (geokodierte) Orte
Teilnehmer- und Organisator-Rückmeldung mit Antwortstatus
Verfügbarkeit (frei/belegt) mit Intervall-Zusammenführung
ical://-Deep-Links
v2 – in Prüfung
RSVP / auf Einladung antworten (durch öffentliche EventKit-API blockiert)
Reisezeit- und Konferenz-URL-Rückmeldung, wo EventKit sie bereitstellt
Massenoperationen (mehrere Ereignisse verschieben/löschen)
Natürlicher „finde einen Slot für N Personen"-Helfer auf Basis von get_availability
Lizenz
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceProvides 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.231MIT
- FlicenseNot gradedqualityFmaintenanceProvides Claude Desktop with access to Apple Calendar and Reminders on macOS for managing schedules and tasks through natural language. It supports comprehensive operations like creating, editing, and searching events and reminders, along with a custom hashtag-based tagging system.3
- AlicenseNot gradedqualityDmaintenanceEnables Claude and other MCP clients to directly interact with macOS Calendar.app using AppleScript for local calendar management. Provides tools for listing, searching, creating, updating, and deleting calendar events without cloud APIs or CalDAV setup.234MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to access and interact with macOS Calendar.app events and reminders, including viewing, searching, and filtering calendar data.2MIT
Related MCP Connectors
Calendar API for AI agents: events, availability, Google/Microsoft setup, scheduling, and iCal.
Connects ChatGPT to your Apple Calendar via a local Mac agent + Vercel relay
Let ChatGPT, Claude & Cursor use your Mac: email, calendar, iMessage, Teams, files. Local, free.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/falconbradley/claude-connector-apple-calendar'
If you have feedback or need assistance with the MCP directory API, please join our Discord server