diff options
Diffstat (limited to 'test/data')
-rw-r--r-- | test/data/apts-export | 2 | ||||
-rw-r--r-- | test/data/ical-002.ical | 4 | ||||
-rw-r--r-- | test/data/ical-003.ical | 45 | ||||
-rw-r--r-- | test/data/ical-005.ical | 2 | ||||
-rw-r--r-- | test/data/ical-006.ical | 2 | ||||
-rw-r--r-- | test/data/ical-007.ical | 5 | ||||
-rw-r--r-- | test/data/ical-008.ical | 4 | ||||
-rw-r--r-- | test/data/ical-009.ical | 131 | ||||
-rw-r--r-- | test/data/ical-012.ical | 89 | ||||
-rw-r--r-- | test/data/ical-014.ical | 106 | ||||
-rw-r--r-- | test/data/rfc5545 | 28 | ||||
-rw-r--r-- | test/data/rfc5545.ical | 238 | ||||
-rw-r--r-- | test/data/todo-export | 1 |
13 files changed, 651 insertions, 6 deletions
diff --git a/test/data/apts-export b/test/data/apts-export new file mode 100644 index 0000000..65fbbc4 --- /dev/null +++ b/test/data/apts-export @@ -0,0 +1,2 @@ +02/26/2020 @ 07:09 -> 02/26/2020 @ 07:10|Exported, escaped characters in SUMMARY: ,(comma), ;(semicolon) , and \(escape). +02/26/2020 [1] Exported, escaped characters in SUMMARY: ,(comma), ;(semicolon) , and \(escape). diff --git a/test/data/ical-002.ical b/test/data/ical-002.ical index 915b84e..b9f6538 100644 --- a/test/data/ical-002.ical +++ b/test/data/ical-002.ical @@ -8,12 +8,12 @@ END:VEVENT BEGIN:VEVENT DTSTART:20000101T000000 DURATION:P1DT1H1M1S -SUMMARY:One day, one hour, one minute and one second +SUMMARY:One day\, one hour\, one minute and one second END:VEVENT BEGIN:VEVENT DTSTART:20000101T000000 DURATION:PT1H1M1S -SUMMARY:One hour, one minute and one second +SUMMARY:One hour\, one minute and one second END:VEVENT BEGIN:VEVENT DTSTART:20000101T000000 diff --git a/test/data/ical-003.ical b/test/data/ical-003.ical index 599d24f..5645705 100644 --- a/test/data/ical-003.ical +++ b/test/data/ical-003.ical @@ -22,4 +22,49 @@ 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.\nNon-repeating event. +SUMMARY:First weekend in May +END:VEVENT +BEGIN:VEVENT +DTSTAMP: +UID: +DTSTART;VALUE=DATE:20200502 +DTEND;VALUE=DATE:20200504 +DESCRIPTION:First weekend in May is a two-day event!\nRepeating event\, three years. +SUMMARY:First weekend in May +RRULE:FREQ=YEARLY;BYDAY=1SA;BYMONTH=5;COUNT=3 +END:VEVENT +BEGIN:VEVENT +DTSTAMP: +UID: +DTSTART:20200502T000000 +DTEND:20200504T000000 +DESCRIPTION:First weekend in May is a two-day event!\nRepeating appointment. +SUMMARY:First weekend in May +RRULE:FREQ=YEARLY;BYDAY=1SA;BYMONTH=5;COUNT=3 +END:VEVENT END:VCALENDAR diff --git a/test/data/ical-005.ical b/test/data/ical-005.ical index 5f20f48..e417779 100644 --- a/test/data/ical-005.ical +++ b/test/data/ical-005.ical @@ -18,6 +18,6 @@ TRANSP:TRANSPARENT END:VEVENT BEGIN:VEVENT SUMMARY:On day 2 -DTSTART;VALUE=DATE:20131003 +DTSTART;VALUE=DATE:20131004 END:VEVENT END:VCALENDAR diff --git a/test/data/ical-006.ical b/test/data/ical-006.ical index 374ac2d..96c0b2c 100644 --- a/test/data/ical-006.ical +++ b/test/data/ical-006.ical @@ -56,7 +56,7 @@ DTSTART:20120601T150000 DURATION:PT5H10S END:VEVENT BEGIN:VEVENT -SUMMARY:5 hours, 30 minutes and 10 seconds +SUMMARY:5 hours\, 30 minutes and 10 seconds DTSTART:20120601T150000 DURATION:PT5H30M10S END:VEVENT diff --git a/test/data/ical-007.ical b/test/data/ical-007.ical index e46c3fb..a7dfdd5 100644 --- a/test/data/ical-007.ical +++ b/test/data/ical-007.ical @@ -10,4 +10,9 @@ SUMMARY:UTC DTSTART:20150223T110000Z DURATION:PT1H END:VEVENT +BEGIN:VEVENT +SUMMARY:CET +DTSTART;TZID=CET:20150223T110000 +DURATION:PT1H +END:VEVENT END:VCALENDAR diff --git a/test/data/ical-008.ical b/test/data/ical-008.ical index 51625d5..7789734 100644 --- a/test/data/ical-008.ical +++ b/test/data/ical-008.ical @@ -1,8 +1,8 @@ BEGIN:VCALENDAR VERSION:2.0 BEGIN:VEVENT -DTSTART;TZID="(UTC+01:00) Amsterdam, Berlin, Bern, Rom, Stockholm, Wien":19800101T000100 -DURATION:P1DT9H17M0S +DTSTART:19800101T000100 +DURATION;TESTPARAM="Quoted string with colon(:), semicolon(;) and comma(,)":P1DT9H17M0S SUMMARY:Calibrator's END:VEVENT BEGIN:VTODO diff --git a/test/data/ical-009.ical b/test/data/ical-009.ical new file mode 100644 index 0000000..14bf4eb --- /dev/null +++ b/test/data/ical-009.ical @@ -0,0 +1,131 @@ +BEGIN:VCALENDAR +VERSION:2.0 +BEGIN:VEVENT +DURATION:PT1H30M0S +SUMMARY:A simple appointment +DTSTART:20200318T084100 +END:VEVENT +BEGIN:VTODO +PRIORITY:1 +SUMMARY:A simple todo +END:VTODO +BEGIN:VEVENT +DTSTART: +DURATION:PT1H30M0S +SUMMARY:invalid start time +END:VEVENT +BEGIN:VEVENT +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 +EXDATE:20200324T084100 +SUMMARY:exdate\, missing rrule +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: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 diff --git a/test/data/ical-012.ical b/test/data/ical-012.ical new file mode 100644 index 0000000..05604af --- /dev/null +++ b/test/data/ical-012.ical @@ -0,0 +1,89 @@ +BEGIN:VCALENDAR +VERSION:2.0 + +BEGIN:VEVENT +DTSTART:20200404T204500 +DURATION:PT1H30M0S +SUMMARY:event with one-line description +DESCRIPTION:event with one-line description +END:VEVENT + +BEGIN:VEVENT +DTSTART:20200404T204500 +DURATION:PT1H30M0S +SUMMARY:description and location +DESCRIPTION:event with description\nand location +LOCATION: Right here +END:VEVENT + +BEGIN:VEVENT +DTSTART:20200404T084100 +DURATION:PT1H30M0S +SUMMARY:no description\, but comment +COMMENT:Event without description: a comment\nstreching over\nthree lines +END:VEVENT + +BEGIN:VEVENT +DTSTART:20200404T084100 +DURATION:PT1H30M0S +SUMMARY:Empty description +DESCRIPTION: +END:VEVENT + +BEGIN:VEVENT +DTSTART:20200404T084100 +DURATION:PT1H30M0S +SUMMARY:Empty description\, but comment +DESCRIPTION: +COMMENT:event with empty description +END:VEVENT + +BEGIN:VEVENT +DTSTART:20200404T204500 +DURATION:PT1H30M0S +SUMMARY:description\, comment and location +DESCRIPTION:event with\ndescription\ncomment\nand location +LOCATION: Right here +COMMENT:just a repetition of description:\nevent with\ndescription\ncomment\nand location +END:VEVENT + +BEGIN:VTODO +PRIORITY:2 +SUMMARY:todo with one-line description +DESCRIPTION:todo with one-line description +END:VTODO + +BEGIN:VTODO +PRIORITY:3 +SUMMARY:description and location +DESCRIPTION:todo with description\nand location +LOCATION: Right here +END:VTODO + +BEGIN:VTODO +PRIORITY:4 +SUMMARY:no description\, but comment +COMMENT:Todo without description. A comment\nstreching over\nthree lines +END:VTODO + +BEGIN:VTODO +PRIORITY:5 +SUMMARY:Empty description +DESCRIPTION: +END:VTODO + +BEGIN:VTODO +PRIORITY:6 +SUMMARY:Empty description +DESCRIPTION: +END:VTODO + +BEGIN:VTODO +SUMMARY:todo with description\, comment and location +DESCRIPTION:todo with\ndescription\ncomment\nand location\,\nbut no priority +LOCATION: Right here +COMMENT:mostly a repetition of description:\ntodo with\ndescription\ncomment\nand location +STATUS:COMPLETED +END:VTODO + +END:VCALENDAR diff --git a/test/data/ical-014.ical b/test/data/ical-014.ical new file mode 100644 index 0000000..19076bc --- /dev/null +++ b/test/data/ical-014.ical @@ -0,0 +1,106 @@ +BEGIN:VCALENDAR +VERSION:2.0 + +BEGIN:VEVENT +DTSTART:20200404T204500 +DURATION:PT1H30M0S +SUMMARY:event with one-line description +DESCRIPTION:event with one-line description +END:VEVENT + +BEGIN:VEVENT +DTSTART:20200404T204500 +DURATION:PT1H30M0S +SUMMARY:description and location +DESCRIPTION:event with description\nand location +LOCATION:Right here +END:VEVENT + +BEGIN:VEVENT +DTSTART:20200404T084100 +DURATION:PT1H30M0S +SUMMARY:no description\, but comment +COMMENT:Event without description: a comment\nstreching over\nthree lines +END:VEVENT + +BEGIN:VEVENT +DTSTART:20200404T084100 +DURATION:PT1H30M0S +SUMMARY:Empty description +DESCRIPTION: +END:VEVENT + +BEGIN:VEVENT +DTSTART:20200404T084100 +DURATION:PT1H30M0S +SUMMARY:Empty description\, but comment +DESCRIPTION: +COMMENT:event with empty description +END:VEVENT + +BEGIN:VEVENT +DTSTART:20200404T204500 +DURATION:PT1H30M0S +SUMMARY:description\, comment and location +DESCRIPTION:event with\ndescription\ncomment\nand location +LOCATION:Right here +COMMENT:just a repetition of description:\nevent with\ndescription\ncomment\nand location +END:VEVENT + +BEGIN:VTODO +PRIORITY:2 +SUMMARY:todo with one-line description +DESCRIPTION:todo with one-line description +END:VTODO + +BEGIN:VTODO +PRIORITY:3 +SUMMARY:description and location +DESCRIPTION:todo with description\nand location +LOCATION:Right here +END:VTODO + +BEGIN:VTODO +PRIORITY:4 +SUMMARY:no description\, but comment +COMMENT:Todo without description. A comment\nstreching over\nthree lines +END:VTODO + +BEGIN:VTODO +PRIORITY:5 +SUMMARY:Empty description +DESCRIPTION: +END:VTODO + +BEGIN:VTODO +PRIORITY:6 +SUMMARY:Empty description +DESCRIPTION: +END:VTODO + +BEGIN:VTODO +SUMMARY:todo with description\, comment and location +DESCRIPTION:todo with\ndescription\ncomment\nand location\,\nbut no priority +LOCATION:Right here +COMMENT:mostly a repetition of description:\ntodo with\ndescription\ncomment\nand location +STATUS:COMPLETED +END:VTODO + +BEGIN:VEVENT +SUMMARY:Five days +DESCRIPTION:A five-day event turned into a recurring one-day event +COMMENT:Note file has Comment: and Import: +DTSTART;VALUE=DATE:20200819 +DTEND;VALUE=DATE:20200824 +END:VEVENT + +BEGIN:VEVENT +SUMMARY:CET +DESCRIPTION:Date with local time and time zone reference +LOCATION:Central Europe +COMMENT:\nCET\n\n +DTSTART;TZID=CET:20150223T110000 +DURATION:PT1H +END:VEVENT + +END:VCALENDAR diff --git a/test/data/rfc5545 b/test/data/rfc5545 new file mode 100644 index 0000000..d9863ce --- /dev/null +++ b/test/data/rfc5545 @@ -0,0 +1,28 @@ +01/05/1997 @ 08:30 -> 01/05/1997 @ 08:30 {2Y w0 m1} |page 45: every sunday in January at 8:30 AM, every other year (FREQ=YEARLY;INTERVAL=2;BYMONTH=1;BYDAY=SU) +01/01/1998 @ 09:00 -> 01/01/1998 @ 09:00 {1Y -> 01/31/2000 w0 w1 w2 w3 w4 w5 w6 m1} |page 124(1): Every day in January for three years (FREQ=YEARLY;UNTIL=20000131T140000Z;BYMONTH=1;BYDAY=SU,MO,TU,WE,TH,FR,SA) +01/01/1998 @ 09:00 -> 01/01/1998 @ 09:00 {1D -> 01/31/2000 m1} |page 124(2): Every day in January for three years (FREQ=DAILY;UNTIL=20000131T140000Z;BYMONTH=1) +09/02/1997 @ 09:00 -> 09/02/1997 @ 09:00 {1W -> 10/02/1997 w2 w4} |page 125(1): Weekly on Tuesday and Thursday for five weeks (FREQ=WEEKLY;UNTIL=19971002T000000Z;BYDAY=TU,TH) +09/01/1997 @ 09:00 -> 09/01/1997 @ 09:00 {2W -> 12/24/1997 w1 w3 w5} |page 125: Every other week on Monday, Wednesday, and Friday until December 24, 1997, starting on Monday, September 1, 1997 (FREQ=WEEKLY;INTERVAL=2;UNTIL=19971224T000000Z;BYDAY=MO,WE,FR) +09/05/1997 @ 09:00 -> 09/05/1997 @ 09:00 {1M -> 06/05/1998 w12} |page 126: Monthly on the first Friday for 10 occurrences (FREQ=MONTHLY;COUNT=10;BYDAY=1FR) +09/07/1997 @ 09:00 -> 09/07/1997 @ 09:00 {2M -> 05/31/1998 w7 w-7} |page 126: 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) +09/22/1997 @ 09:00 -> 09/22/1997 @ 09:00 {1M -> 02/28/1998 w-15} |page 126: Monthly on the second-to-last Monday of the month for 6 months (RRULE:FREQ=MONTHLY;COUNT=6;BYDAY=-2MO) +09/28/1997 [1] {1M d-3} page 127: Monthly on the third-to-last day of the month, forever (RRULE:FREQ=MONTHLY;BYMONTHDAY=-3) +09/02/1997 @ 09:00 -> 09/02/1997 @ 09:00 {1M -> 02/01/1998 d2 d15} |Page 127: Monthly on the 2nd and 15th of month for 10 occurrences (RRULE:FREQ=MONTHLY;COUNT=10;BYMONTHDAY=2,15) +09/30/1997 @ 09:00 -> 09/30/1997 @ 09:00 {1M -> 02/01/1998 d1 d-1} |page 127: Monthly on the first and last day of the month for 10 occurrences (RRULE:FREQ=MONTHLY;COUNT=10;BYMONTHDAY=1,-1) +09/10/1997 @ 09:00 -> 09/10/1997 @ 09:00 {18M -> 03/13/1999 d10 d11 d12 d13 d14 d15} |page 127: 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) +09/02/1997 @ 09:00 -> 09/02/1997 @ 09:00 {2M w2} |page 127: Every Tuesday, every other month (RRULE:FREQ=MONTHLY;INTERVAL=2;BYDAY=TU) +06/10/1997 @ 09:00 -> 06/10/1997 @ 09:00 {1Y -> 07/10/2001 m6 m7} |page 128: Yearly in June and July for 10 occurrences (RRULE:FREQ=YEARLY;COUNT=10;BYMONTH=6,7) +03/10/1997 @ 09:00 -> 03/10/1997 @ 09:00 {2Y -> 03/10/2003 m1 m2 m3} |page 128: Every other year in January, February and March for 10 occurrences (RRULE:FREQ=YEARLY;INTERVAL=2;COUNT=10;BYMONTH=1,2,3) +05/19/1997 [1] {1Y w141} page 128: Every 20th Monday of the year, forever (RRULE:FREQ=YEARLY;BYDAY=20MO) +03/13/1997 @ 09:00 -> 03/13/1997 @ 09:00 {1Y w4 m3} |page 129: Every Thursday in March, forever (RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=TH) +06/05/1997 @ 09:00 -> 06/05/1997 @ 09:00 {1Y w4 m6 m7 m8} |page 129: Every Thursday, but only during June, July and August, forever (RRULE:FREQ=YEARLY;BYDAY=TH;BYMONTH=6,7,8) +02/13/1998 [1] {1M d13 w5} page 129: Every Friday the 13th, forever (RRULE:FREQ=MONTHLY;BYDAY=FR;BYMONTHDAY=13) +09/13/1997 [1] {1M d7 d8 d9 d10 d11 d12 d13 w6} page 130: The first Saturday that follows the first Sunday of the month, forever (RRULE:FREQ=MONTHLY;BYDAY=SA;BYMONTHDAY=7,8,9,10,11,12,13) +11/05/1996 [1] {4Y d2 d3 d4 d5 d6 d7 d8 w2 m11} page 130: Every 4 years, the first Tuesday after a Monday in November, forever (U.S. Presidential Election day) (RRULE:FREQ=YEARLY;INTERVAL=4;BYMONTH=11;BYDAY=TU;BYMONTHDAY=2,3,4,5,6,7,8) +08/05/1997 @ 09:00 -> 08/05/1997 @ 09:00 {2W -> 08/31/1997 w0 w2} |page 131: An example where the days generated makes a difference because of weekstart (RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU) +01/15/2007 [1] {1M -> 03/30/2007 d15 d30} page 132: An example where an invalid date (i.e. February 30) is ignored (RRULE:FREQ=MONTHLY;BYMONTHDAY=15,30;COUNT=5) +03/30/1997 @ 09:00 -> 03/30/1997 @ 09:00 {1Y w-7 m3} |Last Sunday in March, forever (RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU) +12/25/1997 [1] {3Y w-11} Last Thursday of the year every third year, forever (FREQ=YEARLY;INTERVAL=3;BYDAY=-1TH) +06/22/1997 [1] {2Y w0 w1} Every Sunday and Monday, every other year (FREQ=YEARLY;INTERVAL=2;BYDAY=SU,MO) +02/01/1997 [1] {1Y -> 01/31/2005 d1 d29 m2} Every year on February 1 and 29 for eight years (RRULE:FREQ=YEARLY;UNTIL=20050131T000000Z;BYMONTH=2;BYMONTHDAY=1,29) +08/01/2020 @ 08:41 -> 08/01/2020 @ 10:11 {1M w-41} |negative ordered weekday may not exist diff --git a/test/data/rfc5545.ical b/test/data/rfc5545.ical new file mode 100644 index 0000000..3f51388 --- /dev/null +++ b/test/data/rfc5545.ical @@ -0,0 +1,238 @@ +BEGIN:VCALENDAR +VERSION:2.0 +PRODID: +BEGIN:VEVENT +DTSTAMP: +UID: +DTSTART;TZID=America/New_York:19970901T090000 +SUMMARY: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 +END:VEVENT +BEGIN:VEVENT +DTSTAMP: +UID: +DTSTART;TZID=America/New_York:19970902T090000 +SUMMARY:Every other week on Tuesday and Thursday\, for 8 occurrences +RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=8;WKST=SU;BYDAY=TU,TH +END:VEVENT +BEGIN:VEVENT +DTSTAMP: +UID: +DTSTART;TZID=America/New_York:19970905T090000 +SUMMARY:Monthly on the first Friday for 10 occurrences +RRULE:FREQ=MONTHLY;COUNT=10;BYDAY=1FR +END:VEVENT +BEGIN:VEVENT +DTSTAMP: +UID: +DTSTART;TZID=America/New_York:19970905T090000 +SUMMARY:Monthly on the first Friday until December 24\, 1997 +RRULE:FREQ=MONTHLY;UNTIL=19971224T000000Z;BYDAY=1FR +END:VEVENT +BEGIN:VEVENT +DTSTAMP: +UID: +DTSTART;TZID=America/New_York:19970907T090000 +SUMMARY: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 +END:VEVENT +BEGIN:VEVENT +DTSTAMP: +UID: +DTSTART;TZID=America/New_York:19970922T090000 +SUMMARY:Monthly on the second-to-last Monday of the month for 6 months +RRULE:FREQ=MONTHLY;COUNT=6;BYDAY=-2MO +END:VEVENT +BEGIN:VEVENT +DTSTAMP: +UID: +DTSTART;TZID=America/New_York:19970928T090000 +SUMMARY:Monthly on the third-to-the-last day of the month\, forever +RRULE:FREQ=MONTHLY;BYMONTHDAY=-3 +END:VEVENT +BEGIN:VEVENT +DTSTAMP: +UID: +DTSTART;TZID=America/New_York:19970902T090000 +SUMMARY:Monthly on the 2nd and 15th of the month for 10 occurrences +RRULE:FREQ=MONTHLY;COUNT=10;BYMONTHDAY=2,15 +END:VEVENT +BEGIN:VEVENT +DTSTAMP: +UID: +DTSTART;TZID=America/New_York:19970930T090000 +SUMMARY:Monthly on the first and last day of the month for 10 occurrences +RRULE:FREQ=MONTHLY;COUNT=10;BYMONTHDAY=1,-1 +END:VEVENT +BEGIN:VEVENT +DTSTAMP: +UID: +DTSTART;TZID=America/New_York:19970910T090000 +SUMMARY: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 +END:VEVENT +BEGIN:VEVENT +DTSTAMP: +UID: +DTSTART;TZID=America/New_York:19970902T090000 +DURATION:PT1H +SUMMARY:Daily for 10 occurrences +RRULE:FREQ=DAILY;COUNT=10 +END:VEVENT +BEGIN:VEVENT +DTSTAMP: +UID: +DTSTART;TZID=America/New_York:19970902T090000 +SUMMARY:Every Tuesday\, every other month +RRULE:FREQ=MONTHLY;INTERVAL=2;BYDAY=TU +END:VEVENT +BEGIN:VEVENT +DTSTAMP: +UID: +DTSTART;TZID=America/New_York:19970610T090000 +SUMMARY:Yearly in June and July for 10 occurrences +RRULE:FREQ=YEARLY;COUNT=10;BYMONTH=6,7 +END:VEVENT +BEGIN:VEVENT +DTSTAMP: +UID: +DTSTART;TZID=America/New_York:19970310T090000 +SUMMARY:Every other year on January\, February\, and March for 10 occurrences +RRULE:FREQ=YEARLY;INTERVAL=2;COUNT=10;BYMONTH=1,2,3 +END:VEVENT +BEGIN:VEVENT +DTSTAMP: +UID: +DTSTART;TZID=America/New_York:19970519T090000 +SUMMARY:Every 20th Monday of the year\, forever +RRULE:FREQ=YEARLY;BYDAY=20MO +END:VEVENT +BEGIN:VEVENT +DTSTAMP: +UID: +DTSTART;TZID=America/New_York:19970313T090000 +SUMMARY:Every Thursday in March\, forever +RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=TH +END:VEVENT +BEGIN:VEVENT +DTSTAMP: +UID: +DTSTART;TZID=America/New_York:19970605T090000 +SUMMARY:Every Thursday\, but only during June\, July\, and August\, forever +RRULE:FREQ=YEARLY;BYDAY=TH;BYMONTH=6,7,8 +END:VEVENT +BEGIN:VEVENT +DTSTAMP: +UID: +DTSTART;TZID=America/New_York:19980213T090000 +SUMMARY:Every Friday the 13th\, forever +RRULE:FREQ=MONTHLY;BYDAY=FR;BYMONTHDAY=13 +END:VEVENT +BEGIN:VEVENT +DTSTAMP: +UID: +DTSTART;TZID=America/New_York:19970913T090000 +SUMMARY:The first Saturday that follows the first Sunday of the month\, forever +RRULE:FREQ=MONTHLY;BYDAY=SA;BYMONTHDAY=7,8,9,10,11,12,13 +END:VEVENT +BEGIN:VEVENT +DTSTAMP: +UID: +DTSTART;TZID=America/New_York:19961105T090000 +SUMMARY:Every 4 years\, the first Tuesday after a Monday in November\, forever (U.S. Presidential Election day) +RRULE:FREQ=YEARLY;INTERVAL=4;BYMONTH=11;BYDAY=TU;BYMONTHDAY=2,3,4,5,6,7,8 +END:VEVENT +BEGIN:VEVENT +DTSTAMP: +UID: +DTSTART;TZID=America/New_York:19970805T090000 +SUMMARY:An example where the days generated makes a difference because of WKST +RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=MO +END:VEVENT +BEGIN:VEVENT +DTSTAMP: +UID: +DTSTART;TZID=America/New_York:19970805T090000 +SUMMARY:changing only WKST from MO to SU\, yields different results... +RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU +END:VEVENT +BEGIN:VEVENT +DTSTAMP: +UID: +DTSTART;TZID=America/New_York:19970902T090000 +DURATION:PT30M +SUMMARY:Daily until December 24\, 1997 +RRULE:FREQ=DAILY;UNTIL=19971224T000000Z +END:VEVENT +BEGIN:VEVENT +DTSTAMP: +UID: +DTSTART;TZID=America/New_York:20070115T090000 +SUMMARY:An example where an invalid date (i.e.\, February 30) is ignored +RRULE:FREQ=MONTHLY;BYMONTHDAY=15,30;COUNT=5 +END:VEVENT +BEGIN:VEVENT +DTSTAMP: +UID: +DTSTART;TZID=America/New_York:19970902T090000 +DURATION:PT5M +SUMMARY:Every other day - forever +RRULE:FREQ=DAILY;INTERVAL=2 +END:VEVENT +BEGIN:VEVENT +DTSTAMP: +UID: +DTSTART;TZID=America/New_York:19970902T090000 +SUMMARY:Every 10 days\, 5 occurrences: +RRULE:FREQ=DAILY;INTERVAL=10;COUNT=5 +END:VEVENT +BEGIN:VEVENT +DTSTAMP: +UID: +DTSTART;TZID=America/New_York:19980101T090000 +SUMMARY:(1) Every day in January\, for 3 years: +RRULE:FREQ=YEARLY;UNTIL=20000131T140000Z;BYMONTH=1;BYDAY=SU,MO,TU,WE,TH,FR,SA +END:VEVENT +BEGIN:VEVENT +DTSTAMP: +UID: +DTSTART;TZID=America/New_York:19980101T090000 +SUMMARY:(2) Every day in January\, for 3 years: +RRULE:FREQ=DAILY;UNTIL=20000131T140000Z;BYMONTH=1 +END:VEVENT +BEGIN:VEVENT +DTSTAMP: +UID: +DTSTART;TZID=America/New_York:19970902T090000 +SUMMARY:Weekly for 10 occurrences +RRULE:FREQ=WEEKLY;COUNT=10 +END:VEVENT +BEGIN:VEVENT +DTSTAMP: +UID: +DTSTART;TZID=America/New_York:19970902T090000 +SUMMARY:Weekly until December 24\, 1997 +RRULE:FREQ=WEEKLY;UNTIL=19971224T000000Z +END:VEVENT +BEGIN:VEVENT +DTSTAMP: +UID: +DTSTART;TZID=America/New_York:19970902T090000 +SUMMARY:Every other week - forever +RRULE:FREQ=WEEKLY;INTERVAL=2;WKST=SU +END:VEVENT +BEGIN:VEVENT +DTSTAMP: +UID: +DTSTART;TZID=America/New_York:19970902T090000 +SUMMARY:Weekly on Tuesday and Thursday for five weeks (UNTIL) +RRULE:FREQ=WEEKLY;UNTIL=19971007T000000Z;WKST=SU;BYDAY=TU,TH +END:VEVENT +BEGIN:VEVENT +DTSTAMP: +UID: +DTSTART;TZID=America/New_York:19970902T090000 +SUMMARY:Weekly on Tuesday and Thursday for five weeks (COUNT) +RRULE:FREQ=WEEKLY;COUNT=10;WKST=SU;BYDAY=TU,TH +END:VEVENT +END:VCALENDAR diff --git a/test/data/todo-export b/test/data/todo-export new file mode 100644 index 0000000..b7cfc23 --- /dev/null +++ b/test/data/todo-export @@ -0,0 +1 @@ +[1] Exported, escaped characters in SUMMARY: ,(comma), ;(semicolon) , and \(escape). |