Bookings

Bookings on your website

One link and one line of code. Guests pick a night and pay the deposit in a popup on your site, and payments never touch your page.

Your booking page already works on its own, so the link can go anywhere. Adding one script turns every link to it into a popup on your site, so guests book without leaving.

In your dashboard, open Settings › Website. Your link looks like this:

https://mosh.events/v/your-venue/book

Use it as any button's URL, in your Instagram bio, or as the Reserve link on your Google Business Profile. It works with no code at all. your-venue is a placeholder; Settings › Website shows every snippet on this page with your real venue slug filled in.

Step 2: Paste the script once

Into your site's code injection or footer (the exact spot for each builder is below):

<script async src="https://mosh.events/embed.js"></script>

It's one line and loads nothing until someone clicks.

That's it. Every button, link or menu item on your site that points at your booking link now opens the booking window on your page instead of leaving it.

Ready-made button

Don't want to style a button? Paste this into a Code Block or HTML embed and you get a styled button that opens the popup, script and button in one paste. Add mosh-button--light to the class for the outlined version.

<script async src="https://mosh.events/embed.js"></script>
<a class="mosh-button" href="https://mosh.events/v/your-venue/book">Book a private event</a>

Click either button below to see what your guests get. It opens the demo venue; nothing is charged.

Book a private event Book a private event

Floating button

Can't edit your buttons at all? Add data-mosh-fab to the script tag and a "Book" button floats in the corner of every page:

<script async src="https://mosh.events/embed.js"
  data-mosh-fab="your-venue"
  data-mosh-fab-label="Book a private event"></script>

Where the script goes on each builder

BuilderScript (site-wide)Button instead (no site-wide code)
SquarespaceSettings › Advanced › Code Injection › Footer, then Save. Needs the Business plan or higher.Add a Code Block (+ › Code) to any page and paste the ready-made button.
WixSettings › Custom Code › Add Custom Code. Place in Body – end, on all pages, then Apply.Add an Embed HTML element and paste the ready-made button.
WebflowProject Settings › Custom Code › Footer Code. Save, then Publish.Drop an Embed element on the page and paste the ready-made button.
WordPressAppearance › Theme File Editor › footer.php, before </body>. Or a header/footer-scripts plugin such as WPCode.Add a Custom HTML block and paste the ready-made button.
ShopifyOnline Store › Themes › Edit code › theme.liquid, before </body>.Add a Custom Liquid section and paste the ready-made button.
Anything elseAnywhere before </body>.Paste the ready-made button wherever it should appear.

On the Squarespace Personal plan there's no Code Injection. Use your booking link as a normal button URL; it opens your hosted booking page on Mosh.

Testing it

Click your button. The popup should open with your packages. If it navigates to mosh.events instead, the script isn't loading on that page; check the placement above. Either way, the guest can still book.

Questions venues ask

Does it work on mobile? Yes. Under 640px the popup becomes a full-screen sheet, and the booking flow is built for phones first.

What if my site blocks scripts? The link still works. It opens your hosted booking page on Mosh instead of a popup, so nothing breaks.

Can I style the button? Yes. Any element works with your own CSS. The mosh-button class is optional and only styles elements that carry it.

Which plan do I need? On Mosh, bookings. On Squarespace, Code Injection needs Business or higher; the booking link and the Code Block button work on any plan. Other builders allow custom code on their standard plans.

For the attributes, deep links, the JavaScript API and security details, see the developer pages, starting with Website embed.