Title: Schedopia – Appointment Booking &amp; Scheduling
Author: ThinkMatic
Published: <strong>Hulyo 9, 2026</strong>
Last modified: Agosto 6, 2026

---

Search plugins

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

![](https://ps.w.org/schedopia/assets/icon-256x256.png?rev=3607809)

# Schedopia – Appointment Booking & Scheduling

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

[Download](https://downloads.wordpress.org/plugin/schedopia.1.2.1.zip)

 * [Details](https://ceb.wordpress.org/plugins/schedopia/#description)
 * [Reviews](https://ceb.wordpress.org/plugins/schedopia/#reviews)
 *  [Installation](https://ceb.wordpress.org/plugins/schedopia/#installation)
 * [Development](https://ceb.wordpress.org/plugins/schedopia/#developers)

 [Support](https://wordpress.org/support/plugin/schedopia/)

## Description

**Schedopia is a complete appointment booking and scheduling plugin for WordPress.**
Add an online booking form to your site in minutes and let customers reserve a service
with the right staff member at a time that actually works — automatically, around
the clock, without the back-and-forth of phone calls and emails.

Whether you run a salon, a clinic, a tutoring service, or a consulting practice,
Schedopia turns your website into a booking engine. Every appointment is a real,
dated record, and a built-in guard means two customers can never grab the same slot—
so you stop worrying about double-bookings and no-shows.

Best of all, Schedopia is **fully self-hosted**. Your bookings, your customers, 
and your data stay on your own site. Nothing loads from third-party services unless
you turn on optional reCAPTCHA spam protection yourself, and there are no per-booking
fees.

**Why choose Schedopia?**

 * **Bookings while you sleep** — a mobile-friendly booking form takes reservations
   24/7, so you never miss a customer.
 * **Never double-book again** — every booking is validated against real staff availability,
   with a reliable guard against two people taking the same time slot.
 * **Your data stays yours** — 100% self-hosted, no CDNs, no per-booking commission.
   The plugin contacts no external service unless you opt in to reCAPTCHA spam protection.
 * **Set up in minutes** — a guided setup wizard walks you through services, staff,
   and hours.
 * **Looks like your brand** — customize the booking form’s colors, fonts, and buttons
   with a live preview.

**Key Features**

 * **Online booking form** — a clean, mobile-first form that customers use to pick
   a service, choose a staff member, and book an available time in a few simple 
   steps. Add it to any page with the `[schedopia_booking]` shortcode.
 * **Service catalog** — organize services into categories, each with its own price
   and duration.
 * **Service add-ons** — offer extras alongside a service. Each add-on carries its
   own price and duration, so choosing one extends the appointment’s total _and_
   the time blocked on the calendar — customers and staff both pick them while booking.
 * **Staff & availability management** — set each team member’s weekly working hours,
   days off, buffer times, and capacity. Availability automatically drives which
   time slots customers can book.
 * **Real dated appointments** — every booking carries its own date, time, and timezone,
   protected by a transactional double-booking guard.
 * **Customer management** — keep a record of your customers and their booking history.
 * **Form appearance customizer** — brand the booking form with global colors, fonts,
   shapes, and button styles, plus custom labels for each step, all with a live 
   preview.
 * **Powerful admin dashboard** — a fast single-page admin with a dashboard, filterable
   bookings list, team calendar, service catalog, scheduling, customers, staff, 
   payments, and an activity log.
 * **Manual & offline payments** — record cash, bank transfer, and mark-as-paid 
   payments.
 * **Automated email notifications** — booking confirmations, cancellations, new-
   booking alerts for your team, and appointment reminders.
 * **Customer self-service cancellation** — customers cancel from a secure link 
   in their email, with no account needed. You decide whether it’s allowed and how
   close to the start time it stays open.
 * **Calendar feed & add-to-calendar** — subscribe Google Calendar, Outlook, or 
   Apple Calendar to a read-only feed of your bookings, and let customers save an
   appointment straight from their confirmation email.
 * **Works with your page builder** — the `[schedopia_booking]` shortcode works 
   everywhere, including the Gutenberg shortcode block and the Elementor Shortcode
   widget.

**Perfect for**

Salons and barbershops, spas and beauty studios, dentists and health clinics, therapists
and coaches, tutors and instructors, consultants and freelancers, repair and home
services — any business that runs on appointments.

**For developers**

Schedopia is built to extend without forking. It ships a full REST API for every
entity with schema-driven validation, granular per-area capabilities, and rate limiting
on the public API. Extensions build on documented lifecycle hooks, filters, and 
driver interfaces (`BookingSource`, `NotificationChannel`, `PaymentMethod`), and
every booking flows through a single validated path — so an extension can never 
create a booking the core would reject. Data is stored in dedicated relational tables(`
wp_schedopia_*`) rather than as custom post types.

### External Services

Schedopia loads nothing from third-party services by default. One optional feature
connects to an external service when you explicitly enable it:

**Google reCAPTCHA v3** (optional spam protection for the public booking form). 
Only when you enable reCAPTCHA in _Settings  Booking rules_ **and** provide your
own site and secret keys, the booking form loads Google’s reCAPTCHA script, and 
each form submission sends the reCAPTCHA response token and the visitor’s IP address
to Google’s `siteverify` endpoint to obtain a spam score. No booking or customer
data is sent. This service is provided by Google: [terms of service](https://policies.google.com/terms),
[privacy policy](https://policies.google.com/privacy). If you never enable the feature,
no request to Google is ever made. The built-in honeypot and timing checks work 
without any external service.

## Screenshots

[⌊The customer booking form — customers choose a service, filtered by category, 
with duration, staff count, and price shown up front.⌉⌊The customer booking form—
customers choose a service, filtered by category, with duration, staff count, and
price shown up front.⌉[

The customer booking form — customers choose a service, filtered by category, with
duration, staff count, and price shown up front.

[⌊Picking a date and time — customers select a day, then a morning or afternoon 
slot, with a running appointment summary and total.⌉⌊Picking a date and time — customers
select a day, then a morning or afternoon slot, with a running appointment summary
and total.⌉[

Picking a date and time — customers select a day, then a morning or afternoon slot,
with a running appointment summary and total.

[⌊The final step — customers enter their details, add notes, and confirm. Pay-on-
arrival keeps booking friction low.⌉⌊The final step — customers enter their details,
add notes, and confirm. Pay-on-arrival keeps booking friction low.⌉[

The final step — customers enter their details, add notes, and confirm. Pay-on-arrival
keeps booking friction low.

[⌊The admin dashboard — bookings, revenue, completion rate, and new customers at
a glance, plus a bookings trend chart and the day's schedule.⌉⌊The admin dashboard—
bookings, revenue, completion rate, and new customers at a glance, plus a bookings
trend chart and the day's schedule.⌉[

The admin dashboard — bookings, revenue, completion rate, and new customers at a
glance, plus a bookings trend chart and the day’s schedule.

[⌊The bookings management screen — filter by status, staff, or service, and search
across every appointment with payment status and amounts.⌉⌊The bookings management
screen — filter by status, staff, or service, and search across every appointment
with payment status and amounts.⌉[

The bookings management screen — filter by status, staff, or service, and search
across every appointment with payment status and amounts.

[⌊The Form Appearance customizer — brand the booking form's colors, fonts, and shapes
with a live desktop and mobile preview.⌉⌊The Form Appearance customizer — brand 
the booking form's colors, fonts, and shapes with a live desktop and mobile preview
.⌉[

The Form Appearance customizer — brand the booking form’s colors, fonts, and shapes
with a live desktop and mobile preview.

## Installation

**Automatic installation**

 1. Go to **Plugins  Add New** in your WordPress admin.
 2. Search for “Schedopia”.
 3. Click **Install Now**, then **Activate**.

**Manual installation**

 1. Upload the `schedopia` folder to the `/wp-content/plugins/` directory.
 2. Activate the plugin through the **Plugins** screen in WordPress.

**After activation**

 1. The plugin’s custom tables (`wp_schedopia_*`) are created automatically on activation.
 2. Follow the setup wizard to add your services, staff, and working hours.
 3. Create or edit a page and insert the `[schedopia_booking]` shortcode to display
    your booking form (it also works inside the Gutenberg shortcode block and the Elementor
    Shortcode widget).
 4. Manage everything from the Schedopia admin screens, or via the REST API under `/
    wp-json/schedopia/v1/`.

## FAQ

### Is Schedopia free?

Yes. Schedopia is a complete, self-hosted appointment booking plugin with no per-
booking fees.

### What types of businesses is Schedopia for?

Any service business that runs on appointments — salons, barbershops, spas, clinics,
dentists, therapists, coaches, tutors, consultants, and home or repair services.

### Can customers book appointments online themselves?

Yes. Add the `[schedopia_booking]` form to any page and customers can pick a service,
choose a staff member, and book an available time on their own, 24/7.

### Will it prevent double-bookings?

Yes. Every booking is validated against real staff availability with a transactional
double-booking guard, so two customers can never take the same time slot.

### Can I take payments?

Schedopia records manual and offline payments — cash, bank transfer, and mark-as-
paid.

### Does Schedopia work with Elementor and Gutenberg?

Yes. The `[schedopia_booking]` shortcode works in any editor, including the Gutenberg
shortcode block and the Elementor Shortcode widget. Only one booking form can appear
per page.

### Does Schedopia rely on any third-party services?

Not unless you ask it to. Out of the box Schedopia contacts no external service 
and loads nothing from third-party CDNs — your business data stays on your own site.
There is one opt-in exception: if you switch on reCAPTCHA spam protection and supply
your own keys, the booking form then loads Google’s script and checks submissions
with Google (see the External Services section below). The only other third-party
links anywhere are the optional “add to calendar” buttons in customer emails, which
are ordinary links your customer may choose to click to save their appointment in
Google or Outlook.

### Does Schedopia use custom database tables or custom post types?

Custom tables (`wp_schedopia_*`). Bookings, services, staff, customers, and payments
are stored relationally rather than as posts.

### How do developers extend Schedopia?

Through documented lifecycle hooks, filters, and driver interfaces (`BookingSource`,`
NotificationChannel`, `PaymentMethod`). Every booking flows through one validated
path, so an extension can never create a booking the core would reject. A full REST
API is available under `/wp-json/schedopia/v1/`.

### What happens to my data if I uninstall?

Uninstall preserves your business data by default. Deletion only happens if you 
explicitly opt in.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Schedopia – Appointment Booking & Scheduling” is open source software. The following
people have contributed to this plugin.

Contributors

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

[Translate “Schedopia – Appointment Booking & Scheduling” into your language.](https://translate.wordpress.org/projects/wp-plugins/schedopia)

### Interested in development?

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

## Changelog

#### 1.2.1 – 2026-08-06

 * Added: Spam protection on the booking form. A hidden decoy field and a minimum
   fill-time check quietly reject automated submissions before anything is saved,
   so junk bookings never reach your list. Both work out of the box with nothing
   to configure.
 * Added: Optional Google reCAPTCHA v3 for the booking form, under Settings  Booking
   rules. It stays switched off until you turn it on and add your own keys — until
   then the form contacts no outside service at all.

#### 1.2.0 – 2026-07-27

 * Added: Customers can cancel their own booking from a secure link in their confirmation,
   pending, and reminder emails. They see their booking details and confirm before
   anything changes, and no account or login is needed.
 * Added: A “Booking rules” settings section that controls whether customer cancellations
   are allowed at all, and how many hours before the start time the link stops working.
 * Added: A read-only calendar feed. Subscribe Google Calendar, Outlook, or Apple
   Calendar to it and your bookings appear alongside the rest of your schedule. 
   It stays off until you turn it on under Settings, and you can rotate the address
   at any time if it gets shared too widely.
 * Added: “Add to calendar” buttons for Google, Outlook, and Apple in confirmation
   and reminder emails, so customers can save the appointment in one click. You 
   can switch these off under Settings if you would rather not send customers to
   Google or Outlook.
 * Improved: Every customer email has been redesigned — your business name at the
   top, the appointment details in a clear panel, and a readable layout that holds
   together on phones and in Outlook. Nothing is loaded from anywhere else, so the
   emails render the same with images switched off.
 * Improved: A slot freed by a customer cancellation becomes bookable again immediately,
   and the cancellation flows through the same notifications as a cancellation made
   from the admin.

#### 1.1.0 – 2026-07-20

 * Added: Service add-ons. Attach optional extras to a service on the new Add-ons
   screen — each add-on carries its own price and duration.
 * Added: Customers can pick add-ons while booking, with an itemized summary showing
   what each one costs.
 * Added: Staff can pick add-ons in the admin New Booking dialog, and the booking
   details drawer lists the add-ons on a booking.
 * Improved: Available times automatically resize to the service plus the chosen
   add-ons, so a slot is only offered when the whole appointment fits and the calendar
   blocks the real time taken.
 * Improved: An add-on’s name, price, and duration are saved with the booking, so
   past bookings and receipts don’t change when you edit the catalog later.

#### 1.0.1 – 2026-07-14

 * Fixed: Bookings submitted without a timezone now default to the site’s WordPress
   timezone instead of UTC, so wall-clock times are stored against the correct zone.

#### 1.0.0 – 2026-07-10

 * Added: First stable release — a complete appointments booking system: a service
   catalog with categories; staff with weekly working hours, days off, buffers, 
   and capacity; real dated bookings with a transactional double-booking guard; 
   manual / offline payment recording; email notifications (confirmation, cancellation,
   operator alert, reminders); a setup wizard; a single-page admin dashboard; and
   the customer-facing `[schedopia_booking]` form with the Form Appearance customizer.
 * Added: A single validated booking path (admin, form, and API) with serial/reference
   generation and a confirmation email on every booking.
 * Added: A REST API for every entity with schema-driven validation, granular per-
   area capabilities, and rate limiting on the public API.
 * Added: Self-hosted fonts and assets — loads nothing from third-party CDNs. Uninstall
   preserves business data unless you opt in to deletion.

## Meta

 *  Version **1.2.1**
 *  Last updated **1 hour ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.5 or higher **
 *  Tested up to **7.0.2**
 *  PHP version ** 8.1 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/schedopia/)
 * Tags
 * [appointment booking](https://ceb.wordpress.org/plugins/tags/appointment-booking/)
   [appointment scheduling](https://ceb.wordpress.org/plugins/tags/appointment-scheduling/)
   [booking calendar](https://ceb.wordpress.org/plugins/tags/booking-calendar/)[online scheduling](https://ceb.wordpress.org/plugins/tags/online-scheduling/)
   [reservations](https://ceb.wordpress.org/plugins/tags/reservations/)
 *  [Advanced View](https://ceb.wordpress.org/plugins/schedopia/advanced/)

## Ratings

No reviews have been submitted yet.

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

[See all reviews](https://wordpress.org/support/plugin/schedopia/reviews/)

## Contributors

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

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/schedopia/)

## Donate

Would you like to support the advancement of this plugin?

 [ Donate to this plugin ](https://thinkmatic.net)