Being able to place limits on Events that relate to other Events is a powerful feature. The Constraints element allows an Event to be sequenced relative to one-or-more other Events.
[ <AfterEvent Key=’key’/> | <BeforeEvent Key=’key’/> ]
| <FromEvent Key=’key’/> ] | <UntilEvent Key=’key’/> ]
| <AtEvent Key=’key’/> ] ...
[ NARRATIVE_TEXT ] ...
The interpretations of the elements are as follows:
The context of the Constraint, i.e. whether it appears in a <When> or <Until> element, determines whether it relates to the start or end date. If the specified Event is a simple Event then its only date is always applicable. Only one constraint for a given context may be established between two particular Events (e.g. no duplication for a start date), and they must not be self-referential.
Note that AtEvent is subtly different to an IsEventLnk in the associated <When> or <Until> element. AtEvent is merely equating the dates of two Events whereas the IsEventLnk is providing a hierarchical association between two related Events.