Skip to main content

Content Calendar

The Content Calendar gives you a visual overview of all your content — scheduled, published, draft, and pending approval — and lets the AI plan entire weeks or months of content for you.


The ContentCalendar Model

Behind every AI-generated calendar is a ContentCalendar object that tracks the generation parameters and lifecycle:

ContentCalendar
├── name → Calendar name (e.g., "March 2026 Instagram Plan")
├── description → Optional description of the calendar's purpose
├── status → GENERATING | READY | ACTIVE | ARCHIVED
├── startDate → First day of the calendar period
├── endDate → Last day of the calendar period
├── platforms[] → Target platforms (Facebook, Instagram, TikTok)
├── niche → Your content niche (e.g., "fitness", "SaaS", "fashion")
├── goals[] → Content goals (e.g., "brand awareness", "lead generation")
└── brandVoiceId → Links to your Brand Voice for consistent AI output

Each calendar contains multiple CalendarEntry records — one for each suggested post:

CalendarEntry
├── suggestedDate → Recommended publish date
├── platform → Target platform for this entry
├── contentType → Post format (image, video, carousel, story, etc.)
├── topic → Suggested topic or content idea
├── captionDraft → AI-generated caption draft
├── hashtags[] → Suggested hashtags
├── notes → Additional context or instructions
├── isApproved → Whether this entry has been approved
├── linkedPostId → Links to an actual Post once created
└── sortOrder → Display ordering within the calendar

Calendar Views

ViewBest For
MonthlyBig-picture overview — see content density, gaps, and balance across the full month
WeeklyDay-by-day detail — review captions, media, and timing for each scheduled post

AI-Generated Calendar 🤖

Let the AI plan your entire content calendar. This is one of UniPulse's most powerful features.

How to Generate

  1. Go to Content Calendar
  2. Click AI Generate Calendar
  3. Configure the generation parameters:
ParameterWhat to Set
Date rangeStart and end dates for the calendar
PlatformsWhich platforms to plan for
NicheYour content niche or industry
GoalsWhat you want to achieve (awareness, engagement, conversions, etc.)
Posting frequencyHow many posts per week per platform
Brand VoiceSelect which Brand Voice to use (auto-selects default if set)
  1. Click Generate — the calendar status moves to GENERATING
  2. The AI processes your request on the calendar-generate queue
  3. Once complete, the status becomes READY and you can review all entries

Reviewing Generated Entries

Each CalendarEntry can be individually:

  • Approved — Sets isApproved: true and the entry is ready to become a real post
  • Edited — Modify the topic, caption draft, hashtags, or suggested date
  • Regenerated — Ask the AI to suggest a different idea for that slot
  • Deleted — Remove the entry from the calendar
tip

You don't have to approve everything at once. Review a week at a time, approve what works, and regenerate the rest. The calendar stays in READY status until you activate it.

Activating the Calendar

Once you're happy with the entries, click Activate Calendar. This:

  1. Changes the calendar status from READY to ACTIVE
  2. Creates actual Post objects from approved CalendarEntry records
  3. Links each entry to its post via linkedPostId
  4. Posts are created as DRAFT or SCHEDULED depending on your preference

Calendar Status Lifecycle

GENERATING → READY → ACTIVE → ARCHIVED
StatusMeaning
GENERATINGAI is processing on the calendar-generate queue
READYGeneration complete — entries available for review
ACTIVECalendar is in use — entries have been converted to posts
ARCHIVEDCalendar period has passed or was manually archived

Drag & Drop

Reschedule posts by dragging them to a different day or time slot on the calendar. This updates the underlying scheduledAt field on the Post's Schedule record (or the suggestedDate on a CalendarEntry if the post hasn't been created yet).


Color Coding

Posts on the calendar are color-coded by status for quick visual scanning:

ColorStatus
🔵 BlueScheduled
🟢 GreenPublished
🟡 YellowDraft
🔴 RedFailed
🟣 PurplePending approval

What the AI Considers

When generating a content calendar, the AI analyzes:

  • Your Brand Voice — Tone, vocabulary, and style from the linked brandVoiceId
  • Content goals — Maps each entry to one of your specified goals[]
  • Platform best practices — Optimal content types and posting times per platform
  • Content variety — Ensures a mix of content types (images, videos, carousels) and topics
  • Your niche — Industry-specific trends and seasonal relevance

Behind the Scenes

Calendar generation is handled by the calendar-generate queue, which is separate from the ai-suggestions queue used for individual caption generation. This is because calendar generation is a heavier operation — the AI needs to plan multiple interconnected entries that form a coherent content strategy, rather than generating a single caption.

The process:

  1. Your generation request is enqueued on calendar-generate
  2. The AI receives your parameters plus your Brand Voice data
  3. It generates all CalendarEntry records in a single batch
  4. Entries are stored with isApproved: false by default
  5. The calendar status flips to READY

  • Post Composer — Create posts from calendar entries
  • Scheduler — How scheduled posts are delivered
  • AI Captions — AI caption generation for individual posts
  • Brand Voice — Configure the Brand Voice used in calendar generation