Schedule a Block
Show a block only during a time window (a start, an end, or both) and know that it's fully removed from the page outside it, not just hidden.
Prefer to read? The full guide is below. Every video in the series is on the video tutorials page.
What scheduling does
Any block can carry a schedule: a window of time during which it’s visible, outside of which it isn’t. Open a block’s settings and scroll to Schedule to turn it on.
Scheduling is a Pro feature.
A schedule has:
- Starts: leave it blank and the block is visible immediately
- Ends: leave it blank and the block never expires
- Time zone: the zone the start and end times are interpreted in
You need at least one of start or end, a schedule with neither set means nothing to filter on. The editor refuses to clear the last one, and refuses an end that isn’t after the start, rather than letting you find out at publish.
Reading it back in the editor
Under the fields, a line tells you what the window means right now: Live now, Live until 3 Sep 09:00, Not live yet: starts 1 Sep 09:00, or Ended.
Blocks that are pending or finished also carry a small badge on the canvas, Not live yet or Ended, so a scheduled block never looks like an ordinary one you forgot about. A block that’s currently live carries no badge, because it isn’t doing anything unusual.
Why it stores a time zone, not just a time
A schedule is stored as a local date and time plus a time zone, not as a single fixed instant. That means “9am Friday” stays 9am Friday even if a daylight-saving change happens between when you set it and when it fires: the alternative, a fixed instant, would silently drift to 8am or 10am across that change.
It’s removed from the page, not hidden
Keepp pages are published as static HTML. A scheduled block is filtered out on the server when the page is served, not hidden with CSS in the browser, so a block that’s out of its window never reaches the visitor at all, even in the page’s source. If every block on your page happens to be scheduled out at once, the page itself returns a not-found response rather than rendering empty.
Because published pages are served from a cache, a block goes live within about a minute of its start time, not to-the-second precision.