Plan Calendar

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.

The Plan tab showing a populated week: the Schedule heading, week controls, filter bar and seven-column grid

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— N publishes, M deploys, counted from the items actually returned for that week. Anything that is not a deployment — and not a campaign deliverable whose type is Deploy — counts as a publish.

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
SourceAppears onCard titleDetail lineClicking it opens
Page revisionIts scheduled publish time when the page is Scheduled; otherwise its planned dateThe revision’s titleThe page’s path and slugThe page in the editor
DeploymentThe moment the deployment was createdProduction deploy or Preview deployIts build statusThe Deploy tab
Campaign deliverableIts scheduled dateThe deliverable’s titleIts detail note, when it has oneIts 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.

PillCoversAccent
New pageDeliverables of type new-pageGreen
Re-publishDeliverables of type republishSlate
Site updateDeliverables of type site-updateDeep blue
Email blastDeliverables of type emailRust
Social postDeliverables of type socialMagenta
EventDeliverables of type eventAmber
DeployDeliverables of type deployNear-black
PagePage revisions — the calendar’s own page feedSky blue
DeployReal deployments — the calendar’s own deployment feedNear-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.

TypeLabel on the card and the pillLeft-edge color
new-pageNew page#0e7c47 green
republishRe-publish#334155 slate
site-updateSite update#1e40af deep blue
emailEmail blast#9a3412 rust
socialSocial post#a02475 magenta
eventEvent#9a6b1a amber
deployDeploy#0f172a near-black
— page revisionPage#0369a1 sky blue
— deploymentDeploy#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 drafted. Review each piece and approve before it goes on the schedule., with a Drafted by Leed badge and a Review & approve button.

The Plan tab with the magenta review strip above the calendar grid

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.

The campaign approval overlay with the brief bar, deliverable rows and the sticky action bar

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:

FieldWhat it shows
WindowThe first to the last deliverable date, as Sep 3 → Sep 19
ItemsHow many deliverables the campaign has in total, drafted or not
StatusThe 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.

OptionDescription shownWhere it takes you
PageSchedule a single doc or marketing pageThe Design workspace, at the page tree
EmailNewsletter or segmented blastThe legacy Email Marketing screen at /emails
CampaignMulti-piece coordinated launchChat

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.

ESC