Skip to content

How to schedule Bluesky posts (and cross-post to Threads and Mastodon)

Bluesky has no built-in scheduling. Here's how to schedule Bluesky posts and threads with an app password, and how to cross-post to Threads, Mastodon and X without sounding copy-pasted.

ByThe Postoni team

Published 5 min read

Contents(7)

Bluesky has grown from an invite-only experiment into one of the main places people talk online, especially journalists, researchers, developers and creators who left X. If you post there regularly, you have probably noticed that the official app has no way to schedule a post.

This guide explains your options, how connecting with an app password works, how to schedule single posts and threads step by step, and how to cross-post the same idea to Threads, Mastodon and X so it reads naturally on each.

Key takeaways

  • The official Bluesky app doesn't support scheduling. You need a third-party scheduler.
  • Schedulers connect with an app password, a separate password you can revoke at any time without changing your main one.
  • Bluesky allows 300 characters per post. Threads and Mastodon allow 500, and X allows 280.
  • When cross-posting, adapt the opening line and links per network rather than pasting identical text.

Does Bluesky have scheduling?

Not in the official app, on web or mobile, at the time of writing. Bluesky's team has prioritised moderation, custom feeds and the underlying AT Protocol, and scheduling has not shipped.

Because Bluesky is built on an open protocol, though, any tool can publish on your behalf once you've authorised it. That's how third-party schedulers work: they store your post and publish it through the AT Protocol at the time you choose.

App password vs OAuth

Most networks use OAuth: you click "Connect", log in on the network's own page, and approve access. Bluesky is moving towards OAuth, but the most widely supported method today is the app password.

An app password is a randomly generated password that works for third-party apps but not for logging in to your account settings. You create one per tool, and if you stop using a tool, you delete its app password and access ends immediately. Your main password never leaves your hands.

To create one in the Bluesky app:

  1. Open Settings.
  2. Go to Privacy and security, then App passwords.
  3. Tap Add app password, give it a name you'll recognise (for example "Postoni"), and create it.
  4. Copy the password straight away. Bluesky shows it only once.

Step by step: scheduling a Bluesky post

  1. Connect Bluesky

    In Postoni, go to Channels, choose Bluesky, and enter your handle (for example yourname.bsky.social or your custom domain) and the app password you just created.

  2. Write the post

    Open the composer, select your Bluesky channel and write your post. The composer counts characters the way Bluesky does, in graphemes, so an emoji counts as one.

  3. Add media or a link

    You can attach up to four images, or a video, with alt text. If you include a link, Bluesky generates a link card. The URL still counts towards your 300 characters.

  4. Pick a time

    Schedule it in your audience's local time. Bluesky skews towards weekday working hours; our best time to post guide has a heatmap for Bluesky and Threads.

  5. Schedule and check the calendar

    The post appears on your calendar and publishes automatically. You can edit or move it any time before it goes out.

Threads on Bluesky

On Bluesky, a "thread" is a chain of replies to your own post. It's the standard way to say more than 300 characters allows. In Postoni, you can add follow-up parts to a post, and they publish as replies in order, so the whole thread goes out together at the scheduled time.

A few tips for threads that people read to the end:

  • Make the first post stand alone. Many people only see the first post in their feed. It should make sense, and make them want more, without the rest.
  • One idea per post. If a post needs a "continued" marker, it's probably doing too much.
  • Number long threads, such as 1/6, so readers know what they're signing up for.
  • Put the link at the end, in the last post, so the link card doesn't interrupt the flow.

Cross-posting without sounding copy-pasted

Bluesky, Threads, Mastodon and X look similar, but their audiences and norms differ. Pasting the same text everywhere works, but it's noticeable, and it misses easy wins. Edit the draft below to see how it looks and fits on each network. Text beyond a network's limit is highlighted.

Postoni

@postoni · now

We moved our whole social calendar to one place this month. The surprise wasn't the time saved. It was finally seeing every channel side by side and noticing which ones we'd been neglecting. Here's what we changed and what we'd do differently next time.

253/300

Bluesky

Postoni

@postoni · now

We moved our whole social calendar to one place this month. The surprise wasn't the time saved. It was finally seeing every channel side by side and noticing which ones we'd been neglecting. Here's what we changed and what we'd do differently next time.

253/500

Threads

Postoni

@postoni · now

We moved our whole social calendar to one place this month. The surprise wasn't the time saved. It was finally seeing every channel side by side and noticing which ones we'd been neglecting. Here's what we changed and what we'd do differently next time.

253/500

Mastodon

Postoni

@postoni · now

We moved our whole social calendar to one place this month. The surprise wasn't the time saved. It was finally seeing every channel side by side and noticing which ones we'd been neglecting. Here's what we changed and what we'd do differently next time.

253/280

X (Twitter)

Some practical differences to adapt for:

  • Length. Write the core message for 280 characters so it fits X. Use the extra room on Threads and Mastodon (500) for context, and trim for Bluesky (300).
  • Links. Mastodon and X count every link as 23 characters, regardless of length. Bluesky and Threads count the full URL, so use short links or move them to a reply there.
  • Hashtags. Mastodon relies on hashtags for discovery, because there is no algorithmic feed, so add two or three. On Bluesky, hashtags work but feeds and replies matter more. Threads allows a single topic tag.
  • Tone. Bluesky and Mastodon audiences tend to dislike obvious marketing language. Lead with something useful or interesting rather than a pitch.
  • Content warnings. Mastodon culture uses content warnings for sensitive topics, and Bluesky has self-labels. Use them when appropriate.

In Postoni, you can write a global version of a post and then customise it per channel, so each network gets its own wording from the same draft. If you write with an AI assistant, our MCP server lets Claude or ChatGPT create the per-network versions for you and schedule them as drafts for review.

Bluesky vs Threads vs Mastodon

BlueskyThreadsMastodon
Character limit300500500 (server default)
Links counted asFull URLFull URL23 characters
Images per post4204
FeedFollowing plus custom feedsAlgorithmic plus followingChronological, no algorithm
Owned byBluesky PBC, open AT ProtocolMetaDecentralised, many servers
Native schedulingNoYes, in the appYes, on some servers and apps
Connect a scheduler withApp passwordOAuth (Meta login)OAuth per server
Best forTech, media, research, creatorsBroad consumer audiencesOpen-source, privacy-minded communities

All three can be scheduled from Postoni alongside your other channels, along with other open networks like Nostr and Farcaster. If you're choosing a tool, our comparison of social media schedulers covers which ones support Bluesky and at what price. Before you schedule, you can check drafts with the free Bluesky character counter.

Frequently asked questions

Can you schedule posts on Bluesky?

Not in the official app. You can schedule Bluesky posts and threads with a third-party scheduler such as Postoni, which connects with an app password and publishes through the AT Protocol at the time you choose.

Is it safe to give a scheduler my Bluesky app password?

App passwords are designed for this. They can't change your account settings or main password, and you can revoke one at any time from Settings, then Privacy and security, then App passwords. Use a separate app password for each tool.

What happens if I have two-factor authentication on Bluesky?

App passwords are the way third-party tools connect when you have email two-factor authentication enabled. Your main password with 2FA is never shared with the scheduler.

Can I post the same content to Bluesky, Threads and Mastodon at once?

Yes. Most schedulers, including Postoni, let you select several channels for one post. It's worth customising the text per network, especially for length and links, so it reads naturally on each.

All articles