Skip to content

The content calendar

The content calendar at /marketing/content is where every marketing draft, scheduled post and archived piece lives in one list. You filter it, sort it, look at it as a month grid, and move items through their lifecycle from there.

One thing matters more than the rest: scheduling stages an approval — it never publishes. The calendar is a planning and staging surface, not a publisher.

It is the single list of every content item your tenant has, whatever produced it — a piece you typed yourself, or a draft an AI head composed. Items carry a type (email, social post, ad, landing page, blog, newsletter, SMS), an optional channel, an owning head, and an optional campaign.

AI-drafted items are tagged AI in the list so you can tell at a glance what a person wrote and what a head proposed. That tag comes from the item keeping its original composed draft, so it survives your edits to the text.

Above the list sits a small strip of counts: Scheduled, Unscheduled, Pending approval, Published, and the next few scheduled items with their dates. Clicking Pending approval filters the list to everything sitting in review.

How do you find one piece of content among hundreds?

Section titled “How do you find one piece of content among hundreds?”

Use the filter bar directly above the list. It gives you free-text search across title and body, plus dropdowns for channel, status, owner and campaign, and a from/to date range matched against the scheduled date (falling back to the created date when there is none).

The list itself is sortable on six columns: Title, Channel, Status, Scheduled, Owner, Campaign. Default order is by scheduled date, soonest first. Items with no value in the sorted column always sort last, so an unscheduled draft never jumps above a scheduled one just because you flipped the direction.

Filters, sort and the chosen view are written into the page URL. Refresh, bookmark or paste the link to a colleague and they land on the same view.

Scheduling stages an approval and stops. The item moves to scheduled, its planned date is stored, and an approval is created carrying the full post — title, body, channel, planned date — for a person to review. Nothing is sent to a channel by this action.

approve

reject

Draft - typed by you, or composed by a head

Submit for review - the item sits at in review

Schedule - stages an approval, the item shows as scheduled

A person reviews the staged item in the approval queue

The send is dispatched through the channel

Nothing is sent - the item stays staged

Published - recorded against the send, not written back here

The content lifecycle from draft to published, with the human approval gate drawn explicitly: the calendar can move an item as far as “scheduled” and no further, and the publish outcome is recorded on the send rather than written back onto the calendar row.

The lifecycle actions on each row are gated by status. Submit for review appears on a draft. Schedule appears on an item that is in review or approved. Edit works only while an item is a draft or in review — once it is scheduled, the text is locked so what a person approves is what was staged. Archive appears on a draft or a quarantined item.

The view switcher at the top right gives you List, Calendar and All channels, and every one of them respects the filters you have set.

List is the sortable table described above, with per-row actions and checkboxes for bulk work.

Calendar is a month grid, Monday-first, with the items placed on their scheduled day. Each day shows a count badge and up to three item chips, then “+N more”; clicking a chip opens a read-only preview. Anything without a scheduled date is collected in an Unscheduled row beneath the grid, so drafts cannot quietly disappear off a calendar they have no place on.

All channels is a wider, read-mostly grid: everything planned (content that has a scheduled date and is not yet published or archived) alongside everything published (sends actually dispatched in the last 90 days). From here you can reschedule a scheduled item to a new date. Rescheduling changes only the date — it does not re-stage the approval and does not change the item’s status.

Yes. Tick the checkboxes in the List view and a bulk bar appears with Submit, Schedule, Archive, and a Set “Post as” dropdown for LinkedIn items.

Bulk actions only ever touch what is in front of you. Your selection is trimmed to the rows currently visible under your filters, and each action skips items that are not eligible for it — Submit applies only to drafts, Schedule only to items in review or approved, Archive to anything not already archived or published. Selecting twenty rows and pressing Schedule stages approvals for the eligible ones and leaves the rest untouched.

All of this is owner and admin only. An approver or read-only member sees the same list, the same filters and the same previews, but no edit or lifecycle controls at all.

The filter bar covers channel, status, owner, campaign, date and text, and that is the whole set — a content item carries no product field and no link back to the workflow that generated it, so neither can be offered as a facet no matter how useful it would be. A few other gaps are worth knowing about before you go looking for them.

  • No product or offering filter. A content item has no product field behind it, so there is nothing to filter on. Campaign is the nearest facet that does exist.
  • No source-workflow filter. There is no stored link from an item back to the workflow or sprint that generated it, so you cannot slice the calendar that way. The AI tag tells you an item was composed rather than typed, but not which run produced it.
  • The Approved status is not reachable from here. It appears in the status dropdown, but no action in the app moves an item into it. In practice you go straight from In review to Schedule.
  • The calendar does not mark items Published. No path in the app writes a published status or a published date back onto a content row. What actually went out is recorded against the send, which is why the All channels view reads published work from sends rather than from the calendar.
  • Video has no planned date. Video appears on the All channels view only once it has been published, because there is no scheduled-date field for it to plan against.

There is also a quarantine, and it is deliberate. When an AI draft’s body looks like a failed generation rather than a publishable post, the calendar pulls it out of the main list and shows a needs attention banner with the count. You can show those items, open one to fix it in the editor, or dismiss it, which archives it. The point is that a broken generation should never be one bulk-select away from being staged for approval.

None of this changes the floor. Content is proposed and staged; a person approves anything that leaves your company. Read autonomy and the hard floor for why that is permanent, or working with a head for how the drafts get written in the first place.