diff --git a/src/test/icalrecur_test.out b/src/test/icalrecur_test.out index 5b3d1f4ef..d8bfccce1 100644 --- a/src/test/icalrecur_test.out +++ b/src/test/icalrecur_test.out @@ -1,366 +1,438 @@ +# Every day in January, for 3 years RRULE:FREQ=YEARLY;UNTIL=20000131T140000Z;BYMONTH=1;BYDAY=SU,MO,TU,WE,TH,FR,SA DTSTART:19980101T090000 INSTANCES:19980101T090000,19980102T090000,19980103T090000,19980104T090000,19980105T090000,19980106T090000,19980107T090000,19980108T090000,19980109T090000,19980110T090000,19980111T090000,19980112T090000,19980113T090000,19980114T090000,19980115T090000,19980116T090000,19980117T090000,19980118T090000,19980119T090000,19980120T090000,19980121T090000,19980122T090000,19980123T090000,19980124T090000,19980125T090000,19980126T090000,19980127T090000,19980128T090000,19980129T090000,19980130T090000,19980131T090000,19990101T090000,19990102T090000,19990103T090000,19990104T090000,19990105T090000,19990106T090000,19990107T090000,19990108T090000,19990109T090000,19990110T090000,19990111T090000,19990112T090000,19990113T090000,19990114T090000,19990115T090000,19990116T090000,19990117T090000,19990118T090000,19990119T090000,19990120T090000,19990121T090000,19990122T090000,19990123T090000,19990124T090000,19990125T090000,19990126T090000,19990127T090000,19990128T090000,19990129T090000,19990130T090000,19990131T090000,20000101T090000,20000102T090000,20000103T090000,20000104T090000,20000105T090000,20000106T090000,20000107T090000,20000108T090000,20000109T090000,20000110T090000,20000111T090000,20000112T090000,20000113T090000,20000114T090000,20000115T090000,20000116T090000,20000117T090000,20000118T090000,20000119T090000,20000120T090000,20000121T090000,20000122T090000,20000123T090000,20000124T090000,20000125T090000,20000126T090000,20000127T090000,20000128T090000,20000129T090000,20000130T090000,20000131T090000 PREV-INSTANCES:20000131T090000,20000130T090000,20000129T090000,20000128T090000,20000127T090000,20000126T090000,20000125T090000,20000124T090000,20000123T090000,20000122T090000,20000121T090000,20000120T090000,20000119T090000,20000118T090000,20000117T090000,20000116T090000,20000115T090000,20000114T090000,20000113T090000,20000112T090000,20000111T090000,20000110T090000,20000109T090000,20000108T090000,20000107T090000,20000106T090000,20000105T090000,20000104T090000,20000103T090000,20000102T090000,20000101T090000,19990131T090000,19990130T090000,19990129T090000,19990128T090000,19990127T090000,19990126T090000,19990125T090000,19990124T090000,19990123T090000,19990122T090000,19990121T090000,19990120T090000,19990119T090000,19990118T090000,19990117T090000,19990116T090000,19990115T090000,19990114T090000,19990113T090000,19990112T090000,19990111T090000,19990110T090000,19990109T090000,19990108T090000,19990107T090000,19990106T090000,19990105T090000,19990104T090000,19990103T090000,19990102T090000,19990101T090000,19980131T090000,19980130T090000,19980129T090000,19980128T090000,19980127T090000,19980126T090000,19980125T090000,19980124T090000,19980123T090000,19980122T090000,19980121T090000,19980120T090000,19980119T090000,19980118T090000,19980117T090000,19980116T090000,19980115T090000,19980114T090000,19980113T090000,19980112T090000,19980111T090000,19980110T090000,19980109T090000,19980108T090000,19980107T090000,19980106T090000,19980105T090000,19980104T090000,19980103T090000,19980102T090000,19980101T090000 +# Yearly in June and July for 10 occurrences RRULE:FREQ=YEARLY;COUNT=10;BYMONTH=6,7 DTSTART:19970610T090000 INSTANCES:19970610T090000,19970710T090000,19980610T090000,19980710T090000,19990610T090000,19990710T090000,20000610T090000,20000710T090000,20010610T090000,20010710T090000 PREV-INSTANCES:20010610T090000,20000710T090000,20000610T090000,19990710T090000,19990610T090000,19980710T090000,19980610T090000,19970710T090000,19970610T090000 +# Every other year on January, February, and March for 10 occurrences RRULE:FREQ=YEARLY;INTERVAL=2;COUNT=10;BYMONTH=1,2,3 DTSTART:19970310T090000 INSTANCES:19970310T090000,19990110T090000,19990210T090000,19990310T090000,20010110T090000,20010210T090000,20010310T090000,20030110T090000,20030210T090000,20030310T090000 PREV-INSTANCES:20030210T090000,20030110T090000,20010310T090000,20010210T090000,20010110T090000,19990310T090000,19990210T090000,19990110T090000,19970310T090000 +# Every third year on the 1st, 100th, and 200th day for 10 occurrences RRULE:FREQ=YEARLY;INTERVAL=3;COUNT=10;BYYEARDAY=1,100,200 DTSTART:19970101T090000 INSTANCES:19970101T090000,19970410T090000,19970719T090000,20000101T090000,20000409T090000,20000718T090000,20030101T090000,20030410T090000,20030719T090000,20060101T090000 PREV-INSTANCES:20030719T090000,20030410T090000,20030101T090000,20000718T090000,20000409T090000,20000101T090000,19970719T090000,19970410T090000,19970101T090000 +# Every 20th Monday of the year RRULE:FREQ=YEARLY;BYDAY=20MO;COUNT=3 DTSTART:19970519T090000 INSTANCES:19970519T090000,19980518T090000,19990517T090000 PREV-INSTANCES:19980518T090000,19970519T090000 +# Monday of week number 20 (where the default start of the week is Monday) RRULE:FREQ=YEARLY;BYWEEKNO=20;BYDAY=MO;COUNT=3 DTSTART:19970512T090000 INSTANCES:19970512T090000,19980511T090000,19990517T090000 PREV-INSTANCES:19980511T090000,19970512T090000 +# Monday of week number 20 (where the start of the week is Sunday) RRULE:FREQ=YEARLY;BYWEEKNO=20;BYDAY=MO;WKST=SU;COUNT=3 DTSTART:19970512T090000 INSTANCES:19970512T090000,19980518T090000,19990517T090000 PREV-INSTANCES:19980518T090000,19970512T090000 +# Monday of week number 20 (where the start of the week is Friday) RRULE:FREQ=YEARLY;BYWEEKNO=20;BYDAY=MO;WKST=FR;COUNT=3 DTSTART:19970512T090000 INSTANCES:19970519T090000,19980518T090000,19990517T090000 PREV-INSTANCES:19980518T090000,19970519T090000 +# Every Thursday in March RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=TH;COUNT=11 DTSTART:19970313T090000 INSTANCES:19970313T090000,19970320T090000,19970327T090000,19980305T090000,19980312T090000,19980319T090000,19980326T090000,19990304T090000,19990311T090000,19990318T090000,19990325T090000 PREV-INSTANCES:19990318T090000,19990311T090000,19990304T090000,19980326T090000,19980319T090000,19980312T090000,19980305T090000,19970327T090000,19970320T090000,19970313T090000 +# Every Thursday, but only during June, July, and August RRULE:FREQ=YEARLY;BYDAY=TH;BYMONTH=6,7,8;COUNT=39 DTSTART:19970605T090000 INSTANCES:19970605T090000,19970612T090000,19970619T090000,19970626T090000,19970703T090000,19970710T090000,19970717T090000,19970724T090000,19970731T090000,19970807T090000,19970814T090000,19970821T090000,19970828T090000,19980604T090000,19980611T090000,19980618T090000,19980625T090000,19980702T090000,19980709T090000,19980716T090000,19980723T090000,19980730T090000,19980806T090000,19980813T090000,19980820T090000,19980827T090000,19990603T090000,19990610T090000,19990617T090000,19990624T090000,19990701T090000,19990708T090000,19990715T090000,19990722T090000,19990729T090000,19990805T090000,19990812T090000,19990819T090000,19990826T090000 PREV-INSTANCES:19990819T090000,19990812T090000,19990805T090000,19990729T090000,19990722T090000,19990715T090000,19990708T090000,19990701T090000,19990624T090000,19990617T090000,19990610T090000,19990603T090000,19980827T090000,19980820T090000,19980813T090000,19980806T090000,19980730T090000,19980723T090000,19980716T090000,19980709T090000,19980702T090000,19980625T090000,19980618T090000,19980611T090000,19980604T090000,19970828T090000,19970821T090000,19970814T090000,19970807T090000,19970731T090000,19970724T090000,19970717T090000,19970710T090000,19970703T090000,19970626T090000,19970619T090000,19970612T090000,19970605T090000 +# Every 4 years, the first Thuesday after a Monday in November (U.S. Presidential Election Day) RRULE:FREQ=YEARLY;INTERVAL=4;BYMONTH=11;BYDAY=TU;BYMONTHDAY=2,3,4,5,6,7,8;COUNT=3 DTSTART:19961105T090000 INSTANCES:19961105T090000,20001107T090000,20041102T090000 PREV-INSTANCES:20001107T090000,19961105T090000 +# Friday in March occurring on or after the 26th for 5 years RRULE:FREQ=YEARLY;UNTIL=20100326T000000Z;BYDAY=FR;BYYEARDAY=-275,-276,-277,-278,-279,-280,-281 DTSTART:20060331T020000 INSTANCES:20060331T020000,20070330T020000,20080328T020000,20090327T020000 PREV-INSTANCES:20090327T020000,20080328T020000,20070330T020000,20060331T020000 +# Example where leap day gets skipped RRULE:FREQ=YEARLY;UNTIL=20140301T115959Z DTSTART:20120229T120000Z INSTANCES:20120229T120000Z PREV-INSTANCES:20120229T120000Z +# Monthly on the first Friday for 10 occurrences RRULE:FREQ=MONTHLY;COUNT=10;BYDAY=1FR DTSTART:19970905T090000 INSTANCES:19970905T090000,19971003T090000,19971107T090000,19971205T090000,19980102T090000,19980206T090000,19980306T090000,19980403T090000,19980501T090000,19980605T090000 PREV-INSTANCES:19980501T090000,19980403T090000,19980306T090000,19980206T090000,19980102T090000,19971205T090000,19971107T090000,19971003T090000,19970905T090000 +# Monthly on the first Friday until December 24, 1997 RRULE:FREQ=MONTHLY;UNTIL=19971224T000000Z;BYDAY=1FR DTSTART:19970905T090000 INSTANCES:19970905T090000,19971003T090000,19971107T090000,19971205T090000 PREV-INSTANCES:19971205T090000,19971107T090000,19971003T090000,19970905T090000 +# Every other month on the first and last Sunday of the month for 10 occurrences RRULE:FREQ=MONTHLY;INTERVAL=2;COUNT=10;BYDAY=1SU,-1SU DTSTART:19970907T090000 INSTANCES:19970907T090000,19970928T090000,19971102T090000,19971130T090000,19980104T090000,19980125T090000,19980301T090000,19980329T090000,19980503T090000,19980531T090000 PREV-INSTANCES:19980503T090000,19980329T090000,19980301T090000,19980125T090000,19980104T090000,19971130T090000,19971102T090000,19970928T090000,19970907T090000 +# Monthly on the second-to-last Monday of the month for 6 months RRULE:FREQ=MONTHLY;COUNT=6;BYDAY=-2MO DTSTART:19970922T090000 INSTANCES:19970922T090000,19971020T090000,19971117T090000,19971222T090000,19980119T090000,19980216T090000 PREV-INSTANCES:19980119T090000,19971222T090000,19971117T090000,19971020T090000,19970922T090000 +# Monthly on the third-to-last day of the month RRULE:FREQ=MONTHLY;BYMONTHDAY=-3;COUNT=6 DTSTART:19970928T090000 INSTANCES:19970928T090000,19971029T090000,19971128T090000,19971229T090000,19980129T090000,19980226T090000 PREV-INSTANCES:19980129T090000,19971229T090000,19971128T090000,19971029T090000,19970928T090000 +# Monthly on the 2nd and 15th of the month for 10 occurrences RRULE:FREQ=MONTHLY;COUNT=10;BYMONTHDAY=2,15 DTSTART:19970902T090000 INSTANCES:19970902T090000,19970915T090000,19971002T090000,19971015T090000,19971102T090000,19971115T090000,19971202T090000,19971215T090000,19980102T090000,19980115T090000 PREV-INSTANCES:19980102T090000,19971215T090000,19971202T090000,19971115T090000,19971102T090000,19971015T090000,19971002T090000,19970915T090000,19970902T090000 +# Monthly on the first and last day of the month for 10 occurrences RRULE:FREQ=MONTHLY;COUNT=10;BYMONTHDAY=1,-1 DTSTART:19970930T090000 INSTANCES:19970930T090000,19971001T090000,19971031T090000,19971101T090000,19971130T090000,19971201T090000,19971231T090000,19980101T090000,19980131T090000,19980201T090000 PREV-INSTANCES:19980131T090000,19980101T090000,19971231T090000,19971201T090000,19971130T090000,19971101T090000,19971031T090000,19971001T090000,19970930T090000 +# Every 18 months on the 10th thru 15th of the month for 10 occurrences RRULE:FREQ=MONTHLY;INTERVAL=18;COUNT=10;BYMONTHDAY=10,11,12,13,14,15 DTSTART:19970910T090000 INSTANCES:19970910T090000,19970911T090000,19970912T090000,19970913T090000,19970914T090000,19970915T090000,19990310T090000,19990311T090000,19990312T090000,19990313T090000 PREV-INSTANCES:19990312T090000,19990311T090000,19990310T090000,19970915T090000,19970914T090000,19970913T090000,19970912T090000,19970911T090000,19970910T090000 +# Every Thuesday, every other month for 18 occurrences RRULE:FREQ=MONTHLY;INTERVAL=2;BYDAY=TU;COUNT=18 DTSTART:19970902T090000 INSTANCES:19970902T090000,19970909T090000,19970916T090000,19970923T090000,19970930T090000,19971104T090000,19971111T090000,19971118T090000,19971125T090000,19980106T090000,19980113T090000,19980120T090000,19980127T090000,19980303T090000,19980310T090000,19980317T090000,19980324T090000,19980331T090000 PREV-INSTANCES:19980324T090000,19980317T090000,19980310T090000,19980303T090000,19980127T090000,19980120T090000,19980113T090000,19980106T090000,19971125T090000,19971118T090000,19971111T090000,19971104T090000,19970930T090000,19970923T090000,19970916T090000,19970909T090000,19970902T090000 +# Every Friday the 13th RRULE:FREQ=MONTHLY;BYDAY=FR;BYMONTHDAY=13;COUNT=5 DTSTART:19970902T090000 INSTANCES:19980213T090000,19980313T090000,19981113T090000,19990813T090000,20001013T090000 PREV-INSTANCES:19990813T090000,19981113T090000,19980313T090000,19980213T090000 +# The first Saturday that follows the first Sunday of the month RRULE:FREQ=MONTHLY;BYDAY=SA;BYMONTHDAY=7,8,9,10,11,12,13;COUNT=10 DTSTART:19970913T090000 INSTANCES:19970913T090000,19971011T090000,19971108T090000,19971213T090000,19980110T090000,19980207T090000,19980307T090000,19980411T090000,19980509T090000,19980613T090000 PREV-INSTANCES:19980509T090000,19980411T090000,19980307T090000,19980207T090000,19980110T090000,19971213T090000,19971108T090000,19971011T090000,19970913T090000 +# The third instance into the month of one of Tuesday, Wednesday, or Thursday, for the next 3 months RRULE:FREQ=MONTHLY;COUNT=3;BYDAY=TU,WE,TH;BYSETPOS=3 DTSTART:19970904T090000 INSTANCES:19970904T090000,19971007T090000,19971106T090000 PREV-INSTANCES:19971007T090000,19970904T090000 +# The second-to-last weekday of the month RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-2;COUNT=7 DTSTART:19970929T090000 INSTANCES:19970929T090000,19971030T090000,19971127T090000,19971230T090000,19980129T090000,19980226T090000,19980330T090000 PREV-INSTANCES:19980226T090000,19980129T090000,19971230T090000,19971127T090000,19971030T090000,19970929T090000 +# An example where an invalid date (i.e., February 30) is ignored RRULE:FREQ=MONTHLY;BYMONTHDAY=15,30;COUNT=5 DTSTART:20070115T090000 INSTANCES:20070115T090000,20070130T090000,20070215T090000,20070315T090000,20070330T090000 PREV-INSTANCES:20070315T090000,20070215T090000,20070130T090000,20070115T090000 +# Another example where invalid dates are ignored RRULE:FREQ=MONTHLY;COUNT=12 DTSTART:20070131T090000 INSTANCES:20070131T090000,20070331T090000,20070531T090000,20070731T090000,20070831T090000,20071031T090000,20071231T090000,20080131T090000,20080331T090000,20080531T090000,20080731T090000,20080831T090000 PREV-INSTANCES:20080731T090000,20080531T090000,20080331T090000,20080131T090000,20071231T090000,20071031T090000,20070831T090000,20070731T090000,20070531T090000,20070331T090000,20070131T090000 +# Weekly for 10 occurrences RRULE:FREQ=WEEKLY;COUNT=10 DTSTART:19970902T090000 INSTANCES:19970902T090000,19970909T090000,19970916T090000,19970923T090000,19970930T090000,19971007T090000,19971014T090000,19971021T090000,19971028T090000,19971104T090000 PREV-INSTANCES:19971028T090000,19971021T090000,19971014T090000,19971007T090000,19970930T090000,19970923T090000,19970916T090000,19970909T090000,19970902T090000 +# Weekly until December 24, 1997 RRULE:FREQ=WEEKLY;UNTIL=19971224T000000Z DTSTART:19970902T090000 INSTANCES:19970902T090000,19970909T090000,19970916T090000,19970923T090000,19970930T090000,19971007T090000,19971014T090000,19971021T090000,19971028T090000,19971104T090000,19971111T090000,19971118T090000,19971125T090000,19971202T090000,19971209T090000,19971216T090000,19971223T090000 PREV-INSTANCES:19971223T090000,19971216T090000,19971209T090000,19971202T090000,19971125T090000,19971118T090000,19971111T090000,19971104T090000,19971028T090000,19971021T090000,19971014T090000,19971007T090000,19970930T090000,19970923T090000,19970916T090000,19970909T090000,19970902T090000 +# Every other week RRULE:FREQ=WEEKLY;INTERVAL=2;WKST=SU;COUNT=13 DTSTART:19970902T090000 INSTANCES:19970902T090000,19970916T090000,19970930T090000,19971014T090000,19971028T090000,19971111T090000,19971125T090000,19971209T090000,19971223T090000,19980106T090000,19980120T090000,19980203T090000,19980217T090000 PREV-INSTANCES:19980203T090000,19980120T090000,19980106T090000,19971223T090000,19971209T090000,19971125T090000,19971111T090000,19971028T090000,19971014T090000,19970930T090000,19970916T090000,19970902T090000 +# Weekly on Tuesday and Thursday for five weeks RRULE:FREQ=WEEKLY;UNTIL=19971007T000000Z;WKST=SU;BYDAY=TU,TH DTSTART:19970902T090000 INSTANCES:19970902T090000,19970904T090000,19970909T090000,19970911T090000,19970916T090000,19970918T090000,19970923T090000,19970925T090000,19970930T090000,19971002T090000 PREV-INSTANCES:19971002T090000,19970930T090000,19970925T090000,19970923T090000,19970918T090000,19970916T090000,19970911T090000,19970909T090000,19970904T090000,19970902T090000 +# Weekly on Tuesday and Thursday for five weeks RRULE:FREQ=WEEKLY;COUNT=10;WKST=SU;BYDAY=TU,TH DTSTART:19970902T090000 INSTANCES:19970902T090000,19970904T090000,19970909T090000,19970911T090000,19970916T090000,19970918T090000,19970923T090000,19970925T090000,19970930T090000,19971002T090000 PREV-INSTANCES:19970930T090000,19970925T090000,19970923T090000,19970918T090000,19970916T090000,19970911T090000,19970909T090000,19970904T090000,19970902T090000 +# Weekly on Sunday every four weeks RRULE:FREQ=WEEKLY;INTERVAL=4;BYDAY=SU;COUNT=4 DTSTART:20150322T000000 INSTANCES:20150322T000000,20150419T000000,20150517T000000,20150614T000000 PREV-INSTANCES:20150517T000000,20150419T000000,20150322T000000 +# Every other week on Monday, Wednesday, and Friday until December 24, 1997, starting on Monday, September 1, 1997 RRULE:FREQ=WEEKLY;INTERVAL=2;UNTIL=19971224T000000Z;WKST=SU;BYDAY=MO,WE,FR DTSTART:19970901T090000 INSTANCES:19970901T090000,19970903T090000,19970905T090000,19970915T090000,19970917T090000,19970919T090000,19970929T090000,19971001T090000,19971003T090000,19971013T090000,19971015T090000,19971017T090000,19971027T090000,19971029T090000,19971031T090000,19971110T090000,19971112T090000,19971114T090000,19971124T090000,19971126T090000,19971128T090000,19971208T090000,19971210T090000,19971212T090000,19971222T090000 PREV-INSTANCES:19971222T090000,19971212T090000,19971210T090000,19971208T090000,19971128T090000,19971126T090000,19971124T090000,19971114T090000,19971112T090000,19971110T090000,19971031T090000,19971029T090000,19971027T090000,19971017T090000,19971015T090000,19971013T090000,19971003T090000,19971001T090000,19970929T090000,19970919T090000,19970917T090000,19970915T090000,19970905T090000,19970903T090000,19970901T090000 +# Every other week on Tuesday and Thursday, for 8 occurrences RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=8;WKST=SU;BYDAY=TU,TH DTSTART:19970902T090000 INSTANCES:19970902T090000,19970904T090000,19970916T090000,19970918T090000,19970930T090000,19971002T090000,19971014T090000,19971016T090000 PREV-INSTANCES:19971014T090000,19971002T090000,19970930T090000,19970918T090000,19970916T090000,19970904T090000,19970902T090000 +# Tuesday and Sunday every other week for 4 occurrences (week starts on Monday) RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=MO DTSTART:19970805T090000 INSTANCES:19970805T090000,19970810T090000,19970819T090000,19970824T090000 PREV-INSTANCES:19970819T090000,19970810T090000,19970805T090000 +# Tuesday and Sunday every other week for 4 occurrences (week starts on Sunday) RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU DTSTART:19970805T090000 INSTANCES:19970805T090000,19970817T090000,19970819T090000,19970831T090000 PREV-INSTANCES:19970819T090000,19970817T090000,19970805T090000 +# Weekly (with a trailing semicolon that was seen in the wild on Google Calendar) RRULE:FREQ=WEEKLY;INTERVAL=1;COUNT=2;BYDAY=MO; DTSTART:20141006T090000 INSTANCES:20141006T090000,20141013T090000 PREV-INSTANCES:20141006T090000 +# Daily for 10 occurrences RRULE:FREQ=DAILY;COUNT=10 DTSTART:19970902T090000 INSTANCES:19970902T090000,19970903T090000,19970904T090000,19970905T090000,19970906T090000,19970907T090000,19970908T090000,19970909T090000,19970910T090000,19970911T090000 PREV-INSTANCES:19970910T090000,19970909T090000,19970908T090000,19970907T090000,19970906T090000,19970905T090000,19970904T090000,19970903T090000,19970902T090000 +# Daily until December 24, 1997 RRULE:FREQ=DAILY;UNTIL=19971224T000000Z DTSTART:19970902T090000 INSTANCES:19970902T090000,19970903T090000,19970904T090000,19970905T090000,19970906T090000,19970907T090000,19970908T090000,19970909T090000,19970910T090000,19970911T090000,19970912T090000,19970913T090000,19970914T090000,19970915T090000,19970916T090000,19970917T090000,19970918T090000,19970919T090000,19970920T090000,19970921T090000,19970922T090000,19970923T090000,19970924T090000,19970925T090000,19970926T090000,19970927T090000,19970928T090000,19970929T090000,19970930T090000,19971001T090000,19971002T090000,19971003T090000,19971004T090000,19971005T090000,19971006T090000,19971007T090000,19971008T090000,19971009T090000,19971010T090000,19971011T090000,19971012T090000,19971013T090000,19971014T090000,19971015T090000,19971016T090000,19971017T090000,19971018T090000,19971019T090000,19971020T090000,19971021T090000,19971022T090000,19971023T090000,19971024T090000,19971025T090000,19971026T090000,19971027T090000,19971028T090000,19971029T090000,19971030T090000,19971031T090000,19971101T090000,19971102T090000,19971103T090000,19971104T090000,19971105T090000,19971106T090000,19971107T090000,19971108T090000,19971109T090000,19971110T090000,19971111T090000,19971112T090000,19971113T090000,19971114T090000,19971115T090000,19971116T090000,19971117T090000,19971118T090000,19971119T090000,19971120T090000,19971121T090000,19971122T090000,19971123T090000,19971124T090000,19971125T090000,19971126T090000,19971127T090000,19971128T090000,19971129T090000,19971130T090000,19971201T090000,19971202T090000,19971203T090000,19971204T090000,19971205T090000,19971206T090000,19971207T090000,19971208T090000,19971209T090000,19971210T090000,19971211T090000,19971212T090000,19971213T090000,19971214T090000,19971215T090000,19971216T090000,19971217T090000,19971218T090000,19971219T090000,19971220T090000,19971221T090000,19971222T090000,19971223T090000 PREV-INSTANCES:19971223T090000,19971222T090000,19971221T090000,19971220T090000,19971219T090000,19971218T090000,19971217T090000,19971216T090000,19971215T090000,19971214T090000,19971213T090000,19971212T090000,19971211T090000,19971210T090000,19971209T090000,19971208T090000,19971207T090000,19971206T090000,19971205T090000,19971204T090000,19971203T090000,19971202T090000,19971201T090000,19971130T090000,19971129T090000,19971128T090000,19971127T090000,19971126T090000,19971125T090000,19971124T090000,19971123T090000,19971122T090000,19971121T090000,19971120T090000,19971119T090000,19971118T090000,19971117T090000,19971116T090000,19971115T090000,19971114T090000,19971113T090000,19971112T090000,19971111T090000,19971110T090000,19971109T090000,19971108T090000,19971107T090000,19971106T090000,19971105T090000,19971104T090000,19971103T090000,19971102T090000,19971101T090000,19971031T090000,19971030T090000,19971029T090000,19971028T090000,19971027T090000,19971026T090000,19971025T090000,19971024T090000,19971023T090000,19971022T090000,19971021T090000,19971020T090000,19971019T090000,19971018T090000,19971017T090000,19971016T090000,19971015T090000,19971014T090000,19971013T090000,19971012T090000,19971011T090000,19971010T090000,19971009T090000,19971008T090000,19971007T090000,19971006T090000,19971005T090000,19971004T090000,19971003T090000,19971002T090000,19971001T090000,19970930T090000,19970929T090000,19970928T090000,19970927T090000,19970926T090000,19970925T090000,19970924T090000,19970923T090000,19970922T090000,19970921T090000,19970920T090000,19970919T090000,19970918T090000,19970917T090000,19970916T090000,19970915T090000,19970914T090000,19970913T090000,19970912T090000,19970911T090000,19970910T090000,19970909T090000,19970908T090000,19970907T090000,19970906T090000,19970905T090000,19970904T090000,19970903T090000,19970902T090000 +# Every other day, 20 occurrences RRULE:FREQ=DAILY;INTERVAL=2;COUNT=20 DTSTART:19970902T090000 INSTANCES:19970902T090000,19970904T090000,19970906T090000,19970908T090000,19970910T090000,19970912T090000,19970914T090000,19970916T090000,19970918T090000,19970920T090000,19970922T090000,19970924T090000,19970926T090000,19970928T090000,19970930T090000,19971002T090000,19971004T090000,19971006T090000,19971008T090000,19971010T090000 PREV-INSTANCES:19971008T090000,19971006T090000,19971004T090000,19971002T090000,19970930T090000,19970928T090000,19970926T090000,19970924T090000,19970922T090000,19970920T090000,19970918T090000,19970916T090000,19970914T090000,19970912T090000,19970910T090000,19970908T090000,19970906T090000,19970904T090000,19970902T090000 +# Every 10 days, 5 occurrences RRULE:FREQ=DAILY;INTERVAL=10;COUNT=5 DTSTART:19970902T090000 INSTANCES:19970902T090000,19970912T090000,19970922T090000,19971002T090000,19971012T090000 PREV-INSTANCES:19971002T090000,19970922T090000,19970912T090000,19970902T090000 +# Every day in January, for 3 years RRULE:FREQ=DAILY;UNTIL=20000131T140000Z;BYMONTH=1 DTSTART:19980101T090000 INSTANCES:19980101T090000,19980102T090000,19980103T090000,19980104T090000,19980105T090000,19980106T090000,19980107T090000,19980108T090000,19980109T090000,19980110T090000,19980111T090000,19980112T090000,19980113T090000,19980114T090000,19980115T090000,19980116T090000,19980117T090000,19980118T090000,19980119T090000,19980120T090000,19980121T090000,19980122T090000,19980123T090000,19980124T090000,19980125T090000,19980126T090000,19980127T090000,19980128T090000,19980129T090000,19980130T090000,19980131T090000,19990101T090000,19990102T090000,19990103T090000,19990104T090000,19990105T090000,19990106T090000,19990107T090000,19990108T090000,19990109T090000,19990110T090000,19990111T090000,19990112T090000,19990113T090000,19990114T090000,19990115T090000,19990116T090000,19990117T090000,19990118T090000,19990119T090000,19990120T090000,19990121T090000,19990122T090000,19990123T090000,19990124T090000,19990125T090000,19990126T090000,19990127T090000,19990128T090000,19990129T090000,19990130T090000,19990131T090000,20000101T090000,20000102T090000,20000103T090000,20000104T090000,20000105T090000,20000106T090000,20000107T090000,20000108T090000,20000109T090000,20000110T090000,20000111T090000,20000112T090000,20000113T090000,20000114T090000,20000115T090000,20000116T090000,20000117T090000,20000118T090000,20000119T090000,20000120T090000,20000121T090000,20000122T090000,20000123T090000,20000124T090000,20000125T090000,20000126T090000,20000127T090000,20000128T090000,20000129T090000,20000130T090000,20000131T090000 PREV-INSTANCES:20000131T090000,20000130T090000,20000129T090000,20000128T090000,20000127T090000,20000126T090000,20000125T090000,20000124T090000,20000123T090000,20000122T090000,20000121T090000,20000120T090000,20000119T090000,20000118T090000,20000117T090000,20000116T090000,20000115T090000,20000114T090000,20000113T090000,20000112T090000,20000111T090000,20000110T090000,20000109T090000,20000108T090000,20000107T090000,20000106T090000,20000105T090000,20000104T090000,20000103T090000,20000102T090000,20000101T090000,19990131T090000,19990130T090000,19990129T090000,19990128T090000,19990127T090000,19990126T090000,19990125T090000,19990124T090000,19990123T090000,19990122T090000,19990121T090000,19990120T090000,19990119T090000,19990118T090000,19990117T090000,19990116T090000,19990115T090000,19990114T090000,19990113T090000,19990112T090000,19990111T090000,19990110T090000,19990109T090000,19990108T090000,19990107T090000,19990106T090000,19990105T090000,19990104T090000,19990103T090000,19990102T090000,19990101T090000,19980131T090000,19980130T090000,19980129T090000,19980128T090000,19980127T090000,19980126T090000,19980125T090000,19980124T090000,19980123T090000,19980122T090000,19980121T090000,19980120T090000,19980119T090000,19980118T090000,19980117T090000,19980116T090000,19980115T090000,19980114T090000,19980113T090000,19980112T090000,19980111T090000,19980110T090000,19980109T090000,19980108T090000,19980107T090000,19980106T090000,19980105T090000,19980104T090000,19980103T090000,19980102T090000,19980101T090000 +# Every 20 minutes from 9:00 AM to 4:40 PM every day RRULE:FREQ=DAILY;BYHOUR=9,10,11,12,13,14,15,16;BYMINUTE=0,20,40;COUNT=48 DTSTART:19970902T090000 INSTANCES:19970902T090000,19970902T092000,19970902T094000,19970902T100000,19970902T102000,19970902T104000,19970902T110000,19970902T112000,19970902T114000,19970902T120000,19970902T122000,19970902T124000,19970902T130000,19970902T132000,19970902T134000,19970902T140000,19970902T142000,19970902T144000,19970902T150000,19970902T152000,19970902T154000,19970902T160000,19970902T162000,19970902T164000,19970903T090000,19970903T092000,19970903T094000,19970903T100000,19970903T102000,19970903T104000,19970903T110000,19970903T112000,19970903T114000,19970903T120000,19970903T122000,19970903T124000,19970903T130000,19970903T132000,19970903T134000,19970903T140000,19970903T142000,19970903T144000,19970903T150000,19970903T152000,19970903T154000,19970903T160000,19970903T162000,19970903T164000 PREV-INSTANCES:19970903T162000,19970903T160000,19970903T154000,19970903T152000,19970903T150000,19970903T144000,19970903T142000,19970903T140000,19970903T134000,19970903T132000,19970903T130000,19970903T124000,19970903T122000,19970903T120000,19970903T114000,19970903T112000,19970903T110000,19970903T104000,19970903T102000,19970903T100000,19970903T094000,19970903T092000,19970903T090000,19970902T164000,19970902T162000,19970902T160000,19970902T154000,19970902T152000,19970902T150000,19970902T144000,19970902T142000,19970902T140000,19970902T134000,19970902T132000,19970902T130000,19970902T124000,19970902T122000,19970902T120000,19970902T114000,19970902T112000,19970902T110000,19970902T104000,19970902T102000,19970902T100000,19970902T094000,19970902T092000,19970902T090000 +# Every 3 hours from 9:00 AM to 5:00 PM on a specific day RRULE:FREQ=HOURLY;INTERVAL=3;UNTIL=19970902T170000Z DTSTART:19970902T090000 INSTANCES:19970902T090000,19970902T120000,19970902T150000 PREV-INSTANCES:19970902T150000,19970902T120000,19970902T090000 +# Every 15 minutes for 6 occurrences RRULE:FREQ=MINUTELY;INTERVAL=15;COUNT=6 DTSTART:19970902T090000 INSTANCES:19970902T090000,19970902T091500,19970902T093000,19970902T094500,19970902T100000,19970902T101500 PREV-INSTANCES:19970902T100000,19970902T094500,19970902T093000,19970902T091500,19970902T090000 +# Every hour and a half for 4 occurrences RRULE:FREQ=MINUTELY;INTERVAL=90;COUNT=4 DTSTART:19970902T090000 INSTANCES:19970902T090000,19970902T103000,19970902T120000,19970902T133000 PREV-INSTANCES:19970902T120000,19970902T103000,19970902T090000 +# Every 20 minutes from 9:00 AM to 4:40 PM every day RRULE:FREQ=DAILY;BYHOUR=9,10,11,12,13,14,15,16;BYMINUTE=0,20,40;COUNT=48 DTSTART:19970902T090000 INSTANCES:19970902T090000,19970902T092000,19970902T094000,19970902T100000,19970902T102000,19970902T104000,19970902T110000,19970902T112000,19970902T114000,19970902T120000,19970902T122000,19970902T124000,19970902T130000,19970902T132000,19970902T134000,19970902T140000,19970902T142000,19970902T144000,19970902T150000,19970902T152000,19970902T154000,19970902T160000,19970902T162000,19970902T164000,19970903T090000,19970903T092000,19970903T094000,19970903T100000,19970903T102000,19970903T104000,19970903T110000,19970903T112000,19970903T114000,19970903T120000,19970903T122000,19970903T124000,19970903T130000,19970903T132000,19970903T134000,19970903T140000,19970903T142000,19970903T144000,19970903T150000,19970903T152000,19970903T154000,19970903T160000,19970903T162000,19970903T164000 PREV-INSTANCES:19970903T162000,19970903T160000,19970903T154000,19970903T152000,19970903T150000,19970903T144000,19970903T142000,19970903T140000,19970903T134000,19970903T132000,19970903T130000,19970903T124000,19970903T122000,19970903T120000,19970903T114000,19970903T112000,19970903T110000,19970903T104000,19970903T102000,19970903T100000,19970903T094000,19970903T092000,19970903T090000,19970902T164000,19970902T162000,19970902T160000,19970902T154000,19970902T152000,19970902T150000,19970902T144000,19970902T142000,19970902T140000,19970902T134000,19970902T132000,19970902T130000,19970902T124000,19970902T122000,19970902T120000,19970902T114000,19970902T112000,19970902T110000,19970902T104000,19970902T102000,19970902T100000,19970902T094000,19970902T092000,19970902T090000 +# Every week on Thursday and Sundays (35 times in total) RRULE:FREQ=WEEKLY;COUNT=35;BYDAY=SU,TH DTSTART:20111120T100000Z INSTANCES:20111120T100000Z,20111124T100000Z,20111127T100000Z,20111201T100000Z,20111204T100000Z,20111208T100000Z,20111211T100000Z,20111215T100000Z,20111218T100000Z,20111222T100000Z,20111225T100000Z,20111229T100000Z,20120101T100000Z,20120105T100000Z,20120108T100000Z,20120112T100000Z,20120115T100000Z,20120119T100000Z,20120122T100000Z,20120126T100000Z,20120129T100000Z,20120202T100000Z,20120205T100000Z,20120209T100000Z,20120212T100000Z,20120216T100000Z,20120219T100000Z,20120223T100000Z,20120226T100000Z,20120301T100000Z,20120304T100000Z,20120308T100000Z,20120311T100000Z,20120315T100000Z,20120318T100000Z PREV-INSTANCES:20120315T100000Z,20120311T100000Z,20120308T100000Z,20120304T100000Z,20120301T100000Z,20120226T100000Z,20120223T100000Z,20120219T100000Z,20120216T100000Z,20120212T100000Z,20120209T100000Z,20120205T100000Z,20120202T100000Z,20120129T100000Z,20120126T100000Z,20120122T100000Z,20120119T100000Z,20120115T100000Z,20120112T100000Z,20120108T100000Z,20120105T100000Z,20120101T100000Z,20111229T100000Z,20111225T100000Z,20111222T100000Z,20111218T100000Z,20111215T100000Z,20111211T100000Z,20111208T100000Z,20111204T100000Z,20111201T100000Z,20111127T100000Z,20111124T100000Z,20111120T100000Z +# github issue180 RRULE:FREQ=DAILY;UNTIL=20141206T000000Z;BYMONTH=11,12,1,2,3,4,10 DTSTART:20141030T000000Z INSTANCES:20141030T000000Z,20141031T000000Z,20141101T000000Z,20141102T000000Z,20141103T000000Z,20141104T000000Z,20141105T000000Z,20141106T000000Z,20141107T000000Z,20141108T000000Z,20141109T000000Z,20141110T000000Z,20141111T000000Z,20141112T000000Z,20141113T000000Z,20141114T000000Z,20141115T000000Z,20141116T000000Z,20141117T000000Z,20141118T000000Z,20141119T000000Z,20141120T000000Z,20141121T000000Z,20141122T000000Z,20141123T000000Z,20141124T000000Z,20141125T000000Z,20141126T000000Z,20141127T000000Z,20141128T000000Z,20141129T000000Z,20141130T000000Z,20141201T000000Z,20141202T000000Z,20141203T000000Z,20141204T000000Z,20141205T000000Z,20141206T000000Z PREV-INSTANCES:20141206T000000Z,20141205T000000Z,20141204T000000Z,20141203T000000Z,20141202T000000Z,20141201T000000Z,20141130T000000Z,20141129T000000Z,20141128T000000Z,20141127T000000Z,20141126T000000Z,20141125T000000Z,20141124T000000Z,20141123T000000Z,20141122T000000Z,20141121T000000Z,20141120T000000Z,20141119T000000Z,20141118T000000Z,20141117T000000Z,20141116T000000Z,20141115T000000Z,20141114T000000Z,20141113T000000Z,20141112T000000Z,20141111T000000Z,20141110T000000Z,20141109T000000Z,20141108T000000Z,20141107T000000Z,20141106T000000Z,20141105T000000Z,20141104T000000Z,20141103T000000Z,20141102T000000Z,20141101T000000Z,20141031T000000Z,20141030T000000Z +# CalendarServer test: Specific in first 2 weeks of year RRULE:FREQ=YEARLY;BYWEEKNO=1,2;UNTIL=20170101T000000Z DTSTART:20130101T000000 INSTANCES:20130101T000000,20130108T000000,20131231T000000,20140107T000000,20141230T000000,20150106T000000,20160105T000000,20160112T000000 PREV-INSTANCES:20160112T000000,20160105T000000,20150106T000000,20141230T000000,20140107T000000,20131231T000000,20130108T000000,20130101T000000 +# CalendarServer test: Last day of year in leap year RRULE:FREQ=YEARLY;BYYEARDAY=366;UNTIL=20200101T000000 DTSTART:20121231T120000 INSTANCES:20121231T120000,20161231T120000 PREV-INSTANCES:20161231T120000,20121231T120000 +# CalendarServer test: Last Friday in October RRULE:FREQ=YEARLY;BYDAY=-1FR;BYMONTH=10;UNTIL=20150101T000000Z DTSTART:20101029T120000 INSTANCES:20101029T120000,20111028T120000,20121026T120000,20131025T120000,20141031T120000 PREV-INSTANCES:20141031T120000,20131025T120000,20121026T120000,20111028T120000,20101029T120000 +# CalendarServer test: First Friday in April RRULE:FREQ=YEARLY;BYDAY=1FR;BYMONTH=4;UNTIL=20150101T000000Z DTSTART:20100402T120000 INSTANCES:20100402T120000,20110401T120000,20120406T120000,20130405T120000,20140404T120000 PREV-INSTANCES:20140404T120000,20130405T120000,20120406T120000,20110401T120000,20100402T120000 +# Test monthly with largest day of month RRULE:FREQ=MONTHLY;BYMONTHDAY=31;COUNT=12 DTSTART:20150131T000000Z INSTANCES:20150131T000000Z,20150331T000000Z,20150531T000000Z,20150731T000000Z,20150831T000000Z,20151031T000000Z,20151231T000000Z,20160131T000000Z,20160331T000000Z,20160531T000000Z,20160731T000000Z,20160831T000000Z PREV-INSTANCES:20160731T000000Z,20160531T000000Z,20160331T000000Z,20160131T000000Z,20151231T000000Z,20151031T000000Z,20150831T000000Z,20150731T000000Z,20150531T000000Z,20150331T000000Z,20150131T000000Z +# Test monthly with -largest day of month RRULE:FREQ=MONTHLY;BYMONTHDAY=-31;COUNT=12 DTSTART:20150101T000000Z INSTANCES:20150101T000000Z,20150301T000000Z,20150501T000000Z,20150701T000000Z,20150801T000000Z,20151001T000000Z,20151201T000000Z,20160101T000000Z,20160301T000000Z,20160501T000000Z,20160701T000000Z,20160801T000000Z PREV-INSTANCES:20160701T000000Z,20160501T000000Z,20160301T000000Z,20160101T000000Z,20151201T000000Z,20151001T000000Z,20150801T000000Z,20150701T000000Z,20150501T000000Z,20150301T000000Z,20150101T000000Z +# Test yearly with largest day of year RRULE:FREQ=YEARLY;BYYEARDAY=366;COUNT=3 DTSTART:20121231T120000 INSTANCES:20121231T120000,20161231T120000,20201231T120000 PREV-INSTANCES:20161231T120000,20121231T120000 +# Test yearly with -largest day of year RRULE:FREQ=YEARLY;BYYEARDAY=-366;COUNT=3 DTSTART:20120101T120000 INSTANCES:20120101T120000,20160101T120000,20200101T120000 PREV-INSTANCES:20160101T120000,20120101T120000 +# Every Wednesday in February, every other year, for 5 years, starting at January 1, 2020 RRULE:FREQ=YEARLY;INTERVAL=2;UNTIL=20211231T140000Z;BYMONTH=2;BYDAY=WE DTSTART:20170201T090000 START-AT:20200101T100000 INSTANCES:20210203T090000,20210210T090000,20210217T090000,20210224T090000 PREV-INSTANCES:20190227T090000,20190220T090000,20190213T090000,20190206T090000,20170222T090000,20170215T090000,20170208T090000,20170201T090000 +# Monthly on the first Friday until December 29, 2017, starting September 15, 2017 RRULE:FREQ=MONTHLY;UNTIL=20171229T000000Z;BYDAY=1FR DTSTART:20170901T090000 START-AT:20170915T090000 INSTANCES:20171006T090000,20171103T090000,20171201T090000 PREV-INSTANCES:20170901T090000 +# Bi-weekly on Sunday, Tuesday, and Thursday for five weeks, starting last day of 2016 RRULE:FREQ=WEEKLY;UNTIL=20170127T000000Z;WKST=MO;BYDAY=SU,TU,TH;INTERVAL=2 DTSTART:20161229T090000 START-AT:20161231T090000 INSTANCES:20170101T090000,20170110T090000,20170112T090000,20170115T090000,20170124T090000,20170126T090000 PREV-INSTANCES:20161229T090000 +# Bi-weekly on Sunday, Tuesday, and Thursday until January 27, 2017, starting second day of 2017 RRULE:FREQ=WEEKLY;UNTIL=20170127T000000Z;WKST=MO;BYDAY=SU,TU,TH;INTERVAL=2 DTSTART:20161229T090000 START-AT:20170102T090000 INSTANCES:20170110T090000,20170112T090000,20170115T090000,20170124T090000,20170126T090000 PREV-INSTANCES:20170101T090000,20161229T090000 +# Every 3rd day in January, starting on the 10th RRULE:FREQ=DAILY;UNTIL=20170131T140000Z;BYMONTH=1;INTERVAL=3 DTSTART:20170101T090000 START-AT:20170103T090000 INSTANCES:20170104T090000,20170107T090000,20170110T090000,20170113T090000,20170116T090000,20170119T090000,20170122T090000,20170125T090000,20170128T090000,20170131T090000 PREV-INSTANCES:20170101T090000 +# Every 3 hours from 9:00 AM to 5:00 PM over 2 days, starting at 11PM on September 2 RRULE:FREQ=HOURLY;INTERVAL=3;UNTIL=20170903T170000Z DTSTART:20170902T090000 START-AT:20170902T230000 INSTANCES:20170903T000000,20170903T030000,20170903T060000,20170903T090000,20170903T120000,20170903T150000 PREV-INSTANCES:20170902T210000,20170902T180000,20170902T150000,20170902T120000,20170902T090000 +# Every 13 months, on May 12 RRULE:FREQ=MONTHLY;INTERVAL=13;BYMONTH=5;COUNT=3 DTSTART:20100212T000000 INSTANCES:20130512T000000,20260512T000000,20390512T000000 PREV-INSTANCES:20260512T000000,20130512T000000 +# github issue376 RRULE:FREQ=WEEKLY;BYDAY=WE,FR;INTERVAL=2;COUNT=4 DTSTART:20190101T100000 INSTANCES:20190102T100000,20190104T100000,20190116T100000,20190118T100000 PREV-INSTANCES:20190116T100000,20190104T100000,20190102T100000 +# First 2 and last 2 ISO weeks of the year on Tue RRULE:FREQ=YEARLY;BYWEEKNO=1,2,-1,-2;BYDAY=TU;UNTIL=20170101T000000Z DTSTART:20130101T000000 INSTANCES:20130101T000000,20130108T000000,20131217T000000,20131224T000000,20131231T000000,20140107T000000,20141216T000000,20141223T000000,20141230T000000,20150106T000000,20151222T000000,20151229T000000,20160105T000000,20160112T000000,20161220T000000,20161227T000000 PREV-INSTANCES:20161227T000000,20161220T000000,20160112T000000,20160105T000000,20151229T000000,20151222T000000,20150106T000000,20141230T000000,20141223T000000,20141216T000000,20140107T000000,20131231T000000,20131224T000000,20131217T000000,20130108T000000,20130101T000000 +# 53rd ISO week of the year on Tue and Sat RRULE:FREQ=YEARLY;BYWEEKNO=53;BYDAY=TU,SA;UNTIL=20170101T000000Z DTSTART:20130101T000000 INSTANCES:20151229T000000,20160102T000000 PREV-INSTANCES:20160102T000000,20151229T000000 +# github issue491 RRULE:FREQ=HOURLY;UNTIL=20210303T000000Z DTSTART:20210301T142000 START-AT:20210302T100000 INSTANCES:20210302T102000,20210302T112000,20210302T122000,20210302T132000,20210302T142000,20210302T152000,20210302T162000,20210302T172000,20210302T182000,20210302T192000,20210302T202000,20210302T212000,20210302T222000,20210302T232000 PREV-INSTANCES:20210302T092000,20210302T082000,20210302T072000,20210302T062000,20210302T052000,20210302T042000,20210302T032000,20210302T022000,20210302T012000,20210302T002000,20210301T232000,20210301T222000,20210301T212000,20210301T202000,20210301T192000,20210301T182000,20210301T172000,20210301T162000,20210301T152000,20210301T142000 +# github issue782 RRULE:FREQ=YEARLY;BYWEEKNO=6;BYDAY=TU;WKST=TH;UNTIL=20210612T000000Z DTSTART:20180206T080001 INSTANCES:20180213T080001,20190212T080001,20200211T080001,20210209T080001 PREV-INSTANCES:20210209T080001,20200211T080001,20190212T080001,20180213T080001 +# time-related BY* should be ignored if DTSTART is date-only RRULE:FREQ=DAILY;BYMINUTE=1,2,3,4;INTERVAL=2;COUNT=3 DTSTART:20241018 INSTANCES:20241018,20241020,20241022 diff --git a/src/test/icalrecur_withicu_dangi_test.out b/src/test/icalrecur_withicu_dangi_test.out index 341a1304f..4498213fa 100644 --- a/src/test/icalrecur_withicu_dangi_test.out +++ b/src/test/icalrecur_withicu_dangi_test.out @@ -1,43 +1,52 @@ +# Bad RSCALE RRULE:RSCALE=RUSSIAN;FREQ=YEARLY DTSTART:20131025 INSTANCES: *** UNIMPLEMENTED: This feature has not been implemented +# Ethiopic last day of year RRULE:RSCALE=ETHIOPIC;FREQ=YEARLY;BYMONTH=13;BYMONTHDAY=-1;COUNT=6 DTSTART:20140910 INSTANCES:20140910,20150911,20160910,20170910,20180910,20190911 PREV-INSTANCES:20180910,20170910,20160910,20150911,20140910 +# Chinese New Year RRULE:RSCALE=CHINESE;FREQ=YEARLY;UNTIL=20180101 DTSTART:20130210 INSTANCES:20130210,20140131,20150219,20160208,20170128 PREV-INSTANCES:20170128,20160208,20150219,20140131,20130210 +# Chinese monthly RRULE:RSCALE=CHINESE;FREQ=MONTHLY;COUNT=4 DTSTART:20140920 INSTANCES:20140920,20141020,20141119,20141218 PREV-INSTANCES:20141119,20141020,20140920 +# Islamic monthly RRULE:RSCALE=ISLAMIC-CIVIL;FREQ=MONTHLY;COUNT=4 DTSTART:20131025 INSTANCES:20131025,20131124,20131224,20140122 PREV-INSTANCES:20131224,20131124,20131025 +# Islamic Ramadan RRULE:RSCALE=ISLAMIC-CIVIL;FREQ=YEARLY;BYMONTH=9;COUNT=5 DTSTART:20130709 INSTANCES:20130709,20140629,20150618,20160607,20170527 PREV-INSTANCES:20160607,20150618,20140629,20130709 +# Korean Buddha birthday RRULE:RSCALE=DANGI;FREQ=YEARLY;BYMONTHDAY=8;BYMONTH=4;UNTIL=20160101 DTSTART:20131025 INSTANCES:20140506,20150525 PREV-INSTANCES:20150525,20140506 +# Chinese leap month (no leap) RRULE:RSCALE=CHINESE;FREQ=YEARLY;BYMONTHDAY=10;BYMONTH=9;COUNT=3 DTSTART:20131025 INSTANCES:20141003,20151022,20161010 PREV-INSTANCES:20151022,20141003 +# Chinese leap month (omit) RRULE:RSCALE=CHINESE;FREQ=YEARLY;BYMONTHDAY=10;BYMONTH=9L;SKIP=OMIT;COUNT=2 DTSTART:20131025 INSTANCES:20141102,21091102 @@ -48,122 +57,146 @@ DTSTART:20131025 INSTANCES:20200601,20580531,20690530,20770531,20880530,20960531 PREV-INSTANCES:20960531,20880530,20770531,20690530,20580531,20200601 +# Chinese leap month (skip forward) RRULE:RSCALE=CHINESE;FREQ=YEARLY;BYMONTHDAY=10;BYMONTH=9L;SKIP=FORWARD;COUNT=3 DTSTART:20131025 INSTANCES:20131112,20141102,20151121 PREV-INSTANCES:20141102,20131112 +# Chinese leap month (skip back) RRULE:RSCALE=CHINESE;FREQ=YEARLY;BYMONTHDAY=10;BYMONTH=9L;SKIP=BACKWARD;COUNT=3 DTSTART:20131025 INSTANCES:20141102,20151022,20161010 PREV-INSTANCES:20151022,20141102 +# Chinese leap month (both) RRULE:RSCALE=CHINESE;FREQ=YEARLY;BYMONTHDAY=10;BYMONTH=9,9L;SKIP=BACKWARD;COUNT=4 DTSTART:20131025 INSTANCES:20141003,20141102,20151022,20161010 PREV-INSTANCES:20151022,20141102,20141003 +# Every other Chinese New Year, starting at Jan 1, 2016 RRULE:RSCALE=CHINESE;FREQ=YEARLY;UNTIL=20200101;INTERVAL=2 DTSTART:20130210 START-AT:20160101 INSTANCES:20170128,20190205 PREV-INSTANCES:20150219,20130210 +# Jewish leap month (omit) RRULE:RSCALE=HEBREW;FREQ=YEARLY;COUNT=4 DTSTART:20140205 INSTANCES:20140205,20160214,20190210,20220206 PREV-INSTANCES:20190210,20160214,20140205 +# Jewish leap month (skip forward) RRULE:RSCALE=HEBREW;FREQ=YEARLY;SKIP=FORWARD;COUNT=4 DTSTART:20140205 INSTANCES:20140205,20150224,20160214,20170303 PREV-INSTANCES:20160214,20150224,20140205 +# Jewish leap month (skip forward by month) RRULE:RSCALE=HEBREW;FREQ=YEARLY;BYMONTH=5L;BYMONTHDAY=8;SKIP=FORWARD;COUNT=5 DTSTART:20140208 INSTANCES:20140208,20150227,20160217,20170306,20180223 PREV-INSTANCES:20170306,20160217,20150227,20140208 +# 30th day of Jewish leap month (skip forward) RRULE:RSCALE=HEBREW;FREQ=YEARLY;BYMONTH=5L;BYMONTHDAY=30;SKIP=FORWARD;COUNT=5 DTSTART:20140302 INSTANCES:20140302,20150321,20160310,20170328,20180317 PREV-INSTANCES:20170328,20160310,20150321,20140302 +# Last day of Jewish leap month (skip forward) RRULE:RSCALE=HEBREW;FREQ=YEARLY;BYMONTH=5L;BYMONTHDAY=-1;SKIP=FORWARD;COUNT=5 DTSTART:20140302 INSTANCES:20140302,20150320,20160310,20170327,20180316 PREV-INSTANCES:20170327,20160310,20150320,20140302 +# 30th day of Jewish leap month (skip backward) RRULE:RSCALE=HEBREW;FREQ=YEARLY;BYMONTH=5L;BYMONTHDAY=30;SKIP=BACKWARD;COUNT=5 DTSTART:20140302 INSTANCES:20140302,20150219,20160310,20170226,20180215 PREV-INSTANCES:20170226,20160310,20150219,20140302 +# Last day of Jewish leap month (skip backward) RRULE:RSCALE=HEBREW;FREQ=YEARLY;BYMONTH=5L;BYMONTHDAY=-1;SKIP=BACKWARD;COUNT=5 DTSTART:20140302 INSTANCES:20140302,20150219,20160310,20170226,20180215 PREV-INSTANCES:20170226,20160310,20150219,20140302 +# Gregorian leap day (omit) RRULE:RSCALE=GREGORIAN;FREQ=YEARLY;COUNT=4 DTSTART:20120229 INSTANCES:20120229,20160229,20200229,20240229 PREV-INSTANCES:20200229,20160229,20120229 +# Gregorian (skip back) RRULE:RSCALE=GREGORIAN;FREQ=MONTHLY;SKIP=BACKWARD;COUNT=4 DTSTART:20140131 INSTANCES:20140131,20140228,20140331,20140430 PREV-INSTANCES:20140331,20140228,20140131 +# Gregorian (skip forward) RRULE:RSCALE=GREGORIAN;FREQ=MONTHLY;SKIP=FORWARD;COUNT=4 DTSTART:20140131 INSTANCES:20140131,20140301,20140331,20140501 PREV-INSTANCES:20140331,20140301,20140131 +# Gregorian (skip forward both) RRULE:RSCALE=GREGORIAN;FREQ=YEARLY;BYMONTH=2;BYMONTHDAY=28,29;SKIP=FORWARD;COUNT=5 DTSTART:20150201 INSTANCES:20150228,20150301,20160228,20160229,20170228 PREV-INSTANCES:20160229,20160228,20150301,20150228 +# Gregorian (skip forward interval) RRULE:RSCALE=GREGORIAN;FREQ=MONTHLY;INTERVAL=3;SKIP=FORWARD;COUNT=4 DTSTART:20140131 INSTANCES:20140131,20140501,20140731,20141031 PREV-INSTANCES:20140731,20140501,20140131 +# Test monthly with largest day of month RRULE:RSCALE=GREGORIAN;FREQ=MONTHLY;BYMONTHDAY=31;COUNT=12;SKIP=FORWARD DTSTART:20150131T000000Z INSTANCES:20150131T000000Z,20150301T000000Z,20150331T000000Z,20150501T000000Z,20150531T000000Z,20150701T000000Z,20150731T000000Z,20150831T000000Z,20151001T000000Z,20151031T000000Z,20151201T000000Z,20151231T000000Z PREV-INSTANCES:20151201T000000Z,20151031T000000Z,20151001T000000Z,20150831T000000Z,20150731T000000Z,20150701T000000Z,20150531T000000Z,20150501T000000Z,20150331T000000Z,20150301T000000Z,20150131T000000Z +# Test monthly with -largest day of month RRULE:RSCALE=GREGORIAN;FREQ=MONTHLY;BYMONTHDAY=-31;COUNT=12;SKIP=FORWARD DTSTART:20150101T000000Z INSTANCES:20150101T000000Z,20150201T000000Z,20150301T000000Z,20150401T000000Z,20150501T000000Z,20150601T000000Z,20150701T000000Z,20150801T000000Z,20150901T000000Z,20151001T000000Z,20151101T000000Z,20151201T000000Z PREV-INSTANCES:20151101T000000Z,20151001T000000Z,20150901T000000Z,20150801T000000Z,20150701T000000Z,20150601T000000Z,20150501T000000Z,20150401T000000Z,20150301T000000Z,20150201T000000Z,20150101T000000Z +# Test monthly with largest day of month RRULE:RSCALE=GREGORIAN;FREQ=MONTHLY;BYMONTHDAY=31;COUNT=12;SKIP=BACKWARD DTSTART:20150131T000000Z INSTANCES:20150131T000000Z,20150228T000000Z,20150331T000000Z,20150430T000000Z,20150531T000000Z,20150630T000000Z,20150731T000000Z,20150831T000000Z,20150930T000000Z,20151031T000000Z,20151130T000000Z,20151231T000000Z PREV-INSTANCES:20151130T000000Z,20151031T000000Z,20150930T000000Z,20150831T000000Z,20150731T000000Z,20150630T000000Z,20150531T000000Z,20150430T000000Z,20150331T000000Z,20150228T000000Z,20150131T000000Z +# Test monthly with -largest day of month RRULE:RSCALE=GREGORIAN;FREQ=MONTHLY;BYMONTHDAY=-31;COUNT=12;SKIP=BACKWARD DTSTART:20150101T000000Z INSTANCES:20150101T000000Z,20150131T000000Z,20150301T000000Z,20150331T000000Z,20150501T000000Z,20150531T000000Z,20150701T000000Z,20150801T000000Z,20150831T000000Z,20151001T000000Z,20151031T000000Z,20151201T000000Z PREV-INSTANCES:20151031T000000Z,20151001T000000Z,20150831T000000Z,20150801T000000Z,20150701T000000Z,20150531T000000Z,20150501T000000Z,20150331T000000Z,20150301T000000Z,20150131T000000Z,20150101T000000Z +# Test yearly with largest day of year RRULE:RSCALE=GREGORIAN;FREQ=YEARLY;BYYEARDAY=366;SKIP=FORWARD;COUNT=9 DTSTART:20121231T120000 INSTANCES:20121231T120000,20140101T120000,20150101T120000,20160101T120000,20161231T120000,20180101T120000,20190101T120000,20200101T120000,20201231T120000 PREV-INSTANCES:20200101T120000,20190101T120000,20180101T120000,20161231T120000,20160101T120000,20150101T120000,20140101T120000,20121231T120000 +# Test yearly with largest day of year RRULE:RSCALE=GREGORIAN;FREQ=YEARLY;BYYEARDAY=366;SKIP=BACKWARD;COUNT=9 DTSTART:20121231T120000 INSTANCES:20121231T120000,20131231T120000,20141231T120000,20151231T120000,20161231T120000,20171231T120000,20181231T120000,20191231T120000,20201231T120000 PREV-INSTANCES:20191231T120000,20181231T120000,20171231T120000,20161231T120000,20151231T120000,20141231T120000,20131231T120000,20121231T120000 +# Test yearly with -largest day of year RRULE:RSCALE=GREGORIAN;FREQ=YEARLY;BYYEARDAY=-366;SKIP=FORWARD;COUNT=9 DTSTART:20120101T120000 INSTANCES:20120101T120000,20130101T120000,20140101T120000,20150101T120000,20160101T120000,20170101T120000,20180101T120000,20190101T120000,20200101T120000 PREV-INSTANCES:20190101T120000,20180101T120000,20170101T120000,20160101T120000,20150101T120000,20140101T120000,20130101T120000,20120101T120000 +# Test yearly with -largest day of year RRULE:RSCALE=GREGORIAN;FREQ=YEARLY;BYYEARDAY=-366;SKIP=BACKWARD;COUNT=9 DTSTART:20120101T120000 INSTANCES:20120101T120000,20121231T120000,20131231T120000,20141231T120000,20160101T120000,20161231T120000,20171231T120000,20181231T120000,20200101T120000 diff --git a/src/test/icalrecur_withicu_test.out b/src/test/icalrecur_withicu_test.out index beb968340..b26275f6e 100644 --- a/src/test/icalrecur_withicu_test.out +++ b/src/test/icalrecur_withicu_test.out @@ -1,38 +1,46 @@ +# Bad RSCALE RRULE:RSCALE=RUSSIAN;FREQ=YEARLY DTSTART:20131025 INSTANCES: *** UNIMPLEMENTED: This feature has not been implemented +# Ethiopic last day of year RRULE:RSCALE=ETHIOPIC;FREQ=YEARLY;BYMONTH=13;BYMONTHDAY=-1;COUNT=6 DTSTART:20140910 INSTANCES:20140910,20150911,20160910,20170910,20180910,20190911 PREV-INSTANCES:20180910,20170910,20160910,20150911,20140910 +# Chinese New Year RRULE:RSCALE=CHINESE;FREQ=YEARLY;UNTIL=20180101 DTSTART:20130210 INSTANCES:20130210,20140131,20150219,20160208,20170128 PREV-INSTANCES:20170128,20160208,20150219,20140131,20130210 +# Chinese monthly RRULE:RSCALE=CHINESE;FREQ=MONTHLY;COUNT=4 DTSTART:20140920 INSTANCES:20140920,20141020,20141119,20141218 PREV-INSTANCES:20141119,20141020,20140920 +# Islamic monthly RRULE:RSCALE=ISLAMIC-CIVIL;FREQ=MONTHLY;COUNT=4 DTSTART:20131025 INSTANCES:20131025,20131124,20131224,20140122 PREV-INSTANCES:20131224,20131124,20131025 +# Islamic Ramadan RRULE:RSCALE=ISLAMIC-CIVIL;FREQ=YEARLY;BYMONTH=9;COUNT=5 DTSTART:20130709 INSTANCES:20130709,20140629,20150618,20160607,20170527 PREV-INSTANCES:20160607,20150618,20140629,20130709 +# Chinese leap month (no leap) RRULE:RSCALE=CHINESE;FREQ=YEARLY;BYMONTHDAY=10;BYMONTH=9;COUNT=3 DTSTART:20131025 INSTANCES:20141003,20151022,20161010 PREV-INSTANCES:20151022,20141003 +# Chinese leap month (omit) RRULE:RSCALE=CHINESE;FREQ=YEARLY;BYMONTHDAY=10;BYMONTH=9L;SKIP=OMIT;COUNT=2 DTSTART:20131025 INSTANCES:20141102,21091102 @@ -43,122 +51,146 @@ DTSTART:20131025 INSTANCES:20200601,20580531,20690530,20770531,20880530,20960531 PREV-INSTANCES:20960531,20880530,20770531,20690530,20580531,20200601 +# Chinese leap month (skip forward) RRULE:RSCALE=CHINESE;FREQ=YEARLY;BYMONTHDAY=10;BYMONTH=9L;SKIP=FORWARD;COUNT=3 DTSTART:20131025 INSTANCES:20131112,20141102,20151121 PREV-INSTANCES:20141102,20131112 +# Chinese leap month (skip back) RRULE:RSCALE=CHINESE;FREQ=YEARLY;BYMONTHDAY=10;BYMONTH=9L;SKIP=BACKWARD;COUNT=3 DTSTART:20131025 INSTANCES:20141102,20151022,20161010 PREV-INSTANCES:20151022,20141102 +# Chinese leap month (both) RRULE:RSCALE=CHINESE;FREQ=YEARLY;BYMONTHDAY=10;BYMONTH=9,9L;SKIP=BACKWARD;COUNT=4 DTSTART:20131025 INSTANCES:20141003,20141102,20151022,20161010 PREV-INSTANCES:20151022,20141102,20141003 +# Every other Chinese New Year, starting at Jan 1, 2016 RRULE:RSCALE=CHINESE;FREQ=YEARLY;UNTIL=20200101;INTERVAL=2 DTSTART:20130210 START-AT:20160101 INSTANCES:20170128,20190205 PREV-INSTANCES:20150219,20130210 +# Jewish leap month (omit) RRULE:RSCALE=HEBREW;FREQ=YEARLY;COUNT=4 DTSTART:20140205 INSTANCES:20140205,20160214,20190210,20220206 PREV-INSTANCES:20190210,20160214,20140205 +# Jewish leap month (skip forward) RRULE:RSCALE=HEBREW;FREQ=YEARLY;SKIP=FORWARD;COUNT=4 DTSTART:20140205 INSTANCES:20140205,20150224,20160214,20170303 PREV-INSTANCES:20160214,20150224,20140205 +# Jewish leap month (skip forward by month) RRULE:RSCALE=HEBREW;FREQ=YEARLY;BYMONTH=5L;BYMONTHDAY=8;SKIP=FORWARD;COUNT=5 DTSTART:20140208 INSTANCES:20140208,20150227,20160217,20170306,20180223 PREV-INSTANCES:20170306,20160217,20150227,20140208 +# 30th day of Jewish leap month (skip forward) RRULE:RSCALE=HEBREW;FREQ=YEARLY;BYMONTH=5L;BYMONTHDAY=30;SKIP=FORWARD;COUNT=5 DTSTART:20140302 INSTANCES:20140302,20150321,20160310,20170328,20180317 PREV-INSTANCES:20170328,20160310,20150321,20140302 +# Last day of Jewish leap month (skip forward) RRULE:RSCALE=HEBREW;FREQ=YEARLY;BYMONTH=5L;BYMONTHDAY=-1;SKIP=FORWARD;COUNT=5 DTSTART:20140302 INSTANCES:20140302,20150320,20160310,20170327,20180316 PREV-INSTANCES:20170327,20160310,20150320,20140302 +# 30th day of Jewish leap month (skip backward) RRULE:RSCALE=HEBREW;FREQ=YEARLY;BYMONTH=5L;BYMONTHDAY=30;SKIP=BACKWARD;COUNT=5 DTSTART:20140302 INSTANCES:20140302,20150219,20160310,20170226,20180215 PREV-INSTANCES:20170226,20160310,20150219,20140302 +# Last day of Jewish leap month (skip backward) RRULE:RSCALE=HEBREW;FREQ=YEARLY;BYMONTH=5L;BYMONTHDAY=-1;SKIP=BACKWARD;COUNT=5 DTSTART:20140302 INSTANCES:20140302,20150219,20160310,20170226,20180215 PREV-INSTANCES:20170226,20160310,20150219,20140302 +# Gregorian leap day (omit) RRULE:RSCALE=GREGORIAN;FREQ=YEARLY;COUNT=4 DTSTART:20120229 INSTANCES:20120229,20160229,20200229,20240229 PREV-INSTANCES:20200229,20160229,20120229 +# Gregorian (skip back) RRULE:RSCALE=GREGORIAN;FREQ=MONTHLY;SKIP=BACKWARD;COUNT=4 DTSTART:20140131 INSTANCES:20140131,20140228,20140331,20140430 PREV-INSTANCES:20140331,20140228,20140131 +# Gregorian (skip forward) RRULE:RSCALE=GREGORIAN;FREQ=MONTHLY;SKIP=FORWARD;COUNT=4 DTSTART:20140131 INSTANCES:20140131,20140301,20140331,20140501 PREV-INSTANCES:20140331,20140301,20140131 +# Gregorian (skip forward both) RRULE:RSCALE=GREGORIAN;FREQ=YEARLY;BYMONTH=2;BYMONTHDAY=28,29;SKIP=FORWARD;COUNT=5 DTSTART:20150201 INSTANCES:20150228,20150301,20160228,20160229,20170228 PREV-INSTANCES:20160229,20160228,20150301,20150228 +# Gregorian (skip forward interval) RRULE:RSCALE=GREGORIAN;FREQ=MONTHLY;INTERVAL=3;SKIP=FORWARD;COUNT=4 DTSTART:20140131 INSTANCES:20140131,20140501,20140731,20141031 PREV-INSTANCES:20140731,20140501,20140131 +# Test monthly with largest day of month RRULE:RSCALE=GREGORIAN;FREQ=MONTHLY;BYMONTHDAY=31;COUNT=12;SKIP=FORWARD DTSTART:20150131T000000Z INSTANCES:20150131T000000Z,20150301T000000Z,20150331T000000Z,20150501T000000Z,20150531T000000Z,20150701T000000Z,20150731T000000Z,20150831T000000Z,20151001T000000Z,20151031T000000Z,20151201T000000Z,20151231T000000Z PREV-INSTANCES:20151201T000000Z,20151031T000000Z,20151001T000000Z,20150831T000000Z,20150731T000000Z,20150701T000000Z,20150531T000000Z,20150501T000000Z,20150331T000000Z,20150301T000000Z,20150131T000000Z +# Test monthly with -largest day of month RRULE:RSCALE=GREGORIAN;FREQ=MONTHLY;BYMONTHDAY=-31;COUNT=12;SKIP=FORWARD DTSTART:20150101T000000Z INSTANCES:20150101T000000Z,20150201T000000Z,20150301T000000Z,20150401T000000Z,20150501T000000Z,20150601T000000Z,20150701T000000Z,20150801T000000Z,20150901T000000Z,20151001T000000Z,20151101T000000Z,20151201T000000Z PREV-INSTANCES:20151101T000000Z,20151001T000000Z,20150901T000000Z,20150801T000000Z,20150701T000000Z,20150601T000000Z,20150501T000000Z,20150401T000000Z,20150301T000000Z,20150201T000000Z,20150101T000000Z +# Test monthly with largest day of month RRULE:RSCALE=GREGORIAN;FREQ=MONTHLY;BYMONTHDAY=31;COUNT=12;SKIP=BACKWARD DTSTART:20150131T000000Z INSTANCES:20150131T000000Z,20150228T000000Z,20150331T000000Z,20150430T000000Z,20150531T000000Z,20150630T000000Z,20150731T000000Z,20150831T000000Z,20150930T000000Z,20151031T000000Z,20151130T000000Z,20151231T000000Z PREV-INSTANCES:20151130T000000Z,20151031T000000Z,20150930T000000Z,20150831T000000Z,20150731T000000Z,20150630T000000Z,20150531T000000Z,20150430T000000Z,20150331T000000Z,20150228T000000Z,20150131T000000Z +# Test monthly with -largest day of month RRULE:RSCALE=GREGORIAN;FREQ=MONTHLY;BYMONTHDAY=-31;COUNT=12;SKIP=BACKWARD DTSTART:20150101T000000Z INSTANCES:20150101T000000Z,20150131T000000Z,20150301T000000Z,20150331T000000Z,20150501T000000Z,20150531T000000Z,20150701T000000Z,20150801T000000Z,20150831T000000Z,20151001T000000Z,20151031T000000Z,20151201T000000Z PREV-INSTANCES:20151031T000000Z,20151001T000000Z,20150831T000000Z,20150801T000000Z,20150701T000000Z,20150531T000000Z,20150501T000000Z,20150331T000000Z,20150301T000000Z,20150131T000000Z,20150101T000000Z +# Test yearly with largest day of year RRULE:RSCALE=GREGORIAN;FREQ=YEARLY;BYYEARDAY=366;SKIP=FORWARD;COUNT=9 DTSTART:20121231T120000 INSTANCES:20121231T120000,20140101T120000,20150101T120000,20160101T120000,20161231T120000,20180101T120000,20190101T120000,20200101T120000,20201231T120000 PREV-INSTANCES:20200101T120000,20190101T120000,20180101T120000,20161231T120000,20160101T120000,20150101T120000,20140101T120000,20121231T120000 +# Test yearly with largest day of year RRULE:RSCALE=GREGORIAN;FREQ=YEARLY;BYYEARDAY=366;SKIP=BACKWARD;COUNT=9 DTSTART:20121231T120000 INSTANCES:20121231T120000,20131231T120000,20141231T120000,20151231T120000,20161231T120000,20171231T120000,20181231T120000,20191231T120000,20201231T120000 PREV-INSTANCES:20191231T120000,20181231T120000,20171231T120000,20161231T120000,20151231T120000,20141231T120000,20131231T120000,20121231T120000 +# Test yearly with -largest day of year RRULE:RSCALE=GREGORIAN;FREQ=YEARLY;BYYEARDAY=-366;SKIP=FORWARD;COUNT=9 DTSTART:20120101T120000 INSTANCES:20120101T120000,20130101T120000,20140101T120000,20150101T120000,20160101T120000,20170101T120000,20180101T120000,20190101T120000,20200101T120000 PREV-INSTANCES:20190101T120000,20180101T120000,20170101T120000,20160101T120000,20150101T120000,20140101T120000,20130101T120000,20120101T120000 +# Test yearly with -largest day of year RRULE:RSCALE=GREGORIAN;FREQ=YEARLY;BYYEARDAY=-366;SKIP=BACKWARD;COUNT=9 DTSTART:20120101T120000 INSTANCES:20120101T120000,20121231T120000,20131231T120000,20141231T120000,20160101T120000,20161231T120000,20171231T120000,20181231T120000,20200101T120000 diff --git a/src/test/icalrecur_withouticu_test.out b/src/test/icalrecur_withouticu_test.out index 88b6b5a30..92ad766b3 100644 --- a/src/test/icalrecur_withouticu_test.out +++ b/src/test/icalrecur_withouticu_test.out @@ -1,68 +1,82 @@ +# Bad RSCALE RRULE:RSCALE=RUSSIAN;FREQ=YEARLY DTSTART:20131025 INSTANCES: *** UNIMPLEMENTED: This feature has not been implemented +# Gregorian leap day (omit) RRULE:RSCALE=GREGORIAN;FREQ=YEARLY;COUNT=4 DTSTART:20120229 INSTANCES:20120229,20160229,20200229,20240229 PREV-INSTANCES:20200229,20160229,20120229 +# Gregorian (skip back) RRULE:RSCALE=GREGORIAN;FREQ=MONTHLY;SKIP=BACKWARD;COUNT=4 DTSTART:20140131 INSTANCES:20140131,20140228,20140331,20140430 PREV-INSTANCES:20140331,20140228,20140131 +# Gregorian (skip forward) RRULE:RSCALE=GREGORIAN;FREQ=MONTHLY;SKIP=FORWARD;COUNT=4 DTSTART:20140131 INSTANCES:20140131,20140301,20140331,20140501 PREV-INSTANCES:20140331,20140301,20140131 +# Gregorian (skip forward both) RRULE:RSCALE=GREGORIAN;FREQ=YEARLY;BYMONTH=2;BYMONTHDAY=28,29;SKIP=FORWARD;COUNT=5 DTSTART:20150201 INSTANCES:20150228,20150301,20160228,20160229,20170228 PREV-INSTANCES:20160229,20160228,20150301,20150228 +# Gregorian (skip forward interval) RRULE:RSCALE=GREGORIAN;FREQ=MONTHLY;INTERVAL=3;SKIP=FORWARD;COUNT=4 DTSTART:20140131 INSTANCES:20140131,20140501,20140731,20141031 PREV-INSTANCES:20140731,20140501,20140131 +# Test monthly with largest day of month RRULE:RSCALE=GREGORIAN;FREQ=MONTHLY;BYMONTHDAY=31;COUNT=12;SKIP=FORWARD DTSTART:20150131T000000Z INSTANCES:20150131T000000Z,20150301T000000Z,20150331T000000Z,20150501T000000Z,20150531T000000Z,20150701T000000Z,20150731T000000Z,20150831T000000Z,20151001T000000Z,20151031T000000Z,20151201T000000Z,20151231T000000Z PREV-INSTANCES:20151201T000000Z,20151031T000000Z,20151001T000000Z,20150831T000000Z,20150731T000000Z,20150701T000000Z,20150531T000000Z,20150501T000000Z,20150331T000000Z,20150301T000000Z,20150131T000000Z +# Test monthly with -largest day of month RRULE:RSCALE=GREGORIAN;FREQ=MONTHLY;BYMONTHDAY=-31;COUNT=12;SKIP=FORWARD DTSTART:20150101T000000Z INSTANCES:20150101T000000Z,20150201T000000Z,20150301T000000Z,20150401T000000Z,20150501T000000Z,20150601T000000Z,20150701T000000Z,20150801T000000Z,20150901T000000Z,20151001T000000Z,20151101T000000Z,20151201T000000Z PREV-INSTANCES:20151101T000000Z,20151001T000000Z,20150901T000000Z,20150801T000000Z,20150701T000000Z,20150601T000000Z,20150501T000000Z,20150401T000000Z,20150301T000000Z,20150201T000000Z,20150101T000000Z +# Test monthly with largest day of month RRULE:RSCALE=GREGORIAN;FREQ=MONTHLY;BYMONTHDAY=31;COUNT=12;SKIP=BACKWARD DTSTART:20150131T000000Z INSTANCES:20150131T000000Z,20150228T000000Z,20150331T000000Z,20150430T000000Z,20150531T000000Z,20150630T000000Z,20150731T000000Z,20150831T000000Z,20150930T000000Z,20151031T000000Z,20151130T000000Z,20151231T000000Z PREV-INSTANCES:20151130T000000Z,20151031T000000Z,20150930T000000Z,20150831T000000Z,20150731T000000Z,20150630T000000Z,20150531T000000Z,20150430T000000Z,20150331T000000Z,20150228T000000Z,20150131T000000Z +# Test monthly with -largest day of month RRULE:RSCALE=GREGORIAN;FREQ=MONTHLY;BYMONTHDAY=-31;COUNT=12;SKIP=BACKWARD DTSTART:20150101T000000Z INSTANCES:20150101T000000Z,20150131T000000Z,20150301T000000Z,20150331T000000Z,20150501T000000Z,20150531T000000Z,20150701T000000Z,20150801T000000Z,20150831T000000Z,20151001T000000Z,20151031T000000Z,20151201T000000Z PREV-INSTANCES:20151031T000000Z,20151001T000000Z,20150831T000000Z,20150801T000000Z,20150701T000000Z,20150531T000000Z,20150501T000000Z,20150331T000000Z,20150301T000000Z,20150131T000000Z,20150101T000000Z +# Test yearly with largest day of year RRULE:RSCALE=GREGORIAN;FREQ=YEARLY;BYYEARDAY=366;SKIP=FORWARD;COUNT=9 DTSTART:20121231T120000 INSTANCES:20121231T120000,20140101T120000,20150101T120000,20160101T120000,20161231T120000,20180101T120000,20190101T120000,20200101T120000,20201231T120000 PREV-INSTANCES:20200101T120000,20190101T120000,20180101T120000,20161231T120000,20160101T120000,20150101T120000,20140101T120000,20121231T120000 +# Test yearly with largest day of year RRULE:RSCALE=GREGORIAN;FREQ=YEARLY;BYYEARDAY=366;SKIP=BACKWARD;COUNT=9 DTSTART:20121231T120000 INSTANCES:20121231T120000,20131231T120000,20141231T120000,20151231T120000,20161231T120000,20171231T120000,20181231T120000,20191231T120000,20201231T120000 PREV-INSTANCES:20191231T120000,20181231T120000,20171231T120000,20161231T120000,20151231T120000,20141231T120000,20131231T120000,20121231T120000 +# Test yearly with -largest day of year RRULE:RSCALE=GREGORIAN;FREQ=YEARLY;BYYEARDAY=-366;SKIP=FORWARD;COUNT=9 DTSTART:20120101T120000 INSTANCES:20120101T120000,20130101T120000,20140101T120000,20150101T120000,20160101T120000,20170101T120000,20180101T120000,20190101T120000,20200101T120000 PREV-INSTANCES:20190101T120000,20180101T120000,20170101T120000,20160101T120000,20150101T120000,20140101T120000,20130101T120000,20120101T120000 +# Test yearly with -largest day of year RRULE:RSCALE=GREGORIAN;FREQ=YEARLY;BYYEARDAY=-366;SKIP=BACKWARD;COUNT=9 DTSTART:20120101T120000 INSTANCES:20120101T120000,20121231T120000,20131231T120000,20141231T120000,20160101T120000,20161231T120000,20171231T120000,20181231T120000,20200101T120000