How to schedule a TikTok post on desktop (built-in scheduler)
TikTok's own scheduler lives in the web uploader. These are the steps from TikTok's help page, checked on 28 September 2026:
- Sign in at tiktok.com in a desktop browser and click Upload.
- Add your video, caption, cover and settings as for a normal post.
- Turn on the schedule toggle and choose the date and time. The time zone is your computer's.
- Click Schedule. The post shows on your profile as scheduled and TikTok notifies you when it goes live.
Can you schedule TikTok posts on your phone?
Not officially. TikTok only documents scheduling on the desktop website and states that the feature is not available on TikTok mobile web. Some creators report a schedule option in the separate TikTok Studio app, but TikTok has not documented it, so it may not appear on your account. If you need to schedule from a phone, use a scheduling tool: with Upload-Post you can schedule from the dashboard in any browser or through the API.
TikTok scheduling limits
| Rule | TikTok built-in scheduler | Upload-Post API |
|---|---|---|
| How far ahead | 15 minutes to 10 days | Up to 365 days |
| Where | Desktop website only | Dashboard in any browser, API, n8n, Make |
| Who | "Business Account or over with 10,000 followers or more" (TikTok's wording) | Any TikTok account you connect |
| Editing after scheduling | Not possible, only delete | Edit or cancel before it publishes |
| Time zone | Your computer's | Any IANA time zone per post |
| Other platforms | TikTok only | Same post to Instagram, YouTube and 19 more |
Why the TikTok schedule option is missing
- You are on the app or mobile web. The scheduler is only on the desktop website.
- Your account is not eligible. TikTok limits desktop scheduling to Business accounts or accounts with 10,000+ followers.
- The time is out of range. Pick a time at least 15 minutes and at most 10 days away.
To change a post you already scheduled, delete it from your profile and schedule it again: TikTok does not let you edit it.
Schedule TikTok posts beyond 10 days, from any account or in bulk
When the built-in scheduler is not enough, the Upload-Post API schedules through the official TikTok Content Posting API. The rest of this guide shows how: exact dates, a queue, TikTok settings, Python and n8n.
Schedule a TikTok post for a specific time
The most direct approach is to set an exact publish date. Add the scheduled_date parameter (ISO-8601 format) and a timezone (IANA format) to your upload request. The API accepts dates up to 365 days in the future, and scheduled posts publish through the official TikTok Content Posting API as direct posts to the connected account.
Here is a cURL example that schedules a TikTok video for September 22 at 10:00 AM New York time, with privacy set to public and duets disabled:
curl -X POST https://api.upload-post.com/api/upload \
-H "Authorization: Apikey your-api-key-here" \
-F "[email protected]" \
-F "user=mybrand" \
-F "title=Morning routine that changed everything #fyp #routine" \
-F "platform[]=tiktok" \
-F "scheduled_date=2025-09-22T10:00:00Z" \
-F "timezone=America/New_York" \
-F "privacy_level=PUBLIC" \
-F "disable_duet=false" \
-F "disable_comment=false" \
-F "disable_stitch=false"
When the post is successfully scheduled, the API responds with a 202 status code and a job_id:
{
"success": true,
"job_id": "scheduler_job_abc123",
"scheduled_date": "2025-09-22T10:00:00Z"
}
Save that job_id. You will need it to edit, reschedule, or cancel the post later. You can also list all your pending scheduled posts at any time:
curl https://api.upload-post.com/api/uploadposts/schedule \
-H "Authorization: Apikey your-api-key-here"
This returns an array of all pending jobs with their job_id, scheduled_date, platform details, and a preview URL of the content. For a deeper look at scheduling across all platforms, see the general scheduling guide.
Use the queue for hands-free scheduling
Picking exact dates works when you have a few posts. But if you are batch-producing content, manually choosing a time for each video gets tedious fast. The queue system solves this. You define your preferred posting schedule once, and then every piece of content you add automatically gets assigned to the next available slot.
Configure your queue schedule
First, tell the system when you want content to go out. This example sets up three slots per day, Monday through Friday, in the New York timezone:
curl -X POST https://api.upload-post.com/api/uploadposts/queue/settings \
-H "Authorization: Apikey your-api-key-here" \
-H "Content-Type: application/json" \
-d '{
"timezone": "America/New_York",
"slots": [
{ "hour": 8, "minute": 0 },
{ "hour": 12, "minute": 30 },
{ "hour": 18, "minute": 0 }
],
"days": [0, 1, 2, 3, 4]
}' This gives you 15 TikTok slots per week: 8:00 AM, 12:30 PM, and 6:00 PM, Monday through Friday. You can define up to 24 slots per day and include weekends by adding days 5 and 6.
Add content to the queue
Now, instead of passing a scheduled_date, set add_to_queue=true. The system fills the next open slot automatically:
curl -X POST https://api.upload-post.com/api/upload \
-H "Authorization: Apikey your-api-key-here" \
-F "[email protected]" \
-F "user=mybrand" \
-F "title=POV: you finally automated your TikTok posting #devlife" \
-F "platform[]=tiktok" \
-F "add_to_queue=true" \
-F "privacy_level=PUBLIC" If it is Wednesday at 2 PM, this video gets slotted for 6:00 PM the same day. If all Wednesday slots are full, it moves to Thursday at 8:00 AM. You can preview upcoming available slots before adding content:
curl https://api.upload-post.com/api/uploadposts/queue/preview?count=10 \
-H "Authorization: Apikey your-api-key-here" This returns the next 10 available slots with their exact dates and times, so you know exactly when each queued post will go live.
TikTok-specific settings you should know
TikTok's API exposes several parameters that other platforms do not have. Some are optional, but a few are legally required in certain situations. Here is the full reference:
| Parameter | Values | Description |
|---|---|---|
privacy_level | "PUBLIC", "FRIENDS", "PRIVATE" | Controls who can see the video. Defaults to your TikTok account settings if omitted. |
disable_duet | true / false | Prevents other users from creating duets with your video. |
disable_comment | true / false | Turns off commenting on the video. |
disable_stitch | true / false | Prevents other users from stitching your video into theirs. |
brand_content_toggle | true / false | Marks the video as a paid partnership. Required by FTC and EU regulations when promoting a brand you are paid to advertise. |
brand_organic_toggle | true / false | Marks the video as promoting your own business. Use this when the content is about your own product or service, not a third-party sponsorship. |
is_aigc | true / false | Discloses that the content was generated or significantly edited by AI. TikTok may label it accordingly for viewers. |
tiktok_title | string | Platform-specific title/caption. Useful when your TikTok caption differs from the main title field sent to other platforms. |
cover_timestamp | integer (ms) | Selects the video frame at this millisecond to use as the thumbnail. For example, 5000 picks the frame at the 5 second mark. |
post_mode | "DRAFT", "PUBLISH" | Set to "DRAFT" to upload the video as a draft in TikTok (you can review and publish manually later). Defaults to "PUBLISH". |
A note on brand content: if you are creating sponsored content, you must set brand_content_toggle=true. This is not optional. Both the FTC in the US and equivalent EU regulations require clear disclosure of paid partnerships. TikTok enforces this on their end as well, so failing to flag it correctly can result in content removal. If you are promoting your own business (not a third-party brand), use brand_organic_toggle=true instead.
For AI-generated content, setting is_aigc=true adds a disclosure label visible to viewers. As AI content regulations evolve, flagging this proactively is a good practice.
Schedule TikTok posts with Python
The Python automation guide covers the SDK in depth. Here is a practical example for TikTok: batch-scheduling every video in a folder, each one hour apart, starting tomorrow morning.
pip install upload-post import os
import glob
from datetime import datetime, timedelta
from upload_post import UploadPostClient
client = UploadPostClient(api_key="your-api-key-here")
video_folder = "/path/to/tiktok-videos"
videos = sorted(glob.glob(os.path.join(video_folder, "*.mp4")))
# Start scheduling from tomorrow at 9 AM Eastern
base_time = (datetime.now() + timedelta(days=1)).replace(
hour=9, minute=0, second=0, microsecond=0
)
print(f"Found {len(videos)} videos to schedule")
for i, video_path in enumerate(videos):
publish_time = base_time + timedelta(hours=i)
filename = os.path.basename(video_path)
title = filename.replace(".mp4", "").replace("-", " ").replace("_", " ")
try:
response = client.upload_video(
video_path=video_path,
title=title,
user="mybrand",
platforms=["tiktok"],
scheduled_date=publish_time.isoformat(),
timezone="America/New_York",
privacy_level="PUBLIC",
disable_duet=False,
disable_comment=False,
cover_timestamp=3000,
async_upload=True
)
job_id = response.get("job_id", "pending")
print(f"[{i+1}/{len(videos)}] Scheduled {filename} for {publish_time} (Job: {job_id})")
except Exception as e:
print(f"[{i+1}/{len(videos)}] Failed: {filename} - {e}")
print("All videos scheduled!")
This script spaces each video one hour apart. You can adjust the timedelta to match your preferred cadence. Remember that TikTok enforces a daily limit of 15 uploads per 24-hour rolling window per account. If you have more than 15 videos, spread them across multiple days or use the queue system, which handles limits automatically.
You can also combine this with the FFmpeg API to resize or trim videos before scheduling, or use the social media holiday calendar to align your publishing dates with trending topics.
No-code: Schedule TikTok posts with n8n
If you prefer visual automation over writing code, n8n is an excellent option. The setup uses the HTTP Request node to call the Upload-Post API, and you can trigger it from Google Sheets, Google Drive, Airtable, or a manual button.
The basic flow looks like this:
- Trigger node: fires on a schedule, a new spreadsheet row, or a new file in a cloud folder.
- HTTP Request node: sends a
multipart/form-dataPOST tohttps://api.upload-post.com/api/uploadwith your API key, video file, title,platform[]=tiktok, andadd_to_queue=true. - Optional: a Slack or email notification when the upload succeeds or fails.
We have a ready-made TikTok upload template for n8n that you can import with one click. Browse all available n8n templates for more automation ideas. You can also set this up with Make.com if that is your preferred automation platform.
TikTok video requirements
Before scheduling, make sure your videos meet TikTok's specifications. Uploading a file that does not meet these requirements will result in a failed post.
| Requirement | Specification |
|---|---|
| Max file size | 4 GB |
| Supported formats | MP4, WebM, MOV |
| Recommended aspect ratio | 9:16 (vertical). 1:1 and 16:9 are accepted but may display with letterboxing. |
| Resolution | 1080x1920 recommended. Minimum 720p. |
| Duration | 1 second to 10 minutes |
| Codec | H.264 recommended. H.265 (HEVC) is also supported. |
| Daily upload limit | 15 videos per 24-hour rolling window per account |
If your source videos are in the wrong format or aspect ratio, the FFmpeg API can handle the conversion in the cloud before publishing. You can also repurpose YouTube videos into TikTok format automatically.
Frequently asked questions
Can you schedule TikTok posts?
Yes. TikTok has a built-in scheduler on the desktop website that publishes a video between 15 minutes and 10 days after you schedule it. TikTok says it is for Business accounts or accounts with 10,000 followers or more. To schedule further ahead, from any account or in bulk, use a scheduling tool or an API such as Upload-Post, which accepts dates up to 365 days ahead.
Can you schedule TikTok posts on your phone?
TikTok only documents scheduling on the desktop website and says it is not available on TikTok mobile web. Some creators report a schedule option in the TikTok Studio app; if you do not see it, schedule from a computer or from a scheduling tool that works on any device.
Can I edit a scheduled TikTok post?
No. TikTok says scheduled posts cannot be edited, only deleted. To change the caption or time, delete the scheduled post and schedule it again.
Why can’t I see the schedule option on TikTok?
The usual reasons: you are on the phone app or mobile web (the scheduler is desktop only), your account does not meet TikTok’s eligibility (Business account or 10,000+ followers), or you picked a time less than 15 minutes or more than 10 days away.
Can I schedule TikTok posts for free?
Yes, with TikTok’s own desktop scheduler, within its 10-day window. On Upload-Post, TikTok posting needs a paid plan, from $24 a month ($16 a month billed annually), and scheduling, the queue and the API are included in every plan.
What happens if TikTok is down when my post is scheduled?
Upload-Post retries failed uploads automatically. If the problem persists you get a webhook notification (if configured) or can check the job with the status endpoint. Your content is not lost.
Can I schedule to TikTok and Instagram at the same time?
Yes. Pass several platforms in the same request and the same video, caption and date apply to all of them. Use tiktok_title for TikTok-specific text.
How far in advance can I schedule TikTok posts?
Up to 10 days with TikTok’s built-in scheduler, and up to 365 days with the Upload-Post API.