How to schedule LinkedIn, X, and Bluesky posts: native schedulers, limits, and cross-posting

Step-by-step instructions for LinkedIn's native post scheduler, scheduling tweets on X, and scheduling Bluesky posts without a built-in tool, plus how to cross-post and add AI drafting with approval.

SocialHandoff team Updated 13 min read

TL;DR

  • LinkedIn has a native scheduler on desktop and mobile. Click the clock icon in the post composer and pick a time between 10 minutes and 3 months out. Events, jobs, and services posts can't be scheduled.
  • X lets you schedule from the web composer with the calendar icon, and is rolling scheduling out on mobile. X Pro (formerly TweetDeck) also schedules, but it now requires a paid Premium tier.
  • Bluesky has no native scheduler as of September 2026. You need a third-party tool that connects to your account.
  • Each network counts length differently: X allows 280 weighted characters on free accounts, LinkedIn allows 3,000 characters, Bluesky allows 300 graphemes, and Mastodon allows 500 characters on most servers.
  • To post the same idea everywhere, use one cross-posting scheduler and check length for each network before you queue.
  • If an AI agent writes your drafts, route them through an approval step so a person signs off before anything publishes. That is what SocialHandoff does.

Why scheduling on 3 networks is harder than it looks

Scheduling one post on one network takes a minute. Scheduling the same announcement on LinkedIn, X, and Bluesky every week takes longer than it should, for 3 reasons.

First, the native tools are uneven. LinkedIn and X each have a built-in scheduler, and Bluesky has none. Second, the limits differ. A 900-character LinkedIn post has to become a 280-character X post and a 300-grapheme Bluesky post, or a thread on both. Third, each native scheduler lives in its own app, so there is no single calendar showing what goes out when.

This guide covers each network's native option first, because it is free and often enough. Then it covers cross-posting with one tool, and finally how to let an AI agent draft posts for all 3 while you keep final approval.

Network limits at a glance

Before you schedule anything, know what each network accepts. Our cross-post length checker tests one draft against all of them at once.

LinkedInXBlueskyMastodon
Post length3,000 characters280 weighted characters (free accounts); longer with Premium300 graphemes500 characters on most servers (admins can change it)
How length is countedCharactersWeighted: most emoji and CJK characters count as 2; every link counts as 23Graphemes, so an emoji counts as 1Characters; links count as 23
Text shown before "see more"Roughly the first 200 characters on desktop, less on mobileFull post up to the limitFull postFull post
ThreadsNo native threadsYes, reply chainsYes, reply chainsYes, reply chains
Native schedulerYes, desktop and mobileYes, web composer; mobile rolling outNoYes, in the API; some apps expose it
ImagesYesUp to 4 per postUp to 4 per postUp to 4 attachments

Two numbers cause most mistakes. X counts every URL as 23 characters no matter how long it is, so a short post with 2 links loses 46 characters. And Bluesky counts graphemes, which means what you see on screen, so a family emoji built from several code points counts as 1 on Bluesky but more elsewhere. The X character counter and the Bluesky character counter apply each network's rules.

How to schedule posts on LinkedIn

LinkedIn's native scheduler works for personal profiles and Company Pages, on desktop and in the mobile app.

Schedule a LinkedIn post on desktop

  1. On your LinkedIn homepage, click Start a post.
  2. Write your post and add any image or document.
  3. Click the clock icon in the composer.
  4. Pick a date and time. You can choose 30-minute increments or type an exact time. It must be between 10 minutes and 3 months from now.
  5. Click Next to see a preview.
  6. Click Schedule.

Schedule a LinkedIn post on mobile

  1. Tap Post in the navigation bar.
  2. Write your post.
  3. Tap the clock icon at the top of the composer.
  4. Pick the date and time, tap Next, then tap Schedule.

Manage scheduled LinkedIn posts

Click the clock icon again and choose View all scheduled posts. From there you can edit, reschedule, or delete. LinkedIn converts the time using your device's time zone, so check it if you travel or work across zones.

