Features

Everything you need to take bookings, and nothing that phones home

Schedopia covers the whole job: what you offer, who offers it, when it is available, who booked it, whether they paid, and how they hear about it. All of it runs inside your WordPress site.

Appointments

Services, staff and time slots that stay in sync

Set up what you offer and who offers it. Customers see only the times that are genuinely open, and every booking is checked against real availability before it is confirmed.

  • Services in categories

    Each service carries its own price and duration. Group them so a long menu stays easy to scan.

  • Add-ons with their own price and time

    Offer extras alongside a service. The total and the slot length update to match.

  • Staff schedules, days off and buffers

    Weekly hours per person, time off, gaps between appointments, and how many customers each slot can take.

  • A double-booking guard that holds

    Two customers can never take the same slot. The check runs inside a transaction, not in the browser.

  • Timezone per booking

    Customers see times in their zone; you see them in yours.

Schedopia booking form, step 2 of 3: a calendar to pick a day, morning and afternoon time slots, and a running appointment summary.

Events and seats

Sell specific seats on a visual seat map

Lay out a venue once, then run as many dated events in it as you like. Customers pick the exact seats they want and see live availability while they choose.

  • Venues with one or more halls

    Each hall has its own seat layout. Add a second hall to an event when the first fills up.

  • Visual seat planner

    Draw rows and seats in the admin, generate seats in bulk, and group them into tiers such as VIP, Standard and Balcony with their own colours and prices.

  • Per-seat price overrides

    Price a single seat differently from its tier when you need to.

  • Live seats-left and a “from” price

    Upcoming sessions list the date, venue, hall, duration and how many seats remain.

  • A seat is never sold twice

    Reservations are validated against seats already taken, with the same transactional guard as appointments.

Schedopia seat map for Main Hall: colour-coded VIP, Standard and Balcony tiers, taken seats greyed out, and a booking summary totalling three selected seats.

Booking form

A three-step form that looks like part of your site

Customers choose, pick a time or seats, and confirm. Pay-on-arrival keeps the flow short. Brand the form from the admin without touching CSS.

  • Mobile-first

    Designed for a phone screen first, then scaled up. Most bookings happen on one.

  • Form Appearance customizer

    Colours, fonts, shapes and button style, with a live desktop and mobile preview as you change them.

  • One shortcode, any editor

    Paste [schedopia_booking] into the block editor, Elementor’s Shortcode widget, or the classic editor. Add mode="event" for seat bookings.

  • Open 24/7

    Bookings arrive while you sleep. No staff involvement until the appointment itself.

Schedopia Form Appearance customizer with colour, font and shape controls beside a live desktop and mobile preview of the booking form.

Admin

Run the day from one dashboard

The dashboard answers the questions you actually ask each morning: what is booked today, how much has come in, who is new. Everything else is one click away.

  • At-a-glance dashboard

    Total bookings, revenue collected, completion rate and new customers, with a trend chart and today’s schedule.

  • Bookings you can filter and search

    Narrow by status, staff or service, and search across every appointment with its payment status and amount.

  • Customers with history

    Every customer record shows what they booked and when.

  • Manual and offline payments

    Record cash, bank transfer, or mark a booking as paid. Every booking carries a payment status.

  • CSV export that respects your filters

    Export exactly the bookings you are looking at, ready for a spreadsheet or your accountant.

  • Activity log

    A record of what changed and when, across bookings and settings.

Schedopia admin dashboard showing total bookings, revenue collected, completed count, new customers, a bookings trend chart and today’s schedule.

Notifications

Everyone knows what is happening, without you sending a thing

Confirmations go out the moment a booking lands. Reminders reduce no-shows. Customers can cancel from the email, inside the rules you set.

Confirmations and cancellations

Customers get a clear email for every booking and every change.

Reminders and staff alerts

Customers are reminded before their appointment. Your team hears about every new booking.

Self-service cancellation

A secure link in the email lets customers cancel without an account. You decide how close to the appointment that is allowed.

Add to calendar

Google, Outlook and Apple Calendar buttons in every confirmation, plus a read-only calendar feed to subscribe to.

Developers

Built to be extended, not forked

Every booking flows through one validated path. Extensions plug into that path through documented hooks and driver interfaces, so nothing you add can create a booking the core would reject.

Full REST API

Everything the admin can do is available under /wp-json/schedopia/v1/ with schema-driven validation.

Granular capabilities and rate limits

Per-area permissions for admin routes, rate limiting on the public API.

Driver interfaces

Implement BookingSource, NotificationChannel or PaymentMethod to add channels and payment types.

Relational tables, not post types

Bookings, services, staff, customers, payments, venues, seats and events live in wp_schedopia_* tables.

REST API base
/wp-json/schedopia/v1/
Validation
Schema-driven on every route
Permissions
Granular per-area capabilities; rate limiting on public routes
Driver interfaces
BookingSource, NotificationChannel, PaymentMethod
Storage
Relational tables prefixed wp_schedopia_*
Extension points
Documented lifecycle hooks and filters
License
GPLv2 or later

Every booking, whether from the form, the API or an extension, passes through the same validated path.

Privacy and security

Private by default

Out of the box Schedopia contacts no external service and loads nothing from a CDN. Your customers’ names, emails and bookings stay in your database.

Spam protection without a third party

A honeypot field and a minimum fill-time check reject automated submissions. Google reCAPTCHA v3 is available if you want it, and only runs when you add your own keys.

Your data survives uninstall

Removing the plugin keeps your business data. Deletion happens only if you explicitly opt in.

No external requests by default

No tracking, no phone-home, no CDN assets. The plugin is fully self-hosted.

GPLv2 licensed

Free software you can inspect, modify and keep running for as long as you like.

Requirements

WordPress
6.5 or later, tested up to 7.1
PHP
8.1 or later
Current version
1.3.0
License
GPLv2 or later
Editors
Block editor, Elementor, classic editor via shortcode
External services
None by default. Google reCAPTCHA v3 optional.

Take your first booking today

Install Schedopia from WordPress.org, run the setup wizard, and paste one shortcode. If you would rather talk it through first, we are happy to.