StudioNope Themes Get the module →
HubSpot CMS Module

Event Listing Pro

An event listing that sorts itself. Upcoming and past tabs read the visitor's own date, category filters build themselves from your data, and grid, list and overlay layouts all come from the same rows. Colour, type and spacing are editor fields.

Get the module See it live ↓
Demo 1

Grid with filters, search and tabs

The default layout, monochrome out of the box. Category chips are built from the event data, the search box matches as you type, and the tabs split the same rows into upcoming and past. Three of these events are dated in the recent past, so the faded past treatment and the recording label are visible under the Past tab.

Grid layout
Programme

Upcoming events

Workshops, webinars and two conferences. Filter by category, search the programme, or switch to the past tab for recordings.

Desk set up for a drop-in support call
Office Hours Virtual Past
· 4:00 PM CET

Office hours: migrating a legacy CMS

Drop-in session. Bring a migration you are stuck on.

Zoom
Ruth Kelleher
Add to calendar
Editorial team reviewing a content calendar
Webinar Virtual Past
· 2:00 PM – 3:30 PM CET

Content operations for teams that publish daily

How editorial calendars, review queues and localisation fit together once volume goes past what a spreadsheet can hold.

Zoom
Antoine Reyes
Register
Conference hall before the opening keynote
Conference In-Person Past
· 9:00 AM – 6:00 PM CET

Annual product conference

Two days of talks, workshops and a hallway track. The full programme is published four weeks ahead.

Lisbon
Twenty-eight speakers
Get a ticket
Screen reader session in progress
Workshop Virtual Past
· 11:00 AM – 12:30 PM CET

Accessibility review clinic

Bring a page. We audit it live against WCAG 2.2 AA and leave you with a written list of fixes ordered by severity.

Zoom
Priya Raghavan
Reserve a seat
Dashboard on a monitor
Webinar Virtual Past
· 3:00 PM CET

Analytics without a data team

Practical instrumentation for small teams: what to track, what to ignore, and how to keep the event schema from rotting.

Zoom
Sam Oduya
Register
Room set for an evening meetup
Meetup In-Person Past
· 6:30 PM CET

Regional meetup — Amsterdam

Short talks and a long break in the middle. No badges, no booths.

Amsterdam
Join the list
Table set up for a pricing workshop
Workshop In-Person Past
· 9:30 AM – 1:00 PM CET

Pricing and packaging workshop

Positioning, tiers and the migration plan for existing customers. Half the session is spent on the plan nobody writes down.

Rotterdam
Femke de Vries
Reserve a seat
Training room with laptops open
Training Hybrid Past
· 9:00 AM – 12:00 PM CET

Certification training, cohort four

Six sessions over three weeks, ending with a practical assessment. Cohorts are capped so the exercises stay reviewable.

Dublin & online
Cormac Hayes
Apply
Presenter on a video call
Product Update Virtual Past
· 2:00 PM CET

Roadmap briefing, second half

What shipped, what slipped, and what the next two quarters look like.

Zoom
Nadia Farouk
Watch recording
Notes from a research session
Workshop Virtual Past
· 10:00 AM – 1:00 PM CET

Research methods for product teams

A recorded workshop on interview design, sample size, and reporting findings so they survive contact with a roadmap.

Zoom
Elin Sørensen
Watch recording
Auditorium during the keynote
Conference In-Person Past
· 9:30 AM CET

Winter conference keynote

The opening talk from the last edition, now public.

Copenhagen
Watch recording

Nothing matches that filter yet.

Demo 2

Full-width rows

The same module in list view. Image on the left, a button call to action instead of a text link, no search box, and the tab defaults to everything so upcoming and past sit in one stream, upcoming first.

List layout

Community calendar

Filter
People on a video call
Virtual Recording
· 5:00 PM CET

Community call, monthly

An open call. Anyone can add an item to the agenda up to two days before.

Google Meet
Open agenda
Add to calendar
Search results on a screen
Virtual Recording
· 1:00 PM – 3:00 PM CET

Deep dive: search relevance tuning

Two hours on ranking signals, synonym handling and how to run an offline evaluation before you touch production.

Zoom
Idris Bello
Reserve a seat
Admin console on a laptop
Virtual Recording
· 11:00 AM CET

Onboarding clinic for new admins

The first ninety days: permissions, naming conventions, and the settings that are painful to change later.

Zoom
Hannah Whitlock
Register
Translator reviewing strings on screen
Hybrid Recording
· 2:00 PM – 4:00 PM CET

Localisation in practice

Working with translators, handling plural rules, and keeping a growing string catalogue reviewable across eleven languages.

Barcelona & online
Júlia Ferrer
Reserve a seat
Spreadsheet on a monitor
Virtual Recording
· 3:00 PM CET

Reporting patterns that survive an audit

Definitions, lineage and the paperwork finance will ask for.

Zoom
Tomás Lindqvist
Register
Presenter mid-demo
Virtual Recording
· 4:00 PM CET

Quarterly product update

Recorded. Release notes and the migration guide are linked from the recording.

