aboutsummaryrefslogtreecommitdiffstats
path: root/test/data
diff options
context:
space:
mode:
Diffstat (limited to 'test/data')
-rw-r--r--test/data/ical-003.ical45
-rw-r--r--test/data/ical-005.ical2
-rw-r--r--test/data/ical-007.ical5
-rw-r--r--test/data/ical-008.ical4
-rw-r--r--test/data/ical-009.ical29
-rw-r--r--test/data/ical-012.ical26
-rw-r--r--test/data/ical-014.ical106
-rw-r--r--test/data/rfc55451
-rw-r--r--test/data/rfc5545.ical238
9 files changed, 431 insertions, 25 deletions
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-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
index 1828417..14bf4eb 100644
--- a/test/data/ical-009.ical
+++ b/test/data/ical-009.ical
@@ -1,9 +1,9 @@
BEGIN:VCALENDAR
VERSION:2.0
BEGIN:VEVENT
-DTSTART:20200318T084100
DURATION:PT1H30M0S
SUMMARY:A simple appointment
+DTSTART:20200318T084100
END:VEVENT
BEGIN:VTODO
PRIORITY:1
@@ -12,6 +12,10 @@ 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
@@ -39,6 +43,12 @@ 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
@@ -66,12 +76,6 @@ END:VTODO
BEGIN:VEVENT
DTSTART:20200406T221300
DURATION:PT0H15M0S
-SUMMARY:Invalid STATUS
-STATUS:confirmed
-END:VEVENT
-BEGIN:VEVENT
-DTSTART:20200406T221300
-DURATION:PT0H15M0S
SUMMARY:LOCATION twice
LOCATION:first
LOCATION:second
@@ -111,6 +115,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
diff --git a/test/data/ical-012.ical b/test/data/ical-012.ical
index 09385fb..05604af 100644
--- a/test/data/ical-012.ical
+++ b/test/data/ical-012.ical
@@ -19,9 +19,8 @@ END:VEVENT
BEGIN:VEVENT
DTSTART:20200404T084100
DURATION:PT1H30M0S
-SUMMARY:No description. Comment and status
+SUMMARY:no description\, but comment
COMMENT:Event without description: a comment\nstreching over\nthree lines
-STATUS:CONFIRMED
END:VEVENT
BEGIN:VEVENT
@@ -42,11 +41,10 @@ END:VEVENT
BEGIN:VEVENT
DTSTART:20200404T204500
DURATION:PT1H30M0S
-SUMMARY:description\, status\, comment and location
-DESCRIPTION:event with\ndescription\nstatus\ncomment\nand location
+SUMMARY:description\, comment and location
+DESCRIPTION:event with\ndescription\ncomment\nand location
LOCATION: Right here
-COMMENT:just a repetition of description:\nevent with\ndescription\nstatus\ncomment\nand location
-STATUS:CANCELLED
+COMMENT:just a repetition of description:\nevent with\ndescription\ncomment\nand location
END:VEVENT
BEGIN:VTODO
@@ -64,9 +62,8 @@ END:VTODO
BEGIN:VTODO
PRIORITY:4
-SUMMARY:Comment and status
-COMMENT:Todo with out description. A comment\nstreching over\nthree lines
-STATUS:NEEDS-ACTION
+SUMMARY:no description\, but comment
+COMMENT:Todo without description. A comment\nstreching over\nthree lines
END:VTODO
BEGIN:VTODO
@@ -77,17 +74,16 @@ END:VTODO
BEGIN:VTODO
PRIORITY:6
-SUMMARY:Empty description\,but status
+SUMMARY:Empty description
DESCRIPTION:
-STATUS:COMPLETED
END:VTODO
BEGIN:VTODO
-SUMMARY:todo with description\, status\, comment and location
-DESCRIPTION:todo with\ndescription\nstatus\ncomment\nand location\,\nbut no priority
+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\nstatus\ncomment\nand location
-STATUS:IN-PROCESS
+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
index 421dd53..d9863ce 100644
--- a/test/data/rfc5545
+++ b/test/data/rfc5545
@@ -25,3 +25,4 @@
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