MOCKUP — the "Content Scheduled" fix. Root cause found in prod data: your autopilot cadence is switched OFF (enabled: false) and all your old posts already published or were cancelled. Today / This Week only show upcoming posts, so they're truthfully empty — but the page never TELLS you that, while This Month fills up with posting history. The fix is smarter empty states + consistent labeling, not date math.

Scheduled tab — before and after

Left: what you see today. Right: proposed fix.

Today (current)

TodayThis WeekThis MonthCalendar
Nothing scheduled for today.
Hit New post to line something up.
Feels broken: Month "shows everything", this shows nothing, and nothing explains why.

Today (proposed)

TodayThis WeekThis MonthCalendar
Posted earlier today
"3 mistakes operators make" · IG + LinkedIn
POSTED 9:00 AM
The empty state now diagnoses itself: autopilot off → say so; content pool empty → say that; genuinely nothing due → then say "all clear".

The three empty-state messages (exact logic)

1. cadence.enabled === false → "Auto-Pilot is off" + Turn on CTA (the case you hit).

2. Auto-Pilot on, but the content pool has no unused pieces → "Auto-Pilot has nothing left to schedule — create more content" + link to Create Content. (The scheduler already counts these skips as skippedNoContent; the UI just never shows it.)

3. Auto-Pilot on and pool healthy → "All clear — next post goes out Tue 9:00 AM" (show the next scheduled slot even when it's outside the current filter window).

One real backend bug found along the way

Cancelled posts keep their scheduled time and the calendar query has no status filter — so a cancelled post still renders as a normal upcoming card (and you can even try to drag it, which errors). Your 3 cancelled posts are part of why Month looked "full". Fix: exclude cancelled in listScheduledInRange + a regression test.

Consistency fix for This Month

Past posts already get a POSTED pill in Month view (that part shipped). The remaining fix: the Month header reads "July — posted + upcoming" so the mixed view is labeled as what it is.

Optional, your call: a collapsed "Posted earlier this week" group in This Week — note this amends the existing "no wall of old rows" rule (K1) that deliberately keeps Week forward-only.