Skip to main content
The Scheduling page at /hr/scheduling is the primary shift management view, rendered by the Shifts component. It displays shifts in either a table or calendar layout and supports shift creation and management.

Overview

The page defaults to a Table view showing shifts in a date range (default: today + 7 days). A Calendar tab provides a weekly calendar view (ShiftCalendarView). Controls include date range selectors, a “New Shift” button, and a “Schedule Generator” button. Clicking a shift row opens the ShiftDetailDialog. Shift status is displayed as a badge: open (destructive), filled (default), in_progress (secondary), completed (outline), cancelled (outline).
Shift Schedule

Who it’s for

Requires HR_PERMISSIONS.SCHEDULING_VIEW permission.

Before you start

  • Shift templates should be configured at /hr/shift-templates before generating schedules.
  • The date range defaults to today through 7 days out; adjust as needed.

Steps

View shifts
  1. Navigate to HR → Scheduling (/hr/scheduling).
  2. Use the date-range inputs to set the period.
  3. Switch between Table and Calendar views using the view toggle.
Create a shift
  1. Click New Shift to open the shift creation form.
  2. Complete shift details (type, date, time, staffing requirements).
Generate a schedule
  1. Click Schedule Generator to open the generator dialog.
  2. Configure generation parameters and confirm.
View shift details
  1. Click any shift row to open the ShiftDetailDialog.

Key concepts

Permissions

Viewing the schedule requires hr.scheduling.view; shift creation and editing require the additional keys below. Permission keys are assigned to roles in the role editor.

Human Resources

Human Resources core overview.

Governance & parity

This page documents shipped product behavior. It is not medical, legal, or billing advice. Verify against your organization’s policies and applicable regulations before using it for clinical, compliance, or billing decisions. Protected health information (PHI) shown in the product is governed by your tenant’s access controls and is never exposed in this documentation.
  • src/routes/hr.tsx
  • src/cores/hr/pages/Shifts.tsx
  • src/cores/hr/hooks/scheduling/useShiftList.ts