Back to Overview

Embedding Your Widget

Add your booking widget to any website using one of four flexible embedding methods. Works seamlessly with WordPress, Webflow, Wix, custom sites, and more.

Before You Start

Your booking page must be active to embed it. Make sure you have:

At least one active meeting type configured
Your calendar connected and syncing
Your availability schedule set up
Your profile completed

Check Your Status

Visit Dashboard → Embed & Share to see if your booking link is ready. If it's deactivated, you'll see exactly what needs to be completed.

🎯 Four Embedding Methods

1. Inline Embed

Embeds directly into your page content. Perfect for dedicated booking pages.

2. Popup Modal

Opens in a fullscreen overlay. Great for CTAs and hero sections.

3. Direct Link

Simple hyperlink to your booking page. Easiest option for emails and social media.

4. Floating Button

Fixed button in corner. Always visible as users scroll through your site.

1 Inline Embed (Recommended)

The inline embed places your booking widget directly into your page content. It's the most seamless integration option.

Basic Usage

<div id="tymeslot-booking" data-username="your-username"></div>
<script src="https://your-domain.com/embed.js"></script>
Best For:
  • Dedicated booking pages
  • Service or product pages
  • Contact pages

2 Popup Modal

The popup modal opens your booking widget in a fullscreen overlay when triggered by a button or link.

Basic Usage

<button onclick="TymeslotBooking.open('your-username')">
  Book a Meeting
</button>
<script src="https://your-domain.com/embed.js"></script>

Trigger from Any Element

You can trigger the popup from links, images, or custom buttons:

<!-- From a link -->
<a href="#" onclick="TymeslotBooking.open('your-username'); return false;">
  Schedule a Call
</a>

<!-- From a styled button -->
<button class="my-custom-button" onclick="TymeslotBooking.open('your-username')">
  📅 Book Your Free Consultation
</button>
Best For:
  • Call-to-action buttons in hero sections
  • Navigation menu items
  • Promotional banners

3 Direct Link (Easiest)

The simplest option—just link directly to your booking page. No JavaScript required!

Basic Usage

<a href="https://your-domain.com/your-username">
  Schedule a meeting
</a>
Best For:
  • Email signatures
  • Social media bios (LinkedIn, Twitter, Instagram)
  • Email campaigns and newsletters

4 Floating Button

A fixed button that stays visible in the corner of the page as users scroll—like a chat widget for booking.

Basic Usage

<script src="https://your-domain.com/embed.js"></script>
<script>
  TymeslotBooking.initFloating('your-username');
</script>

Customize Button Color

TymeslotBooking.initFloating('your-username', {
  buttonColor: '#14B8A6'  // Tymeslot Turquoise
});
Best For:
  • Multi-page websites where booking should always be accessible
  • Corporate websites
  • Landing pages where you want maximum visibility

🌐 Platform-Specific Integration Guides

Step-by-step instructions for popular website builders. Each platform has its own way of adding custom code—we've got you covered.

🔷

WordPress

MOST POPULAR

WordPress supports custom HTML blocks in both the Classic and Block (Gutenberg) editors. This method works for all WordPress versions 5.0+.

1
Open Your Page Editor

Navigate to Pages → Add New or edit an existing page. Make sure you're using the Block Editor (Gutenberg).

2
Add a Custom HTML Block

Click the + button where you want to embed, then search for "Custom HTML" or "HTML".

💡 Tip: You can also type /html directly in the editor as a shortcut.

3
Paste Your Embed Code

Copy the inline embed code from your Tymeslot dashboard and paste it into the HTML block.

<div id="tymeslot-booking" data-username="your-username"></div>
<script src="https://your-domain.com/embed.js"></script>
4
Preview & Publish

Click Preview to see how it looks, then Publish or Update your page.

