EP Booking gives you a multi-step booking form, staff & availability management, automated email notifications, and a full admin dashboard — everything your service-based business needs to accept appointments online.
EP Booking lets any service-based business accept online appointments through their PageMotor website. Visitors pick a service, choose a staff member and time slot, enter their details, and receive an automated confirmation email — all without leaving your site.
A multi-step booking form with real-time availability, date picker, and time slot selection. Supports individual and group/class bookings.
Manage staff members, assign services, set weekly schedules, and add date exceptions for holidays or custom hours.
Automated confirmation, reminder, and cancellation emails sent through EP Email. Admin and staff notifications on new bookings.
View, filter, and manage bookings. Customer database with history. Calendar view. CSV export. Manual booking creation.
EP Booking installs like any PageMotor plugin. The process takes under a minute.
EP Email is required. EP Booking sends all emails (confirmations, reminders, cancellations, admin alerts) through EP Email. Install and configure EP Email before installing EP Booking.
Download EP Booking
Download the ep-booking-v1.0.0.zip file from your ElmsPark account or the link provided with your purchase.
Log into your PageMotor admin
Go to yourdomain.com/admin/ and sign in.
Navigate to Plugins
Click Plugins in the admin navigation, then Manage Plugins.
Upload the zip file
Use the plugin upload interface to upload ep-booking-v1.0.0.zip. PageMotor will extract it to the correct location automatically.
Activate EP Booking
In your active Themeβs plugin configuration, enable EP Booking. It will create its database tables automatically on first load.
How to verify: After activation, go to Plugins β Plugin Settings. You should see EP Booking Settings with the full configuration interface. EP Booking creates eight database tables on first load for services, staff, availability, bookings, and customers.
Optional integrations: EP GDPR (consent logging on booking form, data subject request handling) and EP Newsletter (newsletter opt-in checkbox on booking form) are optional. Install them if you need their features β EP Booking will detect them automatically.
Before visitors can book, you need to create your services, organise them into categories, add staff members, and set up their availability schedules.
Categories group related services together. They are optional but recommended for businesses with more than a few services.
Go to EP Booking Settings → Categories
Enter a category name (e.g. “Massage”, “Facial”, “Consultation”) and optional description
Click Add Category. Categories appear in the order they were created and can be deleted when no longer needed.
Services are what your customers book. Each service has a name, duration, price, and capacity.
Go to EP Booking Settings → Services
Click Add Service and fill in the form
| Field | Description |
|---|---|
| Name | The service name shown to customers (e.g. “Swedish Massage 60min”). |
| Category | Optional category grouping. Services without a category appear as “Uncategorised”. |
| Duration | Length of the appointment in minutes. Default: 60. |
| Price | Numeric price. Leave empty for free services. |
| Price Label | Custom price text shown instead of the numeric value (e.g. “From £50”, “Free consultation”). |
| Capacity | Maximum concurrent bookings per time slot. Set to 1 for individual appointments. Use higher values for group classes (e.g. 10 for a yoga class). |
| Buffer Before | Minutes of buffer time before the appointment (e.g. preparation time). Not bookable by customers. |
| Buffer After | Minutes of buffer time after the appointment (e.g. clean-up time). Not bookable by customers. |
| Description | A short description shown on the booking form service cards. |
Buffer times explained: If a 60-minute massage has a 10-minute buffer after, the total blocked time is 70 minutes. The customer sees a 60-minute appointment, but the next available slot won’t start until 70 minutes after.
Staff members are the people who provide your services. Each staff member can be assigned to one or more services.
Go to EP Booking Settings → Staff
Click Add Staff and enter their name, email, phone, and bio
Use the Assign Services button to select which services they can provide
Use the Schedule button to set their weekly availability hours
Staff email: If a staff member has an email address set, they will receive notification emails when bookings are made for their services (if admin notifications are enabled).
Each staff member has a weekly schedule that defines their working hours. The schedule editor lets you set start and end times for each day of the week.
| Feature | How it works |
|---|---|
| Weekly Schedule | Set working hours for each day (Monday–Sunday). Days with no hours set are treated as days off. |
| Date Exceptions | Override the weekly schedule for specific dates. Mark a date as a day off (e.g. bank holiday) or set custom hours (e.g. early close). |
| Global Exceptions | Exceptions without a specific staff member apply to all staff (e.g. Christmas Day closure). |
Important: A service will not appear as bookable unless at least one active staff member is assigned to it and has availability hours set. Make sure to complete both steps.
The booking form is a multi-step widget that guides visitors through selecting a service, choosing a date and time, entering their details, and confirming their appointment — all without a page reload.
Go to EP Booking Settings → Booking Form and tick Enable Booking Form
Create a new page (e.g. “Book an Appointment” at /book/)
Add the shortcode to the page content: [booking-form]
| Parameter | Description |
|---|---|
title | Optional heading displayed above the form (e.g. [booking-form title="Book Your Visit"]). |
service | Pre-select a specific service by ID, skipping step 1 (e.g. [booking-form service="3"]). |
category | Pre-filter services to a specific category. |
staff | Pre-select a specific staff member by ID. |
Both hyphenated and underscored variants work: [booking-form] or [booking_form]
Services are displayed as cards grouped by category, showing name, duration, price, and description. Click a service to continue.
Choose a staff member (or “Any Available”), pick a date from the calendar, then select from available time slots. Group services show remaining spots.
Enter name, email, phone (if required), and optional notes. Newsletter opt-in and GDPR consent checkboxes appear if those plugins are active.
Review the booking summary: service, staff, date, time, duration, and price. Click “Confirm Booking” to complete.
Available time slots are computed in real time based on several factors:
The staff member’s weekly schedule defines their working hours for that day of the week.
Date exceptions (holidays, custom hours) override the weekly schedule for specific dates.
Candidate slots are generated at the configured time slot interval (15, 20, 30, or 60 minutes).
Slots that overlap existing bookings (including buffer times) are removed. For group services, slots remain until capacity is reached.
Slots within the minimum advance hours window are excluded (customers can’t book too close to the current time).
“Any Available” staff: When the customer selects “Any Available”, the system checks all staff assigned to that service and merges their available slots. The first available staff member is automatically assigned when the booking is confirmed.
Use [booking-services] to display a grid of your active services on any page. This is ideal for a “Services” landing page that links to your booking form.
| Parameter | Description |
|---|---|
columns | Number of grid columns: 1, 2, or 3. Default: 3. |
show_prices | Override the global “Show Prices” setting: true or false. |
book_button | Show a “Book Now” button on each card. Default: true. |
booking_page | URL of the page containing your booking form (e.g. /book/). Required for “Book Now” links. |
category | Filter to a specific category ID. |
EP Booking sends all emails through EP Email, ensuring reliable delivery via your configured SMTP provider. Configure notification settings under EP Booking Settings → Notifications.
| Sent to | When | |
|---|---|---|
| Confirmation | Customer | Immediately after a booking is submitted (if enabled). |
| Reminder | Customer | A configurable number of hours before the appointment (default: 24 hours). |
| Cancellation | Customer | When a booking is cancelled by the customer or admin. |
| Admin Alert | Admin | Immediately after a new booking is submitted (if enabled). |
| Staff Alert | Staff member | When a booking is made for their service (if admin notifications enabled and staff has an email). |
Use these placeholders in your confirmation, reminder, and cancellation email subjects and bodies. They are automatically replaced with the booking details.
| Placeholder | Replaced with |
|---|---|
{customer_name} | The customer’s full name. |
{customer_email} | The customer’s email address. |
{service_name} | The name of the booked service. |
{staff_name} | The assigned staff member’s name (or “our team” if unassigned). |
{booking_date} | The appointment date (e.g. “Monday 16 February 2026”). |
{booking_time} | The appointment time (e.g. “2:30 PM”). |
{duration} | The service duration (e.g. “60 minutes”). |
{price} | The price or price label, if set. |
{cancel_url} | A link the customer can use to cancel their appointment. |
{site_name} | Your site title from PageMotor settings. |
{business_name} | Your business name from EP Booking settings (falls back to site title). |
EP Booking can use any EP Email template for its emails. Choose from:
No HTML wrapper — just the message content. Best for simple, text-only notifications.
Clean, transactional layout. Good for customer-facing confirmations and reminders.
Admin-style notification. Suitable for internal admin and staff alerts.
Full branding with logo and colours from EP Email settings. Most professional option.
Reminders are sent automatically before upcoming appointments. The system checks for pending reminders on each admin page load (at most once per minute) and sends emails for confirmed bookings that are within the configured reminder window.
Important: Reminders are processed when an admin visits any admin page. If no one visits the admin panel, reminders will not be sent. For businesses with time-critical reminders, ensure regular admin activity.
The EP Booking settings page includes three admin dashboards: Bookings, Customers, and a calendar view. All are accessible from the EP Booking settings page.
The bookings dashboard shows all appointments with filters and actions.
| Feature | Description |
|---|---|
| Status Filter | Filter bookings by status: All, Pending, Confirmed, Completed, Cancelled, No-Show. |
| Staff Filter | Filter bookings by staff member. |
| Date Range | Filter bookings by start and end date. |
| Pagination | 25 bookings per page with page navigation. |
| Status | Meaning |
|---|---|
| Pending | Awaiting admin confirmation (when auto-confirm is disabled). |
| Confirmed | Booking is confirmed and the customer has been notified. |
| Completed | The appointment has taken place. |
| Cancelled | Booking was cancelled by admin or customer. |
| No-Show | Customer did not attend the appointment. |
Confirm a pending booking. The customer receives a confirmation email.
Mark a confirmed booking as completed after the appointment.
Cancel a booking. A cancellation email is sent to the customer.
Add timestamped internal notes to any booking for your records.
Admins can create bookings on behalf of customers (e.g. for phone or walk-in bookings) using the Add Booking form in the bookings dashboard. Select a service, staff member, date, time, and enter the customer’s details.
Customers can cancel their own bookings using the cancellation link included in their confirmation email.
Customer clicks the {cancel_url} link in their confirmation email.
EP Booking verifies the cancellation token and email address.
If the cancellation window hasn’t passed (default: 24 hours before the appointment), the booking is cancelled and a cancellation email is sent.
Cancellation window: Set the minimum hours before an appointment that self-cancellation is allowed in Booking Rules → Cancellation Window. Default: 24 hours. After the cutoff, only admins can cancel.
The customers dashboard provides a searchable list of all customers who have booked through your site.
| Feature | Description |
|---|---|
| Search | Search customers by name or email address. |
| Booking Count | Shows the total number of bookings for each customer. |
| Booking History | Click a customer to view their complete booking history. |
| CSV Export | Export all customer data (email, name, phone, booking count, created date) as a CSV file. |
| Delete | Remove a customer and all their booking records (with confirmation). |
EP Booking integrates with other ElmsPark plugins to provide a seamless experience. Each integration is automatic — just install the plugins and they’ll find each other.
EP Booking requires EP Email for all email delivery. All confirmation, reminder, cancellation, admin, and staff notification emails are sent through EP Email’s transport system.
| Feature | How it works |
|---|---|
| Email Delivery | All booking emails are routed through EP Email’s SMTP configuration for reliable delivery. |
| Email Templates | Choose from EP Email’s templates (Plain Text, Default, Notification, Minimal, Branded) for your booking emails. |
| Delivery Logging | All booking emails appear in EP Email’s delivery log for troubleshooting. |
When EP GDPR is installed and active, two integrations activate automatically:
A privacy consent checkbox appears on the booking form. Consent is logged in EP GDPR’s consent log with the context “booking-form”.
EP GDPR automatically includes booking customer and appointment data in View Data, Export Data, and Erase Data operations.
Consent text: Customise the GDPR consent text in EP Booking Settings → EP GDPR Integration. Default: “I consent to my booking information being processed.”
When EP Newsletter is installed and active, you can add a newsletter subscription checkbox to your booking form.
Go to EP Booking Settings → EP Newsletter Integration
Tick Newsletter Opt-In to show the checkbox on the booking form
Customise the label text and optionally select a specific newsletter list
Returning customers: If a customer’s email is already subscribed to EP Newsletter, they won’t be added again. The opt-in only creates new subscriber records.
All settings are found under Admin → Plugins → EP Booking.
| Setting | Description | Default |
|---|---|---|
| Business Name | Used in booking confirmation emails. Falls back to site title if empty. | — |
| Admin Notification Email | Email address that receives new booking alerts. | — |
| Timezone | Timezone for availability and booking times. | Server default |
| Setting | Description | Default |
|---|---|---|
| Minimum Advance (hours) | Minimum hours in advance a customer can book. | 2 |
| Maximum Advance (days) | Maximum days in advance a customer can book. | 90 |
| Default Duration (minutes) | Default service duration when creating new services. | 60 |
| Time Slot Interval | Interval between available time slots: 15, 20, 30, or 60 minutes. | 30 |
| Cancellation Window (hours) | Minimum hours before appointment to allow self-cancellation. | 24 |
| Auto-Confirm | Automatically confirm new bookings (otherwise admin must confirm). | Off |
| Setting | Description | Default |
|---|---|---|
| Enable Booking Form | Enable the [booking-form] shortcode. | Off |
| Show Prices | Display prices on the booking form. | Off |
| Staff Selection | Let customers choose their preferred staff member. | Off |
| Require Phone | Require phone number on the booking form. | Off |
| Success Message | Message shown after successful booking. | “Your appointment has been booked!…” |
| Rate Limit (minutes) | Minutes between bookings from the same IP address. | 2 |
| Setting | Description |
|---|---|
| Confirmation Email | Send confirmation email to customer after booking. |
| Confirmation Subject / Message | Customise the confirmation email using placeholders. |
| Reminder Email | Send reminder email before appointment. |
| Reminder (hours before) | How many hours before the appointment to send the reminder. |
| Reminder Subject / Message | Customise the reminder email using placeholders. |
| Cancellation Subject / Message | Customise the cancellation email using placeholders. |
| Admin Notification | Notify admin of new bookings. |
| Email Template | EP Email template for all booking emails. |
Check that Enable Booking Form is ticked in EP Booking Settings → Booking Form. Also verify that the shortcode [booking-form] is correctly placed in your page content, and that EP Booking is activated in your Theme’s plugin configuration.
Services must meet three conditions to appear on the form: the service must be active (not inactive), at least one active staff member must be assigned to it, and that staff member must have availability hours set. Check all three in the Services and Staff dashboards.
This means no staff are available for that service on that date. Common causes: the staff member doesn’t have working hours set for that day of the week, a date exception has marked it as a day off, all slots are already booked, or the date is within the minimum advance hours window. Check the staff’s weekly schedule and exceptions.
First, check that Confirmation Email is enabled in EP Booking Settings → Notifications. Then verify that EP Email is installed, active, and its SMTP settings are correctly configured. Test email sending from the EP Email settings page. Also check EP Email’s delivery log for any errors.
Reminders are processed when an admin visits any admin page (at most once per minute). If no one visits the admin panel, reminders won’t be sent. Check that Reminder Email is enabled and the Reminder hours value is set correctly. Reminders only go out for confirmed or pending bookings.
Self-cancellation is only allowed within the cancellation window (default: 24 hours before the appointment). If the cutoff has passed, the link won’t cancel the booking. The booking may also already be cancelled. Admins can always cancel bookings from the admin dashboard regardless of the window.
Set the service Capacity to a value greater than 1 (e.g. 10 for a yoga class). Multiple customers can then book the same time slot until capacity is reached. The booking form shows “X spots left” on each time slot so customers can see remaining availability.
Yes. Assign the same service to multiple staff members using the Assign Services button in the Staff dashboard. Each staff member can have their own schedule. When a customer selects “Any Available”, the system automatically finds a staff member who is free at that time.
How the suite works together: EP Booking requires EP Email for email delivery, and optionally integrates with EP GDPR for consent logging and data subject request handling, and EP Newsletter for subscriber opt-in on booking forms. Install what you need β theyβll find each other automatically.