Title: Circumflex Booking
Author: sutregutt
Published: <strong>August 5, 2026</strong>
Last modified: October 12, 2026

---

Search plugins

![](https://ps.w.org/circumflex-booking/assets/banner-772x250.png?rev=3635761)

![](https://ps.w.org/circumflex-booking/assets/icon.svg?rev=3635761)

# Circumflex Booking

 By [sutregutt](https://profiles.wordpress.org/sutregutt/)

[Download](https://downloads.wordpress.org/plugin/circumflex-booking.1.6.17.zip)

 * [Details](https://twd.wordpress.org/plugins/circumflex-booking/#description)
 * [Reviews](https://twd.wordpress.org/plugins/circumflex-booking/#reviews)
 *  [Installation](https://twd.wordpress.org/plugins/circumflex-booking/#installation)
 * [Development](https://twd.wordpress.org/plugins/circumflex-booking/#developers)

 [Support](https://wordpress.org/support/plugin/circumflex-booking/)

## Description

Circumflex Booking is a self-hosted appointment booking plugin for treatments,
 
consultations, and other scheduled services. Customers request an available time,
and authorized staff approve or reject each request manually.

#### Adapt booking with free add-ons

Circumflex Booking is the shared foundation. Its built-in setup is designed for

appointments, treatments and consultations. Separately installed add-ons specialize
it for another purpose. Core remains required, and one booking setup is active on
each WordPress site.

 * [Circumflex Booking Airspace](https://wordpress.org/plugins/circumflex-booking-airspace/)
   
   reserves flight-training areas, schedules quiet periods and spreads activity.
 * [Circumflex Booking Meeting Rooms](https://wordpress.org/plugins/circumflex-booking-meeting-rooms/)
   
   helps people find and reserve rooms by location, capacity, facilities and exact
   start and end time.
 * Circumflex Booking Events (coming soon) adds event pages, individual and
    group
   registrations, capacity limits, QR admission passes and staff check-in. Automatic
   confirmation, email reminders and ticket recovery are included without Pro.

Need another kind of booking? [Tell us how it should work](https://twd.wordpress.org/plugins/circumflex-booking/support@circumflex.no?output_format=md).

#### Customer booking

 * Let customers choose one or several services as configured.
 * Present related choices in optional expandable groups with one shared
    description
   and either one or several allowed choices, while ungrouped services remain direct
   choices.
 * Show a practitioner choice or “first available” when several practitioners
    qualify.
   Hide the choice when only one qualifies.
 * Present available dates and start times in accessible calendar and list views.
 * Show the chosen treatment, practitioner, date, and time together with contact
   
   details on one final step, with direct actions to change a choice.
 * Collect name, email address, phone number, and an optional practical comment.
 * Reserve a requested time while the booking is pending, preventing another
    customer
   from taking it.
 * Send customer and staff notifications for booking events and reminders.
 * Give confirmed customers a private link to view the booking, request another
   
   time, or cancel within the configured deadline.

#### Administration

 * Choose appointments or an add-on setup without changing existing data.
 * Configure services, expandable groups, choice rules, durations, buffers,
    prices,
   deadlines, display order and opening-hour limits.
 * Configure practitioners, service assignments and weekly hours.
 * Close dates, add extra hours or block time for one or all practitioners.
 * Review bookings and availability in day, week and month calendars.
 * Optionally let linked practitioners decide only requests assigned to them.
 * Configure and preview email identity and templates.
 * Use WordPress privacy tools, retention, diagnostics, configuration transfer,
   
   and the selected privacy policy.

#### Add the booking form anywhere

Circumflex Booking does not create or reserve a booking URL. Add its block, the
[
circumflex_booking] shortcode, or optional Elementor widget. Publish it and share
that page’s URL with customers. Elementor, WooCommerce, and customer accounts are
not required.

All included functionality is available without payment or a license key.
 Payments
and recurring bookings are outside scope. Email uses `wp_mail()`; a separate SMTP
plugin is recommended.

#### Optional Pro add-on

The free plugin works on its own with account-free booking, email verification,

manual approval, email confirmations and reminders, and WordPress.org updates.

Circumflex Booking Pro is an optional add-on for appointment, room and training-
area
 booking. Events has its own registration flow: automatic confirmation, email
reminders, staff access and ticket recovery are included without Pro.

Pro can add:

 * Optional sign-in and access rules through Microsoft, Google or another provider.
 * Automatic approval and completion for selected booking types.
 * SMS confirmations and reminders in addition to email. Sendberry is supported
   
   today and requires its own subscription; ask about other providers.
 * Telegram or browser notifications for responsible staff.
 * Follow-up, feedback requests and anonymous booking-process insight.
 * Email support and official Pro updates with an active subscription.

[Compare Free and Pro](https://circumflex.no/en/circumflex-booking/pro/#cfx-pro-compare-title).

Coming soon in Pro: Stripe payments for events, not available yet.
 Free event registration
remains included in Events.

Booking and diagnostics stay on the site. Optional Cloudflare Turnstile is
 disabled
by default and disclosed below.

### Privacy and External Services

The site’s database stores customer contact details, optional practical
 comment,
services, practitioner, appointment time, and customer-notice snapshot. Internal
notes are visible only to authorized roles.

By default, personal data is anonymized 365 days after a terminal status; the
 period
is configurable. Contact details, free text, customer tokens, and identifying notification
and audit data are removed. WordPress privacy export and erasure are supported. 
Erasing an active booking keeps its reserved time.

Authorized administrators can generate local diagnostics that omit personal
 data,
free text, tokens, secrets, IP addresses, and site URLs. Nothing is sent to Circumflex
AS.

#### Cloudflare Turnstile

[Cloudflare Turnstile](https://developers.cloudflare.com/turnstile/) is an
 optional
anti-spam service. It is disabled by default and requires Cloudflare keys plus explicit
administrator activation.

When enabled, the browser loads `https://challenges.cloudflare.com`. Cloudflare

processes signals including IP address, TLS fingerprint, User-Agent, site key, and
origin. WordPress sends the secret and response token to Siteverify but does not
explicitly add the visitor IP. Bookings fail closed if verification cannot finish.

Review Cloudflare’s
 [Turnstile Privacy Addendum](https://www.cloudflare.com/turnstile-privacy-policy/),
[Privacy Policy](https://www.cloudflare.com/privacypolicy/), and [Terms](https://www.cloudflare.com/policies/terms/)
before enabling the service. The site owner must reflect this processing in the 
site’s privacy information.

### Source Code

Source and build instructions are in the
 [public Forgejo repository](https://git.etter.no/gvar/circumflex-booking).

### Support

Use the Support tab for help. Product information is at
 [circumflex.no/circumflex-booking](https://circumflex.no/circumflex-booking/).
Never post customer data, private links, credentials, or health information.

## Screenshots

[⌊Customers start by choosing the configured number of services.⌉⌊Customers start
by choosing the configured number of services.⌉[

Customers start by choosing the configured number of services.

[⌊Calendar and list views show available times.⌉⌊Calendar and list views show available
times.⌉[

Calendar and list views show available times.

[⌊The dashboard summarizes pending and upcoming work.⌉⌊The dashboard summarizes 
pending and upcoming work.⌉[

The dashboard summarizes pending and upcoming work.

[⌊Staff review, approve, or reject a booking.⌉⌊Staff review, approve, or reject 
a booking.⌉[

Staff review, approve, or reject a booking.

[⌊Weekly hours, exceptions, and blocks control availability.⌉⌊Weekly hours, exceptions,
and blocks control availability.⌉[

Weekly hours, exceptions, and blocks control availability.

[⌊Notification previews show HTML and plain text.⌉⌊Notification previews show HTML
and plain text.⌉[

Notification previews show HTML and plain text.

## Blocks

This plugin provides 1 block.

 *   Booking form Display the Circumflex Booking appointment flow.

## Installation

 1. Install and activate Circumflex Booking.
 2. Add at least one service under Circumflex Booking > Services.
 3. Add a practitioner, assign services, and configure recurring hours under Circumflex
    Booking > Practitioners and Circumflex Booking > Availability.
 4. Review deadlines, notices, retention, recipients, and email templates under Circumflex
    Booking > Settings.
 5. Select the site’s privacy policy under Settings > Privacy.
 6. Create or edit a normal WordPress page, add the block, shortcode, or Elementor 
    widget, publish it, and share its URL.
 7. Check Tools > Booking status, then make and process a test booking before opening
    the page to customers.

The tested and supported database baseline is MySQL 8.0 or MariaDB 10.11 and newer.
Older versions may work, but they are not tested or supported. Use HTTPS and configure
the site’s mail or SMTP setup before accepting real bookings. The database version
alone does not deactivate the plugin.

## FAQ

### Does Circumflex Booking create a booking URL?

No. Add the block, `[circumflex_booking]` shortcode, or Elementor widget to a
 normal
page you create. Publish it and use that page’s URL. All three use the same booking
flow and settings.

### Can analytics measure a successfully submitted booking?

Yes. The receipt stays visible and the URL gains `booking-received=1`. For
 exact
GA4 measurement, trigger Google Tag Manager on the Custom Event circumflex_booking_received
and send `generate_lead`. It fires once per accepted response and contains no booking
or customer data. The plugin does not load analytics; site owners configure analytics
and consent.

### Are notification emails sent immediately?

An asynchronous worker starts as soon as a message is queued. WordPress cron
 remains
as fallback and for retries. Inbox delivery depends on the site’s wp_mail() or SMTP
setup.

### Can customers change or cancel an appointment?

Confirmed customers can receive a private link to request a new time or cancel
 
before the deadline. Treat the link as a secret access key.

### Can practitioners approve assigned requests?

Yes, when enabled. An active practitioner needs a notification email and linked

Practitioner account. Access is limited to their own requests; managers retain access
to all requests.

### Should customers enter health information in the comment field?

Configure the warning beside the optional comment to tell customers not to
 submit
health or other sensitive data that is not needed for scheduling.

### What happens when the plugin is deactivated or removed?

Deactivation and normal uninstall preserve data. Permanent deletion requires an

authorized administrator to enable and confirm the uninstall deletion option.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Circumflex Booking” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ sutregutt ](https://profiles.wordpress.org/sutregutt/)

[Translate “Circumflex Booking” into your language.](https://translate.wordpress.org/projects/wp-plugins/circumflex-booking)

### Interested in development?

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

## Changelog

#### 1.6.17

 * Silently close unconfirmed requests after their scheduled time has passed.
 * Prepare Core for Events registration, ticket access and group check-in.
 * Keep event administration and privacy tools together under Circumflex Booking.
 * Clarify included add-on features and optional Pro features.

#### 1.6.16

 * Stop new event check-ins when the event ends, including events created with an
   older version. Existing check-ins are retained.

Changes since public 1.6.9: see `changelog.txt`.

#### 1.6.14

 * Group event tools and privacy settings under Circumflex Booking without
    changing
   booking data.

## Meta

 *  Version **1.6.17**
 *  Last updated **2 days ago**
 *  Active installations **40+**
 *  WordPress version ** 6.8 or higher **
 *  Tested up to **7.1.3**
 *  PHP version ** 8.3 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/circumflex-booking/)
 * Tags
 * [appointments](https://twd.wordpress.org/plugins/tags/appointments/)[availability](https://twd.wordpress.org/plugins/tags/availability/)
   [booking](https://twd.wordpress.org/plugins/tags/booking/)[calendar](https://twd.wordpress.org/plugins/tags/calendar/)
   [scheduling](https://twd.wordpress.org/plugins/tags/scheduling/)
 *  [Advanced View](https://twd.wordpress.org/plugins/circumflex-booking/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/circumflex-booking/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/circumflex-booking/reviews/)

## Contributors

 *   [ sutregutt ](https://profiles.wordpress.org/sutregutt/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/circumflex-booking/)