Skip to main content
Glama

Apple Calendar MCP

Una extensión de Claude Desktop que le da a Claude acceso completo a Apple Calendar en macOS a través del framework de primera clase EventKit de Apple. Lee, busca, crea, actualiza y elimina eventos, incluidos eventos recurrentes (editados por ocurrencia o para todas las ocurrencias futuras), alarmas, ubicaciones estructuradas, lectura de asistentes y disponibilidad libre/ocupado.

Empaquetado como una extensión de escritorio MCPB con el icono de Calendar.app e instalación con un clic.

Complemento de los conectores de Apple Mail, Apple Reminders, Apple Notes y Apple Messages.


Qué hace

Herramienta

Descripción

list_calendars

Cada calendario con id, título, color, fuente/cuenta, indicador de escritura y cuál es el predeterminado

create_calendar

Crear un nuevo calendario (color y fuente opcionales)

update_calendar

Renombrar o recolorear un calendario existente

delete_calendar

Eliminar un calendario y todos sus eventos (destructivo)

get_stats

Número de calendarios, eventos de hoy, eventos en los próximos 7 días, próximo evento próximo

list_events

Ocurrencias de eventos en un rango de fechas con filtros: calendarios, texto, todo el día, cancelados

search_events

Búsqueda de texto libre en título, notas y ubicación, dentro de un rango de fechas opcional

get_event

Detalle completo: notas, URL, organizador, asistentes y sus respuestas, recurrencia, alarmas, ubicación, zona horaria

get_event_link

URL ical:// para abrir el evento en Calendar.app

get_availability

Intervalos ocupados combinados (libre/ocupado) en un rango: los huecos son tus espacios abiertos

create_event

Crear con conjunto completo de propiedades: recurrencia, alarmas, ubicación estructurada, disponibilidad, zona horaria

update_event

Actualizar cualquier subconjunto de propiedades; occurrence_date + span controlan el alcance recurrente; los indicadores clear_* eliminan campos

delete_event

Eliminar un evento u ocurrencia(s) de una serie recurrente (consciente del alcance)

Related MCP server: Apple EventKit MCP Server

Cómo funciona

La comunicación con Calendar se realiza a través de EventKit (EKEventStore, EKEvent, EKCalendar, EKRecurrenceRule, EKAlarm, EKStructuredLocation) mediante PyObjC: el mismo framework de primera clase que usa Calendar.app, leyendo el mismo almacén local (incluidos los calendarios sincronizados con iCloud, Google y Exchange).

Este es el mismo enfoque que el conector complementario de Apple Reminders y difiere de la ruta de AppleScript/JXA: EventKit expone el modelo de datos completo (lectura de recurrencia, edición por ocurrencia, respuestas de asistentes, ubicaciones estructuradas) y es drásticamente más rápido. A diferencia de Reminders, las consultas de eventos son síncronas en EventKit, por lo que no se necesita puente asíncrono; la única peculiaridad es que el predicado de eventos abarca como máximo ~4 años por consulta, por lo que los rangos más amplios se dividen en fragmentos de forma transparente.

Eventos recurrentes

Las ocurrencias de un evento recurrente comparten un event_id estable; cada ocurrencia devuelta por list_events también lleva un occurrence_date. Las herramientas de escritura aceptan ambos:

  • occurrence_date selecciona cuál ocurrencia estás apuntando

  • span selecciona el alcance: this_event (solo esa ocurrencia, desvinculándola) o future_events (esa ocurrencia y todo lo posterior)


Requisitos

  • macOS 14 Sonoma o posterior (requestFullAccessToEvents se agregó en 14)

  • Python 3.11+

  • Claude Desktop con soporte de extensiones

  • Permiso de Calendar: Acceso completo — otorgado a Claude Desktop (ver más abajo)


Instalación

Opción 1: Extensión de escritorio (recomendada)

Descarga el último .mcpb desde Releases y luego haz doble clic para instalarlo.

O compílalo desde el código fuente:

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

Luego haz doble clic en dist/apple-calendar.mcpb (o arrástralo a Claude Desktop).

La extensión aparece en Configuración > Extensiones con el icono de Calendar.

Opción 2: Configuración manual de MCP

Edita ~/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"]
    }
  }
}

Permisos

La primera vez que Claude llame a una herramienta de Calendar, macOS te pedirá que concedas acceso a Calendarios. Elige Acceso completo: el permiso "Solo agregar" de macOS 14+ no puede leer eventos, por lo que todas las herramientas de lectura (y la lectura posterior a cada escritura) fallarían.

