Staff Scheduling & Leave
Scheduling is how Royal Glow knows who is available to take appointments, and when. The schedule grid shows every staff member’s day at a glance — their bookings, their buffers, and their time off. Leave management is the other half: staff ask for time off, and a receptionist or manager approves or rejects it. Together they keep the salon from double-booking a stylist who isn’t there.Only approved leave blocks a staff member’s availability. A request that is
still
pending never removes anyone from the booking scheduler — so a request
sitting in the queue can’t accidentally lose the salon a booking.What it is
Two connected tools in the admin portal:- The schedule (
admin.theroyalglow.in/schedule) — a grid of staff against time, viewable by day or by week, that shows who is booked, who is free, who is on a buffer between appointments, and who is on leave. - Leave management (
admin.theroyalglow.in/leave) — where staff submit time-off requests and where receptionists and managers review them. Staff also see their own schedule and leave history in their own view.
How it works — the schedule grid
The schedule has two views:- Daily view
- Weekly view
Staff down the side, time slots across the top (10:00 to 20:00, in 30-minute
columns). Each cell shows one of four states: available, booked (with the
customer’s name), a 15-minute buffer between bookings, or on leave.
The grid updates in real time over Ably — when a slot is booked, released,
or reassigned, the cell animates without a page refresh. See
Realtime for the channels and events involved.
How it works — leave requests
Staff submit leave for themselves, and an approver decides:1
Submit
A staff member opens their leave form, picks a leave type and a date or date
range, and optionally adds a reason. If they have confirmed bookings on those
dates, the form warns them upfront.
2
Notify
The request is created as
pending, and a push notification plus email goes to
all receptionists and the manager.3
Review
An approver opens
admin.theroyalglow.in/leave, sees the request (and any booking conflicts
flagged in red), and approves or rejects it.4
Decide
On approval, the dates block the staff member’s availability and any conflicting
bookings are flagged for reassignment. On rejection, a reason is required and
the staff member is notified.
Leave states
The request follows a simple state machine.
Leave types: Sick, Casual, Personal, and Other.
Allowed transitions:
withdrawn it can no longer be approved or rejected. Once a
request is approved, staff cannot withdraw it themselves — cancelling approved
leave is a manager-only action.
How it works — same-day mark-off
When a staff member calls in sick or doesn’t show up and there was no prior request, a receptionist or manager records it directly from the schedule with Mark Off Today. This is a direct admin action, so:- The leave entry is created already
approved— there is nopendingstep. - The staff member’s slots for the day are immediately blocked on the grid.
- Any confirmed bookings that day are flagged so they can be reassigned to another available staff member or cancelled.
Booking conflicts
Approving leave (or marking someone off) can collide with bookings that are already confirmed for that staff member. The system does not resolve this silently — it surfaces the conflict and makes someone decide. When a conflict is found, the approver gets a blocking alert listing each affected booking. It appears as a modal right after approval, persists as a banner on the schedule, and cannot be dismissed until every conflict is resolved. There are two ways to resolve each one:What staff can and cannot see
The staff view (admin.theroyalglow.in/me/schedule) is deliberately limited to protect customer
privacy and other staff’s information.
- Staff can see
- Staff cannot see
- Their own bookings for the day (customer name, service, time)
- Their own leave history and each request’s status
- A button to request new leave
- The option to withdraw a request that is still
pending
Who can do what
Scheduling and leave permissions follow the role hierarchy.Realtime schedule events
The schedule listens on theadmin:schedule channel. These are the events that
move cells around live:
Related links
Booking System
How bookings fill the slots that appear on the schedule.
No-Show Policy
Why a salon-side cancellation never counts against the customer.
Notifications & Email
The push and email messages sent on leave and reassignment.
Realtime
The Ably channels and events that update the schedule live.
Data Model
The staff_schedule, staff_time_off, and holiday tables.