Title: Slotbridge Sync for Calendly and Cliniko
Author: Dharmishtha Raval
Published: <strong>October 12, 2026</strong>
Last modified: October 12, 2026

---

Search plugins

![](https://ps.w.org/slotbridge-sync-for-calendly-and-cliniko/assets/banner-772x250.
png?rev=3743042)

![](https://ps.w.org/slotbridge-sync-for-calendly-and-cliniko/assets/icon-256x256.
png?rev=3743042)

# Slotbridge Sync for Calendly and Cliniko

 By [Dharmishtha Raval](https://profiles.wordpress.org/dharmishtharaval95/)

[Download](https://downloads.wordpress.org/plugin/slotbridge-sync-for-calendly-and-cliniko.zip)

 * [Details](https://wordpress.org/plugins/slotbridge-sync-for-calendly-and-cliniko/#description)
 * [Reviews](https://wordpress.org/plugins/slotbridge-sync-for-calendly-and-cliniko/#reviews)
 *  [Installation](https://wordpress.org/plugins/slotbridge-sync-for-calendly-and-cliniko/#installation)
 * [Development](https://wordpress.org/plugins/slotbridge-sync-for-calendly-and-cliniko/#developers)

 [Support](https://wordpress.org/support/plugin/slotbridge-sync-for-calendly-and-cliniko/)

## Description

Slotbridge connects Calendly with Cliniko to help automatically synchronize scheduled
bookings into Cliniko as patients and appointments.

**Slotbridge is an independent plugin. It is not affiliated with, endorsed by, or
sponsored by Calendly or Cliniko.** “Calendly” and “Cliniko” are trademarks of their
respective owners and are used only to describe the services this plugin connects
to.

The plugin runs automatically using WordPress Cron, checking Calendly on the schedule
you choose and creating matching Cliniko patients and appointments. It tracks each
Calendly booking by its unique invitee link to help prevent duplicate appointments
when a sync runs again.

### Features

 * **Guided Setup Wizard** – five steps that test each connection as you go. Your
   Calendly user, Cliniko business, practitioner and appointment types are selected
   from lists loaded from your accounts.
 * **Booking calendar shortcode** – show your Calendly booking page on any page 
   or post with `[slotbridge_booking]`.
 * Automatic synchronization on a schedule you choose, from 5 minutes to 24 hours.
 * Optional automatic patient creation in Cliniko when an invitee’s email is not
   already associated with a patient.
 * Optional cancellation handling: cancelling a booking in Calendly cancels the 
   linked Cliniko appointment.
 * Per-event-type mapping between Calendly event types and Cliniko appointment types,
   with name-based matching as a fallback.
 * A sync log, connection tests, and a manual “sync now” button.

### How It Works

 1. The plugin reads Calendly scheduled events within a configurable look-back and 
    look-ahead window.
 2. For each invitee, it looks up a matching Cliniko patient by email or, if enabled,
    creates a patient.
 3. It creates a Cliniko individual appointment using the mapped or default appointment
    type.
 4. If a booking is later cancelled in Calendly, the plugin can cancel the linked Cliniko
    appointment when cancellation handling is enabled.
 5. Actions are recorded in the Sync Logs screen.

### Appointment Type Mapping

Each Calendly event type can be mapped to a specific Cliniko appointment type. The
Setup Wizard lets you configure this using dropdowns. Without a mapping, the plugin
tries to match a Cliniko appointment type with the same name as the Calendly event
type, then falls back to an optional default appointment type.

### Showing the booking calendar

Add the `[slotbridge_booking]` shortcode to any page or post. It displays the Calendly
booking page entered in the Setup Wizard or under **Slotbridge > Settings**.

You can override the URL and height for a specific page:

    ```
    [slotbridge_booking url="https://calendly.com/your-name/30min" height="800"]
    ```

Only `calendly.com` links are accepted. Bookings made through the calendar are synchronized
to Cliniko by the normal schedule.

### Configuration

 * **Calendly Personal Access Token** – obtain this from Calendly’s Integrations/
   API settings.
 * **Calendly User URI** – found automatically by the Setup Wizard or a connection
   test.
 * **Cliniko API Key** – obtain this from your Cliniko account under My Info > API
   Keys.
 * **Cliniko API Base URL** – the regional endpoint for your Cliniko account, for
   example `https://api.au5.cliniko.com/v1`. Only genuine `cliniko.com` API hosts
   are accepted.
 * **Business ID, Practitioner ID and Appointment Type ID** – selected from the 
   Setup Wizard dropdowns or entered manually in Settings.

### External Services

This plugin connects to third-party services to provide its synchronization feature.
Details of what is sent and when are below.

### Calendly

The plugin connects to the Calendly API at `https://api.calendly.com` to read scheduled
events and invitee details so they can be synchronized to Cliniko. Requests are 
made from your server when synchronization runs on the configured schedule, when
you click “Sync Calendly Now,” and when you use the “Test Calendly Connection” button.

The API access token configured by the site administrator is sent to Calendly for
authentication. The plugin reads booking information from Calendly; it does not 
send patient data to Calendly through these API requests.

Calendly Privacy Policy: https://calendly.com/privacy
 Calendly Terms of Use: https://
calendly.com/terms

### Calendly booking embed (shortcode)

When you use the `[slotbridge_booking]` shortcode, the page contains an iframe that
loads your Calendly booking page from `calendly.com`. The visitor’s browser contacts
Calendly directly, so Calendly may receive the visitor’s IP address and information
the visitor submits while booking. The embed is not loaded on pages that do not 
use the shortcode.

Calendly Privacy Policy: https://calendly.com/privacy
 Calendly Terms of Use: https://
calendly.com/terms

### Cliniko

The plugin connects to the Cliniko API to search for and create patients and appointments
based on Calendly booking data. Requests are made from your server when synchronization
runs and when you use the “Test Cliniko Connection” button.

Every Cliniko request includes the API key configured by the site administrator 
and a User-Agent header containing the contact email address entered in the plugin
settings (by default, the site’s administration email). Depending on synchronization
settings and Calendly booking data, information such as invitee name, email, and
appointment time may be sent to Cliniko to create or match patients and appointments.

Cliniko Privacy Policy: https://www.cliniko.com/privacy/
 Cliniko Terms of Service:
https://www.cliniko.com/terms/

### Privacy

The plugin stores synchronization records in the WordPress database to help prevent
duplicate appointments and maintain synchronization logs. API credentials are stored
in the WordPress options table. According to the plugin’s current behavior, plugin
settings, credentials, logs and the log table are removed when the plugin is deleted
from the Plugins screen.

### Limitations

 * Synchronization depends on WordPress Cron, which runs on site visits by default.
   Low-traffic sites should configure a real cron job.
 * The plugin matches patients by email address. Invitees without an email, or whose
   email is not registered in Cliniko, may be skipped unless automatic patient creation
   is enabled.
 * Calendly and Cliniko APIs are rate-limited. Large synchronization windows on 
   busy calendars may take longer to process.

### Troubleshooting

 * Use the **Test Calendly Connection** and **Test Cliniko Connection** buttons 
   in Settings to check your credentials.
 * Check the **Sync Logs** screen for per-booking error messages.
 * Make sure your server can make outbound HTTPS requests to `api.calendly.com` 
   and your Cliniko regional API host.

## Screenshots

[⌊Slotbridge plugin interface showing the available setup or configuration options.⌉⌊
Slotbridge plugin interface showing the available setup or configuration options
.⌉[

Slotbridge plugin interface showing the available setup or configuration options.

[⌊Slotbridge settings or connection configuration screen.⌉⌊Slotbridge settings or
connection configuration screen.⌉[

Slotbridge settings or connection configuration screen.

[⌊Slotbridge setup wizard or configuration screen.⌉⌊Slotbridge setup wizard or configuration
screen.⌉[

Slotbridge setup wizard or configuration screen.

[⌊Slotbridge interface showing additional plugin settings or controls.⌉⌊Slotbridge
interface showing additional plugin settings or controls.⌉[

Slotbridge interface showing additional plugin settings or controls.

## Installation

 1. Upload the plugin ZIP through **Plugins > Add New Plugin > Upload Plugin**, or 
    copy the plugin folder into `/wp-content/plugins/` using your preferred file transfer
    method.
 2. Activate the plugin through the **Plugins** screen in WordPress.
 3. Open **Slotbridge > Setup Wizard** or click **Set up** on the Plugins screen.
 4. **Step 1:** Enter your Calendly Personal Access Token. The plugin tests it and 
    finds your Calendly user.
 5. **Step 2:** Enter your Cliniko API key. The region code (for example, `au5`) is
    detected from the key.
 6. **Step 3:** Choose your Cliniko business and practitioner from the available lists.
 7. **Step 4:** Choose which Cliniko appointment type each Calendly event type should
    create.
 8. **Step 5:** Configure synchronization options, finish setup, and run your first
    sync.

You can change settings later under **Slotbridge > Settings**.

## FAQ

### Does this plugin require a Calendly or Cliniko paid plan?

You need API access on both services. Check your current Calendly and Cliniko plans
for API availability.

### How often does synchronization run?

Synchronization can be scheduled from every 5 minutes to every 24 hours using WordPress
Cron. WordPress Cron runs when the site receives visits. For a more dependable schedule
on low-traffic sites, configure a system cron job to call `wp-cron.php` directly.

### Will running a sync create duplicate appointments?

The plugin tracks each Calendly invitee using its unique invitee URI to help prevent
duplicate appointments when synchronization runs again.

### How do I show a booking form on my site?

Add `[slotbridge_booking]` to a page. Enter your Calendly booking link in the Setup
Wizard or under **Slotbridge > Settings** first.

### Does the plugin expose API credentials to visitors?

The plugin uses credentials for server-side requests to the Calendly and Cliniko
APIs. Do not share API credentials publicly, and use the plugin only on a site where
access to administrator settings is appropriately restricted.

### What happens to my data if I delete the plugin?

According to the plugin’s current behavior, settings, logs, and the synchronization
log table are removed when the plugin is deleted from the Plugins screen. Export
or back up any information you need before uninstalling.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Slotbridge Sync for Calendly and Cliniko” is open source software. The following
people have contributed to this plugin.

Contributors

 *   [ Dharmishtha Raval ](https://profiles.wordpress.org/dharmishtharaval95/)

[Translate “Slotbridge Sync for Calendly and Cliniko” into your language.](https://translate.wordpress.org/projects/wp-plugins/slotbridge-sync-for-calendly-and-cliniko)

### Interested in development?

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

## Changelog

#### 1.1.0

 * Added a guided five-step Setup Wizard with live connection testing and dropdown
   pickers for Cliniko business, practitioner and appointment types.
 * Added the `[slotbridge_booking]` shortcode to display a Calendly booking page
   on the site.
 * Updated database queries to use `$wpdb->prepare()` with identifier placeholders,
   including the table name.
 * Sanitized settings form input and fixed saving of unchecked settings checkboxes.

#### 1.0.0

 * Initial release.
 * Fixed remaining Plugin Check warnings, including documented PHPCS ignore annotations
   for nonce checks verified inside the called method and values sanitized immediately
   after `wp_unslash()`.

## Meta

 *  Version **1.0.0**
 *  Last updated **24 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.2 or higher **
 *  Tested up to **7.1.3**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [appointments](https://wordpress.org/plugins/tags/appointments/)[booking](https://wordpress.org/plugins/tags/booking/)
   [Calendly](https://wordpress.org/plugins/tags/calendly/)[sync](https://wordpress.org/plugins/tags/sync/)
 *  [Advanced View](https://wordpress.org/plugins/slotbridge-sync-for-calendly-and-cliniko/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/slotbridge-sync-for-calendly-and-cliniko/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/slotbridge-sync-for-calendly-and-cliniko/reviews/)

## Contributors

 *   [ Dharmishtha Raval ](https://profiles.wordpress.org/dharmishtharaval95/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/slotbridge-sync-for-calendly-and-cliniko/)