@node types @subsection types.js Collection of type information for calendar data. @defvar all_types Name of all valid icalendar types. text, uri, binary, float, integer, date-time, date, duration, period, utc-offset, cal-address, recur, boolean, @end defvar @deftp {Data Type} ical_type The union of all elements in @var{all_types}. @end deftp @defvar property_names All known names properties (top level keys) can have. Such as ``calscale'', ``dtstart'', ... @end defvar @deftypevar {Map} valid_fields Which property fields each component can hold. @verbatim { 'VCALENDAR': ['PRODID', 'VERSION', 'CALSCALE', 'METHOD'], ... } @end verbatim @end deftypevar @deftypevar {Map>} valid_input_types Which types are valid to store under each property. If multiple values are an option for that property, then the list of possibilities will contain a sub-list (see example). @verbatim { 'DTSTART': ['date', 'date-time'], 'CATEGORIES': [['text']], ... } @end verbatim @end deftypevar @deftp {Data Type} tagname Alias of (@code{'vevent'} | @code{'string'}). @end deftp @deftp {Data Type} uid Alias of @code{'string'}. @end deftp @c TODO link to the RFC @c - RFC 7265 (jCal) @deftp {Data Type} JCalProperty Alias for a record consisting of @itemize @bullet @item the name of the type, as a string @item All parameters of the object, as a @code{Record} @footnote{Which is simply a regular javascript object, mapping strings to anything}. @item An @code{ical_type} value, noting the type of the final field(s) @item And one or more values of the type specified by the third field. @end itemize @end deftp @deftp {Data Type} JCal A record consisting of a @code{tagname}, a list of @code{JCalProperties}, and a list of other @code{JCal} objects. @end deftp @defvar xcal The xml namespace name for xcalendar, which is ``urn:ietf:params:xml:ns:icalendar-2.0''. @end defvar @deftp {Interface} ChangeLogEntry @anchor{ChangeLogEntry} @ref{VEventChangelog} @deftypecv {Interface Field} ChangeLogEntry {(@code{'calendar'} | @code{'property'})} type @end deftypecv @deftypecv {Interface Field} ChangeLogEntry {string} name @end deftypecv @deftypecv {Interface Field} ChangeLogEntry {string?} from @end deftypecv @deftypecv {Interface Field} ChangeLogEntry {string?} to @end deftypecv @end deftp