Events and Calendar Feeds
Mark a date field on a record type as the event start and the type becomes an event type. Its records can then be listed as upcoming, happening now or past, carry Schema.org Event markup for search engines, and offer “Add to calendar” links and a feed that calendar apps subscribe to. There is no separate events feature to install.
When to use it
Section titled “When to use it”- Events, council and board meetings, classes, workshops — anything with a start date that visitors look for by time.
- For a date that is not an event date (a “listed on” date), add a plain date field with no role.
How to set up an event type
Section titled “How to set up an event type”- On the type’s Post Fields screen, add a field with Display type Date (May 20, 2026) and, under Event role, Semantic role Event start date. This is what makes the type an event type.
- Add a second date field with the role Event end date. It is optional but recommended; see “Upcoming, happening and past” below.
- For all-day or multi-day events, tick No specific time (all-day / multi-day event) under All-day on the date fields.
- Add any of the optional roles below.
- Turn Post date off under Archive card meta on the record type, so archive cards do not show the date the record was written.
| Role | Field display type | What it feeds |
|---|---|---|
| Event start date | Date | Required. Upcoming/past lists, sorting, markup, calendars. |
| Event end date | Date | End of the event in lists, markup and calendars. |
| Event status | Badge | Status in markup and calendars. |
| Event location | Text | Location in markup and calendars. |
| Event price / offers | Currency | The ticket price in markup. |
| Event attendance mode | Badge | In person, online or mixed, in markup. |
Each role can be used once per type, and only on the display type shown.
For Event status, give the badge options with the keys scheduled,
cancelled, postponed and moved_online. For Event attendance mode,
use in_person, online and mixed. Place the status field at Image
overlay (badge on image): a cancelled event then shows its badge on the
photo, or above the title when there is no photo.
Entering dates
Section titled “Entering dates”On the record edit screen, a start or end field that is not all-day shows a date and time picker; an all-day field shows a date picker.
Through the connector or an import, send YYYY-MM-DD HH:MM in the site’s
local time, or YYYY-MM-DD for all-day dates.
Event time zone on a date field is for events held in another zone; leave it on — Use site time zone — for a single-location site.
Upcoming, happening and past
Section titled “Upcoming, happening and past”- Upcoming — the event has not ended yet. An event in progress counts as upcoming.
- Happening now — it has started and not ended.
- Past — it has ended.
Status is judged by the end date. Without an Event end date field, or when a record’s end date is empty, the start date is used, so the event counts as past once it starts. An all-day date counts for its whole day: a fair whose last day is today is upcoming, and happening, until midnight.
To list events, add a Promptless WP Posts Grid for the type and set
Event Date Filter. Event Date Sort on Auto lists upcoming events
soonest first and past ones latest first. Through the connector, an explicit
event_sort of soonest or latest also orders a grid with no date filter
by event date, which suits an all-dates archive where visitors choose
upcoming or past from the filter bar; records with no start date stay in
the grid. Marking the start field Filterable gives visitors the
Upcoming, Happening now and Past choice. See
Archives and post grids.
Event markup for search engines
Section titled “Event markup for search engines”Each event record’s page carries Schema.org Event markup: the title, start and end, description (the excerpt, or the start of the content), featured image, location, status, attendance mode and price, where those fields have values. A record without a start date gets none. The markup is not added to a record built by hand with Promptless WP.
Calendar links and feeds
Section titled “Calendar links and feeds”- On each event record, Add to calendar downloads an
.icsfile for Apple Calendar, Outlook and others, and Google Calendar opens a prefilled Google event. They appear in the hero once the record has a start date. The file’s address is the record’s address plus?feed=ics. - For the whole type, a feed at
/{type-address}/feed/ics/lists published events that started or ended in the last 30 days or later, soonest first, up to 500. Link it as “Subscribe to meetings”; calendar apps check it for changes. It needs Has archive page on the type. The connector’s record-type details give this address ascalendar_feed_url.
A cancelled event is marked cancelled in both; a postponed one is marked tentative. Timed events are written in UTC, so calendars show them in each reader’s own time zone.
Limits and common problems
Section titled “Limits and common problems”- An all-day event leaves “Upcoming” on its last day, or a record with no end date is in neither list. Both happen up to version 0.10.0 and are fixed in version 0.10.1. Until you update, fill in the end date, and give an all-day end field an end time.
- A long event is missing from the type feed. Up to version 0.10.0 the feed dropped an event 30 days after it started, even if it was still running.
- No calendar links on a record. The record has no start date, or the type has no Event start date field.
- The type feed returns “No calendar feed for this address.” The type has no Event start date field.
- Times are an hour or more off. Check Settings → General → Timezone and the field’s Event time zone. On version 0.10.0 or earlier, also check that imported times carry no UTC offset.