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
idID! requiredStable Podium identifier (UUID).
meetingDateDate! requiredLocal date the meeting runs on, in the course’s time zone (ISO YYYY-MM-DD).
meetingTypeMeetingType! required
statusMeetingStatus! required
nameStringOptional display name for the meeting (e.g. a festival day’s branded name). Null for most fixtures.
countryCodeString! requiredISO 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.
courseCourse! requiredThe course (venue) hosting the meeting.
competitionCompetitionCompetition / series this meeting belongs to, if any (e.g. a championship).
races[Race!]! requiredRaces on the card, ordered by raceNumber.
raceCountIntNumber of races on the card. Useful when you want the count without fetching the races list.
televisedBoolean! 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.
versionInt! requiredOptimistic-locking version counter — increments on every write.
createdAtDateTime! required
updatedAtDateTime! required
sourceString! 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.