Skip to content

Meeting

Object type

A race meeting — a series of races held at one course on one date. The root aggregate for the racing-data hierarchy. A course may host more than one meeting on the same date (e.g. an evening fixture in addition to the afternoon one); these are separate Meeting rows sharing course and meetingDate. Multi-day festivals (Cheltenham, Royal Ascot) are modelled as one Meeting per day, not a single multi-day entity.

FieldArgsTypeDescription
id—ID! requiredStable Podium identifier (UUID).
meetingDate—Date! requiredLocal date the meeting runs on, in the course’s time zone (ISO YYYY-MM-DD).
meetingType—MeetingType! required—
status—MeetingStatus! required—
name—StringOptional display name for the meeting (e.g. a festival day’s branded name). Null for most fixtures.
countryCode—String! requiredISO 3166-1 alpha-2 country code (GB, IE, FR, …). Convenience field mirroring course.countryCode.
conditions—MeetingConditionsCurrent ground/weather conditions reported for the meeting. Null until any conditions data has landed.
abandonedReason—StringOperator-supplied reason if the meeting has been abandoned. Null otherwise.
abandonedAt—DateTimeTimestamp the meeting was abandoned. Null otherwise.
course—Course! requiredThe course (venue) hosting the meeting.
competition—CompetitionCompetition / series this meeting belongs to, if any (e.g. a championship).
races—[Race!]! requiredRaces on the card, ordered by raceNumber. The CARD — reconciliation slots (raceNumber >= 1000) are not on it and are never returned here. See Race.raceNumber for what those are and which routes do reach them. Podium’s own operators list them through Meeting.reconciliationSlots, which is internal-tier: if that field is not in your schema, this paragraph is telling you the rows exist, not offering you a way to read them.
raceCount—IntNumber of races on the card. Useful when you want the count without fetching the races list. Counts exactly what races returns, so reconciliation slots (raceNumber >= 1000) are excluded — see Race.raceNumber.
televised—Boolean! requiredTrue when the meeting is scheduled to be televised. Operator-set (not mastered by feed data).
broadcasters—[Broadcaster!]! requiredBroadcasters (TV channels) that broadcast this meeting, ordered by name.
version—Int! requiredOptimistic-locking version counter — increments on every write.
createdAt—DateTime! required—
updatedAt—DateTime! required—
source—String! requiredOrigin of the meeting row. 'manual' for meetings created via createMeeting; otherwise the ingestion provider tag (commonly 'ingested'). Drives destructive-action gating: only source = 'manual' meetings may be deleted; ingested meetings use abandonMeeting.