Como criar um app de agendamentos: horários, disponibilidade, lembretes e sinais
Para criar um app de agendamentos, você precisa de quatro coisas funcionando juntas: uma lista do que pode ser agendado (serviços, salas, profissionais), regras de quando cada item está disponível, um fluxo de agendamento que só ofereça horários realmente livres e uma visão privada onde o negócio gerencia o que chegou. Um criador de apps com IA consegue gerar uma primeira versão funcional a partir de uma descrição curta em minutos; o trabalho de verdade é definir as regras — duração do horário, intervalos, cancelamentos, fusos horários — e testar se agendamentos duplos são impossíveis.
Comece decidindo o que "um agendamento" significa para você
Apps de agendamento parecem parecidos na superfície, mas são bem diferentes por dentro. Responda estas perguntas primeiro:
- O que é agendado? Um serviço (um corte de cabelo), uma pessoa (um professor particular), um recurso (uma sala de reunião, uma quadra, uma van) ou um lugar em uma sessão (uma aula de yoga com 12 vagas).
- Quanto tempo leva? Fixo por serviço, ou escolhido pelo cliente?
- Quem presta o serviço? Uma pessoa, vários profissionais com horários próprios ou ninguém (uma sala)?
- O que acontece depois do agendamento? Confirmação imediata, ou um pedido que o dono aprova?
- Há dinheiro envolvido? Gratuito, pagamento no dia, sinal antecipado ou pagamento total antecipado?
"Pedir um horário, o dono confirma por e-mail" é bem mais simples de construir do que "agendamento instantâneo com a agenda de três profissionais e sinal". As duas opções são válidas — escolha a que você realmente precisa para a versão um.
O que o app precisa
Dados
| Tabela | Campos principais |
|---|---|
| Serviços | Nome, duração, preço, intervalo depois, ativo sim/não |
| Profissionais ou recursos | Nome, quais serviços oferecem |
| Disponibilidade | Horário de trabalho semanal de cada profissional, mais exceções (feriados, fechamentos pontuais) |
| Agendamentos | Serviço, profissional, hora de início, hora de término, dados do cliente, status (pendente, confirmado, cancelado), status do pagamento |
| Clientes | Nome, e-mail, telefone, observações — opcional no início; pode ficar no próprio agendamento |
Guardar a hora de término em cada agendamento, e não só a de início, torna as verificações de sobreposição muito mais simples.
Páginas
- Pública: lista de serviços, seletor de horário, formulário de agendamento, página de confirmação e um link para cancelar ou remarcar.
- Privada (dono ou equipe): a agenda de hoje, os próximos agendamentos, uma forma de bloquear folgas e configurações de serviços e horários.
Permissões
Os clientes devem ver apenas horários livres ou ocupados — nunca os nomes de outros clientes. A equipe pode ver apenas a própria agenda; o dono vê tudo. Anote isso, porque define se você precisa de logins e papéis. Nosso guia sobre como adicionar login ao seu app cobre as opções.
As partes difíceis, e como lidar com elas
Agendamentos duplicados
O erro clássico: duas pessoas carregam a página, as duas veem 10:00 livre e as duas agendam. A correção é verificar de novo no servidor, no momento em que o agendamento é salvo, e recusá-lo se algo agora se sobrepõe. Peça isso explicitamente:
Ao salvar um agendamento, verifique novamente no servidor que nenhum agendamento confirmado ou pendente do mesmo profissional se sobrepõe ao horário pedido (incluindo o intervalo). Se houver, recuse e mostre "Esse horário acabou de ser ocupado — escolha outro."
Depois, teste com duas janelas do navegador.
Fusos horários
Guarde todos os horários em UTC e converta para exibição. Decida de qual fuso horário a página de agendamento mostra os horários — geralmente o do negócio, para serviços presenciais, e o do cliente, para chamadas online — e deixe isso indicado na página. Teste um agendamento que atravesse a mudança de horário de verão.
Intervalos, antecedência e limites
Regras comuns que vale definir desde o início: um intervalo entre atendimentos, antecedência mínima ("nenhum agendamento com menos de 2 horas de antecedência"), com quanto tempo de antecedência as pessoas podem agendar e um limite diário. Cada uma delas cabe em uma frase no prompt; deixá-las de fora significa que a IA escolhe os padrões por você.
Cancelamentos e faltas
Dê a cada confirmação um link de cancelamento com um token único, para que o cliente não precise de conta. Defina a janela de cancelamento e se os sinais são reembolsáveis, e mostre essa política antes do pagamento.
Lembretes
Lembretes por e-mail ou SMS precisam de algo que rode em uma agenda ("a cada 15 minutos, envie lembretes para agendamentos que começam em 24 horas"). Verifique como o seu criador e a sua hospedagem lidam com tarefas agendadas. Se não lidarem, use um agendador externo que chame um endpoint do seu app, ou envie o e-mail de confirmação com um convite de calendário anexado, para que a agenda do próprio cliente o lembre. Veja como enviar e-mails pelo seu app para o lado do provedor.
Sinais e pagamentos
O padrão usual com o Stripe:
- O cliente escolhe um horário; o app cria um agendamento pendente que reserva o horário por um tempo curto (digamos, 15 minutos).
- O app envia o cliente para o Stripe Checkout para pagar o sinal.
- O Stripe avisa o seu app por um webhook quando o pagamento é aprovado; o agendamento passa a confirmado.
- Se o pagamento não acontecer a tempo, o agendamento pendente expira e o horário volta a ficar livre.
A tarifa padrão do Stripe é uma porcentagem mais uma taxa fixa por pagamento com cartão aprovado, sem mensalidade (em setembro de 2026); as taxas variam por país, então confira a página de preços do Stripe para o seu. Use o modo de teste e cartões de teste até que tudo funcione. Nosso guia para adicionar pagamentos mostra passo a passo.
Um primeiro prompt que funciona
Crie um app de agendamentos para a Northside Barbers. Serviços: Corte de cabelo (30 min, US$ 25), Aparar barba (15 min, US$ 12), Corte + barba (45 min, US$ 32). Dois barbeiros, Sam e Ali, cada um trabalhando de terça a sábado, das 9:00 às 18:00. Os clientes escolhem um serviço, depois um barbeiro ou "qualquer barbeiro", e então veem apenas os horários de início livres de 15 minutos nos próximos 14 dias, e informam nome, telefone e e-mail. Salve os agendamentos em um banco de dados, com intervalo de 10 minutos depois de cada atendimento, e verifique a disponibilidade de novo ao salvar para evitar agendamentos duplicados. Mostre uma página de confirmação com link de cancelamento. O dono tem uma página privada com os agendamentos de hoje e os próximos, pode cancelar um agendamento e pode bloquear horários. Os horários estão no fuso horário local da barbearia. Design limpo, pensado primeiro para celular.
Ele nomeia os serviços, a equipe, os horários, as regras e a visão do dono — tudo o que a IA teria de adivinhar.
Etapas de construção
- Fluxo principal de agendamento primeiro. Serviços → horário → formulário → agendamento salvo → confirmação. Nada mais até que isso funcione bem em um celular.
- Visão do dono. Lista de hoje, lista de próximos, cancelar, bloquear horário.
- Proteja as páginas do dono. Adicione login antes de colocar dados reais.
- Regras. Intervalos, período de antecedência, limite para agendar, feriados.
- E-mail. Confirmação com convite de calendário e link de cancelamento.
- Sinais, se precisar, primeiro no modo de teste do Stripe.
- Teste os casos extremos. Duas janelas agendando o mesmo horário, um agendamento que cruza a meia-noite, uma data de horário de verão, um agendamento cancelado liberando o horário.
- Publique, e então faça você mesmo um agendamento real antes de compartilhar o link.
Erros comuns
- Verificar a disponibilidade só no navegador. Parece certo e ainda assim gera duplicidade.
- Guardar horários locais sem fuso horário. Funciona até os relógios mudarem.
- Mostrar os nomes dos clientes na agenda pública. Mostre apenas livre ou ocupado.
- Construir escala da equipe, pontos de fidelidade e SMS no primeiro dia. Lance o fluxo principal e depois adicione o que os clientes realmente pedem.
- Não ter como o dono bloquear horários. O primeiro dia de folga sem aviso vai gerar faltas.
Quando o Calendly (ou similar) é a escolha melhor
Se você é uma pessoa só compartilhando a sua disponibilidade para chamadas, uma ferramenta de agendamento é difícil de superar. Em setembro de 2026, o plano gratuito do Calendly cobre um tipo de evento, uma conexão de calendário e agendamentos individuais com uma página de reserva personalizável, e os planos pagos acrescentam mais tipos de evento e recursos para equipes. Ferramentas assim se conectam ao seu calendário existente de imediato, o que um app próprio precisa ser construído para fazer.
Crie o seu quando precisar de regras que essas ferramentas não suportam, de vários recursos agendáveis, da sua própria marca em todas as telas, de agendamentos ligados a outros dados (clientes, pedidos, assinaturas), ou se estiver criando um produto de agendamento para vender a outras pessoas.
Criando com o Mythex
No Mythex, você descreve o app de agendamentos no chat, ele é construído em uma pré-visualização ao vivo e adiciona um banco de dados Postgres quando os agendamentos precisam ser salvos. A página de caso de uso de agendamento na documentação sugere começar com um formulário de pedido e uma lista administrativa, e depois acrescentar o resto. Seja realista sobre o que já vem pronto e o que você mesmo conecta: o Mythex não tem sincronização de calendário, lembretes por SMS nem um produto de sinal integrado. O e-mail passa pelo seu próprio provedor, os sinais pelas suas chaves do Stripe guardadas como segredos do projeto (receita do Stripe), e as regras contra agendamentos duplicados e de fuso horário são coisas que você especifica e testa, como descrito acima.
O comando /test faz o agente clicar pelo fluxo de agendamento na pré-visualização e relatar o que quebra. Para um prompt inicial, experimente os modelos site de agendamento para barbearia ou agendador de reuniões, ou veja todos os modelos de apps.
Perguntas
Quais recursos um app de agendamentos precisa?
No mínimo: uma lista de serviços com durações, uma forma de mostrar apenas os horários livres, um formulário de agendamento, uma confirmação e uma página privada onde o negócio vê e gerencia os agendamentos. Lembretes, sinais e agendas da equipe vêm depois.
Como evito agendamentos duplicados?
Verifique a disponibilidade no servidor no momento em que o agendamento é salvo, não apenas quando a página carrega, e recuse o agendamento se o horário tiver sido ocupado nesse meio-tempo. Teste tentando agendar o mesmo horário em duas janelas do navegador.
Um app de agendamentos feito sob medida pode cobrar sinal?
Sim. A abordagem comum é enviar o cliente para uma página de checkout do Stripe para pagar o sinal e só confirmar o agendamento quando o pagamento for aprovado. Você precisa de uma conta e de chaves próprias do Stripe.
Devo criar um app de agendamentos ou usar o Calendly?
Se uma pessoa só precisa compartilhar a sua disponibilidade e nada no fluxo é incomum, uma ferramenta de agendamento como o Calendly é mais rápida e barata de manter. Crie o seu próprio quando precisar de regras próprias, vários recursos, a sua marca em todas as telas ou agendamentos ligados a outros dados que você guarda.