How to Create an Online Booking Form (Step-by-Step)
Learn how to create an online booking form with time-slot capacity, Razorpay or at-venue payment, and instant QR confirmations. Step-by-step guide.
If you're still taking appointments over phone calls and WhatsApp messages, you already know the problem. You get double-bookings. Missed calls during busy hours. A notebook nobody else in the shop can read. Learning how to create an online booking form fixes all three, and you can have one live in under 20 minutes without writing a line of code.
Here's what we'll cover: what an online booking form actually needs to work in the real world, not just collect a name and a date, but enforce capacity, take payment, and send a confirmation your customer can show up with. We'll go through all 5 steps, plus a worked example with real numbers. By the end you'll know how to build one, and what to check before you share the link.
What makes a booking form different from a regular form
A contact form just stores whatever someone typed into it. A booking form has to earn its keep in a few other ways too. It needs to hold a real calendar, so customers see which slots are actually open instead of submitting a preferred time and hoping someone calls them back. It needs to enforce capacity, so if a slot only has room for one customer, two people can't grab it at the same moment. It needs to price itself, calculating packages, add-ons, and special pricing like weekday versus weekend rates without you doing the math by hand. And it needs to confirm the booking with something the customer can hold onto, whether that's an SMS, an email, or a pass, while giving you a record you can trust on your end.
Most "form builders" stop at step one: collecting the request. We'd argue that's not really a booking form, it's just a request form with a calendar icon on it. A booking form has to close the loop.
Step 1: Decide what you're actually booking
Before you touch a builder, sit down and write out the shape of your bookings. Is it a fixed-length appointment, like a 45-minute haircut, or a flexible slot, like a two-hour play session with 15 seats? Do you sell packages or add-ons alongside the base booking, say a ₹600 facial plus a ₹150 add-on scrub? Does your price change by day type, weekday rates against weekend rates, or by a date range like a 3-day festival period? And will you take payment online, or do you want to let customers choose to pay when they arrive?
You don't need final answers yet. Just having the shape in your head makes the next steps faster.
Step 2: Build the form with real time slots and capacity
In SurveyKar, you create a booking form from Forms > New Form > Booking & Payment in under 2 minutes. The builder hands you a dedicated Slots editor where you set the time slots, how many spots each one holds, and which days or dates they apply to. This matters more than it sounds: a slot with a capacity of 8 can be booked by exactly 8 people, and the ninth person sees that slot as full in real time, not stuck in some vague "pending confirmation" state. That's enforced at the database level with row locking, so when two customers race for the last seat at 6:59pm, they get queued rather than both being told "1 remaining."
If your bookings involve more than one time slot, say a salon selling a base appointment plus 2 or 3 optional add-ons, the same builder gives you a Packages editor and an Add-ons editor sitting right next to Slots. You can also set Pricing Rules that fire based on the day of the week, a date range, or an answer the customer gave earlier in the form. A "bring a friend" checkbox, for instance, could tack on a fixed ₹100 automatically.
Step 3: Decide how customers pay
This is where a lot of booking tools quietly cut corners, so it's worth being specific about what actually happens here.
On the Booking Settings tab, you choose which payment methods to offer. One option is online checkout through Razorpay, where the customer pays by card, UPI, netbanking, or wallet right when they book, say ₹944 for a ₹800 package plus 18% GST, and the slot confirms within seconds of payment clearing. The other is at-the-venue payment in cash or UPI, where the customer picks their intended payment method on the form and the booking sits as "pending payment" until your staff confirm, in person, that the money actually came in. Worth saying plainly: that's not automatic reconciliation. It's a record of what the customer told you they'd pay, and your team still has to verify it when the customer shows up.
Either path lands on one price. No exceptions. The total is always calculated on the server from your packages, add-ons, and pricing rules, never trusted from whatever the browser happens to send, so nobody can tamper with the page to pay less.
Step 4: Set up the confirmation and check-in
Once a booking is confirmed, whether paid online or verified at the venue, the customer gets a confirmation page with a QR pass within seconds. That pass encodes only an opaque token, not the booking number or any personal details, so even a leaked link doesn't expose anything useful. When the customer actually arrives, your staff scan or look up the pass and check them in from the bookings dashboard. That's also where you'll see every booking and its payment status, and where you can export records to CSV whenever you need them.
Step 5: Share the form
You're not stuck with a single link here, and you shouldn't settle for one. Put the direct web link on your site, in bio links, or in ads. Print the QR code at your counter so walk-ins can scan and book from their own phone. Embed the form straight into an existing page on your website. Or send it inside a WhatsApp conversation from your business's own WhatsApp number, so customers who already message you can book without ever leaving the chat.
A worked example: a salon booking a haircut-plus-treatment slot
Say a salon wants to sell a 45-minute haircut slot that can optionally add a scalp treatment. Here's how the owner sets it up. First, create the slots: hourly blocks from 10am to 7pm, capacity 1 per slot, because there's one chair and one stylist. Then add a package called "Haircut" at a base price, plus an add-on for "Scalp treatment" at a fixed extra price. Next, a pricing rule: weekend slots get a 10% surcharge, because Saturdays run busier and the stylist's time is worth more that day. Turn on both payment methods, online through Razorpay for customers who want to pay now, and at-venue UPI for walk-ins who'd rather settle up when they get there. Finally, share the link in the Instagram bio and print a QR code at the reception desk.
Now when a customer books a Saturday 11am slot with the add-on, they see the ₹500 haircut, the ₹200 treatment, and the 10% weekend surcharge totalled to ₹770 before they pay a rupee. If they chose at-venue payment instead, the salon's dashboard shows that booking as "pending" right up until reception marks it verified.
Try it
If you run appointments, classes, or any slot-based service, start with the Bookings service page to see the full feature set. Running a salon specifically? The salon booking software page walks through the booking-to-rebook workflow salons actually use day to day. You can also start directly from the appointment booking form template and customize the slots, packages, and payment options to match your own business.
Ready to stop taking bookings over the phone? Create your free SurveyKar account and build your first booking form today. No credit card required to start on the Free plan.
Frequently asked questions
Not really. Capacity doesn't have to mean a hundred seats. You can set it to 1, which is exactly what a single-chair salon or a one-table café needs, and you still get the real benefit: nobody can double-book that one slot between 10am and 11am by accident.
It's built in. You can take payment through Razorpay at the time of booking, or let customers pick at-venue cash or UPI, with your staff verifying that payment separately when the customer shows up.
The server checks and holds availability before confirming either booking, so one customer gets the slot and the other sees it as full right away. Nobody gets a false "confirmed" message for a slot that's already gone.
Yes. Pricing rules can target a day type (weekday, weekend, holiday) or a specific date range like Diwali week, and they stack with your package and add-on pricing automatically, so you're not recalculating anything by hand.
No. The form opens in a browser from a link, a QR code scan, an embed on your site, or right inside a WhatsApp chat. No app, on either side.
Keep reading
All articlesEvent Check-In QR Code Setup: A Practical Guide
A practical guide to setting up an event check-in QR code: how the scan-and-register flow works and where walk-ins fit in.
How to Automate Customer Follow-Up (Without Losing the Personal Touch)
Learn how to automate customer follow-up with triggers, delays and WhatsApp messages, so no booking, survey or ticket falls through the cracks.
How to Collect Leads from WhatsApp
Learn how to collect leads from WhatsApp with a real Business inbox, a tap-to-answer survey or form, and automatic follow-up on SurveyKar.