Appearance
Link to a Search Form
From version 1.4.0, the Calendar widget can be linked to Voxel's own Search Form widget. When a visitor searches or filters in the form, the calendar updates in place to show only matching events — no page reload, and no separate post feed required.
This uses the same pairing flow Voxel uses to connect a search form to a post feed, so if you've linked those before, this will feel familiar.
Setting it up
- Add both widgets to the same page: a Voxel Search Form and the Calendar widget.
- Configure the search form for the same post type the calendar displays (for example, your Events post type). Add whichever filters you want visitors to use — keywords, taxonomy terms, location, and so on.
- Configure the Calendar widget's own Query Settings section: select the Post Types to display, and set Event Date Field to your post type's date field key (Edit Post Type → Fields → your recurring date field → copy its "key"). The calendar queries events from these settings — with no post type selected it renders empty, linked or not.
- Still in the Calendar widget, open the Search Form section in the Content tab.
- Use Link to search form to select the search form widget on the page.
- Click Apply changes, then save the page and view it on the front end.
Same post type on both sides
The search form should search the same post type(s) the calendar is set to display. Filters from a different post type won't match anything on the calendar.
How the calendar reacts
The calendar follows the search form's own Search on setting:
- Filter update — the calendar refreshes live as the visitor changes filters, the same way a linked post feed would.
- Submit button — the calendar waits until the visitor clicks Search. Clicking Clear resets the calendar along with the form.
Clearing a filter always brings the hidden events back — the calendar mirrors the form's current state exactly.
All filter types apply
Filtered calendar queries run through Voxel's native search engine — the same one that powers the post feed. That means every filter type on the form applies correctly: keywords, taxonomy terms, location, date, stepper and range filters, and the rest.
Arriving with a search already applied
If the page is opened with search parameters in the URL (for example, a visitor followed a link like /events-calendar/?keywords=music), the calendar renders already filtered on first load.
This is how you deep-link to a pre-filtered calendar — an area landing page can send visitors to /whats-on/?area=kingston and the calendar opens showing only that area.
Two things have to line up:
- The calendar must be linked to a search form. URL filtering runs through that link, so without one the parameters are ignored.
- Each parameter name must match the filter's key on the post type, not the filter's label.
Requires 1.4.3 if your form has default values
Between 1.4.1 and 1.4.2, the URL was only read when the linked form had no default filter values at all. A single configured default silently suppressed the whole URL, so links like /whats-on/?area=kingston did nothing on first load. Fixed in 1.4.3.
How URL parameters and defaults combine
A filter named in the URL wins over that same filter's configured default. Defaults still apply to every filter the URL says nothing about — so a form with a default area and a default category, opened at ?area=kingston, uses Kingston for the area and keeps the default category.
Default filter values pre-filter the calendar
From version 1.4.1, any default value configured on the form's filters applies to the calendar's first render — including dynamic tags. For example, on a single-post template, give the form's relation filter a default of @post(your-relation-field.id) and the calendar loads showing only that post's related events — a per-organizer timetable with no visitor interaction needed. Clearing the filter in the form brings everything back.
Requirements
- Voxel Calendar 1.4.0 or newer (1.4.1 for default filter values pre-filtering the calendar; 1.4.3 for URL parameters to override those defaults)
- The Voxel theme active (the link control and search engine are Voxel features)
Troubleshooting
- The calendar doesn't react to the form — confirm the link is set in the Calendar widget's Search Form section and that you clicked Apply changes and saved the page after linking. The pairing is stored with the page, so re-save if the widgets were moved between containers.
- Filtering hides everything — check that the search form's post type matches the calendar's, and that the matching posts actually have a value in the calendar's configured event date field.
- A link with filters in the URL opens unfiltered — on 1.4.1 or 1.4.2 this happens whenever the linked form has any default filter value set; update to 1.4.3. Otherwise check that the calendar is linked to a search form at all, and that the parameter name matches the filter's key rather than its label.

