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

# Crear cita (Google Calendar)

> Flujo durante llamada que comprueba el hueco y crea el evento en tu Google Calendar

<Note>
  **Flujos relacionados:** [Comprobar disponibilidad (Google Calendar)](/es/plantillas/flujos/comprobar-disponibilidad).

  **Agentes relacionados:** [Gestión de citas (Google Calendar)](/es/plantillas/agentes/gestion-citas-google-calendar) y [Gestión de leads (HubSpot)](/es/plantillas/agentes/gestion-leads).
</Note>

## Qué hace

El agente le pasa la hora de inicio y de fin de la cita (`start_date` y `end_date`, en hora local) junto con el nombre y el teléfono del cliente, y el flujo **crea el evento** en tu Google Calendar.

Antes de crearlo vuelve a consultar el calendario. Si en ese hueco ya hay algo agendado, no crea nada y le pide al agente que ofrezca otra hora — así una cita que haya entrado por otra vía mientras hablabais no acaba duplicada.

Es un [flujo durante llamada](/es/build/flujos/flujos-durante-llamada) en modo síncrono: el agente lo ejecuta a mitad de conversación y espera la respuesta antes de confirmarle la cita al cliente.

## Cómo funciona

| Paso                                                | Qué hace                                                                                        |
| --------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
| **Adaptar fecha inicial** y **Adaptar fecha final** | Convierten `start_date` y `end_date` de hora local a UTC, que es lo que espera Google Calendar. |
| **Comprobar disponibilidad**                        | Consulta los intervalos ocupados del calendario dentro de ese hueco exacto.                     |
| **Disponibilidad?**                                 | Un paso de código que devuelve `true` solo si no hay ningún intervalo ocupado.                  |
| **Crear Evento**                                    | Crea el evento, con el título `Cita - <nombre>` y el teléfono del cliente en la descripción.    |
| **Devolver respuesta**                              | Le cuenta al agente cómo ha ido.                                                                |

El flujo siempre termina en un paso **Devolver respuesta**, con uno de tres desenlaces:

* **Hueco libre y evento creado** — el agente recibe `Cita creada de manera correcta.` y le confirma la cita al cliente.
* **Hueco ocupado** — no se crea nada. Al agente se le indica que se disculpe y pida otra fecha.
* **El evento no se ha podido crear** — el agente recibe `Un error ha ocurrido.` No hay cita, así que no debe confirmarla.

## Qué necesitas

* Una [conexión](/es/plataforma/conexiones) de Google Calendar
* El calendario donde se crean las citas, que debe ser el mismo que consulta [Comprobar disponibilidad (Google Calendar)](/es/plantillas/flujos/comprobar-disponibilidad)

## Puesta en marcha

<Steps>
  <Step title="Copia la plantilla">
    Desde la sección **Flujos**, abre el catálogo de plantillas y cópiala. El flujo se crea deshabilitado.
  </Step>

  <Step title="Rellena la variable del calendario">
    La plantilla trae una variable `<<calendar_id>>` que se usa en dos pasos: **Comprobar disponibilidad** y **Crear Evento**. Tiene que ser el mismo calendario en los dos, y el mismo que consulta el flujo `comprobar_disponibilidad`. Si apuntan a calendarios distintos, el agente ofrece huecos de una agenda y crea la cita en otra.
  </Step>

  <Step title="Selecciona la conexión de Google Calendar">
    Los dos pasos de Google Calendar necesitan tu conexión.

    <video autoPlay loop muted playsInline controls className="w-full rounded-xl" src="https://mintcdn.com/diga/72-yaa6Fq0Y_EP9U/videos/seleccionar-conexion-google-calendar.mp4?fit=max&auto=format&n=72-yaa6Fq0Y_EP9U&q=85&s=aa3aee5d9e144aa950053c04982b879f" data-path="videos/seleccionar-conexion-google-calendar.mp4" />
  </Step>

  <Step title="Revisa la zona horaria" id="revisa-la-zona-horaria">
    `Europe/Madrid` aparece en el campo **Input Time Zone** de **Adaptar fecha inicial** y **Adaptar fecha final**. Si operas en otra zona horaria, cámbialos en los dos. El cambio de hora de verano/invierno se aplica solo.
  </Step>

  <Step title="Publica el flujo">
    [Publica](/es/build/flujos/crear-flujos#borrador-vs-publicado) el flujo. Sabrás que el flujo ha sido publicado si no aparece el texto de Borrador.
  </Step>

  <Step title="Asígnalo al agente">
    Añádelo desde la sección **Flujos** del agente. El nombre del flujo es el nombre de la herramienta que ve el agente, así que déjalo en `crear_cita`. Este paso no es necesario si el flujo se ha creado a partir del agente.
  </Step>
</Steps>

## Antes de publicar

* La comprobación previa mira **solo el hueco de la cita**, no tu horario de apertura. Que el agente no agende con el centro cerrado depende de su prompt, no del flujo.
* `name` y `phone` son parámetros **opcionales**. Si el agente no los recoge, el evento se crea igualmente, con el título `Cita - ` y sin teléfono en la descripción.
* El evento se crea **sin invitados**: el teléfono del cliente queda en la descripción y no se le envía ninguna invitación por email.
* El flujo **solo crea**. No anula ni modifica citas ya existentes.
* Está fijado a **un solo calendario**. Para varios centros con agendas distintas, duplica el flujo.
* Si tarda más de 60 segundos o algún paso falla, el agente continúa sin la respuesta y no sabrá si la cita se creó.
* La duración de la cita viene determinada en el prompt del agente.

## Siguientes Pasos

<CardGroup cols={2}>
  <Card title="Gestión de citas (Google Calendar)" icon="calendar-check" href="/es/plantillas/agentes/gestion-citas-google-calendar">
    El agente que usa este flujo.
  </Card>

  <Card title="Comprobar disponibilidad" icon="bolt" href="/es/plantillas/flujos/comprobar-disponibilidad">
    El otro flujo que necesita el agente.
  </Card>
</CardGroup>
