docs(eventPredicates): remove case analysis predicate comments
This commit is contained in:
@@ -1,152 +1,6 @@
|
||||
open Icalendar
|
||||
open Utils
|
||||
|
||||
(* CASE ANALYSIS PREDICATES
|
||||
- id: P00 ✅
|
||||
pattern: Ha un SUMMARY?
|
||||
ics: "SUMMARY:…"
|
||||
remind_support: nativo
|
||||
strategia: "REM <data> MSG <summary>"
|
||||
snippet: 'REM 2025-12-25 MSG Natale'
|
||||
priorita: Subito
|
||||
|
||||
- id: P01 ✅
|
||||
pattern: All-day singolo
|
||||
ics: "DTSTART;VALUE=DATE, opzionale DTEND=giorno+1"
|
||||
remind_support: nativo
|
||||
strategia: "REM <data> MSG <summary>"
|
||||
snippet: 'REM 2025-12-25 MSG Natale'
|
||||
priorita: Subito
|
||||
|
||||
- id: P02 ✅
|
||||
pattern: All-day multi-giorno
|
||||
ics: "DTSTART;VALUE=DATE + DTEND;VALUE=DATE esclusivo"
|
||||
remind_support: nativo+accorgimenti
|
||||
strategia: "espandi in eventi giornalieri; stesso SUMMARY"
|
||||
snippet: 'REM 2025-08-10 THROUGH 2025-08-15 MSG Ferie # oppure espansione per-giorno'
|
||||
priorita: Subito
|
||||
|
||||
- id: P03 ✅
|
||||
pattern: Evento a orario locale
|
||||
ics: "DTSTART;TZID=… + DTEND oppure DURATION"
|
||||
remind_support: nativo
|
||||
strategia: "REM <data> AT <hh:mm> [DURATION] MSG …"
|
||||
snippet: 'REM 2025-10-05 AT 09:00 DURATION 1:00 MSG Riunione'
|
||||
priorita: Subito
|
||||
|
||||
- id: P04 ✅
|
||||
pattern: Evento a orario in UTC
|
||||
ics: "DTSTART/DTEND con suffisso Z"
|
||||
remind_support: nativo+accorgimenti
|
||||
strategia: "converti a fuso locale prima di emettere AT"
|
||||
snippet: 'REM 2025-09-03 AT 06:45 MSG Treno'
|
||||
priorita: Subito
|
||||
|
||||
- id: P05 ✅
|
||||
pattern: Ricorrenza settimanale semplice
|
||||
ics: "RRULE:FREQ=WEEKLY;BYDAY=…;[UNTIL|COUNT]"
|
||||
remind_support: nativo
|
||||
strategia: "REM <giorni> FROM <start> [UNTIL <end>] AT <hh:mm> MSG …"
|
||||
snippet: 'REM Mon Wed FROM 2025-09-01 UNTIL 2025-10-31 AT 09:00 MSG Standup'
|
||||
priorita: Subito
|
||||
|
||||
- id: P06 ✅
|
||||
pattern: Ricorrenza giornaliera semplice
|
||||
ics: "RRULE:FREQ=DAILY;[UNTIL|COUNT]"
|
||||
remind_support: nativo
|
||||
strategia: "REM FROM <start> UNTIL <end> AT <hh:mm> EVERY 1 MSG …"
|
||||
snippet: 'REM FROM 2025-10-01 UNTIL 2025-10-10 AT 08:30 MSG Daily'
|
||||
priorita: Subito
|
||||
|
||||
- id: P07 ✅
|
||||
pattern: Ricorrenza mensile per giorno fisso
|
||||
ics: "RRULE:FREQ=MONTHLY;BYMONTHDAY=…"
|
||||
remind_support: nativo
|
||||
strategia: "REM <giorno-num> AT <hh:mm> FROM/UNTIL"
|
||||
snippet: 'REM 15 AT 10:00 FROM 2025-01-01 MSG Fatture'
|
||||
priorita: Dopo
|
||||
|
||||
- id: P08 ✅
|
||||
pattern: Ricorrenza “n-esimo weekday” del mese
|
||||
ics: "RRULE:FREQ=MONTHLY;BYDAY=MO;BYSETPOS=3"
|
||||
remind_support: espansione
|
||||
strategia: "materializza occorrenze in singoli REM o calcola in codice"
|
||||
snippet: '# genera REM per ciascuna data calcolata'
|
||||
priorita: Dopo
|
||||
|
||||
- id: P09 ✅
|
||||
pattern: Ricorrenza annuale semplice
|
||||
ics: "RRULE:FREQ=YEARLY;[BYMONTH][BYMONTHDAY]"
|
||||
remind_support: nativo
|
||||
strategia: "REM <data ricorrente> MSG …"
|
||||
snippet: 'REM Jul 29 MSG Compleanno'
|
||||
priorita: Dopo
|
||||
|
||||
- id: P10 ✅
|
||||
pattern: Eccezioni
|
||||
ics: "EXDATE (una o più), RDATE aggiuntive"
|
||||
remind_support: nativo+accorgimenti
|
||||
strategia: "usa OMIT per rimuovere date; aggiungi REM singoli per RDATE"
|
||||
snippet: 'REM Mon AT 09:00 FROM 2025-09-01 UNTIL 2025-10-31 MSG Standup\nOMIT 2025-10-13'
|
||||
priorita: Subito
|
||||
|
||||
- id: P11 ✅
|
||||
pattern: Override/cancellazioni per istanza
|
||||
ics: "RECURRENCE-ID con contenuto modificato o STATUS:CANCELLED"
|
||||
remind_support: espansione
|
||||
strategia: "OMIT la data dalla serie; aggiungi REM singolo con i campi override"
|
||||
snippet: '# serie + REM specifico per l’istanza'
|
||||
priorita: Subito
|
||||
|
||||
- id: P12 ✅
|
||||
pattern: DURATION al posto di DTEND
|
||||
ics: "DURATION:PT…"
|
||||
remind_support: nativo
|
||||
strategia: "mappa su DURATION <h:mm> in REM"
|
||||
snippet: 'REM 2025-10-05 AT 14:00 DURATION 2:30 MSG Workshop'
|
||||
priorita: Subito
|
||||
|
||||
- id: P13
|
||||
pattern: Allarmi
|
||||
ics: "VALARM DISPLAY/AUDIO/EMAIL; TRIGGER relativo"
|
||||
remind_support: parziale
|
||||
strategia: "mappa 1 allarme principale su WARN; multipli opzionali come REM duplicati HIDE"
|
||||
snippet: 'REM 2025-10-05 AT 09:00 WARN 15 MSG Riunione'
|
||||
priorita: Dopo
|
||||
|
||||
- id: P14 ✅
|
||||
pattern: Fusi orari dichiarati (VTIMEZONE, TZID diversi)
|
||||
ics: "VTIMEZONE + DTSTART;TZID=…"
|
||||
remind_support: nativo+accorgimenti
|
||||
strategia: "normalizza tutto al fuso locale del sistema prima dell’output"
|
||||
snippet: '# conversione in pre-processing'
|
||||
priorita: Subito
|
||||
|
||||
- id: P15 ❌ WILL NOT SUPPORT
|
||||
pattern: Partecipanti/organizzatore
|
||||
ics: "ORGANIZER, ATTENDEE*, PARTSTAT…"
|
||||
remind_support: non previsto
|
||||
strategia: "appendi a DESCRIPTION/MSG come testo"
|
||||
snippet: '# nessuna semantica in Remind'
|
||||
priorita: Quando serve
|
||||
|
||||
- id: P16 ❌ WILL NOT SUPPORT
|
||||
pattern: Allegati/URL esterni
|
||||
ics: "ATTACH, URL"
|
||||
remind_support: non previsto
|
||||
strategia: "conserva URL in coda al MSG"
|
||||
snippet: '# link nel testo'
|
||||
priorita: Quando serve
|
||||
|
||||
- id: P17 ✅
|
||||
pattern: Meeting online (Google/Teams metadati)
|
||||
ics: "X-GOOGLE-CONFERENCE, X-MICROSOFT-*"
|
||||
remind_support: non previsto
|
||||
strategia: "estrai solo URL di join nel MSG"
|
||||
snippet: '# riduci al link'
|
||||
priorita: Quando serve
|
||||
*)
|
||||
|
||||
type error = Invalid_date of string | Skip
|
||||
|
||||
let invalid_date s e = Error (Invalid_date (spf "Invalid date: %s, error: %s" s (show_error e)))
|
||||
|
||||
Reference in New Issue
Block a user