Skip to main content
Glama

Apple Calendar MCP

Расширение для Claude Desktop, которое даёт Claude полный доступ к Apple Calendar на macOS через первоклассный фреймворк Apple EventKit. Чтение, поиск, создание, обновление и удаление событий — включая повторяющиеся события (редактирование отдельного вхождения или всех будущих вхождений), напоминания, структурированные местоположения, чтение участников и доступность free/busy.

Упаковано как расширение для рабочего стола MCPB с иконкой Calendar.app и установкой в один клик.

Компаньон для коннекторов Apple Mail, Apple Reminders, Apple Notes и Apple Messages.


Что он делает

Инструмент

Описание

list_calendars

Все календари с id, названием, цветом, источником/учётной записью, флагом доступа на запись и указанием, какой из них по умолчанию

create_calendar

Создать новый календарь (необязательно цвет и источник)

update_calendar

Переименовать или изменить цвет существующего календаря

delete_calendar

Удалить календарь и все его события (необратимо)

get_stats

Количество календарей, события сегодня, события в ближайшие 7 дней, следующее предстоящее событие

list_events

Вхождения событий в диапазоне дат с фильтрами: календари, текст, весь день, отменённые

search_events

Полнотекстовый поиск по названию, заметкам и местоположению в необязательном диапазоне дат

get_event

Полная детализация — заметки, URL, организатор, участники и их ответы, повторяемость, напоминания, местоположение, часовой пояс

get_event_link

URL ical:// для открытия события в Calendar.app

get_availability

Объединённые интервалы занятости (free/busy) за период — промежутки между ними — ваши свободные окна

create_event

Создание с полным набором свойств: повторяемость, напоминания, структурированное местоположение, доступность, часовой пояс

update_event

Обновление любого подмножества свойств; occurrence_date + span управляют областью повторяющихся событий; флаги clear_* удаляют поля

delete_event

Удаление события или вхождений повторяющейся серии (с учётом span)

Related MCP server: Apple EventKit MCP Server

Как это работает

Связь с Calendar осуществляется через EventKit (EKEventStore, EKEvent, EKCalendar, EKRecurrenceRule, EKAlarm, EKStructuredLocation) через PyObjC — тот же первоклассный фреймворк, который использует сам Calendar.app, читая то же локальное хранилище (включая календари, синхронизированные с iCloud, Google и Exchange).

Это тот же подход, что и в компаньоне-коннекторе Apple Reminders, и он отличается от маршрута AppleScript/JXA: EventKit предоставляет полную модель данных (чтение повторяемости, редактирование отдельных вхождений, ответы участников, структурированные местоположения) и работает значительно быстрее. В отличие от Reminders, выборка событий в EventKit синхронна, поэтому асинхронный мост не нужен; единственная особенность — предикат событий охватывает максимум ~4 года на запрос, поэтому более широкие диапазоны прозрачно разбиваются на части.

Повторяющиеся события

Вхождения повторяющегося события имеют один стабильный event_id; каждое вхождение, возвращаемое list_events, также содержит occurrence_date. Инструменты записи принимают оба параметра:

  • occurrence_date определяет, какое вхождение вы выбираете

  • span определяет область: this_event (только это вхождение, отсоединяя его) или future_events (это вхождение и все последующие)


Требования

  • macOS 14 Sonoma или новее (requestFullAccessToEvents добавлен в 14)

  • Python 3.11+

  • Claude Desktop с поддержкой расширений

  • Разрешение для Календаря — Полный доступ — предоставленное Claude Desktop (см. ниже)


Установка

Вариант 1: Расширение для рабочего стола (рекомендуется)

Скачайте последний .mcpb из Releases, затем дважды щёлкните для установки.

Или соберите из исходников:

git clone https://github.com/falconbradley/claude-connector-apple-calendar.git
cd claude-connector-apple-calendar
./build.sh

Затем дважды щёлкните dist/apple-calendar.mcpb (или перетащите его в Claude Desktop).

Расширение появится в Настройки > Расширения с иконкой Calendar.

Вариант 2: Ручная настройка MCP

Отредактируйте ~/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"]
    }
  }
}

Разрешения

При первом вызове инструмента Calendar macOS предложит вам предоставить доступ к Календарям. Выберите Полный доступ — предоставление «Только добавление» в macOS 14+ не позволяет читать события, поэтому каждый инструмент чтения (и чтение после каждой записи) завершится ошибкой.

Если запрос не появляется (что может случиться с неподписанными интерпретаторами, запускаемыми как дочерние процессы):

  1. Откройте Системные настройки → Конфиденциальность и безопасность → Календари

  2. Добавьте Claude Desktop (или процесс, запускающий uv) и включите Полный доступ

  3. Завершите и перезапустите Claude Desktop

