Contact form
For questions that aren't a booking yet, sorted by type before they reach you.
See the templateThis booking form template collects appointment requests for studios, salons, tutors and consultants. Clients pick a service, a date, a time of day and a backup date, then leave their details. You check your calendar and confirm each request yourself. Clone it, rename the services, embed it.
No credit card. Unlimited forms and unlimited responses on the free plan.
What's in the template
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.
Consultation (30 min), Full session (60 min), Group session or Not sure yet. Rename these to match your own menu.
The month field stops at 12 and the day at 31, so a slip like month 13 never reaches you.
Morning, Afternoon or Evening. A window, not a promise of a slot you may not have.
The backup that saves a round of email when the first choice is already taken.
Contact details come after the thinking part.
Checked for a valid address format when they press Enter or Next, so a missing @ gets fixed before your reply goes out.
Country flag and dial code included. Optional, so nobody walks away over it.
Access needs, a topic to cover, anything that changes how you prepare.
Says this is a request and when to expect an answer. Add a redirect to your prep notes or a deposit page.
2 →
Which date suits you best?
We'll check the calendar and confirm by email. Nothing is booked until we do.
Month
Day
Year
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
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, 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.
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.
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.
Already wired in
Both rules ship with the template. Clone it and the branching is live.
Conditional Logic
2 rules configured
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
Routing
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
For questions that aren't a booking yet, sorted by type before they reach you.
See the templateSend it once you confirm. Goals, history and files, collected before the first session.
See the templateWhen the job needs a price before a date. Scope and budget up front.
See the templateFor fixed dates with many seats: workshops, classes and open days.
See the templateFor the weeks you're fully booked. Take names now and reach out when a slot opens.
See the templateEvery starting point we ship, with category filters and a live preview. One click to clone.
Browse the galleryYes, 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.
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.
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.
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.
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.
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.
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
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.