calcurse-edge/test/data/ical-009.ical
Lars Henriksen d2791b046a Update import of basic recurrence rules
Conversion of COUNT to UNTIL was a simple calculation which assumed one
repetiton per period (day, week, month or year); it does not take exception
days and invalid dates into account. Solved by a new function which returns the
n'th occurrence of a recurrence rule.

In calcurse UNTIL is interpreted as a day (DATE), in RFC 5545 as a time of day
(DATE-TIME). This has implications when a recurrence rule has an occurrence on
the UNTIL day, see comment in ical.c

An "Import:" note is added when a multi-day event is imported and turned into a
calcurse all-day event.

Icalendar quotes in comments have been updated to RFC 5545.

Signed-off-by: Lars Henriksen <LarsHenriksen@get2net.dk>
Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2020-06-13 10:56:15 -04:00

128 lines
2.5 KiB
Plaintext

BEGIN:VCALENDAR
VERSION:2.0
BEGIN:VEVENT
DTSTART:20200318T084100
DURATION:PT1H30M0S
SUMMARY:A simple appointment
END:VEVENT
BEGIN:VTODO
PRIORITY:1
SUMMARY:A simple todo
END:VTODO
BEGIN:VEVENT
DTSTART:
DURATION:PT1H30M0S
SUMMARY:missing start time
END:VEVENT
BEGIN:VEVENT
DTSTART:20200318T084100
DURATION:PT1H30M0S
RRULE:FREQ=HOURLY;INTERVAL=2;UNTIL=20200401T000000
SUMMARY:unsupported frequency
END:VEVENT
BEGIN:VEVENT
DTSTART:20200318T084100
DURATION:PT1H30M0S
SUMMARY malformed summary line
END:VEVENT
BEGIN:VTODO
PRIORITY:10
SUMMARY:invalid priority
END:VTODO
BEGIN:VEVENT
DTSTART:20200318T084100
DURATION:PT1H30M0S
RRULE:FREQ=DAILY;INTERVAL=2;UNTIL=20200401T000000
EXDATE 20200324T084100
SUMMARY:malformed exceptions line
END:VEVENT
BEGIN:VEVENT
DTSTART:20200318T084100
DURATION:PT1H30M0S
SUMMARY:Summary with more than\none line
END:VEVENT
BEGIN:VEVENT
DTSTART:20200318T084100
DURATION:PT1H30M0S
SUMMARY:malformed description line
DESCRIPTION something is missing
END:VEVENT
BEGIN:VEVENT
DTSTART:20200318T084100
DURATION:PT1H30M0S
SUMMARY:malformed description
DESCRIPTION:description with an unescaped semicolon (;)
END:VEVENT
BEGIN:VEVENT
DTSTART:20200318T084100
DURATION:PT1H30M0S
SUMMARY:empty DESCRIPTION
DESCRIPTION:
END:VEVENT
BEGIN:VTODO
PRIORITY:1
SUMMARY:an unescaped comma: ,
END:VTODO
BEGIN:VEVENT
DTSTART:20200406T221300
DURATION:PT0H15M0S
SUMMARY:Invalid STATUS
STATUS:confirmed
END:VEVENT
BEGIN:VEVENT
DTSTART:20200406T221300
DURATION:PT0H15M0S
SUMMARY:LOCATION twice
LOCATION:first
LOCATION:second
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20200406
DURATION:PT0H15M0S
SUMMARY:Invalid duration (must be days or weeks)
END:VEVENT
BEGIN:VEVENT
DTSTART:20200406
DURATION:P1D
SUMMARY:Invalid DTSTART value type
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20200406
SUMMARY:Invalid DTEND value type
DTEND:20200407
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20200406
DURATION:P1D
RRULE:FREQ=MONTHLY;UNTIL=20201030T120000Z
SUMMARY:Invalid UNTIL value
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20200406
DURATION:P1D
RRULE:FREQ=MONTHLY;UNTIL=20201030
EXDATE:20200606
SUMMARY:Invalid EXDATE value type
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20200406
DURATION:P1D
RRULE:FREQ=MONTHLY;UNTIL=20201030
EXDATE;VALUE=DATE:20200606T120000Z
SUMMARY:Invalid EXDATE value
END:VEVENT
BEGIN:VEVENT
DTSTART:20200527T163000
DTEND:20200528T163000
DURATION:P1D
SUMMARY:Both end time and duration
END:VEVENT
BEGIN:VEVENT
DTSTART:20200527T163000
DTEND:20200526T163000
SUMMARY:End time before start
END:VEVENT
BEGIN:VTODO
SUMMARY:finally\, missing end of item
END:VCALENDAR