Plainwork

Plainwork / Datebook for Ghost / Ghost event tag builder and checker

Ghost event tag builder

Ghost has no event date field, so a common workaround is to store the date in an internal tag on the post (tags starting with # are hidden from readers). This builder writes those tags for you in a strict format a theme can sort by, and the checker below tells you whether the tags already on a post are readable. It runs in your browser and sends nothing anywhere.

Build the tags for one event






Check the tags on an existing post

The tag format

TagExampleMeaning
#event#eventMarks the post as an event, so a theme can fetch all events with filter="tag:hash-event".
#when#when 2026-12-05 19:00Start, as YYYY-MM-DD plus an optional 24-hour HH:MM, in the site's time zone.
#until#until 21:00 or #until 2026-12-06End: a time on the same day, a date, or both.
#venue#venue OnlineWhere it happens.
#cancelled#cancelledKeep the post but mark the event as cancelled.

Why this format: the year-month-day order sorts correctly as plain text, a fixed pattern lets a theme reject typos instead of guessing, and Ghost's tag picker reuses tags, so a venue is typed once. Ghost turns #when 2026-12-05 19:00 into the slug hash-when-2026-12-05-19-00; themes read the tag name, not the slug.

Showing the date in your theme

Ghost 6.5 added a {{#split}} helper, which is enough to print the date from the tag on a post page:

{{#foreach tags visibility="internal"}}
  {{#match name "~^" "#when "}}
    {{#split name separator="#when "}}
      <time datetime="{{date this.[0] format="YYYY-MM-DD" timezone="UTC"}}">
        {{date this.[0] format="dddd, LL" timezone="UTC"}}
      </time>
    {{/split}}
  {{/match}}
{{/foreach}}

Two details that trip people up. First, pass timezone="UTC": Ghost's date helper reads a date without an offset as UTC and would otherwise shift your typed time into the site time zone. Second, the helper falls back to today's date when it cannot parse the text, so a typo such as #when 5 Dec silently shows the wrong date; validate the pattern (the checker above uses YYYY-MM-DD( HH:MM)?) before trusting it.

Sorting events by this date, splitting upcoming from past at the right moment in the site's time zone, a month view and add-to-calendar buttons take more work, because Ghost can only order posts by publish date. Datebook for Ghost does all of that for $29, with Ghost's Source and Casper themes ready to upload, and you can see it on the live demo.

More from the catalogue

Other small tools

See everything →