Skip to content
EN/FR
Contact
EMDASH / BOOKING EMBED

Less back and forth. More bookings.

Bring Cal.com and Calendly to your EmDash website. Let visitors choose a time through a button, a calendar window or a block in your content.

Get the plugin on npm ↗

Available now · Free · MIT licence · Native plugin

A calendar, where you need it.

Use a floating button, your own call to action, or an inline Booking calendar block in the editor.

Cal.com or Calendly.

Connect your existing HTTPS booking link. Self-hosted Cal is supported too. Choose a calendar window or a new tab.

Load when it matters.

The calendar loads on click by default. Inline blocks can also load when they scroll into view. Customise button text, colour and page rules.

GET STARTED

Install. Connect. Book.

Install this native plugin in your Astro project from npm. It runs with your site’s authority. Keep your existing EmDash configuration and other plugins.

1. Add the package

pnpm add @sneaps/booking-embed

2. Register in astro.config.mjs

import { bookingEmbed } from "@sneaps/booking-embed";

// Inside your existing EmDash configuration:
emdash({
  plugins: [bookingEmbed()],
  // Keep your other plugins and settings.
});

3. Rebuild, deploy and configure

Open Plugins in the EmDash admin, then the booking-embed settings. Save your HTTPS booking link, choose the service and configure your button. In the editor, type / and choose Booking calendar to add an inline block.

A few things to know.

Do I need an API key?+

No. Paste your public HTTPS booking link into the plugin settings. The plugin is free under MIT; Cal.com and Calendly have their own plans.

How do I use my own button?+

Add data-booking-open to a real link or button. A link keeps its own destination as a fallback without JavaScript.

When are third-party scripts loaded?+

By default, only after a visitor clicks. An inline block set to load on visibility also loads as it enters the viewport. The booking service then applies its own cookie and privacy policies. To avoid loading it on your site, choose the new-tab mode.

Does it store or track bookings?+

The plugin stores no booking data. Optional booking_completed events to existing GTM or PostHog integrations are off by default and include only the service name. Passing name, email and UTM parameters is also opt-in.

What happens if the embed cannot load?+

If the service script fails to load, visitors are sent to your booking page. Without JavaScript, the plugin buttons are regular links to that page.

Does it sync calendars or support Google Calendar?+

It embeds your booking page. It does not read bookings, send emails or sync calendars itself. Google Calendar appointment schedules are not supported.

Make room for the next conversation.

Read the documentation on npm ↗

Cal.com and Calendly are trademarks of their owners. This plugin is not affiliated with or endorsed by either service.