Booking Blocks: Agendamento Rastreável e UX de Compromissos
Crie um bloco de reservas online com serviços rastreáveis, elegibilidade, locais, dados de contato e instruções alternativas quando o agendamento de terceiros falha.
Um bloco de reservas permite que um leitor escolha ou solicite um compromisso, mantendo informações essenciais em HTML. Ele combina uma ação específica, contexto de serviço e localização, elegibilidade, agendamento e uma rota alternativa.
Agende uma visita de reparo de eletrodomésticos Diagnóstico de lava-louças · aproximadamente 60 minutos Disponível para residências na área de serviço Northside. Uma taxa de diagnóstico pode ser aplicada. Escolha um horário de compromisso Se o agendamento online não estiver disponível, ligue para (555) 014-0186, segunda–sexta, 8:00–18:00.
O agendador pode aparecer inline, em um diálogo ou em site externo. Removê-lo não deve remover o serviço, duração, área, condições ou alternativa.
Por que este elemento é importante
O agendamento transforma interesse em compromisso. Nesse momento, os leitores geralmente verificam três coisas ao mesmo tempo: “Este é o compromisso certo?”, “Esta empresa pode me atender?” e “O que acontece depois que eu escolher?” Um bloco que diz apenas “Agende agora” força o leitor a sair da página ou entrar em um widget para responder a essas perguntas. Essa incerteza é especialmente custosa para serviços locais, onde a filial, fuso horário, área de serviço ou tipo de compromisso errados podem invalidar a reserva.
A clareza reduz o risco de agir. “Agende uma consulta inicial de 30 minutos” define uma expectativa mais firme do que “Comece agora”. Elegibilidade, taxas, preparação, termos de cancelamento e detalhes de contato visíveis expõem uma incompatibilidade antes de o leitor compartilhar informações pessoais.
A extraibilidade por máquinas é importante porque muitos agendadores chegam através de um iframe ou script de terceiros. Um rastreador, sistema de resposta por IA, sessão bloqueada por consentimento ou tecnologia assistiva pode receber um quadro vazio. Não é possível determinar então o que pode ser reservado, onde, sob quais condições ou como se recuperar.
Não copie horários disponíveis em texto corrido; eles mudam rapidamente e pertencem ao sistema de agendamento. Renderize o contexto estável na página principal: nome do compromisso, localização, duração, elegibilidade, preparação, custos, fuso horário, provedor e alternativa. O widget adiciona datas e horários atuais.
Aplique as regras de escrita de elementos antes de escolher este componente. A finalidade tem precedência sobre a aparência. Se o bloco agenda uma interação com prazo determinado, é um bloco de reservas mesmo quando o design atual se parece com uma chamada para ação comum. Se ele apenas coleta uma consulta de vendas sem oferecer ou solicitar um compromisso, é um formulário ou CTA.
Quando usar
Use um bloco de reservas quando o leitor puder realizar uma ação de agendamento definida: reservar uma visita de serviço, solicitar um compromisso, escolher um horário de consulta, agendar uma visita a um imóvel, marcar uma reunião em filial ou entrar em uma lista de espera para um serviço específico. A empresa deve ter um processo operacional que receba a solicitação e possa confirmar, rejeitar ou reagendar.
Casos próximos são comuns:
- Um formulário de contato geral não é um bloco de reservas quando não envolve data, horário ou solicitação de compromisso. Identifique-o como consulta e declare a expectativa de resposta.
- Um botão de chamada para ação não é um bloco de reservas completo quando envia o leitor para um calendário não explicado. Adicione o contexto de reserva estável e a rota alternativa.
- Horários de funcionamento descrevem quando uma empresa opera; eles não comprovam disponibilidade de compromissos. Mantenha horários separados das vagas ao vivo.
- Registro de evento reserva presença em um evento fixo, em vez de agendar um horário de serviço individual. Use o padrão apropriado de evento ou registro.
- Uma rota de emergência não deve depender de um calendário comum. Se ajuda urgente ou emergencial estiver no escopo, informe o caminho de contato imediato correto antes de qualquer agendador.
Onde posicionar
Posicione o bloco de reservas depois que a página tiver estabelecido a adequação do serviço e antes do conteúdo promocional secundário. Em uma página de localização , coloque-o após a identidade da filial, endereço ou área de serviço, horários e a breve explicação dos serviços disponíveis. Em uma página de serviço , coloque-o após o escopo, adequação e condições principais. Uma ação compacta repetida pode aparecer perto do final, mas deve apontar para a mesma região de reserva, em vez de inicializar uma segunda instância do provedor.
Não posicione o bloco diretamente ao lado de outro formulário principal, um agendador diferente, um CTA telefônico sem explicação ou uma contagem regressiva promocional. Ações concorrentes tornam pouco claro qual rota é a autoritativa. Não o coloque dentro de uma aba, carrossel, acordeão, célula de tabela de comparação, cartão clicável ou camada de consentimento. As condições essenciais não devem ficar abaixo de um depoimento ou oferta não relacionados.
Para serviços consequenciais, posicione qualquer limitação que altere se o leitor deve agendar imediatamente antes da ação. Nunca dê a entender que selecionar um horário confirma a elegibilidade.
Anatomia
A captura identificada deve destacar estas partes:
- Título específico da ação: informa o que pode ser reservado, não apenas “Agende agora”.
- Resumo do serviço: explica a finalidade em uma frase.
- Contexto de localização: nomeia a filial, área de serviço ou formato remoto, e fuso horário.
- Informações do compromisso: mostra duração, público, condição de taxa e elegibilidade.
- Nota de preparação: informa requisitos que afetam o sucesso.
- Ação principal: usa um rótulo acessível específico.
- Região do agendador: contém horários disponíveis, validação e atribuição do provedor.
- Contexto de privacidade: identifica o tratamento de dados por terceiros.
- Expectativa de confirmação: distingue confirmação de solicitação.
- Rota alternativa: fornece uma alternativa monitorada e seus horários de funcionamento.
Exemplos de design
Cada variante carrega o mesmo contexto rastreável; apenas a localização e a complexidade da seleção ao vivo mudam.
Agendador inline
Use para um serviço e localização quando o provedor for acessível e estável. Reserve altura suficiente para evitar mudança de layout.
Agendador em diálogo ou gaveta
Use quando um calendário inline dominaria a página. Identifique o diálogo, forneça Fechar, isole o fundo e retorne o foco ao sair.
Página de reservas hospedada pelo provedor
Use quando autenticação, pagamento, coleta complexa ou confiabilidade do provedor favorecerem o site do provedor. Nomeie o destino e mantenha a alternativa visível.
Solicitação de compromisso
Use quando a equipe precisar verificar elegibilidade, deslocamento, equipamento ou disponibilidade de especialista. Solicite horários preferenciais e informe o canal de resposta e a expectativa.
Agendamento telefônico e assistido
Use quando for necessária uma conversa para triagem ou alocação segura. Torne o número selecionável e forneça horários de atendimento mais uma alternativa não verbal.
Seletor de múltiplas localizações
Use em várias filiais. Resolva a filial antes dos horários, mostre seu endereço e fuso horário e preserve a escolha até a confirmação.
Parâmetros
“Fonte” descreve de onde o renderizador obtém o valor canônico. As configurações do lado do provedor podem controlar o inventário ao vivo, mas não substituem os campos de conteúdo visíveis abaixo.
| Nome | Tipo | Obrigatório | Mín/máx | Padrão | Fonte | |
|---|---|---|---|---|---|---|
title | Texto simples | Sim | 3–10 palavras; 90 caracteres | Nenhum | Primeiro título no corpo | |
id | Identificador em minúsculas | Sim após publicação | 2–8 palavras hifenizadas; único na página | Gerado a partir do título, depois fixado | Atributo | |
variant | Enum | Não | inline, dialog, external, request, phone-first, multi-location | inline | Atributo | |
service | Texto simples | Sim | 2–12 palavras; 100 caracteres | Nenhum | Atributo | |
summary | Texto simples | Sim | 12–35 palavras; 240 caracteres | Nenhum | Primeiro parágrafo após o título | |
duration | Duração ISO 8601 mais rótulo visível | Condicional | 5 minutos–1 dia | Nenhum | Atributo e corpo | |
location | Texto simples ou ID de localização estável | Sim, a menos que totalmente remoto | 2–100 caracteres | Nenhum | Atributo e corpo | |
timezone | ID de fuso horário IANA | Condicional | Um fuso válido, como America/New_York | Fuso da localização | Atributo | |
eligibility | Texto simples ou lista curta | Condicional | 1–5 condições; 200 palavras no total | Nenhum | Corpo | |
preparation | Texto simples ou lista curta | Não | 1–5 itens; 150 palavras no total | Nenhum | Corpo | |
feeNote | Texto simples | Condicional | 5–30 palavras; 200 caracteres | Nenhum | Corpo | |
provider | Texto simples | Obrigatório para agendamento de terceiros | 2–80 caracteres | Nenhum | Atributo | |
src | URL HTTPS | Obrigatório para provedor inline, diálogo ou externo | Um destino aprovado | Nenhum | Atributo | |
ctaLabel | Texto simples | Sim | 2–8 palavras; 60 caracteres | Choose an appointment time | Atributo | |
confirmationMode | Enum | Sim | instant ou request | request | Atributo | |
confirmationText | Texto simples | Sim | 8–35 palavras; 240 caracteres | Nenhum | Corpo | |
fallbackPhone | Valor telefônico mais formatação visível | Condicional | Um número monitorado | Nenhum | Atributo e corpo | |
fallbackUrl | URL HTTPS ou relativa à raiz | Condicional | Uma rota alternativa acessível | Nenhum | Atributo | |
fallbackHours | Texto simples | Condicional | 3–20 palavras | Nenhum | Corpo | |
privacyText | Texto simples | Obrigatório quando os dados saem do site | 8–30 palavras; 220 caracteres | Nenhum | Corpo |
Pelo menos um de fallbackPhone ou fallbackUrl é obrigatório com código de terceiros. O primeiro título mapeia para title, o primeiro parágrafo para summary, e o corpo restante para dados, confirmação, privacidade e alternativa. Horários disponíveis nunca pertencem ao conteúdo autoral.
Sintaxe e exemplos de código
As três notações preservam o mesmo serviço, filial, duração, provedor, modo de confirmação e alternativa. As URLs são ilustrativas.
Diretiva portátil Markdown
:::booking-block{id=dishwasher-repair service="Dishwasher diagnosis" variant=inline duration=PT1H location=northside timezone=America/Chicago provider="Example Scheduler" src="https://scheduler.example.com/northside/dishwasher" ctaLabel="Choose an appointment time" confirmationMode=instant fallbackPhone="+15550140186"}
## Book an appliance repair visit
Choose a 60-minute dishwasher diagnosis at our Northside branch.
Available for homes within the Northside service area. A diagnostic fee may apply and will be confirmed before the visit.
Your appointment is confirmed only when you receive an email with the date, time, address, and reference number.
Scheduling is provided by Example Scheduler. If it does not load, call (555) 014-0186, Monday–Friday, 8:00 a.m.–6:00 p.m.
:::
Shortcode Hugo
Este é o contrato de adaptador pretendido, não uma afirmação de que um shortcode já existe. Ele usa apenas parâmetros nomeados.
{{< booking-block id="dishwasher-repair" service="Dishwasher diagnosis" variant="inline" duration="PT1H" location="northside" timezone="America/Chicago" provider="Example Scheduler" src="https://scheduler.example.com/northside/dishwasher" ctaLabel="Choose an appointment time" confirmationMode="instant" fallbackPhone="+15550140186" >}}
## Book an appliance repair visit
Choose a 60-minute dishwasher diagnosis at our Northside branch.
Available for homes within the Northside service area. A diagnostic fee may apply and will be confirmed before the visit.
Your appointment is confirmed only when you receive an email with the date, time, address, and reference number.
Scheduling is provided by Example Scheduler. If it does not load, call (555) 014-0186, Monday–Friday, 8:00 a.m.–6:00 p.m.
{{< /booking-block >}}
O renderizador Hugo produz conteúdo estável e alternativa no servidor, depois carrega o provedor em uma região identificada.
Bloco WordPress
<!-- wp:amicited/booking-block {"id":"dishwasher-repair","service":"Dishwasher diagnosis","variant":"inline","duration":"PT1H","location":"northside","timezone":"America/Chicago","provider":"Example Scheduler","src":"https://scheduler.example.com/northside/dishwasher","ctaLabel":"Choose an appointment time","confirmationMode":"instant","fallbackPhone":"+15550140186"} -->
<h2>Book an appliance repair visit</h2>
<p>Choose a 60-minute dishwasher diagnosis at our Northside branch.</p>
<p>Available for homes within the Northside service area. A diagnostic fee may apply and will be confirmed before the visit.</p>
<p>Your appointment is confirmed only when you receive an email with the date, time, address, and reference number.</p>
<p>Scheduling is provided by Example Scheduler. If it does not load, call <a href="tel:+15550140186">(555) 014-0186</a>, Monday–Friday, 8:00 a.m.–6:00 p.m.</p>
<!-- /wp:amicited/booking-block -->
O bloco registrado renderiza conteúdo estável através de PHP e trata o código do provedor como melhoria progressiva.
Exemplos
Bom: um compromisso com rota recuperável
Agende uma revisão de documentos fiscais de 30 minutos
O bloco nomeia a filial Downtown, fuso horário local, documentos a trazer e o fato de que a reunião revisa registros, mas não garante elegibilidade para declaração. O botão “Escolher um horário de revisão” abre um calendário. Abaixo dele, a página informa que a confirmação chega por e-mail e fornece um número de telefone monitorado com horários de atendimento caso o provedor não esteja disponível.
Isso funciona porque a adequação está clara antes da inserção de dados e o significado sobrevive sem o calendário. O agendador é responsável pela disponibilidade; a página é responsável pela verdade durável do serviço e pela recuperação.
Ruim: um iframe sem contexto
Agende agora Um iframe não identificado carrega um calendário do provedor. A filial, fuso horário, tipo de compromisso, duração, taxa, elegibilidade, status de confirmação e contato alternativo estão ausentes.
A versão ruim faz com que leitores e extratores infiram a oferta a partir da interface de terceiros. Uma interrupção deixa uma seção vazia, e uma solicitação pode ser confundida com confirmação. Corrija com um contrato de compromisso em HTML, incorporação identificada, seleções preservadas, texto de confirmação e alternativa.
Marcação Schema e acessibilidade
Um bloco de reservas não cria um requisito automático de schema. A página que o contém já pode descrever um negócio ou serviço visível com uma entidade LocalBusiness, tipo de negócio mais específico, Organization ou Service apropriados. Mantenha esses fatos consistentes com o texto da reserva, especialmente nome, localização, número de telefone, área de serviço e horários.
ReserveAction pode representar uma ação de reserva genuína quando seu destino abre a rota visível e funcional e a ação pertence com precisão à entidade descrita. Não deve implicar que um horário está disponível, que uma solicitação foi confirmada ou que todo visitante é elegível. Não publique datas de compromisso como Event, trate horários de funcionamento comuns como inventário reservável ou crie valores estruturados que a página e o sistema de agendamento não possam verificar.
A acessibilidade começa antes do carregamento. Use um título real e uma ação cujo nome acessível inclua a finalidade. Dê a um iframe um title específico, como “Escolha um compromisso de reparo de lava-louças no Northside”. Nunca use texto de placeholder como único rótulo de campo.
Usuários de teclado devem entrar, operar e sair sem bloqueio de foco. Um diálogo precisa de um nome, foco inicial, ação Fechar, isolamento de fundo e retorno de foco. A validação identifica o campo e a correção. Estados de data não podem depender apenas de cor, e atualizações de status devem ser anunciadas.
Mantenha a alternativa na ordem de leitura normal e visível sem JavaScript. O fluxo deve funcionar com zoom de 200% e larguras estreitas. Mostre o fuso horário e evite datas numéricas ambíguas.
Se o provedor falhar nos requisitos de teclado, leitor de tela, contraste, privacidade ou recuperação, ofereça uma rota assistida equivalente. CAPTCHA, pagamento e verificação de identidade também precisam de recuperação acessível.
Regras de escrita
- Escreva um título de 3–10 palavras que combine uma ação com o compromisso: “Agende um teste auditivo”, não “Agendar” ou “Comece agora”.
- Escreva um resumo de 12–35 palavras nomeando o serviço, formato, duração e localização onde esses fatos são conhecidos.
- Informe no máximo cinco condições de elegibilidade ou preparação. Resuma apenas regras que alteram decisões a partir de políticas mais longas.
- Use rótulos de ação específicos de 2–8 palavras: “Escolha um horário de consulta”, “Solicite uma visita domiciliar” ou “Ligue para agendar uma avaliação”. Evite “Enviar”, “Continuar” e “Clique aqui”.
- Diferencie confirmação instantânea de solicitação de compromisso. Nunca use “reservado” quando a aprovação da equipe ainda é necessária.
- Informe o fuso horário sempre que os leitores puderem agendar entre fusos ou o compromisso for remoto. Use uma data escrita inequívoca nas confirmações.
- Descreva as taxas antes de o leitor selecionar um horário quando uma taxa de reserva, depósito, cancelamento, diagnóstico ou não comparecimento puder ser aplicada. Não esconda um pagamento obrigatório dentro das etapas do provedor.
- Mantenha nome do serviço, duração, localização, elegibilidade, preparação essencial, comportamento de confirmação e alternativa fora do iframe ou aplicação client-side.
- Nomeie o provedor antes da transferência de dados e explique a transição sem prometer comportamento de privacidade não suportado.
- Forneça a rota alternativa, horários de atendimento, expectativa de resposta e contexto do compromisso a serem informados.
- Para agendamento com múltiplas localizações, nomeie a filial selecionada no gatilho, agendador e confirmação. Nunca reutilize um link “Agende agora” organizacional sem pré-selecionar ou exigir uma escolha explícita de localização.
- Mantenha instruções de emergência, conselhos clínicos, garantias, depoimentos, contagens regressivas de desconto, ofertas não relacionadas e um segundo formulário de lead fora do bloco de reservas.
- Não escreva afirmações estáticas de “próximo disponível” a menos que sejam geradas a partir de inventário ao vivo e identificadas com um horário de obtenção. A disponibilidade pode mudar entre rastreamento, clique e confirmação.
- Atribua um responsável e revise após alterações em horários, localizações, taxas, elegibilidade, comportamento do provedor ou política de captação.
Tipos de post que o utilizam
O array postTypes no frontmatter controla esta matriz. Inclusão significa que a página pode usar um bloco de reservas quando existir uma ação real de compromisso; não exige agendamento em todas as páginas.
| Tipo de post | Uso | Posição preferencial | Qualificação necessária |
|---|---|---|---|
| Página de localização | Recomendado quando a filial aceita compromissos | Após serviços da filial, endereço ou área de serviço e horários | Pré-selecione a filial ou exija uma escolha explícita de filial; mostre detalhes alternativos específicos da filial. |
| Página de serviço | Recomendado para serviços diretamente reserváveis | Após escopo, adequação e condições materiais | Preserve o serviço nomeado durante o agendamento e diferencie um horário confirmado de uma solicitação. |
| Perfil de filial | Condicional a uma rota de agendamento com equipe | Após identidade da filial e detalhes de acesso | Corresponda o calendário, fuso horário, telefone, conjunto de serviços e rota de confirmação àquela filial. |
| Perfil da empresa | Condicional | Após a organização e os tipos de compromisso elegíveis estarem claros | Direcione os leitores para um serviço e localização explícitos; não exponha um calendário organizacional não explicado. |
Checklist de QA
- O bloco agenda ou solicita um compromisso definido, em vez de coletar uma consulta genérica.
- O título visível nomeia o compromisso, e o rótulo da ação descreve o próximo passo do agendamento.
- Serviço, duração, localização ou área de serviço, fuso horário, elegibilidade e condições materiais de taxa estão precisos.
- Os dados estáveis do compromisso são renderizados como HTML sem depender do provedor, iframe, gerenciador de consentimento ou JavaScript.
- A disponibilidade ao vivo vem do sistema de agendamento autoritativo e não é copiada para texto estático.
- O serviço e a localização selecionados persistem desde o gatilho até o calendário, validação, confirmação e recuperação.
- A página diferencia uma confirmação instantânea de uma solicitação que a equipe deve aprovar.
- Um provedor terceiro é identificado antes da transferência de dados, e o texto de privacidade corresponde ao fluxo real.
- Falha, indisponibilidade, validação, cancelamento e reagendamento fornecem cada um uma próxima ação útil.
- Um telefone alternativo monitorado ou rota alternativa acessível permanece visível quando o widget falha.
- As instruções alternativas incluem horários de atendimento ou uma expectativa de resposta realista.
- O agendador tem um nome acessível específico e funciona com teclado, leitor de tela, toque, zoom e telas estreitas.
- O foco entra e sai de qualquer diálogo de forma previsível, e a validação não apaga escolhas previamente válidas.
- Datas e horários são inequívocos, incluem o fuso horário relevante e não dependem apenas de cor.
- Limitações de emergência ou consequenciais aparecem antes da ação e nunca dependem do agendador.
- Nenhum agendador concorrente, formulário de lead, contagem regressiva ou promoção não relacionada fica ao lado da ação principal.
- Os dados estruturados refletem fatos visíveis e verificados do negócio e serviço, sem inventar disponibilidade ou confirmação.
- O tipo de post selecionado aparece em
postTypes, e o posicionamento segue a matriz acima. - Existem um responsável e um gatilho de revisão para conteúdo, contato alternativo, integração do provedor e comportamento de confirmação.
FAQ
Um widget de reservas pode ser a única informação de agendamento em uma página?
Não. Um widget de terceiros pode falhar, exigir consentimento, bloquear rastreadores ou ser inutilizável com algumas tecnologias assistivas. Mantenha o serviço, localização, elegibilidade, preparação, rota de contato e instruções alternativas em HTML renderizado no servidor, fora do widget.
O agendador deve abrir na página ou no site do provedor?
Use um agendador inline ou modal quando for acessível, rápido e fácil de recuperar. Use um link externo claramente identificado quando o provedor funcionar de forma mais confiável em seu próprio domínio. Em ambos os casos, preserve o mesmo contexto rastreável e uma alternativa sem widget na página.
Um bloco de reservas precisa de marcação schema?
Não automaticamente. A página ao redor pode se qualificar para LocalBusiness, Service ou outro tipo relevante. Adicione ReserveAction apenas quando o alvo da ação for real, estável e representar com precisão a rota de reserva visível; nunca invente disponibilidade de compromissos ao vivo em dados estruturados.
Como uma empresa com várias localizações deve lidar com o agendamento?
Torne a localização explícita antes de o leitor entrar no fluxo de agendamento, preserve a localização escolhida em cada etapa e mostre seu endereço, fuso horário e detalhes de contato alternativos em HTML. Nunca envie todas as páginas de filiais para um calendário organizacional não filtrado.
O que deve acontecer quando não há compromissos disponíveis?
Explique a próxima rota válida sem dar a entender que a empresa está fechada: ofereça outro local, lista de espera, número de telefone, formulário de solicitação ou uma data clara para verificar novamente. Preserve o serviço e a localização selecionados para que o leitor não precise recomeçar.
Mais tutoriais nesta seção
Pronto para colocar em prática?
Verificação gratuita · Teste de 7 dias · sem cartão de crédito