Calendar: views, filters and the quick popup
Updated on Wednesday 09 September 2026
Everything the internal calendar does: day and week views, filters, colours, drag-to-create and the booking popup.
Exhaustive reference for the Calendar (/admin/<slug>/calendar) — the operations dashboard where you manage your day to day.

Views
| View | Layout | When to use it |
|---|---|---|
| Day | A single date. Hours as rows, one professional per column. | Seeing who is serving whom. This is the view that opens by default. |
| Week | 7 days as columns, hours as rows. All professionals mixed together in each day. | Planning the week. Better on a computer. |
You switch with the Day / Week toggle. Your choice is saved per business and per device type: pick “Week” on your computer and your phone will still open on “Day”.
In week view, each day header is a link — tap it to jump to that date’s day view.
The date is not saved. The calendar always opens on today.
Moving between dates
| Control | Action |
|---|---|
| ”←” button | Previous day (or previous week in week view) |
| “Today” button | Jumps to the current day |
| ”→” button | Next day (or next week) |
| Date picker | Pick a specific date from the floating calendar |
Filters
Two filters are always visible above the calendar, and the rest live in the “More filters” panel.
Main filters
| Filter | Options |
|---|---|
| Location | “All” or one specific location. |
| Service category | “All categories” or one category. Shows only bookings that include a service from that category. |
More filters (collapsible panel)
| Filter | Detail |
|---|---|
| Show | Bookings, Blocks and Breaks chips. All three start on. |
| Team | One chip with an avatar per professional. “All” / “None” buttons. With “None” you only see bookings with no professional assigned. |
| Status | One chip per status, in the status colour. “All” / “None” buttons. |
By default the calendar shows Pending, Confirmed, Rescheduled and Completed. Cancelled, rejected and no-show bookings stay hidden until you tick their chip.
Filters are stored in your session, per business and per device type — they come back the next time you open the calendar. The “Clear filters” button resets them to the starting values.
Visual statuses
Below the calendar there is a legend using the same colours as the blocks:
| Colour | Means |
|---|---|
| Amber | Pending |
| Emerald | Confirmed |
| Indigo | Completed |
| Rose (with the text struck through) | Cancelled / No-show / Rejected |
| Blue | Rescheduled |
| Grey with a dashed border | Blocked |
| Diagonal stripes | Professional off-duty |
| Solid grey | Location closed at that hour |
| Grey stripes labelled “Busy at another location” | The professional has a booking at another location at that time |
Every booking block shows:
- The start time and the client’s name (with the professional’s avatar).
- The services, if the block is tall enough.
- Duration and price, if it is taller still.
- A vertical colour bar on the left edge, in the professional’s colour.
Block height is duration: a 60-minute booking is twice as tall as a 30-minute one.
Blocked time is drawn with diagonal stripes and an icon for its scope: Whole business, Whole location, or the team member’s avatar.
Booking detail
Tapping a block opens a floating popup (drag it by its header to move it; Esc closes it) with:
- Status and booking code.
- Client name, date and time range.
- Assigned professional.
- Services with their duration, and the total.
- The client’s email and WhatsApp.
- Client notes.
Actions available in the popup
| Button | When it appears | Action |
|---|---|---|
| Reschedule | Pending or confirmed | Opens the reschedule form in the same popup. |
| Confirm | Pending | Moves it to confirmed and emails the client the confirmation. |
| Cancel booking | Pending or confirmed | Moves it to “cancelled by business” and sends the cancellation email. |
| Mark as completed | Confirmed | Moves it to completed. The client is not notified. |
| Mark as no-show | Confirmed | Moves it to no-show. The client is not notified. |
| Open full page | Always | Goes to the booking page, with history and the option to correct the status. |
Reject is not in the calendar popup: it lives on the booking page and in the Dashboard’s “Pending confirmation” list.
Creating a booking by dragging
- On an empty slot, drag downwards with the mouse for the length you want. The range snaps to 15 minutes.
- Releasing opens the quick form with the date, time and range pre-filled.
If you just click an empty slot (no dragging), the same form opens with that start time; the end time comes from the service you pick.
Clickable slots sit on the half hour. In day view they are drawn only inside the location’s hours and that professional’s hours for that day, and they skip the hours where the professional already has a booking at another location. If the location is closed that day, the column has no clickable slots at all. In week view the clipping is by the location’s hours only: there is no per-professional column to narrow it further.
Breaks are not taken out: the “Break” card is drawn on top of the slot but lets the click through, so the slot is still clickable and the quick form opens. That is where you get stopped — it tells you the professional isn’t available at that time and won’t let you create the booking.
Rescheduling a booking
- Tap the booking on the calendar.
- Tap Reschedule.
- In the popup you change date, time, services and professional. The client cannot be changed here.
- Tap Save new slot.
What the system does when you reschedule:
- Keeps the status: a confirmed booking stays confirmed, a pending one stays pending.
- Re-sends the booking email to the client, with an
.icsthat updates the event in their calendar instead of duplicating it. - Moves the reminder to the new time.
- If you changed the professional, the previous one gets a calendar cancellation and the new one gets the invitation.
- Writes a line in the booking’s History with the old and new times.
Only pending or confirmed bookings can be rescheduled. A completed, cancelled, rejected or no-show booking does not move — the button is not shown.
If the professional isn’t free at the new time, or the location is closed that weekday, the form rejects the change and tells you why.
Creating a block from the calendar
The quick form has two tabs at the top left: Booking and Block. Switching to “Block” keeps the range you dragged.
The block form asks for:
| Field | Detail |
|---|---|
| What to block | Whole business / Specific locations / Specific members. |
| Reason | Free text (“Lunch, holidays, training…”). Optional. |
| From / To | Start and end date and time. A block can span several days. |
There is no automatic repetition: a fixed weekly break is set up in the professional’s working hours, not as a block. See Blocking time.
Syncing with an external calendar
Every professional with “Receive calendar invitations” on (it is on by default) gets an .ics by email with each new booking. Opening it adds the event to Google Calendar, Apple Calendar, Outlook or any app that supports .ics.
If the booking moves, a new .ics goes out with the same identifier — calendars update the event instead of duplicating it. If it is cancelled, the cancellation goes out.
Keyboard shortcuts
The calendar has no keyboard shortcuts. There are no keys for switching views, moving between dates or opening the form, and double-clicking does nothing a single click doesn’t.
The only key that responds is Esc, which closes the open popup.
Calendar slots are buttons, so you can reach them with Tab and open them with Enter.
On a phone
| Detail | On a phone |
|---|---|
| Default view | Day. Your view choice on the phone is stored separately from the one on your computer. |
| Grid | Scrolls horizontally when there are several professionals. |
| Filters | The chips sit behind “More filters”. |
| Drag to create | Does not work with a finger — dragging uses mouse events. Tap the slot and adjust the time in the form. |
| Popup | Anchors to the bottom of the screen, full width. |
Automatic refresh
The calendar refreshes itself every two and a half minutes, without reloading the page, losing your scroll position, or touching an open popup.
Permissions by role
| Role | Calendar access |
|---|---|
| Owner | Full. |
| Admin | Full. |
| Manager | Full: bookings, blocks and clients (no access to settings or billing). |
| Professional | No access to the admin calendar. They get their own screen, My calendar, with their own bookings and blocks. |
Common problems
| Symptom | Cause | Fix |
|---|---|---|
| The calendar is empty | Status or team filters set to “None”, or the wrong location | Tap “Clear filters” |
| I can’t see cancelled bookings | They’re hidden by default | “More filters” → Status → tick the missing chips |
| I can’t click on a slot | It’s outside the location’s or the professional’s hours, or the professional is busy at another location | Check the legend: the shading tells you which of the three it is. Breaks do stay clickable; there it’s the form that stops you, not the calendar |
| Picking a service empties the professional list | None of the professionals free at that hour perform that combination of services | The form tells you so; try another time |
| The “Reschedule” button isn’t there | The booking is already completed, cancelled, rejected or marked as no-show | Correct the status from the booking page and try again |
| I drag an appointment and nothing moves | Drag-to-reschedule does not exist | Tap the appointment → Reschedule |