Google Calendar
1. Visão Geral
O componente Google Calendar (google-calendar) permite criar, listar, atualizar, buscar e remover eventos em uma agenda do Google Calendar, incluindo a criação de reuniões do Google Meet vinculadas ao evento.
Use quando o fluxo precisa agendar compromissos, consultar uma agenda ou gerenciar eventos automaticamente. Só funciona como ação de saída.
2. Pré-requisitos
- Um aplicativo OAuth 2.0 configurado no Google Cloud, com
clientIdeclientSecret(geralmente configurados a nível de aplicação/plataforma, não por fluxo). - Um
accessTokenerefreshTokenválidos do usuário/conta do Google Calendar a ser usada.
3. Autenticação e Conexão
| Campo | Obrigatório | Tipo | Descrição | Exemplo |
|---|---|---|---|---|
accessToken | Sim | Texto | Token de acesso OAuth do Google. | Um token OAuth |
refreshToken | Sim | Texto | Token de atualização OAuth do Google, usado para renovar o acesso automaticamente quando expira. | Um refresh token OAuth |
clientId | Sim (nível de aplicação, se não vier no step) | Texto | ID do aplicativo OAuth registrado no Google Cloud. | Configurado a nível de plataforma |
clientSecret | Sim (nível de aplicação, se não vier no step) | Texto | Segredo do aplicativo OAuth. | Configurado a nível de plataforma |
applicationName | Não | Texto | Nome do aplicativo, usado nas chamadas à API do Google. | "LowFlow Integration" |
Se ocorrer uma falha de autenticação (código 401), o componente tenta renovar o token de acesso automaticamente e repete a chamada uma vez.
4. Configuração / Operações Suportadas
| Campo | Obrigatório | Tipo | Descrição | Exemplo |
|---|---|---|---|---|
operation | Sim | Texto: LIST, LIST_TOKEN, CREATE, PATCH, GET, DELETE | Operação a ser executada. | "CREATE" |
calendarId | Não | Texto | ID da agenda. Valor padrão: "primary" (agenda principal do usuário). | "primary" |
LIST / LIST_TOKEN — listar eventos
| Campo | Obrigatório | Tipo | Descrição | Exemplo |
|---|---|---|---|---|
timeMin / timeMax | Não | Texto (data/hora) | Intervalo de tempo a considerar na listagem. | "2026-07-20T00:00:00Z" |
orderBy | Não | Texto | Critério de ordenação dos resultados. | "startTime" |
singleEvents | Não | Texto ("true"/"false") | Expande eventos recorrentes em ocorrências individuais. | "true" |
maxResults | Não | Número | Quantidade máxima de resultados. | 10 |
pageToken | Sim, apenas em LIST_TOKEN | Texto | Token de paginação para continuar uma listagem anterior. | Um token de página |
CREATE — criar um evento
| Campo | Obrigatório | Tipo | Descrição | Exemplo |
|---|---|---|---|---|
summary | Sim | Texto | Título do evento. | "Reunião de alinhamento" |
startDateTime / endDateTime | Sim | Texto (data/hora) | Início e fim do evento. | "2026-07-21T10:00:00-03:00" |
startTimeZone / endTimeZone | Não | Texto | Fuso horário do início/fim. | "America/Sao_Paulo" |
location | Não | Texto | Local do evento. | "Sala 3" |
description | Não | Texto | Descrição do evento. | "Pauta: revisão do projeto" |
attendees | Não | Texto | E-mails dos convidados, separados por vírgula. | "joao@exemplo.com,maria@exemplo.com" |
createMeet | Não | Texto ("true"/"false") | Se true, cria uma reunião do Google Meet vinculada ao evento. | "true" |
PATCH / GET / DELETE — atualizar, buscar ou remover um evento
| Campo | Obrigatório | Tipo | Descrição | Exemplo |
|---|---|---|---|---|
eventId | Sim | Texto | ID do evento a ser atualizado, buscado ou removido. | "abc123evento" |
(demais campos de CREATE) | Não, em PATCH | — | Em PATCH, os campos são opcionais — só os informados são alterados. | — |
5. Exemplos Práticos
Exemplo simples: criar um evento de reunião com link do Google Meet.
Entrada:
{
"reuniao": { "titulo": "Alinhamento semanal", "inicio": "2026-07-21T10:00:00-03:00", "fim": "2026-07-21T11:00:00-03:00" }
}
Configuração do componente:
{
"componentName": "google-calendar",
"configurations": {
"operation": "CREATE",
"accessToken": "{$.secrets.googleAccessToken}",
"refreshToken": "{$.secrets.googleRefreshToken}",
"summary": "{$.body.reuniao.titulo}",
"startDateTime": "{$.body.reuniao.inicio}",
"endDateTime": "{$.body.reuniao.fim}",
"createMeet": "true"
}
}
Resposta:
{
"id": "abc123evento",
"summary": "Alinhamento semanal",
"start": { "dateTime": "2026-07-21T10:00:00-03:00" },
"end": { "dateTime": "2026-07-21T11:00:00-03:00" },
"hangoutLink": "https://meet.google.com/xxx-yyyy-zzz"
}
Exemplo avançado: listar os eventos dos próximos 7 dias.
Configuração do componente:
{
"componentName": "google-calendar",
"configurations": {
"operation": "LIST",
"accessToken": "{$.secrets.googleAccessToken}",
"refreshToken": "{$.secrets.googleRefreshToken}",
"timeMin": "2026-07-20T00:00:00Z",
"timeMax": "2026-07-27T00:00:00Z",
"singleEvents": "true",
"orderBy": "startTime"
}
}
Resposta:
{
"items": [
{ "id": "abc123evento", "summary": "Alinhamento semanal", "start": { "dateTime": "2026-07-21T10:00:00-03:00" } }
]
}
6. Erros Comuns e Troubleshooting
| Erro / Sintoma | Causa provável | Como resolver |
|---|---|---|
| "Missing required config variables: ..." | clientId/clientSecret não foram configurados nem no step nem a nível de aplicação. | Configurar as credenciais OAuth do aplicativo Google. |
| "operation is required" | O campo operation não foi preenchido. | Preencher operation com um dos valores suportados. |
| "accessToken is required" / "refreshToken is required" | Os tokens OAuth não foram preenchidos. | Preencher accessToken e refreshToken com tokens válidos. |
| "summary is required for CREATE" / "startDateTime is required for CREATE" / "endDateTime is required for CREATE" | Campos obrigatórios da operação CREATE não foram preenchidos. | Preencher summary, startDateTime e endDateTime. |
| "eventId is required for PATCH/GET/DELETE" | O campo eventId não foi preenchido nessas operações. | Preencher eventId com o ID do evento. |
| "pageToken is required for LIST_TOKEN" | A operação LIST_TOKEN foi usada sem o campo pageToken. | Preencher pageToken com o token retornado por uma listagem anterior. |
| "Google Calendar API error: ..." | O Google retornou um erro (permissão, token expirado, evento inexistente). | Revisar as permissões da conta e a validade dos tokens. |