> ## Documentation Index
> Fetch the complete documentation index at: https://docs.jelou.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Google Calendar

> Crea eventos, consulta disponibilidad y coordina citas de Google Calendar desde tus flujos en Brain Studio.

**Google Calendar** es el servicio de calendario y reuniones de Google Workspace. A diferencia de plataformas de agendamiento como Calendly o AgendaPro (que operan sobre reservas para clientes externos), Google Calendar gestiona la agenda personal y compartida de cada usuario.

En **Brain Studio**, la integración permite que tus flujos y agentes consulten disponibilidad, creen reuniones, reprogramen citas y coordinen asistentes directamente desde la conversación.

## Qué habilita Google Calendar

Al conectar **Google Calendar**, puedes:

* **Consultar disponibilidad real (libre/ocupado)** de personas o salas antes de comprometer una fecha
* **Crear, actualizar y eliminar eventos** con asistentes, conferencia y campos opcionales desde el flujo
* **Coordinar reuniones desde la conversación** — agendar demos, seguimientos o citas operativas sin que nadie entre a Calendar
* **Leer calendarios y eventos existentes** para dar contexto al agente antes de proponer un horario

***

## Instalación

### Requisitos previos

1. Una **cuenta de Google** con **Google Calendar** habilitado.

### Cómo conectarla

La forma más directa es usar [**Jelou Agent**](/guides/getting-started/jelou-agent): describe lo que necesitas y el agente conecta **Google Calendar** automáticamente dentro del flujo.

Si prefieres instalar manualmente, sigue estos pasos en el **Marketplace**. La conexión usa **OAuth de Google**; no necesitas copiar credenciales.

<Steps>
  <Step title="Abrir el Marketplace">
    En Brain Studio, abre **Marketplace** desde el menú lateral.
  </Step>

  <Step title="Buscar Google Calendar">
    Encuentra la integración y haz clic en **Conectar**.
  </Step>

  <Step title="Autorizar acceso">
    Inicia sesión en Google y acepta los permisos.
  </Step>

  <Step title="Confirmar instalación">
    La integración aparecerá como **conectada**.

    <Check>
      Puedes usarla en **Canvas** o agregarla como herramienta en **AI Agent**.
    </Check>
  </Step>
</Steps>

***

## Tools disponibles

A alto nivel, las acciones se agrupan así:

* **Consultar** — listar calendarios y eventos, libre/ocupado, detalles de calendario o evento, usuario actual.
* **Crear o modificar** — crear evento, agregar evento rápido, actualizar evento, añadir asistentes.
* **Eliminar** — eliminar un evento.

La integración expone 11 tools en Brain Studio; a continuación, cada una con propósito, inputs y ejemplo.

