Cómo crear una app de reservas: huecos, disponibilidad, recordatorios y depósitos
Para crear una app de reservas necesitas cuatro cosas que funcionen juntas: una lista de lo que se puede reservar (servicios, salas, personal), reglas sobre cuándo está disponible cada cosa, un flujo de reserva que solo ofrezca huecos realmente libres y una vista privada donde el negocio gestione lo que entra. Un creador de apps con IA puede producir una primera versión funcional a partir de una descripción breve en minutos; el trabajo real está en decidir las reglas —duración de los huecos, márgenes, cancelaciones, zonas horarias— y en comprobar que las dobles reservas son imposibles.
Empieza decidiendo qué significa «una reserva» para ti
Las apps de reservas se parecen en la superficie pero difieren mucho por dentro. Responde primero a estas preguntas:
- ¿Qué se reserva? Un servicio (un corte de pelo), una persona (un profesor particular), un recurso (una sala de reuniones, una pista, una furgoneta) o una plaza en una sesión (una clase de yoga con 12 plazas).
- ¿Cuánto dura? ¿Fija por servicio o la elige el cliente?
- ¿Quién lo presta? Una persona, varios empleados con su propio horario, o nadie (una sala).
- ¿Qué pasa después de reservar? ¿Confirmación inmediata o una solicitud que el propietario aprueba?
- ¿Hay dinero de por medio? Gratis, pago en el momento, depósito por adelantado o pago completo por adelantado.
«Solicitar una hora; el propietario confirma por email» es mucho más sencillo de construir que «reserva instantánea contra tres calendarios de personal con depósitos». Ambas opciones son válidas: elige la que de verdad necesitas para la primera versión.
Qué necesita la app
Datos
| Tabla | Campos clave |
|---|---|
| Servicios | Nombre, duración, precio, margen posterior, activo sí/no |
| Personal o recursos | Nombre, qué servicios ofrecen |
| Disponibilidad | Horario laboral semanal por persona, más excepciones (festivos, cierres puntuales) |
| Reservas | Servicio, personal, hora de inicio, hora de fin, datos del cliente, estado (pendiente, confirmada, cancelada), estado del pago |
| Clientes | Nombre, email, teléfono, notas; opcional al principio, puede vivir dentro de la reserva |
Guardar la hora de fin en cada reserva, no solo la de inicio, simplifica mucho las comprobaciones de solapamiento.
Páginas
- Pública: lista de servicios, selector de huecos, formulario de reserva, página de confirmación y un enlace para cancelar o cambiar la cita.
- Privada (propietario o personal): agenda de hoy, próximas reservas, una forma de bloquear tiempo libre y ajustes de servicios y horarios.
Permisos
Los clientes solo deben ver huecos libres u ocupados, nunca los nombres de otros clientes. El personal quizá solo vea su propia agenda; el propietario lo ve todo. Anótalo, porque eso decide si necesitas inicios de sesión y roles. Nuestra guía sobre cómo añadir inicio de sesión a tu app cubre las opciones.
Las partes difíciles, y cómo abordarlas
Dobles reservas
El error clásico: dos personas cargan la página, ambas ven las 10:00 libres y ambas reservan. La solución es volver a comprobar en el servidor en el momento de guardar la reserva y rechazarla si algo ahora se solapa. Pídelo explícitamente:
Al guardar una reserva, vuelve a comprobar en el servidor que ninguna reserva confirmada o pendiente de la misma persona se solapa con la hora solicitada (incluido el margen). Si hay alguna, rechaza la reserva y muestra «Esa hora acaba de ocuparse; elige otra, por favor».
Después pruébalo con dos ventanas del navegador.
Zonas horarias
Guarda cada hora en UTC y conviértela para mostrarla. Decide de qué zona horaria es la página de reservas —normalmente la del negocio para servicios presenciales, y la del cliente para llamadas online— y indícalo en la página. Prueba una reserva a través de un cambio de hora de verano.
Márgenes, antelación y límites
Reglas habituales que conviene decidir de antemano: un margen entre citas, la antelación mínima («no reservas con menos de 2 horas de antelación»), con cuánta antelación se puede reservar y un límite diario. Cada una cabe en una frase del prompt; si las omites, la IA elegirá valores por defecto por ti.
Cancelaciones y no presentados
Da a cada confirmación un enlace de cancelación con un token único, para que los clientes no necesiten una cuenta. Decide cuál es el plazo de cancelación y si los depósitos son reembolsables, y muestra esa política antes del pago.
Recordatorios
Los recordatorios por email o SMS necesitan algo que se ejecute de forma programada («cada 15 minutos, envía recordatorios para las reservas que empiecen en 24 horas»). Comprueba cómo gestionan las tareas programadas tu creador y tu alojamiento. Si no lo hacen, usa un programador externo que llame a un endpoint de tu app, o envía el email de confirmación con una invitación de calendario adjunta para que el propio calendario del cliente le recuerde la cita. Consulta cómo enviar emails desde tu app para la parte del proveedor.
Depósitos y pagos
El patrón habitual con Stripe:
- El cliente elige un hueco; la app crea una reserva pendiente que retiene el hueco durante un tiempo breve (por ejemplo, 15 minutos).
- La app lo envía a Stripe Checkout para pagar el depósito.
- Stripe avisa a tu app mediante un webhook cuando el pago se completa; la reserva pasa a confirmada.
- Si el pago no llega a tiempo, la reserva pendiente caduca y el hueco vuelve a quedar libre.
La tarifa estándar de Stripe es un porcentaje más una cuota fija por cada pago con tarjeta exitoso, sin cuota mensual (a septiembre de 2026); las tarifas varían según el país, así que consulta la página de precios de Stripe de tu país. Usa el modo de pruebas y tarjetas de prueba hasta que todo funcione. Nuestra guía para añadir pagos lo explica paso a paso.
Un primer prompt que funciona
Crea una app de reservas para Northside Barbers. Servicios: corte de pelo (30 min, $25), arreglo de barba (15 min, $12), corte más barba (45 min, $32). Dos barberos, Sam y Ali, con horario de martes a sábado de 9:00 a 18:00. El cliente elige un servicio, luego un barbero o «cualquier barbero», y después solo ve las horas de inicio libres de 15 minutos durante los próximos 14 días, e introduce nombre, teléfono y email. Guarda las reservas en una base de datos, con un margen de 10 minutos después de cada cita, y vuelve a comprobar la disponibilidad al guardar para evitar dobles reservas. Muestra una página de confirmación con un enlace para cancelar. El propietario tiene una página privada con las reservas de hoy y las próximas, puede cancelar una reserva y bloquear tiempo. Las horas están en la zona horaria local de la barbería. Diseño limpio, pensado primero para el móvil.
El prompt nombra los servicios, el personal, los horarios, las reglas y la vista del propietario: todo lo que la IA tendría que adivinar si no.
Pasos de construcción
- Primero el flujo de reserva básico. Servicios → hueco → formulario → reserva guardada → confirmación. Nada más hasta que esto funcione bien en el móvil.
- Vista del propietario. Lista de hoy, lista de próximas, cancelar, bloquear tiempo.
- Protege las páginas del propietario. Añade inicio de sesión antes de meter datos reales.
- Reglas. Márgenes, plazo de antelación, horizonte de reserva, festivos.
- Email. Confirmación con invitación de calendario y enlace de cancelación.
- Depósitos, si los necesitas, primero en el modo de pruebas de Stripe.
- Prueba los casos límite. Dos ventanas reservando el mismo hueco, una reserva que cruza la medianoche, una fecha de cambio de hora, una reserva cancelada que libera su hueco.
- Publica y haz tú mismo una reserva real antes de compartir el enlace.
Errores comunes
- Comprobar la disponibilidad solo en el navegador. Parece correcto y aun así genera dobles reservas.
- Guardar horas locales sin zona horaria. Funciona hasta que cambian los relojes.
- Mostrar los nombres de los clientes en el calendario público. Muestra solo libre u ocupado.
- Construir la gestión de personal, los puntos de fidelidad y los SMS el primer día. Lanza el flujo básico y luego añade lo que los clientes pidan de verdad.
- No dar al propietario una forma de bloquear tiempo. El primer día de baja generará ausencias.
Cuándo es mejor Calendly (o similar)
Si eres una sola persona que comparte su disponibilidad para llamadas, una herramienta de citas es difícil de superar. A septiembre de 2026, el plan gratuito de Calendly incluye un tipo de evento, una conexión de calendario y citas individuales con una página de reservas personalizable; los planes de pago añaden más tipos de evento y funciones de equipo. Herramientas así se conectan a tu calendario existente de serie, algo que una app a medida tiene que construirse para hacer.
Crea la tuya cuando necesites reglas que esas herramientas no soportan, varios recursos reservables, tu propia marca en todas partes, reservas conectadas a otros datos (clientes, pedidos, membresías) o si vas a vender una herramienta de reservas a otros.
Crear la app con Mythex
En Mythex describes la app de reservas en el chat, la construye en una vista previa en directo y añade una base de datos Postgres cuando hay que guardar reservas. La guía de páginas de reservas de la documentación sugiere empezar con un formulario de solicitud y una lista de administración, y añadir el resto después. Ten claro qué viene integrado y qué conectas tú: Mythex no tiene sincronización de calendarios, recordatorios por SMS ni un producto de depósitos. El email pasa por tu propio proveedor, los depósitos por tus propias claves de Stripe guardadas como secretos del proyecto (receta de Stripe), y las reglas de dobles reservas y zonas horarias las especificas y pruebas tú, como se ha explicado arriba.
El comando /test hace que el agente recorra el flujo de reserva en la vista previa e informe de lo que falla. Para un prompt inicial, prueba las plantillas de web de reservas para barbería o reservas de reuniones, o explora todas las plantillas de apps.
Preguntas
¿Qué funciones necesita una app de reservas?
Como mínimo: una lista de servicios con su duración, una forma de mostrar solo los huecos libres, un formulario de reserva, una confirmación y una página privada donde el negocio ve y gestiona las reservas. Después vienen los recordatorios, los depósitos y los calendarios del personal.
¿Cómo evito las dobles reservas?
Comprueba la disponibilidad en el servidor en el momento de guardar la reserva, no solo al cargar la página, y rechaza la reserva si el hueco se ha ocupado entretanto. Pruébalo intentando reservar el mismo hueco desde dos ventanas del navegador.
¿Puede una app de reservas hecha a medida cobrar depósitos?
Sí. El enfoque habitual es enviar al cliente a una página de Stripe Checkout para pagar el depósito y confirmar la reserva solo cuando el pago se completa. Necesitas tu propia cuenta de Stripe y tus propias claves.
¿Debo crear una app de reservas o usar Calendly?
Si una sola persona necesita compartir su disponibilidad y nada del flujo es inusual, una herramienta de citas como Calendly es más rápida y barata de mantener. Crea la tuya cuando necesites reglas propias, varios recursos, tu marca en todas partes, o reservas conectadas con otros datos que guardas.