Appointment Calendar
Taking bookings, moving them, cancelling and marking no-shows — and the two things the calendar deliberately does not do.
10 min read · Updated 10 Sep 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.
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 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 |
|---|---|---|
| Partner | On a services business | Hidden for a court or room rental |
| Service | On a services business | Rental services are marked · rental in the list |
| Customer | No | Defaults to Walk-in. Pick from your customer list |
| 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.
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.
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.
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.
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.