Identify what is missing
- The whole calendar or booking interface is absent: verify the page embed and plugin assets.
- The interface appears but one event is absent: verify publication, dates, filters, and WordPress timezone.
- The event appears but the booking form is closed: verify booking enablement, start time, and remaining capacity.
- A date shows no appointment times: verify the service, weekly hours, booking window, exceptions, and Pro assignments.
- A visible place or time disappears during checkout: another visitor may have booked it; the server performs a final capacity check.
Drecha Events public view showing no matching event or appointment availability
Screenshot will be added here.
Restore a missing event or calendar
- Open Events → Events and edit the missing event.
- Confirm that its status is Published.
- Confirm that the start date and time are correct in the timezone configured under Settings → General.
- Clear category, location, teacher, activity-type, and schedule filters on the public calendar.
- Confirm that the page contains the Drecha calendar block or shortcode.
- Purge page, host, and CDN caches.
The standard public calendar queries published events. Its upcoming range runs from now to two years ahead, while past events use the separate past view. An event outside the selected month, week, filter, or date range is not a rendering failure.
If WordPress created or reused an /events page during activation, inspect its content. An already existing page can be reused without automatically inserting a calendar block into custom content. Add the intended block or shortcode and save the page.
Fix an absent or closed event booking form
- Confirm that the event is Published.
- Open its booking settings and confirm that bookings are enabled.
- Confirm that the event start time has not passed in the WordPress timezone.
- Review capacity and the reserved count.
- View the public page while signed out and without an old page cache.
The booking panel closes when bookings are disabled, the event has started in the past, or no places remain. Unlimited capacity remains open until the event closes by time or configuration.
Understand a full-capacity message
Drecha Events booking panel showing a fully booked event and its capacity status
Screenshot will be added here.
Pending, Confirmed, Checked in, and No show statuses hold capacity. Cancelled and Not going records do not. A cancellation therefore releases its held places, while merely leaving a record unread does not.
The saved capacity cannot be reduced below the already reserved count. This protects existing reservations. If the public page shows an old remaining number, purge the page cache; the server still checks inventory atomically when the customer submits.
If two customers request the final place at nearly the same moment, only the transaction that reserves available inventory succeeds. The other customer receives a not-enough-places message and must choose fewer places or another event. Do not manually edit booking tables to override that result.
Resolve a rejected booking request
“This booking form has expired”
Event and appointment forms use signed tokens based on 12-hour windows and accept the current and immediately previous window. A long-lived cached page can eventually contain an expired token.
- Reload the page.
- Purge all full-page caches for the booking page.
- Exclude interactive booking pages from cache lifetimes that can retain the same HTML for a day.
- Try one new request in a private browser window.
“Too many booking attempts”
Events allows five attempts by default in a 15-minute window for the event, customer email, and visitor address. Wait before retrying and correct the underlying input or cache problem first. Shared networks and repeated automated tests can consume the same limit.
“The booking request could not be accepted”
The honeypot may have been filled, or the page was submitted in under two seconds or more than two hours after it loaded. Reload and complete the form normally. Check autofill and cache behavior before changing any protection.
Restore missing appointment times
- Open Events → Services and confirm that the service is Published and active.
- Open appointment availability and confirm that the selected weekday is enabled with a valid start and end time.
- Confirm that the requested date is in the future, after the minimum notice, and within the maximum booking horizon.
- Review unavailable dates and time ranges.
- If Pro staff or resources are required, select an available assignment that belongs to the service.
- Confirm the WordPress timezone and reload the public appointment page.
Free appointment rules use service duration, slot interval, minimum notice, and a maximum booking horizon. Pro may also add buffers, staff/resource allocation, service-specific hours, and exceptions. Existing appointments and blocked periods remove overlapping slots.
An enabled weekday can still have no slots when the duration does not fit between its start and end, every candidate conflicts with an existing allocation, or every candidate falls outside notice and horizon rules.
Handle a time that was just booked
The displayed list is a snapshot. Drecha checks the slot again while holding its allocation lock during creation.
- Reload the date to fetch current slots.
- Choose another available time.
- Do not retry the same stale request repeatedly.
- In administration, confirm that the winning appointment exists only once.
The request key makes a repeated delivery of the same booking request idempotent, but it does not reserve a slot before the server accepts it.
Check theme, cache, and security conflicts
If dates never load or the Submit button does nothing:
- Open the browser Console and Network panels.
- Look for requests under /wp-json/drecha-events/v1/.
- Purge combined or delayed JavaScript on staging.
- Check the security-plugin log for the exact blocked route.
- Test with a standard theme and other plugins disabled one at a time on staging.
Create only a narrow route exception after identifying a real block. Public booking endpoints still need Drecha's signed token, timing, honeypot, validation, capacity, and rate-limit checks.
Help us improve
Was this article helpful?
Share a quick, anonymous rating.
Continue learning