Bookings and Troubleshoot
Use the Bookings section in the KahunaCart admin to view the diary, manage appointments and troubleshoot availability.
The nine screens are Overview, Bookings, Sessions, Services, People and places, Schedules, Locations, Troubleshoot and Settings. The four setup screens manage your services and resources; the others support daily work.
Before you begin
kahunacart.bookings.viewto read every screen here.kahunacart.bookings.managefor any change: approving, moving, cancelling, marking a no-show.kahunacart.orders.viewto follow the link to an order, andkahunacart.orders.refundto give money back there.
View permission gives read-only access to the section. The server rejects changes unless the account also has manage permission.
Overview
The overview is a read-only calendar with week and month views.
The week view groups rows for people, rooms and equipment. Working hours are shaded and time off is hatched. Booking blocks use the resource’s colour; a dashed outline marks a pending request, and red marks payment received after availability was lost.
Holding nothing appears above the resource rows when there are booking conflicts. These bookings reserve no time and therefore have no resource column.
The month view shows daily booking counts, occupancy and indicators for pending requests or conflicts. Click a date to open its week.
Click a booking to open its record and reschedule it there. The overview does not support dragging. For a working diary with drag-to-move and walk-in booking, use the front desk.
Filter by resource, service or location. Filters are saved in the browser, and the summary figures reflect the filtered results.
View payment details on the order
The summary shows booking counts, occupancy, pending requests, no-shows and cancellations. A Reports link opens revenue reporting.
View payment details on the booking’s order and revenue totals in Reports. Bookings does not calculate a separate revenue total.
The bookings list
The booking list shows newest records first. Filter by status, conflict or the presence of a linked order. Search by reference, such as BK-7K3M9Q, to find a specific booking.
Filter counts cover all matching bookings, including results on other pages.
Export CSV exports the full filtered result set in the current sort order.
Booking statuses
| On screen | What it means | Is the time still taken? |
|---|---|---|
| Waiting for you | Awaiting staff approval | Yes |
| Confirmed | It is happening | Yes |
| Done | It happened | Yes, and it stays taken — the hour was used |
| Cancelled | Called off, by the customer or by you | No |
| Turned down | You said no to a request | No |
| Expired | Payment was not completed before the reservation expired | No |
| On the waiting list | The class was full and a place may still open up | No |
The final column shows whether the status still reserves its time.
A no-show is stored as Done with an entry in the booking history. It does not have a separate booking status.
Manage a booking
The booking record shows the service, start time and timezone, duration, buffers and reserved resources. If the customer uses a different timezone, their local time is also shown.
The available actions depend on the booking’s status. Approve or reject a request; complete, reschedule or cancel a confirmed booking; mark a past booking as a no-show or restore it. For a waiting-list booking, offer or give a place, or remove it from the list.
Use Tell the customer to control whether an action sends a notification.
Booking history records who made each change, when it happened and its details. Existing entries cannot be edited.
Open the linked order
The Payment panel shows the payment method and links to the order without displaying amounts.
Open the order to view payments, outstanding balances and refund options.
Resolve a booking conflict
A booking in conflict received payment after its time became unavailable. It holds no reservation.
A conflicted booking cannot be approved because it holds no time. Use Move it to reserve a free slot, or reject it and arrange a refund.
Troubleshoot
Choose a service and day, optionally narrowing to one person. Troubleshoot lists each candidate start time and the result of its availability checks.
Troubleshoot uses the same availability engine as the product page, so it explains the result customers see.
| Reason | What it means |
|---|---|
| Too soon — inside the notice you ask for | The gap to that time is shorter than the notice the service wants |
| Too far ahead — past the booking window | Further out than the service allows |
| Closed — nobody is working then | No applicable schedule has hours for that weekday, or a date override closes it. |
| Time off | The person or the thing is away |
| Already booked, or inside a buffer | Somebody has it, or it falls in the clean-up after the one before |
| Somebody is holding it in their basket | A live hold |
| Every seat is taken | A class with no places left |
| Busy on another calendar | An outside calendar says so |
Reasons identify the resource or booking involved, for example Trainer: teaching Tuesday bootcamp or Tub: booked.
When one reason blocks a resource’s entire day, the screen groups the times under that reason.
Select the relevant timezone before entering the date. Troubleshoot interprets the date in the zone you provide.
The picker says the store isn't taking bookings
The store is coming soon or paused. While it is, the booking picker shows the store's message instead of booking, holding a time or joining a waiting list, and that goes for free and pay-on-the-day services too. Customers can still read, cancel and move the bookings they have. The admin and the front desk work as usual, and a signed-in admin with KahunaCart permissions can still book from the storefront, which is how you test before opening. Open the store to take bookings again. See Configuration → Store status.
Check availability from the command line
bin/plugin kahunacart-bookings slots cut-and-finish --date 2026-09-24 --explain
The command lists available times and reasons for blocked times using the same engine as the storefront. Output is in UTC; convert it before comparing with local opening hours. For example, a Denver summer start of 09:00 appears as 3:00pm UTC.
Order and customer panels
Orders containing bookings show an Appointment panel with the time, staff member and booking link.
Customers with booking history have a Bookings panel showing their next appointment and booking count.
These panels show booking details only. Payment amounts remain on the order.
Dashboard alerts
Dashboard alerts show pending requests and booking conflicts. Open an alert to see the relevant filtered booking list.
See Dashboard alerts.
Related
- Services - the rule that decides what Troubleshoot has to say
- Classes and waiting lists - the Sessions screen and its registers
- The front desk - the working diary, with drag and walk-ins on it
- Orders and the admin - every figure about what a booking was paid for
- Reports - the takings this section does not work out