Appointment Calendar

Taking bookings, booking a session from a membership, moving bookings, cancelling and marking no-shows — and what the calendar deliberately does not do.

13 min read · Updated 25 Oct 2026

On this page

The calendar is where bookings live: who is coming, when, for what, and with whom. It is shared across your whole store, so the front desk on the web and the tablet at the counter are looking at the same day.

What it is not is a reminder system. Nothing here contacts your customer — read Reminders below before you build a process around it.

Needs the Appointments & Bookings add-on (₱400 per branch each month). It is also in the Beauty Pack (₱1,099 a month), the Sports & Venue Pack (₱999 a month) and the Everything Bundle (₱2,999 a month). See Plans & add-ons.

Booking a session from a membership also needs Customer Memory & Promos (₱300 per branch each month), since every member is a customer on file. The Beauty Pack and the Everything Bundle include both add-ons; the Gym Pack includes Customer Memory & Promos but not appointments.

Finding it

Where Called Notes
Web, service business Appointments, under SERVICES /app/appointments
Web, Food & Beverage Bookings, under DINING Same page, different label and wording
Mobile app The Appointments tab Only shown when the add-on is active

If the link is missing from your sidebar, see the note about the SERVICES group in Bookable services — the short version is that Retail stores do not get it built for them, and you reach the page by typing /app/appointments.

The calendar

Four views, switched from the buttons above the grid:

View Shows
Day One day, split into a column per court, per staff member, or per table
Week Seven days side by side. This is the view you land on
Month A month of blocks
List The next 30 days as a plain list

Day view is the one that splits into columns, and what the columns are depends on what you book against. Courts and rooms win if you have any, then tables, then staff — the button relabels itself Day · courts, Day · tables or Day · staff so you can see which. Clicking an empty column pre-fills that court, table or person on the new booking.

The grid runs from 6am to 11pm in 30-minute rows and opens scrolled to 8am. A booking earlier than 6am or later than 11pm still exists — it just is not drawn, so use List view to find it.

Above the grid: Today, arrows to step back and forward, an All Branches filter when you have more than one branch, and an All Partners filter on a services business. Below it is a colour key for the seven statuses.

Each block reads customer name · service, or customer name · membership plan for a session booked from a membership, and Walk-in when no customer is attached. On the mobile app each card also carries a payment badge — Paid, Part-paid, Bal ₱250 or Refunded — read from the sale the booking was rung up on. An unpaid booking shows no badge at all.

Making a booking

Press New Appointment (or New Booking), or click an empty slot.

Field Required Notes
Book for — Service or Membership. Only shown when both are possible; see Booking a session from a membership
Partner No Optional. Shown on a services business while the Partners switch in Settings → Features is on. Hidden for a court or room rental
Service On a services business Rental services are marked · rental in the list. Not shown when booking for a membership
Customer For a membership booking Otherwise blank means Walk-in. Search by name, phone or email, or press New customer to add one without leaving the booking. Both need the Customer Memory & Promos add-on
Membership For a membership booking One of the customer's active memberships
Branch Yes Which branch the booking is at
Start Time Yes Date and time
End Time Yes Must be after the start
Source — Staff, Phone or Online. Staff by default
Party Size Food & Beverage only Number of guests
Deposit Amount — Records a figure only. See Bookable services
Table If you have tables Food & Beverage. Picking a table clears the resource
Resource If you have resources A court, room or chair. Required for a rental service
Notes No Free text

Press Create. A retail store — one with neither Partners nor Queue switched on — only has to fill in the branch and the two times, so the calendar doubles as a simple diary.

The mobile app's booking form is deliberately shorter: a 30-minute time stepper, a duration chip (30m, 1h, 1h 30m or 2h), service, staff, customer. It has no notes field, no deposit field and no party size, so a booking taken on the tablet cannot carry those. It also books services only: the phone and desktop apps cannot book a session from a membership.

Bookings must start now or later. A start time in the past is refused with "The start time must be now or in the future." Rescheduling is not checked the same way, so an existing booking can be dragged back into the past.

