You can embed the Simply Schedule Appointments booking form on any website — Wix, Squarespace, a static HTML page, or any other platform that allows custom HTML/JavaScript.
The booking form will load as an inline iframe wherever you place the snippet.
Here's what the embed snippet looks like (your site URL will be filled in automatically):
<script type="text/javascript">
(function(d) {
const pScript = d.currentScript;
var xhr = new XMLHttpRequest();
xhr.open('GET', 'https://YOUR-SITE.com/wp-json/ssa/v1/embed_booking_app/', true);
xhr.onreadystatechange = function () {
if (xhr.readyState === 4 && xhr.status === 200) {
var script = d.createElement('script');
script.type = 'text/javascript';
script.text = eval(xhr.responseText);
pScript.parentNode.insertBefore(script, pScript);
}
};
xhr.send();
})(document);
</script>
Place this wherever you want the booking form to appear in your page's HTML. No additional CSS or JavaScript is needed — the snippet loads everything automatically.
The Settings → Embed SSA page lets you configure the embed before copying the snippet:
The generated snippet updates automatically as you change these options. Copy it once you're happy with the configuration.
When a visitor loads your external page:
'unsafe-eval' in your script-src directive and allow frame-src for your WordPress domain.https://YOUR-SITE.com/wp-json/ssa/v1/embed_booking_app/ directly in your browser. You should see JavaScript code, not an error page.overflow: hidden or a fixed height).ga or gtag), Google Tag Manager (dataLayer), Facebook Pixel (fbq), and Segment (analytics) on your page. Make sure your analytics scripts load before the SSA embed snippet.postMessage events to verify the iframe is sending them.If you need more control, you can skip the snippet and embed the booking iframe directly:
<iframe
src="https://YOUR-SITE.com/wp-json/ssa/v1/embed-inner?types=1,2&accent_color=0066cc"
style="width: 100%; border: none; min-height: 600px;"
></iframe>
| Parameter | Example | Description |
|---|---|---|
types |
1,2,5 |
Show only specific appointment types (comma-separated IDs) |
label |
consultation |
Filter by appointment type label/slug |
accent_color |
0066cc |
Primary color (hex value without #) |
background |
f5f5f5 |
Background color (hex value without #) |
font |
Roboto |
Font family name |
padding |
20 |
Internal padding in pixels |
availability_start_date |
2024-06-01 |
Earliest date to show availability |
availability_end_date |
2024-12-31 |
Latest date to show availability |
Note: When using a direct iframe, you won't get automatic height resizing or analytics tracking. For those features, include these scripts on your page:
<script src="https://YOUR-SITE.com/wp-content/plugins/simply-schedule-appointments/assets/js/iframe-outer.js"></script>
<script src="https://YOUR-SITE.com/wp-content/plugins/simply-schedule-appointments/assets/js/ssa-tracking.js"></script>
/wp-json/ssa/v1/.