Build the scheduling messages of iTIP (RFC 5546) from a calendar, and apply those you receive to a stored one. A message is a calendar with a METHOD.
The namespace sends nothing. For e-mail by iMIP (RFC 6047), content-type gives a message's MIME type and originator the address it should come from, which the receiver checks against the mail's verified sender (RFC 6047, section 3).
Build the scheduling messages of iTIP (RFC 5546) from a calendar, and apply those you receive to a stored one. A message is a calendar with a METHOD. The namespace sends nothing. For e-mail by iMIP (RFC 6047), content-type gives a message's MIME type and originator the address it should come from, which the receiver checks against the mail's verified sender (RFC 6047, section 3).
(add cal)(add cal opts)The calendar cal, with instances to add to a recurring event that
the attendees already have, as an ADD message with an incremented
SEQUENCE. The opts can give :now, the inst to use for its DTSTAMPs.
The calendar `cal`, with instances to add to a recurring event that the attendees already have, as an ADD message with an incremented SEQUENCE. The `opts` can give :now, the inst to use for its DTSTAMPs.
(address s)The calendar user address s (RFC 5545, section 3.3.3) without mailto:
and in lower case, so that two addresses compare.
The calendar user address `s` (RFC 5545, section 3.3.3) without mailto: and in lower case, so that two addresses compare.
(apply cal msg)The stored calendar cal with the message msg applied to it, by the
message's method:
Any other method leaves cal unchanged.
The stored calendar `cal` with the message `msg` applied to it, by the message's method: - REPLY: the organizer's copy takes the attendee's PARTSTAT, unless the reply is to an older SEQUENCE. A reply to one instance adds an override for it. - REQUEST, PUBLISH or ADD: the newer components (see newer?) replace the stored ones, and a new master replaces all the stored components with its UID. - CANCEL: the cancelled components, with their STATUS, replace the stored ones or are added. Any other method leaves `cal` unchanged.
(cancel cal)(cancel cal attendees)(cancel cal attendees opts)The calendar cal as a CANCEL message, with STATUS:CANCELLED and an
incremented SEQUENCE in each scheduled component. With the addresses
attendees, it's instead the message that removes those attendees from
the event: it lists only them, and leaves STATUS alone. The opts can
give :now, the inst to use for its DTSTAMPs.
The calendar `cal` as a CANCEL message, with STATUS:CANCELLED and an incremented SEQUENCE in each scheduled component. With the addresses `attendees`, it's instead the message that removes those attendees from the event: it lists only them, and leaves STATUS alone. The `opts` can give :now, the inst to use for its DTSTAMPs.
(content-type msg)The MIME type of the message msg in an iMIP e-mail.
(content-type msg) ;; => "text/calendar; method=REQUEST; charset=UTF-8"
The MIME type of the message `msg` in an iMIP e-mail. (content-type msg) ;; => "text/calendar; method=REQUEST; charset=UTF-8"
(counter cal)(counter cal opts)The calendar cal, as an attendee would change it, as a COUNTER that
proposes the change to the organizer. The opts can give :now, the inst
to use for its DTSTAMPs.
The calendar `cal`, as an attendee would change it, as a COUNTER that proposes the change to the organizer. The `opts` can give :now, the inst to use for its DTSTAMPs.
(decline-counter msg)(decline-counter msg opts)The DECLINECOUNTER with which an organizer turns down the proposal of
the COUNTER message msg. The opts can give :now, the inst to use for
its DTSTAMPs.
The DECLINECOUNTER with which an organizer turns down the proposal of the COUNTER message `msg`. The `opts` can give :now, the inst to use for its DTSTAMPs.
(messages old new user)(messages old new user opts)The messages that the calendar user with the address user sends when
their copy of a calendar changes from old to new, either of which
can be nil for an event that's new or deleted. Each is a map of :method,
:recipient, :calendar, the message, and :significant?, whether the
change is one that RFC 5546, section 2.1.4, calls significant.
The organizer sends a REQUEST to each attendee when anything changed,
and a CANCEL to those who were removed. An attendee sends a REPLY to the
organizer when their PARTSTAT changed, and declines when they delete the
event. The opts can give :now, the inst to use for the DTSTAMPs.
(messages old new "mailto:board@gf.example")
;; => [{:method "REQUEST" :recipient "mailto:simon@gf.example"
;; :calendar {...} :significant? true}]
The messages that the calendar user with the address `user` sends when
their copy of a calendar changes from `old` to `new`, either of which
can be nil for an event that's new or deleted. Each is a map of :method,
:recipient, :calendar, the message, and :significant?, whether the
change is one that RFC 5546, section 2.1.4, calls significant.
The organizer sends a REQUEST to each attendee when anything changed,
and a CANCEL to those who were removed. An attendee sends a REPLY to the
organizer when their PARTSTAT changed, and declines when they delete the
event. The `opts` can give :now, the inst to use for the DTSTAMPs.
(messages old new "mailto:board@gf.example")
;; => [{:method "REQUEST" :recipient "mailto:simon@gf.example"
;; :calendar {...} :significant? true}](newer? a b)Whether the component a is a newer version than the component b.
Whether the component `a` is a newer version than the component `b`.
(originator msg)The calendar user address that the message msg should come from: the
ATTENDEE for a REPLY, a REFRESH or a COUNTER, and the ORGANIZER for any
other method.
The calendar user address that the message `msg` should come from: the ATTENDEE for a REPLY, a REFRESH or a COUNTER, and the ORGANIZER for any other method.
(publish cal)(publish cal opts)The calendar cal as a PUBLISH message, without attendees. The opts
can give :now, the inst to use for its DTSTAMPs.
The calendar `cal` as a PUBLISH message, without attendees. The `opts` can give :now, the inst to use for its DTSTAMPs.
(refresh cal attendee)(refresh cal attendee opts)The REFRESH from the attendee with the address attendee, which asks
the organizer for the latest version of the calendar cal. The opts
can give :now, the inst to use for its DTSTAMPs.
The REFRESH from the attendee with the address `attendee`, which asks the organizer for the latest version of the calendar `cal`. The `opts` can give :now, the inst to use for its DTSTAMPs.
(reply cal attendee partstat)(reply cal attendee partstat opts)The REPLY from the attendee with the address attendee to the calendar
cal, with the participation status partstat, e.g. "ACCEPTED",
"DECLINED" or "TENTATIVE". Each scheduled component keeps only its
UID, RECURRENCE-ID, SEQUENCE, DTSTART and ORGANIZER, and the attendee,
who is added if the organizer didn't invite them. The opts can give
:now, the inst to use for its DTSTAMPs.
(reply cal "mailto:simon@gf.example" "ACCEPTED")
The REPLY from the attendee with the address `attendee` to the calendar
`cal`, with the participation status `partstat`, e.g. "ACCEPTED",
"DECLINED" or "TENTATIVE". Each scheduled component keeps only its
UID, RECURRENCE-ID, SEQUENCE, DTSTART and ORGANIZER, and the attendee,
who is added if the organizer didn't invite them. The `opts` can give
:now, the inst to use for its DTSTAMPs.
(reply cal "mailto:simon@gf.example" "ACCEPTED")(request cal)(request cal opts)The calendar cal as a REQUEST message, which an organizer sends to
invite the attendees or to update the event. The opts can give :now,
the inst to use for its DTSTAMPs.
The calendar `cal` as a REQUEST message, which an organizer sends to invite the attendees or to update the event. The `opts` can give :now, the inst to use for its DTSTAMPs.
(revise old new)The calendar new with a higher SEQUENCE in each scheduled component
that changes significantly from its version in the calendar old (see
significant-change?). The new SEQUENCE is one more than the higher of
the two, and a component that old lacks keeps its own.
The calendar `new` with a higher SEQUENCE in each scheduled component that changes significantly from its version in the calendar `old` (see significant-change?). The new SEQUENCE is one more than the higher of the two, and a component that `old` lacks keeps its own.
(significant-change? old new)Whether the component new changes a property of old that calls for
a new SEQUENCE, by RFC 5546, section 2.1.4: DTSTART, DTEND, DURATION,
DUE, RRULE, RDATE, EXDATE or STATUS.
Whether the component `new` changes a property of `old` that calls for a new SEQUENCE, by RFC 5546, section 2.1.4: DTSTART, DTEND, DURATION, DUE, RRULE, RDATE, EXDATE or STATUS.
(validation-errors msg)The ways that the message msg breaks the restriction table of RFC
5546, section 3, for its METHOD and its component, as maps like those of
ical/validation-errors, e.g. {:error :not-allowed-property :level :error
:path [:components 1] :property :attendee}. They come on top of the
message's errors as a calendar, which ical/validation-errors gives.
The ways that the message `msg` breaks the restriction table of RFC
5546, section 3, for its METHOD and its component, as maps like those of
ical/validation-errors, e.g. {:error :not-allowed-property :level :error
:path [:components 1] :property :attendee}. They come on top of the
message's errors as a calendar, which ical/validation-errors gives.cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |