Apple Calendar MCP Server
Integrates with Apple Calendar to fetch events and create new events.
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., "@Apple Calendar MCP ServerWhat events do I have today?"
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.
Apple Calendar MCP Server
A Model Context Protocol (MCP) server that connects to Apple Calendar via a local Eventlink instance.
Features
Fetch Events: Get calendar events for specific dates or ranges.
Natural Language Dates: Supports "today", "tomorrow", "next Monday".
Create Events: Add new events to your calendar.
SSE Transport: Runs as a local web service.
MacOS Integration: Runs automatically at login via Launch Agent.
Related MCP server: iCloud Calendar MCP
Prerequisite
Eventlink: You must have Eventlink (or compatible server) running locally.
Node.js: Version 18+ (LTS recommended).
Installation
Clone this repository.
Copy
.env.exampleto.envand configure your settings:cp .env.example .envEVENTLINK_TOKEN: Your Eventlink bearer token.EVENTLINK_URL: URL to Eventlink (default:http://localhost:9000).PORT: Port for this MCP server (default:6372).
Run the installation script:
./install.shThis will:
Install dependencies.
Build the project.
Create and load a macOS Launch Agent to keep the server running in the background.
Usage
Managing the Server
Start:
./start.sh(Manually start the background service)Stop:
./stop.sh(Stop the background service)Uninstall:
./uninstall.sh(Remove the service and clean up)
Connecting to Claude Desktop / Clients
Add the following to your claude_desktop_config.json:
{
"mcpServers": {
"apple-calendar": {
"command": "node",
"args": ["/path/to/mcp-server-apple-calendar/dist/index.js"],
"env": {
"EVENTLINK_TOKEN": "your_token",
"EVENTLINK_URL": "http://localhost:9000"
}
}
}
}Note: The install script sets up a background service listening on SSE (typically http://localhost:6372/sse). If your client supports SSE over HTTP, point it there. For Claude Desktop, using stdio (command execution) as shown above is also supported if you prefer not to use the background service, but this server is optimized for background execution.
Wait, this server is designed for SSE primarily via the background service.
If you want to use the SSE endpoint:
URL: http://localhost:6372/sse
Tools
calendar_get_events
Fetches events for a given date.
date(string): "YYYY-MM-DD", "today", "tomorrow", "next Monday".offset(number): Number of days (default: 1).calendarName(string): Optional calendar override.
calendar_create_event
Creates a new event.
title(string): Event title.startDate(string): "YYYY-MM-DD HH:MM".endDate(string): "YYYY-MM-DD HH:MM".notes(string): Optional notes.
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Connects ChatGPT to your Apple Calendar via a local Mac agent + Vercel relay
Extracts calendar events from natural-language text, with .ics and calendar links.
Manage Google, Outlook & Apple calendars and create private sync rules from chat.
Read tasks, habits, events and scheduling links; create and update Reclaim tasks and habits.
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.331MIT
- FlicenseNot gradedqualityDmaintenanceEnables users to view and create events in their iCloud Calendar using natural language through supported LLMs. It integrates with Apple's infrastructure via app-specific passwords to provide secure calendar management.1-
- AlicenseAqualityDmaintenanceExposes Apple Calendar data through an EventKit helper app. Enables reading, creating, updating, and deleting calendar events on macOS.721 npmMIT
- AlicenseAqualityBmaintenanceEnables read/write access to Apple Calendar on macOS by bypassing permission restrictions via JXA scripts, allowing users to manage calendar events through natural language.3MIT