This page gets you here: one booking item the public site can book (a resource, a duration, and a URL).
The resource has to exist first. See Add a resource and its hours.
Before you start
- The site has bookings on.
- At least one resource is active.
- Your role is owner or site editor.
Where
Sidebar Booking items (/admin/bookings/services).
The list title is Booking items. Add booking item is at the top right.
The empty state says there are no booking items yet, and to add one and link resources.
Add one
- Press Add booking item.
- Fill in Basic info, then Duration & approval.
- Check Available resources (at least one).
- Turn on LINE notify, Google Calendar, and pre-appointment reminders if you need them.
- On the bottom bar: Publish (new public bookings are allowed) or Save draft first (the public site cannot start a new booking).
On success the notice is Booking item published, or Saved as draft (not available for new public bookings).
Basic info
| Field | Required | What it does |
|---|---|---|
| Name | Yes | The list and the public title |
| URL slug | Yes | The public path /book/[slug]. Use lowercase letters, numbers, and hyphens. Change it rarely after it is live |
| Description | Optional | Extra text on the public site |
| Active | — | When it is off, the public site cannot start a new booking |
| Sort order | — | You can drag the list |
The screen shows the public booking path. A booking item has no separate admin preview page. Open the public URL to test.
Duration and approval
| Field | What it does |
|---|---|
| Duration (minutes) | How long one booking occupies |
| Buffer after (minutes) | Extra time after it ends that cannot be booked (clearing the room, for example) |
| Minimum notice (hours) | Both the customer and an admin reschedule must be at least this far ahead. 0 means no extra limit (only a start that is already past is blocked). Range 0–168 |
| Require manual approval | When it is on, a new booking is Pending. It is confirmed only after you press Confirm on the list |
| Resource assignment | See the next table |
| Available resources | Which resources this item can use. If none are checked, it cannot be booked |
Resource assignment
| Option | On the public site |
|---|---|
| Customer selects resource | The resource field is shown. They pick a resource, then a date and a time |
| Customer selects (time first) | They pick a date and a time first (the union of the candidate resources), then a resource that is free in that slot |
| Auto-assign | The resource field is hidden. After they submit, the first free resource is assigned by sort order. A reschedule keeps the original resource |
How minimum notice works
- 0 is the same as no extra limit.
- For example 2: slots that start within 2 hours from now do not appear. Saving and rescheduling are blocked too.
- The date menu only lists dates that still have at least one bookable slot that day. If every remaining slot that day falls inside the minimum notice, that date does not appear.
Use this so someone cannot book half an hour from now, when you would not have time to prepare. If you do not need that buffer, leave it at 0.
The booking form
The section title is Booking form. Drag to change the field order.
- Resource, date, and time, and Email, are required system fields. They cannot be deleted.
- You can add your own questions (a request that is not just the name, and similar).
- This is not the same set as a custom form in the content modules.
LINE, calendar, and reminders (per item)
| Setting | What it does |
|---|---|
| Enable LINE notify | When it is on, the booking success page shows the LINE bind entry (finish Set up LINE notifications first). The form itself no longer shows a LINE field |
| Enable Google Calendar / Meet | The site must be connected first in Notifications and calendar. When this is off, the item does not write a calendar event and does not create a Meet link |
| Block slots on Google Calendar busy times | Independent of the row above. When it is on, busy events on that calendar are removed from the public slots |
| Target calendar | Which calendar this item writes to (the primary calendar is the default) |
| Pre-appointment reminders | One or more “N hours before start” (email and LINE). Empty means no reminder. At most 5, each from 1 to 168 hours |
The event title, location, and invitees can be set further down on the same page. If the site is not connected, the screen tells you to authorize Google Calendar in booking settings first.
Put it on the public site
Any one of these is enough:
- Link the menu to
/book/{slug}(see Edit the menu). - In the page editor, add the section that embeds a booking form, and pick this item in the booking-item field.
- On a button or call to action, choose the action that opens the booking popup, then pick the booking item for that popup.
Check
- The list status is active and published.
- In a private window,
/book/{slug}can pick a date and a time that are inside the hours. - After you submit, the row is on Work a booking.
When it sticks
| What you see | What to do |
|---|---|
| You cannot add it, and it says to create a resource first | Finish Add a resource and its hours |
| The public site cannot book | The item is inactive or a draft, no resource is checked, the hours are empty, the day is blocked, or the minimum notice is too large |
| Every booking waits for someone to confirm it | Turn off Require manual approval, or press Confirm on the list |
| After you change the slug, the old link fails | Change the slug rarely. If you must, set the old path in Public path redirects |
