MeetingComponent
A MeetingComponent is a flat sub-event of a Meeting: a track, a session, a debate, a breakout, a keynote, an opening, a closing, a break, a reception, etc.
Replaces legacy ScheduleItem. Components are flat by design (no
nesting) per the 2026-07 architectural decision — nested tracks become
hard to query and render.
Kinds
COMPONENT_KIND covers both substantive and procedural sub-events:
| Group | Kinds |
|---|---|
| Substantive | track, session, debate, breakout, bof, plenary_session, working_group_session, committee_of_the_whole, keynote, address, statement, question_time |
| Procedural | opening, closing, break, reception, registration, networking |
| Open | other |
Fields (1.0)
| Field | Type | Description |
|---|---|---|
identifier |
String |
Local identifier. |
urn |
String |
URN. |
kind |
enum |
See table above. |
body_type |
String |
Free-form body-specific label (e.g. “Working Group Session”). |
title |
LocalizedString[0..*] |
Localized component title. |
description |
LocalizedString[0..*] |
Localized description. |
starts_at |
DateTime |
Start time. |
ends_at |
DateTime |
End time. |
time_label |
LocalizedString[0..*] |
Free-form time display (e.g. "9:00–10:30"). |
venue_refs |
String[0..*] |
URNs of Venues used by this component. |
officers |
Officer[0..*] |
Role-discriminated people leading this component (chair, co-chair, moderator, etc.). Mirrors Meeting.officers. |
agenda_ref |
String |
URN of an Agenda entry this component covers. |
minutes_ref |
String |
URN of a Minutes section. |
attendance_refs |
String[0..*] |
URNs of Attendance entries scoped to this component. |
extensions |
MeetingExtension[0..*] |
Profile-specific extensions. |
#duration_seconds returns the seconds between starts_at and
ends_at (nil when either is missing).
Officer (role-discriminated)
officers[] is a list of role-discriminated people. Each entry binds
a Contact (inline or { ref: urn:... }) to a role
(chair, vice_chair, secretary, etc.) — see
Officer. Use multiple Officer entries for co-chairs,
moderators, panelists, etc. A derived MeetingComponent#chair
accessor returns the first Officer with role=chair.
Example
components:
- identifier: plenary-opening
kind: opening
title:
- spelling: eng
value: Plenary opening
starts_at: 2026-03-15T09:00:00-05:00
ends_at: 2026-03-15T10:30:00-05:00
venue_refs:
- urn:edoxen:venue:isotc154:plenary-hall
officers:
- role: chair
person:
ref: urn:edoxen:contact:isotc154:jianfang-zhang
agenda_ref: urn:edoxen:agenda:isotc154:item-1
- identifier: committee-of-the-whole
kind: committee_of_the_whole
title:
- spelling: eng
value: Committee of the Whole — Budget Review
starts_at: 2026-03-15T14:00:00-05:00
ends_at: 2026-03-15T17:00:00-05:00
officers:
- role: chair
person:
name:
- spelling: eng
value: { formatted: Dr. Marcus Hale }