
01
Make your event type
Set up your event in Cal.com with your preferred settings and availability.

02
Choose the embed type
Pick a format (inline, pop up, button, or email) and copy the generated code.

03
Adjust your embed and publish
Add the code to your website or app. Your scheduler will be live instantly!

01
Inline embed
Display the booking calendar directly in your page layout. This is the most popular and seamless option for real-time scheduling on your website.

02
Floating pop-up button
Use a persistent button that triggers a scheduling modal. Boosts conversion without disrupting your website page design.

03
Pop-up via element click
Link the embed to a custom element like a button or image. Control exactly how and when users start the booking process.

03
Email embed
Add personalized booking links in email campaigns that open a pre-filled booking form. Ideal for outreach and follow-ups.

1
// Style Atoms with Javascript
2
3
const appearance = {
4
theme : Custom ,
5
variables : {
6
fontFamily : ' Comic sans ' ,
7
colorPrimary : ' #101010 ' ,
8
colorBackground : ' #ffffff ' ,
9
colorText : ' #374151 ' ,
10
borderRadius : ' 6px ' ,
11
spacingUnit : ' 8px ' ,
12
}
13
} ;
14
const atoms = cal.atoms ( { clientSecret , appearance } ) ;
15

01
Increase website conversions with embedded scheduling
Keep users on your site and reduce booking drop off. Cal.com embeds offer a faster, more intuitive way to convert visitors into meetings.
02
Match your brand with customizable embed formats
Use inline embeds, pop ups, or buttons to align with your site layout and branding. Customize colors and styles to create a seamless experience.


03
Fast setup and complete control
Generate your embed code, paste it into your site, and go live. You manage the full booking flow from start to confirmation without sending users away.
Dynamic embed snippet generator
Generate code tailored to your Cal.com setup, including support for teams, self-hosted environments, and advanced routing.
Multiple embed formats
Choose between inline views, buttons, or modals based on how you want to trigger the booking flow.
Add or limit available time slots
Show only specific time slots in an embed based on the context or user type. Control availability without changing your core event settings.
Prefill booking form fields
Use query parameters to automatically prefill name, email, or custom fields for a faster and more personalized booking experience.
Track UTM parameters in embeds
Embed captures UTM source, medium, campaign and other values so you can attribute bookings to the right channels.
Mobile-optimized out of the box
Every embed is responsive and works across screen sizes. No additional setup is needed for mobile users.
What is Cal.com embed?
Cal.com Embed allows you to integrate a fully functional scheduling widget directly into your website or app, enabling users to book appointments without leaving your site. You can embed the widget as an inline calendar, a floating pop-up button, a pop-up triggered by a specific element click, or a link in your emails. This seamless integration enhances the user experience and improves booking conversion rates by keeping visitors engaged on your page.
How do I embed Cal.com on my site?
Embedding Cal.com on your website is simple. First, create your event type and configure its settings and availability in the Cal.com dashboard. Once your event is set up, go to the Embed Snippet Generator in your dashboard, select your preferred embed format (inline, floating button, click-triggered pop-up, or email embed), and copy the generated code. Then, paste the code directly into your HTML, CMS, or frontend framework. Your booking widget will be live and ready for use immediately, fully synced with your Cal.com account.
Can I track marketing campaigns with embedded bookings?
You can manually append UTM tracking parameters to the embed URLs. This allows you to track source, medium, campaign, and other key parameters when users interact with the booking widget. By passing UTM parameters via the link, you can attribute bookings to specific marketing efforts, campaigns, or traffic sources.
Can I prefill user info in the booking form?
Yes, you can prefill fields in the booking form using URL query parameters. This means you can automatically populate fields like the user's name, email, or any custom fields you've set up. For example, you can send a personalized booking link in an email that already has the user's name and email prefilled. This makes the booking process faster and more user-friendly, reducing friction and improving conversion rates. Learn more about pre-filling forms in our documentation.
What embed formats are supported?
Cal.com supports four key embed formats to suit various needs:
Inline Embed: Display the calendar directly within your page layout for seamless user interaction.
Floating Pop-up Button: Add a persistent button that triggers the booking modal without disrupting the page layout.
Pop-up via Element Click: Trigger the scheduling modal from any custom element, like a button or image.
Email Embed: Include a pre-filled booking form link within your emails for easy and personalized scheduling.
Each format is designed to provide flexibility in how you display and interact with your scheduling system, depending on your website design and user flow.
Can I control which time slots show in an embed?
Yes, you can fully customize the booker UI using Cal.com’s booker atom. The booker atom is an open-source, modular component that lets you build and style your own booking flow. You can adjust the layout, replace form fields, or completely redesign the booking experience to match your brand’s look and feel. By using individual booker atoms like DatePicker, TimeSelector, and ContactForm, you can have fine-grained control over each element of the booking process. This gives you the flexibility to create a tailored and branded experience within your app or website. For more details, visit our booker atom documentation.
Does embed work with self-hosted Cal.com?
Yes, the embed feature works with both cloud-hosted and self-hosted Cal.com setups. Whether you're using Cal.com’s hosted version or deploying it on your own infrastructure, the embed functionality remains fully operational. Snippet generation is dynamically scoped based on your setup, and you can configure it to work seamlessly within your self-hosted environment.
Embed an online booking widget into your website instantly with Cal.com
Start embedding scheduling into your site today. No plugins or redirects. Just clean, fast, high-converting booking.
















