Apple Calendar MCP
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 |
| Cada calendario con id, título, color, fuente/cuenta, indicador de escritura y cuál es el predeterminado |
| Crear un nuevo calendario (color y fuente opcionales) |
| Renombrar o recolorear un calendario existente |
| Eliminar un calendario y todos sus eventos (destructivo) |
| Número de calendarios, eventos de hoy, eventos en los próximos 7 días, próximo evento próximo |
| Ocurrencias de eventos en un rango de fechas con filtros: calendarios, texto, todo el día, cancelados |
| Búsqueda de texto libre en título, notas y ubicación, dentro de un rango de fechas opcional |
| Detalle completo: notas, URL, organizador, asistentes y sus respuestas, recurrencia, alarmas, ubicación, zona horaria |
| URL |
| Intervalos ocupados combinados (libre/ocupado) en un rango: los huecos son tus espacios abiertos |
| Crear con conjunto completo de propiedades: recurrencia, alarmas, ubicación estructurada, disponibilidad, zona horaria |
| Actualizar cualquier subconjunto de propiedades; |
| 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_dateselecciona cuál ocurrencia estás apuntandospanselecciona el alcance:this_event(solo esa ocurrencia, desvinculándola) ofuture_events(esa ocurrencia y todo lo posterior)
Requisitos
macOS 14 Sonoma o posterior (
requestFullAccessToEventsse 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.shLuego 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):
Abre Configuración del sistema → Privacidad y seguridad → Calendarios
Agrega Claude Desktop (o el proceso que esté ejecutando
uv) y activa Acceso completoSal 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.mcpbEstructura 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 modelsPruebas
# 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.pyLas 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
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