Skip to content

Meeting

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
idID!Stable Podium identifier (UUID).
meetingDateDate!Local date the meeting runs on, in the course’s time zone (ISO YYYY-MM-DD).
meetingTypeMeetingType!
statusMeetingStatus!
nameStringOptional display name for the meeting (e.g. a festival day’s branded name). Null for most fixtures.
countryCodeString!ISO 3166-1 alpha-2 country code (GB, IE, FR, …). Convenience field mirroring course.countryCode.
conditionsMeetingConditionsCurrent ground/weather conditions reported for the meeting. Null until any conditions data has landed.
abandonedReasonStringOperator-supplied reason if the meeting has been abandoned. Null otherwise.
abandonedAtDateTimeTimestamp the meeting was abandoned. Null otherwise.
legacyIdsLegacyIds
courseCourse!The course (venue) hosting the meeting.
competitionCompetitionCompetition / series this meeting belongs to, if any (e.g. a championship).
races[Race!]!Races on the card, ordered by raceNumber.
raceCountIntNumber of races on the card. Useful when you want the count without fetching the races list.
versionInt!Optimistic-locking version counter — increments on every write.
createdAtDateTime!
updatedAtDateTime!
sourceString!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.