On this page
- Check your plan before you add appointment booking to WordPress
- 1. Set up the Caletus meeting type outside WordPress
- 2. Prepare a page that explains the appointment
- 3. Embed the scheduler in WordPress with a Custom HTML block
- 4. Add a plain booking link as a backup
- 5. Check the published page as a visitor would
- 6. Book a test appointment from start to finish
- Why your WordPress booking widget is blank or missing
- Publish, and name someone to look after it
- FAQs on how to add appointment booking to WordPress
- Sources cited in this article
To add appointment booking to WordPress, paste your scheduler's embed code into a Custom HTML block, or link a button to your booking page. You don't need a plugin or a custom booking system. Get the meeting type working first, check that your WordPress plan allows custom code, then test the published page.
This guide uses the WordPress block editor and is based on WordPress's public documentation. We haven't tested a specific WordPress version, theme, plugin or Caletus embed for it, so use the checklist below to record and test your own setup.
Check your plan before you add appointment booking to WordPress
WordPress.com currently needs a paid plan with hosting features turned on before you can add restricted code like iframe and script tags. Paying for a plan isn't enough if those hosting features are off. Check WordPress.com's current support page for your site.[1]
On self-hosted WordPress, the code you can save depends on your user role and site settings. WordPress strips out disallowed markup when the user doesn't have the unfiltered_html capability. Its current Custom HTML guide also describes separate HTML, CSS and JavaScript panels starting with WordPress 7.0.[2]
Don't hand out full admin access just to get an embed saved. Ask your site admin to add it the approved way, and check any managed hosting rules or company policies on scripts first. The editor preview won't tell you which code survives publishing.
| Item | What to record |
|---|---|
| Hosting | WordPress.com or your self-hosted or managed host, plus your plan and active features |
| Editor | The block editor, or the page builder you actually use |
| Software | WordPress version, theme and relevant plugin versions |
| Access | The account that's allowed to add code, and the approved method |
| Booking | The Caletus meeting type you're embedding and the plan it's on |
| Test results | Device, browser, page URL, date and whether the booking went through |
1. Set up the Caletus meeting type outside WordPress
Caletus's scheduling features include website embedding, and you don't need a WordPress plugin to use it. Copy the embed code for your actual meeting type rather than adapting someone else's.[3]
Pick the appointment, assign the host, and write a title and description people will understand. Set the length and location. Configure working hours, minimum notice and conflict checking, then book a test appointment through the direct booking page. New to Caletus? Follow how to set up your first Caletus booking page.
Don't troubleshoot two systems at once. If the direct booking page shows no times or sends the wrong joining details, fix that first. Once it works on its own, any problem left over is a WordPress problem.
Check your Caletus plan too. Your own branding, your own domain and removing the Caletus badge come with Professional and Enterprise, so on the Free plan the calendar shows Caletus branding.[4]
2. Prepare a page that explains the appointment
Create a draft page, or a staging copy of an existing one. Give it a clear heading like "Book a website planning call." Add the length, what the visitor gets and any prep. Keep this text outside the embed, so the purpose stays visible even if the widget fails.
Save the existing page before you change it. Check whether the section is used only on this page or comes from a shared template. Editing a reusable layout can change more pages than the one you have open, so confirm with your site owner.
3. Embed the scheduler in WordPress with a Custom HTML block
WordPress documents two ways to add a Custom HTML block: the block inserter, or typing /html. The exact controls depend on your WordPress version and editor.[2]
- Open the page in the block editor.
- Click the block inserter and choose Custom HTML, or type /html on a new line.
- Paste the Caletus embed code into the block's HTML area without changing it.
- Use the block's preview to check it, then save the page as a draft.
Follow Caletus's current instructions for the snippet. Don't invent an iframe address, split a script across panels without guidance, or paste an admin page link. We haven't included sample Caletus embed code here, because untested sample code could send you in the wrong direction.
Using another page builder? Use its code or HTML element, with your site owner's approval. Builders don't all accept the same markup, so start with one page and check the result.
4. Add a plain booking link as a backup
WordPress's link controls let you add a link to text or a button. Use your meeting type's public booking address for a clear backup, like "Open the booking page directly", and test the link after saving.[5]
Keep this link outside the scheduler itself. It helps most when code is restricted or the embed fails. If embedding doesn't suit your plan or policy, a well-labeled link can be the whole solution. Our booking link vs embedded scheduler comparison helps you decide.
5. Check the published page as a visitor would
Preview the whole page, then open it as a regular visitor. Make sure the calendar has enough width and later steps aren't cut off. Test with a long name, an email typo and the phone keyboard open. Check that chat bubbles, menus and cookie banners don't cover the booking button.
If the embed uses an iframe, a descriptive title tells screen reader users what it is. Check the booking form inside the frame too, because your WordPress theme won't make a third-party form accessible.[6]
Use the sizing options the embed provides instead of hiding overflow until the page looks tidy. The booking form may need more room than the first calendar screen. Keep the backup link easy to reach on narrow screens.
6. Book a test appointment from start to finish
- Open the published page while logged out of WordPress and pick the meeting type.
- Choose a safe test slot, check the time zone shown and submit made-up details you control.
- Check that exactly one appointment appears in your bookings and the host's calendar.
- Open the confirmation email and check the joining details and the reschedule or cancel links.
- Repeat the main steps on a phone, then delete or label the test appointments.
Record your results in the table from earlier. "Works on my computer" isn't a test record anyone else can repeat. Keep real client details out of screenshots, and note any difference between the editor preview, staging and the live page.
Why your WordPress booking widget is blank or missing
| Problem | Check first |
|---|---|
| The code disappears after saving | Your hosting plan, active features, editor permissions and allowed markup. |
| You see it in the editor, but visitors don't | The saved public page, access settings, caching and blocked requests. |
| The direct booking page works, but the embed is blank | Ask your admin to check the exact snippet and any frame or script restrictions. |
| The calendar shows, but the form is cut off | The container size, at every step of the booking flow. |
| It shows an old meeting type or old branding | Which meeting type the code points to, duplicate installs and the published version. |
| The widget appears twice | Whether the snippet sits in both the page and a shared template or code-injection plugin. |
On WordPress.com, if restricted tags keep disappearing, recheck code support and your active hosting features. A Custom HTML block that keeps plain text may still strip out an interactive embed.[7]
With frame-based embeds, two rules control permission. Your site's frame-src policy decides what it may load, and the provider's frame-ancestors policy decides where it may appear. Ask the right team to look at the specific blocked request rather than removing all security rules to fill a blank space.[8][9]
Publish, and name someone to look after it
Once the checks pass, publish the page and open the live URL one more time. Tell the host which offer is now public. Keep the direct booking link, the original snippet, the page location and rollback steps together in your website notes.
Repeat the main test after theme or editor changes, caching changes, a new meeting type or an embed update. When something breaks, test the direct booking page first. That quickly tells you whether to call your website admin or the scheduling provider.
Keep a short launch note with the meeting title and the page it's on, and review the wording with both the host and the site editor. A working embed still disappoints people if the meeting they get differs from the one the page describes.
WordPress doesn't have to do the scheduling itself. You need a reliable link to a working appointment, enough room for visitors to finish, and a backup route if the embed fails. For the same steps on other site builders, see how to add appointment booking to your website.
FAQs on how to add appointment booking to WordPress
Do I need a WordPress plugin to add Caletus booking?
No. You can paste the Caletus embed code into a Custom HTML block, or simply link a button to your booking page. Both work without installing a plugin. If your WordPress plan doesn't allow custom code, the booking link is the easiest route and still lets visitors book in a couple of clicks.Why does my booking embed disappear when I save the page in WordPress?
Usually your WordPress plan or user role doesn't allow that code. WordPress.com needs a paid plan with hosting features turned on for iframe and script tags, and self-hosted sites strip disallowed markup from users without the unfiltered_html capability. Ask your site admin to add it, or use a booking link.Can I use a booking link when custom code is restricted?
Yes. A clear button or text link to your public booking page lets people book without installing any widget. Explain the meeting on the WordPress page, then test the link the way a visitor would, from the click through to the confirmation email and calendar invite.Will the booking widget work with my WordPress theme or page builder?
It should, as long as your setup lets you add custom HTML. The Caletus embed goes into the block editor's Custom HTML block or a page builder's code element. Check the published page rather than the editor preview, on desktop and mobile, because themes and caching plugins can change how it displays.- WordPress appointment booking
- WordPress scheduling embed
- Custom HTML booking widget
- Caletus WordPress booking