# Schedule, publish now, or save a draft

Every post starts as a draft and saves as you go. Pick a date and press Schedule All, or leave the date empty and press Publish All. Here's what each button does, what happens next, and why a post can refuse to schedule.

Last checked: Oct 8, 2026 on the live app. Source: https://heropost.ai/docs/posting/schedule-publish-draft/

## How it works

A post is always in one of these states:

| Status | What it means | Where you find it |
|---|---|---|
| **Draft** | Saved, but not going anywhere. A draft is never published, even if its date passes. | **Content → Drafts**, the post editor's list, the [Feed](/docs/calendar/feed/) |
| **Pending Approval** | An Editor sent it for review. It waits for an owner or Admin. | **Content → Drafts**, the Feed, **Team → My Approvals** |
| **Scheduled** | It goes out by itself at its date and time. | The calendar (blue), the post editor's list, the Feed |
| **In progress** | It's being sent to the networks right now. | The post editor's list, the calendar |
| **Published** | Done. The button reads, for example, **Published 3/4**: three of four accounts published. | The calendar (green, or red if an account failed), the Feed |

Which button you see decides what happens:

- **The Schedule field is empty:** the button is **Publish All**, and the post goes out now.
- **The Schedule field has a date:** the button is **Schedule All**, and the post goes out then.
- **Your role is Editor:** the button is **Submit for Approval**.

## Save a draft

You don't need to do anything: the editor saves as you type ("Saving changes", then "Changes saved"). Leave the post whenever you like.

- Find drafts under **Content → Drafts**: search by title with **Search drafts...**, and press **Load more** for older ones. They're also in the post editor's list under **Drafts**, and in the Feed.
- Drafts aren't shown on the calendar, even with a date.
- Posts written by Hero_Agent are drafts too, until you approve their schedule.

**A date alone doesn't schedule a post.** Until you press **Schedule All**, it's a draft and won't be published, even after its date has passed.
## Schedule a post

1. At the top of the post, click **Schedule**.
2. Pick a day. Past days are grayed out; **Today** jumps to today.
3. Set the time, then press **Done**.
4. Press **Schedule All** at the bottom right.

[Screenshot: The date picker with Today, the month, the day grid, the time and Done]

- **The time must be at least 2 minutes from now.** Earlier times are grayed out, and a time typed by hand that's too early shows "Min value" with the earliest time allowed.
- **Times are in the workspace's time zone,** whatever your computer is set to. The picker doesn't show the zone. Check or change it in the workspace settings: see [Workspaces](/docs/social-accounts/workspaces/).
- **12- or 24-hour clock** and the first day of the week follow your browser's language settings.
- **The × in the Schedule field clears the date.** The button turns back into **Publish All**.

[Screenshot: The bottom of the editor with Changes saved and the Schedule All button]

Once scheduled, the post is locked and the button reads **Edit**. No message pops up. The post appears on the calendar with a blue stripe and, if it's due within 7 days, under its day in the post editor's list. To change it later, see [Edit, reschedule or delete a post](/docs/posting/edit-or-delete/).

Your computer doesn't need to be on: Heropost publishes the post at its time.

## Publish now

1. Leave the **Schedule** field empty, or clear it with **×**.
2. Press **Publish All**.
3. A 5-second countdown starts: **5s Cancel Posting**. Press it to stop. When it reaches zero, the post is sent.

[Screenshot: The bottom of the editor counting down, with the 3s Cancel Posting button]

- **Stay on the post during the countdown.** If you open another post, it's sent at once.
- The button changes to **Posting in progress...**, then to **Published** with the count of accounts.
- **From the calendar** (owners and Admins): open the **⋮** menu on a scheduled post and choose **Publish now**. Confirm **Post now?** "This post will be published now. Proceed?" with **Post**.

## Send to one network only

With a network's tab open, a small square button with that network's icon sits next to the main button. Its tooltip reads, for example, "Schedule to Instagram only" or "Publish to Instagram only".

[Screenshot: The small network button next to Schedule All, with its Schedule to Instagram only tooltip]

It schedules or publishes that network only, and switches the post's other networks off. To send the same content to the other networks at another time, make a copy first with **⋮ → Duplicate**, and use the copy for them.

## Send it for approval (Editors)

Editors see **Submit for Approval** instead of the schedule and publish buttons. An owner or Admin approves it: if it has a date and time, it's then scheduled; if not, it goes back to Draft for scheduling. While it waits, the editor shows "This post is pending approval. Editing will withdraw it from review." See [Approvals](/docs/team/approvals/).

