> 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

## Visão geral

Conecte seus agentes de IA da ElevenLabs ao [Google Calendar](https://calendar.google.com) para gerenciar agendamentos e compromissos do calendário. Essa integração permite que seus agentes verifiquem a disponibilidade, criem, atualizem e excluam eventos com participantes e conferência opcional do Google Meet, listem próximos eventos e descubram calendários acessíveis por meio de uma conversa natural.

## Recursos

| Recurso                     | Suporte                                                 |
| --------------------------- | ------------------------------------------------------- |
| Modo de retenção zero (ZRM) | Não compatível                                          |
| Anexos em ferramentas       | Não compatível — as ferramentas operam apenas com texto |

## Aviso de segurança

> **Aviso de segurança: `google_calendar_update_event` e `google_calendar_delete_event` são ferramentas privilegiadas.** Elas são executadas com acesso total ao calendário da conta Google conectada, e não apenas aos eventos criados pelo seu agente. Qualquer pessoa que possa falar com o agente pode alterar ou cancelar **qualquer** evento nesse calendário, incluindo eventos que não criou, porque o agente pode consultar IDs de eventos com `google_calendar_list_events`. Uma confirmação no prompt do sistema é uma orientação para o modelo, não um controle de segurança.
>
> Habilite essas ferramentas apenas em agentes com a **autenticação ativada** ou quando o ID do evento vier de uma fonte confiável. Não as adicione a agentes públicos. Os participantes sempre são notificados quando um evento é atualizado ou excluído.

## Configuração

Esta integração usa o **Google OAuth 2.0** para autenticação. Você autoriza a ElevenLabs a acessar seu Google Calendar em seu nome.

#### Clique em Conectar na ElevenLabs

Na configuração da integração da ElevenLabs, clique em **Conectar**. Você será redirecionado ao Google para autorizar o acesso.

#### Selecione sua conta Google

Escolha a conta Google cujos dados de calendário seu agente deve acessar. Se seu navegador estiver conectado a várias contas Google, selecione a correta.

#### Autorize o acesso ao calendário

Revise as permissões solicitadas e clique em **Permitir**. A integração solicita acesso para gerenciar eventos em calendários dos quais você é proprietário, visualizar sua lista de calendários e verificar informações de livre/ocupado.

## Escopos do OAuth

A integração solicita os seguintes escopos do Google OAuth 2.0:

| Escopo                           | Finalidade                                                                                     |
| -------------------------------- | ---------------------------------------------------------------------------------------------- |
| `calendar.events.owned`          | Criar, ler, atualizar e excluir eventos em calendários dos quais você é proprietário.          |
| `calendar.calendarlist.readonly` | Visualizar a lista de calendários acessíveis à sua conta (nomes e IDs).                        |
| `calendar.freebusy`              | Verificar a disponibilidade de livre/ocupado entre calendários sem expor detalhes dos eventos. |

## Como funciona

O agente agenda reuniões usando chamadas de ferramentas para avançar pelo processo de agendamento. As abas abaixo mostram um resumo geral e um prompt detalhado do sistema.

#### Visão geral

#### Descobrir calendários

O agente lista os calendários acessíveis para identificar o correto para o agendamento. Para a maioria dos usuários, este é o calendário principal.

#### Verificar disponibilidade

O agente verifica a disponibilidade de livre/ocupado ao:

* Usar a ferramenta `google_calendar_check_availability` para consultar blocos de horário ocupados.
* Verificar se o horário solicitado está livre.
* Sugerir alternativas caso o horário solicitado entre em conflito com um evento existente.
* Confirmar o horário selecionado com a pessoa que está ligando.

#### Coletar dados dos participantes

Quando um horário é definido, o agente:

* Coleta o nome completo e o endereço de e-mail do participante.
* Confirma o e-mail repetindo-o para a pessoa que está ligando.
* Verifica as informações de fuso horário.

#### Criar o evento

O agente:

* Chama a ferramenta `google_calendar_create_event` com os detalhes confirmados.
* Opcionalmente adiciona um link do Google Meet se for solicitada uma videoconferência.
* Confirma a criação do evento e informa ao participante que ele receberá um convite do calendário.

#### Prompt detalhado do sistema

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

## Ferramentas do agente

Ao adicionar ferramentas do Google Calendar a um agente, as seguintes ferramentas integradas ficam disponíveis:

| Ferramenta                           | Descrição                                                                                                                                                                                                                                                      |
| ------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `google_calendar_check_availability` | Verifique a disponibilidade de livre/ocupado de um ou mais calendários dentro de um intervalo de tempo. Retorna blocos de horário ocupados para que o agente encontre horários livres. Use antes de criar eventos para evitar conflitos.                       |
| `google_calendar_create_event`       | Crie um novo evento em um Google Calendar com participantes, local e conferência do Google Meet opcionais. Envia notificações por e-mail a todos os participantes.                                                                                             |
| `google_calendar_list_events`        | Liste os próximos eventos de um calendário dentro de um intervalo de tempo, ordenados pelo horário de início. Compatível com pesquisa de texto livre em resumos, descrições, locais e dados dos participantes.                                                 |
| `google_calendar_update_event`       | **Privilegiada.** Atualize qualquer evento no calendário, por exemplo, para reagendá-lo ou alterar seu título, local ou participantes. Somente os campos fornecidos são alterados. Os participantes são notificados.                                           |
| `google_calendar_delete_event`       | **Privilegiada.** Exclua qualquer evento no calendário, cancelando-o para todos os participantes. Primeiro, use a lista de eventos para encontrar o ID do evento. Para eventos recorrentes, use o ID de uma ocorrência ou seu recurringEventId (toda a série). |
| `google_calendar_list_calendars`     | Liste todos os calendários acessíveis à conta Google conectada. Retorna nomes e IDs dos calendários. Use para descobrir qual calendário usar antes de verificar a disponibilidade ou criar eventos.                                                            |

## Links úteis

* [Documentação da API do Google Calendar](https://developers.google.com/calendar/api/v3/reference)
* [Escopos do Google OAuth 2.0 para o Calendar](https://developers.google.com/identity/protocols/oauth2/scopes#calendar)
* [Guia de início rápido da API do Google Calendar](https://developers.google.com/calendar/api/quickstart/python)
* [Visão geral das ferramentas da ElevenLabs](/docs/pt/eleven-agents/customization/tools/server-tools)