Skip to main content
Glama
JavierPrior845

Google Calendar MCP Server

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

  1. Requisitos Previos

    • Node.js (v18+)

    • Un proyecto configurado en Google Cloud Console con la API de Google Calendar habilitada.

    • Archivo .env en la raíz con tus credenciales OAuth 2.0 (App de Escritorio):

      CLIENT_ID=tu_client_id
      CLIENT_SECRET=tu_client_secret
  2. Instalación

    npm install
  3. Autenticació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:3000 para capturar el token de forma segura:

    npm run auth

    Nota: 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.

  4. Compilar y Ejecutar el Servidor Compila el código TypeScript a JavaScript nativo:

    npm run build

    Ejecuta el servidor compilado:

    npm start
  5. Depuració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]

planificador-semanal

Lee proyectos activos (01_Projects), entregas a clientes (02_Areas/Freelance) y exámenes (03_Resources/Universidad_UMU) para proponer y agendar bloques de tiempo de estudio/trabajo en tus huecos libres de Google Calendar.

[Skill]

sincronizador-bitacora

Analiza tu bitácora diaria (Daily_Work_Log.md) al final de la jornada y actualiza el calendario ajustando los eventos planificados a las horas reales que dedicaste a cada tarea.

[Skill]

freelance-billing-helper

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]

preparador-examenes

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]

list_events (Ya creada)

Lista eventos del calendario principal filtrando por día específico, rango de fechas o por defecto la semana actual.

[Tool]

create_event (Ya creada)

Inserta un nuevo evento (reunión, clase, entrega) en un calendario específico con título, descripción y fecha/hora.

[Tool]

find_free_slots

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]

reschedule_event

Mueve un evento existente a una nueva fecha/hora, resolviendo automáticamente solapamientos sencillos si el usuario decide posponer una tarea.

[Tool]

delete_or_cancel_event

Elimina un evento del calendario o cancela una ocurrencia específica de una serie de eventos recurrentes.

[Tool]

detect_conflicts

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]

get_workload_analytics

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 tools
create_eventC

Crea un nuevo evento en Google Calendar.

ParametersJSON Schema
NameRequiredDescriptionDefault
endTimeYesFecha y hora de fin en formato ISO 8601 (ej. 2026-08-12T11:00:00+02:00)
summaryYesTítulo del evento
startTimeYesFecha y hora de inicio en formato ISO 8601 (ej. 2026-08-12T10:00:00+02:00)
descriptionNoDescripción del evento (opcional)

TDQS

C2.7/5.0
Behavior1/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines1/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
eventIdYesID del evento a eliminar

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
endDateNoFecha de fin del rango (YYYY-MM-DD, opcional)
startDateNoFecha de inicio del rango (YYYY-MM-DD, opcional)

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
endDateYesFecha de fin del rango (YYYY-MM-DD)
endHourNoHora de fin de la jornada diaria (ej. 21 para las 21:00, opcional, por defecto 21)
startDateYesFecha de inicio del rango (YYYY-MM-DD)
startHourNoHora de inicio de la jornada diaria (ej. 9 para las 09:00, opcional, por defecto 9)
durationMinutesYesDuración mínima en minutos que debe tener el hueco libre (ej. 60 para 1 hora)

TDQS

B3.2/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
endDateNoFecha de fin del rango (YYYY-MM-DD, opcional)
startDateNoFecha de inicio del rango (YYYY-MM-DD, opcional)

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoFecha específica (YYYY-MM-DD). Si se proporciona, lista eventos de ese día.
endDateNoFecha de fin del rango (YYYY-MM-DD).
startDateNoFecha de inicio del rango (YYYY-MM-DD).

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
endTimeYesNueva fecha y hora de fin en formato ISO 8601 (ej. 2026-08-20T17:30:00+02:00)
eventIdYesID del evento a reprogramar
startTimeYesNueva fecha y hora de inicio en formato ISO 8601 (ej. 2026-08-20T16:00:00+02:00)

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

  1. 7 tool updatesv1.0.0
    • First observedcreate_event
    • First observeddelete_or_cancel_event
    • First observeddetect_conflicts
    • First observedfind_free_slots
    • First observedget_workload_analytics
    • First observedlist_events
    • First observedreschedule_event

TDQS

A3.6/5.0

Scored across 7 tools

Disambiguation5/5

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).

Naming Consistency5/5

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.

Tool Count5/5

Seven tools is a well-scoped set for a Google Calendar server: it covers core event management plus useful scheduling helpers without bloat.

Completeness4/5

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

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to manage Google Calendar by listing, creating, updating, and deleting events. It also includes functionality to find available time slots for scheduling.
    -