Setup Checks and Operations
A booking system fails quietly. A reminder that never sends, a payment that didn’t get matched or a calendar that stopped syncing won’t throw an error on your screen. Two screens catch these problems: Setup checks before you go live, and Operations for the background work that keeps running afterwards.
Both live under Bookings → Settings in the Maintenance group, and only booking managers can open them.
Run Your Setup Checks
Open Bookings → Settings → Setup checks. Booking setup at the top marks Add staff availability and Create an active service as Ready or Needs setup.
Below it, a table lists each optional connection with its Local status and the Next check you should do yourself:
- Stripe payments: complete a test checkout and confirm the signed webhook in Stripe.
- Google Calendar: each staff member connects their own calendar.
- Zoom meetings: confirm the host and app permissions in Zoom.
- Spam protection: open a public booking form and complete its security challenge.
- Email delivery: send a test and check your inbox.
“Not configured or disabled” is fine for anything your services don’t use. These checks read your saved settings only. A saved key doesn’t prove the provider accepts it, which is why each row tells you what to test next.
Check Background Work
Background work and readiness marks each row OK or Check, with What to do beside it:
| Check | What OK means |
|---|---|
| Background worker | It ran in the last five minutes, so emails, reminders and payment checks are moving. |
| Jobs schedule | The worker is scheduled every minute. |
| Encryption key | A dedicated CORE_BOOKINGS_KEY of at least 32 characters is set in wp-config.php. |
| FluentCart checkout | FluentCart is ready for the services that use it. Shown only when FluentCart is active or in use. |
| Stripe publishable key | Saved, and in the same test or live mode as the secret key. Shown when a key is saved or a service uses embedded Stripe payment. |
WordPress cron only runs when someone visits your site. If Background worker says Check on a quiet site, ask your host to add a server cron task that runs WordPress cron every minute. WP-CLI Commands has the exact command.
Test Your Connections
- Stripe webhook: shows your webhook address with Copy address, whether it uses HTTPS and how many signed events have arrived.
- Check my calendar access: reads your own connected calendars for the next 24 hours and checks you can write to the destination calendar. It creates no event.
- Send my test email: tick the box to confirm, then click. One test email goes to the address on your WordPress profile through your configured email handler. It contains no customer details.
A successful test email means your mail handler accepted it. Check your inbox (and spam folder) to confirm it actually arrived.
Watch the Operations Queue
Every email, reminder, calendar sync, payment check, refund and webhook runs as an operation in the background. Bookings → Settings → Operations shows the queue:
- A summary line with Queued, Overdue and Failed counts, plus when the booking and calendar workers last finished.
- Process due jobs now, to run waiting work without waiting for cron.
- A searchable list you can filter by Open, Failed, Overdue, Pending, Running, Done, Dismissed or All, with the Issue in plain words.
- Calendar connection health for each staff member, showing who needs to reconnect.
Recover Failed Work
Operations retry on their own. When one runs out of retries, it shows as Failed. Fix the cause first (a wrong API key, a disconnected calendar, an email setting), then:
- Enter a Reason beside the operation. It’s recorded against the booking.
- Click Retry operation to run it again, or Dismiss operation if you’ve handled it another way, such as calling the customer.
Payment event recovery lists payment events that ran out of retries. Retry event checks the payment provider again before it changes the booking. Dismiss unrelated refund is for a refund that belongs to another product or site, so verify that in Stripe first.
Limits
- Payment and meeting cleanup operations have no Dismiss operation button. Reconcile them with the provider, then retry.
- Email is delivered at least once. If the server crashes right after handing off an email, a retry can send a duplicate.
- Setup checks never contact Stripe, Zoom or your spam protection provider. Only the calendar check and the test email reach outside your site, and only when you click them.
Still stuck? Troubleshooting covers the common causes.