Title: BookIt for Cal.com
Author: Gael Poffet
Published: <strong>March 30, 2026</strong>
Last modified: March 31, 2026

---

Search plugins

![](https://s.w.org/plugins/geopattern-icon/bookit-for-cal-com.svg)

# BookIt for Cal.com

 By [Gael Poffet](https://profiles.wordpress.org/garulfo2/)

[Download](https://downloads.wordpress.org/plugin/bookit-for-cal-com.1.0.3.zip)

 * [Details](https://test.wordpress.org/plugins/bookit-for-cal-com/#description)
 * [Reviews](https://test.wordpress.org/plugins/bookit-for-cal-com/#reviews)
 *  [Installation](https://test.wordpress.org/plugins/bookit-for-cal-com/#installation)
 * [Development](https://test.wordpress.org/plugins/bookit-for-cal-com/#developers)

 [Support](https://wordpress.org/support/plugin/bookit-for-cal-com/)

## Description

**BookIt for Cal.com** 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:

 * **Gutenberg block** — drag the _Cal.com Booking_ block into any page or post.
 * **Elementor widget** — find the _Cal.com Booking_ widget in the _BookIt_ widget
   panel.
 * **Shortcode** — paste `[bookit event="username/slug"]` anywhere.

#### Features

 * Three display modes: **popup button**, **popup text link**, and **inline calendar**.
 * Full **theme support**: light, dark, or auto (follows the visitor’s OS preference).
 * Custom **accent color** per widget or globally.
 * **Smart loading** — the Cal.com embed script is loaded only on pages that actually
   contain a booking widget, keeping all other pages fast.
 * **Pre-fill** logged-in user name and email automatically.
 * **Cal.com API integration** — connect your API key to pick event types from a
   dropdown instead of typing slugs manually. Results are cached for 1 hour.
 * “Refresh event types” button in the admin with one click.
 * Compatible with Elementor **Free** and **Pro**.
 * Full **i18n** support — ships with a French (fr_FR) translation.

#### External services

This plugin connects to external services operated by Cal.com, Inc.:

 * **Cal.com API** (`https://api.cal.com` or `https://api.cal.eu` for the EU region)—
   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”.
 * **Cal.com embed script** (`https://app.cal.com/embed/embed.js` or `https://app.
   cal.eu/embed/embed.js` for the EU region) — 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.

The API base URL is configurable in Settings  BookIt. The default is the global 
Cal.com instance (`api.cal.com` / `app.cal.com`). Users on the Cal.com EU instance
should set it to `https://api.cal.eu`.

By using this plugin you agree to Cal.com’s [Terms of Service](https://cal.com/terms)
and [Privacy Policy](https://cal.com/privacy).

### Shortcode reference

Basic usage:
 [bookit event=”username/slug”]

All attributes:
 [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″]

 Attribute
 Values Default

 `event`
 `username/slug` _(required)_

 `type`
 `popup-button` | `popup-text` | `inline` `popup-button`

 `label`
 any text `Book a meeting`

 `height`
 number (px) `600`

 `theme`
 `global` | `auto` | `light` | `dark` `global`

 `accent`
 hex color global setting

 `hide_details`
 `0` | `1` `0`

 `prefill`
 `0` | `1` `0`

 `btn_bg`
 hex color _(none)_

 `btn_text`
 hex color _(none)_

 `btn_radius`
 number (px) `4`

## Blocks

This plugin provides 1 block.

 *   Cal.com Booking Embed a Cal.com booking widget — popup button, popup text link,
   or inline calendar.

## Installation

 1. Upload the `bookit-for-calcom` folder to `/wp-content/plugins/`.
 2. Activate the plugin through the **Plugins** screen in WordPress.
 3. Go to **Settings  BookIt** to configure your Cal.com API key and default options.
 4. Add a booking widget using the Gutenberg block, Elementor widget, or `[bookit]`
    shortcode.

## FAQ

### Do I need a Cal.com account?

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.

### Where do I find my API key?

In Cal.com: **Settings  Developer  API Keys**.

### What is the event slug format?

username/event-slug — for example `jane/consultation-30min`.

### Does this work with Elementor Free?

Yes. All core features work with Elementor Free. Typography controls require Elementor
Pro.

### Is the Cal.com embed script loaded on every page?

By default, the **Smart** loading strategy loads the script only on pages that contain
a `[bookit]` shortcode, a _Cal.com Booking_ Gutenberg block, or an Elementor BookIt
widget. Switch to **Always** in settings if you prefer unconditional loading.

### Can I pre-fill the booking form with the logged-in user’s details?

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.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“BookIt for Cal.com” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ Gael Poffet ](https://profiles.wordpress.org/garulfo2/)

[Translate “BookIt for Cal.com” into your language.](https://translate.wordpress.org/projects/wp-plugins/bookit-for-cal-com)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/bookit-for-cal-com/),
check out the [SVN repository](https://plugins.svn.wordpress.org/bookit-for-cal-com/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/bookit-for-cal-com/)
by [RSS](https://plugins.trac.wordpress.org/log/bookit-for-cal-com/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.3

 * Fix: Elementor widget showing 404 in Cal.com popup — 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.

#### 1.0.2

 * Fix: Shortcode Helper event dropdown not populated on fresh installs — auto-fetches
   event types via AJAX if the cache is cold.

#### 1.0.1

 * Fix: admin JS not loaded on settings page — “Refresh event types” button was 
   unresponsive.

#### 1.0.0

 * Initial release.

## Meta

 *  Version **1.0.3**
 *  Last updated **2 months ago**
 *  Active installations **10+**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **6.9.4**
 *  PHP version ** 7.4 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/bookit-for-cal-com/)
 * Tags
 * [appointment](https://test.wordpress.org/plugins/tags/appointment/)[booking](https://test.wordpress.org/plugins/tags/booking/)
   [calendar](https://test.wordpress.org/plugins/tags/calendar/)[scheduling](https://test.wordpress.org/plugins/tags/scheduling/)
 *  [Advanced View](https://test.wordpress.org/plugins/bookit-for-cal-com/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/bookit-for-cal-com/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/bookit-for-cal-com/reviews/)

## Contributors

 *   [ Gael Poffet ](https://profiles.wordpress.org/garulfo2/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/bookit-for-cal-com/)