iCloud Calendar MCP Server

An MCP server letting you see and create events in you iCloud Calendar

README.md

iCloud Calendar MCP

An MCP server letting you see and create events in you iCloud Calendar

Setup

Here is a detailed guide for setting up the MCP server for yourself:

Locally

This is how you set up the MCP server locally on your machine.

First, you need to clone this repository, and create a .env file in the root folder of the project. In the .env file you will need to set 2 variables like this:

ICLOUD_APPLE_ID="email@example.com"
ICLOUD_APP_PWD="xxxx-xxxx-xxxx-xxxx"

Where the ICLOUD_APPLE_ID is your iCloud email address.

The ICLOUD_APP_PWD you will get by visiting account.apple.com and logging in. You will then click "App-specific passwords" and create a new. You can call this whatever you want, but make sure to copy the password when it is created, because you will not be able to see it afterwards.

When these variables are set in the .env file, you are ready to add the MCP server to your preferred LLM. In this example, i will be using Claude Desktop.

Open claude, and using the hamburger menu in the top-left corner, navigate to "File>Settings>Developer>Local MCP Servers". Click "Edit Config" and open the JSON file in a code editor. In the JSON file, insert this:

{
  "mcpServers": {
    "calendar": {
      "command": "python",
      "args": [
        "/Users/herman/Source/Repos/icloud-calendar-mcp-python/main.py"
      ]
    }
  }
}

But change the source of the MCP server to where you have your located.

You will then need to restart Claude Desktop, and make sure the "calendar" tool is enabled: Screenshot on how to enable the MCP on Claude Desktop

On the internet (using [FastMCP Cloud](https://fastmcp.cloud))

This is how you deploy the MCP server on the internet and connect to it using Docker and deploying as container app.

(Not yet finished)

On the internet (using Docker)

This is how you deploy the MCP server on the internet and connect to it using Docker and deploying as container app.

(Not yet finished)

Contribution

If you want to contribute to this project, you are very free to do.

Just create an issue or open a pull request :P

Tools 2

list_eventsRetrieve a list of events from the iCloud calendar
create_eventCreate a new event in the iCloud calendar

Environment Variables

ICLOUD_APPLE_IDrequiredYour iCloud email address
ICLOUD_APP_PWDrequiredApp-specific password generated from account.apple.com

Try it

What events do I have scheduled for this Sunday?
Am I available this coming Tuesday afternoon?
Create a new calendar event for a team meeting next Friday at 10 AM.
List all my upcoming events for the rest of the week.

Frequently Asked Questions

What are the key features of iCloud Calendar?

View existing events in your iCloud Calendar. Create new calendar events using natural language. Secure integration via Apple app-specific passwords. Local execution for privacy and control.

What can I use iCloud Calendar for?

Quickly checking calendar availability during a chat session. Scheduling meetings directly through an AI assistant. Managing personal appointments without leaving the Claude interface.

How do I install iCloud Calendar?

Install iCloud Calendar by running: git clone https://github.com/HermanErKu/icloud-calendar-mcp-python

What MCP clients work with iCloud Calendar?

iCloud Calendar works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep iCloud Calendar docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Open Conare