Чтобы проверить статус доступа, выполните:

sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db \
  "SELECT client, auth_value FROM access WHERE service='kTCCServiceCalendar'"

(auth_value равный 2 = полный доступ, 0 = отказано.)


Примеры использования

После установки просто задайте вопрос Клоду естественным языком:

  • «Что у меня сегодня в календаре?»

  • «Когда я свободен на час завтра днём?»

  • «Запланируй обед с Сэмом в пятницу в полдень в Zuni Café.»

  • «Перенеси мою встречу с 15:00 на 16:30 и сделай её 45 минут.»

  • «Настрой еженедельную синхронизацию команды каждый вторник в 10:00 на следующие 8 недель.»

  • «Отмени только стендап в следующий понедельник, остальную серию сохрани.»

  • «Добавь напоминание за 10 минут до моего визита к стоматологу.»

  • «Кто ещё не ответил на приглашение на выездное мероприятие?»

  • «Создай календарь "Путешествия" и помести туда мой маршрут полёта.»


Сборка из исходников

# 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.mcpb

Структура проекта

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 models

Тесты

# 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.py

Живые тесты работают с выделенным календарём __claude_mcp_test__, который создаётся при настройке и удаляется в конце.


Безопасность и конфиденциальность

  • Все данные остаются на вашем Mac — это локальный MCP-сервер. EventKit читает из того же хранилища, что и Calendar.app, включая календари, синхронизированные с iCloud/Google/Exchange.

  • Операции контролируются macOS TCC: ничего не происходит, пока вы не предоставите доступ к Календарю.

  • Только macOS ("platforms": ["darwin"] в манифесте).

  • Коннектор никогда не выходит за пределы сущности Calendar — никаких Напоминаний, контактов или файлов.

  • Деструктивные операции (delete_calendar, delete_event) — это явные инструменты, которые модель должна выбрать для вызова; они не выполняются как побочные эффекты чтения.

  • Создание или изменение событий никогда не отправляет приглашения по электронной почте — публичный API EventKit не может добавлять участников, поэтому ничего не покидает ваш компьютер.


Устранение неполадок

«Доступ к Apple Calendar не был предоставлен» Откройте Системные настройки → Конфиденциальность и безопасность → Календари, убедитесь, что Claude Desktop указан с Полным доступом (не «Только добавление»), затем перезапустите Claude Desktop.

Запрос разрешения не появляется Неподписанные интерпретаторы Python, запускаемые Claude Desktop, иногда не вызывают запрос автоматически. Добавьте Claude Desktop вручную в Системные настройки → Конфиденциальность и безопасность → Календари.

События за пределами ~4 лет не отображаются Предикат событий EventKit охватывает максимум 4 года на запрос. Коннектор автоматически разбивает более широкие диапазоны, но очень широкие диапазоны будут медленными — предпочитайте более узкие окна.

Изменение повторяющегося события затронуло всю серию Передайте occurrence_date (из list_events), чтобы выбрать одно вхождение, и сохраните span='this_event'. span='future_events' намеренно перезаписывает это вхождение и все последующие.

Может ли Клод приглашать людей на встречу? Нет — публичный API EventKit предоставляет участников только для чтения. Клод может прочитать, кто приглашён и как они ответили, но добавлять приглашённых вы будете в Calendar.app.

Расширение не появляется после установки Убедитесь, что вы используете последнюю версию Claude Desktop с поддержкой расширений MCPB. Перезапустите Claude Desktop после установки.


Дорожная карта

v1 — выпущено

  • Список, создание, переименование, удаление календарей

  • Список, поиск, получение событий с фильтрами и пагинацией

  • Создание, обновление, удаление событий (с учётом span для повторяющихся серий)

  • Повторяемость (ежедневно/еженедельно/ежемесячно/ежегодно с интервалами, по дням, по месяцам, заданные позиции, условия окончания)

  • Напоминания (относительные, абсолютные)

  • Структурированные (геокодированные) местоположения

  • Чтение участников и организатора с указанием статуса ответа

  • Доступность free/busy с объединением интервалов

  • Глубокие ссылки ical://

v2 — рассматривается

  • RSVP / ответ на приглашение (заблокировано публичным API EventKit)

  • Чтение времени в пути и URL конференций, где EventKit их предоставляет

  • Массовые операции (перемещение/удаление нескольких событий)

  • Естественный помощник «найди слот для N человек» на основе get_availability


Лицензия

MIT

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

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

  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides 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.
    23
    1
    MIT
  • F
    license
    Not graded
    quality
    F
    maintenance
    Provides 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
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables 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.
    23
    4
    MIT

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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