Post Scheduling

Schedule a blog post to publish itself at a future time — from the post editor or over MCP — with the same flow as tweet scheduling.

Blog posts can be scheduled to publish themselves. A scheduled post stays fully editable, shows a blue "scheduled" badge with its fire time, and goes live automatically within five minutes of the chosen moment. The flow deliberately mirrors tweet scheduling: if you know one, you know both.

From the post editor

Open any draft and click Schedule next to the Publish button. Pick a date and time (your local timezone; the fire time is stored as an absolute instant) and confirm.

While a post is scheduled:

  • The editor header shows the fire time; clicking it cancels the schedule and returns the post to draft.
  • Publish still works and publishes immediately, clearing the schedule.
  • The posts list shows a blue badge with the fire time.

Over MCP

post_posts_by_id_schedule mirrors post_tweets_by_id_schedule:

{
  "id": "<post uuid>",
  "scheduledFor": "2026-08-01T13:00:00Z",
  "confirm": true
}

scheduled_for and schedule_at are accepted as aliases. The time must be in the future, and the same brand-voice gate that guards publishing applies at scheduling time — a post that can't be published can't be scheduled.

Related operations:

  • List scheduled posts: get_posts with status=scheduled; each record includes scheduled_for.
  • Unschedule: patch_posts_by_id with status: "draft" — the pending fire time clears automatically.
  • Publish now: post_posts_by_id_publish publishes immediately and clears the schedule.

How firing works

A platform cron sweeps every five minutes for posts whose fire time has passed and publishes them exactly as the publish action would: status flips to published and published_at is set to the actual publish moment. The sweep is idempotent — a post leaves the scheduled state the instant it's claimed — and self-healing: if a window is missed, the next sweep catches up rather than skipping the post.

Want this page as machine-readable markdown? GET /docs/features/post-scheduling.md