Put the booking form on your website
Create a form, copy its shortcode, and drop it on any page.
Booked builds your booking form and hands you a shortcode. Paste that code where you want the form to appear, then check it behaves on the live page.
Create a booking form
Go to Booked Customisation Booking Form. Every site already has a Default form — the one [get_booked] renders. If one form is enough, style it and skip ahead. For a second, differently styled form, use Add a variant: it copies the Default form's design and gets its own permanent shortcode.
Booking Form
Create booking widgets, style each one, and drop it anywhere with its shortcode.
Shared by every variant set to “Universal colours”. Change it once and they all update.
Each is independently styled and has its own shortcode.
| Form | Type | Shortcode | |
|---|---|---|---|
| Default form | Inline | [get_booked] | Edit |
| Travel clinic page | Inline form | [get_booked variant="v_7k2m9p4a"] | Edit · Duplicate · Delete |
| Homepage pop-up Custom colours | Pop-up button | [get_booked variant="v_3d8qz1nv"] | Edit · Duplicate · Delete |
Pick a starting type — you can fully style it next.
The Booking Form screen: shared palette (1), Default form code (2), variant code (3), starting types (4).
- 1Universal colour scheme — seven colours shared by every variant set to Universal. Save colours is a separate save from Save form.
- 2The Default form's shortcode — use this if you only want one form.
- 3A variant's shortcode — the v_ id is set at creation and never changes. Copy the whole thing, quotes included.
- 4Add a variant — Inline form for a booking page, Short form for one card, Pop-up button for an overlay, Hero card for a narrow column.
Press Save form before you leave the editor or the design is lost. Reset to default only resets the editor — the live form is untouched until you save.
The Booking Form screen also needs the "manage settings" permission, so a colleague who only manages bookings may not be able to open it.
Put the shortcode on a page
Booked adds no block to the WordPress inserter, so searching it for "Booked" finds nothing. Add a Shortcode block and paste the code into that. It also works in a Classic editor page, a text widget and most page builders.
- Copy the code from the forms list[get_booked], or the variant= version from that variant's row.
- Create or open the pageA dedicated page such as /book gives you one link to share everywhere.
- Add a Shortcode block and pastePaste it exactly — curly quotes from a word processor stop the variant loading.
- Publish, then open the pageCheck it logged out too.
Travel health at our Bramhall branch.
The booking page in the WordPress editor, with the variant's code pasted in.
- 1Pages — any page, post, widget area or template that runs shortcodes will do.
- 2The page address — this goes in your menu, your Google listing and your emails, so settle on it early.
- 3The Shortcode block — paste the code here. Several forms can share one page; each loads independently.
Which code does what
| Shortcode | What appears on the page | Extras it accepts |
|---|---|---|
| [get_booked] | Your Default form, embedded | service, full, demo, variant |
| [get_booked variant="v_…"] | That variant, in its own type and styling | demo only |
| [get_booked_button] | A button opening the Default form in a pop-up | label, service, demo |
| [get_booked_compact] | The Default form as a narrow hero card | service, demo |
| [get_booked_short] | The Default form as a one-card short form | service, location, demo |
Two surprises. Once variant= is present, everything except demo is ignored — including full, so a variant never breaks out of a narrow theme column. And the three older codes always use the Default form's design. To pre-select a service or go full width, use plain [get_booked service="12"].
Run more than one form
A travel clinic landing page suits an inline form, a homepage a Pop-up button, a sidebar a Hero card. Build one variant per job and paste its code on its own page.
- Duplicate copies every setting into a variant called "<name> copy", but it creates a new id — so the copy has a new shortcode to paste in by hand.
- Delete warns that pages using its shortcode will stop showing it. In practice the page falls back to the Default inline form — arguably worse, because it looks fine but is not your design. Tidy the pages too.
The Universal colour scheme is layered over variants only. Plain [get_booked] shows the Default form's own Style-tab colours, so change your brand colour in both places.
Test it on the real page
The Live preview is useful, but it is not the live page: it never books (it ends on GB-PREVIEW), it does not run your Custom JavaScript, and it renders at a fixed width then scales down, so buttons look smaller than they are. Walk through the published page too, on a phone.
Travel health · Bramhall branch
The published page: steps (1), fixed detail fields (2), confirm button (3), reassurance line (4).
- 1The steps customers actually get — Booked hides any step with one sensible answer: location vanishes with a single bookable branch, category with a single category, though both settings still read "on". The team step is not hidden for a single staff member — switch off Let customers choose staff instead.
- 2Your details is fixed — extra questions live per service under Business › Services › Eligibility & intake.
- 3The price on the confirm button — check the currency and time format; both come from Settings › Region & currency.
- 4The reassurance line — set in the Convert tab. It hides itself when the service takes a deposit, because the deposit explanation replaces it.
Booked allows ten booking attempts per address every ten minutes, so a morning of testing from the shop's own broadband locks the team out with "Too many booking attempts. Please wait a few minutes and try again." For a demo page that must never create a real appointment, add demo="true" to the shortcode: the flow runs end to end but books nothing.
Link to it once it works
Add the page to your main menu and use the same address everywhere else — your Google listing, your email footer, your window card. Booked records where each visitor came from on their first visit, keeps it for 30 days and reports it under Analytics. First touch wins, so someone who arrives from a newsletter and books a week later is still credited to it. If you run advertising pixels, switch conversion reporting on under Settings › Tracking & pixels; it fires only on real bookings.
Before you send customers to it
- Check your licence is active. Without one the shortcode renders nothing — only administrators see a hint, so the page looks blank.
- Read the confirmation wording. It says "Your booking is requested" until Auto-approve new bookings is on under Settings › Booking rules.
- Watch multi-branch forms. Turning Show location step off asks nothing — it silently sends every booking to the first matching branch.
- Take one real card booking if the service uses a deposit, so you have seen the payment step before a customer does.
- Add your terms link. There is no terms tick box. Put the link in Footer HTML in the Code tab.
- Keep custom code tidy. Custom CSS is not scoped, so a broad rule can affect the rest of the page, and only the Default form's Custom JavaScript runs.
- Mind your cookie policy. Seventeen font choices load from Google Fonts on every visit; System, Grotesk, Serif, Rounded and Mono load nothing.
Edit the variant and press Save form — the shortcode stays the same, so every page carrying it updates at once.