SlotPress Documentation

Everything you need to install, configure and extend SlotPress on your WordPress site.

Version 2.2.1 Last updated June 2026 Requires WordPress 6.0+ · PHP 7.4+

Quick Start

SlotPress is a complete booking plugin for WordPress. It handles appointments, resource bookings, equipment rentals and logistics from a single install with a guided 5-step wizard.

🆓 Free forever

Appointment mode, 1 service, 4 color palettes, GDPR consent, CSV export.

⭐ Pro

All modes, unlimited services, 10 palettes, integrations, calendar sync.

Requirements

ComponentMinimumRecommended
WordPress6.06.5+
PHP7.48.1+
MySQL / MariaDB5.7 / 10.38.0+ / 10.6+
BrowserChrome 90, Firefox 88, Safari 14Latest stable
HTTPSRequired for secure booking submissions

Installation

From WordPress.org (recommended)

1
Go to Plugins → Add New

Search for SlotPress in the WordPress plugin repository.

2
Install and Activate

Click Install Now, then Activate. The plugin creates its database table automatically.

3
Run the Setup Wizard

A notice appears at the top of the dashboard. Click Run Setup Wizard to configure your first booking service in 5 steps.

Manual upload

1
Download the zip

Get simple-slot-booking.zip from WordPress.org or your purchase confirmation email.

2
Upload via Plugins → Add New → Upload Plugin

Select the zip and click Install Now, then Activate.

3
Verify the database table

SlotPress creates wp_ssb_bookings on activation. Check Tools → Site Health if you see any errors.

The plugin slug is simple-slot-booking and the text domain is simple-slot-booking. The main shortcode is [slotpress_booking].

Setup Wizard

The wizard guides you through the initial configuration in 5 steps. You can re-run it at any time from SlotPress → Setup Wizard.

1
Choose your niche

Pick from 15 pre-configured templates (Barber, Medical, Photography, Coaching, Coworking, Equipment Rental, Vehicle Rental and more). Each template pre-fills sensible defaults for slot interval, opening hours and service name.

2
Set your service

Enter the service name, optional price and thumbnail image. In Pro you can add multiple services.

3
Configure availability

Select bookable days, opening and closing time, slot duration (15 / 30 / 45 / 60 / 90 / 120 min), booking window (how many days ahead customers can book) and optional time zone override.

4
Appearance

Choose a color palette and preview the live widget. 4 palettes available on Free, 10 on Pro.

5
Publish

The wizard creates a Book Now page and inserts the shortcode. You can copy the shortcode and embed it anywhere.

Booking Modes

The Booking Mode controls the entire UI and data model. Change it under SlotPress → Settings → General.

Appointment
Free

Classic time-slot booking. Customer picks a day then a time slot. Widget shows a weekly grid with text slots.

BarberMedicalCoachingSpaPhotographyTutoring
Resource
Pro

Book a physical space or item. Dot-grid calendar shows availability across multiple resources simultaneously.

CoworkingMeeting RoomsStudios
Rental
Pro

Date-range based booking with daily or hourly pricing. Customer picks start and end date/time.

Vehicle RentalEquipmentVacation Homes
Logistics
Pro

Advanced delivery/pickup scheduling with depots, loading zones and vehicle assignment.

DeliveryFreightField Services
Changing booking mode after you have live bookings does not migrate existing data. Keep backups before switching.

Services

Services (or Resources in Resource/Rental mode) are the bookable items displayed in the widget. Manage them under SlotPress → Services.

Service fields

FieldDescriptionPlan
NameDisplayed in the widget step 1 cardFree
DescriptionShort text shown below the nameFree
PriceDisplayed as a pill. Leave empty to hide.Free
ColorBackground tint for the service cardFree
ThumbnailImage shown in the card. Uses WordPress Media Library.Free
Slot intervalPer-service override of the global slot durationPro
Staff memberAssign a staff member to filter availabilityPro
CapacityMax simultaneous bookings per slot (group classes, etc.)Pro
Free plan supports 1 active service. Pro and above support unlimited services.

Availability Settings

SettingDefaultDescription
bookable_daysMon–SatDays of the week open for booking (0 = Sunday)
day_start09:00Opening time (HH:MM, 24h)
day_end18:00Closing time (HH:MM, 24h)
slot_interval60Slot duration in minutes (15, 30, 45, 60, 90, 120)
booking_window30Days ahead customers can book (1–365)
min_notice0Minimum hours before a slot can be booked
max_per_day0 (unlimited)Max bookings allowed per day across all services
timezoneWordPress site timezoneOverride timezone for slot display

