Integração com Calendário

Permite que qualquer aplicação conecte um Google Calendar a um calendário da Sendeasy e mantenha os dois lados sincronizados — sem passar pelo console.

A conexão é feita pela API pública (/api/v1/calendars/...), autenticada com o token de API da empresa. Depois de conectada, a Sendeasy cuida sozinha dos webhooks e da sincronização de eventos.

Como funciona

Depois de conectado, dois fluxos rodam em paralelo:

  • Sendeasy → Google: agendamentos criados, atualizados ou cancelados na Sendeasy viram eventos no Google Calendar (com Google Meet, se habilitado).
  • Google → Sendeasy: mudanças feitas no Google Calendar chegam por webhook e são importadas de forma incremental. Um processo periódico reconcilia o que porventura não chegar pelo webhook.

Passo 1 — Iniciar a conexão

Solicite a URL de autorização do Google para o calendário desejado e redirecione a pessoa até ela.

curl -X GET "https://backend.sendeasy.app/api/v1/calendars/{calendarId}/integrations/google/connect" \
  -H "Authorization: Bearer SEU_TOKEN_DE_API"
{
  "url": "https://accounts.google.com/o/oauth2/v2/auth?..."
}

Ao aprovar o acesso, a pessoa é redirecionada de volta e a integração fica pronta: as credenciais são armazenadas de forma criptografada e o canal de notificações do Google é criado automaticamente.

Passo 2 — Consultar o estado da integração

curl -X GET "https://backend.sendeasy.app/api/v1/calendars/{calendarId}/integrations/google" \
  -H "Authorization: Bearer SEU_TOKEN_DE_API"

A resposta informa se está conectado, o estado das opções de sincronização, o último erro de sincronização (se houver) e a validade do canal de notificações.

Passo 3 — Ajustar as opções

  • Name
    googleCalendarEnabled
    Type
    boolean
    Description

    Espelha no Google Calendar os agendamentos feitos na Sendeasy.

  • Name
    googleMeetEnabled
    Type
    boolean
    Description

    Cria uma sala do Google Meet nos eventos gerados pela Sendeasy.

  • Name
    importEventsAsBookings
    Type
    boolean
    Description

    Importa eventos vindos do Google como agendamentos. Quando desligado, esses eventos entram apenas como períodos ocupados na agenda.

curl -X PUT "https://backend.sendeasy.app/api/v1/calendars/{calendarId}/integrations/google" \
  -H "Authorization: Bearer SEU_TOKEN_DE_API" \
  -H "Content-Type: application/json" \
  -d '{ "googleMeetEnabled": true, "importEventsAsBookings": true }'

Desconectar

Encerra o canal de notificações e remove as credenciais armazenadas.

curl -X DELETE "https://backend.sendeasy.app/api/v1/calendars/{calendarId}/integrations/google" \
  -H "Authorization: Bearer SEU_TOKEN_DE_API"

Listar os calendários da empresa

Para descobrir o calendarId a ser usado nas chamadas acima:

curl -X GET "https://backend.sendeasy.app/api/v1/calendars" \
  -H "Authorization: Bearer SEU_TOKEN_DE_API"

Endpoints

MétodoEndpointDescrição
GET/api/v1/calendarsLista os calendários da empresa
GET/api/v1/calendars/{id}/integrations/google/connectRetorna a URL de autorização
GET/api/v1/calendars/{id}/integrations/googleEstado da integração
PUT/api/v1/calendars/{id}/integrations/googleAtualiza as opções
DELETE/api/v1/calendars/{id}/integrations/googleDesconecta a integração

Sincronização e webhooks

Depois da conexão, a sincronização é automática e não exige nada da sua aplicação:

  • Mudanças no Google Calendar são notificadas por push e importadas de forma incremental — só o que mudou desde a última sincronização.
  • O canal de notificações do Google tem validade limitada e é renovado automaticamente antes de expirar.
  • Um processo periódico funciona como rede de segurança: renova o canal e reconcilia mudanças que não tenham chegado por notificação.
  • Falhas de sincronização ficam registradas e aparecem na consulta de estado (Passo 2).

Erros

CódigoSignificado
401Token de API ausente, inválido ou inativo.
404Calendário inexistente ou pertencente a outra empresa.
429Limite de requisições excedido.

Essa informação foi útil?