Schedule a post
Schedule a draft to publish at a future time, with an optional newsletter send.
MCP tool ghost_write → schedule_post
write Confirm
Returns the post with status scheduled and the time it will go out. At that time Ghost publishes the post and sends the email. A time in the past is rejected. Only a role that can publish may call it. By default you confirm each call; you can switch that off for this tool.
Parameters
| Name | Type | Description |
|---|---|---|
| post_id string required | string | Post ID from list_posts. |
| publish_at string required | string | ISO 8601 date and time in the future, for example 2026-10-19T09:00:00.000Z. |
| newsletter string | string | Newsletter slug from list_newsletters. Omit to publish on the site without an email. |
| send_to string | string | With a newsletter: all, free or paid members. Default all. |
tools/call
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "ghost_write",
"arguments": {
"operation": "schedule_post",
"arguments": {
"post_id": "6710a1c2f3e4d500a1b2c3d4",
"publish_at": "2026-10-19T09:00:00.000Z",
"newsletter": "weekly-roundup",
"send_to": "all"
}
}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"post": {
"id": "6710a1c2f3e4d500a1b2c3d4",
"title": "Issue 42: pricing notes",
"status": "scheduled",
"published_at": "2026-10-19T09:00:00.000Z",
"newsletter": "weekly-roundup",
"send_to": "all"
}
},
"isError": false
}