Two or three events, not ten

A sidebar is a glance, not a listing. Two or three upcoming events with dates and titles, and a link to the full calendar. Ten entries turn into a wall of text that people scroll past, and on a phone — where the sidebar is usually pushed below the content — a long widget is simply a long thing between the reader and the footer.

What each entry needs

The date, the title, and a link. Optionally a small image if your theme suits it. Not the description, not the location, not the category, not a button.

Write the date the way people speak: “Fri 12 Sep” rather than “12/09/2026”, and “Tonight” or “Tomorrow” when it applies. A widget that says “Tonight · Quiz Night · 8pm” converts better than any amount of styling.

The empty case is the one to design

Most widgets are designed for the state where there are three events, and they look fine. Then February arrives, nothing is programmed, and every page of the site says “No upcoming events” in the sidebar.

That is worse than an empty space. Either hide the widget entirely when there is nothing, or let it say something useful — “Spring programme announced in January” — and make that text something you can edit without a developer.

It renders on every page, so it must be cheap

This is where the sidebar differs from a listing page. Whatever the widget costs, it costs on every page view, including pages that have nothing to do with events.

Two things make it expensive. A plugin that materialises repeats has to query across potentially thousands of occurrence rows to find the next three. And a widget that re-computes on every load, rather than caching briefly, does that work for every visitor.

The right shape is a small query, an in-memory expansion of the rules — which is microseconds, as above — and a short cache keyed to something that changes when you edit an event. If you are evaluating a plugin, add its widget to a sidebar and watch the query count on an ordinary page.

Block themes

Classic widget areas are being replaced by template parts. In a block theme, the same events block goes into a sidebar template part and behaves identically. If a plugin only offers a legacy widget and no block, it will not work in a modern theme's sidebar at all — worth checking before you choose either one.