Build a booking and scheduling app
By The Vorx Team
Booking apps look simple and hide a lot: availability windows, time zones, double-booking, cancellations, reminders. Almost all of the work is in the cases where two people want the same thing at the same time.
Describe the booking flow
Start with who books what, and from whom. A clear first prompt names the service, the provider and the slot:
Build a booking app for a consulting business. Visitors pick a consultant, see their open time slots for the week, choose one, and book it with their name and email. Booked slots disappear from availability.
Vorx models services, providers, availability and bookings, then builds a public booking page and an internal calendar for staff.
Model availability, not just appointments
The heart of a scheduler is what's free, not only what's taken:
- Providers — the people or resources being booked
- Availability — working hours and any blocked-off time
- Services — what's booked, and how long each takes
- Bookings — a slot, a customer and a status
Then tighten the rules: "Slots are 30 minutes with a 15-minute buffer between them", or "Nobody can book less than two hours in advance."
Say the time zone out loud while you're at it. A booking app that quietly assumes everyone is in one place is the classic way to lose an afternoon — "all times are UK time, and show the visitor's local time alongside" costs one sentence now.
Prevent double-booking
This is the failure everyone remembers, so make it explicit and test it hard:
If two people try to grab the same slot at the same time, only the first booking succeeds and the second person sees the slot is gone.
Availability updates in realtime across every open booking page, so a slot taken on one device disappears on the others. Open two preview windows and race them — this is the one behaviour worth proving rather than assuming.
Add confirmations and reminders
A booking nobody remembers is a no-show.
Send the customer a confirmation email when they book, and a reminder the day before. Let them cancel or reschedule from a link in the email.
The reminder is a scheduled job — recurring work that runs on a timer rather than a click. You can confirm it actually fired under Settings → Dev Logs, which answers the first question when someone says a reminder never arrived.
Cancellations should free the slot again, so say so: "When a booking is cancelled, put the slot back on the calendar."
Test the unhappy paths — cancellations, reschedules and last-minute grabs — before you test the happy one.
Give staff a control view
Customers see a clean booking page; your team needs the full picture.
Add a staff calendar showing all bookings by day and week, with a way to block off time and add a walk-in manually.
Vorx builds the internal view against the same data, so a manual block immediately closes that slot for online booking. Refine it by describing what you want: colour-coded services, a daily list, a per-provider filter.
Before you go live
If you're sending confirmation emails through a provider, check you're not still on a test key — secrets are set per project and stay in use once published. Swap them under Settings → Cloud → Secrets, then publish and make one real booking yourself.
In the docs: Scheduled jobs and Your data model.