<AccordionGroup>
  <Accordion title="Añadir asistentes al evento">
    Incorpora nuevos invitados a un evento que ya existe. Suele realizarse mediante una actualización del evento manteniendo el resto de campos.

    **Inputs:**

    * **calendarId** (string) — ID del calendario (usa `"primary"` para el principal).
    * **eventId** (string) — ID del evento.
    * **attendees** (array de objeto) — Lista de asistentes a añadir o fusionar; cada objeto puede incluir **email** (string), **displayName** (opcional), **optional** (opcional, boolean), etc.

    **Ejemplo:**

    ```json theme={null}
    {
      "calendarId": "primary",
      "eventId": "abc123evento",
      "attendees": [
        { "email": "nuevo@ejemplo.com", "displayName": "Invitado" }
      ]
    }
    ```

    [Documentación de Google: actualizar evento](https://developers.google.com/calendar/api/v3/reference/events/update)
  </Accordion>

  <Accordion title="Crear evento">
    Crea un evento nuevo con título, horario y campos opcionales (asistentes, conferencia, color, etc.).

    **Inputs:**

    * **calendarId** (string) — ID del calendario (`"primary"` para el principal).
    * **summary** (string) — Título del evento.
    * **description** (string) — Descripción.
    * **start** (string) — Inicio en ISO 8601 (fecha `YYYY-MM-DD` o fecha/hora completa).
    * **end** (string) — Fin en ISO 8601 (debe ser posterior a `start`; en eventos de todo el día la fecha de fin es exclusiva).
    * **attendees** (opcional, array de objeto) — Asistentes con **email**, **displayName** (opcional), **optional** (opcional), etc.
    * **anyoneCanAddSelf** (opcional, boolean)
    * **colorId** (opcional, string) — Color del evento (1–11).
    * **conferenceData** (opcional, objeto o null) — Datos de conferencia (p. ej. Google Meet) con **createRequest** / **requestId** / **conferenceSolutionKey**.

    **Ejemplo:**

    ```json theme={null}
    {
      "calendarId": "primary",
      "summary": "Onboarding Brain Studio",
      "description": "Sesión de implementación con ACME.",
      "start": "2025-01-16T14:00:00-03:00",
      "end": "2025-01-16T15:00:00-03:00",
      "attendees": [
        { "email": "cliente@example.com", "displayName": "Cliente ACME" },
        { "email": "success@example.com", "optional": true }
      ],
      "conferenceData": {
        "createRequest": {
          "requestId": "brain-studio-onboarding",
          "conferenceSolutionKey": { "type": "hangoutsMeet" }
        }
      }
    }
    ```

    [Documentación de Google: insertar evento](https://developers.google.com/calendar/api/v3/reference/events/insert)
  </Accordion>

  <Accordion title="Eliminar un evento">
    Elimina un evento de un calendario. Esta acción es **irreversible** en Calendar (el evento deja de existir).

    <Warning>
      Al ejecutar esta tool se **elimina permanentemente** el evento indicado. Verifica **calendarId** y **eventId** antes de confirmar en el flujo o en el agente.
    </Warning>

    **Inputs:**

    * **calendarId** (string) — ID del calendario.
    * **eventId** (string) — ID del evento.

    **Ejemplo:**

    ```json theme={null}
    {
      "calendarId": "primary",
      "eventId": "6a1b2c3d4e5f"
    }
    ```

    [Documentación de Google: eliminar evento](https://developers.google.com/calendar/api/v3/reference/events/delete)
  </Accordion>

  <Accordion title="Obtener detalles del calendario">
    Devuelve metadatos de un calendario concreto (por ejemplo resumen, zona horaria, ubicación).

    **Inputs:**

    * **calendarId** (string) — ID del calendario (p. ej. correo del calendario o `"primary"` cuando aplique según la tool).

    **Ejemplo:**

    ```json theme={null}
    {
      "calendarId": "primary"
    }
    ```

    [Documentación de Google: obtener calendario](https://developers.google.com/calendar/api/v3/reference/calendars/get)
  </Accordion>

  <Accordion title="Obtener usuario actual">
    Obtiene información de la cuenta autenticada y contexto útil para programar: calendario principal, calendarios accesibles, ajustes de usuario (zona horaria, configuración regional, etc.) según lo que exponga la tool.

    **Inputs:**

    * Normalmente **ningún parámetro obligatorio**. Si la tool ofrece filtros opcionales, úsalos según el formulario en Brain Studio.

    **Ejemplo:**

    ```json theme={null}
    {}
    ```

    [Documentación de Google: calendario (referencia de API)](https://developers.google.com/calendar/api/v3/reference/calendars/get)
  </Accordion>

  <Accordion title="Obtener detalles del evento">
    Obtiene el recurso completo de un evento por su ID.

    **Inputs:**

    * **calendarId** (string) — ID del calendario.
    * **eventId** (string) — ID del evento.

    **Ejemplo:**

    ```json theme={null}
    {
      "calendarId": "primary",
      "eventId": "6a1b2c3d4e5f"
    }
    ```

    [Documentación de Google: obtener evento](https://developers.google.com/calendar/api/v3/reference/events/get)
  </Accordion>

  <Accordion title="Listar calendarios">
    Lista los calendarios de la colección del usuario (acceso, color, selección, etc.).

    **Inputs:**

    * **pageToken** (opcional, string) — Token de paginación.
    * **includeHidden** (opcional, boolean) — Incluir calendarios ocultos (p. ej. cumpleaños) si la tool lo soporta.

    **Ejemplo:**

    ```json theme={null}
    {
      "pageToken": "Cg4IARAA",
      "includeHidden": false
    }
    ```

    [Documentación de Google: listar calendarList](https://developers.google.com/calendar/api/v3/reference/calendarList/list)
  </Accordion>

  <Accordion title="Listar eventos">
    Lista eventos en un rango de tiempo; admite paginación y, según la tool, búsqueda por texto.

    **Inputs:**

    * **calendarId** (string) — ID del calendario (`"primary"` para el principal).
    * **startsAt** o **timeMin** (string) — Inicio del rango (ISO 8601), según el nombre en el formulario.
    * **endsAt** o **timeMax** (string) — Fin del rango (ISO 8601).
    * **pageToken** (opcional, string) — Paginación.
    * **searchQuery** (opcional, string) — Texto en título, descripción, etc.

    **Ejemplo:**

    ```json theme={null}
    {
      "calendarId": "primary",
      "startsAt": "2025-01-16T14:00:00-03:00",
      "endsAt": "2025-01-16T18:00:00-03:00",
      "searchQuery": "onboarding"
    }
    ```

    [Documentación de Google: listar eventos](https://developers.google.com/calendar/api/v3/reference/events/list)
  </Accordion>

  <Accordion title="Recuperar detalles del calendario libre/ocupado">
    Consulta intervalos libre/ocupado para uno o varios calendarios en un rango de tiempo.

    **Inputs:**

    * **timeMin** (string) — Inicio del intervalo (ISO 8601).
    * **timeMax** (string) — Fin del intervalo (ISO 8601).
    * **items** (array de objeto) — Calendarios a consultar; cada elemento suele incluir **id** (string, ID del calendario).

    **Ejemplo:**

    ```json theme={null}
    {
      "timeMin": "2025-01-16T09:00:00-03:00",
      "timeMax": "2025-01-16T18:00:00-03:00",
      "items": [{ "id": "primary" }, { "id": "otro.calendario@group.calendar.google.com" }]
    }
    ```

    [Documentación de Google: consultar freebusy](https://developers.google.com/calendar/api/v3/reference/freebusy/query)
  </Accordion>

  <Accordion title="Agregar evento rápido">
    Crea un evento interpretando texto libre (idioma natural).

    **Inputs:**

    * **calendarId** (string) — Calendario destino (`"primary"` habitualmente).
    * **text** (string) — Texto descriptivo (p. ej. “Reunión con Ana mañana a las 10:00”).

    **Ejemplo:**

    ```json theme={null}
    {
      "calendarId": "primary",
      "text": "Comida con equipo viernes 13:00"
    }
    ```

    [Documentación de Google: quickAdd](https://developers.google.com/calendar/api/v3/reference/events/quickAdd)
  </Accordion>

  <Accordion title="Actualizar evento">
    Actualiza campos de un evento existente. Envía solo los campos que quieras modificar.

    **Inputs:**

    * **calendarId** (string) — ID del calendario.
    * **eventId** (string) — ID del evento.
    * **summary** (opcional, string) — Título.
    * **description** (opcional, string) — Descripción.
    * **start** / **end** (opcional, string) — ISO 8601.
    * **attendees** (opcional, array de objeto) — Misma estructura que en “Crear evento”.
    * **anyoneCanAddSelf** (opcional, boolean)
    * **colorId** (opcional, string)
    * **conferenceData** (opcional, objeto o null)

    **Ejemplo:**

    ```json theme={null}
    {
      "calendarId": "primary",
      "eventId": "6a1b2c3d4e5f",
      "summary": "Onboarding Brain Studio (actualizado)",
      "start": "2025-01-16T14:30:00-03:00",
      "end": "2025-01-16T15:30:00-03:00"
    }
    ```

    [Documentación de Google: actualizar evento](https://developers.google.com/calendar/api/v3/reference/events/update)
  </Accordion>
</AccordionGroup>

***

## Cómo usar en Brain

Una vez conectada, puedes usar **Google Calendar** en dos superficies:

### En AI Agent

Ideal cuando el usuario quiere agendar, mover o consultar reuniones en lenguaje natural.

<Steps>
  <Step title="Abre el nodo AI Agent">
    En el Canvas, selecciona o añade el nodo **AI Agent**.
  </Step>

  <Step title="Abre Herramientas">
    En el panel derecho, entra a la pestaña **Herramientas**.
  </Step>

  <Step title="Agrega Google Calendar">
    Usa **Agregar tool**, busca **Google Calendar** y actívala.
  </Step>

  <Step title="Configura las tools">
    Elige integración completa o activa solo las acciones que necesites.

    <Check>
      **Google Calendar** aparece en la lista de herramientas del agente y puedes abrir su configuración con el icono de ajustes.
    </Check>
  </Step>
</Steps>

<Frame caption="Google Calendar como herramienta en AI Agent — pestaña Herramientas y tool agregada">
  <img src="https://mintcdn.com/jelouai/51JeT2dxTZ1dFjvi/assets/images/integraciones/agendamiento/google-calendar-ai-agent.png?fit=max&auto=format&n=51JeT2dxTZ1dFjvi&q=85&s=f20fc1657a1cd185a709c945b772c4d3" alt="Panel lateral AI Agent en Brain Studio: pestaña Herramientas con Google Calendar agregado y configuración accesible" width="1024" height="645" data-path="assets/images/integraciones/agendamiento/google-calendar-ai-agent.png" />
</Frame>

El agente decidirá automáticamente cuándo consultar disponibilidad o crear eventos según la conversación.

### En Canvas

Ideal cuando necesitas control total del flujo (por ejemplo: validar → proponer → confirmar → crear evento).

<Steps>
  <Step title="Arrastra Google Calendar al Canvas">
    En el panel lateral, abre **Marketplace** y arrastra **Google Calendar** al flujo.
  </Step>

  <Step title="Selecciona la tool">
    Con el nodo seleccionado, en **Tools** elige la acción (por ejemplo **Crear evento**).
  </Step>

  <Step title="Configura el cuerpo y la memoria">
    Completa el JSON del cuerpo de la petición y, si aplica, **Guardar respuesta** en una variable de memoria.
  </Step>

  <Step title="Conecta el flujo">
    Enlaza las salidas **Finalizó la tarea** y **Hubo un error** con los nodos siguientes.

    <Check>
      El nodo queda listo para ejecutarse en el orden definido por tu flujo.
    </Check>
  </Step>
</Steps>

**Ejemplo de configuración:**

El editor del nodo muestra un cuerpo JSON alineado con la tool **Crear evento**. Los campos **obligatorios** son `summary`, `eventStartDate` y `eventEndDate`. El resto es opcional según tu caso.

```json theme={null}
{
  "colorId": "1",
  "summary": "Seguimiento {{$memory.nombre_cliente}}",
  "location": "Oficina central",
  "timeZone": "America/Mexico_City",
  "attendees": ["invitado@ejemplo.com"],
  "calendarId": "primary",
  "visibility": "default",
  "description": "Reunión agendada desde el flujo",
  "sendUpdates": "all",
  "eventEndDate": "{{$memory.fin_iso}}",
  "createMeetRoom": true,
  "eventStartDate": "{{$memory.inicio_iso}}",
  "repeatFrequency": "DAILY"
}
```

<Frame caption="Nodo Google Calendar en Canvas con la tool Crear evento — panel derecho con cuerpo JSON y guardar respuesta en memoria">
  <img src="https://mintcdn.com/jelouai/51JeT2dxTZ1dFjvi/assets/images/integraciones/agendamiento/google-calendar-canvas.png?fit=max&auto=format&n=51JeT2dxTZ1dFjvi&q=85&s=62aec59f40380a1ddf53be0801ed1979" alt="Brain Studio: nodo Google Calendar Crear evento en el Canvas y panel de configuración con tool seleccionada, guardar respuesta y cuerpo de la petición JSON" width="1024" height="934" data-path="assets/images/integraciones/agendamiento/google-calendar-canvas.png" />
</Frame>

***

## Casos de uso

<AccordionGroup>
  <Accordion title="Agendar demos comerciales sin intervención humana">
    Automatiza completamente la coordinación de demos desde canales como WhatsApp o webchat.

    **Flujo típico:**

    * El usuario muestra interés en el producto
    * El agente propone agendar una demo
    * Consulta disponibilidad en Google Calendar
    * Ofrece horarios disponibles
    * Crea el evento cuando el usuario confirma

    **Ejemplo concreto:** un lead escribe por WhatsApp pidiendo ver el producto. El agente verifica la agenda del equipo de ventas con **Recuperar detalles del calendario libre/ocupado**, propone tres franjas horarias y, al recibir confirmación, usa **Crear evento** con Google Meet incluido. El lead recibe la invitación sin que un ejecutivo haya intervenido.

    **Impacto:**

    * Reduce fricción en conversión de leads
    * Evita pérdida de oportunidades por demora en respuesta
    * Estandariza el proceso comercial

    **Ideal para:** equipos de ventas, SaaS, onboarding comercial
  </Accordion>

  <Accordion title="Coordinar visitas o citas operativas en terreno">
    Permite agendar automáticamente visitas técnicas, instalaciones o servicios en terreno.

    **Flujo típico:**

    * El usuario solicita una visita (ej: soporte, instalación, mantención)
    * El agente valida disponibilidad de agenda
    * Propone ventanas horarias
    * Agenda la cita en Google Calendar
    * (Opcional) confirma detalles logísticos

    **Ejemplo concreto:** un cliente de telecomunicaciones escribe por WhatsApp para programar la instalación de fibra óptica. El agente consulta las franjas libres del técnico asignado a esa zona, propone opciones, y al confirmar crea el evento con dirección del cliente y notas logísticas.

    **Impacto:**

    * Reduce carga operativa manual
    * Mejora tiempos de coordinación
    * Disminuye errores en agenda

    **Ideal para:** soporte técnico, logística, servicios en terreno
  </Accordion>

  <Accordion title="Agendar seguimientos automáticos post interacción">
    Asegura que cada interacción relevante termine con un seguimiento agendado.

    **Flujo típico:**

    * Se cierra una conversación (venta, soporte, onboarding)
    * El agente propone agendar seguimiento
    * Crea el evento en Google Calendar
    * Confirma al usuario o equipo interno

    **Impacto:**

    * Mejora la retención y continuidad
    * Evita pérdida de contexto
    * Estandariza postventa

    **Ideal para:** customer success, soporte, onboarding
  </Accordion>

  <Accordion title="Sincronizar agenda con procesos comerciales o CRM">
    Integra el calendario dentro del flujo completo de ventas.

    **Flujo típico:**

    * El agente detecta un lead calificado
    * Agenda una reunión en Google Calendar
    * (Opcional) registra o actualiza el contacto en CRM
    * Dispara recordatorios o follow-ups

    **Impacto:**

    * Alinea agenda con pipeline comercial
    * Reduce trabajo manual en CRM
    * Mejora trazabilidad del proceso

    **Ideal para:** equipos comerciales con CRM (HubSpot, Bitrix, Salesforce)
  </Accordion>

  <Accordion title="Agentes que gestionan agenda en lenguaje natural">
    Permite que los usuarios interactúen con su calendario sin fricción.

    **Flujo típico:**

    * El usuario escribe: "mueve mi reunión de mañana a las 4"
    * El agente interpreta intención
    * Consulta eventos existentes
    * Actualiza o reprograma el evento
    * Confirma el cambio

    **Impacto:**

    * Mejora la experiencia del usuario final
    * Reduce fricción en gestión de agenda
    * Habilita automatización conversacional real

    **Ideal para:** asistentes personales, productividad, operaciones internas
  </Accordion>
</AccordionGroup>

***

## Integraciones que combinan bien con Google Calendar

<AccordionGroup>
  <Accordion title="Google Sheets">
    Útil para registrar citas, disponibilidad o estado de agenda en una hoja de seguimiento.

    **Flujo combinado:** crear evento en Google Calendar → registrar fecha, asistentes y enlace de Meet en una hoja de control de citas.

    [Documentación de Google Sheets](/guides/integraciones/productividad/google-sheets)
  </Accordion>

  <Accordion title="Gmail">
    Sirve para enviar confirmaciones, recordatorios o correos de seguimiento después de agendar o mover una cita.

    **Flujo combinado:** agendar reunión en Google Calendar → enviar correo de confirmación con detalles y enlace al cliente.

    [Documentación de Gmail](/guides/integraciones/productividad/gmail)
  </Accordion>

  <Accordion title="HubSpot">
    Permite relacionar reuniones con contactos y oportunidades dentro del flujo comercial.

    **Flujo combinado:** calificar lead en HubSpot → agendar demo en Google Calendar → registrar la reunión como actividad en el deal.

    [Documentación de HubSpot](/guides/integraciones/crm/hubspot)
  </Accordion>

  <Accordion title="Bitrix24">
    Útil cuando el calendario forma parte del proceso comercial o de postventa conectado al CRM.

    **Flujo combinado:** lead calificado en Bitrix24 → crear evento de seguimiento en Google Calendar → notificar al ejecutivo asignado.

    [Documentación de Bitrix24](/guides/integraciones/crm/bitrix)
  </Accordion>
</AccordionGroup>

***

## Artículos relacionados

<CardGroup cols={2}>
  <Card title="Integraciones" href="/guides/integraciones/integraciones" icon="grid">
    Catálogo de integraciones disponibles en el Marketplace.
  </Card>

  <Card title="Cómo usar integraciones en Brain" href="/guides/integraciones/como-usar-integraciones-en-brain" icon="book-open">
    Flujo general para instalar y usar integraciones en Brain Studio.
  </Card>
</CardGroup>
