A marcação de consultas no WordPress
sem horários fantasma.
O OW Agenda trata da reserva online, da validação, dos lembretes e da agenda diária do profissional. Cada pedido de um visitante tem de ser confirmado por um link enviado para o seu endereço de email antes de ocupar um lugar: um robô nunca chega à tua agenda. Grátis, GPL, sem versão Pro.
Porquê mais um plugin de marcações?
No site de um consultório, um formulário de reserva ligado sem salvaguardas cria mais trabalho do que aquele que poupa. Qualquer robô preenche uma agenda pública, e quem atende o telefone passa o dia a separar as marcações reais dos pedidos que nunca existiram.
Os plugins estabelecidos funcionam, mas estão todos construídos sobre o mesmo modelo: uma versão gratuita deliberadamente limitada — um único funcionário, um único local, um punhado de serviços — e uma subscrição anual para recuperar o uso normal do software. Para um profissional que trabalha sozinho, paga-se sobretudo o direito de sair da demonstração.
O OW Agenda parte de um consultório real e de três restrições: um pedido só existe depois de confirmado por email, dois visitantes não podem reservar o mesmo horário, e a agenda tem de gerir-se de pé, entre dois pacientes, num telemóvel. O resto — diretório de clientes, convites, ICS, lembretes — decorre destas três regras.
Sem validação por email, um formulário aberto é uma agenda que os robôs preenchem à borla. Aqui o pedido fica pendente, retém o horário durante 45 minutos e desaparece sozinho se o link nunca for clicado.
Dois visitantes no mesmo horário com três segundos de intervalo: uma simples transação MySQL não coloca nenhum bloqueio de linha e regista as duas. O OW Agenda serializa a reserva com um bloqueio nomeado — o segundo recebe uma mensagem, não uma marcação duplicada.
Entre dois pacientes, ninguém abre o wp-admin num telemóvel. A gestão faz-se numa página do teu site protegida por autenticação: vista do dia, pedidos pendentes, reagendamento, estados feito / faltou, em poucos toques de polegar.
O que muda concretamente
Sem slogans. Eis as decisões técnicas que distinguem este produto.
O shortcode [ow_agenda] mostra os próximos 14 dias disponíveis e, a seguir, as horas livres: escolha do dia, do horário, formulário curto (nome, telefone, email, mensagem) e caixa de consentimento RGPD. Defines a granularidade, a duração da consulta, o intervalo entre duas marcações, a antecedência mínima e o horizonte de marcação. Qualquer evento da tua agenda — reserva web, marcação telefónica introduzida à mão, horário bloqueado — retira o seu período das disponibilidades.
Um pedido de visitante fica por verificar enquanto o link recebido por email não for clicado. Retém o horário durante 45 minutos e é depois purgado automaticamente. A montante, o campo-armadilha e o carimbo temporal do formulário são obrigatórios — omiti-los já não desativa nada —, o quota horário é contado por endereço IPv4 e por prefixo /64 em IPv6, e um limite máximo trava os pedidos não validados no mesmo dia.
O email de notificação contém dois botões, Confirmar e Recusar, cujos links são assinados em HMAC-SHA256: decides num toque, sem abrir o WordPress nem iniciar sessão. A validação manual é o modo recomendado; a confirmação automática continua disponível para as atividades que não têm nada a arbitrar.
O shortcode [ow_agenda_admin] cria uma página «Agenda» no teu site, protegida por autenticação e por uma capacidade dedicada: vista do dia, pedidos pendentes, adição de uma marcação feita por telefone, bloqueio de horários, reagendamento, estados feito e faltou. Adicionada ao ecrã principal do teu telemóvel, comporta-se como uma aplicação.
Pesquisa, criação, edição e eliminação de fichas de clientes, alimentadas automaticamente pelas marcações validadas. Para uma sessão de acompanhamento, um link privado nominativo deixa o cliente escolher ele próprio a data, num serviço e numa duração que definiste: o convite expira, é consumido uma única vez e volta a ficar utilizável se a marcação for anulada.
Emails HTML cuidados em cada etapa, com um ficheiro ICS em anexo: o teu cliente acrescenta a marcação ao calendário do telemóvel num gesto, um reagendamento atualiza a entrada e uma anulação elimina-a. O lembrete da véspera parte numa janela deslizante de 12 a 36 horas e recupera o atraso na execução seguinte; a tarefa horária reagenda-se sozinha se desaparecer.
Face às alternativas
Dados verificáveis. Marcar apenas o que existe realmente na concorrência.
| Critério | OW Agenda | Amelia | Bookly | Simply Schedule Appointments |
|---|---|---|---|---|
| Modelo de negócio | Gratuito, GPL-2.0 | Freemium (Pro pago) | Freemium (Pro pago) | Freemium (Pro pago) |
| Limites da versão gratuita | Nenhum: está tudo incluído | Lite: 1 funcionário, 1 local | 5 serviços, 1 funcionário | Funcionalidades de base |
| Chave de licença a ativar | Nenhuma | Para a versão Pro | Para a versão Pro | Para a versão Pro |
| Duplo opt-in por email antes de ocupar o horário | Ativado por defeito | Não anunciado | Não anunciado | Não anunciado |
| Confirmar / Recusar a partir do email, sem sessão iniciada | Links assinados HMAC-SHA256 | Sim | Não anunciado | Não anunciado |
| Ficheiro ICS anexado aos emails do cliente | REQUEST, atualizações e CANCEL | |||
| Anonimização automática das marcações passadas | Incluída, prazo configurável | Não anunciado | Não anunciado | Não anunciado |
| Gestão diária | Página do site, mobile-first | Back-office WordPress | Back-office WordPress | Back-office WordPress |
Três formas de integrar um formulário
Sem page builder proprietário imposto. Escolha a abordagem que se adequa ao seu stack.
[ow_agenda]
// La page « Prendre rendez-vous » est créée automatiquement à l'activation.
// Le même shortcode sert aux invitations de séance : le lien privé envoyé
// à un client existant pointe vers cette page avec son jeton en paramètre.
//
// https://ton-site.be/prendre-rendez-vous/?owag_invite=<jeton>Dúvidas razoáveis, respostas diretas
Sim. Tudo o que consta da tua agenda ocupa o tempo que leva: uma reserva web, uma marcação introduzida à mão depois de uma chamada, um período bloqueado para uma reunião. O cálculo das disponibilidades parte do teu horário de funcionamento, retira esses períodos, aplica a duração do serviço, o intervalo entre duas marcações, a antecedência mínima antes da reserva e o horizonte máximo. Um horário apresentado é um horário realmente livre.
Com um pedido que não existe enquanto não for confirmado. O visitante recebe um link de validação; sem clique, o seu pedido retém o horário durante 45 minutos e é depois purgado. A isto juntam-se um campo-armadilha e um carimbo temporal agora obrigatórios — um envio que os omita é recusado em vez de passar sem controlo —, um quota horário por endereço IP (agregado por prefixo /64 em IPv6, onde de outro modo uma única máquina dispõe de milhares de milhões de endereços) e um limite de pedidos não validados por dia, para que um mesmo visitante não possa congelar toda a tua agenda.
Só uma reserva é concluída. A secção crítica é serializada por um bloqueio nomeado do MySQL: a verificação de disponibilidade e a escrita fazem-se sob bloqueio, algo que uma simples transação não garantia — uma leitura simples não coloca nenhum bloqueio de linha em REPEATABLE READ. O nome do bloqueio deriva da base de dados e do prefixo das tabelas, para que dois sites do mesmo alojamento partilhado não se bloqueiem mutuamente. O segundo visitante é convidado a escolher outro horário.
Sim, pelo link presente nos seus emails, até ao prazo de aviso prévio que definires (24 horas por defeito); depois disso, a página convida-o a telefonar-te. A anulação envia um ficheiro ICS de cancelamento que retira o evento do calendário dele e, se a marcação vinha de um convite privado, este volta a ficar utilizável em vez de continuar definitivamente consumido.
Abre a página «Agenda» do teu site no telemóvel, inicia sessão e usa «Adicionar ao ecrã principal». A interface passa então a comportar-se como uma aplicação: dia em curso, pedidos a validar, adição de uma marcação telefónica, bloqueio de um horário, reagendamento, estados feito e faltou. Sem instalação, sem loja de aplicações e sem nada que saia do teu alojamento.
Sim. Desde a 1.3.1, todas as cadeias visíveis — definições, páginas de reserva e de anulação, mensagens da API, modelos de email e interface JavaScript — passam pelo domínio de tradução ow-agenda, com o inglês como língua de origem. O modelo languages/ow-agenda.pot é fornecido aos tradutores, e uma tradução francesa completa foi produzida e submetida ao translate.wordpress.org; as restantes línguas seguem pela mesma via.
Nenhuma versão Pro, nenhuma chave de licença.
O OW Agenda é publicado sob licença GPL-2.0. Tudo o que esta página descreve está no .zip que descarregas: nenhuma funcionalidade reservada, nenhuma subscrição, nenhum limite ao número de marcações, de funcionários ou de serviços.
- Está tudo incluído: reserva online, duplo opt-in, convites de sessão, diretório de clientes, emails com ICS e lembretes.
- O .zip descarrega-se em optionweb.dev. O plugin não está publicado no wordpress.org: instala-o em Plugins → Adicionar novo → Carregar plugin.
- Nenhum serviço terceiro, nenhuma verificação de licença, nenhum rastreador: os contactos dos teus clientes ficam no teu alojamento.
- O código está sob GPL-2.0, legível e modificável: podes auditá-lo, adaptá-lo e fazê-lo evoluir, connosco ou sem nós.