Home / Plugins / Notice Planner

Freev1.1.0 · updated Sep 11, 2026 · GPL · no Pro version

Notice Planner: a site notice that arrives on time and leaves on its own

A free WordPress plugin for the notices a site actually needs: holiday closures, changed hours, maintenance windows, delivery delays. Write it once, set the period, pick a look, and the bar or dialog appears and disappears by itself, in your timezone, every year if you want.

A year calendar with December 24 to January 2 marked, beside a website with an announcement bar about the holiday closure

Do you need a plugin for a holiday notice?

You can type “closed until January 2” into the header of any site in a minute. The trouble starts afterwards. Someone has to take it down on January 3, ideally at midnight, put the next one up before the summer break, and the one after that. Plenty of sites carry a notice that is weeks out of date.

A notice is a scheduling problem more than a design problem. It has a start, an end, sometimes a yearly rhythm, and it has to be evaluated in your timezone, not the server’s. It has to survive a page cache that stored the page before the notice existed. And when it matters, it has to be a real dialog that keyboard and screen-reader users can reach, read and close.

Popup and marketing-bar plugins solve a different problem: attention. They come with countdowns, exit intent, split tests and a tracking script, because they are built for campaigns. A closure notice is not a campaign.

This plugin does the quieter job. One notice type, two layouts, precise scheduling, fifty looks that pass the contrast check, and nothing that phones home.

This is what it looks like

Two layouts, five tones, scheduled Dec 24 to Jan 2

Two layouts × five tones, scheduled Dec 24 → Jan 2
yoursite.com
Holiday closure We are closed from December 24 to January 2. Orders ship again from January 3. Opening hours

The bar, the inset bar and the fullscreen dialog in five tones, with a working close button and Show again. Every control here is a real setting in the plugin.

How it works

Write it once, from a template or blank

Notices, Quick Notice publishes a simple notice in seconds. Notices, Add New opens the full editor with one of 27 templates prefilled: summer vacation, public holiday, maintenance window, shipping delay, new address, privacy policy update, product safety notice and more. Headline, message, a button with a link, an accessible label. The rendered notice stays visible on the right while you type, at desktop, tablet and phone width, on a light or a dark sample page.

Add New Notice screen with tabs for Content, Design, Schedule, Display and Dismissal on the left, and on the right the Publish box above a live preview of the notice with desktop, tablet and mobile widths and a light or dark sample page.
Controls on the left, the rendered notice on the right, whichever tab you are on.

Make it look like part of the site

Ten style sets, from a bold solid bar to a soft tinted hairline, an elevated card, a dark surface or a neutral surface with a colored rail. Five tones say how urgent it is: neutral, info, warning, important, success. All fifty combinations are checked against WCAG 2.2 AA contrast. The bar runs edge to edge with square corners or floats as an inset message with rounded ones. Colors, spacing, corners and the close button can still be overridden per notice, and your theme font is used, no webfont is loaded.

Design settings with a grid of style set previews named Solid Signal, Tinted Soft, Editorial Neutral, Elevated SaaS Card, Midnight and Accent Rail, five tone chips from Neutral to Success, and a choice between a full-width bar and an inset message.
Pick a look, then say how urgent it is; the tone recolours the set without changing its character.

Set the period and forget it

Always on, an exact range with start and end time, or a yearly period that may cross the year boundary: December 24 until January 2 works every year, leap years included. Visibility is computed on every page view in the timezone from Settings, General, not by cron, so 22:00 means 22:00, and the end is exclusive to the minute. A year calendar shows every planned notice and flags overlaps before they happen on the site.

The visitor sees it on time, and can close it

A slim bar at the top or bottom, static, sticky or fixed, optionally pushing the content down, or a fullscreen dialog with focus trap, scroll lock and keyboard support for the critical cases. Visitors dismiss a notice for the session, until it ends or for a number of days, stored in their browser only, no cookie. Edit the notice and it comes back; Show again voids every stored dismissal. Cache-safe delivery corrects what a page cache or CDN served, so the notice appears and disappears on time even on cached pages.

Blue announcement bar across the top of a furniture shop website reading Summer vacation, we are closed Jul 20 to Aug 5, orders placed now ship from Aug 6, with a Details button and a close icon.
Solid Signal, full width: a headline, one sentence, one button, one close icon.

What it does not do

This is the part most plugin pages leave out.

It is not a marketing popup. No exit intent, no countdown, no split test, no lead form. It is built to inform, not to convert, and its weight shows that: no jQuery on the front end, assets only on pages that show a notice.

It tracks nobody. No external request, no telemetry, no cookie. A dismissal lives in the visitor browser only and is never transmitted anywhere.

It cannot fix a cache that never saw it. Cache-safe delivery corrects pages cached after activation. A copy stored before the plugin existed has no loader in it, so clear the cache once.

It shows one notice at a time by default. When notices overlap, the highest priority wins, or up to three bars stack if you switch the mode. More than three is a design problem, not a setting.

It has no free-text CSS field. Colors, spacing, corners and type are validated fields rendered as custom properties. Anything beyond that belongs in your theme stylesheet.

