LimitedRound 2 is open. Get your first month free, no extra charge.Join the waitlist ›
Build it with AppFlight

How to build a booking app for iOS

TL;DR. A booking app is a service catalog, a real availability model that prevents double booking, and a checkout. With AppFlight you describe the flow in plain English, get native Swift, and connect Supabase so bookings sync. Real-world services can take payment through Stripe.

What a booking app needs

  • A service or resource catalog with duration and price
  • A real availability model that prevents double booking
  • A calendar and time-slot picker that respects time zones
  • Confirmation, reminders, and cancellation or reschedule
  • Accounts so a booking is tied to a person (Supabase auth)
  • A backend so availability is shared, not stuck on one phone

This is a medium build. The MVP slice is one service type, a single provider, and a confirmed booking with a reminder. Add multiple providers, deposits, and recurring slots after that works.

Core screens and data

A booking app needs a small set of screens: a service catalog, an availability calendar, a booking form, a confirmation, a client's booking history, and a provider day view. Here is what each screen does and the data behind it.

Screen What it does What it stores
Service catalog Lists services a client can book Service name, duration, price, description
Availability calendar Shows open slots for a chosen day Provider working hours, breaks, blocked times
Booking form Collects details and confirms a slot Selected slot, client name, contact info
Confirmation Confirms the booking to the client Booking id, status, created and updated times
My bookings Lets a client view, reschedule, or cancel Booking history tied to the client account
Provider day view Shows staff the day's schedule Per-provider bookings and slot assignments
Reminders Sends a reminder before the appointment Reminder time, notification token, sent status

Starter prompt

This is the plain-English prompt you paste into AppFlight to build the first version. AppFlight reads it, plans the screens, and generates native Swift you can run in the live simulator and then refine in plain language.

Build a booking app for a small service business. Clients open the app, browse a list of services with a duration and price, then see the open time slots for a chosen day. When a client picks a slot they enter their name and contact, confirm the booking, and get a confirmation screen plus a reminder notification before the appointment. Clients can view their upcoming bookings and cancel or reschedule. Store services, availability, and bookings in Supabase so two people cannot take the same slot and the provider can see the day's schedule from any device. Because clients are paying for a real-world service, add a Stripe payment step for an optional deposit at booking. Sell the app to providers as a monthly subscription that lifts the booking limit, and put that upgrade behind a RevenueCat paywall using in-app purchase.

How to build it with AppFlight

Describe it, for example: "An appointments app where a client picks a service, sees open time slots for this week, books a slot, gets a confirmation and a reminder notification, and can cancel. Providers see the day's bookings." AppFlight plans the screens, generates native SwiftUI, and runs it in a live simulator so you can try the flow immediately. Use the one-click Supabase connector for the database and auth so availability lives server-side. You iterate by asking for changes in plain language.

Monetization for a booking app

Two models are common. If you charge clients for a real-world service or a deposit, Apple allows Stripe or another payment processor, because the service is delivered in the real world. If you sell the app itself as a subscription to providers, more calendars, reminders, no booking limit, that digital upgrade goes through in-app purchase, which RevenueCat manages. Pick based on who pays: clients paying for a service use Stripe, providers paying for software use in-app purchase.

Shipping it to the App Store

When it works in the simulator, AppFlight signs the build, uploads to TestFlight so you can test real bookings on your device, then submits to the App Store with metadata and screenshots. If Apple rejects the build, AppFlight reads the reason, fixes it, and resubmits. Apple reviews every app, so a submission is not the same as an approval, but the pipeline runs without you opening Xcode.

FAQ

Do I need a backend for a booking app?

Yes, for anything beyond a single device. Availability has to be shared so two people cannot book the same slot. AppFlight connects Supabase with one click for the database and accounts.

Can a booking app take payments?

Yes. For a real-world service or a deposit, Apple allows Stripe or another processor. If you sell the app as a subscription to providers, that digital upgrade uses in-app purchase.

How long does a booking app take to build?

It is a medium build. A focused first version with one service, real availability, and reminders is realistic. Multiple providers, deposits, and recurring slots come after.

Sources

Build this app without opening Xcode.

AppFlight turns a plain-English prompt into a real native iOS app and ships it to the App Store. Round 2 is open: free for your first month.

Join the waitlist