# Schedules Schedules define time-based routines for characters and institutions. They specify what activities occur during specific time ranges, support seasonal variations, recurring events, and template composition. Schedules enable rich temporal behavior from simple daily routines to complex year-long patterns. ## What is a Schedule? A schedule is a collection of time blocks that define activities throughout a day, week, season, or year: - **Blocks**: Time ranges (e.g., `06:00 - 14:00`) with associated activities/behaviors - **Temporal constraints**: When blocks apply (season, day of week, month) - **Recurrence patterns**: Repeating events (e.g., "Market Day every Earthday") - **Composition**: Schedules can extend and override other schedules ``` Schedule: BakerySchedule ├─ Block: 06:00 - 08:00 → prepare_dough ├─ Block: 08:00 - 14:00 → serve_customers ├─ Recurrence: Market Day (on Earthday) → special_market_hours └─ Extends: BaseBusiness (inherits closing hours) ``` ## Syntax ```bnf ::= "schedule" ? ::= "extends" ::= "{" * "}" ::= | ::= "block" ? "{" + "}" ::= ::= | "action" ":" | | ::=