Currently, filter logic and state management are written inline inside components, particularly SchedulerWrapper which has grown into a god component owning too many responsibilities at once.
This ticket involves extracting logic into focused custom hooks by concern (filter state and URL sync, schedule generation, filtered schedule computation, and favorites persistence ) and slimming SchedulerWrapper down to a pure composition layer that wires these hooks together and provides context.