Part of the ElmsPark Plugin Suite

Online appointment booking for
PageMotor

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.

Installation Guide Booking Form →

What does EP Booking do?

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.

📅

Online Booking

A multi-step booking form with real-time availability, date picker, and time slot selection. Supports individual and group/class bookings.

👥

Staff & Availability

Manage staff members, assign services, set weekly schedules, and add date exceptions for holidays or custom hours.

📧

Email Notifications

Automated confirmation, reminder, and cancellation emails sent through EP Email. Admin and staff notifications on new bookings.

📋

Admin Dashboard

View, filter, and manage bookings. Customer database with history. Calendar view. CSV export. Manual booking creation.

Installing EP Booking

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.

1

Download EP Booking

Download the ep-booking-v1.0.0.zip file from your ElmsPark account or the link provided with your purchase.

2

Log into your PageMotor admin

Go to yourdomain.com/admin/ and sign in.

3

Navigate to Plugins

Click Plugins in the admin navigation, then Manage Plugins.

4

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.

5

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.

Setting up your business

Before visitors can book, you need to create your services, organise them into categories, add staff members, and set up their availability schedules.

Creating Categories

Categories group related services together. They are optional but recommended for businesses with more than a few services.

1

Go to EP Booking Settings → Categories

2

Enter a category name (e.g. “Massage”, “Facial”, “Consultation”) and optional description

3

Click Add Category. Categories appear in the order they were created and can be deleted when no longer needed.

Creating Services

Services are what your customers book. Each service has a name, duration, price, and capacity.

1

Go to EP Booking Settings → Services

2

Click Add Service and fill in the form

FieldDescription
NameThe service name shown to customers (e.g. “Swedish Massage 60min”).
CategoryOptional category grouping. Services without a category appear as “Uncategorised”.
DurationLength of the appointment in minutes. Default: 60.
PriceNumeric price. Leave empty for free services.
Price LabelCustom price text shown instead of the numeric value (e.g. “From £50”, “Free consultation”).
CapacityMaximum 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 BeforeMinutes of buffer time before the appointment (e.g. preparation time). Not bookable by customers.
Buffer AfterMinutes of buffer time after the appointment (e.g. clean-up time). Not bookable by customers.
DescriptionA 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.

Managing Staff

Staff members are the people who provide your services. Each staff member can be assigned to one or more services.

1

Go to EP Booking Settings → Staff

2

Click Add Staff and enter their name, email, phone, and bio

3

Use the Assign Services button to select which services they can provide

4

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).

Availability Schedules

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.

FeatureHow it works
Weekly ScheduleSet working hours for each day (Monday–Sunday). Days with no hours set are treated as days off.
Date ExceptionsOverride 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 ExceptionsExceptions 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 widget

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.

Adding the Booking Form

1

Go to EP Booking Settings → Booking Form and tick Enable Booking Form

2

Create a new page (e.g. “Book an Appointment” at /book/)

3

Add the shortcode to the page content: [booking-form]

Shortcode Parameters

ParameterDescription
titleOptional heading displayed above the form (e.g. [booking-form title="Book Your Visit"]).
servicePre-select a specific service by ID, skipping step 1 (e.g. [booking-form service="3"]).
categoryPre-filter services to a specific category.
staffPre-select a specific staff member by ID.

Both hyphenated and underscored variants work: [booking-form] or [booking_form]

The 4-Step Booking Flow

Select Service

Services are displayed as cards grouped by category, showing name, duration, price, and description. Click a service to continue.

Date & Time

Choose a staff member (or “Any Available”), pick a date from the calendar, then select from available time slots. Group services show remaining spots.

Your Details

Enter name, email, phone (if required), and optional notes. Newsletter opt-in and GDPR consent checkboxes appear if those plugins are active.

Confirmation

Review the booking summary: service, staff, date, time, duration, and price. Click “Confirm Booking” to complete.

How Availability Works

Available time slots are computed in real time based on several factors:

1

The staff member’s weekly schedule defines their working hours for that day of the week.

2

Date exceptions (holidays, custom hours) override the weekly schedule for specific dates.

3

Candidate slots are generated at the configured time slot interval (15, 20, 30, or 60 minutes).

4

Slots that overlap existing bookings (including buffer times) are removed. For group services, slots remain until capacity is reached.

5

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.

Service Catalog Shortcode

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.

ParameterDescription
columnsNumber of grid columns: 1, 2, or 3. Default: 3.
show_pricesOverride the global “Show Prices” setting: true or false.
book_buttonShow a “Book Now” button on each card. Default: true.
booking_pageURL of the page containing your booking form (e.g. /book/). Required for “Book Now” links.
categoryFilter to a specific category ID.

Automated emails

EP Booking sends all emails through EP Email, ensuring reliable delivery via your configured SMTP provider. Configure notification settings under EP Booking Settings → Notifications.

Email Types

EmailSent toWhen
ConfirmationCustomerImmediately after a booking is submitted (if enabled).
ReminderCustomerA configurable number of hours before the appointment (default: 24 hours).
CancellationCustomerWhen a booking is cancelled by the customer or admin.
Admin AlertAdminImmediately after a new booking is submitted (if enabled).
Staff AlertStaff memberWhen a booking is made for their service (if admin notifications enabled and staff has an email).

