What's in the template

Eight questions and a thank-you screen

The order follows how people think about an appointment: what, when, then who. Each question uses the type that fits, so dates arrive as dates and email addresses arrive in a valid format.

  1. What would you like to book? Single Choice

    Consultation (30 min), Full session (60 min), Group session or Not sure yet. Rename these to match your own menu.

  2. Which date suits you best? Date

    The month field stops at 12 and the day at 31, so a slip like month 13 never reaches you.

  3. What time of day works for you? Single Choice

    Morning, Afternoon or Evening. A window, not a promise of a slot you may not have.

  4. Is there another date that would work? Date (optional)

    The backup that saves a round of email when the first choice is already taken.

  5. What's your name? Full Name

    Contact details come after the thinking part.

  6. Where should we send the confirmation? Email

    Checked for a valid address format when they press Enter or Next, so a missing @ gets fixed before your reply goes out.

  7. What's a good number, in case plans change? Phone Number (optional)

    Country flag and dial code included. Optional, so nobody walks away over it.

  8. Anything we should know before we confirm? Long Text (optional)

    Access needs, a topic to cover, anything that changes how you prepare.

  9. Thanks, we'll confirm by email Thank You

    Says this is a request and when to expect an answer. Add a redirect to your prep notes or a deposit page.

upform.com/f/booking

2 →

Which date suits you best?

We'll check the calendar and confirm by email. Nothing is booked until we do.

Month

10

Day

14

Year

2026
Next →press Enter ↵

The Date question as clients see it: month, day and year in three short fields. On a phone, a sticky back and next bar stays at the bottom of the screen.

8

Questions, one per screen

∞

Booking requests a month, never capped

20

Logic operators, dates included

$0

To publish and embed it

A booking request form, not a booking system

Be clear about what this template is. It collects a request: which service, which day, which part of the day, a backup date and how to reach the person. It does not read your calendar, hold a slot, send a confirmation for you or take a deposit. Upform has no calendar sync, no availability rules and no payments. You read each request, check your calendar and confirm it yourself.

For a lot of small businesses that is the right trade. A one-chair salon, a tutor with a dozen regulars, a consultant who reads the brief before agreeing to a call: all of them decide case by case. Scheduling tools ask you to turn every exception into a rule. A request form keeps you as the person who says yes.

What a booking form should ask, and in what order

What, when, a backup, who, then anything unusual. Service goes first because it decides everything after it: length, price, who takes it. The date comes second, while the person is still thinking about the appointment. Then a time window instead of exact slots, because you can honor "afternoon" far more often than "2:15". The backup date is the field that saves the most back-and-forth. Contact details go last, once the thinking part is done.

Two fields deserve a second look. A phone number is worth asking for only if you really will text on the day, which is why it ships as optional. And a free text box for an exact start time invites answers like "twoish?". If your days run on fixed slots, use a Single Choice or Dropdown with the times you actually offer. More on that in our guide to form design best practices.

Confirming requests without living in your inbox

Send requests to where you already look. Connect the Slack integration and each request posts to a channel the moment it is submitted, so whoever runs the calendar sees it first. Connect Google Sheets and every request becomes a row in a sheet your team already shares. Add a Status column there (Requested, Confirmed, Declined) and it doubles as a simple booking log.

Upform keeps its own copy too. The responses table has search, a date filter and CSV export, and each row opens a side drawer with every answer. The Contacts directory shows a submission count per person, so a regular stands out from a first-timer. Reply from your own email or phone with the confirmed time, and put your own payment link in that reply if you take deposits.

Where to put the booking form

Wherever people decide to book: a Book button in your site header, the form embedded on your services page, the same link in your Instagram bio. Sharing and embedding gives you a public URL and an iframe snippet from one published form, so every placement writes into a single responses table. Our walkthrough on how to embed a form covers the snippet step by step.

Say it's a request, then set a reply time Use the thank-you screen to tell clients they aren't booked yet, and put a number on it: "We confirm every request within one business day" beats "We'll be in touch", and it stops the "did you get my message?" emails.

Already wired in

Two rules that each save you an email

Both rules ship with the template. Clone it and the branching is live.

  • If "What would you like to book?" is exactly Group session, ask how many people are coming, so you know the room and the seats before you reply.
  • If the preferred date is after December 20 and before January 4, show a short note that you're closed and point people to the backup date. Swap in your own closure dates when you clone it.
  • Everyone else sees neither. Their form stays eight questions long.
  • Add your own with 20 operators and four actions: show, hide, jump to a question, or end the form. Date questions get is before and is after.
How conditional logic works

Conditional Logic

2 rules configured

Add Rule
Show field2 conditions
Conditions
Preferred dateIs after12/20/2026
and
Preferred dateIs before01/04/2027
ActionShow field

Rule Summary

When Preferred date is after "12/20/2026" AND Preferred date is before "01/04/2027" → Show field: We're closed over the holidays

Show field1 condition

Routing

Every request, delivered where you already work

Connect your own account to any of these and each request goes out the moment it arrives.

Every integration is on the free plan. Calendly is on the roadmap, not live. See them all on the integrations directory.

Related templates

Forms that usually sit next to a booking form

Frequently asked questions

Is this booking form template really free?

Yes, and it stays free. The free plan gives you unlimited forms, unlimited responses, all 21 question types, conditional logic and every integration, with 100 MB of file storage. Your form carries a small Upform mark. Pro is $12 a month and removes the mark, lifts the storage cap and adds up to five team members.

Does the form check my availability or confirm bookings automatically?

No. This is a booking request form. Upform has no calendar sync and no availability rules, so it cannot hide taken slots or confirm a booking for you. You read each request and confirm it yourself by email or phone. A Calendly question type is on our roadmap, but it is not in the product today.

Can clients pay a deposit through the booking form?

Not inside Upform. It has no payments or checkout. If you take deposits, include your own payment link when you confirm the booking, or set the thank-you screen to redirect to that link.

How do I get notified when a booking request comes in?

Connect Slack and each request posts a message to the channel you choose, or connect Google Sheets and each one becomes a new row in a sheet your team shares. Both are on the free plan. Every request also stays in the Upform responses table, where you can search, filter by date and export to CSV.

How do I add the booking form to my website?

Every published form gets a public link and an embed snippet. Paste the snippet into your services page and the form renders inline, or point a Book button at the public URL for a full-screen version. The same link works in an Instagram bio or an email signature.

Can I use it as an appointment request form for a clinic?

For a name, contact details and a preferred time, yes. Keep medical details out of it: Upform does not sign a HIPAA BAA, so it is not the place for symptoms, history or insurance numbers. Collect those through the system your practice already uses for patient records.

Can I change the services and time windows?

Yes. Cloning the template puts a normal form on your account, so you can rename the services, swap Morning, Afternoon and Evening for the slots you really offer, or add any of the 21 question types. The live preview shows every change before you publish.

Get started

Take booking requests on your site today

Clone the template, rename your services, publish. Unlimited requests, on the plan that costs nothing.

No credit card. Unlimited forms and responses on the free plan.