Google Calendar MCP Server
Provides tools to list events (with optional date filters) and create new events in Google Calendar.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Google Calendar MCP Serverwhat events do I have this week?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Servidor MCP de Google Calendar
Este proyecto implementa un Servidor Model Context Protocol (MCP) que permite a herramientas IA conectarse e interactuar con Google Calendar.
🚀 Inicio Rápido
Requisitos Previos
Node.js (v18+)
Un proyecto configurado en Google Cloud Console con la API de Google Calendar habilitada.
Archivo
.enven la raíz con tus credenciales OAuth 2.0 (App de Escritorio):CLIENT_ID=tu_client_id CLIENT_SECRET=tu_client_secret
Instalación
npm installAutenticación (Primera vez) Para autorizar el acceso a tu calendario, ejecuta el script de autenticación local. Este levantará un servidor temporal en
http://127.0.0.1:3000para capturar el token de forma segura:npm run authNota: Asegúrate de añadir tu correo de Gmail a la lista de Usuarios de prueba (Test users) en la sección de Audiencia de Google Auth Platform en tu consola de Google Cloud.
Compilar y Ejecutar el Servidor Compila el código TypeScript a JavaScript nativo:
npm run buildEjecuta el servidor compilado:
npm startDepuración y Testing Puedes inspeccionar visualmente y probar las herramientas del servidor en tu navegador usando el MCP Inspector oficial:
npm run inspect
Related MCP server: Google Calendar MCP
🛠️ Herramientas Disponibles (Tools)
list_events: Lista eventos de Google Calendar. Muestra la semana actual por defecto o un rango/día específico.create_event: Crea un nuevo evento en Google Calendar con título, fecha/hora de inicio y fin.find_free_slots: Busca ventanas de tiempo libres según la duración mínima requerida y una franja horaria laboral.reschedule_event: Reprograma o mueve un evento existente a un nuevo horario mediante su ID.delete_or_cancel_event: Elimina o cancela un evento del calendario usando su ID.detect_conflicts: Examina el calendario en busca de solapamientos entre actividades.get_workload_analytics: Generar métricas y desgloses de horas agendadas por categoría ([FREELANCE],[TRABAJO],[FORMACION], etc.).
⚙️ Integración con Antigravity
Añade este servidor a tu configuración de antigravity.json (o .gemini/config/mcp_config.json):
{
"mcpServers": {
"google-calendar": {
"command": "node",
"args": ["/ruta/absoluta/al/proyecto/dist/index.js"]
}
}
}Acontinuacion se muestra un listado de las tools disponibles (o que lo estaran) y su finalidad. Tambien se incluye un pequeño resumen de las skills con las que yo compagino este MCP para potenciar su uso.
Tipo | Nombre | Finalidad |
[Skill] |
| Lee proyectos activos ( |
[Skill] |
| Analiza tu bitácora diaria ( |
[Skill] |
| Cruza tus eventos marcados como freelance en el calendario con tu CRM local para calcular las horas dedicadas a cada cliente, registrar el progreso y preparar informes de facturación. |
[Skill] |
| Detecta las fechas de exámenes en tus recursos de la UMU, calcula las horas de estudio necesarias basándose en la dificultad de la asignatura y agenda sesiones de repaso espaciadas en el calendario hasta el día del examen. |
[Tool] |
| Lista eventos del calendario principal filtrando por día específico, rango de fechas o por defecto la semana actual. |
[Tool] |
| Inserta un nuevo evento (reunión, clase, entrega) en un calendario específico con título, descripción y fecha/hora. |
[Tool] |
| Busca ventanas de tiempo disponibles en tu calendario según la duración requerida y respetando tus reglas (ej. "no agendar cosas de UMU durante mi horario de trabajo full-time"). |
[Tool] |
| Mueve un evento existente a una nueva fecha/hora, resolviendo automáticamente solapamientos sencillos si el usuario decide posponer una tarea. |
[Tool] |
| Elimina un evento del calendario o cancela una ocurrencia específica de una serie de eventos recurrentes. |
[Tool] |
| Examina el calendario en busca de solapamientos entre actividades (ej. una reunión de freelance que choca con tus clases de la UMU o tu trabajo principal). |
[Tool] |
| Analiza el uso del tiempo en un periodo y devuelve estadísticas sobre cuántas horas has asignado a cada área (Freelance, UMU, Trabajo, Ocio) para ayudarte a balancear tu semana. |
🔗 Enlaces Útiles
Available Tools
7 toolscreate_eventC
Crea un nuevo evento en Google Calendar.
| Name | Required | Description | Default |
|---|---|---|---|
| endTime | Yes | Fecha y hora de fin en formato ISO 8601 (ej. 2026-08-12T11:00:00+02:00) | |
| summary | Yes | Título del evento | |
| startTime | Yes | Fecha y hora de inicio en formato ISO 8601 (ej. 2026-08-12T10:00:00+02:00) | |
| description | No | Descripción del evento (opcional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations to rely on, the description carries the full burden. It only states the basic action of creating an event and does not mention side effects, permissions, return values, or potential errors. This is minimal disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no redundant words. It is appropriately concise for the simple create operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a basic create action, but it lacks context about potential conflicts, authentication requirements, or the result of creation. Since there is no output schema, the description does not need to explain return values, but a bit more operational context would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (all parameters have descriptions with format and meaning). The description text itself adds no additional semantic value beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('creates') and resource ('event in Google Calendar'), clearly indicating the action. However, it does not explicitly name a sibling tool it is not, so it falls slightly short of a perfect 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention conditions, prerequisites, or scenarios that would favor this tool over sibling tools like reschedule_event or find_free_slots.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_or_cancel_eventB
Elimina o cancela un evento del calendario usando su ID.
| Name | Required | Description | Default |
|---|---|---|---|
| eventId | Yes | ID del evento a eliminar |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden of behavioral disclosure. It only restates the destructive action and does not disclose consequences, reversibility, or failure behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no redundant content. It is appropriately concise, though minimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter destructive tool, the description conveys the basic call mechanism. However, it lacks notes on outcome, side effects, or delete-versus-cancel semantics, leaving completeness partial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the description only repeats 'usando su ID'. It adds no meaningful semantic detail beyond the schema's eventId field.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: eliminating or cancelling a calendar event by its ID. This distinguishes it from siblings such as create_event, list_events, and reschedule_event.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to choose this tool over alternatives or about any prerequisites. The intended use is inferable from the action, but no explicit exclusions or alternative recommendations are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
detect_conflictsB
Examina el calendario para detectar solapamientos y conflictos de horario entre eventos.
| Name | Required | Description | Default |
|---|---|---|---|
| endDate | No | Fecha de fin del rango (YYYY-MM-DD, opcional) | |
| startDate | No | Fecha de inicio del rango (YYYY-MM-DD, opcional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Examina' implies a read-only operation, but the description does not explicitly state whether the tool modifies anything, what it returns, or how optional date parameters affect behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no filler. The purpose is immediately front-loaded and every word contributes to understanding the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity tool with two optional parameters and no output schema, the description is adequate but has gaps: it does not explain what happens if no date range is provided, what the return value looks like, or whether the operation is read-only. This is a minimal viable definition but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both startDate and endDate are already documented in the input schema. The description adds no extra meaning about formatting, range semantics, or behavior when parameters are omitted, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Examina... detectar') and identifies the resource (calendar/eventos) and outcome (solapamientos y conflictos). It clearly conveys what the tool does, but it does not explicitly differentiate it from siblings like find_free_slots or list_events.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as find_free_slots or get_workload_analytics. There are no prerequisites, exclusions, or context about when conflict detection is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_free_slotsB
Busca ventanas de tiempo libres disponibles en el calendario respetando una duración requerida y una franja horaria laboral opcional.
| Name | Required | Description | Default |
|---|---|---|---|
| endDate | Yes | Fecha de fin del rango (YYYY-MM-DD) | |
| endHour | No | Hora de fin de la jornada diaria (ej. 21 para las 21:00, opcional, por defecto 21) | |
| startDate | Yes | Fecha de inicio del rango (YYYY-MM-DD) | |
| startHour | No | Hora de inicio de la jornada diaria (ej. 9 para las 09:00, opcional, por defecto 9) | |
| durationMinutes | Yes | Duración mínima en minutos que debe tener el hueco libre (ej. 60 para 1 hora) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It adds useful context that results respect a minimum duration and an optional workday boundary, which goes beyond the bare tool name. However, it does not state what 'free' means (implicitly excluding existing events), whether date bounds are inclusive, or what the return shape is — significant gaps without annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence in Spanish that states the main action first, then the two constraints. No filler or redundancy — every phrase earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter tool with no annotations and no output schema, the description is thin. It explains the core purpose but omits the return value shape — an agent cannot tell whether it receives time ranges, counts, or suggestions — and never situates the tool within the calendar workflow. The rich schema covers parameter formats, but not the behavioral and contextual gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — all five parameters (startDate, endDate, durationMinutes, startHour, endHour) are documented with format examples and defaults. The description's references to duration and workday hours merely mirror schema content and add no new meaning. The baseline 3 applies because the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Busca ventanas de tiempo libres disponibles en el calendario') with two clear constraints — required duration and optional workday hours. This is semantically distinct from siblings like reschedule_event, delete_or_cancel_event, list_events, and create_event. However, it does not explicitly contrast with detect_conflicts, the closest sibling, leaving the agent to infer the difference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to choose this tool over alternatives. With close siblings like detect_conflicts and list_events, an agent receives no signal about which tool answers availability questions. No exclusions, prerequisites, or conditional use cases are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workload_analyticsA
Analiza la distribución del tiempo agendado en un período y genera métricas sobre cuántas horas se han dedicado a cada área.
| Name | Required | Description | Default |
|---|---|---|---|
| endDate | No | Fecha de fin del rango (YYYY-MM-DD, opcional) | |
| startDate | No | Fecha de inicio del rango (YYYY-MM-DD, opcional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full responsibility for disclosing behavioral traits, but it only says 'analyzes' and 'generates metrics.' It does not state that the tool is read-only, how optional date parameters behave when omitted, or what aggregation assumptions apply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence expresses the action, the resource, and the generated metrics with no filler. Every word contributes to understanding the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool, the description gives the core purpose and a high-level output summary. But since there is no output schema and no annotations, it should more explicitly describe the default date range, the exact metric fields, and the meaning of 'area' to be fully self-sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the parameter names and formats are already documented. The description adds only the notion of analyzing a 'period,' which maps to the date parameters without adding meaningful detail about defaults or boundary behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific language: it analyzes scheduled-time distribution over a period and generates per-area hour metrics. This clearly distinguishes it from the event-management siblings like create_event, list_events, and detect_conflicts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied: use it when needing workload distribution or per-area hour metrics over a period. However, it provides no explicit guidance about when not to use it or why it should be preferred over sibling event-list/analytics alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_eventsA
Lista eventos de Google Calendar. Por defecto muestra la semana actual. Puedes especificar un rango de fechas o un solo día.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Fecha específica (YYYY-MM-DD). Si se proporciona, lista eventos de ese día. | |
| endDate | No | Fecha de fin del rango (YYYY-MM-DD). | |
| startDate | No | Fecha de inicio del rango (YYYY-MM-DD). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals that the default is the current week and that filtering by date range or single day is possible. However, it does not describe the returned data structure, pagination, timezone handling, or whether only basic event details are returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose and containing zero fluff. It conveys the main action, the default behavior, and the available filtering options efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only listing tool with three optional parameters and no output schema, the description provides sufficient context to invoke it correctly: default behavior and parameter use. It could be improved by mentioning what event fields are returned, but this is not critical for basic invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all three parameters (date, startDate, endDate) already explained in the schema. The description adds only minimal value by reinforcing that a range or single day can be specified, which is essentially redundant with the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Lista eventos de Google Calendar' (lists Google Calendar events). It clearly distinguishes this tool from siblings like create_event, reschedule_event, and delete_or_cancel_event, which all involve other actions. The default behavior and optional filters are also stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by explaining the default current-week behavior and acceptable parameters (date range or single day). However, it does not explicitly compare with alternatives or state when not to use this tool, leaving the agent to infer when to choose list_events over siblings like detect_conflicts or find_free_slots.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reschedule_eventA
Reprograma o mueve un evento existente a una nueva fecha y hora usando su ID de evento.
| Name | Required | Description | Default |
|---|---|---|---|
| endTime | Yes | Nueva fecha y hora de fin en formato ISO 8601 (ej. 2026-08-20T17:30:00+02:00) | |
| eventId | Yes | ID del evento a reprogramar | |
| startTime | Yes | Nueva fecha y hora de inicio en formato ISO 8601 (ej. 2026-08-20T16:00:00+02:00) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose side effects itself; it only states that an existing event is moved/rescheduled. It does not mention whether conflicts are checked, whether attendees are notified, whether the change is reversible, or what the response contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler, and the key action and target appear first. The only minor issue is the redundant 'o mueve' where 'reprograma' already conveys the operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The input parameters are fully covered by the schema, but with no annotations and no output schema the description needs to explain the behavioral contract of the mutation. It omits effects on the original event, conflict handling, and return/confirmation behavior, leaving a significant gap for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so eventId, startTime, and endTime are already documented with formats and purpose. The description's 'using its ID' and 'new date and time' merely restate what the schema already says, adding no extra semantic value beyond the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action ('Reprograma o mueve'), a resource ('evento existente'), and the change ('a una nueva fecha y hora'), tied to the event ID. This clearly identifies it as a rescheduling operation and distinguishes it from siblings like create_event or delete_or_cancel_event even without naming them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It establishes a clear context: use this for an existing event that needs a new date/time. The phrase 'evento existente' separates it from creation, though it does not explicitly name alternatives or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
7 tool updates
v1.0.0- First observed
create_event - First observed
delete_or_cancel_event - First observed
detect_conflicts - First observed
find_free_slots - First observed
get_workload_analytics - First observed
list_events - First observed
reschedule_event
TDQS
Scored across 7 tools
Each tool targets a distinct calendar action or query: CRUD operations, conflict detection, free-slot search, and analytics. Even the two availability-related tools are clearly separated by purpose (finding free windows vs detecting overlaps).
All tool names follow a consistent snake_case verb_noun pattern (create_event, list_events, find_free_slots, etc.). The only compound name, delete_or_cancel_event, still uses the same style and a clear verb.
Seven tools is a well-scoped set for a Google Calendar server: it covers core event management plus useful scheduling helpers without bloat.
Core event lifecycle is covered (create, list, reschedule, delete/cancel) with useful extras like conflicts, free slots, and analytics. A generic event detail update beyond rescheduling would be a minor enhancement, but no critical workflow dead-ends are apparent.
Maintenance
Related MCP Connectors
Calendar API for AI agents: events, availability, Google/Microsoft setup, scheduling, and iCal.
GDPR-compliant calendar access for AI assistants: read, create, edit, RSVP. Google, MS 365, Apple.
Manage Google, Outlook & Apple calendars and create private sync rules from chat.
Schedule and manage Google Calendar events directly from your workspace. Check availability, view…
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage Google Calendar by listing, creating, updating, and deleting events. It also includes functionality to find available time slots for scheduling.-
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to view, create, update, search, and manage Google Calendar events, including multi-account support and availability checks.11 npmBusiness Source 1.1
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage Google Calendar events through natural language interactions, including creating, updating, deleting, and listing events.5 npmISC
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage Google Calendar events, including reading, searching, creating, updating, and deleting events, as well as checking availability and listing calendars.20 npmMIT