Apple Calendar MCP
Apple Calendar MCP
Расширение для Claude Desktop, которое даёт Claude полный доступ к Apple Calendar на macOS через первоклассный фреймворк Apple EventKit. Чтение, поиск, создание, обновление и удаление событий — включая повторяющиеся события (редактирование отдельного вхождения или всех будущих вхождений), напоминания, структурированные местоположения, чтение участников и доступность free/busy.
Упаковано как расширение для рабочего стола MCPB с иконкой Calendar.app и установкой в один клик.
Компаньон для коннекторов Apple Mail, Apple Reminders, Apple Notes и Apple Messages.
Что он делает
Инструмент | Описание |
| Все календари с id, названием, цветом, источником/учётной записью, флагом доступа на запись и указанием, какой из них по умолчанию |
| Создать новый календарь (необязательно цвет и источник) |
| Переименовать или изменить цвет существующего календаря |
| Удалить календарь и все его события (необратимо) |
| Количество календарей, события сегодня, события в ближайшие 7 дней, следующее предстоящее событие |
| Вхождения событий в диапазоне дат с фильтрами: календари, текст, весь день, отменённые |
| Полнотекстовый поиск по названию, заметкам и местоположению в необязательном диапазоне дат |
| Полная детализация — заметки, URL, организатор, участники и их ответы, повторяемость, напоминания, местоположение, часовой пояс |
| URL |
| Объединённые интервалы занятости (free/busy) за период — промежутки между ними — ваши свободные окна |
| Создание с полным набором свойств: повторяемость, напоминания, структурированное местоположение, доступность, часовой пояс |
| Обновление любого подмножества свойств; |
| Удаление события или вхождений повторяющейся серии (с учётом 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+ не позволяет читать события, поэтому каждый инструмент чтения (и чтение после каждой записи) завершится ошибкой.
Если запрос не появляется (что может случиться с неподписанными интерпретаторами, запускаемыми как дочерние процессы):
Откройте Системные настройки → Конфиденциальность и безопасность → Календари
Добавьте Claude Desktop (или процесс, запускающий
uv) и включите Полный доступЗавершите и перезапустите 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
Лицензия
This server cannot be installed
Maintenance
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
- AlicenseNot gradedqualityCmaintenanceProvides 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.231MIT
- FlicenseNot gradedqualityFmaintenanceProvides 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
- AlicenseNot gradedqualityDmaintenanceEnables 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.234MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to access and interact with macOS Calendar.app events and reminders, including viewing, searching, and filtering calendar data.2MIT
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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