Guías

Cómo crear una app de reservas: horarios, 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 franjas realmente libres y una vista privada donde el negocio gestiona lo que llega. 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 las citas, márgenes, cancelaciones, zonas horarias) y en comprobar que las dobles reservas sean 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 sus propios horarios 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 total anticipado.

"Solicitar una hora, el propietario confirma por correo" 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 realmente necesitas para la primera versión.

Lo que necesita la app

Datos

TablaCampos clave
ServiciosNombre, duración, precio, margen posterior, activo sí/no
Personal o recursosNombre, qué servicios ofrecen
DisponibilidadHorario semanal de cada persona, más excepciones (festivos, cierres puntuales)
ReservasServicio, personal, hora de inicio, hora de fin, datos del cliente, estado (pendiente, confirmada, cancelada), estado del pago
ClientesNombre, correo, teléfono, notas; opcional al principio, puede estar 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úblicas: lista de servicios, selector de franjas, formulario de reserva, página de confirmación y un enlace para cancelar o cambiar la cita.
  • Privadas (propietario o personal): agenda de hoy, próximas reservas, una forma de bloquear días libres y ajustes de servicios y horarios.

Permisos

Los clientes solo deben ver franjas libres u ocupadas, nunca los nombres de otros clientes. El personal puede ver solo su propia agenda; el propietario lo ve todo. Anótalo, porque determina si necesitas inicios de sesión y roles. Nuestra guía sobre cómo añadir inicio de sesión a tu app explica 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 se solapa ahora. Pídelo explícitamente:

Al guardar una reserva, vuelve a comprobar en el servidor que ninguna reserva confirmada o pendiente del mismo miembro del personal se solape con la hora solicitada (incluido el margen). Si hay una, recházala y muestra "Esa hora acaba de ocuparse; elige otra".

Luego 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 en línea, y etiquétala en la página. Prueba una reserva a través de un cambio de horario de verano.

Márgenes, antelación y límites

Reglas comunes que conviene decidir de antemano: un margen entre citas, antelación mínima ("no reservas con menos de 2 horas"), con cuánta antelación se puede reservar y un tope diario. Cada una es una frase en un prompt; si las omites, la IA elegirá valores por defecto por ti.

Cancelaciones y ausencias

Dale a cada confirmación un enlace de cancelación con un token único para que los clientes no necesiten cuenta. Decide el plazo de cancelación y si los depósitos son reembolsables, y muestra esa política antes del pago.

Recordatorios

Los correos o mensajes de recordatorio necesitan algo que se ejecute según un calendario ("cada 15 minutos, envía recordatorios de las reservas que empiezan en 24 horas"). Comprueba cómo gestionan tu creador y tu alojamiento las tareas programadas. Si no lo hacen, usa un programador externo que llame a un endpoint de tu app, o envía el correo 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 correos desde tu app para la parte del proveedor.

Depósitos y pagos

El patrón habitual con Stripe:

  1. El cliente elige una franja; la app crea una reserva pendiente que retiene la franja durante un tiempo breve (por ejemplo 15 minutos).
  2. La app lo envía a Stripe Checkout para pagar el depósito.
  3. Stripe avisa a tu app mediante un webhook cuando el pago se completa; la reserva pasa a confirmada.
  4. Si el pago no llega a tiempo, la reserva pendiente caduca y la franja 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 para el tuyo. Usa el modo de prueba y las 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 (30 min, $25), arreglo de barba (15 min, $12), corte + barba (45 min, $32). Dos barberos, Sam y Ali, que trabajan de martes a sábado de 9:00 a 18:00. Los clientes eligen un servicio, luego un barbero o "cualquier barbero", y ven solo las horas de inicio libres de 15 minutos durante los próximos 14 días, e introducen nombre, teléfono y correo. 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 de cancelación. 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 y pensado primero para el móvil.

Nombra los servicios, el personal, los horarios, las reglas y la vista del propietario: todo lo que la IA tendría que adivinar.

Pasos de construcción

  1. Primero el flujo básico de reserva. Servicios → franja → formulario → reserva guardada → confirmación. Nada más hasta que esto funcione en el móvil.
  2. Vista del propietario. Lista de hoy, lista de próximas, cancelar, bloquear tiempo.
  3. Protege las páginas del propietario. Añade inicio de sesión antes de meter datos reales.
  4. Reglas. Márgenes, periodo de antelación, horizonte de reservas, festivos.
  5. Correo electrónico. Confirmación con invitación de calendario y enlace de cancelación.
  6. Depósitos, si los necesitas, primero en el modo de prueba de Stripe.
  7. Prueba los casos límite. Dos ventanas reservando la misma franja, una reserva que cruza medianoche, una fecha de cambio de horario de verano, una reserva cancelada que libera su franja.
  8. Publica y, antes de compartir el enlace, haz tú una reserva real.

Errores comunes

  • Comprobar la disponibilidad solo en el navegador. Parece correcto y aun así duplica 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.
  • Crear desde el primer día la programación del personal, los puntos de fidelidad y los SMS. Lanza el flujo básico y luego añade lo que los clientes piden de verdad.
  • No dar al propietario una forma de bloquear tiempo. El primer día de baja por enfermedad generará ausencias.

Cuándo es mejor Calendly (u otra similar)

Si eres una 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 cubre un tipo de evento, una conexión de calendario y citas uno a uno con una página de reservas personalizable, y los planes de pago añaden más tipos de evento y funciones de equipo. Herramientas así se conectan a tu calendario existente de forma nativa, 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 todo el proceso, reservas conectadas con otros datos (clientes, pedidos, membresías) o si vas a vender un producto de reservas a otros.

Crearla 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 las reservas. El caso de uso de página 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. Sé realista sobre lo que viene integrado y lo que conectas tú: Mythex no tiene sincronización de calendarios, recordatorios por SMS ni un producto de depósitos integrado. El correo se envía a través de tu propio proveedor, los depósitos a través de tus propias claves de Stripe guardadas como secretos del proyecto (receta de Stripe), y las reglas contra dobles reservas y de zona horaria son cosas que tú especificas y pruebas, como se ha explicado antes.

El comando /test hace que el agente recorra el flujo de reserva en la vista previa e informe de lo que falla. Como prompt inicial, prueba las plantillas de web de reservas para barbería o reservador 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 las franjas libres, un formulario de reserva, una confirmación y una página privada donde el negocio ve y gestiona las reservas. Los recordatorios, los depósitos y los calendarios del personal vienen después.

¿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 mientras tanto la franja se ha ocupado. Pruébalo intentando reservar la misma franja 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 el flujo no tiene nada 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 todo el proceso o reservas vinculadas a otros datos que guardas.

Mythex · Pricing · Crea lo que quieras con IA · Plantillas de sitios web y apps · Mythex comparado · Glosario para crear apps con IA · Herramientas gratis para crear apps con IA · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)