Function: icalendar-vtodo-validator

icalendar-vtodo-validator is a byte-compiled function defined in icalendar-parser.el.gz.

Signature

(icalendar-vtodo-validator NODE)

Documentation

Additional validator for an icalendar-vtodo NODE.

Checks that NODE has conformant icalendar-due, icalendar-duration, and icalendar-dtstart properties, and calls icalendar-rrule-validator.

This function is called by icalendar-ast-node-valid-p for VTODO nodes; it is not normally necessary to call it directly.

Source Code

;; Defined in /usr/src/emacs/lisp/calendar/icalendar-parser.el.gz
(defun ical:vtodo-validator (node)
  "Additional validator for an `icalendar-vtodo' NODE.
Checks that NODE has conformant `icalendar-due',
`icalendar-duration', and `icalendar-dtstart' properties, and calls
`icalendar-rrule-validator'.

This function is called by `icalendar-ast-node-valid-p' for
VTODO nodes; it is not normally necessary to call it directly."
  (let* ((due (ical:ast-node-first-child-of 'ical:due node))
         (duration (ical:ast-node-first-child-of 'ical:duration node))
         (dtstart (ical:ast-node-first-child-of 'ical:dtstart node)))
    (when (and due duration)
      (ical:signal-validation-error
       (concat "`icalendar-due' and `icalendar-duration' properties "
               "must not appear in the same `icalendar-vtodo'")
       :node node))
    (when (and duration (not dtstart))
      (ical:signal-validation-error
       (concat "`icalendar-duration' requires `icalendar-dtstart' "
               "property in the same `icalendar-vtodo'")
       :node node)))
  (ical:rrule-validator node)
  ;; success:
  node)