How to build a booking app for iPhone: 6 steps (2026)

Build a booking app for appointments or classes: the data model, sign-in, reminders, and how Apple lets you take payment for real-world services.

By Sigsten Gustavii· · Updated · 10 min read

To build a booking app, list what people can book and when you are open, decide who signs in and what staff see, describe it to an AI app builder like Borel, try booking the same slot twice to prove it is refused, then test it with a few regulars before you publish it on the App Store.

Two kinds of booking app
KindWho booksWhat makes it work
AppointmentsOne client, one staff member, one timeService lengths, each person's hours, no double booking
ClassesMany people, one session, limited placesA timetable, places left, a waiting list

Salons, physios, tutors, dog groomers and driving instructors run on appointments. Yoga studios, climbing gyms, cooking schools and swim clubs run on classes. Many businesses need both: a studio sells group classes and private sessions. Decide which you have before you describe anything, because the data underneath is different.

If you just want the short version for a small business, the booking app page has a ready prompt and the screens Borel makes. This guide goes deeper: the data model, accounts, payments and Apple's rules.

What a booking app needs

The parts of a booking app, and how Borel builds them
PartWhat it doesHow Borel builds it
Services or classesWhat can be booked, with length and priceA table everyone can read
Free timesOpen slots worked out from hours and existing bookingsTaken slots never show
BookingWho booked what, and whenGuarded in the cloud so a slot is booked once
My bookingsA client's upcoming visits, with cancelEach client sees only their own
Staff viewToday's bookings for each staff memberA staff role with its own screens
Reminders"Your appointment is tomorrow at 10:30"Notifications scheduled on the client's phone
CalendarThe booking in the iPhone's own CalendarApple's EventKit, with permission to add
DirectionsHow to get thereApple Maps

The data model behind a booking app

The data model is the list of things the app keeps and how they connect. Get it right and every screen falls into place. For appointments, it looks like this:

The data an appointment app keeps
ThingFieldsWho can see it
ServiceName, minutes, price, descriptionEveryone, even before signing in
Staff memberName, photo, working hours, services they doEveryone
BookingService, staff member, start time, client, statusThe client who made it, and staff
Time offStaff member, from, to, reasonStaff only
ClientName, email, phoneThe client, and staff

For classes, swap Staff member and Booking for Class (name, teacher, start, length, places) and Place (class, client). A class shows how many places are left: Borel can keep a running count of the places taken on each class in the database, so the timetable reads it in one go.

The one rule a booking app must never break is a double booking. Say "a slot can only be booked once" and Borel makes the staff member and start time unique together in the app's database, so the database itself refuses a second booking for the same slot, even if two people tap Book in the same second. Screens can hide taken slots, but the database is what makes it safe.

Time zones and lengths

Store every time with its time zone, and work out free slots from a service's length plus any gap you want between visits. Ask for it plainly: "a 15-minute gap after every colour appointment". Borel writes the rule into the code; you check it in the simulator.

Accounts: who signs in, and what they see

Apple's Guideline 5.1.1(v) asks that people can use an app without a login when it has no significant account features. So let anyone browse services, prices and free times, and ask for sign-in only at Book.

  • Clients sign in with email and password, see their own bookings and can cancel within your rules.
  • Staff sign in to a separate view: their day, the client's name and service, and buttons to move or cancel.
  • The owner sets services, prices, hours and time off, and sees every booking.

Accounts and data come from the app's own cloud, which Borel runs, so there is no server or database for you to set up. Every Borel app with accounts lets people delete their account in the app, which Apple also requires under 5.1.1(v).

Payments: what Apple allows for real-world services

This is where booking apps differ from most apps. Apple's in-app purchase is for digital things used inside the app. A haircut, a massage or a spin class happens in the real world, so Guideline 3.1.3(e) says you must use a payment method other than in-app purchase for it.

How to take payment in a booking app, by what is sold
What is bookedHow to take paymentApple's guideline
An in-person appointment or classIn person, or card checkout3.1.3(e): not in-app purchase
A live online session between two people, like tutoringCard checkout or in-app purchase3.1.3(d): other methods allowed
A live online class for a groupIn-app purchase3.1.3(d): one-to-many must use it
Recorded videos or premium features in the appIn-app purchase3.1.1

Most small businesses take payment at the visit and use the app only to book. If you want a deposit or full payment at booking, use a card provider such as Stripe: save your key in Borel under Tools, in Keys, and Borel calls Stripe from its own server, so the key never sits inside the app. The payments guide walks through it.

If you also sell something digital, such as a library of recorded classes, Borel builds Apple's in-app purchase for that part and creates the product at Apple when you publish.

Reminders, calendar and maps

A booking is only useful if the client turns up. A Borel booking app schedules a reminder on the client's phone, for example the day before and an hour before, so it fires even with the app closed. An Add to Calendar button puts the visit in the iPhone's Calendar, and your address opens in Apple Maps with directions.

Reminders are scheduled by the phone itself, so they arrive without a server. Staff see new bookings in their day view whenever they open it.

Design a booking flow people finish

Every extra tap loses someone. Keep the flow short:

  1. Service, then time. Pick what you want, then see the next free times for it, soonest at the top.
  2. A clear week. Seven days across the top, free times as big buttons below.
  3. "Any staff member" as the default. Let people pick a person, but don't make them.
  4. One confirm screen. Service, time, person, price and address, then Book.
  5. Rebook in one tap. My bookings shows the last visit with Book again.

