> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hiveku.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Scheduled Publishing

> Publish a CMS entry at a future date and time, with an automatic deploy so it actually reaches your live site

Scheduled publishing lets you write an entry now and have it go live later — a blog post that publishes Monday at 9:00 AM, a promotion that starts on the first of the month. At the scheduled time, Hiveku publishes the entry and (by default) deploys your site to production, so the entry doesn't just flip a status flag — it actually appears on your live site.

## Scheduling an Entry

<Steps>
  <Step title="Open the entry">
    In the [CMS panel](/cms/editing-content), open the entry you want to schedule. Save it first — scheduling targets the saved entry file.
  </Step>

  <Step title="Click Schedule">
    In the **Entry details** sidebar, a draft entry shows **Publish** and **Schedule** actions. Click **Schedule** to open the scheduling dialog.
  </Step>

  <Step title="Pick a time">
    Set the **Publish at** date and time. Times are entered in your local timezone (and stored as UTC). The picker defaults to tomorrow at 9:00 AM.
  </Step>

  <Step title="Choose what happens next">
    Under **Then**, pick the deploy behavior:

    * **Deploy to production when it publishes** (default) — the entry goes live on your site at the scheduled time
    * **Deploy to staging** — publishes the entry, then refreshes the staging site only
    * **Deploy to the dev preview** — publishes the entry, then refreshes the dev preview only
    * **Don't deploy — I'll deploy manually** — the entry is marked published but stays off the live site until your next deploy
  </Step>

  <Step title="Confirm">
    Click **Schedule**. The entry's status badge changes to **Scheduled**, and the sidebar shows when it publishes and which deploy will follow.
  </Step>
</Steps>

<Note>
  Manual publishing never deploys automatically — clicking **Publish** marks the entry live in your project files and the sidebar shows a "Published changes aren't live yet" notice with a one-click **Deploy** button. Scheduled publishing is the exception: because nobody is at the keyboard when it fires, it deploys for you unless you opt out.
</Note>

## What Happens at the Scheduled Time

1. The entry flips to published. Until then, the site's date gate keeps it hidden — a published entry with a future `publishAt` date never renders.
2. If you chose a deploy target, a deploy of that environment starts automatically.
3. If several entries in the same project are scheduled for the same window, they all publish and share **one** deploy — you won't get five back-to-back builds for five posts.

The schedule publishes the entry **as it was last saved**. Draft edits that you haven't published stay private; publish the draft first if you want those changes included.

## Managing a Scheduled Entry

A scheduled entry's sidebar offers three actions:

* **Publish now** — skip the wait and publish immediately
* **Edit schedule** — reopen the dialog to change the time or deploy target (it shows what's currently queued before you change anything)
* **Cancel schedule** — cancel the pending publish and clear the future publish date, returning the entry to a draft

## If a Scheduled Publish Fails

Failures are never silent. The scheduling dialog and the sidebar's schedule annotation both show the last error and the number of attempts (for example, a deploy that couldn't start). Two things worth knowing:

* A failed **deploy** does not unpublish the entry — the content change sticks, and you can deploy manually from the top bar.
* After several failed attempts, Hiveku stops retrying and leaves the error on screen rather than looping forever.

## Troubleshooting

<AccordionGroup>
  <Accordion title="The entry shows Scheduled but I never scheduled it">
    The **Scheduled** badge derives from the entry's `publishAt` field: a published entry with a future (or unparseable) `publishAt` value is hidden by the site's date gate, so the CMS reports it as Scheduled. Clear or fix the `publishAt` value to publish it plainly.
  </Accordion>

  <Accordion title="The time passed but nothing published">
    Check the sidebar's schedule annotation. If it reads "Date set on the entry only — no automatic publish is scheduled," the entry has a `publishAt` date but no schedule was created for it — dates written directly into the field (for example by hand in the code editor) gate visibility but don't publish on their own. Open **Schedule** and confirm to queue the real thing.
  </Accordion>

  <Accordion title="It published, but it's not on my live site">
    You likely picked **Don't deploy**, or the automatic deploy failed (the sidebar shows the error). Click **Deploy** in the top bar to push the current content live.
  </Accordion>

  <Accordion title="The Schedule button is disabled">
    New entries must be saved once before they can be scheduled — the schedule acts on the saved entry file.
  </Accordion>
</AccordionGroup>

## What's Next?

<CardGroup cols={2}>
  <Card title="Editing Content" icon="pencil" href="/cms/editing-content">
    The full CMS panel walkthrough — statuses, drafts, and publish actions
  </Card>

  <Card title="Collections" icon="layer-group" href="/cms/collections">
    Add `status` and `publishAt` fields to your own collections
  </Card>
</CardGroup>
