WorkSpec 2.2 supports multi-period declarations through simulation_config, day_types, and calendar.

Simulation configuration

simulation.simulation_config can declare start_date and duration_days.

Field Type Constraint
start_date string YYYY-MM-DD, date.today, or date.start with an integer day offset
duration_days integer One or greater

Examples of relative dates are date.start + 1 and date.today - 2.

Day types

simulation.day_types is an object keyed by plain day-type ID. Each day type requires a non-empty name.

JSON
{
  "day_types": {
    "weekday": { "name": "Weekday" },
    "weekend": { "name": "Weekend" }
  }
}

Repeating calendar

simulation.calendar declares a positive cycle_length and a complete, non-empty pattern.

JSON
{
  "calendar": {
    "cycle_length": 7,
    "pattern": [
      { "day": 1, "type": "weekday" },
      { "day": 2, "type": "weekday" },
      { "day": 3, "type": "weekday" },
      { "day": 4, "type": "weekday" },
      { "day": 5, "type": "weekday" },
      { "day": 6, "type": "weekend" },
      { "day": 7, "type": "weekend" }
    ]
  }
}

Each cycle day must appear exactly once. Every referenced day type must exist.

Overrides

calendar.overrides is an array of date and day-type replacements.

JSON
{ "date": "2026-12-25", "type": "weekend" }

The date accepts the same date expressions as start_date. The type must reference a declared day type.

Canonical status

The canonical validator performs document-local integrity checks for these declarations. This status does not make legacy inline day-type task effects canonical 2.2 behavior.