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
| Status | Color | Description |
|---|---|---|
scheduled | Default | Set to go out at a future time |
publishing | Pulsing | Currently being processed |
published | Muted | Already sent |
failed | Red | Publishing failed -- click to retry |
canceled | Strikethrough | Manually canceled |
Cron publishing
Reactor publishes due posts automatically every 5 minutes via a Vercel Cron job at GET /api/calendar/publish-due. This endpoint:
- Finds all posts where
scheduledAt <= nowandstatus = 'scheduled' - Atomically sets each post to
status = 'publishing' - Calls the platform API
- Sets status to
publishedorfailed
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.