## After it goes out

- **In the post editor,** open the arrow at the end of the account row. Accounts that published have an eye icon that opens the live post. Accounts that failed have a red icon: hover over it for the reason.
- **The workspace owner** gets a notification in the bell at the top: **New posts published**, **Some of your posts failed** or **Post publishing failed**.
- **Failed posts** are listed under **Content → Posting Errors**. Heropost doesn't send them again by itself: fix the cause, then use **⋮ → Duplicate Failed**. See [The Posting Errors page](/docs/troubleshooting/posting-errors/).
- **Posting to X** uses one X credit per X account. See [X credits](/docs/billing/x-credits/).

## If it doesn't work

| What you see | What it means | What to do |
|---|---|---|
| **Schedule All** or **Publish All** is grayed out, with "Please select accounts for {Network}" | A network is on for this post, but none of its accounts is selected. | Select an account on that tab, or switch the network off with the gear ⚙ (**Posting Settings**). |
| Grayed out, with "{Network} post incomplete." and a reason | That network is missing something, such as media for Instagram or a title for YouTube. | Open the tab with the red dot and fix the field in red. |
| "Scheduled date cannot be before {date}." | The date and time have passed, or are less than 2 minutes away. The date isn't saved. | Pick a later time. |
| "It is impossible to set this time: {date}, because it does not meet the requirement: the time must be more than the current one (UTC + 0) by 10 seconds and the number of seconds must be 0." | The time passed while you were editing. | Pick a later time and press **Schedule All** again. |
| "Unable to post because {Network} requires…" or "…does not support…" | The same network rules, checked again when you schedule or publish. | Fix that network's tab. Every message: [Every error message, explained](/docs/troubleshooting/error-index/#scheduling-and-publishing). |
| "Post {id} is pending approval. It must be approved or rejected in Team > Approvals before it can be scheduled or published." | The post is waiting for approval. | Approve it in **Team → My Approvals**, or ask someone who can. |
| "Post {id} cannot be published because it has no active selected social networks to publish." | Every network is off for this post. | Switch one on in **Posting Settings** and select its accounts. |
| "Post {id} cannot be published because one or more of the selected social networks do not have active accounts." | A network that's on has no account selected, for example because its only account was removed from the workspace. | Select an account on that network's tab, or switch the network off. |
| "Post {id} cannot be published because it is in the process of publishing or has already been published." | It's already going out, or went out. | Reload the page. To post it again, use **⋮ → Duplicate**. |
| "Looks like you've reached the limit of your plan. Please upgrade your account to access for features." or **Time to Level up!** when you schedule | Your plan's monthly post limit is reached. | Check your plan: click your name at the bottom of the left menu, then **Billing**. Or [upgrade](/docs/billing/upgrade-or-change/). |
| "Your account doesn't have an active plan. Please upgrade to use this feature." | The workspace owner has no active plan. | Pick a plan: click your name at the bottom of the left menu, then **Billing**. In someone else's workspace, ask the owner. |
| You see **Submit for Approval** instead of **Schedule All** | Your role in this workspace is Editor. | Submit it, or ask the owner for the Admin role. |
| The post had a date but never went out | It was still a draft. | Open it from **Content → Drafts**, set a future date, and press **Schedule All**. See [A post didn't publish](/docs/troubleshooting/post-didnt-publish/). |

## Questions

**Which time zone does Heropost use?**

The workspace's. Every date in the editor and on the calendar is in that time zone. Your first workspace takes your browser's time zone when it's created. See [Workspaces](/docs/social-accounts/workspaces/).


**Can each network get a different time?**

No: a post has one date and time. Make a copy with **⋮ → Duplicate** for each time you need, and keep one network on each copy.


**Can I post the same thing every week?**

Yes, with **⋮ → Repost Settings**. See [Repeat a post](/docs/posting/repeat-posts/).


**Can I schedule lots of posts at once?**

Yes. Import them from a spreadsheet with [Bulk upload](/docs/posting/bulk-upload/), then schedule each draft. Or ask Hero_Agent to plan and schedule a batch: see [Let Hero_Agent plan your first week](/docs/getting-started/first-week-with-hero-agent/).


**Does Heropost suggest the best time?**

The date picker doesn't. Hero_Agent can show when your posts do best, from your own results: see [Best times to post](/docs/posting/best-times/).
