Schedule posts
schedule_postsSchedule one or more finished social posts that the user already has: their own media, captions, and publish times.
Each post needs post_at (ISO 8601), channels, and media. Each channel names a provider (instagram, facebook, linkedin, x, google_business_profile, tiktok, youtube) and an optional caption; a channel without a caption uses the first channel's caption. Several channels make one cross-post that shares the same media and publish time.
Media is either images (one, or several for a carousel in the order given) or exactly one video, never both. TikTok and YouTube accept video only. Media type is read from the URL extension unless you pass type. Each url must be publicly reachable; for local files, call get_media_upload_urls first.
A post with a connected social account is scheduled and publishes automatically at post_at; any of its channels without a connected account will not publish and are listed in the response. A channel whose account has lost access is flagged with a warning: it will fail to publish until the account is reconnected in Blaze (list_connected_accounts shows each account's status). A post with no connected account, or in a workspace that requires approval, is saved as a draft instead. Invalid posts (missing media, mixed images and video, too many images for a channel, bad date, no channels) are skipped and listed in the response; the others are still scheduled.
Retries: give each post an idempotency_key (any unique string) to make retries safe. If the same workspace sends the same key again within 24 hours, the post created the first time is returned and nothing new is created. Without a key, a post identical to one this tool created in the last 10 minutes (same post_at, channels, captions, and media URLs) is also returned instead of being created again; to schedule a true duplicate inside that window, pass a new idempotency_key.
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": {
"workspace_key": "<workspace_key>",
"posts": "<posts>"
},
"name": "schedule_posts"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| posts | Yes | The posts to schedule. Each is scheduled independently. | |
| workspace_key | Yes | Key of the workspace to act in. Call list_workspaces to see the workspaces you have access to and their keys. |