Skip to content

Powered by Grav CMS + Helios Theme

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.view to read every screen here.
  • kahunacart.bookings.manage for any change: approving, moving, cancelling, marking a no-show.
  • kahunacart.orders.view to follow the link to an order, and kahunacart.orders.refund to 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

BASH
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.