TikTok · Scheduling guide

How to schedule TikTok posts

Here’s how to schedule TikTok posts: upload your finished video in TikTok Studio, review its caption and audience, choose a date and time, then confirm the schedule. If you work with a team or an agent, use a scheduling tool and check its approval and publishing status too.

Yes, you can schedule TikTok posts. Start with the path that matches what you need to do.

Check your UTC timeFix a missed or stuck post

How to schedule TikTok posts in your browser

You need your TikTok login and the video ready to upload. Open TikTok Studio and follow the browser steps below.

  1. Open TikTok Studio and check the account

    Log in at tiktok.com/tiktokstudio in a browser. Confirm the handle before choosing Upload, especially if you manage more than one account.

  2. Upload and review the finished video

    Add the caption and cover. Watch the preview, choose who can watch, and review comments and reuse settings. Complete any content disclosures that apply to your video.

  3. Choose the schedule and verify the time zone

    Use the scheduling control, then choose the date and time available to your account. TikTok’s older browser walkthrough describes a Schedule toggle and a computer-time-zone default. Check the zone shown in your own screen before confirming.

  4. Confirm, then check the scheduled post

    Select Schedule and check that the saved post has the intended account and time. After that time, check the post itself; a saved schedule is not a live post.

If Schedule is missing, check Studio in a browser. TikTok says creator tools are available to Personal and Business Accounts, but individual features vary by region, eligibility and app or web experience. That is not a guarantee that every account has every scheduling control. TikTok’s current Studio help.

Procedure source: TikTok’s older Video Scheduler walkthrough, not a test publish from your account. Use the available dates and controls in your current screen.

Use a scheduling tool or dashboard

For a tool with a post composer, connect the intended TikTok account, add the finished video and caption, review its audience, then set the date and time. Check whether you chose automatic publishing or a reminder that needs you to finish in TikTok. Saving either one does not prove the post is live.

In Postdom: manage a post already in the queue

Postdom’s Schedule dashboard manages existing posts. It is not an upload composer. For a new video, use the agent path below first. Once that post exists:

  1. Find the existing post

    In Postdom, open Schedule and use the Account filter to find the TikTok destination. Open the post to check its video, caption and status. An empty queue means there is no existing post to schedule here; submit it through your connected agent first.

  2. Enter the new time in UTC

    For a draft, missed approval, missed schedule or scheduled post, enter New publish time · UTC and select Reschedule. Convert your intended local time first. The dashboard displays and accepts UTC, not your browser’s local time.

  3. Read the result and resolve any review

    Check the resulting status and time. A post in Upcoming can still require approval: open Review and have a human review it. Scheduled means it is waiting for handoff; it does not mean TikTok has published it.

  4. Change course deliberately

    For a scheduled post, Cancel schedule returns it to a draft. Publish now is available for drafts and missed items; use it only when you intend an immediate handoff. Open the run afterward to check the outcome.

Want to review every agent post? Set the selected account to L1 Post review before submission. Do not assume that is its default. Other account modes can allow a human-approved plan or publishing within saved policy. Read how account authority works.

Check the time before you save it

TikTok’s documented browser default and Postdom’s UTC entry are different. For example, an illustrative local time of 18:30 at UTC+10:00 is 08:30 UTC on the same day. A time near midnight can land on the previous or next UTC date.

Enter your intended local time and its UTC offset on that date. Account for daylight saving yourself. This converts the time only; it does not schedule a post or check account policy.

Your conversion will appear here.

Schedule a supplied video with an API or agent