Blocked dates

Add individual dates (holidays, closures) under SlotPress → Settings → Availability → Blocked Dates. Blocked dates are excluded from the booking calendar automatically.

Availability rules Pro

Override availability for specific date ranges — useful for seasonal hours or temporary closures with custom messages.

Shortcode

Embed the booking widget anywhere with the shortcode:

[slotpress_booking]

Attributes

AttributeTypeDefaultDescription
service_idintSkip the service selection step and open directly on a specific service ID.
palettestringfrom settingsOverride the color palette for this instance. Values: rose, violet, sky, indigo, amber, teal, slate, coral, mint, gold.
show_servicesbool1Set to 0 to hide the service selection step.
langstringsite localeForce a specific locale for date/time labels (e.g. it_IT).

Examples

// Open on service 42, sky palette
[slotpress_booking service_id="42" palette="sky"]

// Skip service step, use default palette
[slotpress_booking service_id="42" show_services="0"]

Gutenberg Block

The plugin registers a native SlotPress Booking block in the Block Editor. Search for it in the inserter — it exposes the same attributes via the Block Inspector sidebar.

Elementor Widget

SlotPress registers a native Elementor widget under the SlotPress category. Drag it onto any Elementor layout and configure service, palette and visibility from the widget controls.

Appearance

Open SlotPress → Settings → Appearance to customize how the booking widget looks on your site.

Color Palettes

Rose
Violet
Sky
Indigo
Amber ⭐
Teal ⭐
Slate ⭐
Coral ⭐
Mint ⭐
Gold ⭐

⭐ Pro only

Other appearance options

OptionDescription
Custom primary colorOverride the palette primary with any hex color Pro
Custom fontLoad any Google Font for the widget. Enter the font name exactly as on fonts.google.com. Pro
Step orderReorder the booking steps (Service → Date → Info or Date → Service → Info)
Compact modeReduce widget height — useful for sidebars

Form Fields

The booking form fields are fully configurable under Settings → Appearance → Form Fields. Drag to reorder.

FieldKeyRequired by default
First Namefirst_nameYes
Last Namelast_nameYes
EmailemailYes
PhonephoneNo
NotesnotesNo
CompanycompanyNo
AddressaddressNo
Custom field 1–3custom_1custom_3Configurable Pro

Each field can be toggled Active / Inactive and marked as Required. Custom fields support text, select and checkbox types.

License Activation

After purchasing SlotPress Pro at store.wpliftio.com you will receive a licence key via email.

1
Go to SlotPress → Settings → Licence

Scroll to the Activate SlotPress Pro panel.

2
Enter your licence key

Paste the key in the format XXXXX-XXXXX-XXXXX-XXXXX-XXXXX and click Activate.

3
Confirmation

The panel turns green — SlotPress Pro — Active. All Pro features are unlocked immediately, no page reload required.

Deactivation

Click Deactivate on the licence panel to free the activation slot on Lemon Squeezy. This lets you move the licence to a different site.

Licence limits

PlanSitesUpdatesSupport
Pro11 yearEmail
Pro Plus31 yearPriority email
AgencyUnlimited1 yearPriority email + Slack
Licences are validated against the Lemon Squeezy API every 12 hours and cached locally. The plugin works offline for up to 1 hour if the API is unreachable.

Notifications

Email notifications

SlotPress sends transactional emails for every booking event. Configure them under Settings → Notifications.

EventRecipientTemplate
New bookingCustomer + AdminCustomizable HTML or plain text
Booking confirmedCustomerSent when admin manually confirms
Booking cancelledCustomer + AdminIncludes cancellation reason if set
Booking reminderCustomerSent X hours before slot Pro

Template variables

Use these placeholders in email subject and body:

{{customer_name}}    {{customer_email}}   {{customer_phone}}
{{service_name}}     {{booking_date}}     {{booking_time}}
{{booking_id}}       {{site_name}}        {{site_url}}
{{admin_url}}        {{cancel_url}}

iCal attachment

Enable Attach .ics file in Settings → Notifications to include a calendar invite in confirmation emails. Customers can add the appointment directly to Google Calendar, Apple Calendar or Outlook.

Integrations Pro

All integrations are module-based and can be enabled independently under Settings → Integrations.

WhatsApp Notifications

Send booking confirmations and reminders via WhatsApp Business API (Meta). Requires a verified Meta Business Account with a connected phone number.

