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.
Fields
Section titled “Fields”| Field | Args | Type | Description |
|---|---|---|---|
id | — | ID! required | Stable Podium identifier (UUID). |
meetingDate | — | Date! required | Local date the meeting runs on, in the course’s time zone (ISO YYYY-MM-DD). |
meetingType | — | MeetingType! required | — |
status | — | MeetingStatus! required | — |
name | — | String | Optional display name for the meeting (e.g. a festival day’s branded name). Null for most fixtures. |
countryCode | — | String! required | ISO 3166-1 alpha-2 country code (GB, IE, FR, …). Convenience field mirroring course.countryCode. |
conditions | — | MeetingConditions | Current ground/weather conditions reported for the meeting. Null until any conditions data has landed. |
abandonedReason | — | String | Operator-supplied reason if the meeting has been abandoned. Null otherwise. |
abandonedAt | — | DateTime | Timestamp the meeting was abandoned. Null otherwise. |
course | — | Course! required | The course (venue) hosting the meeting. |
competition | — | Competition | Competition / series this meeting belongs to, if any (e.g. a championship). |
races | — | [Race!]! required | Races 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 | — | Int | Number 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! required | True when the meeting is scheduled to be televised. Operator-set (not mastered by feed data). |
broadcasters | — | [Broadcaster!]! required | Broadcasters (TV channels) that broadcast this meeting, ordered by name. |
version | — | Int! required | Optimistic-locking version counter — increments on every write. |
createdAt | — | DateTime! required | — |
updatedAt | — | DateTime! required | — |
source | — | String! required | Origin 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. |