LinkedIn scheduler limits

  • The window is 10 minutes to 3 months ahead.
  • Events, jobs, and services posts cannot be scheduled.
  • There is no bulk scheduling. Each post is scheduled one at a time.
  • There is no cross-posting. A scheduled LinkedIn post goes only to LinkedIn.

Tip: LinkedIn cuts the post after roughly the first 2 lines in the feed. Put the point of the post up top, and check the fold with our LinkedIn post preview before you schedule. The LinkedIn scheduling guide covers formatting, image sizes, and timing in more detail.

How to schedule tweets and posts on X

X calls them posts now, but most people still search for how to schedule tweets. You have 2 native options.

Schedule a post in the X web composer

  1. Go to x.com on a desktop browser and open the composer.
  2. Write your post and attach media.
  3. Click the calendar icon at the bottom of the compose box.
  4. Choose the date, time, and time zone, then click Confirm.
  5. Click Schedule.

To see or edit scheduled posts, open the composer, choose Drafts or Unsent posts, and switch to the Scheduled tab. X has been rolling scheduling out to its mobile apps as well, so check your composer for the calendar icon. If it is not there yet, use x.com in your phone's browser.

Schedule with X Pro (formerly TweetDeck)

X Pro is the column-based dashboard that used to be TweetDeck. It supports scheduling and managing several accounts side by side. X Pro has required a paid subscription since 2023, and in March 2026 X moved it to the Premium+ tier. If you already pay for that tier, X Pro is a reasonable native option. If not, the free web composer or a third-party scheduler is cheaper.

X scheduling limits

  • Free accounts get 280 weighted characters. Premium accounts can post much longer text, but most readers see a truncated preview in the feed.
  • Links always count as 23 characters.
  • Threads are best written in a tool that previews each post in the chain. Our thread splitter breaks long text at sentence boundaries so no post exceeds the limit.

More on formats, media, and timing is in the X scheduling guide.

How to schedule posts on Bluesky

As of September 2026, Bluesky has no built-in scheduler. The official app publishes in real time only. Scheduling has been a long-standing feature request, but until it ships, the only way to queue a Bluesky post is a third-party tool connected to your account.

What a Bluesky scheduler needs

Bluesky is built on the AT Protocol, which is open, so many tools can post to it. When you pick a Bluesky scheduler, check 4 things:

  1. App passwords or OAuth. Never give a tool your main password. Create an app password in Bluesky's settings (Settings, then Privacy and security, then App passwords) or use the tool's sign-in flow, so you can revoke access later.
  2. Grapheme counting. The tool should count 300 graphemes, not 300 bytes or characters, or it will reject posts that would have fit.
  3. Rich text. Links, mentions, and hashtags on Bluesky are "facets" that the posting tool must mark up. Without them, a link shows as plain text and is not clickable.
  4. Threads and images. Bluesky allows threads and up to 4 images per post, each up to about 1 MB. Check that the tool handles both, and that it lets you add alt text.

Schedule a Bluesky post with a third-party tool

The steps are similar in most tools:

  1. Connect your Bluesky handle with an app password or OAuth.
  2. Write the post, or paste it and let the tool split it into a thread.
  3. Add images with alt text.
  4. Pick a time and schedule.
  5. Check the tool's queue or calendar to confirm.

The Bluesky scheduling guide covers handle setup, custom domains, and what posts tend to do well there.

A note on Mastodon

If your audience is split between Bluesky and the fediverse, add Mastodon to the plan. Mastodon itself supports scheduled posts through its API, and several Mastodon apps and web clients expose that option in the composer. The default limit is 500 characters, but each server's admins can raise it, so check your own server before you write to the edge.

Two details trip people up. Links count as 23 characters no matter their length, like on X. And content warnings are a norm on many servers for certain topics, so a post that works on LinkedIn may need a warning on Mastodon. The Mastodon scheduling guide covers instance choice, hashtags, and threads.

How to cross-post to LinkedIn, X, and Bluesky with one tool

Once you post to more than one network regularly, native schedulers become a chore. A cross-posting scheduler gives you one composer, one calendar, and one queue.

