Ship the whole thread while you sleep.
Write the chain once, set reply visibility on each step, and OctoSpark publishes it in order at the minute you picked. X's own composer will not put a thread on a timer at all, and the schedule control never shipped in the mobile app.
- Threads of up to 25 chained posts, queued as one item
- Reply visibility and quote target stored per post
- Every handle on one calendar, no account switching

The honest answer
Does Twitter have a built-in scheduler?
Yes. Twitter/X has a free scheduler inside the web composer at x.com: pick a date and time, and the post waits in Unsent posts. It handles single posts on desktop web only. Threads, bulk queues, polls, and approvals are out of scope, and X Pro now needs Premium+.
the small calendar icon in the x.com post composer on desktop web, with everything queued sitting under Unsent posts in the left sidebar
Desktop web only
The schedule control never shipped in the iOS or Android app. From a phone you have to force x.com into desktop mode, and a draft written in the app does not show up on web anyway.
One post at a time, never a chain
Add a second post to the chain in the composer and the schedule control drops out, so a thread has to be typed live or pasted reply by reply from a notes doc.
X Pro moved to the $40 tier
In March 2026 X put X Pro, the old TweetDeck and the only native surface with a column view of the queue, behind Premium+. Below that tier the free composer scheduler is all there is.
Polls cannot be put on a timer
Attach a poll and the composer refuses to schedule the post, so any vote you want running has to be fired by hand at the moment you want it live.
No bulk queue and no reusable slots
Every scheduled post is created one at a time in the composer. There is no import, no set of posting times to drop drafts into, and no way to reorder what is already queued.
Scoped to the signed-in handle
Unsent posts belongs to whichever account the browser session is on, so a personal handle and a brand handle mean two separate queues and a lot of account switching.
X composer scheduling, plus X Pro vs OctoSpark.
| Capability | X composer scheduling, plus X Pro | OctoSpark |
|---|---|---|
| Putting a whole thread on a timer | The x.com composer removes the schedule icon the moment you add a second post to the chain. | The chain is queued as one item and published in order, each step sent as a reply to the id X returned for the step before it, up to 25 posts. |
| Seeing the week of tweets ahead | Unsent posts is a flat time-ordered list in the sidebar, with drafts and scheduled items in separate tabs. | A calendar and a queue view covering every connected handle, where a scheduled item can be dragged to a new slot without retyping it. |
| Queuing a tweet from a phone | No schedule control exists in the X app, so the workaround is forcing desktop mode in a mobile browser. | Queue from any browser, from the terminal, or by asking an agent in Claude Code while you are away from a laptop. |
| Running two X handles | Each handle keeps its own Unsent posts list, reachable only by switching the account the browser is signed into. | Connect the personal handle and the brand handle to one workspace and pick both in the composer, with one queue across them. |
| Reply visibility on a scheduled post | The composer only applies reply visibility to the post you are writing at that moment; a scheduled post carries the default. | Reply visibility is stored against each post, including individual steps of a chain, and passed to X at publish time. |
| Re-running a tweet that worked | Nothing native. You copy the old text and post it again, which X routinely filters as duplicate automated content. | Schedule a reshare or a quote of the original post instead of near-identical copy, so the recycled post is not competing with itself. |
| Getting a large video through upload | Media uploads in the browser tab, so a long video means keeping x.com open until it finishes before you can set a time. | Video is uploaded in segments server-side and polled until X reports processing finished, so a scheduled post never fires against a half-ingested file. |
| Scheduling tweets from a script | Both the composer and X Pro are browser surfaces. There is no native button you can call from a build step or a cron job. | One typed call queues the post, from the CLI, the REST API, or an MCP client, and returns structured output an agent can chain. |
What you can schedule on Twitter.
Thread (chained replies)
SupportedA run of posts where each one replies to the last, read top to bottom as a single argument.
Composed as one item and published as up to 25 chained posts, with the reply target of every step taken from the response to the step before it.
Timeline images
SupportedUp to four stills, or a single GIF, shown inline rather than as a link preview.
Attach up to four images from the media library. Mixing stills and video in one post is blocked before scheduling, because X will not accept it.
In-timeline video
SupportedA native upload that plays in the feed instead of sending the reader to another site.
Uploaded in segments and confirmed processed by X before the scheduled time arrives, so the queue does not publish a video that is still ingesting.
Quote post with commentary
SupportedA new post that wraps an existing one so your take sits above the original.
Set the quoted post id on the first post of the item and the quote is assembled at publish time, including when that item is the head of a chain.
Poll attachment
PlannedA multiple-choice vote with a fixed run time, attached to a post.
Not in the composer yet. X will not schedule a poll either, so today a vote is still something you post at the moment you want it counting.
Long post for X Premium handles
PlannedThe extended-length single post a subscribed handle can publish in place of a standard one.
Not yet. Long copy is served better by a chain, so extended single posts stay on the list while thread scheduling covers the same job.
Which Twitter accounts work.
Personal X handle
Any handle can authorize OctoSpark through X OAuth 2.0. No X Premium subscription and no developer app of your own.
Brand handle on X
Connects exactly like a personal handle. Add it as a second account in the same workspace and target both from one composer.
X Premium or verified organization handle
Connects the same way. The subscription changes what the handle can publish natively, not whether OctoSpark can publish for it.
A handle several people post from
One connected handle, many workspace members. X has no seat model of its own, so roles and approval gates live in OctoSpark instead.
Before you connect
- An X account you can sign into in a browser long enough to complete the OAuth 2.0 authorization.
- Consent to the tweet.read, users.read, tweet.write, media.write, and offline.access scopes, all granted on one screen.
- No X Premium subscription, no X developer account, and no API keys of your own to paste anywhere.
- offline.access in particular, because the refresh token it returns is what keeps the queue publishing after you close the tab.
Twitter publishing rules, in one table.
Read straight from the same capability matrix the product runs on, so this table cannot drift from what actually happens at publish time.
| Character limit | 280 | The composer counts down against this as you type, and warns you before a post can be scheduled over the limit. |
|---|---|---|
| Delete a published post | Supported | Remove a live post from OctoSpark and it is deleted on the platform too, not just hidden in your queue. |
| Edit a published post | Not supported | No platform supports editing through the API here, so we surface delete and repost rather than pretending an edit worked. |
| Scheduled first comment | Supported | Queue the first comment with the post and it lands automatically once the post is live, which is where links usually belong. |
| Repost / reshare | Supported | Reshare an existing post on a schedule without duplicating the original. |
| Engagement analytics | Supported | We poll the platform after publish and pull real engagement back onto the post, so reporting is measured rather than estimated. |
| Tracked short links | Supported, off by default | Inline links are rewritten for click tracking, and you can turn this off per post. |
| Native publish settings | 2 available | Set them per post before it goes out, including Reply visibility, Quote post ID. These are the platform's own options, passed straight through at publish time. |
How to schedule a Twitter post.
- 1
Connect your Twitter handle
Authorize OctoSpark once through X OAuth 2.0. The handle lands in your workspace with a refresh token attached, so nothing stops publishing because a session expired.
- 2
Write the post, or the chain
Type a single post or add steps to build a thread. Reply visibility and any quoted post are set here, per step, rather than being decided when it fires.
- 3
Drop it on the calendar
Pick a slot or type a timestamp. Everything queued to that handle sits in one view you can drag around until the ordering reads the way you want.
- 4
Let it go out and check back
The item publishes at the scheduled minute, media is confirmed processed first, and the resulting post ids are stored so the numbers come back to the same object.
Agent native
Schedule Twitter from your terminal, an MCP client, or any agent.
Every Twitter action is a typed endpoint before it is a button, so the same schedule call runs from your terminal, from a CI step, or from Claude Code over MCP. Drop --dry-run and the thread joins the queue for that handle.
octospark posts schedule pst_7c31 --account-id acct_x_brand --at 2026-09-02T13:30:00Z --dry-runSchedulers for other platforms.
Instagram post scheduler
Yes, in two places. Any public Instagram account can toggle Schedule this post inside the app, up to 75 days ahead and 25 a day.
Read moreLinkedIn post scheduler
Yes. LinkedIn has a free native scheduler built into the post composer: click the clock icon, pick a date and time within the next three months, and the post publishes itself.
Read moreTikTok post scheduler
Yes. TikTok Studio has a free built-in scheduler on desktop web.
Read moreFeatures behind the Twitter scheduler
- how chains and quote posts are modelledA thread is a post shape here, not a text box with line breaks in it, which is what makes queuing one as a single item possible.
- reshares, quotes, and queued repliesThe actions available after a tweet is live are what make recycling safe under X's rules on duplicate automated copy.
- schedule tweets from the CLI or MCPEverything on this page is an endpoint before it is a screen, so the terminal and Claude Code write to the same queue as the calendar.
Twitter scheduling, answered.
It does, in the x.com composer on desktop web. Click the calendar icon, set a date and time, and the post waits under Unsent posts until it fires. It takes one post at a time and nothing more elaborate than that.
No. The composer scheduler is free for any handle. What Premium+ buys is X Pro, the old TweetDeck, which moved behind the $40 tier in March 2026. OctoSpark asks for no X subscription at all.
Not natively: adding a second post to the chain removes the schedule control from the composer. OctoSpark queues the entire chain as one item and publishes each step as a reply to the previous one, up to 25 posts.
There is no documented penalty for scheduling itself. What does get filtered is duplicate copy, so re-posting the exact text of something that worked is the real risk. Resharing or quoting the original sidesteps it.
On X they sit under Unsent posts in the left sidebar, split into drafts and scheduled. In OctoSpark they sit on a calendar beside everything else queued for that handle, and moving one is a drag rather than a retype.
Not from the X app, which has no schedule control. Natively you would force x.com into desktop mode in a mobile browser. OctoSpark queues from any browser, and from the CLI or an MCP client if you prefer typing.
Yes. Connect each handle to the same workspace and choose which ones a post targets in the composer. Natively, Unsent posts belongs to the signed-in account, so a second handle means signing in as that handle.
X's own composer is free and will schedule single posts on desktop web. OctoSpark is paid, and what the money buys is chains, several handles, media verified as processed before publish, and an API in front of all of it.
Not in either tool today. X declines to schedule a post with a poll attached, and OctoSpark does not compose polls yet, so a vote remains something you fire manually when you want the clock to start.
Yes. Reply visibility is held against the post and applied when it publishes, including on individual steps of a chain. The native composer only lets you set it on whatever you are writing right now.