How to schedule Mastodon posts on any instance
How to schedule Mastodon posts on any instance
Mastodon is the odd one out among text networks: it can schedule posts natively. The feature lives in the server API, so a scheduled post sits on your instance and publishes even if your laptop is closed. The catch is that the standard web interface still does not show you a schedule button, so most people assume the feature does not exist.
This guide covers three ways to schedule Mastodon posts in 2026, all of which work on any instance: a client app that exposes the built-in scheduler, a multi-network scheduling tool connected via OAuth, and a direct API call if you like scripts. It also covers the Mastodon-specific habits (alt text, content warnings, instance limits) that decide whether your scheduled posts are welcomed or muted.
Mastodon facts that affect scheduling
- 500 characters by default, but your instance decides. Many instances keep 500. Some raise it substantially. Check your instance's About page or ask an admin before assuming.
- Up to 4 attachments per post. Images, or a single video or audio file, depending on the instance's media settings.
- Alt text and content warnings matter. The Mastodon community expects image descriptions and uses content warnings (CW) for spoilers, politics, food, eye contact, and more depending on the instance's culture. Scheduled posts that ignore this get muted fast.
- Any instance works with OAuth tools. Mastodon's API is standard across instances. A tool asks for your instance domain, sends you there to log in, and gets a token. No password is shared.
- Scheduling is server-side. When you schedule through the API, the instance stores the post and publishes it. This is different from most other networks, where the tool has to hold the post and push it at the right moment.
Method 1: Use a client app that exposes scheduled posts
Several third-party Mastodon apps on phone and desktop surface the API's scheduling feature. Because the schedule is stored on your instance, you can close the app after scheduling.
Steps
- Install a Mastodon client and log in to your instance.
- Start a new post. Look for a clock icon or "Schedule" option in the compose screen. If the app does not have it, try another; the feature list on the app's site usually says.
- Write the post, add images with alt text, set a content warning if appropriate, and choose visibility (public, unlisted, followers-only).
- Set the date and time. The API requires the time to be at least a few minutes in the future.
- Confirm. The post now lives on your server. Some clients show a "Scheduled" list where you can edit or delete it.
Who this fits: people who post to Mastodon only and want zero extra accounts.
Where it breaks: no cross-posting, no calendar view of your week, and the editing experience for scheduled posts varies by client.
Method 2: Use a multi-network scheduler via OAuth
If Mastodon is one of several places you post, a scheduler that supports it saves you from writing the same thing four times. The connection uses OAuth: you enter your instance domain, log in on your own instance, approve the app, and come back.
What to check before choosing
- Can you enter any instance domain, or only a hardcoded list? Avoid tools that only support
mastodon.social. - Does it respect your instance's character limit, or does it hardcode 500?
- Does it support alt text and content warnings in the composer?
- Can it post multi-part threads as a reply chain?
- Does it handle failures usefully, showing the instance's error message rather than a generic one?
Pricing as of October 2026 (verify on the vendor's site):
- Postfree: free plan with 3 channels and 15 posts a month, no credit card; 7-day free trial on paid plans (card required, $0 today); Starter $19 per month ($15 yearly) for 5 channels and unlimited posts; Growth $29 ($24 yearly) adds 15 channels, 3 team members and approvals.
- Buffer: free for 3 channels, then roughly $5 to $6 per channel.
- Publer: around $4 to $5 per account.
- Later: from $18.75 per month.
- Postiz: from $29 per month.
- Hootsuite: from $99 per user.
Steps (Postfree as the example; other tools are similar)
- Sign up and open "Connect a channel".
- Choose Mastodon and type your instance, for example
fosstodon.orgormastodon.social. - You are redirected to your instance to log in and approve the app. Read the permissions; a scheduler needs to write posts and upload media, nothing more.
- Back in the scheduler, write your post. Keep the count under your instance's limit (500 by default). Attach up to 4 images with alt text. Add a content warning if the topic calls for one.
- If you are cross-posting from X or Bluesky, this is where you restore full sentences and remove hashtag blocks.
- Set the date and time and schedule. Send one test post first.
Postfree's scheduler runs every minute, retries transient errors 3 times and shows the instance's error if a post fails for good. Other tools differ, so check how each one tells you about a failed post before you rely on it.
Who this fits: anyone posting to Mastodon plus Bluesky, Threads, X, LinkedIn or others.
Where it breaks: if Mastodon is your only network, a client app (Method 1) is simpler.
Method 3: Call the API directly (free, for people who script)
Mastodon's API lets you create a scheduled post with a single HTTP request. Because the server does the scheduling, you do not need a cron job at all: send the request once and the instance handles the rest.
Steps
- On your instance, go to Preferences → Development → New application. Give it a name, grant it write permissions, and save.
- Copy the access token the instance shows you. Treat it like a password.
- Send a
POSTrequest tohttps://YOUR-INSTANCE/api/v1/statuseswith anAuthorization: Bearer YOUR-TOKENheader and these form fields:status: your textscheduled_at: an ISO 8601 timestamp a few minutes or more in the futurevisibility:public,unlisted,privateordirectspoiler_text: the content warning, if anymedia_ids[]: IDs of media you uploaded first via/api/v1/media, each with adescriptionfor alt text
- The response describes the scheduled post. You can list, edit or cancel scheduled posts via
/api/v1/scheduled_statuses.
Things to watch:
- The timestamp must be in the future by at least a few minutes, or the post publishes immediately.
- Your token works only on the instance that issued it.
- Instance admins can see which app created a post, so name your application sensibly.
Who this fits: developers, people automating posts from a blog or CMS.
Where it breaks: no preview, no calendar, and typos in a timestamp are easy to make.
Mastodon etiquette for scheduled posts
Mastodon users notice automated posting, and they notice when it is done badly. A few habits keep you on the right side of that.
- Describe every image. Alt text is not optional culturally, even if it is optional technically.
- Use content warnings as your instance does. Scroll your local timeline for a week and copy the norms.
- Write hashtags in CamelCase (
#SocialMedia, not#socialmedia) so screen readers pronounce them properly. - Do not forward X posts unchanged. "RT this" and links to X do not land well. Rewrite for the room.
- Consider "unlisted" for high volume. If you schedule many posts per day, unlisted keeps them off the public timelines while still reaching your followers.
- Show up for replies. Scheduling handles the posting. Conversation is still manual.
When to post
Your followers are spread across instances and time zones, so generic best-time charts are weak evidence. Schedule the same type of post into three different slots over two weeks, compare boosts and replies, and keep what works. Published tables such as the best-time tables in Postfree's free tools are a hypothesis to test, not a rule.
Troubleshooting
"Record invalid" or a 422 error. Usually the text is over the instance's limit, or a media file is too large for the instance's settings. Trim or compress.
OAuth loop or "unknown instance". Check the domain. It must be the instance's actual domain with no https:// and no @handle.
Scheduled post published immediately. The scheduled_at time was too close to now, or in the past, or in the wrong time zone. Use an explicit UTC offset.
Token stopped working. You revoked the app under Preferences → Account → Authorized apps, or the instance rotated it. Reconnect.
FAQ
Does Mastodon have a built-in scheduler?
Yes, in the API. The standard web interface does not expose it, but many client apps and scheduling tools do. The scheduled post is stored on your instance and publishes even if your device is off.
Can I schedule posts on any Mastodon instance?
Yes. Mastodon's API is the same across instances, so any tool that uses OAuth can connect to any instance. Enter your instance domain when connecting. Instance-specific rules, like character limits and media sizes, still apply.
Will my scheduled post publish if my phone is off?
If you scheduled through the Mastodon API (a client app or a direct API call), yes, because the server holds it. If you used a third-party scheduler, the tool's servers push the post at the set time, so your phone does not matter either way.
Can I schedule a thread on Mastodon?
Yes, with a tool that supports multi-part threads. Each part has its own character limit (500 by default). Postfree, among others, publishes the parts as replies to each other at the scheduled time.
Try it
If you only use Mastodon, start with a client that exposes scheduling. If you post across several networks, pick a scheduler that accepts any instance domain and send a test post. Postfree works with any instance; sign up for the free plan at https://postfree.app/signup (no credit card).
Schedule everything from one calendar
Postfree publishes to YouTube, TikTok, Instagram, X, LinkedIn, Threads, Bluesky, Mastodon and more, or let your AI assistant post for you through the included API and MCP server. Free plan, no credit card.