Skip to main content

Calendar

The calendar shows all scheduled and published posts across every channel in a weekly grid view.

Calendar view

The calendar is organized by day of week. Each post card shows:

  • The platform (color-coded tag)
  • Post status (scheduled, published, failed)
  • A preview of the content
  • A link to the source content item

Interacting with posts

Hover over a scheduled post to reveal a Post Now button. Clicking it publishes the post immediately without waiting for the scheduled time.

Click the content link on any post card to open the full content editor.

Calendar navigation

Use the date navigation arrows to move forward and backward by week. The current week is shown by default.

Post statuses on the calendar

StatusColorDescription
scheduledDefaultSet to go out at a future time
publishingPulsingCurrently being processed
publishedMutedAlready sent
failedRedPublishing failed -- click to retry
canceledStrikethroughManually canceled

Cron publishing

Reactor publishes due posts automatically every 5 minutes via a Vercel Cron job at GET /api/calendar/publish-due. This endpoint:

  1. Finds all posts where scheduledAt <= now and status = 'scheduled'
  2. Atomically sets each post to status = 'publishing'
  3. Calls the platform API
  4. Sets status to published or failed

The cron endpoint is protected by a CRON_SECRET Bearer token.

Reading the calendar via MCP

{
"tool": "get_calendar",
"arguments": {
"startDate": "2025-01-13",
"endDate": "2025-01-19"
}
}

Returns all scheduled and published posts in the date range, grouped by day.