Skip to content

Event Entity ​

← Back to Entity Types

Overview ​

An Event entity represents a single occurrence in time, place, and context that is relevant to the family archive. Events are discrete happenings like birth, marriage, death, baptism, etc.

Note: Facts and attributes such as occupation, nationality, and religion are typically represented as temporal properties on Person entities rather than events. Residence is an exception: it can be modeled as either a person property (for simple place references) or a residence event (when participants, dates, or detailed evidence are needed). See Person Entity for details on temporal properties.

File Format ​

All GENEALOGIX files use entity type keys at the top level:

yaml
# Any .glx file (commonly in events/ directory)
events:
  event-birth-john-1850:
    type: birth
    date: "1850-01-15"
    place: place-leeds
    participants:
      - person: person-john-smith
        role: subject

Key Points:

  • Entity ID is the map key (event-birth-john-1850)
  • IDs can be descriptive or random, 1-64 alphanumeric/hyphens

Core Concepts ​

Lifecycle Events ​

Standard events that occur in a person's life:

  • Birth, Death, Marriage, Divorce, Engagement, Adoption
  • Baptism, Confirmation, Bar/Bat Mitzvah, Burial, Cremation

Custom Events ​

Domain-specific events can be added via vocabularies:

  • Military service, Migration/Immigration, Land transactions, Legal proceedings

Fields ​

Required Fields ​

FieldTypeDescription
Entity ID (map key)stringUnique identifier (alphanumeric/hyphens, 1-64 chars)
typestringEvent type (birth, death, marriage, etc.)
participantsarrayPeople involved in the event (at least one required)

Optional Fields ​

FieldTypeDescription
titlestringShort label for the event (e.g., "1860 Census — Webb Household"). Auto-generated on GEDCOM import from participant names and date (e.g., "Birth of Robert Webb (1815)"). Distinct from properties.description, which is a longer narrative
datestringDate or date range (see Date Format)
placestringReference to Place entity
propertiesobjectVocabulary-defined properties
notesstring | string[]Free-form notes

Participant Object Fields ​

FieldTypeRequiredDescription
personstringYesReference to Person entity
rolestringNoRole of participant
propertiesobjectNoPer-participant properties (e.g., age_at_event)
notesstring | string[]NoNotes about participant's involvement

Participant Structure ​

yaml
participants:
  - person: "person-abc123de"
    role: "subject"
    notes: "The bride"
  - person: "person-def456gh"
    role: "officiant"
    notes: "The minister"
  - person: "person-ghi789jk"
    role: "witness"

Properties ​

Event properties are defined in the archive's vocabularies/event-properties.glx file. Standard properties include:

  • description - Narrative description of the event

Note: Event timing and location are handled by the date and place fields, not properties.

See Vocabularies - Event Properties for:

  • Complete list of standard event properties
  • How to add custom event properties

Event Types ​

Event types are defined in the archive's vocabularies/event-types.glx file. Each archive includes standard types and can define custom types as needed.

See Vocabularies - Event Types for:

  • Complete list of standard event types
  • How to add custom event types
  • Vocabulary file structure and examples
  • Validation requirements

Usage Patterns ​

Birth Event Example ​

yaml
events:
  event-birth-john:
    type: birth
    date: "1850-01-15"
    place: place-leeds
    participants:
      - person: person-john-smith
        role: subject

Complex Event with Multiple Participants ​

yaml
events:
  event-marriage-john-mary:
    type: marriage
    date: "1875-05-10"
    place: place-stpauls
    participants:
      - person: person-john-smith
        role: groom
      - person: person-mary-jones
        role: bride
      - person: person-thomas-brown
        role: witness
        notes: "First witness"
      - person: person-sarah-white
        role: witness
        notes: "Second witness"
      - person: person-reverend-black
        role: officiant
    properties:
      description: "Marriage celebrated at St Paul's Cathedral"

Census Event with Per-Participant Properties ​

Census events and similar multi-person events can record per-participant data using the properties field on each participant entry:

yaml
events:
  event-1860-census-webb:
    title: "1860 Census — Webb Household"
    type: census
    date: "1860"
    place: place-oakdale-hartford-wi
    participants:
      - person: person-robert-webb
        role: subject
        properties:
          age_at_event: "45"
      - person: person-jane-webb
        role: subject
        properties:
          age_at_event: "28"
      - person: person-harriett-webb
        role: subject
        properties:
          age_at_event: "8"

Participant-level properties use the same vocabulary as event properties (event-properties.glx) and are validated against it. This avoids needing separate events for each person in a shared event like a census enumeration.

File Organization ​

Note: File organization is flexible. Entities can be in any .glx file with any directory structure. The example below shows one-entity-per-file organization, which is recommended for collaborative projects (better git diffs) but not required.

Event files are typically stored in an events/ directory:

text
events/
├── event-birth-001.glx
├── event-marriage-001.glx
├── event-death-001.glx
├── event-baptism-001.glx
└── event-adoption-001.glx

GEDCOM Mapping ​

Most events map directly to GEDCOM tags:

GLX Event TypeGEDCOM TagNotes
birthINDI.BIRTIndividual birth
deathINDI.DEATIndividual death
marriageFAM.MARRFamily marriage
divorceFAM.DIVFamily divorce
baptismINDI.BAPM/CHRBaptism or christening
burialINDI.BURIBurial

Note: GEDCOM attributes like OCCU (occupation) and RELI (religion) are imported as temporal properties on Person entities, not events. RESI is imported as either a temporal residence property (when a PLAC is present) or as a residence event (when no PLAC is present, e.g., bare RESI Y or RESI with only DATE/TYPE).

Multi-Participant Events ​

For events with multiple participants, GLX uses the ASSO (Associate) tag pattern:

text
0 FAM
1 MARR
2 DATE 10 MAY 1875
2 PLAC Leeds, Yorkshire, England
1 ASSO person-witness1
2 RELA Witness
1 ASSO person-vicar
2 RELA Officiant

Participant Roles ​

Participant roles (principal, witness, officiant, etc.) are defined in the archive's vocabularies/participant-roles.glx file.

See Vocabularies - Participant Roles for:

  • Complete list of standard participant roles
  • How to add custom roles
  • Vocabulary file structure and examples
  • Which roles apply to events vs. relationships

Design Note: Participant Requirement ​

Events require at least one participant. GLX is a genealogy format, and every event should connect to at least one person in the archive. Historical context (wars, famines, plagues) that affected a person can be recorded in event notes or properties, with the affected person as a participant. Events with no connection to any person in the archive are outside the scope of a genealogy file.

Validation Rules ​

  • Event type must be from the event types vocabulary
  • At least one participant is required
  • Place, if referenced, must exist in the archive
  • All person references must point to existing Person entities
  • Date formats must follow genealogical date conventions
  • Participant roles should be from the participant roles vocabulary (unknown roles generate warnings)

Confidence and Provenance ​

All supporting evidence for an event is stored in Assertion Entities that reference the event in their subject field. This keeps the event record clean while allowing for a rich, explicit evidence trail.

Schema Reference ​

See event.schema.json for the complete JSON Schema definition.

See Also ​

Licensed under Apache License 2.0