The cross-posting workflow

  1. Write the long version first. Start with the LinkedIn post, since it has the most room. Put the core claim in the first 2 lines.
  2. Cut a short version for X and Bluesky. Keep the claim and the link. Drop the setup. If it still does not fit, split it into a short thread.
  3. Check every version against its limit. Paste your drafts into the cross-post length checker to see which network each one fails on.
  4. Adjust links and mentions. Handles differ across networks. A mention of a LinkedIn company page means nothing on Bluesky.
  5. Schedule with sensible spacing. Posting the identical text at the identical minute on all 3 networks looks automated. Stagger by an hour or more, or vary the opening line.
  6. Add alt text to every image. It helps readers who use screen readers, and every network here supports it.

What to look for in a cross-posting scheduler

  • Separate text per network in the same post, not one text forced everywhere.
  • Correct length counting for each network: weighted characters for X, graphemes for Bluesky.
  • Native threads on X, Bluesky, and Mastodon.
  • A calendar view across all accounts.
  • Retry on failure and a clear error when a network rejects a post.

A worked example helps. Our feature announcement template shows the same launch written for LinkedIn, X, and Bluesky, with each version inside its limit.

How to schedule with an AI agent and human approval

The third option is the newest. Instead of writing each version yourself, you ask an AI agent to draft them. The agent might be Claude Desktop, ChatGPT, Cursor, or a workflow in n8n. It reads your notes or release, writes a LinkedIn post, an X post, and a Bluesky post, and queues all 3.

The risk is obvious: a model can get facts wrong, post to the wrong account, or publish at the wrong moment. So the useful version of this workflow has a person approve every post before it goes out, at least at first.

How it works in SocialHandoff

SocialHandoff is the approval layer between AI agents and social accounts. The agent drafts; a person approves; then it publishes.

  1. Connect your accounts. Link LinkedIn, X, and Bluesky, plus Mastodon, Threads, Instagram, Facebook Pages, or TikTok if you use them.
  2. Connect your agent. Add the MCP server to your agent, or call the REST API from a script. Each agent gets its own key, scoped to the networks and permissions you choose, such as draft only.
  3. Ask for drafts. For example: "Draft a LinkedIn post, an X post, and a Bluesky post about today's release. Keep X under 280 characters and Bluesky under 300." The agent submits one draft per network.
  4. Let guardrails check them. Before a draft reaches you, SocialHandoff checks per-network length, missing alt text, banned topics, and daily limits. X is counted with the weighted 280-character rule, and Bluesky with 300 graphemes.
  5. Approve from the inbox. Open the approval inbox on desktop or swipe through it on your phone. Approve, reject, request edits, or edit inline. You can preview each post as it will appear with a dry run.
  6. It publishes on schedule. Approved posts go out at their scheduled time. X and Bluesky threads post as reply chains. On LinkedIn, a thread is joined into one post. Publish-now has a 60-second undo window.

An agent can never approve its own draft. If you want to move faster later, the trust ladder lets you promote an agent to auto-publish on specific networks after a run of clean approvals, and a guardrail failure demotes it right away. A kill switch pauses every agent and holds queued posts if something looks wrong. The approving posts guide walks through the inbox.

When the agent workflow makes sense

  • You post the same kind of update often: releases, changelogs, weekly roundups.
  • The source material already exists in text: release notes, a blog post, a newsletter.
  • You want a record of what was posted and why. SocialHandoff keeps an append-only audit log, with a citation such as the GitHub release a draft came from.

If you post twice a month and enjoy writing each post by hand, the native schedulers are enough. If you want to compare tools that add AI in different ways, read our roundup of AI social media management tools.

Scheduling Instagram, Facebook, and TikTok with SocialHandoff

The same approval workflow covers Instagram, Facebook, and TikTok. Their rules are stricter than on text-first networks, so check that each draft fits before you approve it.

  • Instagram works with professional (Business or Creator) accounts only, and every post needs media: a JPEG image, a Reel, or a carousel of up to 10 items. Captions allow 2,200 characters and 30 hashtags, and a thread is joined into one caption. See the Instagram scheduling guide.
  • Facebook publishes to Pages, not personal profiles. Each Page you grant at sign-in connects as its own channel, and a post can be text with a link, up to 10 photos, or one video. See the Facebook scheduling guide.
  • TikTok needs a video or up to 35 photos in every post. You pick visibility, comments, duet, stitch, and commercial content disclosure per account, and TikTok's consent text is shown when you approve. See the TikTok scheduling guide.