It ships in English. Every string is translatable and the notice type works with WPML and Polylang, but no language pack is bundled yet.

Why not just a line in the header?

Because a line in the header has no calendar. It goes up when someone remembers and comes down when someone else notices, and the page cache keeps the old version for another hour after that.

It also has no semantics. A closure typed into a widget is text among text. A warning that matters needs a region a screen reader announces, or a dialog the keyboard can reach, and a way to close it that is remembered next time.

A scheduled notice knows its dates, its priority, its audience and its end. It appears at midnight on December 24, leaves at midnight on January 3, and does the same next year without anyone touching it.

Set up in three steps

01

Install it

Plugins, Add New, search for Desk9 Notice Planner, install, activate. No account and no license key.

02

Pick a template or start blank

Notices, Quick Notice for a simple notice in seconds, or Notices, Add New with one of 27 templates prefilled. Write the text, choose a style set and a tone; the preview on the right shows the result.

03

Set the period and publish

Always, a date range with times, or a yearly period. Tick Enable this notice, publish, done. The bar appears on time and leaves on time; the calendar shows what else is planned.

Free forever, and why

This plugin is free and stays free. There is no Pro tier and none is planned. It exists because every shop, practice and office site needs a closure notice at some point, and the choice used to be a text widget or a marketing suite.

If it saved you an afternoon, the useful things are a rating on wordpress.org, a post in the support forum when something is off, or a hand with the translation.

Frequently asked questions

Why is my published notice not visible?

A notice shows only when all of these are true: it is published, Enable this notice is ticked, its schedule is active right now, its display rules match the page, and on multilingual sites it matches the visitor language. The computed status is shown in the notice list and in the Schedule box.

When exactly does a notice end?

The end is exclusive: a notice ending January 2, 23:59 disappears at exactly 23:59, in the timezone from Settings, General. Visibility is computed on every page view, not by cron.

Can a notice repeat every year?

Yes. Choose a yearly period; it may cross the year boundary, so December 24 until January 2 works every year, leap years included. Write it once.

My notice does not appear, or an old version keeps showing.

Almost always a page cache. The plugin asks known cache plugins to clear when a notice changes, and cache-safe delivery, on by default, checks for the current notices on every page view and corrects the page in the browser. A copy cached while the plugin was inactive has no loader yet: clear the cache once.

Can I use my own colors?

Yes. Every notice starts from a style set and a tone that define all fourteen color slots. Switch on Override individual colors and set any of them with the WordPress color picker; spacing, radius, typography and the close button can be fine-tuned the same way. There is no free-text CSS field.

Does the plugin set cookies?

No. The optional dismiss feature stores a small entry in the visitor browser storage under keys like d9notice:notice:123:v4. Nothing is transmitted anywhere, and the entry expires with the notice or the chosen duration. If storage is blocked, the notice simply stays visible.

I dismissed a notice myself and cannot get it back.

Only for you: append ?d9notice_show=1 to any URL while logged in and allowed to edit notices. For everyone: Show again in the list or in the editor raises the content version, so every stored dismissal stops matching.

Can somebody manage notices without being an administrator?

Yes. On activation the plugin creates a Notice Manager role whose admin area contains nothing but Dashboard, Media, Profile and Notices. The capabilities edit_d9notices, publish_d9notices, delete_d9notices and manage_d9notice_settings can also be given to an existing role.

Does it work with WPML, Polylang and block themes?

Yes. The notice post type is translatable with a wpml-config.xml, and a setting decides whether untranslated notices hide or fall back to the default language. Classic and block themes are supported; for themes without wp_body_open a fallback output path is used.

What happens on uninstall?

Nothing is deleted unless you enable Delete all plugin data on uninstall, and optionally Remove plugin capabilities, under Notices, Settings, Advanced.

Is there a Pro version?

No, and none is planned. Every feature is in the free plugin.

Changelog

1.1.0

Sep 11, 2026: cache-safe delivery and cache purging for fifteen known caches, a color for the area around an inset bar, outline width and close button options per notice, every color override now visible; fixes for the close button wrapping in long bars, theme global styles overriding the notice text, and the Bold headline checkbox.

1.0.0

Sep 2, 2026: first release: announcement bars and fullscreen notices, Notice Manager role, date ranges and yearly periods in the site timezone, year calendar, Quick Notice with 27 templates, ten style sets and five tones, two-column editor with live preview, dismissal with content versioning, priorities and conflict detection, display rules, WPML and Polylang compatibility.

Full changelog on WordPress.org

More from desk9

Cookie Banner & Content Blocker YouTube, Maps and Analytics stay inert until the visitor says yes. The notice a site owes its readers by law.

Broken Content Reporter Readers report the dead link or missing image in two clicks, with the page URL attached.

All desk9 plugins Ten of them, maintained monthly, seven free.

Free forever. No Pro, no nag screens.

Every feature is in the free version. Updates arrive through WordPress, no account and no license key.

At a glance

Version1.1.0
Last updateSep 11, 2026
Requires WP5.9+
Tested up to7.1.3
PHP7.4+
LicenseGPL

Why it is free

Every feature is in the free plugin, and it stays that way. If it saves you time, a review on wordpress.org is the best way to say thanks.