How to schedule Instagram Reels (and stories, and feed posts) without a third-party scheduler
Most "Instagram schedulers" are notification tools — they ping you when it's time to publish, then make you copy-paste the caption manually. Here's how to actually queue Reels, stories, and feed posts to publish at exact times, using Meta's official Content Publishing API.
How to schedule Instagram Reels (and stories, and feed posts) without a third-party scheduler
You're a creator or a brand operator. You film three Reels on a Sunday because that's the only chunk of unstructured time in your week. You want them to publish on Tuesday, Thursday, and Saturday at 10am — staggered across the week so your feed isn't a wall of Sunday-tagged content.
The "scheduling tools" you've tried so far do one of two things:
- They send you a push notification at the scheduled time, then make you tap the notification, open the Reels editor, paste the caption, and tap publish manually. This is not scheduling. This is a calendar reminder with extra steps.
- They schedule proper publishes but only via Meta's official Content Publishing API — and most of them charge $30-50/month minimum, lock the feature behind a Pro tier, and bundle it with twenty other things you don't need.
There's a third path. It's been around for a couple of years, it's free at the API level (Meta charges nothing), and almost no creator-facing tool surfaces it cleanly. Let's walk through what it is and how to use it.
The actual problem with most "schedulers"
Instagram's mobile app does not allow third-party apps to publish on your behalf without going through Meta's official Content Publishing API. That's a hard rule.
For years, this API was only available to "approved partners" — big enterprise tools with a special relationship with Meta. The result: Buffer, Later, Hootsuite, and Planoly could schedule directly. Everyone else built notification-based workarounds that technically let you "schedule" by tapping through the notification at the right moment.
That changed quietly around 2022. Meta opened up instagram_business_content_publish as a regular permission any approved Business app can request. Now any tool that does App Review can schedule directly. Most creator-facing tools just haven't caught up — or they have, but they bundle it inside an enterprise pricing tier.
What "proper" scheduling actually does
When a tool that uses the Content Publishing API schedules your post, here's what happens at the scheduled minute:
- The tool calls
POST /<your-ig-user-id>/mediawith your media URL and caption — this creates a container on Meta's side - The tool polls
GET /<container-id>?fields=status_codeuntil Meta returnsFINISHED(videos take 30 seconds to 2 minutes to process; images are instant) - The tool calls
POST /<your-ig-user-id>/media_publishwith the container ID — your post goes live - The tool stores Meta's returned
permalinkso you can open the post and check engagement
No notifications, no manual taps, no "open the app and paste the caption" middle step. The post just shows up in your feed at the time you picked.
What you can schedule (and what you can't)
Meta's Content Publishing API supports five media types:
- Feed image — single still image post
- Reel — vertical video Reel (max 90 seconds, MP4 / MOV, 9:16 vertical recommended)
- Story (image) — 24-hour story image
- Story (video) — 24-hour story video
- Carousel — 2 to 10 images, swipeable in feed
Notable absences:
- Carousel-of-videos — feed carousels are images only
- Reels with carousel containers — single video per Reel
- Live broadcasts — go-live can't be scheduled via API
- Cross-posting to Facebook — separate API, separate scheduling tool
The container window is 75 days — meaning anything you schedule has to fire within 75 days. Posts further out should sit in your own pipeline (Notion, a spreadsheet, anywhere) until they're inside the window, then get scheduled.
Format requirements that trip people up
The most common reason scheduled Reels fail at the publish step isn't the schedule — it's the file. Meta is strict about Reel format. Common rejections:
- Resolution above 1920×1080 — Meta won't process. Downscale before scheduling.
- Duration over 90 seconds — Reels hard cap. Trim or split.
- Audio codec other than AAC — Meta will reject silently. Re-encode the audio with
ffmpeg -c:a aac. - Bitrate above 25 Mbps — usually rejected. Re-encode at lower bitrate.
- Aspect ratio not 9:16 — Reels expect vertical. Crop or letterbox.
If your file is already mobile-shot from the IG app's own recorder, all of these are automatically fine. If you're scheduling files from Final Cut, Premiere, or DaVinci, double-check before queueing 20 posts and discovering they all fail at fire time.
The cheapest way to actually do this
ReplyAtlas's Post Scheduler is on the Growth tier and up — $29/month at this writing. Compared to Buffer ($120/year for 1 channel, ~$10/mo) or Later ($25-80/mo depending on plan), the pricing is competitive but not the cheapest.
What's different is the workflow: the scheduler is part of the same app that handles your auto-DM automations and your lead pipeline. So when you schedule a Reel that says "comment SHIP for the link," you can wire up the COMMENT-trigger automation in the same session — instead of bouncing between three tools.
Concretely, here's the full flow:
- Open
/schedulerin ReplyAtlas - Click Schedule new post → pick Reel
- Either upload your
.mp4directly (we host on Google Cloud Storage up to 100 MB) or paste a public HTTPS URL you already host - Write your caption — same
{{handle}}/{{firstName}}substitution variables work as in the rest of the app, so if you reference a specific call-to-action you can interpolate - Pick a datetime in the next 75 days
- Click Schedule post
That's it. The scheduled post appears in /scheduler with status PENDING. At fire time, status flips through PROCESSING → PUBLISHED. If anything fails, the row goes to FAILED with Meta's actual error message ("Video file too large", "Unsupported aspect ratio", etc.) so you can fix and reschedule.
Pairing with comment-to-DM automations
The killer combo isn't just scheduling. It's scheduling + automation.
Schedule a Reel that says: "Comment SHIP and I'll DM you the early-access link."
In the same session, create a Comment automation that triggers on the keyword SHIP and DMs back the link. Now when the Reel publishes Tuesday at 10am and someone comments SHIP at 10:01am, they get an auto-DM in 3 seconds. By the time you wake up Wednesday, you have 50 leads with click-tracked DMs and zero manual replies.
This is the pattern that perf-marketing-savvy creators use. Not scheduled-content alone, not auto-DMs alone — both, paired around a single CTA in the caption.
When third-party schedulers still make sense
A few scenarios where ReplyAtlas's scheduler isn't the right pick:
- You only need scheduling, no automation. Buffer or Later are fine.
- You need cross-platform scheduling (LinkedIn + Twitter + IG in one queue). Buffer / Hootsuite / Sprout Social handle this; we don't.
- You're a 50-person agency managing 100 client accounts. Enterprise tools (Sprout, Hootsuite) have approval workflows and per-client client-roles we don't have.
For a single creator or small brand running their own IG, the workflow is much cleaner with a tool that does scheduling and DM automation in one place.
FAQ
Does Meta charge for the Content Publishing API? No. Meta charges nothing for any of these API calls — no per-post fees, no monthly platform fees from Meta itself. The only platform-level limit is rate limits (100 posts per IG account per 24 hours, more than any human creator hits).
Why don't some "schedulers" use the proper API? Because the API requires App Review approval, which takes 5-14 business days, and the approval requires demonstrating the use case via screencast. Notification-based "schedulers" skip all that — they're just a glorified push-notification timer.
How far in advance can I schedule a post? 75 days. That's Meta's container-window cap, not ours. Anything further has to live in your own pipeline until it's inside that window.
Can I edit a scheduled post before it fires? Not in v1 of ReplyAtlas. To change anything (caption, time, media), cancel and re-schedule. Cancel is a single click and deletes the queued task before it fires.
What happens if the publish fails?
The row in /scheduler flips to FAILED with the Meta error message visible. You can fix the underlying issue (re-encode the video, swap the URL, etc.) and reschedule. Failures don't auto-retry beyond the worker's 5-attempt window, so a permanently broken file won't loop forever.
Will it post even if my phone is off? Yes. The publish happens on Meta's servers, triggered by a Cloud Tasks worker on our side. Your phone, computer, and IG app are all irrelevant at fire time.
If you want to try it, start a free Starter account and upgrade to Growth ($29/mo) when you're ready to schedule. The full scheduler walkthrough is at /tutorials/scheduler.
Ready to try it on your own Instagram?
Free Starter plan · 1,000 DMs/month · No credit card · Setup in 60 seconds.
Get started — free