Use this path when your agent or application already prepares the publishing request. Postdom publishes finished videos you supply to TikTok, Instagram Reels, YouTube Shorts, LinkedIn, Facebook Reels, X, Snapchat Spotlight, Threads and Bluesky; it does not generate the video. This example selects TikTok only.

  1. Connect the right TikTok account

    Configure your Postdom connection with a workspace agent key, kept out of chat. Have the agent read workspace status, list accounts and read your brief. Select the returned TikTok providerAccountId; do not substitute a handle or an internal account ID. Stop if the workspace is paused, the connection is locked or the account is disconnected.

  2. Preview and authorize the exact request

    Supply the finished video at an accepted video URL, or use an already-stored media handle. Review the video, caption, account, audience and disclosures yourself. Give express consent only when they are correct. The private, AI-disclosed defaults below must fit your video; otherwise stop and use a path that exposes the settings you need.

  3. Send the intended time, then keep the post ID

    Ask the agent to submit publish_video with a future publish_at in UTC ending in Z, the selected account and a stable idempotency key. Check the returned id, status and scheduled_for. A timestamp requests a schedule; it does not grant approval or prove publication.

  4. Check the same post through to its outcome

    Use get_publish with the returned ID. If review is required, stop for a human. For scheduled or publishing, check again later within an agreed waiting budget. Report the actual destination result; do not silently retry a failed post or treat a partial result as complete.

This example is private and AI-labeled

The released helper makes TikTok posts visible only to you, with AI disclosure on and comments, Duet and Stitch off. Watch the actual video and give express consent first. Stop if any setting is wrong or a required commercial disclosure is missing: the helper cannot change these settings. Permission to call a tool is not consent, and a private post is not a public release.

Agent instructions and an illustrative scheduled request

Configure a supported MCP connection first; pasting a prompt does not connect tools. Keep the workspace key in private client settings. Follow the connection guide.

The released @postdom/mcp@0.3.0 tool and Node SDK publishVideo helper send privacy_level: SELF_ONLY, video_made_with_ai: true, and allow_comment, allow_duet and allow_stitch all false. They also send content_preview_confirmed: true and express_consent_given: true. Those are assertions, not proof of human preview or consent. There are no overrides in these helpers. TikTok’s developer guidelines explain creator control and consent.

Use my configured Postdom connection; never print credentials.
Read get_workspace_status, list_accounts and get_brief. Stop if paused, locked, disconnected or policy is unclear.
Use only my selected TikTok providerAccountId and finished video. Do not generate or upload a replacement video.
Show me the video, caption, UTC time and every default: privacy_level SELF_ONLY; video_made_with_ai true; allow_comment, allow_duet and allow_stitch false; content_preview_confirmed and express_consent_given true.
Require my actual preview and express consent. Stop if confirmation is absent, the AI disclosure is wrong, or I need a different audience or unsupported commercial disclosure. Tool permission is not consent. Do not claim these flags prove preview happened.
Respect the account policy. If I want per-post review, I will set L1 Post review first; do not change it yourself or assume it is the default. If a plan is required, wait for a human-approved plan and stay inside it.
After I authorize this submission, call publish_video once with my exact account, accepted video URL or stored media handle, caption, future publish_at ending in Z, and stable idempotency_key. Include plan_id only when authorized plan-backed work requires it.
Return id, status and scheduled_for. If requires_approval, stop for human review. Submission is not post approval.
Use get_publish for the same ID later, with bounded backoff. Hand me the ID if our waiting budget expires. Preserve errors and every destination result. Never resubmit, approve yourself or widen the audience without my direction.

Arguments for publish_video

Replace every example value, including the date. This URL is a non-working placeholder. Arrange an accepted video URL or already-stored handle first; the released upload helper does not send all metadata required by the current upload API. Do not use it as an assumed fresh-upload shortcut.

{
  "account_ids": [
    "REPLACE_WITH_TIKTOK_PROVIDER_ACCOUNT_ID"
  ],
  "video_url": "https://media.example.test/reviewed-video.mp4",
  "caption": "A look at the finished video",
  "publish_at": "2050-01-15T08:30:00.000Z",
  "intent": "Submit the reviewed video for the selected TikTok account at the confirmed UTC time",
  "idempotency_key": "REPLACE_WITH_A_STABLE_KEY_FOR_THIS_REQUEST"
}

