Update Post
update_postEdits an unpublished post in place; only the fields passed change. New content returns an approved (ready or scheduled) post to draft, and it needs approval again before it can publish; a title-only edit keeps the status; a new scheduled_date keeps a scheduled post scheduled and makes a draft or ready post a draft with that proposed time. Published posts cannot be edited. dry_run=true validates without writing. Every response carries status_before, status_after and approval_required.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"post_id": "<post_id>"
},
"name": "update_post"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | New post title | |
| content | No | New post content (max 3000 chars) | |
| dry_run | No | When true, the call validates without writing. | |
| post_id | Yes | The post id to update | |
| scheduled_date | No | New publish time, ISO 8601. With an offset or Z it is used exactly as sent; without one (e.g. 2026-10-22T08:45) it is read in the founder's timezone (the timezone field of scheduling responses) and the response's time_input says so. The time is kept exactly as given, to the minute. A scheduled post stays scheduled at the new time; a draft or ready post becomes a draft with that proposed time. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | ||
| dry_run | No | ||
| post_id | Yes | ||
| timezone | No | ||
| server_now | No | ||
| time_input | No | ||
| status_after | No | ||
| dashboard_url | No | ||
| status_before | No | ||
| approval_reset | No | ||
| changed_fields | No | ||
| scheduled_local | No | ||
| timezone_source | No | ||
| approval_required | No |