Skip to main content

Function: createMaxShiftsDayRule()

function createMaxShiftsDayRule(config): CompilationRule;
Limits how many shifts a person can work in a single day. This rule controls the maximum number of distinct shift assignments per day, regardless of shift duration. For limiting total hours worked, use max-hours-day. Supports entity scoping (people, roles, skills) and time scoping (date ranges, specific dates, days of week, recurring periods).

Parameters

ParameterType
config{ dateRange?: { end: string; start: string; }; dayOfWeek?: ( | "monday" | "tuesday" | "wednesday" | "thursday" | "friday" | "saturday" | "sunday")[]; employeeIds?: string[]; priority: "LOW" | "MEDIUM" | "HIGH" | "MANDATORY"; recurringPeriods?: { endDay: number; endMonth: number; name: string; startDay: number; startMonth: number; }[]; roleIds?: string[]; shifts: number; skillIds?: string[]; specificDates?: string[]; }
config.dateRange?{ end: string; start: string; }
config.dateRange.endstring
config.dateRange.startstring
config.dayOfWeek?( | "monday" | "tuesday" | "wednesday" | "thursday" | "friday" | "saturday" | "sunday")[]
config.employeeIds?string[]
config.priority"LOW" | "MEDIUM" | "HIGH" | "MANDATORY"
config.recurringPeriods?{ endDay: number; endMonth: number; name: string; startDay: number; startMonth: number; }[]
config.roleIds?string[]
config.shiftsnumber
config.skillIds?string[]
config.specificDates?string[]

Returns

CompilationRule

Examples

createMaxShiftsDayRule({
  shifts: 1,
  priority: "MANDATORY",
});
createMaxShiftsDayRule({
  roleIds: ["part-time"],
  shifts: 2,
  priority: "HIGH",
});
createMaxShiftsDayRule({
  roleIds: ["student"],
  shifts: 2,
  dayOfWeek: ["saturday", "sunday"],
  priority: "MANDATORY",
});