Enter your Phone Number ID and Access Token from the Meta Developer Portal. Use the Test Connection button to verify credentials before saving.

Google Calendar Sync

Each confirmed booking creates a Google Calendar event. Cancellations and updates are reflected in real time. Uses OAuth 2.0 — connect once from Settings → Integrations → Google Calendar.

Microsoft Outlook / Teams

Create calendar events in Outlook and send Teams meeting links. Requires a Microsoft 365 account and OAuth connection via Settings → Integrations → Outlook.

Webhooks

Push booking events to any URL in real time. Supports all booking lifecycle events:

booking.created   booking.confirmed   booking.cancelled
booking.updated   booking.completed

Each POST payload includes the full booking object as JSON with an HMAC-SHA256 signature in the X-SSB-Signature header for verification.

Meta Pixel

Track booking completions as custom Purchase events with the service name and price. Enter your Meta Pixel ID in Settings → Integrations → Meta Pixel.

Google Analytics 4

Fire GA4 events on booking steps. Tracks begin_checkout, add_to_cart and purchase automatically when a Measurement ID is configured.

GDPR

Configure GDPR consent under Settings → GDPR.

SettingDescription
Enable consent checkboxShows a checkbox in the booking form before the customer can submit
Consent textThe text displayed next to the checkbox
Privacy Policy linkLink text and URL appended to the consent text
RequiredIf enabled, the form cannot be submitted without checking the box

Data export (WordPress Privacy Tools)

SlotPress is compatible with WordPress's built-in privacy tools. When a user requests a data export, their booking history is included. Use Tools → Export Personal Data.

Data erasure

Booking records are permanently deleted when processing an erasure request via Tools → Erase Personal Data.

FAQ

The booking widget shows "No available slots this week"

This appears when all slots in the current week are in the past. Click Try next week → in the widget to jump ahead. It can also appear if no bookable days overlap with the current week — check your Availability → Bookable days setting.

Emails are not being sent

SlotPress uses wp_mail(). If emails are not delivered, install a dedicated SMTP plugin (e.g. WP Mail SMTP, FluentSMTP) and configure your mail provider. Check your spam folder and server mail logs first.

Can I translate the plugin?

Yes. SlotPress uses the text domain simple-slot-booking and ships with a POT file in /languages/. Translate it with Loco Translate or Poedit. The date and time labels follow the WordPress site locale automatically.

How do I move a licence to a new site?

Go to Settings → Licence on the old site and click Deactivate. This frees the activation slot. Then activate the same key on the new site.

Does SlotPress work with caching plugins?

Yes. The booking widget loads dynamically so it always shows real-time availability regardless of page caching. If you use a full-page caching plugin (WP Rocket, LiteSpeed Cache, W3 Total Cache), simply exclude the page containing [slotpress_booking] from the cache — most caching plugins have a URL exclusion list in their settings.

Can I export bookings?

Yes. Go to SlotPress → Bookings and click Export CSV. The export includes all visible bookings with applied filters (date range, service, status).

Is the plugin WPML compatible?

The plugin is translation-ready. WPML string translation support is on the roadmap. Currently, the recommended approach is to use the lang shortcode attribute and register translated strings via pll_register_string() if using Polylang.

What happens if the Lemon Squeezy API is down?

Licence status is cached as a transient for 12 hours on success and 1 hour on failure. If the API is unreachable, the last known status is used until the transient expires. Your site continues to work normally during short outages.

Changelog

2.2.1 June 2026

  • Fixed: appointment calendar shows "no slots this week" with next-week navigation when all current slots are past
  • Fixed: availability settings could occasionally reset bookable days to none — now handled gracefully

2.2.0 April 2026

  • Logistics mode: vehicle assignment, depot and loading zone management
  • Microsoft Outlook / Teams integration
  • GA4 integration with automatic e-commerce event tracking
  • Admin calendar: month view with drag-to-reschedule
  • Staff management: assign staff members to services
  • Webhook module: HMAC-signed payloads, test endpoint

2.1.0 January 2026

  • Rental mode with date-range picker and daily/hourly pricing
  • Google Calendar OAuth sync
  • WhatsApp Business API integration
  • Meta Pixel booking events
  • CSV export with column filtering
  • iCal attachment in confirmation emails

2.0.0 October 2025

  • Complete rewrite with new admin UI and REST API
  • 5-step Setup Wizard with niche templates
  • Resource booking mode
  • 10 color palettes with live preview
  • Gutenberg block + Elementor widget
  • Slot hold system (5-minute reservation)
  • GDPR consent checkbox