Si el aviso no aparece (lo que puede ocurrir con intérpretes sin firmar lanzados como procesos secundarios):

  1. Abre Configuración del sistema → Privacidad y seguridad → Calendarios

  2. Agrega Claude Desktop (o el proceso que esté ejecutando uv) y activa Acceso completo

  3. Sal y vuelve a abrir Claude Desktop

Para verificar el estado del acceso, ejecuta:

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

(auth_value de 2 = acceso completo, 0 = denegado.)


Ejemplos de uso

Una vez instalado, solo pídele a Claude de forma natural:

  • "¿Qué tengo en mi calendario hoy?"

  • "¿Cuándo estoy libre durante una hora mañana por la tarde?"

  • "Programa un almuerzo con Sam el viernes al mediodía en Zuni Café."

  • "Mueve mi reunión de las 3 a las 4:30 y haz que dure 45 minutos."

  • "Configura una sincronización de equipo semanal todos los martes a las 10 a. m. durante las próximas 8 semanas."

  • "Cancela solo el standup del próximo lunes, mantén el resto de la serie."

  • "Agrega una alerta de 10 minutos antes a mi cita con el dentista."

  • "¿Quién no ha respondido a la invitación del retiro?"

  • "Crea un calendario 'Viajes' y pon mi itinerario de vuelo en él."


Compilar desde el código fuente

# 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

Estructura del proyecto

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

Pruebas

# 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

Las pruebas en vivo operan contra un calendario dedicado __claude_mcp_test__ que se crea en la configuración y se elimina al final.


Seguridad y privacidad

  • Todos los datos permanecen en tu Mac: este es un servidor MCP local. EventKit lee del mismo almacén que usa Calendar.app, incluidos los calendarios sincronizados con iCloud/Google/Exchange.

  • Las operaciones están controladas por TCC de macOS: no ocurre nada hasta que concedas acceso a Calendar.

  • Solo macOS ("platforms": ["darwin"] en el manifiesto).

  • El conector nunca accede fuera de la entidad Calendar: sin Reminders, contactos ni archivos.

  • Las operaciones destructivas (delete_calendar, delete_event) son herramientas explícitas que el modelo debe elegir llamar; no se ejecutan como efectos secundarios de las lecturas.

  • Crear o modificar eventos nunca envía invitaciones por correo: la API pública de EventKit no puede agregar asistentes, por lo que nada sale de tu máquina.


Solución de problemas

"No se concedió acceso a Apple Calendar" Abre Configuración del sistema → Privacidad y seguridad → Calendarios, asegúrate de que Claude Desktop esté listado con Acceso completo (no "Solo agregar") y reinicia Claude Desktop.

El aviso de permiso no aparece Los intérpretes de Python sin firmar lanzados por Claude Desktop a veces no activan el aviso automáticamente. Agrega Claude Desktop manualmente en Configuración del sistema → Privacidad y seguridad → Calendarios.

Los eventos más allá de ~4 años no aparecen El predicado de eventos de EventKit abarca como máximo 4 años por consulta. El conector divide automáticamente los rangos más amplios, pero los rangos extremadamente amplios serán lentos: prefiere ventanas más estrechas.

Una edición de evento recurrente cambió toda la serie Pasa occurrence_date (de list_events) para apuntar a una ocurrencia y mantén span='this_event'. span='future_events' reescribe intencionalmente esa ocurrencia y todo lo posterior.

¿Puede Claude invitar a personas a una reunión? No: la API pública de EventKit expone los asistentes solo de lectura. Claude puede leer quién está invitado y cómo respondieron, pero tú agregas invitados en Calendar.app.

La extensión no aparece después de la instalación Asegúrate de estar usando una versión reciente de Claude Desktop que admita extensiones MCPB. Reinicia Claude Desktop después de instalar.


Hoja de ruta

v1 — enviado

  • Listar, crear, renombrar, eliminar calendarios

  • Listar, buscar, obtener eventos con filtros y paginación

  • Crear, actualizar, eliminar eventos (consciente del alcance para series recurrentes)

  • Recurrencia (diaria/semanal/mensual/anual con intervalos, por día, por mes, posiciones establecidas, condiciones de fin)

  • Alarmas (relativas, absolutas)

  • Ubicaciones estructuradas (geocodificadas)

  • Lectura de asistentes y organizador con estado de respuesta

  • Disponibilidad libre/ocupado con combinación de intervalos

  • Enlaces profundos ical://

v2 — en consideración

  • RSVP / responder a invitación (bloqueado por la API pública de EventKit)

  • Lectura de tiempo de viaje y URL de conferencia donde EventKit los exponga

  • Operaciones masivas (mover/eliminar múltiples eventos)

  • Asistente natural de "encontrar un espacio para N personas" sobre get_availability


Licencia

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