Status da sincronização
A página de status da sincronização (/calendar/sync-status) é a visão de histórico de cada execução de sincronização da agenda que o Zellbox fez para sua conta. É o lugar para ir quando algo parece estranho: "a sincronização periódica rodou?", "por que o evento de ontem não apareceu?", "o que a proteção acabou de bloquear?". Acesse por:
- o rótulo Sincronizado há N na página Agenda,
- o link Ver histórico completo → em um banner de quarentena,
- o link Ver histórico de sincronização → abaixo do Google Calendar na página Google Sync (
/google-sync), ou - abrindo
/calendar/sync-statusdiretamente.

Escolhendo uma janela de tempo
Um card de filtro no topo da página restringe quais execuções são listadas. Chips de intervalo rápido pré-definem janelas comuns; os campos De / Até permitem ajustar cada lado; Limpar remove ambos os limites. Um contador {n} execuções na janela à direita informa quantos jobs de sincronização correspondem ao filtro atual.
| Chip | Janela |
|---|---|
| Última hora | Agora − 60 min |
| Últimas 24 h (padrão) | Agora − 24 h |
| Últimos 7 dias | Agora − 7 dias |
| Últimos 30 dias | Agora − 30 dias |
| Tudo | Sem limites — limitado a 100 resultados, mais novos primeiro |
Cada linha é um card de status:
✓ Sucedido · Atualizar · há 2 min · 24s · 12 agendas · 1.247 eventos tocados (812 adicionados · 311 atualizados · 124 cancelados)
12 concluídos
▸ Mostrar detalhes por agendaO ponto colorido + o chip de status dizem o resultado em uma olhada:
| Estado | Significado |
|---|---|
| Sucedido (verde) | Todos os ramos de agenda concluíram. |
| Parcial (âmbar) | Alguns ramos sucederam, outros falharam. Expanda a linha para ver quais. A linha também mostra uma contagem "retidos para revisão" quando a proteção colocou um lote em quarentena. |
| Falhou (vermelho) | Todos os ramos falharam. Geralmente significa que o token OAuth expirou — reconecte o Google. |
| Em fila / Em execução (azul) | Job em andamento. A página faz polling automático enquanto algum job está não terminal. |
A linha também mostra a origem do gatilho:
- Conexão inicial — o job de carga inicial pós-OAuth que roda uma vez quando você conecta o Google pela primeira vez.
- Atualização manual — você clicou no botão Atualizar na página Agenda.
- Sincronização automática — o tick agendado de 5 minutos.
- Nova agenda adicionada — você marcou uma nova agenda na página Google Sync; o Zellbox roda uma sincronização única para carregá-la.
Abaixo do título, uma segunda linha resume como os ramos de agenda da execução estão progredindo — útil para distinguir um tick em andamento de um concluído sem expandir a linha:
8 concluídos · 2 em execução · 2 em filaSe ainda não houver progresso por agenda registrado (a rede de segurança para os primeiros instantes de uma execução nova), a linha diz Nenhum progresso por agenda registrado ainda.
Detalhes por agenda
Clique em uma linha → expanda para ver o detalhamento por agenda. Cada ramo tem seu próprio ícone de status + contagens:
✓ primary · 234 eventos sincronizados
✓ Dra. Smith — Cardio · 89 eventos sincronizados
⚠ Compartilhado — Pediatria · 47 cancelamentos retidos para revisão — [Aprovar]
✗ Dr. Lee — Dermatologia · erro: token expirado (reconexão necessária)Os ramos são ordenados de modo que as entradas em quarentena e com erro venham primeiro — as coisas que precisam da sua atenção ficam no topo.
Revisando um cancelamento em quarentena
Quando a proteção dispara, você verá um banner amarelo nas páginas Painel + Agenda:
⚠ 47 cancelamentos de eventos em 1 agenda foram retidos para revisão pela proteção de segurança.
Para resolver:
- Clique em Revisar no banner ou abra a página Status da sincronização.
- Expanda a linha com o ramo em quarentena.
- Leia o diagnóstico: "X cancelamentos potenciais · tamanho do espelho Y · motivo". O motivo explica por que a proteção disparou:
on-seed— cancelamentos durante uma carga inicial (suspeito; um espelho recém-criado não deveria ter nada a cancelar).abs-limit— mais de 25 cancelamentos em uma execução.pct-limit— mais de 20% do espelho seria cancelado.
- Clique em Ver eventos retidos → para expandir a lista por evento (veja abaixo). Faça uma varredura para confirmar se os eventos parecem uma limpeza em massa legítima, e não um problema de conexão.
- Clique em Aprovar cancelamentos. O diálogo de confirmação tem três blocos:
- O que vai acontecer: a contagem + o id da agenda.
- Por que a proteção disparou: uma explicação específica do motivo (a mesma distinção
on-seed/pct-limit/abs-limitdo passo 3, mas em termos da decisão do operador). - Rede de segurança: cada evento que o Zellbox está prestes a cancelar é automaticamente snapshotado na tabela de backup antes. Você tem 90 dias para restaurar qualquer um deles individualmente em Recuperação — eventos restaurados voltam como Somente Zellbox e não são reenviados ao Google automaticamente.
- Clique em Aplicar cancelamentos. O Zellbox roda um job de sincronização novo para uma única agenda com a proteção ignorada para aquela agenda. Os cancelamentos se aplicam; você vê o job de bypass aparecer no topo do histórico.
Se preferir não aprovar — por exemplo, suspeita que o dono de uma agenda compartilhada apagou tudo por engano — deixe a quarentena no lugar. A próxima sincronização limpa libera o slot automaticamente.
Detalhamento dos eventos retidos
Abaixo da linha de diagnóstico, Ver eventos retidos → carrega sob demanda cada evento que a proteção recusou para aquele ramo. Cada linha traz o título, horário de início (no fuso horário do workspace), nome do cliente vinculado (quando houver) e uma prévia da descrição.
A lista distingue dois tipos de linha:
- Eventos correspondidos — o Zellbox ainda tem uma linha de espelho para o evento. Renderizados como um card branco.
- Tombstones fantasmas — o Google reportou
status: canceladopara um evento que não está no nosso espelho (quase sempre: um cancelamento que aconteceu antes de o Zellbox ter sido conectado a esta agenda). Renderizados como um card cinza com uma observação em itálico "Tombstone do Google (sem registro no Zellbox)".
A linha de resumo acima da lista ("41 correspondidos · 313 fantasmas · total 354") mostra o detalhamento para que um número agregado assustador seja esvaziado — na maioria das vezes a maior parte dos "354 cancelamentos" são fantasmas sem impacto real.
Ramos em quarentena antes de este recurso ter sido lançado mostram apenas contagens agregadas (sem linhas por evento no log de auditoria). O estado vazio exibe um botão Recuperar detalhes do Google que rebusca o lote no Google com a mesma janela de carga e grava retrospectivamente as linhas faltantes de auditoria. Depois que rodar, a lista é populada normalmente.
Contra o que a proteção defende
A proteção de segurança existe para impedir que um único soluço de sincronização cancele silenciosamente muitos eventos. Modos de falha concretos que ela detecta:
- O Google retorna uma página corrompida em que muitos eventos reais aparecem como
status: cancelado. - Uma troca de token ou mudança de permissão em uma agenda compartilhada faz o Zellbox pensar que a agenda inteira está vazia.
- Um bug no nosso parsing marca eventos saudáveis como cancelados.
Em qualquer um desses casos, a proteção recusa o lote inteiro e pede que você confirme antes de aplicar.