“Who is on duty right now?” is not a trivial question in a hospital. A single day involves doctors running OPD sessions, nurses covering shifts across several units, approved leave taking people out, and an obligation to keep enough nurses on the floor for the patients admitted. Run on a notice board and a WhatsApp group, this breaks quietly — a shift goes uncovered, or a ward slips below its ratio, and nobody notices until it matters.
Hospital scheduling is really two different jobs that get lumped together, and separating them is most of the work.
Doctors are scheduled by availability
A consultant does not work a shift the way a nurse does. They hold sessions— Monday to Saturday, 9 to 1, twenty tokens. Recording that gives the hospital a published answer to “when is Dr Arun in”, and gives the patient app a booking calendar: days a doctor does not consult are simply not offered, and the token cap is what stops a session being oversold.
What doctor hours do and do not gate
For how those bookings become a queue, see the OPD token and queue guide.
Nurses are scheduled by coverage
Nursing is shift work, and the question is not availability but enough. Each day's header says whether the unit meets its required staffing, calculated rather than eyeballed.
The mechanics of building a large roster — copy-forward, cyclic patterns, ratio auto-fill, fairness, publishing — are covered in how to build a nurse duty roster. Here the point is where it sits in the wider picture.
Nursing units: how hospitals are actually laid out
This is where simplistic software falls down. A ward is rarely one room. A hospital is laid out as blocks, floors and wings— “A · 1 · East” might hold ten mixed rooms, all staffed from one station. Rostering and ratios belong to that nursing unit, not to each room.
Modelling it correctly matters because coverage is a property of the unit: a set of nurses staffs the station for a shift and covers every occupied bed across its rooms. A system that only understands rooms forces you to fake it, and the ratio arithmetic stops meaning anything.
Ratios, and what “short” means
Required nurses for a shift is occupied beds ÷ ratio, rounded up, never below a per-unit minimum. Both are set per unit and per shift, because a night shift and a morning shift in the same ward are not the same load.
Typical nurse-to-patient ratios by care level
1:1 – 1:2
~1:3
~1:6
The care-level context is in the nurse-to-patient ratio guide. The scheduling job is narrower: hold the target per unit, compare it to the beds occupied right now, and show the gap before the shift, while a supervisor can still pull someone in.
Note also who is allowed to do this. A nurse named as a unit's in-charge can build, publish and approve leave for that unit without being an administrator of the hospital — which is how rostering is delegated in practice.
Leave belongs in the same system
Leave that actually protects the roster
Request
Type and dates
Approve
In-charge or admin
Unassignable
Generation and by hand
Gap flagged
In the week header
Once leave is approved that person is not schedulable on those dates — not merely discouraged. The automatic routes skip them, and so does a manual attempt to drop them into a cell. If their absence takes a shift below its ratio, the day header says so.
Attendance is a different record
The roster is the plan; attendanceis what happened, marked per person per day. Both live in Uyirly, and both are worth keeping — but they are separate records, and the system does not currently reconcile one against the other or compute payroll hours from the difference. If a vendor tells you their scheduling module “feeds payroll”, ask to see the payslip it produces.
Publish on a cadence
A roster that appears the night before is nearly as bad as none. Staff need notice to arrange childcare and travel; supervisors need a window to fix gaps before they become emergencies. Most well-run hospitals publish at least a week ahead on a fixed day, which also makes leave manageable: if next week is built every Thursday, requests for it have to land before Thursday, and the approver can see the coverage consequence while a swap is still possible.
Common mistakes
- Rostering by room rather than by unit — coverage only makes sense at the station.
- Keeping leave somewhere else — guarantees someone gets scheduled on an approved day off.
- Treating doctor hours as shifts — doctors need published availability, not coverage targets.
- Checking ratios afterwards — then it is a report of a problem, not a chance to fix one.
- Publishing erratically — leave requests and assignments collide permanently.
What Uyirly does
- Doctor OPD sessions per weekday, with hours, a label and a token cap.
- Those sessions driving the patient app's booking calendar; the front desk can still override.
- Nursing units modelled as block, floor and wing with a central station.
- A week roster per unit, published by that unit's in-charge or an admin.
- Required staffing from live occupied beds against a per-unit, per-shift ratio and minimum.
- Shift types the hospital defines, and can switch off when it does not run them.
- Leave requested, approved, and then enforced against both automatic and manual assignment.
- Attendance marked per person per day in the same platform.
Where scheduling fits
Scheduling plugs into admissions — occupied beds drive the nurse requirement, see the IPD guide — and into OPD, where doctor hours shape what patients can book. If you are digitising a hospital end to end, it is one piece of the wider sequence in how to digitise a hospital. Start a 30-day free trial — no credit card.



