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
statusHTTP,datade resposta eheadersde 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
- Uma conta Google com Google Calendar habilitado
- Conecte o Google Calendar em Configurações → Chaves de API → Serviços conectados:
- Clique em Add service
- Escolha Google Calendar
- Dê um nome (ex.: "Commercial agenda")
- Clique em Authorize with Google e faça login
- Uma variável de workflow
google_calendar_iddefinida com o ID do calendário alvo (useprimarypara o calendário principal)
Para um passo a passo OAuth, veja Como integrar o Google Calendar.
Como configurar
Passo 1 — Conectar Google Calendar
- Abra Configurações → Chaves de API
- Em Connected Services, adicione Google Calendar e conclua a autorização Google
- No editor de workflow, adicione o nó Google Calendar
- 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:
- Abra o painel Variables → aba Workflow
- Adicione variável:
- Name:
google_calendar_id - Value:
primary(calendário principal) ou um calendar ID específico do template List calendars
- Name:
Para encontrar um calendar ID, execute o template List calendars e copie um id da resposta.
Passo 3 — Adicionar o nó
- Abra Automações e edite seu workflow
- Na paleta, abra a categoria Communication
- Arraste Google Calendar para o canvas
- Conecte após o gatilho ou nós de preparação de dados
Passo 4 — Escolher um template de operação
| Template | Method | Endpoint | Propósito |
|---|---|---|---|
| List calendars | GET | /users/me/calendarList | Buscar calendários acessíveis e seus IDs |
| List events | GET | /calendars/{calendarId}/events | Buscar eventos em um intervalo de datas |
| Create event | POST | /calendars/{calendarId}/events | Criar um novo compromisso |
| Update event | PATCH | /calendars/{calendarId}/events/{eventId} | Modificar um evento existente |
| Delete event | DELETE | /calendars/{calendarId}/events/{eventId} | Remover um evento |
| Get event | GET | /calendars/{calendarId}/events/{eventId} | Buscar um evento por ID |
| Register push watch | POST | /calendars/{calendarId}/events/watch | Inscrever-se em notificações de alteração do calendário |
Passo 5 — Configurar campos da requisição
| Campo | Obrigatório | Descrição |
|---|---|---|
| Connected service | Sim | Selecione a conta Google autorizada |
| URL / Endpoint | Sim | URL completa da Calendar API (templates usam {{variables.google_calendar_id}}) |
| Method | Não | Método HTTP (padrão: POST para criar) |
| Headers (JSON) | Não | Sobrescrever ou estender headers |
| Body (JSON) | Depende | Dados 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:00para 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ída | Descrição |
|---|---|
status | Código de status HTTP |
data | Body JSON parseado da resposta |
headers | Headers de resposta |
Dicas e boas práticas
- Use
primarycomogoogle_calendar_idpara o calendário principal da conta — setup mais simples - Sempre inclua
timeZonejunto comdateTimepara evitar desvio de fuso horário - Para eventos de dia inteiro, use
start.dateeend.date(YYYY-MM-DD) em vez dedateTime - Liste eventos com
singleEvents: truepara 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
- Gatilho — cliente confirma data/hora no WhatsApp
- Google Calendar POST — criar evento com nome e telefone do contato na descrição
- Variable — salvar
{{google_calendar_1.data.id}}comoevent_id - Send message — "Your appointment is confirmed for July 15 at 2pm. Calendar link: {{google_calendar_1.data.htmlLink}}"
Verificar disponibilidade antes de agendar
- Gatilho — cliente solicita compromisso
- Google Calendar GET — listar eventos do dia solicitado
- JavaScript — encontrar horários livres
- Send message — oferecer horários disponíveis no WhatsApp
Reagendamento via WhatsApp
- Gatilho — cliente solicita novo horário
- Google Calendar PATCH — atualizar start/end do evento
- 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
| Item | Valor |
|---|---|
| Base URL | https://www.googleapis.com/calendar/v3/ |
| Auth header | Authorization: Bearer {{google_calendar_token}} |
| Create event | POST /calendars/{calendarId}/events |
| Official docs | Google Calendar API v3 |
| OAuth setup | Como integrar o Google Calendar |
Relacionados
Este artigo foi útil?
Precisa de mais ajuda? Falar com suporte