# The booking form - Bookline 1.x documentation

> Put the booking form on a page with the block or the shortcode, and see what customers go through.

The booking form takes customers through five short steps: **service → date → time → their details → confirm**.

![The booking form's time step](https://storage.extendiment.com/media/927/screenshot-2.png)

## Add it to a page

**Block editor:** add the **Booking Form** block (search for "booking"). In the block's settings, **Service** can limit the form to one service, for example on that service's own page.

**Shortcode:** anywhere shortcodes work (classic themes, page builders, widgets):

```
[bookline]
[bookline service="12"]
```

`service` is the service's ID (in the address when you edit it). Without it, customers choose.

The first page you publish with the form becomes your **Booking page** (**Bookline → Settings → General**): customers' links to their bookings open there. Change it there if you move the form.

## What customers see

1. **Service:** each bookable service with its length, price and description. For a group service they also choose **How many people?**. With only one one-to-one service, this step is skipped.
2. **Date:** a month calendar. Days with free times are buttons; fully booked days are crossed out; closed days and days outside your booking window are greyed out. The arrows move between months. Arrow keys move between days.
3. **Time:** the free start times that day. Group services show the places left. If the visitor's device is in another time zone, each time also shows in theirs ("6:00 PM your time").
4. **Your details:** name and email (required), phone (required, optional or not asked: **Settings → General → Phone number**), and a note.
5. **Confirm:** everything in one list. **Confirm booking** books it.

Then they see their booking, with **Add to my calendar** (an .ics file) and **View or change this booking**, and get an email.

![Check and confirm](https://storage.extendiment.com/media/928/screenshot-3.png)

## Free times are checked twice

The times shown come from the server. When a customer confirms, the server checks the time again and saves the booking in one go, one booking at a time, so two customers can't both get the last place. The second is told the time has just been taken and is shown the times that are still free.

## Spam protection

No CAPTCHA to solve: the form has a hidden field bots fill in, a check that the booking came through the form, and a limit of booking attempts per visitor per hour (**Settings → General → Booking attempts**; 0 turns the limit off).

## Accessibility and phones

The form uses real labelled fields and buttons, moves the focus to each step's heading, reads messages out to screen readers, and lays itself out for small screens. It takes your theme's fonts, colours and buttons.

Source: https://extendiment.com/plugins/bookline/docs/1.x/the-booking-form
