> 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

## Overzicht

Koppel je ElevenLabs AI-agents aan [Google Calendar](https://calendar.google.com) om afspraken en kalenderafspraken te beheren. Met deze integratie kunnen je agents via natuurlijke gesprekken beschikbaarheid controleren, evenementen met deelnemers en optionele Google Meet-videogesprekken maken, bijwerken en verwijderen, komende evenementen weergeven en toegankelijke agenda's ontdekken.

## Mogelijkheden

| Mogelijkheid              | Ondersteuning                                    |
| ------------------------- | ------------------------------------------------ |
| Zero retention mode (ZRM) | Niet ondersteund                                 |
| Bijlagen in tools         | Niet ondersteund — tools werken alleen met tekst |

## Veiligheidswaarschuwing

> **Veiligheidswaarschuwing: `google_calendar_update_event` en `google_calendar_delete_event` zijn geprivilegieerde tools.** Ze worden uitgevoerd met volledige agendatoegang van het gekoppelde Google-account, niet alleen met toegang tot evenementen die je agent heeft gemaakt. Iedereen die met de agent kan praten, kan **elk** evenement in die agenda wijzigen of annuleren, ook evenementen die diegene niet heeft gemaakt, omdat de agent evenement-ID's kan opzoeken met `google_calendar_list_events`. Een bevestiging in de systeemprompt is een aanwijzing voor het model, geen beveiligingsmaatregel.
>
> Schakel deze tools alleen in voor agents met **ingeschakelde authenticatie** of wanneer het evenement-ID uit een vertrouwde bron komt. Voeg ze niet toe aan openbare agents. Deelnemers krijgen altijd een melding wanneer een evenement wordt bijgewerkt of verwijderd.

## Instellen

Deze integratie gebruikt **Google OAuth 2.0** voor authenticatie. Je geeft ElevenLabs toestemming om namens jou toegang te krijgen tot je Google Calendar.

#### Klik op Verbinden in ElevenLabs

Klik in de integratie-instellingen van ElevenLabs op **Verbinden**. Je wordt doorgestuurd naar Google om toegang te autoriseren.

#### Selecteer je Google-account

Kies het Google-account waarvan je agent agendagegevens moet kunnen openen. Als je browser bij meerdere Google-accounts is ingelogd, selecteer je het juiste account.

#### Autoriseer agendatoegang

Controleer de gevraagde rechten en klik op **Toestaan**. De integratie vraagt toegang om evenementen te beheren in agenda's die je bezit, je lijst met agenda's te bekijken en vrij/bezet-informatie te controleren.

## OAuth-scopes

De integratie vraagt de volgende Google OAuth 2.0-scopes aan:

| Scope                            | Doel                                                                                           |
| -------------------------------- | ---------------------------------------------------------------------------------------------- |
| `calendar.events.owned`          | Evenementen maken, lezen, bijwerken en verwijderen in agenda's die je bezit.                   |
| `calendar.calendarlist.readonly` | De lijst met agenda's bekijken die toegankelijk zijn voor je account (namen en ID's).          |
| `calendar.freebusy`              | Beschikbaarheid voor vrij/bezet controleren in agenda's zonder evenementdetails vrij te geven. |

## Zo werkt het

De agent plant vergaderingen door tool calls te gebruiken om het boekingsproces stap voor stap te doorlopen. De tabbladen hieronder tonen een overzicht op hoofdlijnen en een gedetailleerde systeemprompt.

#### Overzicht op hoofdlijnen

#### Agenda's ontdekken

De agent toont toegankelijke agenda's om de juiste agenda voor het plannen te vinden. Voor de meeste gebruikers is dit de primaire agenda.

#### Beschikbaarheid controleren

De agent controleert de beschikbaarheid voor vrij/bezet door:

* De tool `google_calendar_check_availability` te gebruiken om bezette tijdsblokken op te vragen.
* Te controleren of de gevraagde tijd beschikbaar is.
* Alternatieven voor te stellen als de gevraagde tijd conflicteert met een bestaand evenement.
* De geselecteerde tijd te bevestigen met de beller.

#### Gegevens van deelnemers verzamelen

Zodra er een tijd is afgesproken, doet de agent het volgende:

* De volledige naam en het e-mailadres van de deelnemer verzamelen.
* Het e-mailadres bevestigen door het aan de beller voor te lezen.
* Tijdzonegegevens verifiëren.

#### Het evenement maken

De agent:

* Roept de tool `google_calendar_create_event` aan met de bevestigde gegevens.
* Voegt optioneel een Google Meet-link toe als er om videobellen wordt gevraagd.
* Bevestigt dat het evenement is gemaakt en informeert de deelnemer dat die een agenda-uitnodiging ontvangt.

#### Gedetailleerde systeemprompt

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

## Agenttools

Wanneer je Google Calendar-tools aan een agent toevoegt, zijn de volgende ingebouwde tools beschikbaar:

| Tool                                 | Beschrijving                                                                                                                                                                                                                                                                            |
| ------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `google_calendar_check_availability` | Controleer de beschikbaarheid voor vrij/bezet voor een of meer agenda's binnen een tijdsbereik. Geeft bezette tijdsblokken terug, zodat de agent beschikbare tijdsloten kan vinden. Gebruik dit voordat je evenementen maakt om conflicten te voorkomen.                                |
| `google_calendar_create_event`       | Maak een nieuw evenement in een Google Calendar met optionele deelnemers, locatie en Google Meet-videogesprekken. Stuurt e-mailmeldingen naar alle deelnemers.                                                                                                                          |
| `google_calendar_list_events`        | Toon komende evenementen uit een agenda binnen een tijdsbereik, gesorteerd op starttijd. Ondersteunt zoeken met vrije tekst in evenementsoverzichten, beschrijvingen, locaties en gegevens van deelnemers.                                                                              |
| `google_calendar_update_event`       | **Geprivilegieerd.** Werk elk evenement in de agenda bij, bijvoorbeeld om het te verplaatsen of de titel, locatie of deelnemers te wijzigen. Alleen de opgegeven velden worden gewijzigd. Deelnemers krijgen een melding.                                                               |
| `google_calendar_delete_event`       | **Geprivilegieerd.** Verwijder elk evenement uit de agenda en annuleer het voor alle deelnemers. Gebruik eerst evenementen weergeven om het evenement-ID te vinden. Gebruik voor terugkerende evenementen het ID van een exemplaar of de `recurringEventId` ervan (de volledige reeks). |
| `google_calendar_list_calendars`     | Toon alle agenda's die toegankelijk zijn voor het gekoppelde Google-account. Geeft agendanamen en ID's terug. Gebruik dit om te bepalen op welke agenda je je richt voordat je beschikbaarheid controleert of evenementen maakt.                                                        |

## Handige links

* [Documentatie voor de Google Calendar API](https://developers.google.com/calendar/api/v3/reference)
* [Google OAuth 2.0-scopes voor Calendar](https://developers.google.com/identity/protocols/oauth2/scopes#calendar)
* [Snelstartgids voor de Google Calendar API](https://developers.google.com/calendar/api/quickstart/python)
* [Overzicht van ElevenLabs-tools](/docs/nl/eleven-agents/customization/tools/server-tools)