**Deferred from the Phase-1 epic. Do not start until Phase 1 is merged and proven.** Polish layered on the proven foundation: - Sticky day headers/tabs + `?day=N` URL anchor (`ScheduleView`, `MySchedule`). - Per-day `subEvent` JSON-LD (`functions/event/[slug].js`) — **validate with Google Rich Results Test; SEO regression risk.** - Day-aware ICS export — real per-set dates in `functions/api/feeds/ical.js` (coordinate with the #509 TZ fix already merged). - Day-aware localStorage staleness + "today" filter (`scheduleStorage.js`, `timeFilter.js`). - Optional: per-day venue hours/doors; activate the dead `performances.stage` column for multi-stage. Scoping: #510.
Deferred from the Phase-1 epic. Do not start until Phase 1 is merged and proven.
Polish layered on the proven foundation:
?day=NURL anchor (ScheduleView,MySchedule).subEventJSON-LD (functions/event/[slug].js) — validate with Google Rich Results Test; SEO regression risk.functions/api/feeds/ical.js(coordinate with the fix(feeds): ICS calendar feed declares America/Los_Angeles timezone and a foreign UID domain #509 TZ fix already merged).scheduleStorage.js,timeFilter.js).performances.stagecolumn for multi-stage.Scoping: #510.