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
| Component | Minimum | Recommended |
|---|---|---|
| WordPress | 6.0 | 6.5+ |
| PHP | 7.4 | 8.1+ |
| MySQL / MariaDB | 5.7 / 10.3 | 8.0+ / 10.6+ |
| Browser | Chrome 90, Firefox 88, Safari 14 | Latest stable |
| HTTPS | Required for secure booking submissions | — |
Installation
From WordPress.org (recommended)
Search for SlotPress in the WordPress plugin repository.
Click Install Now, then Activate. The plugin creates its database table automatically.
A notice appears at the top of the dashboard. Click Run Setup Wizard to configure your first booking service in 5 steps.
Manual upload
Get simple-slot-booking.zip from WordPress.org or your purchase confirmation email.
Select the zip and click Install Now, then Activate.
SlotPress creates wp_ssb_bookings on activation. Check Tools → Site Health if you see any errors.
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.
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.
Enter the service name, optional price and thumbnail image. In Pro you can add multiple services.
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.
Choose a color palette and preview the live widget. 4 palettes available on Free, 10 on Pro.
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.
Classic time-slot booking. Customer picks a day then a time slot. Widget shows a weekly grid with text slots.
Book a physical space or item. Dot-grid calendar shows availability across multiple resources simultaneously.
Date-range based booking with daily or hourly pricing. Customer picks start and end date/time.
Advanced delivery/pickup scheduling with depots, loading zones and vehicle assignment.
Services
Services (or Resources in Resource/Rental mode) are the bookable items displayed in the widget. Manage them under SlotPress → Services.
Service fields
| Field | Description | Plan |
|---|---|---|
| Name | Displayed in the widget step 1 card | Free |
| Description | Short text shown below the name | Free |
| Price | Displayed as a pill. Leave empty to hide. | Free |
| Color | Background tint for the service card | Free |
| Thumbnail | Image shown in the card. Uses WordPress Media Library. | Free |
| Slot interval | Per-service override of the global slot duration | Pro |
| Staff member | Assign a staff member to filter availability | Pro |
| Capacity | Max simultaneous bookings per slot (group classes, etc.) | Pro |
Availability Settings
| Setting | Default | Description |
|---|---|---|
bookable_days | Mon–Sat | Days of the week open for booking (0 = Sunday) |
day_start | 09:00 | Opening time (HH:MM, 24h) |
day_end | 18:00 | Closing time (HH:MM, 24h) |
slot_interval | 60 | Slot duration in minutes (15, 30, 45, 60, 90, 120) |
booking_window | 30 | Days ahead customers can book (1–365) |
min_notice | 0 | Minimum hours before a slot can be booked |
max_per_day | 0 (unlimited) | Max bookings allowed per day across all services |
timezone | WordPress site timezone | Override 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
| Attribute | Type | Default | Description |
|---|---|---|---|
service_id | int | — | Skip the service selection step and open directly on a specific service ID. |
palette | string | from settings | Override the color palette for this instance. Values: rose, violet, sky, indigo, amber, teal, slate, coral, mint, gold. |
show_services | bool | 1 | Set to 0 to hide the service selection step. |
lang | string | site locale | Force 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
⭐ Pro only
Other appearance options
| Option | Description |
|---|---|
| Custom primary color | Override the palette primary with any hex color Pro |
| Custom font | Load any Google Font for the widget. Enter the font name exactly as on fonts.google.com. Pro |
| Step order | Reorder the booking steps (Service → Date → Info or Date → Service → Info) |
| Compact mode | Reduce widget height — useful for sidebars |
Form Fields
The booking form fields are fully configurable under Settings → Appearance → Form Fields. Drag to reorder.
| Field | Key | Required by default |
|---|---|---|
| First Name | first_name | Yes |
| Last Name | last_name | Yes |
email | Yes | |
| Phone | phone | No |
| Notes | notes | No |
| Company | company | No |
| Address | address | No |
| Custom field 1–3 | custom_1–custom_3 | Configurable 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.
Scroll to the Activate SlotPress Pro panel.
Paste the key in the format XXXXX-XXXXX-XXXXX-XXXXX-XXXXX and click Activate.
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
| Plan | Sites | Updates | Support |
|---|---|---|---|
| Pro | 1 | 1 year | |
| Pro Plus | 3 | 1 year | Priority email |
| Agency | Unlimited | 1 year | Priority email + Slack |
Notifications
Email notifications
SlotPress sends transactional emails for every booking event. Configure them under Settings → Notifications.
| Event | Recipient | Template |
|---|---|---|
| New booking | Customer + Admin | Customizable HTML or plain text |
| Booking confirmed | Customer | Sent when admin manually confirms |
| Booking cancelled | Customer + Admin | Includes cancellation reason if set |
| Booking reminder | Customer | Sent 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.
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.
| Setting | Description |
|---|---|
| Enable consent checkbox | Shows a checkbox in the booking form before the customer can submit |
| Consent text | The text displayed next to the checkbox |
| Privacy Policy link | Link text and URL appended to the consent text |
| Required | If 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