event document represents a scheduled event — a showcase, workshop, networking session, or lecture. Events appear in eventList page blocks and on dedicated detail pages at /events/[slug]. The Studio supports three orderings: by date descending, date ascending, and title.
Fields
Main group
string
required
Event name. Used as the display title in the Studio preview and as the source for the auto-generated slug.
slug
required
URL slug for the event detail page (
/events/[slug]). Auto-generated from title (max 96 characters).string
Multi-site discriminator. Hidden on the
production (Capstone) dataset. Required on the rwc dataset.datetime
required
Start date and time of the event. Used for ordering and for the upcoming/past status fallback logic.
datetime
End date and time. Optional. Custom validation ensures
endDate is after date when both are set.string
Physical or virtual location (e.g.
GITC 3rd Floor, Zoom). Displayed on event cards and the detail page.text
Short description of the event. Displayed in event list items and the detail page.
boolean
When
true, no time is shown alongside the date. Defaults to false.string
Semantic event category. The front end maps categories to calendar colors in the
eventList block.string
Program format — describes the type of event from a program perspective. Use
category for semantic classification that drives calendar colors.string
Explicit upcoming/past flag. Takes priority over date comparison in
resolveBlockEvents(). Defaults to upcoming.SEO group
seo object
SEO metadata for the event detail page.
Filtering in the eventList block
The resolveBlockEvents() helper in sanity.ts filters the pre-fetched event cache based on the block’s filterBy setting and applies the limit:
The
status field takes priority over date comparison. Set status explicitly when an event’s date has passed but you want it to remain in the upcoming list (or vice versa).
Date range query
For calendar month navigation,EVENTS_BY_MONTH_QUERY is available for fetching events within a specific date range: