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

# Calendly

> Consulta disponibilidad, genera enlaces de reserva y gestiona reuniones de Calendly desde tus flujos en Brain Studio.

**Calendly** es una plataforma de agendamiento por autoservicio diseñada para equipos comerciales y de servicios. A diferencia de integraciones de calendario como Google Calendar u Outlook (que operan sobre la agenda personal), Calendly se diseñó para que **el cliente o prospecto reserve directamente** a partir de reglas de disponibilidad, tipos de evento y enlaces compartibles.

En **Brain Studio**, la integración permite que tus flujos consulten disponibilidad real, generen enlaces de reserva personalizados y gestionen reuniones ya programadas, todo desde la conversación.

## Qué habilita Calendly

Al conectar **Calendly**, puedes:

* **Consultar disponibilidad real** para tipos de evento y ventanas de tiempo específicas
* **Descubrir y seleccionar** los tipos de reunión configurados en la cuenta
* **Generar enlaces de reserva** reutilizables o de un solo uso
* **Listar, revisar y cancelar** reuniones ya programadas

***

## Instalación

### Requisitos previos

1. Una **cuenta activa en Calendly**.
2. Una **API Key** generada desde **Integrations & apps → API & Webhooks**.

### Cómo obtener credenciales

Para conectar **Calendly** en Brain Studio necesitas una **API Key** generada desde tu propia cuenta de Calendly.

<Steps>
  <Step title="Abre Integrations & apps en Calendly">
    Inicia sesión en Calendly y entra a **Integrations & apps**. Ahí verás la pantalla **How would you like to get started?** con dos opciones: **Personal access tokens** y **OAuth**.

    <Frame caption="Calendly — pantalla Integrations & apps con la opción Personal access tokens">
      <img src="https://mintcdn.com/jelouai/51JeT2dxTZ1dFjvi/assets/images/integraciones/agendamiento/calendly-integrations-and-apps.png?fit=max&auto=format&n=51JeT2dxTZ1dFjvi&q=85&s=68695531274bae10146f3ad79a7bbfa5" alt="Pantalla Integrations & apps de Calendly con las opciones Personal access tokens y OAuth" width="1024" height="469" data-path="assets/images/integraciones/agendamiento/calendly-integrations-and-apps.png" />
    </Frame>
  </Step>

  <Step title="Haz clic en Get a token now">
    Dentro del bloque **Personal access tokens**, selecciona **Get a token now** para empezar la creación del token personal que usarás en Brain Studio.
  </Step>

  <Step title="Asigna un nombre y define los scopes del token">
    Calendly abrirá el modal **Create a personal access token**. En el campo **Name**, asigna un nombre reconocible para esta integración, por ejemplo **Brain Studio** o **Jelou**.

    Luego, en **Scopes**, selecciona los permisos necesarios para que la integración pueda leer usuario, tipos de evento, disponibilidad y eventos programados, además de crear enlaces y cancelar eventos.

    <Frame caption="Calendly — modal Create a personal access token con nombre y selección de scopes">
      <img src="https://mintcdn.com/jelouai/51JeT2dxTZ1dFjvi/assets/images/integraciones/agendamiento/calendly-create-token-scopes.png?fit=max&auto=format&n=51JeT2dxTZ1dFjvi&q=85&s=d18d8d0d325a402b93a6dfa1c61cd881" alt="Modal Create a personal access token en Calendly con campo Name y selección de scopes" width="1024" height="472" data-path="assets/images/integraciones/agendamiento/calendly-create-token-scopes.png" />
    </Frame>

    <Check>
      Para las tools actuales de Brain Studio, el token debe cubrir lectura de usuario, tipos de evento, disponibilidad y eventos programados, además de escritura para enlaces y cancelaciones.
    </Check>
  </Step>

  <Step title="Copia el token generado">
    Cuando completes la creación, Calendly mostrará el token una sola vez en el modal con el botón **Copy token**. Cópialo y guárdalo en un lugar seguro.

    <Frame caption="Calendly — token generado listo para copiar con el botón Copy token">
      <img src="https://mintcdn.com/jelouai/51JeT2dxTZ1dFjvi/assets/images/integraciones/agendamiento/calendly-token-copiado.png?fit=max&auto=format&n=51JeT2dxTZ1dFjvi&q=85&s=6ff176137309c72d195549dafe2dfae1" alt="Modal de Calendly mostrando el personal access token generado y el botón Copy token" width="1024" height="470" data-path="assets/images/integraciones/agendamiento/calendly-token-copiado.png" />
    </Frame>

    <Warning>
      Trata este token como una contraseña. No lo compartas ni lo expongas en código público, documentos abiertos o canales compartidos.
    </Warning>
  </Step>
</Steps>

### 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 **Calendly** automáticamente dentro del flujo.

Si prefieres instalar manualmente, abre el **Marketplace** y sigue estos pasos con la API Key que obtuviste en el paso anterior.

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

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

  <Step title="Ingresar la API Key">
    Completa el formulario con tu **API Key** de Calendly.
  </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í:

* **Tiempo y usuario** — **Obtener la hora actual** y **Obtener usuario actual**
* **Tipos de evento** — **Listar Tipos de Eventos** y **Obtener tipo de evento**
* **Disponibilidad y eventos programados** — **Consultar Disponibilidad**, **Listar Eventos Programados** y **Obtener Evento Programado**
* **Enlaces** — **Crear enlace de programación** y **Crear enlace de un solo uso**
* **Cancelar** — **Cancelar evento**

La integración expone **10 tools** en Brain Studio; a continuación, cada una con el propósito descrito por el producto. Los **nombres exactos de campos** del cuerpo JSON deben coincidir con el **editor del nodo** antes de desplegar.

<AccordionGroup>
  <Accordion title="Obtener la hora actual">
    Obtén la fecha y hora actuales en **UTC** y en la **zona horaria del usuario**.

    <Warning>
      **IMPORTANTE:** llama a esta tool **en primer lugar** cuando el usuario mencione fechas relativas (por ejemplo «mañana», «la próxima semana», «este viernes», «24 de diciembre», etc.). Así dispones de la fecha correcta para calcular marcas de tiempo **ISO 8601** adecuadas para el resto de tools de Calendly.
    </Warning>

    **Inputs:**

    * Según el formulario en Brain Studio (suele no requerir parámetros o aceptar cuerpo vacío).

    **Ejemplo:**

    ```json theme={null}
    {}
    ```
  </Accordion>

  <Accordion title="Obtener usuario actual">
    Obtén la información del usuario de Calendly **autenticado** con la API Key, incluyendo su **URI** (necesaria para otras operaciones), **nombre**, **correo electrónico**, **zona horaria** y **organización**.

    **Inputs:**

    * Sin parámetros obligatorios en la forma habitual; valida el cuerpo en el editor.

    **Ejemplo:**

    ```json theme={null}
    {}
    ```
  </Accordion>

  <Accordion title="Listar Tipos de Eventos">
    Enumera todos los tipos de evento (tipos de reunión) configurados para el usuario. Devuelve el **nombre**, la **duración**, la **URL de programación** y si están **activos**. Úsalo para descubrir qué tipos de reuniones están disponibles para reservar.

    **Inputs:**

    * Filtros o paginación que exponga el nodo (por ejemplo activos, límite de resultados), según el editor.

    **Ejemplo:**

    ```json theme={null}
    {
      "active": true,
      "count": 20
    }
    ```

    <Info>
      Ajusta claves y valores a los que acepte la tool en Brain Studio; el objetivo es listar el catálogo antes de **Consultar Disponibilidad** o de crear enlaces.
    </Info>
  </Accordion>

  <Accordion title="Obtener tipo de evento">
    Obtén información detallada sobre un **tipo de evento** concreto, incluida la **duración**, la **descripción**, las **preguntas personalizadas** y la **URL de programación**.

    **Inputs:**

    * Identificador del tipo de evento en la forma que requiera el nodo (por ejemplo URI del tipo de evento).

    **Ejemplo:**

    ```json theme={null}
    {
      "event_type_uri": "https://api.calendly.com/event_types/ABC123"
    }
    ```
  </Accordion>

  <Accordion title="Consultar Disponibilidad">
    Obtén **franjas horarias disponibles** para un **tipo de evento** concreto dentro de un **rango de fechas**. Devuelve **URLs de programación** para cada franja disponible. Úsalo para saber **cuándo** puede reunirse alguien.

    **Inputs:**

    * Tipo de evento y ventana temporal en el formato que muestre el editor (habitualmente alineado a rangos ISO 8601).

    **Ejemplo:**

    ```json theme={null}
    {
      "event_type_uri": "https://api.calendly.com/event_types/ABC123",
      "start_time": "2025-01-15T00:00:00Z",
      "end_time": "2025-01-16T00:00:00Z",
      "timezone": "America/Guayaquil"
    }
    ```

    <Info>
      Confirma los nombres de campo (**start\_time** / **end\_time** u otros) en el nodo; deben ser coherentes con **Obtener la hora actual** cuando el usuario hable en fechas relativas.
    </Info>
  </Accordion>

  <Accordion title="Listar Eventos Programados">
    Lista **eventos programados** (reuniones reservadas) con **filtros opcionales** para **rango de fechas**, **estado** (activo / cancelado) y **correo electrónico del invitado**. Devuelve detalles de la reunión, incluidos **hora**, **ubicación** y **número de asistentes**.

    **Inputs:**

    * Parámetros de filtro opcionales según el formulario (rango, estado, email de invitado, paginación).

    **Ejemplo:**

    ```json theme={null}
    {
      "min_start_time": "2025-01-01T00:00:00Z",
      "max_start_time": "2025-01-31T23:59:59Z",
      "status": "active"
    }
    ```

    <Info>
      Valida en el editor los nombres exactos de los filtros y los valores permitidos para **status**.
    </Info>
  </Accordion>

  <Accordion title="Obtener Evento Programado">
    Obtén información detallada sobre un **evento programado** concreto, incluidos **todos los invitados**, sus **respuestas a preguntas personalizadas**, la **ubicación** de la reunión y el **enlace para unirse**, y los **detalles de cancelación** si corresponde.

    **Inputs:**

    * Identificador del evento programado (por ejemplo URI del evento), según el nodo.

    **Ejemplo:**

    ```json theme={null}
    {
      "event_uri": "https://api.calendly.com/scheduled_events/XYZ789"
    }
    ```
  </Accordion>

  <Accordion title="Crear enlace de programación">
    Crea un **enlace de programación** para un **tipo de evento**. El enlace se puede **compartir con invitados** para agendar reuniones. Opcionalmente especifica **max\_event\_count** para limitar cuántas reservas pueden hacerse a través de este enlace.

    **Inputs:**

    * Tipo de evento y, si aplica, **max\_event\_count**.

    **Ejemplo:**

    ```json theme={null}
    {
      "event_type_uri": "https://api.calendly.com/event_types/ABC123",
      "max_event_count": 5
    }
    ```
  </Accordion>

  <Accordion title="Crear enlace de un solo uso">
    Crea un **enlace de programación de un solo uso** que solo puede usarse **una vez**. Opcionalmente **prellenar** el **correo electrónico** y el **nombre** del destinatario. Pensado para enviar enlaces personalizados a personas concretas.

    La tool **devuelve solo el texto traducido**, sin explicaciones adicionales.

    **Inputs:**

    * Tipo de evento y datos opcionales de prellenado según el editor.

    **Ejemplo:**

    ```json theme={null}
    {
      "event_type_uri": "https://api.calendly.com/event_types/ABC123",
      "invitee_email": "cliente@ejemplo.com",
      "invitee_name": "Juan Pérez"
    }
    ```
  </Accordion>

  <Accordion title="Cancelar evento">
    Cancela un **evento programado**. Puedes proporcionar una **razón opcional** para la cancelación. **Esto notificará a todos los invitados** de que el evento ha sido cancelado.

    La tool **devuelve únicamente el texto traducido**, sin explicaciones adicionales.

    **Inputs:**

    * Identificador del evento a cancelar y **reason** opcional, según el formulario.

    **Ejemplo:**

    ```json theme={null}
    {
      "event_uri": "https://api.calendly.com/scheduled_events/XYZ789",
      "reason": "Reprogramación solicitada por el cliente"
    }
    ```
  </Accordion>
