Automações

Google Calendar API — listar calendários, criar e gerenciar eventos.

Nó Google Calendar

O nó de workflow Google Calendar chama a Google Calendar API v3 para listar calendários, criar eventos, atualizar compromissos e gerenciar agendas. Use-o para agendar reuniões automaticamente após confirmações no WhatsApp ou agendamentos no CRM.

Node ID no editor: google_calendar_request
Base URL: https://www.googleapis.com/calendar/v3/
Auth: Authorization: Bearer {{google_calendar_token}}

O que faz

  • Envia requisições HTTP autenticadas para endpoints da Google Calendar API
  • Suporta GET, POST, PUT, PATCH e DELETE
  • Retorna status HTTP, data de resposta e headers de resposta
  • Inclui templates de operação para listar calendários, listar/criar/atualizar/excluir eventos, obter evento e registrar push watch
  • Injeta tokens OAuth automaticamente a partir de um serviço Google Calendar conectado

Pré-requisitos

  1. Uma conta Google com Google Calendar habilitado
  2. Conecte o Google Calendar em Configurações → Chaves de API → Serviços conectados:
    1. Clique em Add service
    2. Escolha Google Calendar
    3. Dê um nome (ex.: "Commercial agenda")
    4. Clique em Authorize with Google e faça login
  3. Uma variável de workflow google_calendar_id definida com o ID do calendário alvo (use primary para o calendário principal)

Para um passo a passo OAuth, veja Como integrar o Google Calendar.

Como configurar

Passo 1 — Conectar Google Calendar

  1. Abra Configurações → Chaves de API
  2. Em Connected Services, adicione Google Calendar e conclua a autorização Google
  3. No editor de workflow, adicione o nó Google Calendar
  4. Selecione a conta conectada no campo Connected service

O WhatsWave injeta Authorization: Bearer {{google_calendar_token}} automaticamente.

Passo 2 — Definir a variável de calendar ID

Os templates de operação usam {{variables.google_calendar_id}} nas URLs. Defina uma vez por workflow:

  1. Abra o painel Variables → aba Workflow
  2. Adicione variável:
    • Name: google_calendar_id
    • Value: primary (calendário principal) ou um calendar ID específico do template List calendars

Para encontrar um calendar ID, execute o template List calendars e copie um id da resposta.

Passo 3 — Adicionar o nó

  1. Abra Automações e edite seu workflow
  2. Na paleta, abra a categoria Communication
  3. Arraste Google Calendar para o canvas
  4. Conecte após o gatilho ou nós de preparação de dados

Passo 4 — Escolher um template de operação

TemplateMethodEndpointPropósito
List calendarsGET/users/me/calendarListBuscar calendários acessíveis e seus IDs
List eventsGET/calendars/{calendarId}/eventsBuscar eventos em um intervalo de datas
Create eventPOST/calendars/{calendarId}/eventsCriar um novo compromisso
Update eventPATCH/calendars/{calendarId}/events/{eventId}Modificar um evento existente
Delete eventDELETE/calendars/{calendarId}/events/{eventId}Remover um evento
Get eventGET/calendars/{calendarId}/events/{eventId}Buscar um evento por ID
Register push watchPOST/calendars/{calendarId}/events/watchInscrever-se em notificações de alteração do calendário

Passo 5 — Configurar campos da requisição

CampoObrigatórioDescrição
Connected serviceSimSelecione a conta Google autorizada
URL / EndpointSimURL completa da Calendar API (templates usam {{variables.google_calendar_id}})
MethodNãoMétodo HTTP (padrão: POST para criar)
Headers (JSON)NãoSobrescrever ou estender headers
Body (JSON)DependeDados do evento para criar/atualizar; query params para listar

Exemplo — criar evento (POST):

  • URL: https://www.googleapis.com/calendar/v3/calendars/{{variables.google_calendar_id}}/events
  • Method: POST
  • Body:
{
  "summary": "Consultation — {{contact.name}}",
  "description": "Booked via WhatsApp. Phone: {{contact.phone}}",
  "start": {
    "dateTime": "2026-07-15T14:00:00-03:00",
    "timeZone": "America/Sao_Paulo"
  },
  "end": {
    "dateTime": "2026-07-15T15:00:00-03:00",
    "timeZone": "America/Sao_Paulo"
  },
  "attendees": [
    { "email": "{{contact.email}}" }
  ]
}

Exemplo — listar eventos dos próximos 7 dias (GET):

  • URL: https://www.googleapis.com/calendar/v3/calendars/{{variables.google_calendar_id}}/events
  • Method: GET
  • Body (parâmetros de query como JSON para o template de listagem):
{
  "timeMin": "2026-07-09T00:00:00-03:00",
  "timeMax": "2026-07-16T23:59:59-03:00",
  "singleEvents": true,
  "orderBy": "startTime",
  "maxResults": 50
}

