The Booking Page block is the visitor’s half of the appointment system: a month calendar, the free times for the day they pick, and a short form. This guide puts it on a page and explains what has to be in place for it to fill up.
Add the block
- Create or open the page you want people to book from.
- Add the Booking Page block. You will find it in the HappenBoard block category, or by typing its name in the block inserter.
- In the block sidebar, open the Booking panel and choose your service in Booking type.
- Optionally write something in Intro text. It appears above the calendar as plain text.
- Publish the page.
Until you pick a booking type, the editor shows a placeholder asking you to choose one, and the block renders nothing at all on the front end. If the dropdown is empty, you have no published booking type yet, so create one first.
What visitors see
The block renders the booking type’s name as a heading, your intro text, then a two column scheduler: the month calendar on the left, the times for the selected day on the right. Only days that still have a free slot can be clicked; the others are greyed out. Month arrows stop at the first and last month that hold availability, so there is no empty scrolling.
Choosing a time reveals the form: Your name, Email and a Confirm booking button. Nothing else is asked. The visitor’s timezone is detected from their browser and printed under the times, and the same timezone is repeated on the confirmation panel.
What has to be in place
- The booking type must be published, not a draft.
- It must have at least one host.
- That host must have weekly hours on the Availability screen.
Miss any of these and the block shows No times available. instead of the calendar.
How far ahead the page looks
The page asks for the next 62 days of availability. Your booking type’s minimum notice trims the near end and its maximum advance trims the far end, so the visible window is whichever is shorter. A maximum advance of 90 days will still only fill about two months of calendar here.
Styling it
The block supports background and text colours, link colour, padding, margin, block spacing, font size and line height, all from the block sidebar. It also accepts wide and full alignment, which suits it well: the two column scheduler has room to breathe. Everything is rendered on the server, so the page stays fast and readable for search engines, the same as the rest of the HappenBoard blocks.
Spam protection
Two defences are always on and need no setup: a hidden field that only automated scripts fill in, and a signed timestamp that rejects a form submitted impossibly fast or replayed hours later. On top of that, the same address is limited to 8 bookings a minute and the same email address to 5 bookings an hour.
If that is not enough, switch on Cloudflare Turnstile or Akismet under HappenBoard → Integrations. Turnstile adds a challenge widget to this form. See protecting your forms from spam for the setup.
After a visitor books
The calendar and the form are replaced by a confirmation panel showing the time that was booked and the timezone it is in. The booking appears immediately on HappenBoard → Bookings, and the customer receives a confirmation email with a calendar invite attached.
The slot is checked again at the moment of submission, not only when the page loaded. If somebody else takes the same time while a visitor is filling in the form, the submission is refused with a message asking them to pick another slot, rather than double booking you.