Zoom
Watch recording
Performance trace on screen
Virtual Recording
· 10:00 AM – 12:00 PM CET

Performance budgets workshop

Setting a budget, wiring it into CI, and deciding what happens when a build breaks it.

Zoom
Lucía Marín
Watch recording

No events in that category.

Demo 3

Image cards

Overlay view. Text sits on the image, descriptions are off, and the toolbar is stripped back to the two tabs. Overlay strength and blur are fields, so the same set of photographs can be made lighter or heavier without new assets.

Overlay layout
Studio interior at dusk
In-Person
· 6:00 PM CET

Studio tour and open evening

Rotterdam
Join the list
Material samples laid out on a bench
In-Person
· 10:00 AM – 4:00 PM CET

Materials workshop

Ghent
Reserve a seat
Fabric swatches on a workbench
In-Person
· 7:00 PM CET

Textiles and finishes evening

Copenhagen
Join the list
Lighting rig above a workbench
In-Person
· 1:00 PM – 5:00 PM CET

Lighting design masterclass

Milan
Apply
Presentation deck on a screen
Virtual
· 11:00 AM CET

Client presentation clinic

Zoom
Reserve a seat

No events scheduled.

Demo 4

A different house style, same module

Nothing here is a different module and nothing here is custom CSS. The dark ground, the serif headings, the square corners, the gold accent and the taller images are all field values on this one instance. Past events are switched off as well, so the two archived rows in the data never render and no past tab appears.

Styled instance
Maison Verlaine

The season

Private views, atelier mornings and salon conversations. Past events are switched off on this instance, so the two archived entries in the data never render and no past tab appears.

Hands working a finish on a panel
Atelier
· 9:00 AM – 12:00 PM CET

Atelier morning: hand finishes

Three hours at the bench with the finishing team. Twelve places.

In-Person · Florence
Ottavia Bruni
Reserve a place
Two chairs set for a salon conversation
Salon
· 6:30 PM CET

Salon conversation: the quiet interior

A conversation between two designers on restraint, materials and the rooms people live in.

Hybrid · Paris & online
Camille Ferrand, Yusuf Demir
Reserve a place
Drawings spread across a table
Atelier
· 11:00 AM – 2:00 PM CET

Commission clinic

Bring a brief. We work through scope, timeline and the parts that usually go wrong.

In-Person · Antwerp
Marieke Joosten
Request an invitation
Showcase room before opening
Private View
· 6:00 PM CET

Autumn showcase

Two evenings of new work, open to clients and to the trade.

In-Person · Milan
Request an invitation
Colour swatches on a wall
Salon
· 6:30 PM CET

Salon conversation: colour after neutrals

Where a palette goes once the neutrals are exhausted.

Virtual · Online
Ines Almeida
Reserve a place
Archive shelves
Salon
· 7:00 PM CET

Archive evening

A short talk on the archive and what is being brought back.

In-Person · Vienna
Watch recording
Joinery detail on a workbench
Atelier
· 9:00 AM CET

Atelier morning: joinery

Recorded from the spring series.

In-Person · Florence
Watch recording

Nothing in that strand this season.

Documentation

Module guide

Adding events

Every event is one row in the Events repeater. Only the title and date are required. In a grid, give every event an image or none of them one: a row that mixes the two leaves space under the shorter cards. The list layout takes a mix without a gap.

FieldWhat it does
DateFormat YYYY-MM-DD. This is what sorts the list and decides whether an event counts as upcoming or past.
End dateOptional. Set it for a multi-day event and the card shows a range. A multi-day event stays upcoming until its end date has passed.
TimeFree text, shown next to the date. Write it however your audience reads times.
Location typeVirtual, in-person or hybrid. Drives the icon and the location badge.
CategoryFree text. The category filter row is built from whatever categories you use, so there is no second list to maintain.
FeaturedOutlines the card. Use it for the one event you want people to land on.

Upcoming and past

The module compares each event date against the visitor's own date. Nothing is baked in at publish time, so a listing keeps sorting itself as dates pass.

Layouts

Three layouts, set per instance under Default view:

Turn on Show view toggle and visitors can switch between the grid and list themselves.

Filtering and search

The category row appears once two or more categories exist in the data. Search matches titles, categories and card text as you type. Both are optional per instance.

When a filter or a search returns nothing, the empty-state message appears in place of the grid. Its wording is a field, so it can be translated or made specific to the listing.

Detail drawer

Set Card click action to drawer and clicking a card opens a panel with the long description, the full date, time, format, location, category and speakers. Set it to link and the whole card becomes the registration link instead. Set it to none and only the call to action is clickable.

Styling

Colour, type, radius, border, shadow, badge padding, card padding, gaps, section padding and both breakpoints are editor fields on the style tab. The module ships monochrome and inherits your theme's colour and font settings where you leave a field on inherit. Nothing is hardcoded, so a listing can be restyled without touching the template.

Accessibility

Tabs, filters, the view toggle and the drawer are keyboard operable with visible focus rings. The drawer closes on Escape. Every image takes alt text from its row. Motion respects prefers-reduced-motion.