Enterprise Reservation System For End Customers
Customers use a public booking page that belongs to one organisation. The page shows the services that organisation offers, the times that are actually available, and whether booking requires payment before confirmation.
Time to complete: 5-10 minutes
Difficulty: Beginner
The Public Booking Journey
Step 1: Open The Organisation Booking Link
The booking page is usually shared in a format such as /book/acme-spa.
Customers land in the correct organisation automatically because the slug is
part of the link.
Step 2: Choose A Service And Resource
Customers can:
- choose a resource type, such as
Massage roomorDining table - choose a specific resource when they care which one they get
- choose Any available when the service matters more than the exact resource
Step 3: Choose A Time Slot
PrimeCal only shows slots that survive:
- reservation conflict checks
- resource-level availability rules
- blocking events from linked staff calendars
This is why a time can disappear between services or resource selections. The availability is real, not cached marketing inventory.
Step 4: Enter Booking Details
The form collects only the customer details needed for the booking workflow. A typical page asks for:
- name
- phone
- notes
Step 5: Pay Or Confirm
There are three common outcomes:
- Free booking: no payment is needed and the reservation confirms immediately.
- Optional payment service: pricing is visible, but payment is not required. The booking can still confirm immediately.
- Payment required: PrimeCal creates the reservation as
pending_paymentand shows a payment step before sending the customer to Stripe Checkout. The reservation becomes confirmed only after Stripe reports success.
Step 6: Review Confirmation
After success, the customer sees a confirmation page and receives any existing notifications configured in PrimeCal's notification and automation modules.
If payment fails or the customer closes Checkout, the booking page can return to a retryable pending-payment state instead of silently dropping the reservation.
Screenshot References
| Step | File | Caption |
|---|---|---|
| Details form | docs/assets/user-guide/enterprise-reservation-system/customer-booking-details-form.png | Collect only the customer information needed to complete the reservation. |
| Payment step | docs/assets/user-guide/enterprise-reservation-system/customer-payment-pending-step.png | The booking page keeps the slot reserved while it asks the customer to continue to secure payment. |
| Checkout redirect | docs/assets/user-guide/enterprise-reservation-system/customer-stripe-checkout-redirect.png | Payment-required bookings leave PrimeCal briefly for Stripe Checkout and return after the result. |
| Confirmation | docs/assets/user-guide/enterprise-reservation-system/customer-booking-confirmation.png | The final state should make it obvious whether the booking is confirmed or still waiting for payment. |
Troubleshooting
I completed the form but the reservation is not confirmed yet
If the service requires payment, the reservation stays in pending_payment
until Stripe confirms success. Closing the checkout page early can leave the
booking incomplete.
I cannot see the time slot I saw a moment ago
Someone else may have taken it, or the slot may have become blocked by a linked staff calendar event.
The page shows a price in a currency I did not expect
Pricing comes from the organisation's resource-type configuration. Customers do not choose the currency in the public form.