Use media_handle instead of video_url for an already-stored handle, never both. For a plan-backed request, include the authorized plan_id and stay inside the plan’s account set and time window.

For Node SDK users, the corresponding input is publishAt; the client sends it as publish_at. Read getPost(submission.id) afterward. See the SDK integration example. These examples illustrate the request; they do not record a real account publication.

For the TikTok video Direct Post API, post_info.title is documented at 2,200 UTF-16 runes. That is not a verified native Studio caption limit or proof that Postdom checks the same count. Check your caption for this publishing path. Official field reference; field evidence checked .

If the post does not appear

Find the original scheduled post before trying again. The next action depends on whether it is waiting, blocked, failed or already published with a private audience.

What you seeWhat to do next
No native Schedule optionTry TikTok Studio in a browser and check the account you signed into. Availability varies by account, region and app or web experience. Do not switch account type just because an older guide says to.
Wrong time or caption in TikTokCheck the controls available for that scheduled post. TikTok’s older browser guide says changes require deleting and re-uploading. Before replacing anything, confirm that the original is no longer scheduled so you do not publish twice.
Postdom: draft or requires_approvalA human still has work to do. Schedule the draft deliberately, or review the exact pending post. A requested time does not bypass approval.
Postdom: changes_requested or rejectedRead the feedback and stop. Ask the reviewer what should change; do not send the same rejected work again under a new ID.
Postdom: missed_approval or missed_scheduleThe slot was missed. A human can choose a new time or Publish now in Schedule. Do not quietly backfill a time-sensitive post.
Postdom: scheduled or publishingCheck the same ID later. Do not submit another copy because it is not visible yet. A scheduled handoff is not a promise of exact-time visibility on TikTok.
Postdom: failed, partial or a request errorKeep the ID and error. Read the run before deciding whether to retry; partial means some destinations succeeded. If the response was lost, reconcile the original request using its stable key and unchanged inputs instead of creating a new request.
Postdom: published, but not publicCheck the destination result and audience. SELF_ONLY is private, not public distribution. A human must choose any audience change deliberately through a supported path.
Postdom: blockedPolicy stopped this run before submission. Keep the reason; publishing again requires a fresh request and authorization, not an automatic retry.
Postdom: unknownThe provider may have received this run. Preserve its ID and evidence, and reconcile the outcome before any retry. Do not submit another copy while the result is unknown.

Common scheduling questions

Can you schedule TikTok posts?

Yes. TikTok Studio includes scheduling tools, with availability varying by account, region and app or web experience. A connected scheduling tool is another option. Check whether it publishes automatically or only reminds you to finish posting, and confirm the audience and time zone before saving.

Can I schedule from my phone?

TikTok lists creator tools across its app, TikTok Studio app and browser, but not every feature is available in every experience. In TikTok, open Profile, then Menu, then TikTok Studio to check your tools. If scheduling is absent, use the browser route above rather than assuming your account cannot schedule at all.

How far ahead can I schedule?

Use the dates offered by your current TikTok scheduling screen. This guide does not assume an older native scheduling window still applies to every Studio account. For Postdom, the requested time must also fit the account’s saved policy and any approved plan; there is no unlimited-scheduling promise here.

Will the Postdom agent example publish publicly?

No. Its TikTok audience is SELF_ONLY, with AI disclosure enabled and comments, Duet and Stitch disabled. It also sends preview and consent confirmations, which require actual human preview and express consent first. Stop if any default is incompatible. An accepted request may still need approval, and a successful private post is not a public release.

Does scheduling mean the post will appear at that exact time?

No. Confirm the saved time and then check publication. Approval, account restrictions or a publishing failure can stop a Postdom request, and provider processing can separate the scheduled handoff from visibility. Keep the post ID so you can inspect the original attempt instead of creating duplicates.