There are three ways to schedule a TikTok post: TikTok’s own web scheduler, a tool built on TikTok’s Content Posting API, or your own code against that API. Pick by what each one cannot do, then decide how far ahead to fill the queue.
Publish scheduling and draft delivery#
Publish scheduling means the video goes live at a set time with nobody present.
Draft delivery means the video is uploaded ahead of time and waits in your TikTok inbox until you open the app and post it. The render and caption are done; the last tap is yours.
Draft delivery is useful on purpose. You get a last look before anything is public, and you can add a trending sound from inside the app. Many accounts start with drafts and switch to direct publishing once they trust the queue.
Three ways to schedule TikTok posts#
TikTok’s web scheduler#
Upload from a desktop browser, turn on the schedule option, pick a date and time.
- Gives you: direct publishing, native sounds and effects, no third party holding a token. It is free.
- Refuses: phone scheduling, batch upload, a calendar across accounts, and dates far out. The window is short (check TikTok’s current limit). Each account is a separate trip through the same form.
- Right for: one account, a few posts a week, one person. If that is you, use it.
A scheduling tool on the Content Posting API#
You connect your account over OAuth once. The tool holds a refresh token and publishes through TikTok’s official API at the scheduled time.
- Gives you: batching, a calendar, several accounts and platforms in one queue, retries, and a result per post.
- Refuses: anything the API does not expose. Some in-app sounds and effects are not available, so content built on a sound that started trending this morning fights the format.
- Check before you buy: whether it publishes directly or only sends a reminder, whether it supports draft delivery, and whether it reports a result per account when one target in a multi-platform post fails. The tool roundups compare who does what.
Your own code#
Register an app, get approval, and handle OAuth, token refresh, chunked upload and status polling yourself. This is right when publishing is one step in a bigger system, for example a product coming back into stock. It gives full control and asks for ongoing engineering time. Token refresh is the part most teams get wrong. If you want the control without building the posting layer, Looptake has an API, CLI and MCP server on every plan.
How far in advance to schedule TikTok posts#
Content has a shelf life, and the shelf life depends on what the post refers to.
24 hours out: anything reactive#
A trending sound, a reply to a comment thread, news in your category. If the post refers to something outside your control, it goes in the next day. Keep one slot a week empty on purpose so the calendar can respond.
7 days out: most of your queue#
A week is far enough to write in a batch and close enough that everything is still true. Format posts, product education and answers to common questions all hold for a week. A simple rhythm: write on Thursday for the next Monday to Friday.
30 days out: content with no clock in it#
Three kinds hold for a month: evergreen education, dated campaigns where you control the date, and series content whose earlier parts define the later ones. Prices, unshipped features, partnerships and competitor claims do not hold. The web scheduler cannot reach this far, so a 30 day queue needs an API tool.
90 days out: a plan, not a queue#
A quarter ahead you need themes, launch weeks and a cadence per platform, written as a plan. The exception is a fixed campaign, such as a seasonal drop with a set date. Anything else scheduled this far out gets rewritten.
Run two lanes in one calendar#
The base lane holds evergreen and format content, filled up to four weeks deep on fixed days. It keeps the account consistent and needs no weekly decision.
The reactive lane is one or two slots a week, filled within 48 hours of publishing, for anything time-bound.
A bad week then costs you the reactive slots, not the account. Accounts with only a base lane are consistent but flat. Accounts with only a reactive lane post in bursts.
Two rules keep a deep queue safe:
- Do not schedule a claim you have not shipped. If a launch can slip, or a partner controls the date, keep the post as a draft and schedule it on the day the thing is live.
- Audit weekly. Before you fill next week, read the hooks of everything scheduled. Look for a changed price or limit, a reference to something that already happened, and a post with no reason left to exist.
What to automate and what to keep manual#
Build automation in this order: scheduling first, then assembly (captions, templates, exports), then generation, then a loop where results feed the next batch. Generation with no queue under it produces scripts that sit in a document.
Keep four things manual: any claim with a number or comparison, any apology, the reactive slot, and the brand’s own opinions. Automation should carry your position, not invent one.
Five reasons a scheduled post fails#
These apply to every route, and each one fails quietly.
- Expired token. A password change or revoked permission kills the refresh token. A good tool flags the account as expired at once, not at the next slot.
- Caption over the limit. TikTok allows 2,200 characters, counted in UTF-16 code units. An emoji counts as two, a flag as four. Check with the caption length checker.
- Video length. Clips under TikTok’s minimum are rejected after upload.
- Wrong aspect ratio. TikTok accepts 1:1 and 16:9 but letterboxes them. The post publishes and underperforms. Render at 9:16, 1080x1920.
- Timezone offsets. A tool that stores “GMT+1” instead of “Europe/London” moves every post by an hour when daylight saving changes.
Also avoid any tool that logs in with your username and password and drives a browser. It breaks the platform’s terms, breaks when the login flow changes, and puts your password in someone else’s database. Official API access on an account you connected is the safe test.
Checklist before the first scheduled post#
- Confirm your account type can publish through the API.
- Post one video through the tool at a time you are awake. Watch it land.
- Check the caption on the live post, not in the composer. Line breaks and hashtags differ.
- Send failure alerts somewhere a person reads.
- Note which timezone the calendar shows, and check it again after the clocks change.
Fill the queue, not only the calendar#
Every route above moves an existing file to TikTok at a chosen time. None of them makes the file, which is why many queues are empty by week three.
In Looptake, making and posting are one pipeline. Describe a video in one sentence, review it in the scene editor, then auto-post it to TikTok or set an automation that fills each slot on a cadence. Scheduling and posting use no credits. To pick slots, read the best time to post on TikTok, and to set volume, how often to post.