Appearance
Booking Reminders
The Booking Reminders function sends automated reminders before a booking starts and follow-ups after it ends. Each timing slot you define becomes a native Voxel App Event, so the actual notification wording — email, in-app and SMS — is configured exactly where every other Voxel notification lives.
Overview
You define when to send in Voxel Toolkit; you define what to send in Voxel → App Events. A "24 hours before" reminder can email the customer, notify the vendor in-app, and (with SMS Notifications enabled) text either of them — all from Voxel's standard event configuration.
Key Features
- Any number of reminder slots (before the booking starts) and follow-up slots (after it ends)
- Each slot is a real Voxel App Event with customer, vendor, and admin destinations
- Email, in-app, and SMS channels per destination
@customer,@vendor,@order,@post, and@bookingdynamic tags- Timeslot-aware — a "1 hour before" reminder for a 2pm slot fires at 1pm
- Test-send tool that fires an event for a real booking immediately
Setup Instructions
Step 1: Enable the Function
- Navigate to Voxel Toolkit → Functions in your WordPress admin
- Find Booking Reminders in the list
- Toggle the switch to enable the function
Step 2: Add Timing Slots
In the function's settings:
- Reminders — sent before the booking starts. Click Add reminder and set a number and unit (Minutes / Hours / Days) "before the booking starts". A new row defaults to 24 hours
- Follow-ups — sent after the booking ends. Click Add follow-up and set the timing "after the booking ends". A new row defaults to 1 hour
Save your changes. Each slot registers an App Event.
Step 3: Configure the Events in Voxel
- Go to Voxel → App Events and find the Voxel Toolkit category
- Each slot appears as an event, e.g. Booking: 24 Hours Reminder or Booking: 1 Hour Follow-up
- Enable the destinations you want — Notify customer, Notify vendor, Notify admin — and write the in-app and email content. All destinations start disabled, so nothing sends until you switch them on
- If SMS Notifications is enabled, the SMS channel appears here too
Sensible default wording is provided (e.g. "Your booking at @post(:title) starts soon!" for the customer reminder, "How was your experience at @post(:title)?" for the follow-up).
Dynamic Tags
Reminder and follow-up events expose:
| Tag | Resolves to |
|---|---|
@customer(...) | The customer who placed the booking |
@vendor(...) | The vendor (falls back to the listing author if the order has no vendor) |
@order(...) | The order the booking belongs to |
@post(...) | The booked listing |
@booking(...) | The booking itself — dates, timeslot, and so on |
@booking tags in previews
Voxel's App Events preview has no real booking to work with, so @booking(...) tags resolve as empty there. Use the test-send tool below to see them filled in.
How Timing Works
- Timeslot bookings — the reminder is measured from the slot's start time and the follow-up from its end time, so "1 hour before" a 2pm–4pm slot fires at 1pm and "1 hour after" fires at 5pm
- Single-day bookings — the day runs 00:00 to 23:59, so reminders measure from midnight
- Date-range bookings — from the start date's midnight to the end date's 23:59
- Checks run every 15 minutes via WP-Cron, so a slot fires within a 15-minute window of its target time. Each slot fires once per booking — duplicates are suppressed
- Order statuses covered: completed, subscription active, and subscription trialing; only booking-type order items are considered
Testing
Once at least one slot exists, a Send a test section appears in the settings:
- Pick an Event (e.g. "Reminder: 24 hours before")
- Pick a Booking from the list of recent booking orders
- Click Send test notification
The event fires immediately for that real booking, so you can check the wording without waiting for the scheduled time. If the list is empty, create a test booking first.
Troubleshooting
Nothing Is Sending
- Confirm the destination (customer/vendor/admin) is actually enabled in Voxel → App Events — every destination starts off
- Check WP-Cron is running; the check runs every 15 minutes
- Confirm the order status is completed or an active/trialing subscription
An Event Is Missing from App Events
- Save the Booking Reminders settings again — events are registered from the saved slots
Requirements
- Voxel Theme with a bookable product type configured
- Voxel Toolkit plugin with Booking Reminders enabled
- Working WP-Cron (or a real cron hitting
wp-cron.php) - SMS Notifications function (optional, for the SMS channel)

