MCP iCal Server

by Omar-V2

319 534 downloads Not rated yet MIT

About

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

Details

License
MIT

Explore

- Custom calendar selection
- Location and notes
- Smart reminders
- Recurring events

- Time and date modifications
- Calendar transfers
- Location updates
- Note additions
- Reminder adjustments
- Recurring pattern changes

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name MCP iCal Server
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

- uv package manager
- macOS with Calendar app configured
- An MCP client - Claude for desktop is recommended

> πŸ’‘ Note: While these instructions focus on setting up the MCP server with Claude for Desktop, this server can be used with any MCP-compatible client. For more details on using different clients, see the MCP documentation.

uv sync


2. Configure Claude for Desktop

Create or edit ~/Library/Application\ Support/Claude/claude_desktop_config.json:

json
{
"mcpServers": {
"mcp-ical": {
"command": "uv",
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/PARENT/FOLDER/mcp-ical",
"run",
"mcp-ical"
]
}
}
}

3. Launch Claude for Calendar Access

> ⚠️ Critical: Claude must be launched from the terminal to properly request calendar permissions. Launching directly from Finder will not trigger the permissions prompt.

Run the following command in your terminal.

bash
/Applications/Claude.app/Contents/MacOS/Claude

> ⚠️ Warning: Alternatively, you can manually grant calendar access, but this involves modifying system files and should only be done if you understand the risks involved.

4. Start Using!

text
Try: "What's my schedule looking like for next week?"
```

> πŸ”‘ Note: When you first use a calendar-related command, macOS will prompt for calendar access. This prompt will only appear if you launched Claude from the terminal as specified above.

uv sync --dev

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "mcp ical server": {
            "mcp-ical": {
                "command": "uv",
                "args": [
                    "sync"
                ]
            }
        }
    }
}

McpServers

{
    "mcp-ical": {
        "command": "uv",
        "args": [
            "sync"
        ]
    }
}

<div align="center">

πŸ—“οΈ Natural Language Calendar Management for macOS

MIT License
Python 3.12+
MCP Compatible

</div>

🌟 Overview

Transform how you interact with your macOS calendar using natural language! The mcp-ical server leverages the Model Context Protocol (MCP) to turn your calendar management into a conversational experience.

You: "What's my schedule for next week?"
Claude: "Let me check that for you..."
[Displays a clean overview of your upcoming week]

You: "Add a lunch meeting with Sarah tomorrow at noon"
Claude: "✨ πŸ“… Created: Lunch with Sarah Tomorrow, 12:00 PM"

✨ Features

πŸ“… Event Creation

Transform natural language into calendar events instantly!

"Schedule a team lunch next Thursday at 1 PM at Bistro Garden"
↓
πŸ“Ž Created: Team Lunch
   πŸ“… Thursday, 1:00 PM
   πŸ“ Bistro Garden
Supported Features

- Custom calendar selection
- Location and notes
- Smart reminders
- Recurring events

Power User Examples
πŸ”„ Recurring Events:
"Set up my weekly team sync every Monday at 9 AM with a 15-minute reminder"

πŸ“ Detailed Events:
"Schedule a product review meeting tomorrow from 2-4 PM in the Engineering calendar,
add notes about reviewing Q1 metrics, and remind me 1 hour before"

πŸ“± Multi-Calendar Support:
"Add a dentist appointment to my Personal calendar for next Wednesday at 3 PM"

πŸ” Smart Schedule Management & Availability

Quick access to your schedule with natural queries:

"What's on my calendar for next week?"
↓
πŸ“Š Shows your upcoming events with smart formatting

"When am I free to schedule a 2-hour meeting next Tuesday?"
↓
πŸ•’ Available time slots found:
β€’ Tuesday 10:00 AM - 12:00 PM
β€’ Tuesday 2:00 PM - 4:00 PM

✏️ Intelligent Event Updates

Modify events naturally:

Before: "Move tomorrow's team meeting to 3 PM instead"
↓
After: ✨ Meeting rescheduled to 3:00 PM
Update Capabilities

- Time and date modifications
- Calendar transfers
- Location updates
- Note additions
- Reminder adjustments
- Recurring pattern changes

πŸ“Š Calendar Management

- View all available calendars
- Smart calendar suggestions
- Seamless Google Calendar integration when configured with iCloud

> πŸ’‘ Pro Tip: Since you can create events in custom calendars, if you have your Google Calendar synced with your iCloud Calendar, you can use this MCP server to create events in your Google Calendar too! Just specify the Google calendar when creating/updating events.

πŸš€ Quick Start

> πŸ’‘ Note: While these instructions focus on setting up the MCP server with Claude for Desktop, this server can be used with any MCP-compatible client. For more details on using different clients, see the MCP documentation.

Prerequisites

- uv package manager
- macOS with Calendar app configured
- An MCP client - Claude for desktop is recommended

Installation

Whilst this MCP server can be used with any MCP compatible client, the instructions below are for use with Claude for desktop.

1. Clone and Setup

    # Clone the repository
    git clone https://github.com/Omar-V2/mcp-ical.git
    cd mcp-ical

# Install dependencies
uv sync

2. Configure Claude for Desktop

Create or edit ~/Library/Application\ Support/Claude/claude_desktop_config.json:

    {
        "mcpServers": {
            "mcp-ical": {
                "command": "uv",
                "args": [
                    "--directory",
                    "/ABSOLUTE/PATH/TO/PARENT/FOLDER/mcp-ical",
                    "run",
                    "mcp-ical"
                ]
            }
        }
    }
    

3. Launch Claude for Calendar Access

> ⚠️ Critical: Claude must be launched from the terminal to properly request calendar permissions. Launching directly from Finder will not trigger the permissions prompt.

Run the following command in your terminal.

    /Applications/Claude.app/Contents/MacOS/Claude
    

> ⚠️ Warning: Alternatively, you can manually grant calendar access, but this involves modifying system files and should only be done if you understand the risks involved.

4. Start Using!

    Try: "What's my schedule looking like for next week?"
    

> πŸ”‘ Note: When you first use a calendar-related command, macOS will prompt for calendar access. This prompt will only appear if you launched Claude from the terminal as specified above.

πŸ§ͺ Testing

> ⚠️ Warning: Tests will create temporary calendars and events. While cleanup is automatic, only run tests in development environments.

```bash

No reviews yet β€” be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.

Videos about MCP iCal Server

Relevant YouTube tutorials, setups, and demos