Manage shift schedules
The workspace default shift, per-department and per-user overrides, and effective-from dates.
A shift defines when an employee is expected to work — working days, start/end time, expected hours, OT threshold, and grace minutes. Shifts drive late-detection, overtime flagging, and the daily auto-close cron. Reach the management page from HRMS in the sidebar → "Workspace setup" → Shifts card, or visit /settings/hr/shifts directly. Owner-only.
Resolution order
Each employee can have shifts assigned at three scopes. When the session builder needs to know "what was X's shift on day Y?", it checks in this order and uses the first match:
- Per-user override — assigned specifically to one person.
- Per-department — assigned to a department; applies to every member.
- Workspace default — applies to every member without a higher-priority override.
- Policy fallback — if no shift is configured at any scope, the policy defaults from your starter pack kick in. Rare; you usually want at least a workspace default.
Page layout
- Stat tiles — Total shifts, Workspace default count, Department count, User count.
- Three sections stacked: Workspace defaults, Per department, Per user. Each section lists its shifts with edit / archive icons.
- + Add shift button — opens a modal where you pick the scope (workspace / department / user) and configure the fields below.
The shift fields
- Name. Short label like "Office Standard", "Night Shift", "Part-time".
- Scope. Workspace default, per department (pick which dept), or per user (pick which user).
- Working days. Multi-select Mon–Sun. Most Indian packs use Mon–Sat; UK / US packs Mon–Fri.
- Start time / End time. HH:MM in the workspace timezone. The end time defines the expected clock-out moment.
- Expected hours. Net hours of work after deducting standard break time. Used as the auto-close target and for "OT > expected + threshold" math.
- OT threshold. The number of hours past "Expected" that have to pass before OT auto-generates. Common is 1 hour — i.e. someone who clocks out 30 minutes late doesn't trigger OT, but 90 minutes late does.
- Grace minutes. The grace period for LATE_CHECKIN. A 15-minute grace means clock-ins within 15 minutes of shift start are still "on time".
- Timezone. Defaults to the workspace timezone. Override for distributed teams with members in other timezones.
- Effective from. Date the shift becomes active. Use this to schedule shift changes ahead of time (e.g. switch to summer hours from June 1).
Editing vs archiving
The pencil icon lets you edit any field. Saved changes apply from the next session-builder run; past sessions keep the shift snapshot they were built with.
The archive icon (trash) doesn't delete — it sets the shift inactive. Inactive shifts don't apply to future days but they're preserved for historical session rebuilds. To bring back an archived shift, toggle it from the "Show archived" filter at the top of each section.
When to override
- Per department — Marketing team works Mon–Sat 10–7, dev team works Mon–Fri 11–8. Two department shifts.
- Per user — One designer is a contractor doing 4 days a week. Single-user override.
- Effective-from — Pilot a new schedule for one team starting next month without disrupting current data.
Auto-close behaviour
The nightly cron looks at every open session at midnight and closes it at the shift's expected end + a buffer. Sessions closed this way carry the AUTO_CLOSED flag so HR knows the end time is system-set, not employee-confirmed. The shift determines the close time, so misconfigured shifts cause misleading auto-closes — keep shifts accurate.