How to Build a Booking System on Bubble.io: Appointments, Availability and Payments
A custom booking system built on Bubble.io for a specific service business outperforms generic booking tools because it fits the specific availability logic, the specific service types, and the specific client communication style of that business.
The Competitive Advantage
Generic booking tools (Calendly, Acuity, Square Appointments) work well for straightforward appointment booking with a single service type. They break down for businesses with complex availability logic (variable session lengths, multiple locations, multi-staff scheduling), multiple service types with different pricing, deposit requirements with balance payments, or specific client communication workflows. A custom Bubble.io booking system built for the specific business’s requirements handles all of these correctly and can be extended as the business grows.
Five Essential Data Types
Service
Fields: name, duration (minutes), price, deposit amount, description, and image. Multiple services allow the booking flow to accommodate different appointment types with different pricing and durations.
Provider (or Staff)
Fields: name, bio, services offered (list of relationships to Service), and working hours. Required for multi-staff booking systems; for solo practitioners this data type may be simplified.
Availability Slot
Fields: date, start time, end time, provider (relationship to Provider), service (relationship to Service), and status (Available, Booked, Blocked). SA uses a backend workflow that generates slots for a configurable number of days in advance based on the Provider’s working hours and existing Bookings.
Booking
Fields: client (relationship to User), provider (relationship to Provider), service (relationship to Service), date, start time, end time, status (Confirmed, Completed, Cancelled, No-Show), deposit paid (boolean), balance paid (boolean), Stripe PaymentIntent ID, and cancellation reason.
Reminder
Fields: booking (relationship to Booking), type (24-hour reminder, 2-hour reminder, post-appointment follow-up), scheduled send time, sent (boolean). Reminders are created automatically when a Booking is confirmed and processed by a scheduled backend workflow.
🔗 Related reading on sasolutionspk.com
Bubble.io Stripe Integration: The Complete Guide for SaaS Founders
How to implement deposit and full payment flows in a Bubble.io booking system using Stripe PaymentIntents.
Bubble.io Database Design: The Complete Guide for Founders in 2026
The data model principles that underpin a correctly structured booking system.
Where Most Builds Go Wrong
Availability logic
Generating accurate availability slots that reflect working hours, existing bookings, blocked times, and session duration requires a backend workflow that most first-time booking system builders underestimate in complexity. SA uses a recursive workflow approach: for each day in the scheduling window, generate slots from the start of working hours to the end, at intervals matching the shortest service duration, skipping any slots that overlap with existing confirmed bookings or blocked times.
Deposit and balance payment flow
A booking system with deposit payments requires two Stripe PaymentIntents: one for the deposit (captured immediately at booking confirmation) and one for the balance (captured at the time of the appointment or shortly before). Stripe’s manual capture feature allows the balance PaymentIntent to be authorised at booking time and captured later.
Cancellation and reschedule logic
Cancellation and reschedule workflows must handle: restoring the cancelled slot to Available status; processing refunds (full or partial, depending on the cancellation policy); notifying both the client and the provider; and, for reschedules, creating the new booking and cancelling the original in a single atomic operation to prevent double-booking.
Q: How long does it take to build a booking system on Bubble.io with SA?
A single-provider, single-service booking system with online payment, automated reminders, and client and provider dashboards typically takes 3-4 weeks and costs $6,000-10,000. A multi-provider, multi-service booking system with group sessions, deposit + balance payment flows, and a business admin dashboard takes 5-8 weeks and costs $10,000-18,000.
Q: Should I build a booking system or use a generic tool like Calendly?
Use Calendly or equivalent if your availability model is simple and your payment requirements are straightforward. Build custom on Bubble.io if: you have multiple service types with different durations and pricing; you need deposit + balance payment logic; or you want the booking system to integrate with other custom software in ways the generic tool does not support.
Q: Can the booking system be sold as a SaaS product to multiple businesses?
Yes — and this is one of SA’s most common booking system build types. A booking system built for one service business can be productised as a multi-tenant SaaS. SA has built booking SaaS products for the beauty, healthcare, and fitness verticals that are now sold to multiple businesses as a subscription.
Ready to Build Your MVP?
SA Solutions builds MVPs in weeks using Bubble.io. Start with a free audit or scope your build in 48 hours with a Discovery Sprint.