⚠️ Common WordPress Issues:

  • • If using a page builder like Elementor or Divi, look for their "HTML" or "Code" widget instead.
  • • Some themes may strip JavaScript—ensure your theme allows custom scripts.
  • • If the widget doesn't load, check if a caching plugin is preventing the script from running. Clear your cache after adding the code.
💠

Webflow

DESIGNER FRIENDLY

Webflow's visual designer makes it easy to add custom embeds. You can place the widget anywhere in your layout with pixel-perfect precision.

1
Open the Webflow Designer

Select the page where you want to add the booking widget and open it in the Designer.

2
Position Your Cursor

Click on the container or section where you want the widget to appear. Make sure the parent element has enough height for the widget (recommended: 700px minimum).

💡 Tip: Create a dedicated div block with a class like "booking-widget-container" for better control.

3
Add an Embed Element

From the Add Panel on the left, drag an Embed element (under Components) into your container.

Location: Add Panel → Components → Embed (HTML)
4
Paste Your Code

A code editor will open automatically. Paste your Tymeslot embed code and click Save & Close .

5
Preview & Publish

Click the eye icon (Preview) to test the widget in action, then Publish your site when ready.

⚠️ Note: Embeds don't render in the Designer—you must preview or publish to see them.

🎨 Webflow-Specific Tips:

  • • Set the embed element's height to at least 700px for best display.
  • • If using a floating button, add it to your global site-wide custom code (Project Settings → Custom Code → Footer Code).
  • • For popup modals, ensure your button has position: relative or higher z-index than other elements.

Wix

DRAG & DROP

Wix's drag-and-drop editor makes embedding straightforward with its dedicated HTML iframe element. Works in both the classic editor and Wix Studio.

1
Open the Wix Editor

Log in to your Wix account and click Edit Site to open the editor for your chosen page.

2
Add a Custom Embed

Click the Add (+) button on the left sidebar, then navigate through the menus:

Path:

Embed → Embed a Widget → HTML iframe

💡 Alternative: Search for "HTML" in the Add panel for faster access.

3
Configure the HTML Element

An HTML iframe box will appear on your page. Click Enter Code in the settings panel that opens.

Make sure "Code" is selected (not "Website Address") at the top of the settings panel.

4
Paste Your Embed Code

Copy the embed code from your Tymeslot dashboard and paste it into the code editor.

<div id="tymeslot-booking" data-username="your-username"></div>
<script src="https://your-domain.com/embed.js"></script>
5
Resize & Position

Drag the corners of the HTML element to resize it. Recommended minimum size: 800px wide × 700px tall .

💡 Tip: Use the alignment guides to center the widget on your page.

6
Click Update & Publish

Click Update in the settings panel, then Publish your site to make it live.

🔧 Wix Troubleshooting:

  • • If the widget appears blank, ensure the iframe has sufficient height (at least 700px).
  • • Wix may show a "Loading..." message briefly—this is normal as it loads the external content.
  • • For Wix Studio users: The process is identical, but the "Embed" option is in the Elements panel.
  • • Make sure HTTPS is enabled in your Wix site settings (Settings → Advanced → HTTPS).

Squarespace

PREMIUM

Squarespace's Code Block makes it simple to embed custom HTML. This works on all Squarespace plans, including version 7.0 and 7.1 templates.

1
Enter Edit Mode

Navigate to the page where you want to add the widget, then click Edit in the top left.

2
Choose Your Insertion Point

Hover over the area where you want to add the widget. Click the + (insert point) that appears between content blocks.

💡 Tip: You can place the widget in any column layout or section.

3
Add a Code Block

From the block menu, search for or select Code . You'll find it under the "More" category.

Path:

Insert Point → More → Code

4
Configure Code Block Settings

A code editor will appear. Make sure:

  • Display Source: Unchecked (hide raw code from visitors)
  • Mode: Set to HTML
5
Paste Your Embed Code

Copy your Tymeslot embed code from the dashboard and paste it into the code editor.

<div id="tymeslot-booking" data-username="your-username"></div>
<script src="https://your-domain.com/embed.js"></script>
6
Apply & Save

