WordPress · Custom HTML block · 5 minutes
Add online booking to your WordPress site
No plugin is involved here. You add one Custom HTML block, paste the snippet, and the page takes appointments — nothing gets installed on your site, so there is nothing to keep updated and nothing that can conflict with your theme. When an embed comes out blank on WordPress, the cause is almost always permissions, and that is worth reading before you start.
Step by step
Open the page and add a Custom HTML block
In the block editor, add a Custom HTML block where booking should appear. In the classic editor, switch to the Text tab instead of Visual.
Paste the snippet and update
Paste your snippet from Booking Page → Add to Website and hit Update. The widget sizes itself to your service list — no height to configure.
View the page as a visitor
Open the page in a normal tab (or a private window). The block editor shows a preview, but the live page is what counts.
The code you paste
Example — replace with your own snippet
<iframe id="booking-frame" loading="lazy" src="https://app.gobookingsuite.com/?key=YOUR_KEY&embed=1"
title="Book an appointment"
style="width:100%;border:0;height:600px"></iframe>This example is an illustration — the key is a placeholder. Your real snippet, with your key, is in the admin under Booking Page → Add to Website. It also carries your salon's phone and email as a fallback and a small script that reports the widget height.
Before you start
If the block saves but the widget never appears, it is permissions
WordPress only keeps <script> tags for users who hold the unfiltered_html capability. On a regular single-site install that is the Administrator and Editor roles. On Multisite, WordPress documents it plainly: only Super Admins have that capability — a site Administrator does not.
Two more places the script can vanish: on WordPress.com you need a plan with hosting features, and security plugins such as Wordfence strip scripts regardless of your role. If the block saves cleanly but the page stays empty, check these before touching the snippet — the iframe itself survives filtering, the height script is what gets removed.
The result
What your clients end up with
This is the actual widget, embedded here exactly the way it will embed on your WordPress page — no plugin involved on either side. Pick a service and a time to see the whole flow.
- The service list is visible on the live page and clicking a service opens time selection.
- The block keeps its content after Update — reload the editor and confirm the snippet is still there.
- If the list shows but the frame has its own scrollbar, the height script was stripped: booking still works, only auto-height is gone.
- If the area is completely blank, log in as an Administrator on a single site (or a Super Admin on Multisite) and paste it again.
Live demo — a real widget, book a test appointment
Questions
6 things people ask
Do I need a plugin?
No — and that is the point. Nothing is installed on your site, so there is no plugin to update, nothing to conflict with your theme, and no extra load on your hosting.
Which user role can add this?
On a regular WordPress site, Administrator and Editor hold the unfiltered_html capability. On Multisite only the Super Admin does, so a site Administrator will see the script stripped out.
Does it work on WordPress.com?
It needs a plan with hosting features — that is where custom HTML with scripts is allowed. On lower WordPress.com plans the script part is removed.
Will it slow my site down?
The widget is lazy-loaded: if it sits below the fold, the browser does not fetch it until a visitor scrolls to it. In our measurement that keeps roughly 21 requests and 332 KB off the initial page load.
What do clients see if the booking service is unreachable?
After 8 seconds without a response, the frame is replaced by your salon's phone number and email so the visitor still has a way to reach you. The fallback clears itself once the service responds again.
Does it work with Elementor, Divi or the classic editor?
Yes. Any builder that offers an HTML or code widget works the same way — the snippet is plain HTML. In the classic editor, use the Text tab.
Different site?
Wondering whether this is the right booking tool at all?See what the widget does on a WordPress site →
Get your embed code
in the next five minutes.
Sign up, add your services, copy the snippet from Booking Page → Add to Website.