> 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

## Présentation

Connectez vos agents IA ElevenLabs à [Google Calendar](https://calendar.google.com) pour gérer la planification et les rendez-vous du calendrier. Cette intégration permet à vos agents de vérifier les disponibilités, de créer, mettre à jour et supprimer des événements avec des participants et, en option, une visioconférence Google Meet, de lister les événements à venir et d'identifier les calendriers accessibles par conversation naturelle.

## Fonctionnalités

| Fonctionnalité                 | Prise en charge                                                      |
| ------------------------------ | -------------------------------------------------------------------- |
| Mode zéro rétention (ZRM)      | Non pris en charge                                                   |
| Pièces jointes dans les outils | Non pris en charge, les outils fonctionnent uniquement avec du texte |

## Avertissement de sécurité

> **Avertissement de sécurité : `google_calendar_update_event` et `google_calendar_delete_event` sont des outils privilégiés.** Ils s'exécutent avec un accès complet au calendrier du compte Google connecté, et non uniquement aux événements créés par votre agent. Toute personne pouvant parler à l'agent peut modifier ou annuler **n'importe quel** événement de ce calendrier, y compris des événements qu'elle n'a pas créés, car l'agent peut rechercher les ID d'événements avec `google_calendar_list_events`. Une confirmation dans le prompt système est une indication pour le modèle, pas une mesure de sécurité.
>
> Activez ces outils uniquement sur des agents avec **l'authentification activée**, ou lorsque l'ID de l'événement provient d'une source fiable. Ne les ajoutez pas à des agents publics. Les participants sont toujours informés lorsqu'un événement est mis à jour ou supprimé.

## Configuration

Cette intégration utilise **Google OAuth 2.0** pour l'authentification. Vous autorisez ElevenLabs à accéder à votre Google Calendar en votre nom.

#### Cliquez sur Connecter dans ElevenLabs

Dans la configuration de l'intégration ElevenLabs, cliquez sur **Connecter**. Vous êtes redirigé vers Google pour autoriser l'accès.

#### Sélectionnez votre compte Google

Choisissez le compte Google auquel votre agent doit accéder pour consulter les données du calendrier. Si votre navigateur est connecté à plusieurs comptes Google, sélectionnez le bon compte.

#### Autorisez l'accès au calendrier

Vérifiez les autorisations demandées, puis cliquez sur **Autoriser**. L'intégration demande l'autorisation de gérer les événements des calendriers dont vous êtes propriétaire, de consulter votre liste de calendriers et de vérifier les informations de disponibilité.

## Portées OAuth

L'intégration demande les portées Google OAuth 2.0 suivantes :

| Portée                           | Objectif                                                                                                 |
| -------------------------------- | -------------------------------------------------------------------------------------------------------- |
| `calendar.events.owned`          | Créer, lire, mettre à jour et supprimer des événements dans les calendriers dont vous êtes propriétaire. |
| `calendar.calendarlist.readonly` | Consulter la liste des calendriers accessibles à votre compte (noms et ID).                              |
| `calendar.freebusy`              | Vérifier les disponibilités de plusieurs calendriers sans exposer les détails des événements.            |

## Fonctionnement

L'agent planifie les réunions en utilisant des appels d'outils pour suivre les étapes du processus de réservation. Les onglets ci-dessous présentent un résumé général et un prompt système détaillé.

#### Présentation générale

#### Identifier les calendriers

L'agent liste les calendriers accessibles afin d'identifier celui à utiliser pour la planification. Pour la plupart des utilisateurs, il s'agit du calendrier principal.

#### Vérifier les disponibilités

L'agent vérifie les disponibilités en :

* utilisant l'outil `google_calendar_check_availability` pour interroger les créneaux occupés ;
* vérifiant si l'horaire demandé est disponible ;
* suggérant des alternatives si l'horaire demandé entre en conflit avec un événement existant ;
* confirmant l'horaire sélectionné avec l'appelant.

#### Recueillir les informations du participant

Une fois l'horaire convenu, l'agent :

* recueille le nom complet et l'adresse email du participant ;
* confirme l'email en le relisant à l'appelant ;
* vérifie les informations de fuseau horaire.

#### Créer l'événement

L'agent :

* appelle l'outil `google_calendar_create_event` avec les informations confirmées ;
* ajoute éventuellement un lien Google Meet si une visioconférence est demandée ;
* confirme la création de l'événement et informe le participant qu'il recevra une invitation de calendrier.

#### Prompt système détaillé

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

## Outils de l'agent

Lorsque vous ajoutez des outils Google Calendar à un agent, les outils intégrés suivants sont disponibles :

| Outil                                | Description                                                                                                                                                                                                                                                                      |
| ------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `google_calendar_check_availability` | Vérifie les disponibilités d'un ou plusieurs calendriers sur une plage horaire. Renvoie les créneaux occupés afin que l'agent puisse trouver des créneaux libres. À utiliser avant de créer des événements pour éviter les conflits.                                             |
| `google_calendar_create_event`       | Crée un nouvel événement dans un Google Calendar avec des participants, un lieu et une visioconférence Google Meet en option. Envoie des notifications par email à tous les participants.                                                                                        |
| `google_calendar_list_events`        | Liste les événements à venir d'un calendrier sur une plage horaire, classés par heure de début. Prend en charge la recherche en texte libre dans les résumés, descriptions, lieux et informations sur les participants.                                                          |
| `google_calendar_update_event`       | **Privilégié.** Met à jour n'importe quel événement du calendrier, par exemple pour le replanifier ou modifier son titre, son lieu ou ses participants. Seuls les champs fournis sont modifiés. Les participants sont informés.                                                  |
| `google_calendar_delete_event`       | **Privilégié.** Supprime n'importe quel événement du calendrier et l'annule pour tous les participants. Listez d'abord les événements pour trouver l'ID de l'événement. Pour les événements récurrents, utilisez l'ID d'une occurrence ou son recurringEventId (toute la série). |
| `google_calendar_list_calendars`     | Liste tous les calendriers accessibles au compte Google connecté. Renvoie les noms et les ID des calendriers. À utiliser pour identifier le calendrier cible avant de vérifier les disponibilités ou de créer des événements.                                                    |

## Liens utiles

* [Documentation de l'API Google Calendar](https://developers.google.com/calendar/api/v3/reference)
* [Portées Google OAuth 2.0 pour Calendar](https://developers.google.com/identity/protocols/oauth2/scopes#calendar)
* [Guide de démarrage rapide de l'API Google Calendar](https://developers.google.com/calendar/api/quickstart/python)
* [Présentation des outils ElevenLabs](/docs/fr/eleven-agents/customization/tools/server-tools)