summaryrefslogtreecommitdiff
path: root/lib/render/emit_ics.mli
blob: 270bd767e330697e9a0ef7fb2ae61dbf2c075a9d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
(* emit_ics.mli *)
(** RFC 5545 iCalendar. NOT a template job: folding, escaping, exclusive DTEND
    and stable UIDs are rules a logic-less template cannot enforce, and getting
    any of them wrong produces a feed that fails silently in a subscriber's
    client (spec section 6). *)

(** [year ?dtstamp ?calname view].

    [dtstamp] defaults to [YYYY0101T000000Z] for the view's own year. It is a
    PARAMETER, never a clock read: RFC 5545 requires DTSTAMP, the obvious
    implementation reads the wall clock, and that would both violate the
    kernel's determinism rule and make two feeds from identical data differ
    byte-for-byte -- defeating reproducible builds and a reviewable git diff on
    a published tree. Same data in, same bytes out. *)
val year : ?dtstamp:string -> ?calname:string -> Template.value -> string