One setup step matters more here than on other networks. Instagram, Facebook, and TikTok need your own developer app, and Meta and TikTok review that app before it can post for accounts beyond its testers. Until TikTok audits the app, TikTok posts are private-only, so plan the review before a launch date depends on it.

When to schedule each network

Every network publishes "best time to post" advice, and most of it is averages across millions of unrelated accounts. Treat it as a starting point, not a rule. A better approach:

  1. Pick 2 or 3 time slots per network based on when your own audience is working or commuting.
  2. Post in each slot for 3 or 4 weeks.
  3. Compare impressions and replies per post, not totals.
  4. Keep the slots that win and drop the rest.

In general, LinkedIn is a weekday network tied to work hours, while X and Bluesky are read throughout the day and react to news. If you post about a release or event, time matters less than posting while the news is fresh.

Common scheduling mistakes

  • Wrong time zone. LinkedIn uses your device's zone. Third-party tools often use a workspace setting. Check both.
  • One text everywhere. A LinkedIn post pasted into X gets cut or rejected. Write a version per network.
  • Unclickable links on Bluesky. If your tool does not add link facets, links render as plain text.
  • No alt text. Add it when you attach the image, not later.
  • Scheduling too far ahead. LinkedIn stops at 3 months. News-sensitive posts can age badly in a long queue, so review the queue weekly.
  • No review step for AI drafts. Treat a model's draft like a new teammate's: read it before it goes live.

Which method should you use

SituationBest option
A few LinkedIn posts a monthLinkedIn's native scheduler
X only, occasional postsX web composer scheduling
Many X accounts, already on Premium+X Pro
Any Bluesky schedulingA third-party scheduler
LinkedIn, X, and Bluesky every weekOne cross-posting scheduler
An AI agent drafts for several networksAn agent tool with human approval, such as SocialHandoff

Start with the native tools. Move to a cross-posting scheduler when switching apps gets tedious. Add an agent when drafting becomes the bottleneck, and keep approval on until you trust the output.

Frequently asked questions

How do I schedule a post on LinkedIn?
Start a post, write it, then click the clock icon in the composer. Pick a date and time between 10 minutes and 3 months from now, click Next, and click Schedule. It works on desktop and in the mobile app.
Can you schedule tweets for free?
Yes. The X web composer has a calendar icon that schedules a post for a future time at no cost. X Pro, the successor to TweetDeck, also schedules but requires a paid Premium tier.
Can you schedule posts on Bluesky?
Not in the official app. As of September 2026, Bluesky has no native scheduler, so you need a third-party tool connected with an app password or OAuth. Choose one that counts 300 graphemes and makes links clickable.
What is the character limit on LinkedIn, X, and Bluesky?
LinkedIn posts allow 3,000 characters. X allows 280 weighted characters on free accounts, where links count as 23 and most emoji count as 2. Bluesky allows 300 graphemes per post.
Can I schedule LinkedIn Company Page posts?
Yes. The native scheduler works for Company Pages as well as personal profiles. Events, jobs, and services posts cannot be scheduled natively.
What is the easiest way to post to LinkedIn, X, and Bluesky at once?
Use one cross-posting scheduler with separate text per network. Write the long LinkedIn version first, cut a short version for X and Bluesky, check each against its limit, and schedule them from one calendar.
Can an AI agent schedule my social posts?
Yes, if your scheduler accepts agent connections through MCP or an API. With SocialHandoff, the agent drafts each post, guardrails check length and alt text, and a person approves in an inbox before anything publishes.

Let your agents post. Keep the final say.

Connect your first agent in minutes. Every draft waits in your inbox until you approve it.

14 days free. No card required.

The hosted version is opening soon

Leave your email and we will send one message when hosted accounts open, with your 14-day trial ready. Want it today? Self-host it free from the repo.

Start free trial