Click Apply to close the code editor, then click Save in the top left to publish your changes.

⚠️ Changes won't appear until you click Save.

🎯 Squarespace-Specific Tips:

  • • For site-wide floating buttons, add the code in Settings → Advanced → Code Injection → Footer .
  • • The code block has a minimum height—if your widget doesn't fit, drag the bottom edge to expand it.
  • • Squarespace 7.0 and 7.1 use slightly different interfaces, but the Code Block is available in both.
  • • Test on mobile: Squarespace's responsive design should automatically handle the widget, but preview to confirm.
🛍️

Shopify

E-COMMERCE

Perfect for booking product consultations, personal shopping sessions, or customer support calls. Integrates seamlessly with your Shopify store.

1
Navigate to Pages

In your Shopify admin, go to Online Store → Pages . Create a new page or edit an existing one (e.g., "Book a Consultation").

2
Switch to HTML Editor

In the page content editor, click Show HTML (looks like <>) in the toolbar.

💡 This reveals the raw HTML behind your page content.

3
Paste Your Embed Code

Find where you want the widget to appear and paste your Tymeslot embed code.

<div id="tymeslot-booking" data-username="your-username"></div>
<script src="https://your-domain.com/embed.js"></script>
4
Save Your Page

Click Save in the top right. The widget will now be live on your Shopify store page.

💼 E-commerce Use Cases:

  • Product Consultations: Add a "Book a Consultation" button on product pages for high-ticket items.
  • Personal Shopping: Create a dedicated "Personal Shopper" page for VIP customers.
  • Custom Orders: Let customers book calls to discuss custom products or bulk orders.
  • Customer Support: Offer video support sessions for complex product questions.

🎯 Shopify-Specific Tips:

  • • For theme-wide access, add the floating button code to Online Store → Themes → Actions → Edit Code → theme.liquid (before </body>).
  • • Link to your booking page from the main navigation menu for easy customer access.
  • • Consider creating a special meeting type specifically for product consultations with custom questions.

Custom HTML / Static Sites

DEVELOPER

For developers working with plain HTML, React, Vue, Next.js, or any other framework. Full control over placement and styling.

1
Add to Your HTML

Simply paste the embed code anywhere in your HTML body:

<body>
  <!-- Your content -->
  
  <div id="tymeslot-booking" data-username="your-username"></div>
  <script src="https://your-domain.com/embed.js"></script>
</body>
2
For React/Vue/Next.js

Load the script in your layout or component:

// In React/Next.js
useEffect(() => {
  const script = document.createElement('script');
  script.src = 'https://your-domain.com/embed.js';
  script.async = true;
  document.body.appendChild(script);
  
  return () => {
    document.body.removeChild(script);
  };
}, []);
3
Programmatic Control

Use the JavaScript API for dynamic behavior:

// Open modal programmatically
document.getElementById('my-button').addEventListener('click', () => {
  TymeslotBooking.open('your-username', {
    theme: '2',
    primaryColor: '#4F46E5'
  });
});

// Embed dynamically
TymeslotBooking.embed('#container', 'your-username');

🔧 Developer Tips:

  • • The script loads asynchronously and won't block page rendering.
  • • TypeScript definitions available: Check our GitHub for type declarations.
  • • CSP (Content Security Policy): Allow script-src 'self' your-domain.com .
  • • The widget is responsive by default and adapts to its container width.

📋 Quick Reference: Which Platform?

Platform Best For Difficulty Recommended Method
WordPress Blogs, business sites, portfolios Easy Inline Embed
Webflow Designer portfolios, agencies Easy Inline Embed
Wix Small businesses, personal sites Moderate Inline Embed
Squarespace Creative professionals, boutiques Easy Inline Embed
Shopify E-commerce, consultations Easy Inline or Popup
Custom HTML Developers, full control Easy Any method

⚙️ Advanced Customization

