From d2791b046a28c232573f4d55fbeca5a6912dd635 Mon Sep 17 00:00:00 2001 From: Lars Henriksen Date: Wed, 27 May 2020 21:49:36 +0200 Subject: 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 Signed-off-by: Lukas Fleischer --- test/data/ical-003.ical | 27 +++++++++++++++++++++++++++ test/data/ical-009.ical | 11 +++++++++++ 2 files changed, 38 insertions(+) (limited to 'test/data') diff --git a/test/data/ical-003.ical b/test/data/ical-003.ical index 599d24f..d715009 100644 --- a/test/data/ical-003.ical +++ b/test/data/ical-003.ical @@ -22,4 +22,31 @@ EXDATE:20000215T000000 EXDATE:20000223T000000 SUMMARY:Recurring appointment END:VEVENT +BEGIN:VEVENT +DTSTART:20200526T120000 +DURATION:PT1H17M0S +RRULE:FREQ=DAILY;UNTIL=20200529T130000 +SUMMARY: until May 29 2020\, 13:00 +END:VEVENT +BEGIN:VEVENT +DTSTART:20200526T120000 +DURATION:PT1H17M0S +RRULE:FREQ=DAILY;UNTIL=20200529T110000 +SUMMARY: until May 29 2020\, 11:00 +END:VEVENT +BEGIN:VEVENT +DTSTART:20200531T214500 +DURATION:PT15M0S +RRULE:FREQ=MONTHLY;COUNT=10 +EXDATE:20200731T214500,20210131T214500 +SUMMARY:monthly on 31th\, count 10\, exceptions 31/7/2020 and 31/1/2021 +END:VEVENT +BEGIN:VEVENT +DTSTAMP: +UID: +DTSTART;VALUE=DATE:20200502 +DTEND;VALUE=DATE:20200504 +DESCRIPTION:The first weekend in May is a two-day event. +SUMMARY:First weekend in May +END:VEVENT END:VCALENDAR diff --git a/test/data/ical-009.ical b/test/data/ical-009.ical index 1828417..b5a6575 100644 --- a/test/data/ical-009.ical +++ b/test/data/ical-009.ical @@ -111,6 +111,17 @@ 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 -- cgit v1.2.3-54-g00ecf