> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

# Google Calendar

## Descripción general

Conecta tus agentes de IA de ElevenLabs con [Google Calendar](https://calendar.google.com) para gestionar la programación y las citas del calendario. Esta integración permite a tus agentes consultar la disponibilidad, crear, actualizar y eliminar eventos con asistentes y conferencias opcionales de Google Meet, listar próximos eventos y descubrir calendarios accesibles mediante conversaciones naturales.

## Funcionalidades

| Funcionalidad                | Compatibilidad                                   |
| ---------------------------- | ------------------------------------------------ |
| Modo de retención cero (ZRM) | No compatible                                    |
| Archivos adjuntos en tools   | No compatible: las tools solo trabajan con texto |

## Advertencia de seguridad

> **Advertencia de seguridad: `google_calendar_update_event` y `google_calendar_delete_event` son tools con privilegios.** Se ejecutan con acceso completo al calendario de la cuenta de Google conectada, no solo con acceso a los eventos creados por tu agente. Cualquiera que pueda hablar con el agente puede modificar o cancelar **cualquier** evento de ese calendario, incluidos eventos que no haya creado, porque el agente puede buscar IDs de eventos con `google_calendar_list_events`. Una confirmación en el prompt del sistema es una indicación para el modelo, no un control de seguridad.
>
> Activa estas tools solo en agentes con la **autenticación activada** o cuando el ID del evento proceda de una fuente de confianza. No las añadas a agentes públicos. Los asistentes siempre reciben una notificación cuando se actualiza o elimina un evento.

## Configuración

Esta integración utiliza **Google OAuth 2.0** para la autenticación. Autorizas a ElevenLabs a acceder a tu Google Calendar en tu nombre.

#### Haz clic en Conectar en ElevenLabs

En la configuración de la integración de ElevenLabs, haz clic en **Conectar**. Se te redirigirá a Google para autorizar el acceso.

#### Selecciona tu cuenta de Google

Elige la cuenta de Google cuyos datos de calendario debe consultar tu agente. Si has iniciado sesión en varias cuentas de Google en el navegador, selecciona la correcta.

#### Autoriza el acceso al calendario

Revisa los permisos solicitados y haz clic en **Permitir**. La integración solicita acceso para gestionar eventos en calendarios de tu propiedad, ver tu lista de calendarios y consultar la información de disponibilidad.

## Ámbitos de OAuth

La integración solicita los siguientes ámbitos de Google OAuth 2.0:

| Ámbito                           | Finalidad                                                                       |
| -------------------------------- | ------------------------------------------------------------------------------- |
| `calendar.events.owned`          | Crear, leer, actualizar y eliminar eventos en calendarios de tu propiedad.      |
| `calendar.calendarlist.readonly` | Ver la lista de calendarios accesibles para tu cuenta (nombres e IDs).          |
| `calendar.freebusy`              | Consultar la disponibilidad en calendarios sin exponer los detalles del evento. |

## Cómo funciona

El agente programa reuniones mediante llamadas a tools para avanzar por el proceso de reserva. Las pestañas siguientes muestran un resumen general y un prompt de sistema detallado.

#### Descripción general

#### Descubrir calendarios

El agente lista los calendarios accesibles para identificar el adecuado para la programación. Para la mayoría de usuarios, es el calendario principal.

#### Comprobar disponibilidad

El agente comprueba la disponibilidad mediante:

* El uso de la tool `google_calendar_check_availability` para consultar bloques de tiempo ocupados.
* La verificación de si la hora solicitada está libre.
* La sugerencia de alternativas si la hora solicitada entra en conflicto con un evento existente.
* La confirmación de la hora seleccionada con la persona que llama.

#### Recopilar datos de los asistentes

Una vez acordada una hora, el agente:

* Recopila el nombre completo y la dirección de correo electrónico del asistente.
* Confirma el correo electrónico repitiéndoselo a la persona que llama.
* Verifica la información de la zona horaria.

#### Crear el evento

El agente:

* Llama a la tool `google_calendar_create_event` con los datos confirmados.
* Añade opcionalmente un enlace de Google Meet si se solicita videoconferencia.
* Confirma la creación del evento e informa al asistente de que recibirá una invitación del calendario.

#### Prompt de sistema detallado

```
You are a helpful scheduling assistant responsible for managing calendar bookings using Google Calendar. Be friendly, precise, and concise.

Begin by briefly asking for the purpose of the meeting and the caller's preferred date and time.
Then, ask about the desired meeting duration (15, 30, or 60 minutes), and wait for the user's response before proceeding.

Once you have the meeting details, check calendar availability:
- Call google_calendar_check_availability with the appropriate time range and calendar ID (use 'primary' for the main calendar)
- The tool returns busy time blocks — any time not listed as busy is available
- If the requested time overlaps with a busy block, suggest alternative times
- Continue until a suitable time is agreed upon

After confirming a time slot, gather the following contact details:
- The attendee's full name
- A valid email address. Note that the email address is transcribed from voice, so ensure it is formatted correctly.
- The attendee's time zone (in 'Continent/City' format like 'America/New_York')
- Read the email back to the caller to confirm accuracy

Once all details are confirmed, create the event:
- Call google_calendar_create_event with calendarId set to 'primary'
- Set summary to a descriptive meeting title
- Set start and end times in RFC 3339 format with the attendee's time zone
- Add the attendee's email to the attendees array
- If the caller requests a video call, include conferenceData with conferenceSolutionKey type 'hangoutsMeet' and set the conferenceDataVersion query parameter to 1
- Set sendUpdates to 'all' so attendees receive calendar invitations

Thank the attendee and inform them they will receive a calendar invitation shortly.

Clarifications:
- Do not inform the user that you are formatting the email; do it silently.
- If the caller asks you to proceed with booking, do so with the existing information.
- Use google_calendar_list_calendars if the caller asks to schedule on a specific calendar other than their primary one.
- Use google_calendar_list_events if the caller asks what meetings they have coming up, or to find the event ID before changing or cancelling a meeting.
- Use google_calendar_update_event to reschedule or edit an existing event. Check availability for the new time first, and confirm the change with the caller.
- Use google_calendar_delete_event to cancel an event only after the caller has explicitly confirmed which event to cancel. For recurring events, confirm whether to cancel one occurrence or the whole series: list events with singleEvents=true and use the occurrence's ID for one occurrence, or its recurringEventId for the whole series.

Guardrails:
- Do not share any internal IDs or API details with the caller.
- If event creation fails, check for formatting issues in the email or time conflicts.
```

## Tools del agente

Cuando añades tools de Google Calendar a un agente, están disponibles las siguientes tools integradas:

| Tool                                 | Descripción                                                                                                                                                                                                                                                        |
| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `google_calendar_check_availability` | Consulta la disponibilidad de uno o varios calendarios dentro de un intervalo de tiempo. Devuelve bloques de tiempo ocupados para que el agente pueda encontrar huecos libres. Úsala antes de crear eventos para evitar conflictos.                                |
| `google_calendar_create_event`       | Crea un nuevo evento en Google Calendar con asistentes, ubicación y conferencias de Google Meet opcionales. Envía notificaciones por correo electrónico a todos los participantes.                                                                                 |
| `google_calendar_list_events`        | Lista los próximos eventos de un calendario dentro de un intervalo de tiempo, ordenados por hora de inicio. Admite búsquedas de texto libre en resúmenes, descripciones, ubicaciones y datos de asistentes de eventos.                                             |
| `google_calendar_update_event`       | **Con privilegios.** Actualiza cualquier evento del calendario, por ejemplo, para reprogramarlo o cambiar su título, ubicación o asistentes. Solo se modifican los campos proporcionados. Se notifica a los asistentes.                                            |
| `google_calendar_delete_event`       | **Con privilegios.** Elimina cualquier evento del calendario y lo cancela para todos los asistentes. Usa primero la lista de eventos para encontrar el ID del evento. Para eventos recurrentes, usa el ID de una ocurrencia o su recurringEventId (toda la serie). |
| `google_calendar_list_calendars`     | Lista todos los calendarios accesibles para la cuenta de Google conectada. Devuelve nombres e IDs de calendarios. Úsala para descubrir a qué calendario dirigirte antes de consultar la disponibilidad o crear eventos.                                            |

## Enlaces útiles

* [Documentación de la API de Google Calendar](https://developers.google.com/calendar/api/v3/reference)
* [Ámbitos de Google OAuth 2.0 para Calendar](https://developers.google.com/identity/protocols/oauth2/scopes#calendar)
* [Guía de inicio rápido de la API de Google Calendar](https://developers.google.com/calendar/api/quickstart/python)
* [Descripción general de las tools de ElevenLabs](/docs/es/eleven-agents/customization/tools/server-tools)