feat(alarms): collect VALARM trigger offsets from iCalendar events

- Add `triggers` field to `Remind.rem` type to store alarm trigger
  offsets as `Timedesc.Span.t list`
- Implement `get_triggers` in `Utils` to extract duration-based triggers
  from audio/display alarms, ignoring email and NONE alarms
- Add `collect_triggers` collector that populates the triggers field and
  logs them to stderr for debugging
- Register `collect_triggers` in the collector pipeline
- Remove leftover debug log for processed filenames in `main.ml`
- Remove stale commented-out RRULE dataset and type documentation from
  `simple_recurrence`
This commit is contained in:
2026-05-23 17:54:38 +02:00
parent 8748a39b13
commit 1329dfd1f7
4 changed files with 35 additions and 48 deletions

View File

@@ -50,6 +50,7 @@ type rem = {
exdate : Icalendar.date_or_datetime list; (** List of excluded dates for recurring events *)
overrides : rem list; (** Single-event REMs generated from non-cancelled RECURRENCE-ID overrides *)
tz : Timedesc.Time_zone.t option; (** Timezone of the event's DTSTART, used for UNTIL conversion *)
triggers : Timedesc.Span.t list; (** List of trigger offsets for alarms, in seconds *)
}
(** A complete REM command *)
@@ -74,6 +75,7 @@ let empty =
exdate = [];
overrides = [];
tz = None;
triggers = [];
}
(* ── buffer primitives ────────────────────────────────────────── *)