Calendar: view, drag-reschedule, quick popup
Updated on Friday 22 May 2026
Every feature of the internal calendar: views, filters, drag and drop, quick form, shortcuts.
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. Vertical rows by hour, horizontal columns by professional. | Detail of the current day. Best on mobile. |
| Week | 7 days in columns, hours in rows. All professionals mixed together. | Weekly planning. Best on a computer. |
You switch with the toggle in the top left. The view you choose is saved per device (on mobile you’ll open “day” next time even if you used “week” on a computer).
Navigating between dates
| Control | Action |
|---|---|
| ”←” button | Previous day/week |
| ”→” button | Next day/week |
| “Today” button | Jumps to the current day |
| Date picker | Choose a specific date with the floating calendar |
Filters
Above the calendar there are 3 filters and a “More filters” panel for advanced filters.
Main filters
| Filter | Options |
|---|---|
| Location | All / specific. Only if your business has more than one. |
| Service category | All / one category. Filters which types of service are shown. |
| Search | Search by customer name, service, or note. |
More filters (collapsible panel)
| Filter | Detail |
|---|---|
| Types | Show bookings, show blocked times, or both. |
| Professionals | Clickable avatars — you check which ones to see. “Select all” / “None”. |
| Booking state | Color chips by state: pending, confirmed, completed, cancelled, no-show. You check which ones to show. |
The filters you apply are persisted across sessions per device. If you filtered by “confirmed only”, the next time you open the calendar it stays that way until you clear it.
A “Clear filters” button resets everything.
Visual states
Each booking block has a color based on its state:
| Color | State |
|---|---|
| 🟢 Emerald | Confirmed |
| 🟡 Amber | Pending |
| 🟣 Indigo | Completed |
| 🔵 Blue | Rescheduled |
| 🔴 Pink | Cancelled |
| ⚫ Solid slate | Walk-in (created manually, not via the public link) |
| ⚪ Dotted slate | Blocked time |
| Diagonal stripes | Outside the professional’s working hours |
Each block includes:
- The customer’s name (top, in bold).
- The main service.
- The start time (corner).
- Small icons to indicate payment made, reminder sent, etc.
Booking detail
When you tap a block, a side panel opens with:
- The customer’s full details.
- The booked service(s) + duration + price.
- The assigned professional.
- The state and source of the booking.
- Customer or admin notes.
- Change history.
- Associated payments (if deposit is enabled).
Available actions
| Button | When it appears | Action |
|---|---|---|
| Confirm | Pending booking | Changes the state to confirmed and notifies the customer. |
| Reject | Pending booking | Changes the state to cancelled and notifies. Frees the slot. |
| Reschedule | Any active state | Opens a calendar to choose a new date/time. |
| Cancel | Confirmed booking | Changes the state to cancelled. Option to notify. |
| Mark completed | Confirmed booking after the time | Changes the state to completed. |
| Mark no-show | Confirmed booking after the time | Changes the state to no-show. In deposit mode, the customer loses the deposit. |
| Edit | Any state | Changes services, professional, customer, notes. |
| Duplicate | Any state | Creates a new booking with the same details (the customer picks a new date). |
| View on public page | Any state | Opens the customer’s confirmation page. |
Create a booking by dragging
- On an empty slot, drag downward for the duration you want (each slot = 10 min depending on the interval).
- The quick form opens with the date, time, and duration pre-filled.
If you just tap an empty slot (without dragging), the form opens with the duration of the service you choose.
Reschedule by drag and drop
- Tap and hold a block.
- Drag it to the new time (within the same day or between days in week view).
- Drop it.
- A popup appears confirming: new date + time + a “Notify the customer” option.
- Confirm → the booking updates and (optionally) an email/WhatsApp goes out to the customer.
Drag and drop rules
- You can’t drag onto an occupied slot.
- You can’t drag outside the professional’s working hours.
- You can’t drag onto a blocked slot.
- If you drag to another professional, the system checks that they can handle that service (if the assignment is specific).
Create a blocked time from the calendar
Same flow as creating a booking, but in the quick form you choose the “Block time” option instead of “Create booking”.
See Block times for details.
Syncing with an external calendar
Each professional with the “Receive calendar invitations” option enabled receives an .ics file by email with every new booking. Opening it adds the booking to Google Calendar, Apple Calendar, Outlook, etc.
If the booking time changes, a new .ics goes out with the same UID — calendars update instead of duplicating.
Keyboard shortcuts (on a computer)
| Key | Action |
|---|---|
D |
Day view |
W |
Week view |
← |
Previous day/week |
→ |
Next day/week |
T |
Go to today |
F |
Focus the search box |
Double click |
Open the quick form on that slot |
Esc |
Close the panel/form |
Behavior on mobile
| Detail | On mobile |
|---|---|
| Default view | Day (the week is hard to read) |
| Filters | Collapsed behind a “Filters” toggle |
| Drag and drop | Hold for 0.5s and drag |
| Detail panel | Opens as a bottom sheet |
| Shortcuts | Don’t apply (no keyboard) |
Permissions by role
| Role | What they see | What they can do |
|---|---|---|
| Owner | Full calendar, all professionals | Everything |
| Admin | Full calendar, all professionals | Everything |
| Member | Only their own column | Mark their bookings as completed/no-show, create their own blocked times |
Common errors
| Symptom | Cause | Solution |
|---|---|---|
| Drag and drop doesn’t work | You filtered out a professional by accident | Clear the filters |
| I see bookings that aren’t mine (member role) | A recent change — refresh the page | F5 |
| The calendar is empty | Filters applied | Tap “Clear filters” |
| The booking won’t let me confirm | Your role is Member; only the admin/owner confirms | Ask the admin |