A schedule for planning and publishing
A content calendar is the schedule that says what gets published, on which channel, and on what date. It is the operational layer beneath a content strategyContent StrategyGo-To-MarketA content strategy for thought leadershipView reference →: the place where intentions about audience and topic become a row with an owner, a status, and a due date. A strategy can be brilliant and still produce nothing. The calendar is where a strategy either ships on a cadence or quietly stalls.
The editorial calendar is one of the older tools in publishing. Print publishers used some form of it for centuries to coordinate the production of books, magazines, and newspapers, because irregular publication wasted effort and lost readers. The editorial calendar emerged from a practical realisation: readers return for content that arrives on a known rhythm, and advertisers buy against that rhythm. A magazine that appears every month trains an audience to expect it; the calendar is what makes "every month" true.
Early editorial calendars also encoded a second idea that survives today. Publishers grouped story types by slot, an environmental site running research on Mondays and interviews on Thursdays, so that cadence and subject reinforced each other. That practice is the ancestor of the modern content themeContent ThemeContent & KnowledgeA thematic grouping for contentView reference →: the calendar was never a flat list of dates, it organised dates around recurring kinds of content.
The web changed the volume and the surfaces, not the principle. As content marketing matured through the 2010s, the calendar absorbed blog posts, email newsletters, social postsSocial PostMarketingA social media postView reference →, and help-centre articles into one view, and it grew governance: who drafts, who reviews, who approves, and what state a piece is in right now. The contemporary debate is about how tightly to plan. Fixed editorial calendars give predictability and let teams batch production; reactive, newsroom-style planning chases what is timely. Most teams settle on a hybrid, a planned backbone of evergreen pieces with reserved slots for things that cannot be scheduled in advance.
A developer-tools company commits to a strategy of building authority on API design. The strategy alone publishes nothing. The team builds a calendar with a cadence of two long pieces a week, Tuesdays and Thursdays, plus one help-centre article whenever a featureFeatureProduct SpecificationA product capability or featureView reference → ships.
The calendar makes the cadence governable. Each row carries a themeThemeProduct SpecificationA strategic grouping of related featuresView reference →, an author, a target keyword, and a status moving from brief to draft to review to scheduled. In March the team plans twenty-six rows; eighteen publish on time, four slip a week, four get cut for thin briefs. That visibility is the value. Without the calendar the same team would have published "when things were ready", which in practice means sporadically, and the audience would never learn to expect them. With it, the strategy's promise of a steady drumbeat becomes a thing you can audit row by row.
In the Unified Product Graph, a content calendar sits in the content region as the scheduling spine. A strategy lands in it through Content Strategyscheduled inContent Calendarhierarchy, so the plan connects to the timeline that enacts it. The calendar organises its rows by subject through content_strategy_scheduled_in_content_calendarContent CalendarcontainsContent Themehierarchy, and it schedules concrete deliverables through three edges: content_calendar_contains_content_themeContent CalendarschedulesContent Piecehierarchy, content_calendar_schedules_content_pieceContent CalendarschedulesKnowledge Base Articlehierarchy, and content_calendar_schedules_knowledge_base_articleContent CalendarschedulesBrand Assethierarchy. Modelling the calendar as the node that everything publishable hangs from means a strategy with no scheduled output, or a theme that never reaches a date, shows up as an unconnected node, which is the structural version of the thing every content lead fears: a plan that produced nothing.content_calendar_schedules_brand_asset
Type-specific fields on BaseNode
calendar_periodstringCovered period (e.g. "Q2 2026")
publish_cadencestringPublishing cadence (canonical `Cadence` since v0.4.0). Retyped from the legacy free-form `publish_cadence: string`. For exact rates ("3 per week"), set `frequency_count` + `frequency_period`. BREAKING in v0.4.0: previous string values like `"3x/week"` no longer type-check. Map to `'weekly'` + `frequency_count: 3` + `frequency_period: 'P7D'`.
frequency_countnumberExact count in the period. Pairs with `frequency_period`.
frequency_periodstringRecurrence period (ISO-8601 `Duration`, e.g. `'P7D'`)
frequency_ratingstringQualitative rate tier when an exact rate is unknown
idstringrequiredUnique identifier (UUID)
typeNodeTyperequiredDiscriminator for the entity type
titlestringrequiredDisplay name
descriptionstringOptional detailed description
statusstringLifecycle status
tagsstring[]Freeform tags for filtering
8 edge types connected to this entity.
content_strategy_scheduled_in_content_calendarcontent_calendar_contains_content_themecontent_calendar_schedules_content_piececontent_calendar_schedules_knowledge_base_articlecontent_calendar_schedules_brand_assetcontent_calendar_schedules_documentcontent_calendar_schedules_prompt_templatecontent_calendar_schedules_documentation_template