Content OS

Scheduler Agent

Proposed — not built. Tier 1 — buildable now

Back to the agent roster · Marketing OS


What it would do

Decide when each approved piece goes out, and own the content calendar as the single route to publishing. Today scripts reach the calendar and stop; nothing decides a slot and nothing posts.

Why an agent — mostly it is not

Honest framing: this is a scheduler with a thin judgment layer on top. Most of the work is deterministic and should stay that way — the calendar write, recurrence, timezones, blackout dates and per-platform cadence are all rules, and in a regulated context they need to be auditable and reproducible.

The judgment is narrow: given a queue of approved pieces and a partly-full calendar, which piece goes in which slot. That is a ranking problem over theme spacing, format mix and freshness — the same shape as NBA, scaled down to a calendar.

Build the rules engine first. Add the ranker only when a human is visibly spending time on the ordering.

What already exists

PieceState
content_calendar_entries collection, indexed by tenantId + scheduledFor
Calendar page and API routes
Daily Studio schedule action
Anything that chooses a slot
Anything that publishes from the calendar

So this is the cheapest Tier 1 agent to reach — the store and the surface are already there.

Flow

approved pieces (scripts - blogs - creative)
        |
cadence rules per platform          <- deterministic
        |
conflict + blackout check           <- deterministic
        |
slot ranking                        <- the only judgment
        |
write content_calendar_entries
        |
[human] confirm
        |
publish                             <- still unbuilt, see gaps

Subagents

  • Slot picker — which day and time this piece should take, given what is already booked
  • Spacing guard — stops the same theme or format clustering across a week
  • Cadence keeper — holds each platform to its own posting frequency
  • Gap filler — flags empty slots that need commissioning rather than leaving silent holes

Deterministic, deliberately not subagents: the calendar write, recurrence and timezone handling, blackout dates, and conflict detection. These need to be auditable row by row — an LLM in this path adds cost and removes reproducibility.

What it needs first

Nothing new to schedule. Publishing is the gap — the calendar has no dispatcher behind it, so scheduling still ends in a human posting manually.

Approval gating already exists via content governance, and should stay in front of any auto-scheduling.

Roadmap source

Page 5 deliverable ③ (SM — E2E — A with WF) and page 4 ATL → Social. The whiteboard assumes scheduling; it never draws it, which is why this agent is an addition to the roster rather than an extraction from it.

Design notes and open questions

  • Never auto-publish without a human gate. Every other agent in this system stops short of the outward-facing action; scheduling should not be the exception.
  • Frequency capping must be shared with Program workflows — a customer-facing post and a lifecycle message both consume attention.
  • Best-time-to-post claims need evidence from the Learning Agent, not vendor folklore. Until that exists, use fixed cadence rules and say so.
  • Open: does the calendar own blogs as well as social, or only social? Today blogs go straight to CMS on a human click and never touch it.
Source: roadmap/marketing-os/agents/proposed/scheduler-agent/README.md