Template Placeholders

Use these placeholders in your confirmation, reminder, and cancellation email subjects and bodies. They are automatically replaced with the booking details.

PlaceholderReplaced 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).

Email Templates

EP Booking can use any EP Email template for its emails. Choose from:

📄

Plain Text

No HTML wrapper — just the message content. Best for simple, text-only notifications.

🎨

Default

Clean, transactional layout. Good for customer-facing confirmations and reminders.

🔔

Notification

Admin-style notification. Suitable for internal admin and staff alerts.

🌟

Branded

Full branding with logo and colours from EP Email settings. Most professional option.

Reminder System

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.

Managing bookings

The EP Booking settings page includes three admin dashboards: Bookings, Customers, and a calendar view. All are accessible from the EP Booking settings page.

Bookings Dashboard

The bookings dashboard shows all appointments with filters and actions.

FeatureDescription
Status FilterFilter bookings by status: All, Pending, Confirmed, Completed, Cancelled, No-Show.
Staff FilterFilter bookings by staff member.
Date RangeFilter bookings by start and end date.
Pagination25 bookings per page with page navigation.

Booking Statuses

StatusMeaning
PendingAwaiting admin confirmation (when auto-confirm is disabled).
ConfirmedBooking is confirmed and the customer has been notified.
CompletedThe appointment has taken place.
CancelledBooking was cancelled by admin or customer.
No-ShowCustomer did not attend the appointment.

Booking Actions

Confirm

Confirm a pending booking. The customer receives a confirmation email.

Complete

Mark a confirmed booking as completed after the appointment.

Cancel

Cancel a booking. A cancellation email is sent to the customer.

📝

Admin Notes

Add timestamped internal notes to any booking for your records.

Manual Bookings

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.

Self-Service Cancellation

Customers can cancel their own bookings using the cancellation link included in their confirmation email.

1

Customer clicks the {cancel_url} link in their confirmation email.

2

EP Booking verifies the cancellation token and email address.

3

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.

Customers Dashboard

The customers dashboard provides a searchable list of all customers who have booked through your site.

FeatureDescription
SearchSearch customers by name or email address.
Booking CountShows the total number of bookings for each customer.
Booking HistoryClick a customer to view their complete booking history.
CSV ExportExport all customer data (email, name, phone, booking count, created date) as a CSV file.
DeleteRemove a customer and all their booking records (with confirmation).

Working with other EP plugins

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 Email (Required)

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.

FeatureHow it works
Email DeliveryAll booking emails are routed through EP Email’s SMTP configuration for reliable delivery.
Email TemplatesChoose from EP Email’s templates (Plain Text, Default, Notification, Minimal, Branded) for your booking emails.
Delivery LoggingAll booking emails appear in EP Email’s delivery log for troubleshooting.

EP GDPR (Optional)

When EP GDPR is installed and active, two integrations activate automatically:

Consent Checkbox

A privacy consent checkbox appears on the booking form. Consent is logged in EP GDPR’s consent log with the context “booking-form”.

📝

Data Subject Requests

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.”

EP Newsletter (Optional)

When EP Newsletter is installed and active, you can add a newsletter subscription checkbox to your booking form.

1

Go to EP Booking Settings → EP Newsletter Integration

2

Tick Newsletter Opt-In to show the checkbox on the booking form

3

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 EP Booking settings

All settings are found under Admin → Plugins → EP Booking.

General

SettingDescriptionDefault
Business NameUsed in booking confirmation emails. Falls back to site title if empty.
Admin Notification EmailEmail address that receives new booking alerts.
TimezoneTimezone for availability and booking times.Server default

Booking Rules

SettingDescriptionDefault
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 IntervalInterval between available time slots: 15, 20, 30, or 60 minutes.30
Cancellation Window (hours)Minimum hours before appointment to allow self-cancellation.24
Auto-ConfirmAutomatically confirm new bookings (otherwise admin must confirm).Off

Booking Form

SettingDescriptionDefault
Enable Booking FormEnable the [booking-form] shortcode.Off
Show PricesDisplay prices on the booking form.Off
Staff SelectionLet customers choose their preferred staff member.Off
Require PhoneRequire phone number on the booking form.Off
Success MessageMessage shown after successful booking.“Your appointment has been booked!…”
Rate Limit (minutes)Minutes between bookings from the same IP address.2

Notifications

SettingDescription
Confirmation EmailSend confirmation email to customer after booking.
Confirmation Subject / MessageCustomise the confirmation email using placeholders.
Reminder EmailSend reminder email before appointment.
Reminder (hours before)How many hours before the appointment to send the reminder.
Reminder Subject / MessageCustomise the reminder email using placeholders.
Cancellation Subject / MessageCustomise the cancellation email using placeholders.
Admin NotificationNotify admin of new bookings.
Email TemplateEP Email template for all booking emails.

Common questions & answers

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.

The ElmsPark Plugin Suite

EP Booking is one part of a growing collection of professional PageMotor plugins designed to work together seamlessly.

πŸ”—

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.