# Apple Calendar

Управляет событиями в штатном календаре macOS через MCP. Помогает просматривать расписание, создавать встречи и удалять записи прямо из чата.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 31
- Автор: JonathanRReed
- Лицензия: MIT · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/JonathanRReed/Apple-MCPs/tree/HEAD/apple-calendar-mcp
- Обновлён: 2026-10-22
- HTML: https://affpapa.org/nevibecode/mcp/apple-calendar

## Что делает

Сервер открывает ИИ-агенту прямой доступ к приложению «Календарь» на Mac. Ассистент может читать расписание, добавлять новые встречи, менять детали или удалять события. Для старта требуются macOS, Python 3.11+ и утилита `uv`.

Взаимодействие идёт через стандартные потоки `stdio`, при этом сервер запускается командой `uvx apple-calendar-mcp`. Вы можете ограничить список доступных календарей и календарей с правом записи через переменные окружения `APPLE_CALENDAR_MCP_ALLOWED_CALENDARS` и `APPLE_CALENDAR_MCP_WRITE_ALLOWED_CALENDARS`. Если передать неверный режим безопасности, включится профиль только для чтения.

Локальная работа процесса не гарантирует приватность, потому что клиент отправляет прочитанные события на серверы языковой модели. MacOS потребует явно разрешить доступ к системному календарю в настройках. Без этого разрешения инструмент вернёт ошибку.

## Требования
- Нужно: Python и uv (команды через uvx)
- Переменные окружения: `APPLE_CALENDAR_MCP_SAFETY_MODE`, `APPLE_CALENDAR_MCP_ALLOWED_CALENDARS`, `APPLE_CALENDAR_MCP_WRITE_ALLOWED_CALENDARS` — это ключи и токены: значения спроси у человека, в репозиторий и общие файлы не записывай.

## Установка

### Claude Code (родная платформа)

**Командой платформы**
```bash
claude mcp add --env APPLE_CALENDAR_MCP_SAFETY_MODE=<APPLE_CALENDAR_MCP_SAFETY_MODE> --env APPLE_CALENDAR_MCP_ALLOWED_CALENDARS=<APPLE_CALENDAR_MCP_ALLOWED_CALENDARS> --env APPLE_CALENDAR_MCP_WRITE_ALLOWED_CALENDARS=<APPLE_CALENDAR_MCP_WRITE_ALLOWED_CALENDARS> --transport stdio apple-calendar-mcp -- uvx apple-calendar-mcp
```
Вместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from apple-calendar-mcp <команда>

### Codex

**Командой платформы**
```bash
codex mcp add apple-calendar-mcp --env APPLE_CALENDAR_MCP_SAFETY_MODE=<APPLE_CALENDAR_MCP_SAFETY_MODE> --env APPLE_CALENDAR_MCP_ALLOWED_CALENDARS=<APPLE_CALENDAR_MCP_ALLOWED_CALENDARS> --env APPLE_CALENDAR_MCP_WRITE_ALLOWED_CALENDARS=<APPLE_CALENDAR_MCP_WRITE_ALLOWED_CALENDARS> -- uvx apple-calendar-mcp
```
Вместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from apple-calendar-mcp <команда>

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "apple-calendar-mcp": {
            "command": "uvx",
            "args": [
                "apple-calendar-mcp"
            ],
            "env": {
                "APPLE_CALENDAR_MCP_SAFETY_MODE": "<APPLE_CALENDAR_MCP_SAFETY_MODE>",
                "APPLE_CALENDAR_MCP_ALLOWED_CALENDARS": "<APPLE_CALENDAR_MCP_ALLOWED_CALENDARS>",
                "APPLE_CALENDAR_MCP_WRITE_ALLOWED_CALENDARS": "<APPLE_CALENDAR_MCP_WRITE_ALLOWED_CALENDARS>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from apple-calendar-mcp <команда>

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "apple-calendar-mcp": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "apple-calendar-mcp"
            ],
            "env": {
                "APPLE_CALENDAR_MCP_SAFETY_MODE": "<APPLE_CALENDAR_MCP_SAFETY_MODE>",
                "APPLE_CALENDAR_MCP_ALLOWED_CALENDARS": "<APPLE_CALENDAR_MCP_ALLOWED_CALENDARS>",
                "APPLE_CALENDAR_MCP_WRITE_ALLOWED_CALENDARS": "<APPLE_CALENDAR_MCP_WRITE_ALLOWED_CALENDARS>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from apple-calendar-mcp <команда>

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add -e APPLE_CALENDAR_MCP_SAFETY_MODE=<APPLE_CALENDAR_MCP_SAFETY_MODE> -e APPLE_CALENDAR_MCP_ALLOWED_CALENDARS=<APPLE_CALENDAR_MCP_ALLOWED_CALENDARS> -e APPLE_CALENDAR_MCP_WRITE_ALLOWED_CALENDARS=<APPLE_CALENDAR_MCP_WRITE_ALLOWED_CALENDARS> apple-calendar-mcp uvx apple-calendar-mcp
```
Вместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from apple-calendar-mcp <команда>

## Когда брать
- Найти свободные слоты в календаре macOS перед назначением созвона
- Создать новую встречу с указанием времени и названия
- Обновить время или перенести существующее событие
- Удалить отменённую запись из нужного календаря

## Примеры запросов агенту
- Посмотри мои встречи в календаре на завтра после 14:00
- Запланируй созвон по проекту на пятницу в 11:00 на 30 минут
- Проверь доступность календаря через инструмент calendar_health

## Похожие
- [apple-calendar](https://affpapa.org/nevibecode/skills/apple-calendar.md) — скилл · 726 установок
- [Apple Shortcuts Integration](https://affpapa.org/nevibecode/skills/apple-shortcuts-integration.md) — скилл · 4700 установок
- [icloud-calendar-mcp](https://affpapa.org/nevibecode/mcp/icloud-calendar-mcp.md) — MCP-сервер · ★ 23

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
