Skip to content
Publishing

How to Schedule Blog Posts and Plan a Calendar

Scheduling turns writing when you can into publishing when readers are there. Here is how scheduled posts work, why they sometimes fail to go live, and how a simple content calendar keeps a blog on rhythm.

To schedule a blog post, finish the draft, set a future publish date and time in your editor, and choose Schedule instead of Publish. The post stays hidden until that time and then appears on its page, the homepage, the feed and the sitemap. A content calendar of planned dates keeps the schedule steady.

Most blogs are written in bursts and read on a rhythm. Scheduling bridges the two: you write three posts on a quiet Sunday, and they go live on Tuesday, Friday and the following Wednesday without you touching anything. This guide covers how to schedule blog posts, why a scheduled post sometimes fails to appear, and how a small content calendar keeps the whole thing steady.

Why schedule posts at all

Publishing the moment you finish works for a hobby blog. Once readers, a newsletter or a team are involved, a schedule pays off quickly:

  • Consistency. A predictable rhythm is easier for readers to follow and easier for you to keep than "whenever it is ready".
  • Timing. You can publish when your audience is awake, even if you write at midnight in another time zone.
  • Batching. Writing several posts in one sitting is faster than starting cold each time.
  • Room for review. A date a few days out leaves time for an editor, a fact check or a second read.

How scheduled publishing works, and why it fails

A scheduled post is a finished post with a publish time in the future. Until that time it is hidden; afterwards it should appear everywhere at once: its own URL, the homepage, category pages, the RSS feed and the sitemap. When a scheduled post goes missing, the cause is almost always one of three things.

  • Nothing triggered the publish. WordPress runs its scheduler (WP-Cron) on page visits, so on a quiet site a post can sit past its time until someone loads a page. The common fix is a real server cron job that calls it.
  • The site was not rebuilt. Static site generators such as Hugo leave future-dated posts out of the build by default, so a scheduled post only appears after the next build. Static sites need a scheduled rebuild in CI.
  • Time zones disagree. If the editor, the server and the database each assume a different zone, a post set for 9:00 can go live hours early or late. The safe pattern is to store every time in UTC and show it in the site's own zone.

Plan with a content calendar

A content calendar is simply a list of upcoming posts with dates. A spreadsheet is enough to start; what matters is that every row answers the same questions:

  • The publish date and the post's status (idea, draft, in review, scheduled).
  • Who is writing it and who is reviewing it.
  • The one search query or reader question it answers, so two posts never compete for the same thing.
  • Which older posts it should link to, and which should link back.

Pick a cadence you can keep for months, not weeks. One good post a week beats three a week for a month followed by silence. If you also send a newsletter, plan the two together; our guide to running a newsletter from your blog covers that side.

Add a review step before the date

On a team, the schedule is also a deadline for review. Set the date when the draft goes to an editor, not when it is finished, and let approval be the step that schedules it. Share a preview with anyone outside the team who needs to sign off, rather than publishing early "just to check". A record of who approved and changed what helps later, which is why an audit trail for multi-author blogs matters once more than one person publishes.

Scheduling in Inkwell

Inkwell handles each of the problems above in the engine itself, with no cron job to set up:

  • Schedule from the editor. Give a post a future publish time and it goes live at that time on its page, the homepage, the feed and the sitemap together. Publish and visibility checks run in UTC, and a typed schedule time is read in the site's own time zone (Settings, Display, Date and time).
  • Content calendar. Since v1.0.9, Admin, then Calendar, shows a month at a glance: published posts, scheduled posts, and drafts or posts in review that carry a date, each on its day. Every entry opens its editor.
  • Editorial review. Authors without the publish permission submit posts for review. An Editor or Admin approves a post, which publishes it or schedules it if its time is ahead, or sends it back with a note.
  • Preview links. A signed link, valid for seven days, shows the saved post to a reviewer without an account.
  • Automation. When a scheduled post reaches its time, webhooks fire the post.published event, so a social post or cache purge can follow automatically.

Setup and settings are in the Inkwell documentation.

A checklist before you press Schedule

  1. Read the post once more on a phone-sized screen.
  2. Check the title and meta description, and the alt text on every image.
  3. Add two or three links to related posts.
  4. Confirm the date, the time and the time zone it will be read in.
  5. Check the calendar so it does not land on the same day as another post.
Write when you can, publish when your readers are there. The schedule does the waiting for you.

Frequently asked questions

How do I schedule a blog post?

Finish the draft, set a future publish date and time in the editor, and choose Schedule rather than Publish. The post stays hidden until then and appears automatically. Check which time zone the time is read in, since that is the most common source of posts going live at the wrong hour.

Why did my scheduled post not publish?

Usually because nothing triggered it or the time zone was wrong. WordPress relies on page visits to run its scheduler, so quiet sites can miss a schedule without a real cron job. Static site generators need a rebuild after the publish time. Mismatched time zones make posts appear early or late.

What is the best time to publish a blog post?

There is no universal best time. Look at your own analytics for the hours and days your readers visit, and schedule for just before that window. A steady cadence your readers can rely on matters more than the exact hour.

Does Inkwell have a content calendar?

Yes. Since v1.0.9, Admin, then Calendar, shows the month's published and scheduled posts, plus drafts or posts in review that carry a date, each on its day in the site's time zone. Entries open the editor, where the date is changed.

Ready to host your own blog?

Inkwell is free, open-source, and self-hosted — your content, your server, your rules. Deploy in minutes on .NET 10.

Read the install guide ← Back to the blog