You can pass customization options to tailor the widget to your needs. This allows you to match your brand's look and feel perfectly.

Accepted Parameters
  • theme: '1' (Quill) or '2' (Rhythm)
  • primaryColor: Hex code (e.g., '#14B8A6')
  • locale: ISO code (e.g., 'en', 'de', 'fr')
Security Note

All inputs are strictly validated. Invalid formats will be ignored to ensure widget stability and security.

TymeslotBooking.open('your-username', {
  theme: '2',               // Theme ID (1=Quill, 2=Rhythm)
  primaryColor: '#14B8A6',  // Tymeslot Turquoise
  locale: 'en'              // Force language
});

HTML Data Attributes

For standard inline embeds, you can use data- attributes to customize the widget directly in your HTML:

<div id="tymeslot-booking"
     data-username="your-username"
     data-width="100%"
     data-height="750px"
     data-theme="2"
     data-primary-color="#4F46E5"
     data-locale="en">
</div>

Programmatic Inline Embed

Embed the widget into any element dynamically using our JavaScript API:

// Embed into a specific container
TymeslotBooking.embed('#my-container', 'your-username', {
  theme: '1',
  primaryColor: '#14B8A6',
  locale: 'en'
});

🔧 Troubleshooting

Widget Not Appearing?

  • Verify your booking link is active in Dashboard → Embed & Share
  • Check that the username in your code is exactly as shown in your dashboard
  • Make sure the script URL correctly points to your Tymeslot instance
  • Open browser console (F12) to check for any JavaScript or network errors

"TymeslotBooking is not defined" Error?

The embed script must load before you call any functions. Make sure the <script> tag is present on the page and has finished loading.

Mobile Responsiveness Issues?

The widget is responsive, but your website must be too. Ensure your page has a proper viewport meta tag in the <head>:

<meta name="viewport" content="width=device-width, initial-scale=1">

HTTPS Required

The embed widget requires HTTPS on both your Tymeslot instance and the website where you're embedding. This is necessary for security, browser compatibility, and OAuth integrations.

Security & Domain Control

Protect your booking page from unauthorized embedding

Security First: Domain Whitelisting

By default, embedding is disabled to protect your booking page from unauthorized use. To enable embedding, you must specify the domains you trust.

For enhanced security and brand control, you must restrict embedding to only specific domains you trust. This prevents your booking page from appearing on unauthorized websites.

How to Configure Domain Whitelisting

  1. 1

    Navigate to Security Settings

    Go to your dashboard and open the Embed & Share section.

  2. 2

    Open the Security Section

    Click the Configure button in the "Security & Domain Control" panel.

  3. 3

    Add Trusted Domains

    Enter comma-separated domains you want to allow (e.g., example.com, myportfolio.net).

    Don't include https:// or specific page paths
  4. 4

    Save Your Settings

    Click Save Security Settings to apply the restrictions immediately.

What This Protects Against

Unauthorized Embedding

Prevents your booking page from appearing on websites you don't approve

Brand Control

Stops competitors from making it look like you're affiliated with their services

Clickjacking Risks

Reduces the risk of UI redressing attacks and malicious overlays

💡

Pro Tip: Embedding is blocked by default. You must add at least one domain to enable it for your website.

🚀

Ready to Get Started?

Head to your dashboard to get your personalized embed codes with live previews. You can test each embedding method before adding it to your site.

Go to Your Dashboard

🔗 Related Articles

Read Docker Self-Hosting

Docker Self-Hosting

Deploy Tymeslot using Docker and Docker Compose. Perfect for VPS hosting, home servers, or any environment with Docker support.

Read Cloudron Deployment

Cloudron Deployment

One-click installation on Cloudron. Automated backups, SSL certificates, and updates handled automatically.

Read n8n Automation

n8n Automation

Connect Tymeslot to n8n via webhooks. Automate your scheduling workflows, sync CRM data, and send notifications.