@node VComponent Create @section Vcomponent Create Procedures for declarativly creating components (instead of the primitive procedural API). @defun vcomponent type [key: prop] ... children Creates a new vcomponent of @var{type}. Each kv-pair should contain a keyword @var{key}, and a value which is either a direct value, or the return value of @code{with-parameters} or @code{as-list}. @var{children} should be a list of other vcomponent's. @end defun @defun vcalendar @defunx vevent @defunx vtimezone @defunx standard @defunx daylight Calls @code{vcomponent}, with type set to the procedure name (but up-cased). @end defun @defun with-parameters [key: param] ... value Allows setting parameters for a property as created by @code{vcomponent}. @var{value} follows the same rules as in @code{vcomponent}. Multiple @var{key}, @var{value} pairs can be given, where each key must be a keyword. @end defun @defun as-list lst Allows setting list values when using @code{vcomponent}. Without this a list value would be stored as a single value, while with this a list of values is instead stored (as, for example, in EXDATE). A list of list types could be hard-coded, but even then this procedure is needed since custom types might need it. @end defun