For classes, the timetable is the home screen: today's classes, places left, and a Join waiting list button when a class is full.

App Store rules for booking apps

Apple's rules that apply to a booking app
GuidelineWhat Apple asksWhat to do
3.1.3(e) Goods and services outside the appNo in-app purchase for real-world servicesTake payment in person or with a card provider
3.1.3(d) Person-to-person servicesGroup live classes online use in-app purchaseCheck what you sell
4.2 Minimum functionalityMore than a repackaged websiteNative booking, reminders, calendar and maps
5.1.1(v) Account sign-inBrowse without a login; delete account in the appSign in only at Book
2.1(a) CompletenessA demo account if the app has a loginGive App Review a client and a staff login

Fill in real services and opening hours before review. An app with empty lists or placeholder prices looks unfinished to App Review.

What a booking app costs

The cost of a booking app built with Borel
ItemCostNotes
Borel Free$05 credits a day to build it and try it in your browser
Borel ProFrom $20 a monthInstall it on your iPhone with Companion and publish it
Apple Developer Program$99 a yearPaid to Apple; the app is listed under your name or business
Running the appPay as you goAccounts and bookings in the app's cloud, from your credits
Card paymentsYour provider's feesOnly if you take payment at booking

If you already pay a booking platform every month, put its yearly cost next to this table. Once the app is published, it stays yours. See pricing for every tier.

Booking platform or your own app?

  • A booking platform suits you if you want a ready web page, card payments and marketplace listings today, and don't mind its branding and monthly fee.
  • Your own app with Borel suits you if you want your name on the App Store, your own rules, your own clients' data and native reminders, without a developer.
  • Both works too: keep the platform for walk-in discovery and give regulars your own app.

How to build a booking app with Borel, step by step

Step 1: Write down services, hours and rules

List every service with its length and price, each staff member's working hours, your cancellation rule and any gaps between visits. For classes, list the weekly timetable and how many places each class has.

Step 2: Describe the app

A prompt to start from
A booking app for Studio Lind, a pilates studio in Gothenburg. Anyone can browse the weekly timetable of group classes and private sessions without signing in. Group classes have 12 places and show places left; when full, people join a waiting list. Private sessions are 55 minutes with one of three teachers, and a slot can only be booked once. Clients sign in with email to book, see My bookings, cancel up to 12 hours before, and add a booking to their Calendar. Remind them the evening before and one hour before. Show our address with directions in Apple Maps. Teachers sign in to see their day and mark who came. The owner edits classes, prices, hours and time off. Payment happens at the studio.

Penny, Borel's planner, asks about anything unclear, such as what happens when someone cancels late. Then Rivet writes the app in Swift with SwiftUI, and Xcode builds it on Borel's Mac. You don't need a Mac.

Step 3: Try to break it in the simulator

The app opens in the iOS Simulator in your browser, free. Book a class, cancel it, join a full class's waiting list, then sign in as a teacher. Try to book the same private slot from two accounts: the second must be refused.

Step 4: Polish it

Attach your logo and ask for your colours. Ask for small things in plain words: "show the teacher's photo on each class", "hide classes that started already", "put Book again on the home screen".

Step 5: Test it with real clients

With Pro, Borel Companion installs the app on your own iPhone, so you can check that reminders and the calendar button work on a real phone. Then invite a few regulars through TestFlight, which takes up to 10,000 external testers, and watch where they hesitate.

Step 6: Publish it

Stamp checks the app against the reasons Apple most often turns apps down, and Publish builds, signs and uploads it under your own Apple Developer account. Add a client and a staff login for App Review in the review notes.

The Bottom Line

A booking app is a small data model with one strict rule: a slot is booked once. Get that right, keep the flow to a few taps, remind people before they come, and take payment the way Apple allows for real-world services. With Borel, you describe it, try it on a live iPhone in your browser, and publish it under your own name. Describe your services on Borel and book your own test appointment today.

Questions people ask

Can I take payment in a booking app?

Yes, but not with Apple's in-app purchase for in-person services: Guideline 3.1.3(e) asks for another method. Take payment at the visit, or add your Stripe key in Borel under Tools, in Keys, for card checkout.

How does a booking app stop double bookings?

Ask for each slot to be booked only once, and Borel makes the staff member and start time unique together in the database, so a second booking for the same slot is refused, even at the same second.

Can a booking app send reminders?

Yes. A Borel app schedules reminders on the client's phone, for example the day before, and they arrive even with the app closed.

Can it handle group classes with limited places?

Yes. Describe the number of places and a waiting list, and the timetable shows places left on each class.

Do I need a Mac or coding skills?

No. Borel writes the Swift code and builds it with Xcode on its own Mac. You describe the app and change it with messages from any computer.

How much does a booking app cost to make?

With Borel, from $20 a month for Pro to publish, plus Apple's $99 a year and small running costs for accounts and bookings. Building and testing in the browser starts free.

I like booking apps because the rules are clear and the payoff is real: fewer phone calls, fewer no-shows. Describe yours to Borel and book yourself a test slot.

– Sigsten

Make your iPhone app in Borel

Describe the app you want and see its first screens before you pay anything.

See your app free

Keep reading