Set up your embed
Display types
Assuming that you have followed the steps of installing and initializing the snippet, you can show the embed in the following ways:
Inline
Show the embed inline inside a container element. It would take the width and height of the container element.
Popup
To show the embed as a popup on clicking an element, add data-cal-link
attribute to the element.
Supported Instructions
Consider an instruction as a function with that name and that would be called with the given arguments.
inline
inline
Appends embed inline as the child of the element.
elementOrSelector
- Give it either a valid CSS selector or an HTMLElement instance directlycalLink
- Cal Link that you want to embed e.g. john. Just give the username. No need to give the full URL https://cal.com/john. It makes it easy to configure the calendar host once and use as many links you want with just usernames
ui
ui
Configure UI for embed. Make it look part of your webpage.
styles
- It supports styling forbody
andeventTypeListItem
. Right now we support just background on these two.
preload
Usage:
If you want to open cal link on some action. Make it pop open instantly by preloading it.
calLink
- Cal Link that you want to embed e.g. john. Just give the username. No need to give the full URL https://cal.com/john
Actions
You can listen to an action that occurs in embedded cal link as follows. You can think of them as DOM events. We are avoiding the term "events" to not confuse it with Cal Events.
Following are the list of supported actions.
eventTypeSelected
When user chooses an event-type from the listing.
eventType:object // Event Type that has been selected"
bookingSuccessful
When the booking is successfully done. It might not be confirmed.
confirmed: boolean; //Whether confirmation from organizer is pending or not eventType: "Object for Event Type that has been booked"; date: string; // Date of Event duration: number; //Duration of booked Event organizer: object //Organizer details like name, timezone, email
linkReady
Tells that the link is ready to be shown now.
None
linkFailed
Fired if link fails to load
code: number; // Error Code msg: string; //Human Readable msg data: object // More details to debug the error
__iframeReady
It is fired when the embedded iframe is ready to communicate with parent snippet. This is mostly for internal use by Embed Snippet
None
__windowLoadComplete
Tells that window load for iframe is complete
None
__dimensionChanged
Tells that dimensions of the content inside the iframe changed.
iframeWidth:number, iframeHeight:number
Actions that start with __ are internal.
To get more details on how Embed actually works, you can refer to this Embed Flowchart
Demos
Vanilla JS
React
Last updated