Booking embeds
Replace the workspace/event placeholders with your actual published booking link. Inline embeds resize within 200–4000px. Popup embeds use a native accessible dialog with keyboard focus, Escape-to-close and focus return. The module accepts only same-application /book/workspace/event URLs; no API keys, management tokens or contact fields belong in an embed.
Inline
<div data-meetvanta-url="https://meetvanta.co.uk/book/YOUR-WORKSPACE/YOUR-EVENT"></div> <script type="module" src="https://meetvanta.co.uk/meetvanta-embed.js"></script>
Popup
<button type="button" data-meetvanta-url="https://meetvanta.co.uk/book/YOUR-WORKSPACE/YOUR-EVENT">Book a meeting</button> <script type="module" src="https://meetvanta.co.uk/meetvanta-embed.js"></script>
Messages are accepted only from the exact booking origin and the mounted iframe window. The child pins the initiating parent window/origin and sends only a bounded resize value; it sends no booking identifiers, management links or contacts. Include the module once after your markup. For dynamic content, import mountInline or mountPopup from the module and call the returned cleanup function when removing the widget. Allow the exact app origin in your site's script-src/frame-src CSP. Host this module with cross-origin access enabled; verify iframe policy, cookies and Server Actions against the actual HTTPS deployment before publishing your embed.