---
key: put-the-booking-page-on-your-website
title: Put your booking page on your website
audience: staff
section: settings
routes: ["/settings/org/public-booking", "/settings/org/public-booking/surfaces/:surfaceUid/:workspace?"]
permissions: ["org.settings.public_booking.read"]
features: ["settings.org.public-booking"]
since: 0.0.1
updated: 0.0.1
status: published
summary: Copy the hosted link to your booking page for ads, emails and QR codes, or copy the embed code that shows the booking page inside your own website, and allow your site's address to use it.
keywords: [booking link, embed booking, book now button, website booking form, iframe, wordpress booking, copy booking url, share booking page, qr code booking]
related: [set-up-a-public-booking-page, set-shared-branding-for-public-pages, read-public-booking-analytics]
---

In the sidebar, open **Settings**, then choose **Online Booking** under **Website & Forms**. Select your surface, then open the **Delivery** tab. The page address is `/settings/org/public-booking`.

There are two ways to get customers to the page: a link to the page Nova hosts, or a piece of code your web person pastes into your site so the booking page appears inside it. The link is the fastest and needs no help from anyone.

## Before you start

- The surface must be published, with **Enable public booking** on. See [[set-up-a-public-booking-page]]. Until then the guides say **Disabled**: the link already shows, but customers cannot book through it yet.
- To embed the page in your website you also need **JS embed and iframe** on under **Surface access policy** on the **Details** tab. It is on unless someone turned it off.

## Steps

To share a link:

1. On the **Delivery** tab, find the **Hosted page** guide under **Website integration flows**.
2. Next to **Hosted URL**, press **Copy**. The default surface's link is your organization's main booking address.
3. Paste it into your website's Book now button, your ads, your email signature or a QR code generator.
4. Open it in a private browser window to see exactly what a customer sees.

To show the page inside your own website:

1. Optional but safer: on the **Details** tab, under **Surface access policy**, set **Embedded origin policy** to **Allow-list only** and type your website's address under **Allowed origins**, one per line, such as `https://www.example.com`. Press **Save surface**. With the standard **Allow any origin**, any website can show your booking page.
2. Back on the **Delivery** tab, in the **JS embed** guide, press **Copy** under **JS embed snippet**. Send it to whoever edits your website; they paste it where the booking page should appear.
3. If your site builder will not accept that code, use the **Iframe fallback** guide and copy the **Iframe fallback snippet** instead.
4. If your site runs on WordPress, the **WordPress plugin and thin adapter** guide has the shortcode to paste.

## What you see

- Each guide shows a **Ready** or **Disabled** status, a **Best for** line, **Implementation** steps, **Caveats** and **Troubleshooting**.
- The delivery health panel below lists **Hosted**, **JS embed**, **Iframe fallback** and **Direct API** with **Ready**, **Enabled** or **Disabled**, so you can see at a glance which routes are live.
- **Embed code generator** further down makes other versions of the code, such as **Modal / popup**, **Floating bubble** or a link that opens on one service.
- Blocked visits and failures for this surface are under **Open operations**, then **Support Tools**. **Open analytics** takes you to booking reports. See [[read-public-booking-analytics]].

## If something looks different

- The **Hosted page** guide says **Disabled**: the surface is not published (**Enable public booking** is off) or **Hosted page** is off under **Surface access policy**.
- The embed shows a blocked message on your website: your site's address is not under **Allowed origins**, or **Embedded origin policy** is **Same Nova origin only**. Add the address exactly as the browser shows it, including `https://`.
- The embed works when you preview it in Nova but not on your live site: test from the live site's address. The allow list checks the real address, not the preview.
- **Direct API surface** is for custom-built websites. You do not need it for a link or an embed.

[[route:/settings/org/public-booking|Open Public Booking]]