Booking a session from a membership

A booking can take a session from the customer's membership instead of a service, the way a gym or PT studio books a member's "8 sessions" pack. This is done on the web dashboard.

  1. Press New Appointment and set Book for to Membership.
  2. Pick the Customer. Their active memberships load into Membership, each with what is left, e.g. Elite · 5 left · 2 booked · until a date. A customer with only one is picked for you.
  3. Set the times, and a Partner if you use them, then press Create.

Book for is offered once your store has Customer Memory & Promos and at least one membership plan, while the Memberships switch in Settings → Features is on. Food & Beverage bookings never offer it. If the Services switch is off, every new booking is a membership booking and the choice is not shown. A customer with no active membership gets "No active membership for this customer. Sell one at the POS or enroll them under Memberships first."

What happens to the session follows the booking's status:

Status The session
Booked, Confirmed Held, not used. A pack cannot carry more upcoming bookings than it has sessions left. A booking stops holding once its end time has passed
Arrived, In Progress or Completed, whichever comes first Used, once, and recorded as a visit on the membership. If the member already checked in with their QR code that day, that visit is linked instead, so they are not charged twice
Cancelled or No Show before they arrived Nothing is used and the hold is released. To charge a no-show anyway, use Log Visit on the membership

Once the session has been used, the booking stays on that membership: the customer and the membership can no longer be changed. Cancelling it or marking it No Show afterwards does not give the session back. Use Extend on the membership to add one. See Memberships.

A time-based membership can be booked the same way. It has no sessions to hold, but its end date still applies, and marking the booking Arrived records a visit.

The calendar refuses a membership booking, and says why, when:

Message Meaning
"…'s … membership is no longer active. Renew or extend it first." Expired or cancelled
"…'s … membership expires on …, before this session. Extend it or pick an earlier date." The session is after the membership's end date
"…'s … membership has no sessions left." Session pack, nothing left
"The last session on …'s … membership is already booked." or "All … remaining sessions on …'s … membership are already booked." Every session left is held by an upcoming booking
"That membership belongs to a different customer." The customer and the membership don't match

Marking the booking Arrived is refused the same way if the pack has no sessions left or has expired by then. Extend the membership, or take the membership off the booking, to check them in.

Where a booking's time is anchored

Every time in Kassly is Philippine time (Asia/Manila). This is fixed for the whole platform — there is no timezone setting on your store profile, and none per branch. A booking typed as 4:00 PM is 4pm in Manila, and it reads as 4pm to everyone in your store.

Two consequences worth knowing:

  • A store outside the Philippines will see its bookings shifted, and there is no setting to correct that.
  • Days end at midnight Manila time. If you set a late-night cutover for your sales reporting, the calendar ignores it: 1am belongs to the new day here.

Booking statuses

Status Means Set by
Booked Taken, not yet confirmed The default for a new booking
Confirmed The customer has confirmed Confirm
Arrived They are in the shop Arrived on the web, Check in on mobile
In Progress The work has started Start on the web, Start service on mobile
Completed Done Complete, or automatically when the sale is paid on mobile
Cancelled Called off Cancel
No Show Did not turn up No Show

The buttons sit in a Quick Actions row inside the booking, and only the moves that make sense from the current status are offered. Once a booking is Completed, Cancelled or No Show, the row disappears — those three are the end of the line, and the mobile app says so outright: "This booking is completed — no further actions."

Moving a booking

Drag a block to reschedule it, and drag its bottom edge to make it longer or shorter. In Day view, dropping it into a different column also reassigns the court, table or staff member. You get Appointment moved on success and a plain error if the new slot clashes.

You can also open the booking and edit the times by hand. Everything on the form stays editable — customer, service, partner, resource, notes — for the whole life of the booking, with one exception: once a membership booking has used its session, its customer and membership are fixed.

Cancelling, and no-shows

Cancel marks the booking cancelled. It is not deleted: it stays on the calendar in grey and stays in your history, which is what you want when a customer argues about it later.

