Skip to main content

Modules Documentation

Status & badge logic

How statuses transition and what badges render.

Complete

Event status is mostly computed, not stored. 5 of the 7 EventStatus values are derived from time arithmetic (upcoming / open / closing-soon / live / completed). Only 2 (postponed / cancelled) are manual overrides that an editor must explicitly set. This keeps badges accurate without requiring constant manual updates.

Computed statuses

upcoming
startDate is in the future AND (applicationDeadline is null OR applicationDeadline > now + 7 days). The default state for a verified future event with no urgent deadline.
open
For accelerator/incubator/pitch-competition categories: applicationDeadline ≥ now + 7 days. Registration / applications are accepting and not yet urgent.
closing-soon
applicationDeadline OR registrationDeadline is within the next 7 days (and still in the future). Triggers warning tint + "Apply (closing soon)" CTA upgrade.
live
now ≥ startDate AND (endDate is null OR now ≤ endDate). Renders with accent pulse animation on the badge.
completed
endDate < now (or, if no endDate, startDate + 1 day < now). Badge desaturates; the event remains discoverable for the historical record.

Manual override statuses

postponed
Editor set. The event was scheduled but pushed back without a new date confirmed yet. Banner appears in the hero: "This event has been postponed. We’re tracking the new date."
cancelled
Editor set. The event is permanently cancelled. JSON-LD emits eventStatus=https://schema.org/EventCancelled. CTAs become disabled. Filters exclude cancelled events by default.