</AccordionGroup>

***

## Cómo usar en Brain

Una vez conectada, puedes usar **Calendly** en dos superficies:

### En AI Agent

Ideal cuando el usuario quiere agendar o gestionar reuniones en lenguaje natural, incluyendo fechas en lenguaje coloquial.

<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 Calendly">
    Usa **Agregar tool**, busca **Calendly** y actívala.
  </Step>

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

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

El agente debería invocar **Obtener la hora actual** **antes** que **Consultar Disponibilidad** u otras tools que dependan de marcas de tiempo cuando el usuario hable en **fechas relativas**. Después puede usar **Listar Tipos de Eventos**, **Consultar Disponibilidad**, enlaces o **Cancelar evento** según la conversación.

### En Canvas

Ideal cuando necesitas control total del flujo (por ejemplo: **Obtener la hora actual** → **Listar Tipos de Eventos** → **Consultar Disponibilidad** → **Crear enlace de un solo uso**).

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

  <Step title="Selecciona la tool">
    Con el nodo seleccionado, en **Tools** elige la acción (por ejemplo **Consultar Disponibilidad** o **Crear enlace de un solo uso**).
  </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 el cuerpo JSON esperado para la tool seleccionada. Para **Crear enlace de un solo uso**, suele incluir el tipo de evento y los datos del invitado a prellenar.

```json theme={null}
{
  "event_type_uri": "{{$memory.event_type_uri}}",
  "invitee_email": "{{$memory.email_cliente}}",
  "invitee_name": "{{$memory.nombre_cliente}}"
}
```

***

## Casos de uso

<AccordionGroup>
  <Accordion title="Agendar demos comerciales desde WhatsApp">
    El prospecto muestra interés en el chat. En lugar de enviarle un link genérico de Calendly, el flujo identifica el tipo de reunión correcto, consulta disponibilidad real y genera un enlace personalizado.

    **Ejemplo concreto:** una empresa SaaS recibe consultas por WhatsApp. El prospecto dice "me interesa una demo". El agente identifica el tipo de evento "Demo 30 min", consulta disponibilidad para los próximos 3 días y genera un enlace de un solo uso con el email y nombre del prospecto prellenados. El prospecto reserva en dos clics, sin salir de WhatsApp.

    **Ideal para:** ventas B2B, SaaS, agencias y servicios profesionales que captan leads por canales conversacionales.
  </Accordion>

  <Accordion title="Agendamiento guiado con disponibilidad real">
    En vez de compartir siempre el mismo enlace, el flujo muestra opciones reales de horario según lo que el usuario pide, haciendo la experiencia más conversacional y menos fría.

    **Ejemplo concreto:** un consultorio de servicios profesionales. El cliente dice "¿tienen algo para el jueves por la tarde?". El agente obtiene la hora actual, consulta disponibilidad del tipo de evento correcto para ese rango y responde con las franjas disponibles. El cliente elige y recibe el enlace de reserva específico para esa franja.

    **Ideal para:** equipos comerciales, consultores y servicios donde la calidad de la experiencia de agendamiento impacta la conversión.
  </Accordion>

  <Accordion title="Cancelación de reuniones sin buscar el correo de confirmación">
    El usuario quiere cancelar una cita pero no tiene a mano el correo de Calendly. En lugar de buscarlo, cancela directamente desde WhatsApp.

    **Ejemplo concreto:** un prospecto escribe "necesito cancelar mi reunión del miércoles". El flujo lista los eventos programados, localiza la cita por fecha, confirma con el usuario y ejecuta la cancelación con el motivo indicado. El prospecto no tuvo que abrir su correo ni entrar a Calendly.

    **Ideal para:** equipos con alto volumen de reuniones externas y alto índice de reprogramaciones.
  </Accordion>
</AccordionGroup>

***

## Integraciones que combinan bien con Calendly

<AccordionGroup>
  <Accordion title="HubSpot">
    Después de que el prospecto reserva en Calendly, el flujo puede registrar la actividad en HubSpot: crear o actualizar el contacto, agregar una nota con el tipo de reunión y mover la oferta a la etapa correspondiente.

    **Flujo combinado:** cita confirmada en Calendly → contacto actualizado en HubSpot → oferta movida a "Demo agendada".

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

  <Accordion title="Gmail">
    Después de compartir un enlace de Calendly o detectar una reunión confirmada, el flujo puede enviar un correo con contexto adicional: material previo a la demo, instrucciones de preparación o datos de acceso.

    **Flujo combinado:** enlace de Calendly generado → correo vía Gmail con material de preparación para la reunión.

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

  <Accordion title="Slack">
    Cada reunión agendada o cancelada desde un flujo conversacional puede disparar una alerta al canal del equipo, para que el ejecutivo asignado se entere sin revisar Calendly.

    **Flujo combinado:** cita agendada en Calendly → mensaje a #ventas en Slack con fecha, prospecto y tipo de reunión.

    [Documentación de Slack](/guides/integraciones/productividad/slack)
  </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>
