A IA de agendamento ofereceu horário de um dentista que tinha bloqueado a agenda. Como sincronizar bloqueios e ausências pra isso não acontecer?
Quando a IA oferece horário de um dentista que bloqueou a agenda, quase sempre o bloqueio nasceu fora do sistema que ela lê, foi lançado como "disponível", ficou numa subagenda ou chegou atrasado na cópia que ela consulta. Veja o diagnóstico causa por causa, o modelo certo de bloqueio, a sincronização que não depende só de aviso, o teste antes de ligar a IA e o que fazer com o paciente já marcado.
A IA ofereceu o horário porque o bloqueio não estava, a tempo e no formato certo, na agenda que ela consulta. Corrija com uma fonte única de ausências, bloqueio marcado como ocupado e não agendável, releitura periódica além do aviso de mudança e nova checagem na hora de gravar.
- O aviso de mudança falha mesmo em operação normal. A documentação da API do Google Calendar afirma que as notificações de mudança não são 100% confiáveis e que uma pequena porcentagem das mensagens se perde em condições normais de operação: a integração que só espera o aviso, sem releitura periódica da agenda, deixa bloqueio para trás.
- Bloqueio lançado como "Disponível" não bloqueia nada. Na referência de eventos da API do Google Calendar, o evento "transparent" não bloqueia tempo na agenda, o equivalente a "Mostrar como Disponível"; só o "opaque", que é o valor padrão e equivale a "Ocupado", bloqueia. O congresso marcado como disponível continua aparecendo como vaga para quem lê a agenda.
- A IA agenda quando a recepção não está lá para corrigir. Segundo dados internos da Odonto Results (2026), 46,0% dos leads de clínica odontológica chegam fora do horário comercial. Base: 16.719 leads na primeira mensagem do WhatsApp. Janela: 25 de março a 25 de agosto de 2026. O bloqueio precisa estar no sistema antes, não na cabeça de alguém da equipe.
Faz parte do guia: O que é uma IA de atendimento para clínica odontológica e como ela funciona?
Nesta página
- TL;DR
- Pontos-chave
- Diagnóstico rápido: onde o bloqueio se perdeu
- Causa 1: o bloqueio nasceu fora do sistema que a IA lê
- Causa 2: o bloqueio foi lançado como "Disponível"
- Causa 3: o bloqueio está numa agenda que a checagem não consulta
- Causa 4: a IA consulta uma cópia, não a agenda viva
- Causa 5: o aviso de mudança se perdeu no caminho
- Causa 6: bloquearam o dentista, mas não a cadeira (ou o contrário)
- Causa 7: a exceção não entrou na grade-padrão
- Causa 8: as férias entraram depois que a janela de agenda abriu
- Fonte única de verdade: onde o bloqueio nasce e quem pode criar
- Aprovar a ausência deve gerar o bloqueio sozinho
- Modele o bloqueio como "ocupado e não agendável"
- Política de ausência: antecedência mínima e congelamento da agenda
- Revalide na hora de gravar, não só na hora de oferecer
- O que a IA deve fazer quando não há horário
- Fora do horário comercial, ninguém confere a oferta
- Teste o bloqueio antes de ligar a IA
- Monitoramento: pegue o erro antes do paciente
- Quando o bloqueio encontra paciente já marcado
- Por que essa integração costuma ser frágil no Brasil
- As perguntas para o fornecedor da integração
- Seu próximo passo
- Perguntas frequentes
"A IA de agendamento ofereceu horário de um dentista que tinha bloqueado a agenda. Como sincronizar bloqueios e ausências pra isso não acontecer?"
O paciente confirmou. Recebeu o lembrete. E o dentista estava num congresso em outra cidade.
Quem descobre é a recepção, na manhã do dia, com o paciente já a caminho.
O custo não é só o constrangimento. É uma remarcação por iniciativa da clínica, um paciente que pode esfriar no meio do tratamento e uma equipe que deixa de confiar na agenda que a IA monta.
A IA não inventou esse horário. Ela ofereceu exatamente o que a agenda que ela consulta mostrava naquele momento.
O bloqueio existia, mas não estava lá do jeito certo: ficou no WhatsApp do dentista, foi lançado como "disponível", caiu numa subagenda ou chegou atrasado na cópia que a IA lê.
Por isso a correção não é "treinar melhor a IA". É fazer toda ausência nascer num lugar só, no formato certo, chegar à IA a tempo e passar por uma segunda checagem na hora de gravar.
E não dá para confiar só no aviso automático de mudança. A documentação da API do Google Calendar afirma que essas notificações não são 100% confiáveis e que uma pequena porcentagem das mensagens se perde em condições normais de operação.
Neste guia você vai ver:
- As causas que fazem a IA oferecer horário bloqueado e como descobrir qual é a sua
- Como modelar o bloqueio para ele ser "ocupado e não agendável" de verdade
- A sincronização que não depende só de aviso: releitura, renovação e nova checagem na gravação
- Grade-padrão, exceções, feriados municipais e horizonte de agenda
- O teste de bloqueio antes de ligar a IA e o monitoramento depois
- O que fazer com o paciente já marcado e o que perguntar ao fornecedor da integração
Diagnóstico rápido: onde o bloqueio se perdeu
Antes de mexer em configuração, descubra em que ponto o bloqueio não chegou. Pegue o caso concreto (dentista, data, horário oferecido, hora da oferta) e percorra a tabela.
| Sintoma | Causa provável | Onde conferir |
|---|---|---|
| O bloqueio não aparece no sistema de gestão | Nasceu fora do sistema: WhatsApp, papel, agenda pessoal | Conversa entre dentista e recepção |
| Aparece, mas a IA trata como vaga | Lançado como "Disponível" ou como dia inteiro que não ocupa os horários | Campo "Mostrar como" do evento |
| Aparece numa agenda, mas não na que a IA lê | Subagenda, agenda pessoal ou segundo calendário fora da checagem | Lista de agendas configuradas na integração |
| Aparece hoje, mas não aparecia na hora da oferta | A IA consulta uma cópia atualizada com atraso | Hora de criação do bloqueio x hora da oferta |
| Criado no lugar certo e nunca chegou | Aviso de mudança perdido, canal expirado ou sincronização quebrada | Log da integração |
| Profissional bloqueado, horário oferecido mesmo assim | Bloqueio numa camada só (profissional, cadeira ou clínica) | Configuração de recursos da agenda |
| Férias, feriado ou meio período ignorados | Exceção não lançada sobre a grade-padrão | Calendário de exceções |
| Pacientes marcados antes de as férias serem lançadas | Bloqueio criado depois de o período entrar na janela de agenda | Data de criação do bloqueio x primeiro agendamento no período |
| O bloqueio entrou entre a oferta e a confirmação | A integração não confere a agenda de novo na hora de gravar | Log da oferta e log da gravação |
Cada linha tem uma correção diferente. As seções abaixo detalham uma causa por vez.
Causa 1: o bloqueio nasceu fora do sistema que a IA lê
A IA só enxerga o que está na agenda que ela consulta. Tudo o que vive em outro lugar não existe para ela.
Os três lugares onde o bloqueio costuma nascer errado:
- WhatsApp do dentista para a recepção: por exemplo, "dia 14 não atendo à tarde". Só vira bloqueio se alguém redigitar, e só quando essa pessoa ler.
- Agenda pessoal do dentista: o congresso está no calendário pessoal dele, que a integração não lê.
- Papel ou caderno da recepção: a anotação existe na mesa, mas não existe no sistema.
Nos três casos, há uma etapa humana de redigitação entre a decisão do dentista e a agenda que a IA consulta. É esse o elo que quebra: alguém esquece, digita no dia errado ou lê a mensagem depois que a IA já ofereceu o horário.
Pensa assim: a IA trabalha com a agenda que existe no sistema, não com a agenda que existe na cabeça da equipe.
Lembre: se o bloqueio depende de alguém ler uma mensagem e redigitar, ele vai falhar justamente no dia em que essa pessoa estiver ocupada, de folga ou fora do horário.
Causa 2: o bloqueio foi lançado como "Disponível"
Esse é o erro mais silencioso. O bloqueio está lá, visível para qualquer pessoa da equipe, mas não ocupa tempo.
Calendários distinguem o evento que ocupa tempo do evento que é só uma anotação. Na referência de eventos da API do Google Calendar, a propriedade de transparência define isso: o valor "opaque", que é o padrão, bloqueia tempo e equivale a "Mostrar como Ocupado"; o valor "transparent" não bloqueia tempo e equivale a "Mostrar como Disponível".
A distinção não é invenção do Google. O padrão iCalendar, da IETF, define a mesma regra na propriedade TRANSP da RFC 5545: eventos que consomem tempo real da pessoa ou do recurso associado à agenda devem ser registrados como OPAQUE, o que permite que as buscas de livre/ocupado os detectem; os demais devem ser registrados como TRANSPARENT, o que os torna invisíveis para essas buscas. O valor padrão é OPAQUE.
O que isso significa na prática? Um "Congresso em Curitiba" lançado como disponível aparece na tela da recepção, mas a checagem de disponibilidade que segue esse campo trata aquele intervalo como livre. A IA oferece o horário com toda a "certeza".
O mesmo risco existe no evento de dia inteiro. Dependendo do aplicativo e de como foi criado, ele vira uma faixa no topo do dia, marcada como disponível, sem ocupar os horários de baixo. "Férias" lançadas assim deixam a grade inteira aberta.
Como corrigir:
- Todo bloqueio de ausência sai como ocupado, nunca como disponível.
- Se o calendário tem um tipo próprio de ausência, use. A mesma referência do Google Calendar lista o tipo de evento "outOfOffice" (fora do escritório), separado do evento comum. Confirme com o fornecedor que a integração lê esse tipo como indisponível.
- Revise o campo "Mostrar como" de todas as ausências já lançadas para os próximos meses, não só da que deu problema.
Causa 3: o bloqueio está numa agenda que a checagem não consulta
Muita clínica tem mais de uma agenda por dentista sem perceber: a do consultório, a pessoal, uma subagenda de cirurgias, uma agenda compartilhada da equipe, uma agenda em que o dentista é só convidado ou coorganizador.
A checagem de disponibilidade da integração consulta a lista de agendas que alguém configurou. O bloqueio lançado em qualquer outra fica invisível para a IA, mesmo aparecendo na tela do dentista.
Na API do Google Calendar, por exemplo, a consulta de livre/ocupado recebe a lista de agendas e grupos a consultar e devolve, para cada agenda, a lista de intervalos em que ela deve ser considerada ocupada.
Se a clínica usa a página de agendamento de horários do próprio Google Agenda, a ajuda oficial orienta: "Para evitar conflitos de agenda, selecione Verifique a disponibilidade nas agendas". E avisa: "Por padrão, os agendamentos de horários não verificam a disponibilidade dos coorganizadores."
Os casos mais comuns:
- O dentista bloqueia na agenda pessoal, que aparece sobreposta na tela dele, mas não está na lista da integração.
- O evento foi criado por outra pessoa e o dentista é só convidado: aparece para ele, mas mora na agenda de quem criou.
- A clínica criou uma subagenda nova (para uma especialidade, por exemplo) e ninguém a incluiu na integração.
A correção é escrever, num documento, a lista exata de agendas que a IA lê para cada profissional, e proibir bloqueio fora delas.
Causa 4: a IA consulta uma cópia, não a agenda viva
Muitas integrações não perguntam ao sistema de gestão a cada oferta. Elas mantêm uma cópia da agenda, atualizada de tempos em tempos, e a IA consulta essa cópia.
É uma escolha legítima (menos carga no sistema, resposta mais rápida), mas cria uma janela de exposição: o tempo entre o bloqueio ser criado na agenda-mestre e aparecer na cópia. Nessa janela, a IA oferece um horário que já não existe.
Exemplo: se a cópia é atualizada a cada 30 minutos e o dentista bloqueia a tarde às 9h05, a IA pode continuar oferecendo aquela tarde até perto das 9h35.
Duas perguntas definem o seu risco:
- De quanto em quanto tempo a cópia é atualizada?
- A integração confere a agenda viva antes de gravar, ou grava com base na cópia?
A primeira define quanto tempo o erro pode durar. A segunda define se o erro chega até o paciente.
Causa 5: o aviso de mudança se perdeu no caminho
Integrações modernas não ficam só perguntando: elas recebem um aviso (webhook ou notificação de mudança) quando algo muda na agenda. Funciona quase sempre. O problema é o "quase".
A documentação da API do Google Calendar descreve quatro limites que servem de alerta para qualquer integração de agenda:
| Limite documentado | O que acontece na clínica | O que exigir da integração |
|---|---|---|
| As notificações não são 100% confiáveis e uma pequena porcentagem se perde em condições normais de operação (notificações push) | O bloqueio foi criado, o aviso nunca chegou e a cópia nunca atualizou | Releitura periódica completa, além do aviso |
| Não existe forma automática de renovar o canal de notificação; perto de expirar, ele precisa ser substituído por um novo (notificações push) | O canal expira num fim de semana e a integração para de ouvir mudanças sem erro visível | Renovação programada antes da expiração e alerta se o canal cair |
| A notificação não traz o conteúdo da mudança; é preciso outra chamada à API para ver o que mudou (notificações push) | O aviso chega, a releitura falha e a mudança fica pendente | Fila de releitura com nova tentativa |
| O servidor pode invalidar o token de sincronização, por motivos que incluem expiração do token ou mudança de permissões, e responde com o código 410, que deve disparar a limpeza total da cópia local e uma nova sincronização completa (sincronização) | A integração trata o 410 como erro qualquer e segue trabalhando com a cópia velha | Tratamento do 410 com sincronização completa automática |
O desenho seguro combina dois mecanismos: o aviso acelera, a releitura periódica garante. E a nova checagem na hora de gravar fecha o que ainda sobrar.
Causa 6: bloquearam o dentista, mas não a cadeira (ou o contrário)
Disponibilidade, na clínica, tem três camadas. Um horário só pode ser oferecido quando as três estão livres ao mesmo tempo.
| Camada | Exemplos de bloqueio | Erro típico |
|---|---|---|
| Profissional | Férias, congresso, curso, licença, atestado, meio período | A agenda é organizada por cadeira e a cadeira do dentista ausente continua aberta com o nome dele |
| Cadeira, sala ou equipamento | Manutenção do equipo, sala cirúrgica reservada, scanner ou microscópio compartilhado em outra sala | O profissional está livre, mas o procedimento é marcado numa cadeira parada ou sem o equipamento |
| Clínica inteira | Feriado, dedetização, reforma, treinamento da equipe | Bloqueio feito profissional por profissional, e alguém fica de fora |
A regra: cada bloqueio é lançado na camada em que ele nasce. Ausência de pessoa vai no profissional. Problema de estrutura vai no recurso. Fechamento vai na clínica, uma vez, e vale para todos.
E a checagem da IA precisa olhar as três camadas antes de oferecer. Se a integração só entende "profissional", pergunte ao fornecedor como ela trata cadeira e sala.
Causa 7: a exceção não entrou na grade-padrão
A grade-padrão (o template de horário de cada dentista) responde "em que dias e horários ele atende". A exceção responde "quando ele não atende, mesmo sendo dia de grade". A IA precisa das duas.
O problema: a grade é configurada uma vez e funciona sozinha. A exceção depende de alguém lançar, toda vez.
| Exceção | Como lançar | Cuidado |
|---|---|---|
| Férias | Bloqueio de dias corridos, ocupado e não agendável | Lançar antes de o período entrar na janela de agenda |
| Congresso, curso, pós-graduação | Bloqueio por período, incluindo o deslocamento | Curso recorrente vira exceção recorrente com data de fim |
| Licença (saúde, maternidade, paternidade) | Bloqueio longo com data de retorno a confirmar | Definir quem assume os pacientes em tratamento |
| Atestado no dia | Bloqueio imediato, criado por quem souber primeiro | Precisa de caminho rápido, inclusive fora do horário comercial |
| Meio período | Bloqueio só do turno afetado | Evento de dia inteiro aqui bloqueia demais ou de menos |
| Feriado municipal ou estadual e ponte | Bloqueio da clínica inteira, por unidade | O calendário nacional do sistema não conhece |
Feriado local: o que o calendário nacional não sabe
Parte dos feriados é definida fora da esfera federal. A Lei 9.093/1995 define como feriados civis os declarados em lei federal, a data magna do estado fixada em lei estadual e os dias do início e do término do ano do centenário de fundação do município, fixados em lei municipal.
A mesma lei define como feriados religiosos os dias de guarda declarados em lei municipal, de acordo com a tradição local, em número não superior a quatro, incluída a Sexta-Feira da Paixão.
Tradução para a agenda: um sistema que só carrega o calendário nacional não conhece a data magna do seu estado nem os feriados religiosos da sua cidade. Se a clínica tem unidades em municípios diferentes, cada unidade tem o seu calendário.
A ponte é outra história: é decisão da clínica. Defina no início do ano o que a clínica faz em cada feriado e cada ponte (fecha, abre meio período, abre normal) e lance tudo de uma vez.
Causa 8: as férias entraram depois que a janela de agenda abriu
Toda agenda tem um horizonte: até quantas semanas ou meses à frente a IA pode oferecer horário. Dentro do horizonte, a agenda está à venda. Fora dele, nada é oferecido.
O erro acontece quando a ausência é lançada depois que o período já entrou no horizonte. A IA pode ter marcado pacientes naquelas datas de forma legítima, porque o bloqueio ainda não existia.
A regra que resolve: toda ausência conhecida entra antes de o período entrar no horizonte.
Exemplo: se a IA oferece horários com até 60 dias de antecedência, férias que começam no início de janeiro precisam estar lançadas antes do início de novembro.
O horizonte vira ferramenta de gestão. Quanto mais longo, mais cedo a equipe precisa decidir férias e cursos. Por isso ele é definido junto com a política de ausência, nunca separado.
Fonte única de verdade: onde o bloqueio nasce e quem pode criar
Agora que você sabe onde o bloqueio se perde, vamos para a correção. Ela tem uma parte de processo e uma parte técnica, e uma não funciona sem a outra.
Primeira decisão: qual sistema é a agenda-mestre. Só pode ser um. Todo bloqueio nasce nele, e todos os outros (o CRM, a IA, o painel da recepção) leem dele. Nenhum deles guarda bloqueio próprio. Se a sua clínica ainda não decidiu quem manda em quê, comece por qual sistema deve mandar quando CRM e agenda entram em conflito.
Segunda decisão: quem pode criar bloqueio.
| Modelo | Velocidade | Controle | Quando usar |
|---|---|---|---|
| O dentista cria direto no sistema-mestre | Alta | Baixo: ninguém vê o impacto antes | Equipe pequena, dentistas disciplinados |
| O dentista pede, a gestão aprova, o sistema cria | Média | Alto: a gestão vê os pacientes afetados antes de aprovar | Várias cadeiras, vários dentistas, alto ticket |
| A recepção cria a pedido | Média | Médio | Só se o pedido entra por canal registrado |
Terceira decisão: o canal do pedido. "Avisar a recepção pelo WhatsApp" é o elo que quebra, porque:
- mistura o pedido com a conversa do dia, e ele se perde;
- depende de leitura e redigitação;
- não deixa rastro de quando o bloqueio foi pedido e quando foi criado.
Troque por um formulário ou pela própria tela do sistema-mestre, com data e hora registradas.
A exceção é o atestado no dia. Ele precisa de um caminho de emergência com nome: uma pessoa definida, que bloqueia no sistema-mestre pelo celular, na hora, inclusive antes de a recepção abrir.
Aprovar a ausência deve gerar o bloqueio sozinho
Se a clínica já controla férias e folgas num sistema de RH, num formulário ou numa planilha de aprovação, o passo seguinte é ligar a aprovação à agenda. Aprovou, o bloqueio aparece no sistema-mestre, no formato certo, sem ninguém redigitar.
Veja como fica o fluxo:
- O dentista registra o pedido de ausência, com datas e turnos.
- O sistema mostra à gestão os pacientes já marcados naquele período.
- A gestão aprova (ou negocia outra data).
- A aprovação cria o bloqueio como ocupado e não agendável, na camada certa.
- A recepção recebe a lista de pacientes para remanejar.
Isso elimina a etapa humana entre a decisão e a agenda, padroniza o formato do bloqueio e registra quando cada ausência foi pedida.
Vale também para o dentista parceiro ou autônomo, que não passa por RH: a "aprovação" é o aceite da gestão da agenda. Para planejar a cobertura em si (quem atende as urgências, como reorganizar a agenda), veja como cobrir a agenda quando um dentista falta ou tira férias.
Modele o bloqueio como "ocupado e não agendável"
Nem todo "ocupado" é igual. O padrão de interoperabilidade em saúde FHIR, mantido pela HL7 International, separa os estados de um intervalo de agenda nos códigos de status do recurso Slot:
| Status FHIR | Definição no padrão | Na sua agenda |
|---|---|---|
| free | O intervalo está livre para agendamento | Horário que a IA pode oferecer |
| busy | O intervalo está ocupado porque um ou mais eventos foram agendados nele | Paciente marcado |
| busy-unavailable | O intervalo está ocupado e não pode ser agendado | Férias, congresso, atestado, manutenção |
| busy-tentative | O intervalo está ocupado porque um ou mais eventos foram agendados de forma provisória | Reserva provisória enquanto o paciente confirma |
Por que essa distinção importa:
- Paciente marcado pode ser remanejado, encaixado ou liberado num cancelamento. O horário volta a ficar disponível.
- Bloqueio não volta a ficar disponível quando alguém cancela algo. Ele só sai quando a gestão tira.
O atalho perigoso é criar um "paciente fictício" chamado BLOQUEIO. Ele pode ser cancelado ou apagado por engano e liberar o horário, entra nos relatórios como consulta e pode até disparar lembrete automático. Se o seu sistema tem bloqueio de verdade, use. Se não tem, cobre do fornecedor.
O motivo não precisa ir para a IA. A IA precisa saber "indisponível", não "atestado médico" ou "cirurgia do filho". O motivo é dado da gestão. Levá-lo para a IA cria o risco de ela repetir ao paciente o que não devia e não melhora nenhuma decisão de agendamento. Guarde o motivo num campo que só a gestão vê.
Política de ausência: antecedência mínima e congelamento da agenda
A parte técnica não segura uma equipe sem regra. Escreva a política de ausência como procedimento operacional padrão (POP), com quatro pontos:
- Antecedência mínima de aviso para ausência planejada (férias, curso, congresso). Defina um prazo que caiba antes do horizonte de agenda. Ausência pedida depois de o período estar aberto vem com a obrigação de remanejar quem já está marcado.
- Congelamento: a partir de uma data próxima do atendimento, definida pela clínica, a agenda congela. Bloqueio novo só com aprovação da gestão e com o plano de remanejamento pronto.
- Exceção de emergência: atestado e imprevisto passam por cima do congelamento, pelo caminho rápido e com responsável definido.
- Revisão mensal: no começo de cada mês, cada dentista confirma as ausências do horizonte inteiro, e a gestão confere se estão lançadas como ocupadas.
O que a política resolve é previsibilidade. A agenda que a IA oferece passa a ser a agenda que vai acontecer.
Revalide na hora de gravar, não só na hora de oferecer
Mesmo com tudo isso, sobra uma janela: o tempo entre a IA oferecer o horário e o paciente confirmar. Se o bloqueio entra nesse meio, a oferta fica velha.
E essa conversa não acontece num instante. Segundo dados internos da Odonto Results (2026), entre os leads que agendam, metade fecha em até 34 minutos e 53,6% em menos de 1 hora, contados a partir da primeira mensagem. Base: 3.148 agendamentos. Janela: 25 de março a 25 de agosto de 2026.
Há tempo de sobra para a agenda mudar no meio. Por isso a gravação confere de novo:
- A IA oferece o horário com base na agenda (viva ou cópia).
- O paciente escolhe.
- A integração consulta a agenda-mestre naquele instante, para aquele profissional, aquela cadeira e aquele intervalo.
- Se continua livre, grava. Se não, a agenda-mestre recusa a gravação e devolve o conflito.
- A IA pede desculpas e oferece a alternativa mais próxima, na mesma conversa.
O ideal é que a recusa venha do próprio sistema-mestre (a gravação falha se houver conflito), e não só de uma checagem da integração. É a mesma trava que impede dois pacientes no mesmo horário quando IA e recepção escrevem na mesma agenda.
Lembre: oferecer não garante o horário; gravar garante. A checagem que protege o paciente é a da gravação.
O que a IA deve fazer quando não há horário
Bloqueio bem feito tem um efeito colateral: menos horário disponível. A IA precisa de regra para isso, ou ela improvisa.
Ordem recomendada:
- Próximo horário livre do mesmo profissional, quando o paciente tem vínculo (tratamento em curso, retorno, pós-operatório).
- Outro profissional da mesma especialidade, no horário que o paciente queria, quando ele é novo ou aceita trocar.
- Lista de espera para a data desejada, com aviso automático se um horário abrir.
- Transbordo para humano quando nada disso resolve ou quando o caso é urgência.
O que a IA não pode fazer:
- prometer "vou ver com o doutor se ele abre um encaixe" sem que exista um pedido registrado para alguém da equipe;
- inventar exceção à grade;
- explicar o motivo da ausência ao paciente. "O doutor não atende nesse período" basta.
Fora do horário comercial, ninguém confere a oferta
Segundo dados internos da Odonto Results (2026), 46,0% dos leads de clínica odontológica chegam fora do horário comercial. Base: 16.719 leads na primeira mensagem do WhatsApp. Janela: 25 de março a 25 de agosto de 2026.
Quem atende esse lead à noite e no fim de semana é a IA. Não há recepção para olhar a agenda e lembrar que "nesse dia o doutor não vem".
Repare no que isso exige:
- O bloqueio precisa estar no sistema antes de a recepção fechar. "Amanhã cedo eu lanço" já é tarde.
- O atestado de madrugada precisa do caminho de emergência: alguém que bloqueia de casa, pelo celular, no sistema-mestre.
- Qualquer "segurar o horário de cabeça" que a recepção faz durante o dia não protege nada à noite.
Teste o bloqueio antes de ligar a IA
Antes de ligar a IA na agenda de produção, e depois de qualquer mudança na integração, crie bloqueios de teste e peça horário à IA como se fosse um paciente. Cada cenário tem um resultado esperado.
| Cenário | Como criar | Resultado esperado |
|---|---|---|
| Dia inteiro | Bloqueio de dia inteiro num dia de grade | A IA não oferece nenhum horário do dia |
| Meio período | Bloqueio só da tarde | A IA oferece a manhã e não a tarde |
| Recorrente | Curso toda sexta à tarde, com data de fim | Nenhuma sexta à tarde até a data de fim; volta a oferecer depois |
| Feriado municipal | Feriado da cidade no calendário da unidade | A unidade inteira fechada naquele dia |
| Lançado como "Disponível" | Bloqueio com "Mostrar como Disponível" | Revela se a integração respeita esse campo; padronize como ocupado de qualquer forma |
| Agenda pessoal ou subagenda | Bloqueio numa agenda fora da lista configurada | Revela quais agendas a integração realmente lê |
| Só a cadeira | Cadeira em manutenção, profissional livre | A IA não oferece procedimento naquela cadeira |
| Bloqueio no meio da conversa | Pedir horário, bloquear o horário oferecido, confirmar | A gravação é recusada e a IA oferece alternativa |
| Bloqueio dentro do horizonte | Férias lançadas num período já aberto | Sai a lista de pacientes já marcados para remanejar |
Meça também o tempo de propagação: crie um bloqueio, anote a hora e peça horário à IA a intervalos curtos até aquele horário sumir. Esse é o tamanho real da sua janela de exposição, não o que está no contrato.
Monitoramento: pegue o erro antes do paciente
Teste não substitui vigilância. Três controles mínimos:
- Alerta de agendamento dentro de bloqueio: cruzamento automático de todo agendamento futuro contra todos os bloqueios, a cada sincronização ou pelo menos uma vez por dia. Qualquer sobreposição vai para um responsável nomeado.
- Relatório diário de conflitos: a lista dos próximos dias com agendamento em intervalo bloqueado, cadeira parada ou feriado, lida antes de as confirmações saírem.
- Indicadores semanais, na tabela abaixo.
| Indicador | Como calcular | O que revela |
|---|---|---|
| Agendamentos dentro de bloqueio | Contagem semanal | Falha de sincronização ou de modelagem |
| Remarcações por iniciativa da clínica | Remarcações pedidas pela clínica divididas pelo total de agendamentos | Ausências lançadas tarde |
| Tempo de propagação do bloqueio | Hora em que a IA parou de oferecer menos hora de criação do bloqueio | Tamanho da janela de exposição |
| Bloqueios criados dentro do horizonte | Bloqueios lançados com o período já aberto | Disciplina da política de ausência |
| Gravações recusadas por conflito | Recusas na gravação divididas pelas ofertas aceitas | A revalidação funcionando; se subir, a cópia está atrasada |
A meta do primeiro indicador é zero. Qualquer ocorrência vira registro de causa, como no roteiro abaixo.
Quando o bloqueio encontra paciente já marcado
São duas situações diferentes, com tratamentos diferentes.
O paciente estava marcado antes de o bloqueio existir
Aqui ninguém errou: a ausência é legítima e veio depois. O sistema deve gerar a lista de afetados no momento em que o bloqueio é criado, e a recepção remaneja numa ordem de prioridade.
Ordem sugerida:
- Tratamento em curso e pós-operatório, que não podem esperar.
- Paciente de alto ticket em início de tratamento, com orçamento aprovado.
- Avaliação de paciente novo, que esfria rápido.
- Retorno e manutenção.
A oferta segue a mesma lógica da IA: primeiro outro profissional da mesma especialidade no horário original (o paciente mantém a data), depois a data mais próxima com o mesmo profissional.
O contato é humano, por ligação. Remarcar por iniciativa da clínica cobra do paciente o custo de reorganizar a própria rotina e enfraquece o compromisso com a data. O paciente de retorno, que já tem menos urgência, tende a ser o que mais facilmente não volta. Registre cada caso como remarcação por iniciativa da clínica, para o indicador acima mostrar o tamanho do problema.
A IA marcou depois do bloqueio (o erro)
Aqui houve falha, e o roteiro é outro:
- Contato humano rápido: a recepção liga, não a IA, assim que o erro é detectado.
- Assuma o erro sem expor o motivo: "Tivemos um erro na nossa agenda e o horário que você recebeu não está disponível. Peço desculpas pelo transtorno."
- Prioridade de reencaixe: o paciente prejudicado ganha preferência no melhor horário disponível, com opção de outro profissional.
- Confirme o novo horário por escrito e cancele o lembrete antigo. Sem isso, o paciente recebe a confirmação do horário errado.
- Registre a causa: qual linha da tabela de diagnóstico produziu o erro. Sem esse registro, o mesmo erro volta.
Por que essa integração costuma ser frágil no Brasil
Se a sincronização da sua agenda parece remendada, você não está sozinho.
Na pesquisa TIC Saúde 2025 do Cetic.br/CGI.br, entre os estabelecimentos de saúde brasileiros que usaram a Internet nos últimos 12 meses, 27% declararam ter sistema eletrônico com interoperabilidade. No recorte privado, o índice cai para 14%, e 76% declararam não ter.
Na mesma pesquisa, 24% desses estabelecimentos possuem departamento ou área de Tecnologia da Informação. Entre os privados, são 33%, e 66% não possuem.
Os números valem para estabelecimentos de saúde em geral, não só odontológicos. Mas o retrato serve: na maior parte dos estabelecimentos privados, o sistema não troca dados de forma interoperável com outros sistemas e não existe uma área de TI para vigiar a integração.
Na prática, quem responde pela sincronização da agenda é o dono ou o gestor. A defesa dele são as perguntas certas ao fornecedor.
As perguntas para o fornecedor da integração
Leve esta lista para a reunião. A coluna da direita é o sinal de alerta.
| Pergunta | Resposta que serve | Resposta que preocupa |
|---|---|---|
| A IA lê a agenda viva ou uma cópia? | A viva, ou uma cópia com intervalo definido e nova checagem na gravação | "Sincroniza de tempos em tempos", sem dizer quanto |
| Existe releitura completa periódica além do aviso de mudança? | Sim, com frequência definida | "O webhook avisa na hora" |
| Quais agendas e subagendas a checagem lê, por profissional? | Lista explícita e configurável | "Lê a agenda do dentista" |
| Como trata evento "Disponível", evento de dia inteiro e tipo "fora do escritório"? | Explica o comportamento e trata ausência como indisponível | Não sabe responder |
| Trata bloqueio de cadeira, sala e equipamento, além do profissional? | Sim, por recurso | Só profissional |
| Confere a agenda de novo antes de gravar? O sistema recusa gravação em conflito? | Sim, com recusa e alternativa na mesma conversa | Grava com base na oferta |
| Como renova o canal de notificação e o que faz com o código 410? | Renovação programada e sincronização completa automática | Não conhece o tema ou trata como erro genérico |
| Carrega feriados municipais e estaduais por unidade? | Sim, calendário por unidade | Só o nacional |
| Guarda log de cada oferta com o estado da agenda naquele momento? | Sim, consultável pela clínica | Só guarda o agendamento final |
| Avisa quando a sincronização para? | Alerta automático para um responsável | Você descobre pelo paciente |
Para a auditoria completa antes de contratar, veja o que auditar antes de comprar a integração CRM-agenda pronta.
Seu próximo passo
- Pegue o último horário oferecido errado e rode o diagnóstico. Descubra em qual causa o bloqueio se perdeu antes de mexer em qualquer configuração.
- Eleja a agenda-mestre e escreva a política de ausência. Um lugar para o bloqueio nascer, quem pode criar, antecedência mínima, congelamento e caminho de emergência para o atestado.
- Rode o teste de bloqueios e ligue o alerta de agendamento dentro de bloqueio. Considere o problema resolvido só quando todos os cenários passarem e o alerta ficar zerado por algumas semanas seguidas.
Quer a IA respondendo seus pacientes na hora, sem oferecer horário que a sua agenda não tem? Agende uma apresentação.
Perguntas frequentes
Por que a IA de agendamento ofereceu um horário que o dentista tinha bloqueado?
Porque a IA oferece o que a agenda que ela consulta mostra, e o bloqueio não estava lá do jeito certo. As causas mais comuns são o bloqueio que ficou no WhatsApp, no papel ou na agenda pessoal do dentista, o evento lançado como "disponível", a subagenda que a checagem não lê e a cópia sincronizada que ainda não tinha recebido a mudança.
Webhook resolve a sincronização da agenda em tempo real?
Não sozinho. A documentação da API do Google Calendar afirma que as notificações de mudança não são 100% confiáveis e que uma pequena porcentagem se perde em condições normais de operação. O aviso serve para acelerar; a garantia vem da releitura periódica da agenda e de uma nova checagem do horário no momento de gravar o agendamento.
Como lançar férias e congresso do dentista para a IA não oferecer horário?
Lance como exceção da grade, no sistema-mestre que a IA lê, com status de ocupado e não agendável, cobrindo o profissional e, quando for o caso, a cadeira. Faça isso antes de a janela de agenda daquele período abrir e confira que o evento não ficou marcado como "disponível" nem numa agenda pessoal que a integração não consulta.
A IA precisa saber o motivo do bloqueio do dentista?
Não. A IA precisa saber apenas que o intervalo está indisponível. Atestado, motivo pessoal ou curso ficam com a gestão, num campo que só ela vê; levar o motivo para a IA cria o risco de ela repetir ao paciente o que não devia e não melhora nenhuma decisão de agendamento.
O que fazer com os pacientes que já estavam marcados quando o dentista bloqueou a agenda?
Gere a lista de afetados no momento em que o bloqueio é criado e faça contato humano, por ligação, não por mensagem automática genérica. Ofereça primeiro outro profissional da mesma especialidade no mesmo horário e depois a data mais próxima, com prioridade para tratamento em curso e pós-operatório. Registre cada caso como remarcação por iniciativa da clínica.
Feriado municipal precisa ser lançado na agenda à parte?
Sim, se o seu sistema só carrega o calendário nacional. Pela Lei 9.093/1995, os feriados religiosos são declarados em lei municipal, em número não superior a quatro, incluída a Sexta-Feira da Paixão, e a data magna do estado é fixada em lei estadual. Carregue esse calendário local por unidade no início do ano e decida as pontes junto.