Embed loader reference

Every container attribute the embed loader reads, for both widgets, in one place.

Available onFreePlusPro

One script, https://cdn.rentalbeam.com/v1/embed.js, powers both widgets. It scans the page for container elements and reads the attributes below off each one. This page is the flat list, for whoever writes the HTML on your site. If you are looking for the snippet to paste, the embed guides linked from each row have it, with the attribute already in place.

Availability calendar: .rentalbeam-calendar

.rentalbeam is the legacy class name and is accepted forever alongside it.

AttributeValuesDescription
data-rental-idstringCalendar ID for a single rental. Required unless data-collection-id is set.
data-collection-idstringCollection ID: routes to the collection availability embed instead. See Collections.
data-viewcombined | timeline | tabsCollection view mode. Only used with data-collection-id; defaults to combined.
data-months-per-rowinteger 1-15Month columns per row. Default 3.
data-rowsinteger 1-15Rows of months. Default 1.
data-month-scalefloat 0.8-1.6Scale multiplier for each month card. Default 1.0.
data-themelight | darkForces a theme. Omit to auto-match the host page. See URL parameters.
data-calendar-languagestringForces the widget language to one of the 25 supported codes. See Languages.
data-calendar-id, idstringLegacy id attributes from previously issued snippets. Still accepted; prefer data-rental-id in new snippets.

Booking widget: .rentalbeam-booking-form

AttributeValuesDescription
data-rental-idstringRental ID for a single rental. Required unless data-collection-id is set, or unless the container carries no id at all and waits for one (see below).
data-collection-idstringCollection ID: routes to the collection booking widget. See Collections.
data-pickercards | dropdownCollection member-picker mode. Only used with data-collection-id; omit for the dates-first default.
data-multi-request"true"Lets a guest request additional collection members for the same dates. Only used with data-collection-id.
data-rb-entry"calendar" | "searchbar"calendar opens the form with its calendar showing; searchbar renders a compact search bar instead of the full form. Omitted, the form starts compact. See Embed the booking widget.
data-couponstringAuto-applies a coupon code on load.
data-rb-checkinYYYY-MM-DDPrefills check-in.
data-rb-checkoutYYYY-MM-DDPrefills check-out.
data-rb-guestsintegerPrefills guest count.
data-themelight | darkForces a theme. Omit to auto-match the host page.
data-calendar-languagestringForces the widget language to one of the 25 supported codes.
data-calendar-id, idstringLegacy id attributes from previously issued snippets. Still accepted; prefer data-rental-id in new snippets.

Opening the widget programmatically

The loader also installs window.RentalBeam.openBooking(...) for launching the booking widget from your own button or search bar. See Embed the booking widget.

Page code that cannot call that function can send the same instruction as a message instead: { source: 'rentalbeam-host', event: 'booking.open', data: { rentalId, checkIn, checkOut, guests } }, posted into the frame that holds the embed. A site builder that runs your embed code inside a frame of its own is the usual reason: its page code cannot reach inside that frame. Wix Velo, posting into the Embed Code element, is the worked example. Wait for the embed's widget.ready event before posting, since the frame may not be loaded when page code runs. The full shape is on postMessage events.

A container that waits for its id

A .rentalbeam-booking-form container may be left with no id on it at all. Nothing renders until RentalBeam.openBooking or a booking.open message names a rental or a collection, and the loader then mounts that container as it, with any prefill already applied. That is how one page template serves many rentals: a Wix dynamic page, or any CMS template. The recipe is Search then book on another page.

Query parameters on the page address

The loader reads ?checkin, ?checkout and ?guests off the page address and prefills the widget with them, but only when the script runs directly on the page. Inside a builder's own frame it cannot see the address, and Wix and Google Sites both work that way, so the query has to be read in page code and sent in with booking.open.

Every attribute here is additive and optional beyond the id: a bare container with just data-rental-id renders the default widget. Attributes not listed here, and any legacy id form not listed above, are not read by the loader.