Private Calendar MCP
Integrates with calendars configured in macOS Calendar via EventKit, including iCloud calendars. Supports listing and querying calendars, inspecting events, creating and modifying individual events or recurring series, managing display alerts and all-day dates, and reviewing change history for recovery.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Private Calendar MCPWhat's on my calendar tomorrow?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Private Calendar MCP
A personal macOS Calendar integration for ChatGPT and local MCP clients. It uses calendars already configured on the Mac, including iCloud, through EventKit. Connect locally or through the official private Secure MCP Tunnel; no iCloud password or model API key is required.
Optional Reminders support adds a separate plugin for nonrecurring tasks, completion and retained recovery, sharing the same local backend. See setup and limits.
Remote access requires an always-on, internet-connected Mac, kept awake with the calendar owner logged in. The MCP server and tunnel run under that user's account. Once connected in ChatGPT or configured in a compatible Codex client, you can access that user's calendars from other devices, including your phone.
Start here: Quick install · Full setup and operation · Architecture and safety contracts
What it supports
List calendars, query bounded event windows and inspect identified events.
Create individual events or typed recurring series; modify/delete one identified event or occurrence.
Set multiple display alerts and preserve omitted fields.
Change current recurring-pattern defaults or strictly future defaults for title, notes, plain location and alerts through dedicated tools.
Stop a supported recurring pattern from an explicit future cutoff, with separately confirmed, limited recovery as a new independent series.
Create or correct supported nonrecurring floating all-day dates.
Inspect retained change history, prepare supported inverse changes and explicitly assess an uncertain outcome through journal tools.
The full integration exposes 22 tools when the native helper supports their capabilities. See the tool inventory and operation examples.
Related MCP server: CalendarBridge
Requirements
Use macOS 14+, Swift 6/Xcode Command Line Tools and Python 3.11+ with timezone data. Python needs no extra packages. Remote ChatGPT access needs the official tunnel client, a private workspace/tunnel association and a restricted runtime credential. This is a single-user integration, without public ingress or multi-user authorization.
A fresh installation needs a signed helper app and local macOS Full Access. Preserve an existing installation's app, state and grant: rebuilding an ad-hoc signed app can reset permission.
Consent, uncertainty and recovery
Every Calendar write uses an exact authenticated preview and its matching commit tool under the host's normal confirmation policy. The native broker checks the target and current state and records execution history. Normal writes have no Terminal approval step. Host policy is not proof of a fresh human click.
If a result is uncertain, inspect get_change_status with the original change ID; never blindly retry. Uncertain outcomes may block related writes. When the broker proves a change never started, a fresh reviewed attempt is allowed. See execution and replay rules for the precise distinction.
Recovery is another reviewed write, with five-day default detail retention. It cannot promise to reconstruct the original recurring pattern. Journal assessment records the user's explicit assessment without provider verification or a Calendar retry.
Limits and security
Calendar-container deletion is permanently prohibited. Arbitrary structural series edits and historical/full-series deletion are unsupported. Detached overrides/exclusions remain provider-controlled; occurrence recovery makes a standalone copy, and cutoff recovery never merges a truncated pattern. For all-day events, fresh deletion, cutoff termination and copy restoration are unsupported. Attachments are not implemented.
Project clients use protected local transport. Recovery keys share SQLite with encrypted history; state-storage limits explain why copies remain sensitive. Preserve authoritative history through upgrades; never downgrade or resume from older history after migration.
Synthetic tests do not prove every live provider or host behavior. Permission, service health, tool discovery and full confirmation rendering must be checked separately.
Development checks
./scripts/test-native
./scripts/build-helper.sh
python3 -m unittest discover -s Tests -vThe native runner uses eight workers and the full stress workload by default; --mode routine reduces only repetitive counter volume. Tests use synthetic providers and do not authorize Calendar access. Packaging replaces the local build bundle; use it only for a fresh or deliberately managed build. See test and packaging options.
License and contributions
Copyright © 2026 Robert Milkowski. Licensed under the GNU Affero General Public License, version 3 only (AGPL-3.0-only); see LICENSE. This software comes without warranty, as described in the license.
Distributing binaries or running a modified network version requires following the license’s applicable Corresponding Source terms; including the license text alone does not satisfy every distribution obligation.
Contributions are welcome: see CONTRIBUTING.md for issues, forks, pull requests and development checks.
This server cannot be deployed
Maintenance
Related MCP Connectors
Connects ChatGPT to your Apple Calendar via a local Mac agent + Vercel relay
Calendar API for AI agents: events, availability, Google/Microsoft setup, scheduling, and iCal.
Create and update subscription calendars from ChatGPT, Claude, or Codex.
Manage Google, Outlook & Apple calendars and create private sync rules from chat.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceTransforms macOS calendar management into a conversational experience using natural language, allowing users to create, manage, and update calendar events seamlessly through an MCP-compatible client.332MIT
- AlicenseNot gradedqualityCmaintenanceMCP server that connects ChatGPT to Apple Calendar via a local Mac agent, enabling event listing, searching, and creation while keeping data on your machine.MIT
- AlicenseNot gradedqualityCmaintenanceA local-first MCP server for macOS that enables AI assistants to read and manage Apple Calendar events via EventKit, with configurable permissions, audit logging, and a native setup app.MIT
- AlicenseNot gradedqualityCmaintenanceEnables MCP clients to interact with Apple Calendar locally on macOS through EventKit, including listing calendars and events, creating events, and updating events with privacy-conscious safeguards.MIT