Online bookings
How do I embed Cliniko online bookings on my website?
An Administrator copies the embed code from Cliniko under Settings, Online bookings, Code to embed in your website, and pastes it into an HTML or code block on the page. Wix, Squarespace and GoDaddy each have a Cliniko article; WordPress.com needs a paid plan for iframes. If the plan blocks code, link to the hosted booking page instead. Cliniko's help centre is the source throughout.
Last checked 4 Nov 2026 against the sources listed at the end of this page.
How do I embed Cliniko online bookings on my website?
You copy one piece of code from Cliniko and paste it into one block on your site. Cliniko puts the code under Settings, Online bookings, in a section called Code to embed in your website, visible only to Administrators, and says that once pasted in, your online bookings display directly in your website. Where the block lives depends on the builder, and on some plans the block is not available, in which case a button linking to Cliniko's hosted booking page does the same job with the patient leaving your site for a moment. The steps below cover both, then the tracking question that follows every embed.
- Method
- Cliniko's embed code pasted into the builder's HTML or code block, or a Book Online link or button to Cliniko's hosted booking page where the plan does not allow embedded code
- On mobile
- The embed renders inside your page, so it is only as mobile friendly as the block you put it in. Cliniko's Wix article says to move or adjust the Embed widget to the preferred location and size for both desktop and mobile, and Squarespace warns custom code might break your site's appearance or behaviour, especially on mobile devices. The hosted booking page has no such problem, which is one reason to link rather than embed on a site you do not maintain yourself.
- Can you track bookings?
- Partly. Cliniko takes one Google Tag Manager container ID under Settings, Online bookings and runs GA4, Google Ads, Meta Pixel, AdRoll and Bing UET tags inside the booking pages, embedded or hosted. The catch with an embed is the iframe: Cliniko says the referral source does not pass from your page into it, so bookings can show as Direct. Cliniko offers a postMessage workaround it cannot support, or recommends the hosted page when accurate source tracking matters.
Add Cliniko bookings to any website (Wix, Squarespace, GoDaddy, WordPress or hand built HTML)
- Switch bookings on in Cliniko first. Settings, Business information: set Display this business in online bookings to On for each location. Settings, Users and practitioners: tick Show this practitioner in online bookings for each person. Settings, Online bookings: tick Allow your patients to book appointments online and save.
- Hide any appointment type you do not want booked online under Settings, Appointment types by unticking Show in online bookings. By default every type shows.
- Log in as an Administrator (Cliniko says the embed code is only available to Administrators), open Settings, Online bookings, find Code to embed in your website and click Copy code.
- Paste it into the page. Wix: Add, Embed, Custom Embeds, Embed a widget, Enter code, paste, then check the desktop and mobile views and publish. Squarespace: add a Code block, delete the placeholder text, paste, Apply. GoDaddy Website Builder: Add section, Files and Web, HTML, Embed custom code on the page, paste into Custom code, Done, publish. Hand built site: paste the code where the booking calendar should sit.
- If your plan blocks the code (Squarespace says JavaScript or an iframe in a code block needs the Core, Plus or Advanced plan; WordPress.com says the iframe tag needs a paid plan with hosting features activated), add a Book Online button that links to the booking URL shown in Cliniko instead.
- To send one practitioner, one location or one appointment type straight to its own calendar, build a filtered URL with the bookings URL builder under Settings, Online bookings and use that link on the matching page. Cliniko says the custom URL does not affect your normal one.
- Book a test appointment from a phone on the live site, cancel it in Cliniko, and check the confirmation email arrived if that appointment type has it enabled.
Track the bookings
- Create a GTM web container and a GA4 property if you do not have them, then paste the GTM container ID into Cliniko under Settings, Online bookings and click Save online bookings settings.
- In GTM, add a Google Analytics: GA4 Configuration tag with your Measurement ID, trigger it on All Page Views, submit and publish the workspace, then confirm it fires with Tag Assistant. Do not use a Custom HTML tag: Cliniko says that tag type is blocked inside the booking pages.
- For an embedded calendar, add Cliniko's listener script to the page that holds the iframe. It waits for the message cliniko-bookings-page:confirmed from the iframe and pushes a clinikoBookingCompleted event to the dataLayer, which you can trigger a GA4 event from. Cliniko says it cannot offer troubleshooting support for this workaround.
- If knowing whether a booking came from Google Ads or a GP referral matters more than keeping patients on your domain, send the Book Online button to the hosted Cliniko page instead and follow the hosted GA4 guide.
Embed code or a booking link: which should a clinic use?
Cliniko gives every account two ways to take bookings from a website. One is a unique bookings URL you can send patients to directly, which Cliniko says works even if you have no website at all. The other is the embed code, which places the booking calendar inside your own page so patients book without leaving it. Both show the same practitioners, locations and appointment types, controlled from the same settings, and both are included in every Cliniko subscription, which Cliniko prices in US dollars with every feature on every plan.
The embed looks better and keeps the patient on your domain. The link is more robust: it needs no code block, it is never broken by a builder update, it renders on a phone exactly as Cliniko designed it, and it keeps the referral source intact for analytics. A sensible clinic site often uses both: the calendar embedded on a Book page, and a Book Online button in the header that links to the hosted page.
Where the code goes on each builder
Cliniko maintains its own articles for Wix, Squarespace and GoDaddy Website Builder, and the general embed article says the method is dependent on the platform you are using. On Wix the code goes into an Embed a widget element under Custom Embeds, and Cliniko tells you to check and resize it for both desktop and mobile before publishing. On Squarespace it goes into a Code block; Cliniko's article notes that as of July 2020 Squarespace classifies the code block as a premium feature, and Squarespace's own guide says JavaScript or an iframe in a code block needs the Core, Plus or Advanced plan. On GoDaddy Website Builder it goes into an HTML section under Files and Web.
WordPress has two cases. WordPress.com, the hosted service, lists iframe, embed and script among the tags that need a paid plan with hosting features activated, and says a paid plan alone is not enough until at least one plugin has been installed to activate those features. A self hosted WordPress site has no such limit: paste the code into a Custom HTML block. For a hand built site, the code goes in the page's HTML where the calendar should appear.
One calendar per practitioner or location
A multi location clinic rarely wants one calendar listing everything. Cliniko's bookings URL builder, under Settings, Online bookings, filters a booking page by business, practitioner and appointment type and gives you a special bookings URL for that combination. Cliniko says you can embed the unique link directly into your website and that building a custom URL does not affect your normal one. So the physio page can carry a calendar showing only physiotherapy, and the Ipswich location page only Ipswich, with the standard page untouched.
Why tracking an embedded calendar is harder than a hosted one
Cliniko runs tags from one Google Tag Manager container ID, pasted under Settings, Online bookings, and supports GA4, Google Ads, Meta Pixel, AdRoll and Bing UET inside the booking pages. Cliniko also says it prevents any external or third party code from running inside the booking pages and that GTM's Custom HTML tag is blacklisted there. The embed adds a second problem: the booking runs in an iframe, and Cliniko's guide says the referral data does not get passed from the parent website to the child iframe, so bookings may appear as Direct or as coming from your own site. Cliniko's workaround is a listener on the parent page that catches the message cliniko-bookings-page:confirmed and pushes a clinikoBookingCompleted event to the dataLayer, which Cliniko says it cannot offer troubleshooting support for. Its own recommendation is to consider redirecting to the Cliniko hosted domain if accurate conversion tracking is essential. FFP Digital, in Ipswich QLD, sets up either route for clinics across Brisbane and Ipswich and tests it with a real booking, phone 0459 567 884.
Sources
- To set up online bookings: Settings, Business information, set Display this business in online bookings to On; Settings, Users and practitioners, tick Show this practitioner in online bookings; Settings, Online bookings, tick Allow your patients to book appointments online; appointment types can be hidden under Settings, Appointment types by unticking Show in online bookings; bookings can be added to a website as a link or button, or embedded so patients book without leaving the site; the bookings URL can be used directly without a website. Cliniko Help, checked 4 Nov 2026.
- The embed code is only available to Administrators, found under Settings, Online bookings, in the section Code to embed in your website, with a Copy code button; the method of adding it is dependent on the platform; once pasted in, online bookings display directly in the website; Cliniko links separate Wix and GoDaddy articles. Cliniko Help, checked 4 Nov 2026.
- Online bookings are optional, every clinic gets a unique booking URL to share directly, bookings can be embedded with a few lines of code, patients need no login, and there are restrictions on how many appointments can be booked from one location in a short space of time. Cliniko Help, checked 4 Nov 2026.
- On Wix the Cliniko code goes into Add, Embed, Custom Embeds, Embed a widget, then Enter code; Cliniko says to move or adjust the Embed widget to the preferred location and size for both desktop and mobile, then Publish. Cliniko Help, checked 4 Nov 2026.
- On Squarespace the Cliniko code goes into a Code block, replacing the prefilled text, then Apply; Cliniko notes that as of July 2020 Squarespace classifies the code block as a premium feature and suggests a button, navigation link or text link to the booking URL otherwise. Cliniko Help, checked 4 Nov 2026.
- To add JavaScript or an iframe to a Squarespace code block, the site needs to be on the Core, Plus or Advanced plan; custom code might break the site's appearance or behaviour, especially on mobile devices; Squarespace support cannot help add or troubleshoot custom code. Squarespace Help Center, checked 4 Nov 2026.
- On GoDaddy Website Builder: Add section, Files and Web, HTML, Embed custom code on the page, paste the Cliniko code into the Custom code field, Done, then publish. Cliniko Help, checked 4 Nov 2026.
- WordPress.com allows tags such as a, div, img, table and span on all plans; embed, frame, iframe, form, input, object, textarea, script, style and link need a paid plan with hosting features activated; a paid plan alone is not enough, at least one plugin must be installed to activate the plan to accept custom code; the Custom HTML block adds raw HTML to a single page or post. WordPress.com Support, checked 4 Nov 2026.
- The bookings URL builder under Settings, Online bookings filters a booking page by business, practitioner and appointment type and produces a special bookings URL; the unique link can be embedded directly into a website; building a custom URL does not affect the normal URL. Cliniko Help, checked 4 Nov 2026.
- Every Cliniko subscription is billed monthly in US dollars, from $45 for one practitioner to $395 for 26 to 200, and includes every Cliniko feature; third party apps that integrate with Cliniko may have their own additional fees. Cliniko, checked 4 Nov 2026.
- The Google Tag Manager container ID is pasted into Cliniko under Settings, Online bookings and saved with Save online bookings settings; supported tags are Google Analytics 4, Google Ads, Meta Pixel, AdRoll Smart Pixel and Bing Ads UET; tags run in both embedded and hosted bookings, but with embedded bookings it is difficult to keep the source of each session and Cliniko recommends the hosted portal if referral tracking is essential. Cliniko Help, checked 4 Nov 2026.
- For embedded bookings, GA4 is set up as a GA4 Configuration tag in GTM triggered on All Page Views; the referral data (source) does not get passed between the parent website and the child iframe; Cliniko prevents any external or third party code from running inside the booking pages and the GTM Custom HTML tag is blacklisted; Cliniko recommends considering a redirect to the Cliniko hosted domain if accurate conversion tracking is essential and offers limited support for the GTM integration. Cliniko Help, checked 4 Nov 2026.
- Cliniko's workaround listens on the page holding the iframe for the message cliniko-bookings-page:confirmed and pushes a clinikoBookingCompleted event to the dataLayer; Cliniko cannot offer troubleshooting support for the workaround. Cliniko Help, checked 4 Nov 2026.
- FFP Digital builds clinic websites, Google reviews and online booking, wired into the practice system with confirmations and reminders; Cliniko is the one it sees most and it works with Nookal or other practice software; it does not publish a price list and quotes one fixed price after a free chat; Ipswich QLD, working with clinics across Brisbane and Ipswich; phone 0459 567 884. FFP Digital, checked 4 Nov 2026.