Schedule a post

Schedule a draft to publish at a future time, with an optional newsletter send.

POST https://cotlet.dev/api/v1/ghost/posts/{post_id}/schedule

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

Parameters: schedule_post
NameTypeDescription
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.

Request

cURL
curl -X POST https://cotlet.dev/api/v1/ghost/posts/6710a1c2f3e4d500a1b2c3d4/schedule \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"publish_at":"2026-10-19T09:00:00.000Z","newsletter":"weekly-roundup","send_to":"all"}'
Python
result = client.call("ghost", "schedule_post", {"post_id":"6710a1c2f3e4d500a1b2c3d4","publish_at":"2026-10-19T09:00:00.000Z","newsletter":"weekly-roundup","send_to":"all"})
Node.js
const result = await cotlet.call('ghost', 'schedule_post', {"post_id":"6710a1c2f3e4d500a1b2c3d4","publish_at":"2026-10-19T09:00:00.000Z","newsletter":"weekly-roundup","send_to":"all"});
CLI
cotlet call ghost schedule_post --data '{"post_id":"6710a1c2f3e4d500a1b2c3d4","publish_at":"2026-10-19T09:00:00.000Z","newsletter":"weekly-roundup","send_to":"all"}'

Example response

JSON

{
  "post": {
    "id": "6710a1c2f3e4d500a1b2c3d4",
    "title": "Issue 42: pricing notes",
    "status": "scheduled",
    "published_at": "2026-10-19T09:00:00.000Z",
    "newsletter": "weekly-roundup",
    "send_to": "all"
  }
}

Sign in once. Your agent does the rest.

Sign up and add the apps you need. Free 7-day trial with 2,000 credits, no card needed.