Skip to main content

Call Signature

function partialSchedule<TRules>(config): Schedule<BuiltInCpsatRuleRegistry>;
Create a partial schedule for composition via .with(). Unlike schedule, all fields are optional. Use this for schedules that layer rules, coverage, or other config onto a complete base schedule.

Type Parameters

TRules

TRules extends readonly unknown[] = readonly ScheduleRuleEntry<BuiltInCpsatRuleRegistry>[]

Parameters

config

BuiltInPartialScheduleConfigInput<TRules>

Returns

Schedule<BuiltInCpsatRuleRegistry>

Example

const companyPolicy = partialSchedule({
  rules: [maxHoursPerWeek(40), minRestBetweenShifts(11)],
});

const ready = venue.with(companyPolicy, teamMembers);

Call Signature

function partialSchedule<TCustomRuleRegistry, TRules>(config): Schedule<BuiltInCpsatRuleRegistry & TCustomRuleRegistry>;
Create a partial schedule for composition via .with(). Unlike schedule, all fields are optional. Use this for schedules that layer rules, coverage, or other config onto a complete base schedule.

Type Parameters

TCustomRuleRegistry

TCustomRuleRegistry extends CpsatRuleRegistry = CpsatRuleRegistry

TRules

TRules extends readonly unknown[] = readonly ScheduleRuleEntry<BuiltInCpsatRuleRegistry & TCustomRuleRegistry>[]

Parameters

config

CustomPartialScheduleConfigInput<TCustomRuleRegistry, TRules>

Returns

Schedule<BuiltInCpsatRuleRegistry & TCustomRuleRegistry>

Example

const companyPolicy = partialSchedule({
  rules: [maxHoursPerWeek(40), minRestBetweenShifts(11)],
});

const ready = venue.with(companyPolicy, teamMembers);