Importante: Datetimes devem estar no formato RFC3339 com offset de timezone (ex.: -03:00 para Brasília). Use um nó Variable ou JavaScript para calcular datas dinâmicas.

Exemplo — atualizar evento (PATCH):

  • URL: https://www.googleapis.com/calendar/v3/calendars/{{variables.google_calendar_id}}/events/{{variables.event_id}}
  • Method: PATCH
  • Body:
{
  "summary": "Consultation — rescheduled",
  "start": {
    "dateTime": "2026-07-16T10:00:00-03:00",
    "timeZone": "America/Sao_Paulo"
  },
  "end": {
    "dateTime": "2026-07-16T11:00:00-03:00",
    "timeZone": "America/Sao_Paulo"
  }
}

Todos os campos suportam variáveis de workflow.

Passo 6 — Usar dados da resposta

O Calendar retorna detalhes do evento em data. Referencie em nós posteriores:

Event ID: {{google_calendar_1.data.id}}
Event link: {{google_calendar_1.data.htmlLink}}
Start time: {{google_calendar_1.data.start.dateTime}}

Armazene {{google_calendar_1.data.id}} em um nó Variable para passos de atualização/exclusão.

Saídas do nó

Campo de saídaDescrição
statusCódigo de status HTTP
dataBody JSON parseado da resposta
headersHeaders de resposta

Dicas e boas práticas

  • Use primary como google_calendar_id para o calendário principal da conta — setup mais simples
  • Sempre inclua timeZone junto com dateTime para evitar desvio de fuso horário
  • Para eventos de dia inteiro, use start.date e end.date (YYYY-MM-DD) em vez de dateTime
  • Liste eventos com singleEvents: true para expandir eventos recorrentes em instâncias individuais
  • Reconecte em Connected Services se receber erros 401 — o WhatsWave renova tokens automaticamente
  • Combine com Send message para confirmar agendamentos no WhatsApp com detalhes do evento
  • Use Register push watch + um workflow Webhook para notificações em tempo real de alterações no calendário
  • Para fluxos de agendamento no CRM, veja Como criar agendamentos no CRM

Exemplos de casos de uso

Agendamento WhatsApp → evento no calendário → confirmação

  1. Gatilho — cliente confirma data/hora no WhatsApp
  2. Google Calendar POST — criar evento com nome e telefone do contato na descrição
  3. Variable — salvar {{google_calendar_1.data.id}} como event_id
  4. Send message — "Your appointment is confirmed for July 15 at 2pm. Calendar link: {{google_calendar_1.data.htmlLink}}"

Verificar disponibilidade antes de agendar

  1. Gatilho — cliente solicita compromisso
  2. Google Calendar GET — listar eventos do dia solicitado
  3. JavaScript — encontrar horários livres
  4. Send message — oferecer horários disponíveis no WhatsApp

Reagendamento via WhatsApp

  1. Gatilho — cliente solicita novo horário
  2. Google Calendar PATCH — atualizar start/end do evento
  3. Send message — confirmação com nova data/hora

FAQ

Por que o nó retorna 401 Unauthorized?
A conexão OAuth expirou ou foi removida. Reconecte o Google Calendar em Configurações → Chaves de API → Serviços conectados.

Por que o nó retorna 404 Not Found?
A variável google_calendar_id está incorreta ou o event ID não existe. Execute List calendars para verificar o ID correto.

Qual valor usar para google_calendar_id?
Use primary para o calendário principal, ou copie um id específico da resposta de List calendars.

Por que os horários dos eventos ficam algumas horas errados?
timeZone ausente ou incorreto no body. Sempre defina timeZone (ex.: America/Sao_Paulo) junto com dateTime.

Posso adicionar links do Google Meet?
Sim — adicione "conferenceData": {"createRequest": {"requestId": "unique-id", "conferenceSolutionKey": {"type": "hangoutsMeet"}}} no body de create event e inclua conferenceDataVersion=1 como parâmetro de query na URL.

Qual a diferença entre este nó e o nó HTTP?
Este nó pré-configura base URLs do Calendar, injeção de token OAuth, seletor de serviço conectado e templates de operação comuns. Use HTTP somente para endpoints Calendar não suportados.

Referência da API

ItemValor
Base URLhttps://www.googleapis.com/calendar/v3/
Auth headerAuthorization: Bearer {{google_calendar_token}}
Create eventPOST /calendars/{calendarId}/events
Official docsGoogle Calendar API v3
OAuth setupComo integrar o Google Calendar

Relacionados

Este artigo foi útil?

Precisa de mais ajuda? Falar com suporte

Central de Ajuda