{"id":291754,"date":"2026-03-30T16:05:34","date_gmt":"2026-03-30T16:05:34","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/bookit-for-cal-com\/"},"modified":"2026-03-31T06:22:06","modified_gmt":"2026-03-31T06:22:06","slug":"bookit-for-cal-com","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/bookit-for-cal-com\/","author":16412773,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.3","stable_tag":"1.0.3","tested":"6.9.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"BookIt for Cal.com","header_author":"Ga\u00ebl Poffet","header_description":"Integrate Cal.com booking widgets into WordPress via a Gutenberg block, Elementor widget, and shortcode.","assets_banners_color":"","last_updated":"2026-03-31 06:22:06","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/gpoffet\/bookit-for-calcom","header_author_uri":"https:\/\/poffet.net","rating":0,"author_block_rating":0,"active_installs":10,"downloads":200,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"garulfo2","date":"2026-03-30 16:05:21"},"1.0.1":{"tag":"1.0.1","author":"garulfo2","date":"2026-03-30 16:17:07"},"1.0.2":{"tag":"1.0.2","author":"garulfo2","date":"2026-03-31 05:59:06"},"1.0.3":{"tag":"1.0.3","author":"garulfo2","date":"2026-03-31 06:22:06"}},"upgrade_notice":{"1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":{"bookit\/cal-booking":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"bookit\/cal-booking","version":"1.0.0","title":"Cal.com Booking","category":"embed","icon":"calendar-alt","description":"Embed a Cal.com booking widget \u2014 popup button, popup text link, or inline calendar.","keywords":["cal.com","booking","calendar","appointment"],"textdomain":"bookit-for-cal-com","supports":{"html":false,"align":["wide","full"]},"attributes":{"eventType":{"type":"string","default":""},"displayType":{"type":"string","default":"popup-button"},"label":{"type":"string","default":""},"inlineHeight":{"type":"number"},"theme":{"type":"string","default":"global"},"accentColor":{"type":"string","default":""},"hideDetails":{"type":"boolean","default":false},"prefillUser":{"type":"boolean","default":false},"btnBgColor":{"type":"string","default":""},"btnTextColor":{"type":"string","default":""},"btnBorderRadius":{"type":"number"},"btnBorderWidth":{"type":"number"},"btnBorderStyle":{"type":"string","default":""},"btnBorderColor":{"type":"string","default":""},"btnPaddingTop":{"type":"number"},"btnPaddingRight":{"type":"number"},"btnPaddingBottom":{"type":"number"},"btnPaddingLeft":{"type":"number"},"btnFontSize":{"type":"number"},"btnFontWeight":{"type":"string","default":""},"btnTextTransform":{"type":"string","default":""},"btnLetterSpacing":{"type":"number"},"btnFullWidth":{"type":"boolean"},"btnHoverBgColor":{"type":"string","default":""},"btnHoverTextColor":{"type":"string","default":""},"btnHoverBorderColor":{"type":"string","default":""},"btnTransitionDuration":{"type":"number"}},"render":"file:.\/render.php","editorScript":"file:.\/build\/index.js"}},"tagged_versions":["1.0.0","1.0.1","1.0.2","1.0.3"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"The Cal.com Booking block in the Gutenberg editor with the sidebar inspector open.","2":"The BookIt settings page under Settings \u2192 BookIt.","3":"The Elementor widget panel showing the BookIt category.","4":"A popup button widget on the frontend.","5":"An inline calendar widget on the frontend."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[276,269,259027,416,268],"plugin_category":[40],"plugin_contributors":[],"plugin_business_model":[],"class_list":["post-291754","plugin","type-plugin","status-publish","hentry","plugin_tags-appointment","plugin_tags-booking","plugin_tags-cal-com","plugin_tags-calendar","plugin_tags-scheduling","plugin_category-calendar-and-events","plugin_committers-garulfo2"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/bookit-for-cal-com.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>BookIt for Cal.com<\/strong> is the easiest way to add Cal.com scheduling to your WordPress site. It provides three integration methods so you can use whichever fits your workflow:<\/p>\n\n<ul>\n<li><strong>Gutenberg block<\/strong> \u2014 drag the <em>Cal.com Booking<\/em> block into any page or post.<\/li>\n<li><strong>Elementor widget<\/strong> \u2014 find the <em>Cal.com Booking<\/em> widget in the <em>BookIt<\/em> widget panel.<\/li>\n<li><strong>Shortcode<\/strong> \u2014 paste <code>[bookit event=\"username\/slug\"]<\/code> anywhere.<\/li>\n<\/ul>\n\n<h4>Features<\/h4>\n\n<ul>\n<li>Three display modes: <strong>popup button<\/strong>, <strong>popup text link<\/strong>, and <strong>inline calendar<\/strong>.<\/li>\n<li>Full <strong>theme support<\/strong>: light, dark, or auto (follows the visitor's OS preference).<\/li>\n<li>Custom <strong>accent color<\/strong> per widget or globally.<\/li>\n<li><strong>Smart loading<\/strong> \u2014 the Cal.com embed script is loaded only on pages that actually contain a booking widget, keeping all other pages fast.<\/li>\n<li><strong>Pre-fill<\/strong> logged-in user name and email automatically.<\/li>\n<li><strong>Cal.com API integration<\/strong> \u2014 connect your API key to pick event types from a dropdown instead of typing slugs manually. Results are cached for 1 hour.<\/li>\n<li>\"Refresh event types\" button in the admin with one click.<\/li>\n<li>Compatible with Elementor <strong>Free<\/strong> and <strong>Pro<\/strong>.<\/li>\n<li>Full <strong>i18n<\/strong> support \u2014 ships with a French (fr_FR) translation.<\/li>\n<\/ul>\n\n<h4>External services<\/h4>\n\n<p>This plugin connects to external services operated by Cal.com, Inc.:<\/p>\n\n<ul>\n<li><strong>Cal.com API<\/strong> (<code>https:\/\/api.cal.com<\/code> or <code>https:\/\/api.cal.eu<\/code> for the EU region) \u2014 used to fetch your event types when an API key is configured. Only called from the WordPress admin when you save settings or click \"Refresh event types\".<\/li>\n<li><strong>Cal.com embed script<\/strong> (<code>https:\/\/app.cal.com\/embed\/embed.js<\/code> or <code>https:\/\/app.cal.eu\/embed\/embed.js<\/code> for the EU region) \u2014 loaded on the frontend to render booking widgets. Loaded only on pages that contain a booking widget (smart strategy) or on all pages (always strategy), depending on your settings.<\/li>\n<\/ul>\n\n<p>The API base URL is configurable in Settings \u2192 BookIt. The default is the global Cal.com instance (<code>api.cal.com<\/code> \/ <code>app.cal.com<\/code>). Users on the Cal.com EU instance should set it to <code>https:\/\/api.cal.eu<\/code>.<\/p>\n\n<p>By using this plugin you agree to Cal.com's <a href=\"https:\/\/cal.com\/terms\">Terms of Service<\/a> and <a href=\"https:\/\/cal.com\/privacy\">Privacy Policy<\/a>.<\/p>\n\n<h3>Shortcode reference<\/h3>\n\n<p>Basic usage:\n    [bookit event=\"username\/slug\"]<\/p>\n\n<p>All attributes:\n    [bookit event=\"username\/slug\" type=\"popup-button\" label=\"Book now\" height=\"600\" theme=\"auto\" accent=\"#0070f3\" hide_details=\"0\" prefill=\"0\" btn_bg=\"#000\" btn_text=\"#fff\" btn_radius=\"4\"]<\/p>\n\n\n\n\n  Attribute\n  Values\n  Default\n\n\n\n\n  <code>event<\/code>\n  <code>username\/slug<\/code>\n  <em>(required)<\/em>\n\n\n  <code>type<\/code>\n  <code>popup-button<\/code> &#124; <code>popup-text<\/code> &#124; <code>inline<\/code>\n  <code>popup-button<\/code>\n\n\n  <code>label<\/code>\n  any text\n  <code>Book a meeting<\/code>\n\n\n  <code>height<\/code>\n  number (px)\n  <code>600<\/code>\n\n\n  <code>theme<\/code>\n  <code>global<\/code> &#124; <code>auto<\/code> &#124; <code>light<\/code> &#124; <code>dark<\/code>\n  <code>global<\/code>\n\n\n  <code>accent<\/code>\n  hex color\n  global setting\n\n\n  <code>hide_details<\/code>\n  <code>0<\/code> &#124; <code>1<\/code>\n  <code>0<\/code>\n\n\n  <code>prefill<\/code>\n  <code>0<\/code> &#124; <code>1<\/code>\n  <code>0<\/code>\n\n\n  <code>btn_bg<\/code>\n  hex color\n  <em>(none)<\/em>\n\n\n  <code>btn_text<\/code>\n  hex color\n  <em>(none)<\/em>\n\n\n  <code>btn_radius<\/code>\n  number (px)\n  <code>4<\/code>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>bookit-for-calcom<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> screen in WordPress.<\/li>\n<li>Go to <strong>Settings \u2192 BookIt<\/strong> to configure your Cal.com API key and default options.<\/li>\n<li>Add a booking widget using the Gutenberg block, Elementor widget, or <code>[bookit]<\/code> shortcode.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20a%20cal.com%20account%3F\"><h3>Do I need a Cal.com account?<\/h3><\/dt>\n<dd><p>Yes. You need a free or paid Cal.com account to get an event slug. An API key is optional but enables the event type dropdown in the editor.<\/p><\/dd>\n<dt id=\"where%20do%20i%20find%20my%20api%20key%3F\"><h3>Where do I find my API key?<\/h3><\/dt>\n<dd><p>In Cal.com: <strong>Settings \u2192 Developer \u2192 API Keys<\/strong>.<\/p><\/dd>\n<dt id=\"what%20is%20the%20event%20slug%20format%3F\"><h3>What is the event slug format?<\/h3><\/dt>\n<dd><p>username\/event-slug \u2014 for example <code>jane\/consultation-30min<\/code>.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20elementor%20free%3F\"><h3>Does this work with Elementor Free?<\/h3><\/dt>\n<dd><p>Yes. All core features work with Elementor Free. Typography controls require Elementor Pro.<\/p><\/dd>\n<dt id=\"is%20the%20cal.com%20embed%20script%20loaded%20on%20every%20page%3F\"><h3>Is the Cal.com embed script loaded on every page?<\/h3><\/dt>\n<dd><p>By default, the <strong>Smart<\/strong> loading strategy loads the script only on pages that contain a <code>[bookit]<\/code> shortcode, a <em>Cal.com Booking<\/em> Gutenberg block, or an Elementor BookIt widget. Switch to <strong>Always<\/strong> in settings if you prefer unconditional loading.<\/p><\/dd>\n<dt id=\"can%20i%20pre-fill%20the%20booking%20form%20with%20the%20logged-in%20user%27s%20details%3F\"><h3>Can I pre-fill the booking form with the logged-in user's details?<\/h3><\/dt>\n<dd><p>Yes. Enable the \"Pre-fill logged-in user data\" option per block\/widget\/shortcode. The visitor's display name and email will be sent to Cal.com.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Fix: Elementor widget showing 404 in Cal.com popup \u2014 event slug now correctly prefixed with username (Cal.com v2 API nests username under owner\/profile\/user, not at root level). Added username-resolution fallback in render() for slugs saved without prefix.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Fix: Shortcode Helper event dropdown not populated on fresh installs \u2014 auto-fetches event types via AJAX if the cache is cold.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fix: admin JS not loaded on settings page \u2014 \"Refresh event types\" button was unresponsive.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Embed Cal.com booking widgets in WordPress via a Gutenberg block, Elementor widget, or [bookit] shortcode.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/291754","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=291754"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/garulfo2"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=291754"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=291754"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=291754"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=291754"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=291754"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=291754"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}