Bookings
The Bookings & Time Slots add-on lets visitors book a time right in your form, straight into your Google Calendar. Its Time slot field shows only the free times, each booking becomes an event, and nothing is booked twice. It suits salons, nail and barber shops, car services, massage therapists, psychologists, consultants and course authors.
Connect Google Calendar
Bookings live only in your Google Calendar: the add-on keeps no list of its own.
- In Google Cloud Console, make a project, turn on the Google Calendar API, and make an OAuth client ID of type Web application.
- As its Authorized redirect URI, paste the address shown on the add-on’s card in Contact Form → Settings → Integrations → Google Calendar.
- Paste the client ID and secret on that card and save.
- Click Connect your Google account and allow access. Google may warn that it hasn’t checked the app: pick Advanced, then go on. The card says Connected.
Add it to a form
- Open a form and pick Time slot in the More menu after the field buttons.
- Click the chip, pick the Google Calendar and set the schedule in the sidebar.
- Turn on Required if a time must be picked.
Until the account is connected, the field shows no times.
Settings
| Setting | What it does |
|---|---|
| Show as | Times by day: buttons, one day at a time with a row of days above. A drop-down: every free time, grouped by day. |
| Placeholder | The drop-down’s first line, such as “Pick a time”. |
| Open on | The days of the week you take bookings. |
| Opens at / Closes at | The first time, and the time the last visit must end by, such as 10:00 and 19:00. |
| A visit takes, minutes | How long one booking lasts, such as 60. |
| Break after each, minutes | Time to tidy up before the next visit. 0: none. |
| People per time | 1 for one client at a time; more for a class or a few masters working at once. |
| Days ahead | How far ahead visitors can book. |
| Book at least, hours ahead | Times sooner than this don’t show. 0: up to the last minute. |
| Days off | Dates closed, separated by commas, such as 2026-12-31, 2027-01-01. |
| Google Calendar | The calendar bookings go to. Its busy events close their times too. |
| Event title | The event’s name; mail tags work, such as [_form_title]: [your-name]. The description lists the form’s fields. |
Times are in your site’s time zone (Settings → General).
Your calendar decides
- A time is free while fewer busy events cover it than People per time. An event of your own (a lunch, a day away) closes the times it covers; events marked Free in Google don’t.
- To cancel a booking, delete its event in Google Calendar: the time is free again.
- To move one, move its event; the old time opens and the new one closes.
No double bookings
- The field asks for the free times as the page opens, so a cached page never offers a time already taken.
- When the form is sent, the calendar is read again and the event made under a lock: two people sending at the same moment can’t both get the last place.
- If the time was taken meanwhile, the visitor is asked to pick another one. If Google can’t be reached, nothing is booked and the visitor is asked to try again shortly.
- With a Stripe or PayPal field in the form, the event is taken out again if the visitor doesn’t pay.
In the mail
| Tag | Prints |
|---|---|
[your-field] | The time in words: Monday, 10 November 2026, 14:00–15:00 |
[_raw_your-field] | As it is stored: 2026-11-10 14:00 |
[_booking_date] | The date in your site’s format |
[_booking_time] / [_booking_end] | When the visit starts and ends |
Its look
The times take your form’s style. With the form’s style set to Inherit from theme, the add-on loads no style at all and the theme draws them. To change the look, copy templates/fields/timeslot/default/ from the add-on to your-theme/remaily/fields/timeslot/default/.
Not yet
Services with their own lengths, staff with their own hours and visitors cancelling by themselves come in later versions. A Time slot field inside a repeated group isn’t booked.