Skip to Content
Activity Typessocial_calendar — Social Media Calendar

social_calendar — Social Media Calendar

FieldValue
Type keysocial_calendar
LabelSocial Media Calendar
Agent queuesocial-calendar-planner
Plan tierFree+ (starter, growth, professional)
Credits/unit1
Monthly range1 (exactly 1 per month when social posts are planned)

What it produces

A monthly social media posting schedule. Output is a JSON calendar with slots per week/day, each specifying: date, platform, topic angle, content type (educational / promotional / engagement / behind-the-scenes), format (carousel / reel / static / story), and notes for the writer. Stored in Activity.outputPayload.

{ "slots": [ { "date": "2026-04-07", "platform": "instagram", "topicAngle": "Spring landscaping tips", "contentType": "educational", "format": "carousel", "notesForWriter": "Focus on low-effort DIY; include 3 practical tips" } ] }

Pipeline sequence

social-calendar-planner ──→ Activity: done [auto-approved — no review] social-post-writer jobs pick up individual slots

No HITL gates. The calendar auto-approves on agent completion.


Status machine

Status tracked on the parent Activity record only.

Activity statusMeaning
pendingScheduled, waiting
queuedSubmitted to BullMQ
in_progressWorker running
doneCalendar written, outputPayload saved
failedWorker error

The Deliverable moves from generatingapproved automatically on done.


HITL gates

None. The social calendar is an internal planning artefact — not shown to clients for approval and not surfaced in the DM approvals queue.


Dependencies

  • No hard dependencies. The calendar planner uses the tenant’s strategy goals, connected channels list, and posting frequency targets from the deliverable plan.
  • Depended on by: each social_post activity — the relevant calendar slot (date, platform, angle, format, notes) is injected into each social-post-writer’s input payload.

DB records created

RecordCreated byNotes
DeliverableTemplatedeliverable-planner1 calendar per month
Activityactivity-plannertype = social_calendar; runs before social_post activities
Deliverablesocial-calendar-planner workerAuto-approved; not shown as a client-facing deliverable card

No dedicated content model. Calendar JSON lives in Activity.outputPayload.


Channel requirement

The social calendar does not require connected channels. Calendar planning always proceeds regardless of whether the tenant has connected social accounts. Channels are only consulted when publishing the individual posts.


Key rules

  • The planner must include exactly 1 social_calendar per month when social posts are included in the plan.
  • The calendar activity must be scheduled to complete before any social_post activities start (enforced via Activity.dependsOn on each social post).
  • There is no client-visible deliverable card for the calendar — it is a pipeline input, not a client deliverable.

© 2026 Leadmetrics — Internal use only