Schedule Saved Post
schedule_saved_postSchedule one of the user's existing drafts or saved ideas on X, by its id from get_drafts or get_saved_ideas. Optionally cross-post to LinkedIn, Threads, BlueSky, Instagram, and/or TikTok.
The same post is scheduled in place, as in the SupaBird app. It keeps its text, images, video, and thread parts, and leaves Drafts / Saved. Do not pass new text; to change the text, use schedule_post with the new text instead.
Pass scheduled_date (ISO 8601, in the future), or next_free_slot: true to use the user's next free posting slot (today plus the next 7 days, skipping slots that already have a post). Confirm the time with the user when they did not give one.
Templates, posts that are already scheduled, published posts, trash, and Content Machine items cannot be scheduled with this tool. For an already scheduled post, unschedule_post first if the user wants a new time. For a Content Machine item, write an original post from it, then use schedule_post.
Cross-posting works like schedule_post: default is X only; only add also_post_to when the user asked. Instagram requires an image or video. TikTok requires a video or photo.
TikTok: before posting there, ASK the user who can see it (everyone, friends, followers, or only them) and whether it promotes their brand or is a paid partnership, and tell them "By posting, you agree to TikTok's Music Usage Confirmation". Pass their answers in tiktok. Never choose the visibility for them. TikTok can take a few minutes to process before the post shows on their profile.
After a successful publish, show published_urls as clickable links. To cancel later, use unschedule_post with the returned post_id.
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": "schedule_saved_post"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| tiktok | No | Required when TikTok is in also_post_to. Ask the user first; without it TikTok is skipped. | |
| post_id | Yes | The `id` of the draft or saved idea from get_drafts or get_saved_ideas. Mongo ObjectId string. | |
| post_to_x | No | Post to X. Defaults to true. Set false only when the user wants other networks and explicitly not X. | |
| also_post_to | No | Extra networks besides X: 'linkedin', 'threads', 'bluesky', 'instagram', 'tiktok', and/or 'all'. Omit for X-only. Only set this when the user asked to cross-post. Instagram requires an image or video. TikTok requires a video or photo. | |
| next_free_slot | No | Set true to schedule at the user's next free posting slot instead of scheduled_date. Fails if the user has no free slot in the next 8 days. | |
| platform_texts | No | Optional per-network captions for the other networks when the post's text is too long or should differ. | |
| scheduled_date | No | ISO 8601 date-time for when the post should publish (e.g. '2026-03-05T14:30:00.000Z'). Must be in the future. Required unless next_free_slot is true. | |
| threads_topic_tag | No | Optional Threads topic tag (without #). Ignored unless Threads is in also_post_to. |