Cancelling is Owner and Manager only. A cashier sees the Cancel button and gets a permission error when they press it. They can book, check in and start work — just not cancel. If your front desk runs on the Cashier role, that call has to come from a manager.

No Show is a separate status and does exactly one thing: it labels the booking. Nothing is charged, no deposit is kept, nothing is counted against the customer's record, and there is no no-show report. The slot is released for booking again.

A cancellation reason can be stored against a booking, but no screen offers you a box to type one, so in practice cancellations carry no reason. Put it in Notes before you cancel if you need the record.

Reminders

Kassly does not send appointment reminders. No SMS, no email, no push notification — not to the customer, and not to your staff. Nothing is sent when a booking is created, confirmed, moved or cancelled either.

The in-app tooltip on the Appointments page claims reminders are included. They are not. That description is wrong, and it is the one thing on this page most likely to cost you a no-show. Ringing your customers the day before is still a phone call somebody has to make.

There is also nothing that flags an overdue booking. A 10am appointment still sitting on Booked at 11am looks identical to one at 5pm.

Turning a booking into a sale

A booking holds no money. The sale happens at the counter, in the mobile app — the web app has no working POS screen. See Making a sale.

On the mobile app, tapping a booking gives you the route through:

Action What happens
Check in Marks the booking Arrived
Start service Marks it In Progress
Open tab Moves the booking to In Progress and opens the POS with the service already in the cart
Open tab (start meter) For a court or room: starts the rental clock and opens the POS with the tab loaded. See Rentals

If the booking has no service attached, Open tab refuses with "No service on this booking" — a booking made as a plain diary entry has nothing to sell, and neither has a session booked from a membership, which was paid for when the membership was sold. Marking a membership booking Check in or Start service in the app uses its session, the same as on the web.

Once the sale is paid, the booking's payment badge follows the sale: Paid, Part-paid, a remaining balance, or Refunded if the sale is later voided. That link is set for you and cannot be edited by hand.

On the web there is no send-to-POS button at all. Mark the booking In Progress and ring the service up on the terminal.

Double-booking

Two rules are enforced when a booking is saved, both of them properly locked so two people booking at the same moment cannot slip past each other:

  • One partner, one place at a time. Any overlap is refused with "This partner already has an appointment during this time slot."
  • A resource cannot be booked past its capacity. A room with capacity 1 gives "This resource already has a reservation during this time slot."; one with capacity 4 gives "This resource is fully booked for this time slot."

Cancelled and no-show bookings do not block a slot — the time frees up immediately. Tables are always strictly one booking at a time, whatever their seat count says. The details are in Resources and Table management.

The mobile app shows the position live above the booking form — "Available — 2 of 4 booked, 2 left at this time.", "Court 1 is fully booked (4/4)" — and greys the submit button out as Slot unavailable rather than letting you save and fail.

What the app does not carry

Things people reasonably expect a booking system to do, which this one does not:

  • Reminders of any kind. Covered above; it bears repeating.
  • Repeating bookings. Every week's appointment is entered separately.
  • Online self-booking by the customer. Source → Online is a label you set yourself, not a public booking page.
  • A waiting list, and no overbooking beyond a resource's capacity.
  • A cancellation window or fee. Cancel is always allowed and always free.
  • Anything charged on a no-show, including a deposit.

Working offline

The mobile app can take a booking with no signal. It saves locally, shows a Syncing badge, and uploads when the connection returns; a failure shows Retry. Retrying cannot create a duplicate — the same booking sent twice is recognised and matched to the one already saved.

Slot checking offline is done against whatever the tablet last downloaded, so two devices booking the same court while both are offline can still collide. The first one to reach the server wins and the second comes back as a conflict.

Who can do what

Action Owner Manager Cashier
See the calendar Yes Yes Yes
Create a booking Yes Yes Yes
Reschedule or edit a booking Yes Yes Yes
Check in / start / complete Yes Yes Yes
Mark a no-show Yes Yes Yes
Cancel a booking Yes Yes No
Create courts, rooms and chairs Yes Yes No

Staff on the Staff role cannot open the calendar at all. See Users and roles.