Plan answers one question: what is happening on my site this week? It shows a single week as seven columns and fills them with real work — pages going live, deployments that ran, and campaign pieces waiting on you. Nothing on the grid is a placeholder or a projection; every card is a row that exists somewhere else in the CMS. The tab is labeled Plan on the rail and the screen inside is headed Schedule, under a Calendar eyebrow.
Moving through weeks
Three controls sit beside the Schedule button: Prev, This week and Next. The week you are looking at lives in the address bar as ?week=YYYY-MM-DD, so a particular week is a link you can send to a colleague or keep as a bookmark.
The date in that parameter is snapped to the Monday of the week it falls in, and written back in that form. You can hand-edit it to any date inside the week you want — ?week=2026-09-03 and ?week=2026-08-31 both land on the same Monday-to-Sunday grid.
The subtitle is real
Under the heading you get Week of
When any deliverable in the visible week is still unapproved, the line continues with drafts from Leed awaiting your review. in pink.
What lands on the calendar
Three sources feed one grid, and they are not equal — this is the single thing readers most often mis-model about Plan. It is not a page calendar with extras bolted on.
flowchart TD
P["Page revision<br/>scheduled or planned this week"] --> CAL["Plan calendar<br/>one week, seven columns"]
D["Deployment<br/>created this week"] --> CAL
V["Campaign deliverable<br/>scheduled this week"] --> CAL
V --> Q{"Approval state"}
Q -->|draft| W["Card reads<br/>Awaiting approval"]
W --> R["Review and approve"]
R --> A["Approved — stays on the schedule"]
Q -->|approved| A
| Source | Appears on | Card title | Detail line | Clicking it opens |
|---|---|---|---|---|
| Page revision | Its scheduled publish time when the page is Scheduled; otherwise its planned date | The revision’s title | The page’s path and slug | The page in the editor |
| Deployment | The moment the deployment was created | Production deploy or Preview deploy | Its build status | The Deploy tab |
| Campaign deliverable | Its scheduled date | The deliverable’s title | Its detail note, when it has one | Its campaign in Engage |
Pages
A page revision lands on its effective date. For a page whose status is Scheduled that is the scheduled publish time; for everything else it is the page’s planned date. A revision with neither date never reaches the calendar.
A page reaches this calendar by being scheduled in the editor — publishing and scheduling a page covers the target date, the scheduled publish, and the difference between them. Scheduled pages go live on the minute without anyone being signed in; scheduling and automatic publishing explains the cron behind that.
Deployments
Every deployment created during the week shows up, whether it succeeded or not — the calendar is a record of what happened, not a list of what worked. The title tells you which site it targeted, and the detail line underneath is the build status. Each deployment on the grid has a fuller story on the Deploy tab; see deployment history and status.
Campaign deliverables
A deliverable is one piece of a campaign — a page to write, an email to send, a social post, an event. Each carries its own type, which is what gives its card a color. Deliverables belong to a campaign, and campaigns and deliverables is honest about where the planner stops and where sending does not begin.
Filtering
The bar above the grid has two controls and a count.
Campaign is a select: All campaigns, then one entry per campaign in your workspace. Picking a specific campaign narrows the grid to that campaign’s deliverables — pages and deployments carry no campaign, so they disappear too.
Type is nine pills you toggle independently. All nine start on; clicking one turns it off.
| Pill | Covers | Accent |
|---|---|---|
| New page | Deliverables of type new-page | Green |
| Re-publish | Deliverables of type republish | Slate |
| Site update | Deliverables of type site-update | Deep blue |
| Email blast | Deliverables of type email | Rust |
| Social post | Deliverables of type social | Magenta |
| Event | Deliverables of type event | Amber |
| Deploy | Deliverables of type deploy | Near-black |
| Page | Page revisions — the calendar’s own page feed | Sky blue |
| Deploy | Real deployments — the calendar’s own deployment feed | Near-black |
Two pills read Deploy. They are not duplicates: the first filters campaign deliverables whose type is deploy (a deployment somebody planned), the second filters actual deployment records (a deployment that ran). Turning one off leaves the other alone.
The count on the right — N items — is the number of cards surviving both filters.
Deliverable types and the color each one paints
A deliverable card’s left edge is colored by its type, so you can read the week’s shape without reading the labels. A draft deliverable overrides all of this with the magenta AI accent, which is the only place that color appears on the calendar.
| Type | Label on the card and the pill | Left-edge color |
|---|---|---|
new-page | New page | #0e7c47 green |
republish | Re-publish | #334155 slate |
site-update | Site update | #1e40af deep blue |
email | Email blast | #9a3412 rust |
social | Social post | #a02475 magenta |
event | Event | #9a6b1a amber |
deploy | Deploy | #0f172a near-black |
| — page revision | Page | #0369a1 sky blue |
| — deployment | Deploy | #0f172a near-black |
Reading a day
Each column is a day. The header carries the three-letter weekday and the date; when today falls inside the visible week its whole column is tinted a shade darker so you can find it at a glance.
Below the header, each item is a card with:
- a colored left edge and a small glyph, giving its type;
- the type name and the time in 24-hour form, as
New page · 09:30; - the item’s title;
- a monospaced detail line — a page path, a build status, or a deliverable’s note.
Cards inside a day are ordered by time. Empty days render empty: there is no “nothing scheduled” filler per column, because a genuinely quiet Thursday should look quiet.
When Leed has drafted a plan
Chat can draft a whole campaign as a set of dated deliverables. Those arrive on the calendar as drafts, and nothing happens to them until a person says so.
The strip
A magenta strip appears above the grid reading
The strip is raised by the campaign’s own status, not by the visible week. A campaign still in draft raises it whether or not any of its pieces fall inside the week you are looking at.
The overlay
Review & approve opens a full-screen review of that campaign.
At the top: the eyebrow Plan ready · Review & approve, the campaign name, and a line reading N deliverables drafted by Leed. Review the pieces, then approve to put them on the schedule.
Under that, a brief bar with three fields:
| Field | What it shows |
|---|---|
| Window | The first to the last deliverable date, as Sep 3 → Sep 19 |
| Items | How many deliverables the campaign has in total, drafted or not |
| Status | The campaign’s own status |
Then every deliverable as its own row: a checkbox, a type glyph, the type name, a state pill, the title, and the slot it is scheduled for (Thu Sep 4 · 09:00). Clicking a row expands it to show the deliverable’s detail note, its assignee if it has one, and its position in the sequence. The first row is expanded when the overlay opens.
Rows that are already Approved or Rejected show that state and their checkbox is locked — you cannot re-tick a decision that has already been made.
Approving
Every drafted item starts ticked. Select all and Deselect all are in the Deliverables (N of M) heading row, and you can untick rows individually to approve part of a plan now and the rest later.
The action bar at the bottom reads Approve to put N items on the schedule, with the reassurance Nothing publishes automatically — approved items move to the schedule. That is literally true: approval moves a deliverable out of draft and flips the campaign to scheduled. It does not publish a page, and it does not send an email.
A draft card on the grid
Before you open anything, unapproved work is visible on the calendar itself: a magenta left edge, a wand glyph, and the words Awaiting approval under the title. That is the one place the AI accent appears on the grid, which makes an unreviewed week easy to spot.
The two nudges
Both are conditional, and both are honest about what they know.
A schedule gap strip appears under the grid naming the first upcoming weekday in the visible week that has nothing on it — and only when at least two other days in that week do. It reads Schedule gap on Wednesday. Nothing is planned that day while the rest of the week is active — draft something to fill it. Its Draft something button opens Chat.
When the week has nothing on it, the grid is followed by Nothing scheduled this week. Plan a campaign in Chat or schedule a page to fill the calendar. That message keys off the week being genuinely empty, not off your filters — filter everything out and you get a blank grid with no message.
The Schedule button
The dark Schedule button is a dropdown with three routes into new work.
| Option | Description shown | Where it takes you |
|---|---|---|
| Page | Schedule a single doc or marketing page | The Design workspace, at the page tree |
| Newsletter or segmented blast | The legacy Email Marketing screen at /emails | |
| Campaign | Multi-piece coordinated launch | Chat |
The Draft something button and the Campaign option both hand the assistant a prompt, and Leed drafts a multi-piece plan you then approve here. Page drops you into the Design workspace, which is where a page is created and scheduled.
What this calendar does not do
This section exists because the screen Plan replaced could do all three, and people arrive expecting them.
- You cannot drag a card to another day. Cards are links, not handles. Rescheduling a page happens in the page editor, on the page itself.
- There is no month or year view. One ISO week is the only view, and the way to reach another week is Prev, Next, or the
?week=parameter. - There is no per-card menu. No View / Edit / Delete on a card, and no “late” section collecting things that slipped.
What you get instead is a calendar that never disagrees with the rest of the CMS, because every card is a live row rather than a copy of one.