Before you launch or pay for traffic

How to design a booking form: time before details

A first booking form usually asks for a name and a phone number before it shows a single free time. The customer who gives up there never tells you why.

5 visitors try to .
First test free with an accountRun it from your coding agent

How do you design a booking form?

Put the service and the calendar of free times first, check the chosen time again when the customer confirms, and ask only for the details the appointment cannot happen without. Show the time, the place and how to change it on the confirmation, and send the same details by email. A simulated test sends a customer through the form to the confirmation and shows the screen where each one stopped, with a screenshot.

What this looks like in a report

Who
Oksana, booking a first visit for her dog's grooming appointment
How they arrived
Tapped Book now from a local listing on her phone
Where they stopped
Details screen, after she entered her phone number and address

“I have typed my name, phone number and address, and only now it asks for a time. I do not know which times are free, so I may not bother finishing.”

The fix. Move the time picker to the first screen after the service, and show free times before any personal detail. Ask for the phone number only after a time is held, and make it optional if you can confirm by email.

An illustration. Run a test to see your own.See a real sample report

Visitors type their details before they know a time is free

A booking form asks a stranger for their details before it gives anything back. The visitor learns only at the end whether a time is open, so the effort is spent before they know it will be worth it. If the calendar then fails at submit, they have typed everything for a slot that is gone. You book a test appointment for yourself and already know which days are open, so you never meet the visitor who leaves on the second screen.

  • The service is chosen first, and a calendar of free times sits on the same screen.
  • The time a visitor picks is checked again when they press confirm.
  • Only the name, the email and the one detail the service needs are required.
  • The phone number is optional, or it is confirmed by email rather than by a text code.
  • The confirmation shows the service, the date, the time with its zone, and how to cancel or move it.

How it works

  1. 01

    Choose the service and show the free times

    Put the service choice first, then the free times on the same screen. A customer should see a bookable time before typing anything about themselves.

  2. 02

    Check the time again when the customer confirms

    A calendar loaded when the page opened can be stale by submit. Look the slot up again, and if it is gone, return to the times with the details kept.

  3. 03

    Ask only for what the appointment needs

    A name, an email and the one thing the service needs. Mark everything else optional, and never require a text code.

  4. 04

    Confirm with the time, the place and the next step

    Show the service, the date, the time with its zone, the address and how to cancel or move it. Send the same details by email.

Details before times is the order that wastes the visit

Wrong: name, phone, address and the pet's name on the first screen, then the time picker on the second. Right: service, then time, then the details, with the chosen time shown in a summary before the details screen, so the customer knows what they are holding. The wrong order fails for a reason the owner does not see. A customer who types four fields and then meets no free times leaves having given you nothing.

Test the order on a first visit. The tell is a customer who stops on the details screen and mentions the time in their thought, or who never saw a time at all. If they wonder whether the slot is free before they have typed anything, the order is the cause, and no change to the fields will fix it.

A slot that is free on the calendar and taken at submit

A calendar is often loaded once, when the page opens, and a slot picked by one customer can be taken by another before the form is sent. Wrong: the calendar shows the 2:00 PM slot as open, and the submit returns a generic error after the details are typed, with the calendar still showing 2:00 PM. Right: the time is checked again at submit, and if it is gone, the form returns to the time picker with the other free times, and the details stay filled in.

The tell is an error that appears after the details step while the slot stays on screen. A customer who picks the same slot again and gets the same error has hit a stale calendar, not a wrong email or a bad phone number. The report gives the step and the customer's own words, so match them to this pattern before you change a field.

The fields that stop a customer who cannot finish them

Every required field is a place the booking can end. A phone field that must be confirmed by a text code stops any visitor who cannot receive one, and a simulated visitor cannot receive a text message, so the run stops at the code. A long list of required questions before the time, such as a pet's weight or a company tax number, feels like a form for a different purpose. Right: the name, the email and the one detail the service needs. Everything else can wait for the confirmation page, marked optional, with one line on why it helps.

What you get with Mimiq

  1. 01

    Run it by hand, or on every pull request

    Paste a link and a task in the app and watch the visitors work. Or run them on every preview deploy: the GitHub Action comments on the pull request, any other CI can call the MCP endpoint, and your coding agent can run it too.

  2. 02

    Bugs and usability problems in one report

    The browser records errors and failed or slow requests on the step they happened. The visitors say where the wording or the steps confused them, and where they left.

  3. 03

    Visitors that behave like your audience

    Each visitor is a different profile with a reason to be there, matched to who the page is for, described by you, or built from your own customers.

  4. 04

    A prompt to fix each problem

    Every problem comes with a fix to paste into Cursor, Claude Code, Lovable or any coding agent, and one prompt hands over the top problems at once. Then send the same visitors through again.

  5. 05

    Follow every visitor

    See each visitor's whole path, step by step with screenshots, and what it was thinking at every step. Ask any visitor a question.

The browser records relevant JavaScript errors and failed or slow app requests encountered during the run, attached to the step where they occurred. The visitors are simulated: they find problems, they do not predict how many real people will convert.

A new service or staff calendar can break the slot list again

A new service, a second staff calendar or a new working week can bring back the old slot list. Rerun the earliest-time path after each change to the services, the staff or the hours, on a phone and a laptop. With paid credits, visitors can book behind a site password while the form is in draft.

Starter

Try it on one launch

$9 once
120 credits, never expire

About 4 tests of 5 visitors

  • Visitors on your landing page, signup and checkout
  • Where they left and why, with a fix to copy for each problem
  • Run it in the app or on every pull request
  • Ask any visitor a question, included
  • Test accounts and protected previews
Buy 120 credits

Builder

Test every build

$19 a month
500 credits every month

About 20 tests of 5 visitors

  • Everything in Starter
  • Credits refill each month, and what is left rolls over once
  • Cancel anytime
Choose Builder

Pro

Test every release, as a team

$49 a month
1,500 credits every month

About 60 tests of 5 visitors

  • Everything in Starter
  • Credits refill each month, and what is left rolls over once
  • Cancel anytime
Choose Pro

Scale

Test at scale, every day

$149 a month
6,000 credits every month

About 240 tests of 5 visitors

  • Everything in Starter
  • Credits refill each month, and what is left rolls over once
  • Priority support
  • Cancel anytime
Choose Scale
$0for your first test, with a free account (Google sign-in, no card). It includes 50 credits, enough for 10 visitors. After that a visitor uses 5 credits, and packs start at $9 for 120 credits.
See a sample report

Questions

What should a booking form ask for?

The service, the time, and the name and email that let you confirm it. Add a field only when the appointment cannot happen without it, such as the size of a job that changes its length. Everything else should be optional, and should say why it helps.

Can the test book a real appointment?

It can fill in and submit the form on a public address, so it can reach the confirmation. Run it against a staging calendar or a test service, so a simulated visitor does not take a real slot.

Does the test check my booking reminders?

Not the timing. Visitors have a working inbox, so a confirmation email can reach it during the run. The test does not show whether a reminder goes out the day before, so check that setting yourself with a test booking.

Why do visitors stop at the phone number?

Often a field that requires a text code, or a format the visitor does not use. A simulated visitor cannot receive a text message, so a text code stops it at the code field. Make the phone number optional if you can confirm by email.

Does the test show how many bookings the form will get?

No. It does not predict how many bookings you will get, and it gives no rate of visitors who finish. It shows the step where each simulated visitor stopped, with a screenshot. Booking counts come from your calendar, read over real customers.

Keep reading

Send visitors and see what breaks first.

Your first test is free: sign in with Google and it starts right away. Last checked 2026-11-02.

5 visitors try to .