A agenda do Syncro pode sincronizar bidirecionalmente com o Google Calendar. Eventos criados no Syncro aparecem automaticamente na sua agenda do Google, e eventos criados no Google aparecem na agenda do Syncro. Ideal pra quem mantém o Google Calendar como agenda principal mas quer ver/criar eventos pelo CRM sem trocar de aba.
A sincronização usa OAuth do Google — você autoriza uma vez e o Syncro usa o token pra ler/escrever eventos em nome da sua conta.
Pré-requisitos
Permissão de admin ou manager pra ativar a sincronização (controla
tenants.settings_json.calendar_google_sync_enabled).Conta Google ativa com Calendar habilitado.
Aceitar os escopos de permissão do Google:
https://www.googleapis.com/auth/calendar.
Conectar Google Calendar
Caminho 1 — Pelo card na sidebar da agenda
Acesse Agenda.
Na sidebar esquerda, há um card Sua agenda está quase pronta com o subtexto "Conecte sua conta do Google Calendar para visualizar, criar e gerenciar seus eventos diretamente pelo Syncro.".
Clique em Conectar Google Calendar.
Você é redirecionado pro fluxo OAuth do Google.
Faça login na sua conta Google (use a conta que tem o Calendar que quer sincronizar).
Confirme as permissões solicitadas.
Volta pro Syncro automaticamente.
A integração fica registrada na tabela
oauth_connectionscomplatform='google'.
Caminho 2 — Pelas Integrações
Acesse Configurações → Integrações.
Localize o card Google Calendar.
Clique em Conectar.
Mesmo fluxo OAuth descrito acima.
Ativar a sincronização
Conectar é diferente de ativar a sincronização. Após conectar:
Volta pra Agenda.
Na sidebar, o card de Google Calendar agora mostra toggle "Sincronizar eventos".
Marque o toggle.
A sincronização passa a funcionar nos dois sentidos.
⚠️ Atenção: o toggle só aparece pra admins / managers. Usuários comuns não têm permissão pra ativar / desativar.
Como funciona a sincronização (bidirecional)
Syncro → Google (outbound)
Quando você cria/edita/exclui um evento no Syncro:
O
CalendarOrchestratorchamaGoogleCalendarSyncer::shouldSync.Se sync está ativo + connection ativa → enfileira o job
SyncCalendarEventToGoogle.Job executa em background:
Faz refresh do token OAuth (se necessário)
Cria/atualiza/exclui o evento no Google via API
Salva
google_event_idegoogle_synced_atno Syncro
Você vê o evento no Google em segundos.
Google → Syncro (inbound)
Cron job calendar:pull-google roda a cada 15 minutos:
Pra cada tenant com sync ativo:
Lista eventos do Google no range
[hoje - 1h, hoje + 60 dias].Upsert por
google_event_id:
Se evento não existe no Syncro → cria com
source='google'.Se já existe com
source='google'→ atualiza (campos do Google ganham).Se existe com
source='syncro'→ SKIP (não sobrescreve eventos do Syncro pra evitar loop).
Eventos que sumiram do Google são marcados como
status='canceled'no Syncro.
Visual — eventos do Syncro vs Google
Na visualização do calendário, eventos têm cores diferentes:
Azul (#0085F3) — eventos criados no Syncro (
source='syncro')Verde (#10B981) — eventos importados do Google (
source='google')
Você consegue distinguir visualmente quem nasceu onde.
Múltiplas agendas Google
A maioria das contas Google tem várias agendas (principal, trabalho, pessoal, feriados). O Syncro lista todas e você decide quais sincronizar:
No sidebar, clique em Agendas ou Selecionar agendas.
Aparece a lista de agendas Google detectadas com checkboxes.
Marque as que quer ver no Syncro.
Clique em Salvar preferências.
Aparece Preferências de agenda salvas!.
💡 Dica: você pode marcar uma agenda como padrão clicando em Definir padrão. Eventos criados no Syncro vão pra essa agenda automaticamente.
Convidados (attendees)
Quando você cria evento no Syncro com convidados (emails) e a sincronização Google está ativa:
O evento é criado no Google Calendar.
Os convidados recebem convite por email automaticamente (do Google, não do Syncro).
O texto do convite é o padrão do Google (assunto, data/hora, link da reunião se for Meet).
Convidados podem aceitar/recusar pelo link no email.
Sem sincronização, o Syncro não envia convites por email — atributo attendees fica salvo mas é apenas informativo.
Status de sincronização
Cada evento tem indicadores no popup:
Sincronizado com Google ✅ — evento criado no Syncro foi espelhado no Google com sucesso (campo
google_synced_atpopulado).Importado do Google Calendar 📥 — evento veio do Google (
source='google').Erro ao sincronizar ⚠️ — tentativa de sync falhou. Campo
google_sync_errormostra o motivo.
Erros de sincronização — o que fazer
Causas comuns de google_sync_error:
Token expirado
A integração Google usa refresh tokens que renovam automaticamente, mas se o usuário revogou o acesso no Google ou desconectou, o token expira e o sync para.
Solução: vá em Configurações → Integrações → Google Calendar → Reconectar.
Calendário não encontrado
Você selecionou uma agenda como padrão e depois deletou ela no Google.
Solução: vá em Selecionar agendas e marque outra como padrão.
Conflito de horário (sem evento no Google)
O Google retornou erro porque o slot já tem outro evento (que não está no Syncro).
Solução: vá no Google e remova o conflito, ou ajuste o evento no Syncro.
Desativar a sincronização
Se quiser parar de sincronizar (mantendo a connection ativa pra reativar depois):
Na sidebar da agenda, desmarque o toggle "Sincronizar eventos".
A partir desse momento:
Eventos novos do Syncro não serão criados no Google.
Eventos do Google não serão importados.
Eventos já existentes nos dois lados continuam visíveis mas as edições deixam de ser propagadas.
Desconectar Google Calendar (revogar acesso)
Acesse Configurações → Integrações → Google Calendar.
Clique em Desconectar.
Confirmação aparece.
Confirme.
A integração é removida (
oauth_connectiondeletada).
Após desconectar:
Sync para imediatamente.
Eventos com
source='google'continuam visíveis no Syncro (snapshot do que foi importado), mas não atualizam mais.Eventos do Syncro com
google_event_idcontinuam funcionando localmente mas não tentarão atualizar o Google.
Pra reativar, reconecte a partir do zero.
Privacidade — o que o Syncro pode ver
Com o escopo https://www.googleapis.com/auth/calendar:
Pode ler eventos das agendas que você marcou pra sincronizar
Pode criar / editar / excluir eventos via API
Não pode acessar Gmail, Drive, Contatos, ou qualquer outro produto Google
A integração é escopada apenas pro Calendar. Você pode revisar e revogar permissões a qualquer momento na página myaccount.google.com/permissions.
Sincronização entre múltiplos usuários do tenant
Cada usuário do tenant que conecta Google Calendar tem sua própria connection. Não há agenda compartilhada entre users via Syncro — cada um vê os próprios eventos.
Pra agenda compartilhada de equipe, o Google Calendar tem o conceito nativo de agenda compartilhada que aparece no Syncro como uma agenda a mais (você marca pra sincronizar e os eventos compartilhados aparecem).
Limites técnicos
Range de pull: eventos das próximas 60 dias + 1 hora atrás. Eventos mais antigos ou mais futuros não são sincronizados.
Quantidade de eventos: sem limite formal. Calendários com milhares de eventos funcionam normalmente.
API quota Google: o Google tem limite de chamadas API (10k requests/dia por usuário). Tenants com muito tráfego de sync podem hipoteticamente atingir, mas é improvável.
Próximos passos
Já sincronizou? Aprenda como criar evento na agenda.
Pra entender lembretes via WhatsApp pros eventos sincronizados, veja Lembretes de eventos.