Support graph traversal of linked iCalendar and vCard objects
This library makes use of relationships defined in iCalendar and vCard objects to
construct a traversable, directed graph. For iCalendar objects these relationships
are typically defined in RELATED-TO
, LINK
, and STRUCTURED-DATA
properties. vCard
relationships are typically defined by the MEMBER
, RELATED
, FBURL
and
CALURI
properties.
The following properties are used to construct a graph edge from an iCalendar component to another object.
The RELATED-TO
iCalendar property is supported in VEVENT
, VTODO
and VJOURNAL
components. It is used to refer specifically to another iCalendar component, which
may be defined in the same collection or externally.
The LINK
iCalendar property may be used in any iCalendar component to provide a link
to a related resource. Whilst this may seem similar to the RELATED-TO
property, a
link supports labels and link typing via additional parameters.
The STRUCTURED-DATA
iCalendar property supports specifying additional data either
inline or via a reference to an external resource. This may include references to
alternate representations of a component, such as a vCard for a participant component.
The following properties are used to construct a graph edge from a vCard object to another object.
A vCard defined as a group (via the KIND
property) may include references to other
vCard objects via the MEMBER
property.
A vCard object may also define one or more RELATED
properties that refer to another
vCard object to represent some kind of relationship.
The FBURL
property is used in a vCard object to refer to an iCalendar object representing
busy time data for the subject of the vCard.
The CALURI
property is used in vCard to refer to related iCalendar objects.