summaryrefslogtreecommitdiff
path: root/includes/composer/vendor/om/icalparser/tests/cal
diff options
context:
space:
mode:
authorRaindropsSys <contact@minteck.org>2023-03-21 16:21:21 +0100
committerRaindropsSys <contact@minteck.org>2023-03-21 16:21:21 +0100
commit475c5731bf3362b6ac8d2dc5d5b43e4b4a6117bd (patch)
tree2cff46debf9c1e13892e7babff9deb6874ecb4b2 /includes/composer/vendor/om/icalparser/tests/cal
parent7ccc2de87f9e25c715dc09b9aba4eb5c66f80424 (diff)
downloadpluralconnect-475c5731bf3362b6ac8d2dc5d5b43e4b4a6117bd.tar.gz
pluralconnect-475c5731bf3362b6ac8d2dc5d5b43e4b4a6117bd.tar.bz2
pluralconnect-475c5731bf3362b6ac8d2dc5d5b43e4b4a6117bd.zip
Updated 26 files and added 1074 files (automated)
Diffstat (limited to 'includes/composer/vendor/om/icalparser/tests/cal')
-rw-r--r--includes/composer/vendor/om/icalparser/tests/cal/38_weekly_recurring_event_missing_day.ics59
-rw-r--r--includes/composer/vendor/om/icalparser/tests/cal/FrenchHolidays.ics382
-rw-r--r--includes/composer/vendor/om/icalparser/tests/cal/basic.ics616
-rwxr-xr-xincludes/composer/vendor/om/icalparser/tests/cal/blank_description.ics51
-rwxr-xr-xincludes/composer/vendor/om/icalparser/tests/cal/blank_line_end.ics4
-rwxr-xr-xincludes/composer/vendor/om/icalparser/tests/cal/blank_line_mid.ics4
-rwxr-xr-xincludes/composer/vendor/om/icalparser/tests/cal/daily_recur.ics52
-rwxr-xr-xincludes/composer/vendor/om/icalparser/tests/cal/daily_recur2.ics41
-rwxr-xr-xincludes/composer/vendor/om/icalparser/tests/cal/day_long_recur_yearly.ics52
-rwxr-xr-xincludes/composer/vendor/om/icalparser/tests/cal/forced_types.ics50
-rwxr-xr-xincludes/composer/vendor/om/icalparser/tests/cal/google_birthday.ics90
-rwxr-xr-xincludes/composer/vendor/om/icalparser/tests/cal/minimal.ics39
-rw-r--r--includes/composer/vendor/om/icalparser/tests/cal/missing-timezone.ics47
-rw-r--r--includes/composer/vendor/om/icalparser/tests/cal/missing_RRULE_notice.ics39
-rw-r--r--includes/composer/vendor/om/icalparser/tests/cal/multiline_description.ics52
-rwxr-xr-xincludes/composer/vendor/om/icalparser/tests/cal/multiple_attachments.ics45
-rwxr-xr-xincludes/composer/vendor/om/icalparser/tests/cal/multiple_categories.ics67
-rwxr-xr-xincludes/composer/vendor/om/icalparser/tests/cal/multiple_rrules.ics45
-rwxr-xr-xincludes/composer/vendor/om/icalparser/tests/cal/parserv2.ics45
-rw-r--r--includes/composer/vendor/om/icalparser/tests/cal/readme.md3
-rwxr-xr-xincludes/composer/vendor/om/icalparser/tests/cal/recur_instances.ics92
-rwxr-xr-xincludes/composer/vendor/om/icalparser/tests/cal/recur_instances_finite.ics50
-rw-r--r--includes/composer/vendor/om/icalparser/tests/cal/recur_instances_with_modifications.ics63
-rw-r--r--includes/composer/vendor/om/icalparser/tests/cal/recur_instances_with_modifications_and_interval.ics578
-rwxr-xr-xincludes/composer/vendor/om/icalparser/tests/cal/recur_instances_with_modifications_to_first_day.ics57
-rw-r--r--includes/composer/vendor/om/icalparser/tests/cal/rrule_interval.ics34
-rw-r--r--includes/composer/vendor/om/icalparser/tests/cal/url.ics32
-rwxr-xr-xincludes/composer/vendor/om/icalparser/tests/cal/utc_negative_zero.ics27
-rw-r--r--includes/composer/vendor/om/icalparser/tests/cal/weird_windows_timezones.ics237
-rw-r--r--includes/composer/vendor/om/icalparser/tests/cal/wrong_dates.ics37
30 files changed, 2990 insertions, 0 deletions
diff --git a/includes/composer/vendor/om/icalparser/tests/cal/38_weekly_recurring_event_missing_day.ics b/includes/composer/vendor/om/icalparser/tests/cal/38_weekly_recurring_event_missing_day.ics
new file mode 100644
index 0000000..26326c3
--- /dev/null
+++ b/includes/composer/vendor/om/icalparser/tests/cal/38_weekly_recurring_event_missing_day.ics
@@ -0,0 +1,59 @@
+BEGIN:VCALENDAR
+PRODID:-//Google Inc//Google Calendar 70.9054//EN
+VERSION:2.0
+CALSCALE:GREGORIAN
+METHOD:PUBLISH
+X-WR-CALNAME:Office Opening Hours
+X-WR-TIMEZONE:Europe/London
+BEGIN:VTIMEZONE
+TZID:Europe/London
+X-LIC-LOCATION:Europe/London
+BEGIN:DAYLIGHT
+TZOFFSETFROM:+0000
+TZOFFSETTO:+0100
+TZNAME:BST
+DTSTART:19700329T010000
+RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
+END:DAYLIGHT
+BEGIN:STANDARD
+TZOFFSETFROM:+0100
+TZOFFSETTO:+0000
+TZNAME:GMT
+DTSTART:19701025T020000
+RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTART;TZID=Europe/London:20190401T090000
+DTEND;TZID=Europe/London:20190401T170000
+RRULE:FREQ=WEEKLY;WKST=SU;BYDAY=MO,TU,WE,TH,FR
+DTSTAMP:20190402T174536Z
+UID:1nibcosj8r05bjoia671im7ulg@google.com
+CREATED:20190401T144832Z
+DESCRIPTION:
+LAST-MODIFIED:20190401T145024Z
+LOCATION:
+SEQUENCE:0
+STATUS:CONFIRMED
+SUMMARY:Office Opening Hours
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;TZID=Europe/London:20190225T090000
+DTEND;TZID=Europe/London:20190225T170000
+RRULE:FREQ=WEEKLY;WKST=SU;UNTIL=20190329T235959Z;BYDAY=MO,TU,WE,TH,FR
+DTSTAMP:20190402T174536Z
+UID:7e581hcu1ub3nm0bb6c4o29suj@google.com
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Office
+ Opening Hours;X-NUM-GUESTS=0:mailto:poweredpasture.com_la2jmsbphe5h11351kk
+ scnnqtg@group.calendar.google.com
+CREATED:20190227T164630Z
+DESCRIPTION:
+LAST-MODIFIED:20190401T144725Z
+LOCATION:
+SEQUENCE:0
+STATUS:CONFIRMED
+SUMMARY:Office Opening Hours
+TRANSP:OPAQUE
+END:VEVENT
+END:VCALENDAR
diff --git a/includes/composer/vendor/om/icalparser/tests/cal/FrenchHolidays.ics b/includes/composer/vendor/om/icalparser/tests/cal/FrenchHolidays.ics
new file mode 100644
index 0000000..efb0143
--- /dev/null
+++ b/includes/composer/vendor/om/icalparser/tests/cal/FrenchHolidays.ics
@@ -0,0 +1,382 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Mozilla.org/NONSGML Mozilla Calendar V1.1//EN
+BEGIN:VTIMEZONE
+TZID:/mozilla.org/20070129_1/Europe/Paris
+X-LIC-LOCATION:Europe/Paris
+BEGIN:DAYLIGHT
+TZOFFSETFROM:+0100
+TZOFFSETTO:+0200
+TZNAME:CEST
+DTSTART:19700329T020000
+RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=3
+END:DAYLIGHT
+BEGIN:STANDARD
+TZOFFSETFROM:+0200
+TZOFFSETTO:+0100
+TZNAME:CET
+DTSTART:19701025T030000
+RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=10
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+CREATED:20070606T141629Z
+LAST-MODIFIED:20070606T154611Z
+DTSTAMP:20070607T120859Z
+UID:5d1ae55f-3910-4de9-8b65-d652768fb2f2
+SUMMARY:Lundi de Pâques
+DTSTART;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20070409
+DTEND;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20070410
+CATEGORIES:Jours fériés
+END:VEVENT
+BEGIN:VEVENT
+CREATED:20070606T161310Z
+LAST-MODIFIED:20070606T161327Z
+DTSTAMP:20070607T120859Z
+UID:9e19b119-f077-4ae9-934e-cb62322ca81f
+SUMMARY:Ascension
+DTSTART;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20080501
+DTEND;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20080502
+CATEGORIES:Jours fériés
+END:VEVENT
+BEGIN:VEVENT
+CREATED:20070605T163903Z
+LAST-MODIFIED:20070606T161656Z
+DTSTAMP:20070607T120859Z
+UID:c6a930d6-4ed5-45d8-bb3d-d3587a32b8aa
+SUMMARY:Jour de l'an
+CLASS:PUBLIC
+RRULE:FREQ=YEARLY;INTERVAL=1
+DTSTART;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20070101
+DTEND;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20070102
+CATEGORIES:Jours fériés
+END:VEVENT
+BEGIN:VEVENT
+CREATED:20070606T141739Z
+LAST-MODIFIED:20070606T161721Z
+DTSTAMP:20070607T120859Z
+UID:f439c81b-fd09-4b40-a629-3a9663dd29ff
+SUMMARY:Fête du Travail
+CLASS:PUBLIC
+RRULE:FREQ=YEARLY;INTERVAL=1
+DTSTART;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20070501
+DTEND;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20070502
+CATEGORIES:Jours fériés
+END:VEVENT
+BEGIN:VEVENT
+CREATED:20070606T141853Z
+LAST-MODIFIED:20070606T161731Z
+DTSTAMP:20070607T120859Z
+UID:b1c0e1ed-a09f-4fc2-aab1-170d3f661f13
+SUMMARY:Armistice 1945
+RRULE:FREQ=YEARLY;INTERVAL=1
+DTSTART;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20070508
+DTEND;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20070509
+CATEGORIES:Jours fériés
+END:VEVENT
+BEGIN:VEVENT
+CREATED:20070606T141932Z
+LAST-MODIFIED:20070606T161741Z
+DTSTAMP:20070607T120859Z
+UID:5468e1a0-9dda-4fd2-88c0-dc3e727c1183
+SUMMARY:Ascension
+DTSTART;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20070517
+DTEND;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20070518
+CATEGORIES:Jours fériés
+END:VEVENT
+BEGIN:VEVENT
+CREATED:20070606T154927Z
+LAST-MODIFIED:20070606T161748Z
+DTSTAMP:20070607T120859Z
+UID:67a89bb6-9ad4-461b-951c-c4c8482d8618
+SUMMARY:Lundi de Pentecôte
+DTSTART;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20070528
+DTEND;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20070529
+CATEGORIES:Jours fériés
+END:VEVENT
+BEGIN:VEVENT
+CREATED:20070606T142033Z
+LAST-MODIFIED:20070606T161758Z
+DTSTAMP:20070607T120859Z
+UID:00eb3adc-c059-47c8-a1c0-4ca7048051b9
+SUMMARY:Fête Nationale
+RRULE:FREQ=YEARLY;INTERVAL=1
+DTSTART;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20070714
+DTEND;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20070715
+CATEGORIES:Jours fériés
+END:VEVENT
+BEGIN:VEVENT
+CREATED:20070606T142112Z
+LAST-MODIFIED:20070606T162012Z
+DTSTAMP:20070607T120859Z
+UID:854e5499-9276-4a96-9be3-bcbaa7caafcf
+SUMMARY:Assomption
+RRULE:FREQ=YEARLY;INTERVAL=1
+DTSTART;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20070815
+DTEND;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20070816
+CATEGORIES:Jours fériés
+END:VEVENT
+BEGIN:VEVENT
+CREATED:20070606T142147Z
+LAST-MODIFIED:20070606T162034Z
+DTSTAMP:20070607T120859Z
+UID:725c8c16-c37a-49f0-9d2e-dc976d6c3ea5
+SUMMARY:Toussaint
+RRULE:FREQ=YEARLY;INTERVAL=1
+DTSTART;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20071101
+DTEND;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20071102
+CATEGORIES:Jours fériés
+END:VEVENT
+BEGIN:VEVENT
+CREATED:20070606T142211Z
+LAST-MODIFIED:20070606T162044Z
+DTSTAMP:20070607T120859Z
+UID:5218f724-6b66-434d-a8c5-138dfed64e07
+SUMMARY:Armistice 1918
+RRULE:FREQ=YEARLY;INTERVAL=1
+DTSTART;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20071111
+DTEND;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20071112
+CATEGORIES:Jours fériés
+END:VEVENT
+BEGIN:VEVENT
+CREATED:20070606T142243Z
+LAST-MODIFIED:20070606T162054Z
+DTSTAMP:20070607T120859Z
+UID:18617cde-2d15-46c6-900f-b3341a7b7f98
+SUMMARY:Noël
+RRULE:FREQ=YEARLY;INTERVAL=1
+DTSTART;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20071225
+DTEND;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20071226
+CATEGORIES:Jours fériés
+END:VEVENT
+BEGIN:VEVENT
+CREATED:20070606T150648Z
+LAST-MODIFIED:20070606T162128Z
+DTSTAMP:20070607T120859Z
+UID:19d50a52-f5a9-4d70-8fd7-a2caa97f6959
+SUMMARY:Lundi de Pâques
+DTSTART;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20080324
+DTEND;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20080325
+CATEGORIES:Jours fériés
+END:VEVENT
+BEGIN:VEVENT
+CREATED:20070607T105427Z
+LAST-MODIFIED:20070607T105450Z
+DTSTAMP:20070607T120859Z
+UID:18c90b99-edfa-4418-9bc7-992a07384967
+SUMMARY:Lundi de Pâques
+DTSTART;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20090413
+DTEND;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20090414
+CATEGORIES:Jours fériés
+END:VEVENT
+BEGIN:VEVENT
+CREATED:20070607T105613Z
+LAST-MODIFIED:20070607T105630Z
+DTSTAMP:20070607T120859Z
+UID:b989d129-8f2f-42be-a027-183f6d81eb40
+SUMMARY:Ascension
+DTSTART;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20090521
+DTEND;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20090522
+CATEGORIES:Jours fériés
+END:VEVENT
+BEGIN:VEVENT
+CREATED:20070607T105907Z
+LAST-MODIFIED:20070607T105928Z
+DTSTAMP:20070607T120859Z
+UID:7c6fe35c-44a5-450b-aea6-dd2baef78f06
+SUMMARY:Lundi de Pentecôte
+DTSTART;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20090601
+DTEND;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20090602
+CATEGORIES:Jours fériés
+END:VEVENT
+BEGIN:VEVENT
+CREATED:20070607T110046Z
+LAST-MODIFIED:20070607T110100Z
+DTSTAMP:20070607T120859Z
+UID:98c1c381-8632-45ce-9b11-10757face7c4
+SUMMARY:Lundi de Pâques
+DTSTART;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20100405
+DTEND;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20100406
+CATEGORIES:Jours fériés
+END:VEVENT
+BEGIN:VEVENT
+CREATED:20070607T110121Z
+LAST-MODIFIED:20070607T110135Z
+DTSTAMP:20070607T120859Z
+UID:aaeb1ba5-60f0-4e49-a25a-c0ff949acdd9
+SUMMARY:Ascension
+DTSTART;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20100513
+DTEND;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20100514
+CATEGORIES:Jours fériés
+END:VEVENT
+BEGIN:VEVENT
+CREATED:20070607T110144Z
+LAST-MODIFIED:20070607T110201Z
+DTSTAMP:20070607T120859Z
+UID:1f68f978-969e-4791-a7e3-cb3011134a34
+SUMMARY:Lundi de Pentecôte
+DTSTART;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20100524
+DTEND;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20100525
+CATEGORIES:Jours fériés
+END:VEVENT
+BEGIN:VEVENT
+CREATED:20070607T112820Z
+LAST-MODIFIED:20070607T112836Z
+DTSTAMP:20070607T120859Z
+UID:fa0d4b5b-8eeb-4b98-b35c-b6a547b96953
+SUMMARY:Ascension
+DTSTART;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20110602
+DTEND;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20110603
+CATEGORIES:Jours fériés
+END:VEVENT
+BEGIN:VEVENT
+CREATED:20070607T112846Z
+LAST-MODIFIED:20070607T112906Z
+DTSTAMP:20070607T120859Z
+UID:5be6194a-9fbd-45da-8e3c-568cac66b997
+SUMMARY:Lundi de Pentecôte
+DTSTART;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20110613
+DTEND;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20110614
+CATEGORIES:Jours fériés
+END:VEVENT
+BEGIN:VEVENT
+CREATED:20070607T112958Z
+LAST-MODIFIED:20070607T113016Z
+DTSTAMP:20070607T120859Z
+UID:4162d242-5468-4007-8814-10286b9589a0
+SUMMARY:Lundi de Pâques
+DTSTART;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20120409
+DTEND;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20120410
+CATEGORIES:Jours fériés
+END:VEVENT
+BEGIN:VEVENT
+CREATED:20070607T113034Z
+LAST-MODIFIED:20070607T113048Z
+DTSTAMP:20070607T120859Z
+UID:6d368a35-6b6d-4ec1-9f48-97c53b25502e
+SUMMARY:Ascension
+DTSTART;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20120517
+DTEND;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20120518
+CATEGORIES:Jours fériés
+END:VEVENT
+BEGIN:VEVENT
+CREATED:20070607T113055Z
+LAST-MODIFIED:20070607T113114Z
+DTSTAMP:20070607T120859Z
+UID:e8913a3d-3e84-447d-afb4-f0b082948449
+SUMMARY:Lundi de Pentecôte
+DTSTART;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20120528
+DTEND;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20120529
+CATEGORIES:Jours fériés
+END:VEVENT
+BEGIN:VEVENT
+CREATED:20070607T113205Z
+LAST-MODIFIED:20070607T113229Z
+DTSTAMP:20070607T120859Z
+UID:ebc79872-a185-4641-bc22-1092d5139efb
+SUMMARY:Lundi de Pâques
+DTSTART;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20130401
+DTEND;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20130402
+CATEGORIES:Jours fériés
+END:VEVENT
+BEGIN:VEVENT
+CREATED:20070607T113245Z
+LAST-MODIFIED:20070607T113257Z
+DTSTAMP:20070607T120859Z
+UID:9714bd39-429b-433c-ab5c-5fd6a67e658e
+SUMMARY:Ascension
+DTSTART;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20130509
+DTEND;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20130510
+CATEGORIES:Jours fériés
+END:VEVENT
+BEGIN:VEVENT
+CREATED:20070607T113305Z
+LAST-MODIFIED:20070607T113325Z
+DTSTAMP:20070607T120859Z
+UID:79f5f02f-e92d-417f-9637-9e2a88840583
+SUMMARY:Lundi de Pentecôte
+DTSTART;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20130520
+DTEND;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20130521
+CATEGORIES:Jours fériés
+END:VEVENT
+BEGIN:VEVENT
+CREATED:20070607T113408Z
+LAST-MODIFIED:20070607T113426Z
+DTSTAMP:20070607T120859Z
+UID:172dcce6-6f95-4c1f-ada9-e8bf2a7e8245
+SUMMARY:Lundi de Pâques
+DTSTART;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20140421
+DTEND;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20140422
+CATEGORIES:Jours fériés
+END:VEVENT
+BEGIN:VEVENT
+CREATED:20070607T113439Z
+LAST-MODIFIED:20070607T113452Z
+DTSTAMP:20070607T120859Z
+UID:6625ed89-bf9f-478a-9796-c3dc203ab5e6
+SUMMARY:Ascension
+DTSTART;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20140529
+DTEND;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20140530
+CATEGORIES:Jours fériés
+END:VEVENT
+BEGIN:VEVENT
+CREATED:20070607T113504Z
+LAST-MODIFIED:20070607T113523Z
+DTSTAMP:20070607T120859Z
+UID:7abad826-ab68-447f-81b2-1e04a4c2ef88
+SUMMARY:Lundi de Pentecôte
+DTSTART;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20140609
+DTEND;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20140610
+CATEGORIES:Jours fériés
+END:VEVENT
+BEGIN:VEVENT
+CREATED:20070607T113606Z
+LAST-MODIFIED:20070607T113622Z
+DTSTAMP:20070607T120859Z
+UID:cf42813f-4a74-422b-aa19-90dcefccc92d
+SUMMARY:Lundi de Pâques
+DTSTART;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20150406
+DTEND;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20150407
+CATEGORIES:Jours fériés
+END:VEVENT
+BEGIN:VEVENT
+CREATED:20070607T113643Z
+LAST-MODIFIED:20070607T113657Z
+DTSTAMP:20070607T120859Z
+UID:e7d30f2b-d546-4b7e-8780-0754a46e6970
+SUMMARY:Ascension
+DTSTART;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20150514
+DTEND;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20150515
+CATEGORIES:Jours fériés
+END:VEVENT
+BEGIN:VEVENT
+CREATED:20070607T113706Z
+LAST-MODIFIED:20070607T113726Z
+DTSTAMP:20070607T120859Z
+UID:a8ccc771-4e8b-4594-ae30-33e9ce384ac9
+SUMMARY:Lundi de Pentecôte
+DTSTART;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20150525
+DTEND;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20150526
+CATEGORIES:Jours fériés
+END:VEVENT
+BEGIN:VEVENT
+CREATED:20070606T162350Z
+LAST-MODIFIED:20070607T115133Z
+DTSTAMP:20070607T120859Z
+UID:419f1bff-a820-4d07-bf4e-1a6ec139e3df
+SUMMARY:Lundi de Pentecôte
+DTSTART;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20080512
+DTEND;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20080513
+CATEGORIES:Jours fériés
+END:VEVENT
+BEGIN:VEVENT
+CREATED:20070607T112742Z
+LAST-MODIFIED:20070607T115439Z
+DTSTAMP:20070607T120859Z
+UID:570d9fe7-cdc9-4fdf-9794-909edf520383
+SUMMARY:Lundi de Pâques
+DTSTART;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20110425
+DTEND;VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Paris:20110426
+CATEGORIES:Jours fériés
+END:VEVENT
+END:VCALENDAR
diff --git a/includes/composer/vendor/om/icalparser/tests/cal/basic.ics b/includes/composer/vendor/om/icalparser/tests/cal/basic.ics
new file mode 100644
index 0000000..0c58974
--- /dev/null
+++ b/includes/composer/vendor/om/icalparser/tests/cal/basic.ics
@@ -0,0 +1,616 @@
+BEGIN:VCALENDAR
+PRODID:-//Google Inc//Google Calendar 70.9054//EN
+VERSION:2.0
+CALSCALE:GREGORIAN
+METHOD:PUBLISH
+X-WR-TIMEZONE:UTC
+X-WR-CALDESC:České svátky
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20131224
+DTEND;VALUE=DATE:20131225
+DTSTAMP:20140202T201100Z
+UID:h@9bae7e86083abdfdff45712c19ef81bc41f44111@google.com
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;X-NUM-GUE
+ STS=0:mailto:cdpisorqclhmg8r8dtm6ip31f506esjfelo2sthecdgmopbechgn4bj7dtnmer
+ 355phmur8%40virtual
+CLASS:PUBLIC
+CREATED:20140202T183416Z
+LAST-MODIFIED:20140202T183416Z
+SEQUENCE:1
+STATUS:CONFIRMED
+SUMMARY:Štedrý den
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20141224
+DTEND;VALUE=DATE:20141225
+DTSTAMP:20140202T201100Z
+UID:h@26c4829203feb7deebebdf226285322a079b9b7c@google.com
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;X-NUM-GUE
+ STS=0:mailto:cdpisorqclhmg8r8dtm6ip31f506esjfelo2sthecdgmopbechgn4bj7dtnmer
+ 355phmur8%40virtual
+CLASS:PUBLIC
+CREATED:20140202T183416Z
+LAST-MODIFIED:20140202T183416Z
+SEQUENCE:1
+STATUS:CONFIRMED
+SUMMARY:Štedrý den
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20151224
+DTEND;VALUE=DATE:20151225
+DTSTAMP:20140202T201100Z
+UID:h@1c3d67eb7865010f0ee809055f7c465124091d1b@google.com
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;X-NUM-GUE
+ STS=0:mailto:cdpisorqclhmg8r8dtm6ip31f506esjfelo2sthecdgmopbechgn4bj7dtnmer
+ 355phmur8%40virtual
+CLASS:PUBLIC
+CREATED:20140202T183416Z
+LAST-MODIFIED:20140202T183416Z
+SEQUENCE:1
+STATUS:CONFIRMED
+SUMMARY:Štedrý den
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20150406
+DTEND;VALUE=DATE:20150407
+DTSTAMP:20140202T201100Z
+UID:h@e5a21162ed9d250ee5f689058366a09f10cf4ccb@google.com
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;X-NUM-GUE
+ STS=0:mailto:cdpisorqclhmg8r8dtm6ip31f506esjfelo2sthecdgmopbechgn4bj7dtnmer
+ 355phmur8%40virtual
+CLASS:PUBLIC
+CREATED:20140202T183416Z
+LAST-MODIFIED:20140202T183416Z
+SEQUENCE:1
+STATUS:CONFIRMED
+SUMMARY:Velikonoční pondělí
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20140421
+DTEND;VALUE=DATE:20140422
+DTSTAMP:20140202T201100Z
+UID:h@9595a34a188b5376d452c829499a8f8354ec6049@google.com
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;X-NUM-GUE
+ STS=0:mailto:cdpisorqclhmg8r8dtm6ip31f506esjfelo2sthecdgmopbechgn4bj7dtnmer
+ 355phmur8%40virtual
+CLASS:PUBLIC
+CREATED:20140202T183416Z
+LAST-MODIFIED:20140202T183416Z
+SEQUENCE:1
+STATUS:CONFIRMED
+SUMMARY:Velikonoční pondělí
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20150501
+DTEND;VALUE=DATE:20150502
+DTSTAMP:20140202T201100Z
+UID:h@7470a1d77684e63d5aa048babb939885ad1066c5@google.com
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;X-NUM-GUE
+ STS=0:mailto:cdpisorqclhmg8r8dtm6ip31f506esjfelo2sthecdgmopbechgn4bj7dtnmer
+ 355phmur8%40virtual
+CLASS:PUBLIC
+CREATED:20140202T183416Z
+LAST-MODIFIED:20140202T183416Z
+SEQUENCE:1
+STATUS:CONFIRMED
+SUMMARY:Svátek práce
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20140501
+DTEND;VALUE=DATE:20140502
+DTSTAMP:20140202T201100Z
+UID:h@59ea753d474913d8c7ab474eaba701f8ec5c2ba1@google.com
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;X-NUM-GUE
+ STS=0:mailto:cdpisorqclhmg8r8dtm6ip31f506esjfelo2sthecdgmopbechgn4bj7dtnmer
+ 355phmur8%40virtual
+CLASS:PUBLIC
+CREATED:20140202T183416Z
+LAST-MODIFIED:20140202T183416Z
+SEQUENCE:1
+STATUS:CONFIRMED
+SUMMARY:Svátek práce
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20130501
+DTEND;VALUE=DATE:20130502
+DTSTAMP:20140202T201100Z
+UID:h@19480e43102b11f061a7fc231692a6504e6f55de@google.com
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;X-NUM-GUE
+ STS=0:mailto:cdpisorqclhmg8r8dtm6ip31f506esjfelo2sthecdgmopbechgn4bj7dtnmer
+ 355phmur8%40virtual
+CLASS:PUBLIC
+CREATED:20140202T183416Z
+LAST-MODIFIED:20140202T183416Z
+SEQUENCE:1
+STATUS:CONFIRMED
+SUMMARY:Svátek práce
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20140101
+DTEND;VALUE=DATE:20140102
+DTSTAMP:20140202T201100Z
+UID:h@cdcc3450b77b919b7e5c1d0186439b81fe315723@google.com
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;X-NUM-GUE
+ STS=0:mailto:cdpisorqclhmg8r8dtm6ip31f506esjfelo2sthecdgmopbechgn4bj7dtnmer
+ 355phmur8%40virtual
+CLASS:PUBLIC
+CREATED:20140202T183416Z
+LAST-MODIFIED:20140202T183416Z
+SEQUENCE:1
+STATUS:CONFIRMED
+SUMMARY:Nový rok
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20130101
+DTEND;VALUE=DATE:20130102
+DTSTAMP:20140202T201100Z
+UID:h@93d93af5add7e8e8542f9d2be9bf9b189adc7088@google.com
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;X-NUM-GUE
+ STS=0:mailto:cdpisorqclhmg8r8dtm6ip31f506esjfelo2sthecdgmopbechgn4bj7dtnmer
+ 355phmur8%40virtual
+CLASS:PUBLIC
+CREATED:20140202T183416Z
+LAST-MODIFIED:20140202T183416Z
+SEQUENCE:1
+STATUS:CONFIRMED
+SUMMARY:Nový rok
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20150101
+DTEND;VALUE=DATE:20150102
+DTSTAMP:20140202T201100Z
+UID:h@3be21c366071b22c3322e48e898803d89a2873c8@google.com
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;X-NUM-GUE
+ STS=0:mailto:cdpisorqclhmg8r8dtm6ip31f506esjfelo2sthecdgmopbechgn4bj7dtnmer
+ 355phmur8%40virtual
+CLASS:PUBLIC
+CREATED:20140202T183416Z
+LAST-MODIFIED:20140202T183416Z
+SEQUENCE:1
+STATUS:CONFIRMED
+SUMMARY:Nový rok
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20140928
+DTEND;VALUE=DATE:20140929
+DTSTAMP:20140202T201100Z
+UID:h@910a92f331886c719cdab7cae0f8d56387788789@google.com
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;X-NUM-GUE
+ STS=0:mailto:cdpisorqclhmg8r8dtm6ip31f506esjfelo2sthecdgmopbechgn4bj7dtnmer
+ 355phmur8%40virtual
+CLASS:PUBLIC
+CREATED:20140202T183416Z
+LAST-MODIFIED:20140202T183416Z
+SEQUENCE:1
+STATUS:CONFIRMED
+SUMMARY:Den české státnosti
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20130928
+DTEND;VALUE=DATE:20130929
+DTSTAMP:20140202T201100Z
+UID:h@4bdee7defc8620b327b23400a9da3be5d0721a10@google.com
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;X-NUM-GUE
+ STS=0:mailto:cdpisorqclhmg8r8dtm6ip31f506esjfelo2sthecdgmopbechgn4bj7dtnmer
+ 355phmur8%40virtual
+CLASS:PUBLIC
+CREATED:20140202T183416Z
+LAST-MODIFIED:20140202T183416Z
+SEQUENCE:1
+STATUS:CONFIRMED
+SUMMARY:Den české státnosti
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20150928
+DTEND;VALUE=DATE:20150929
+DTSTAMP:20140202T201100Z
+UID:h@0534aebb7a00356b125529a447b38be655046ca9@google.com
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;X-NUM-GUE
+ STS=0:mailto:cdpisorqclhmg8r8dtm6ip31f506esjfelo2sthecdgmopbechgn4bj7dtnmer
+ 355phmur8%40virtual
+CLASS:PUBLIC
+CREATED:20140202T183416Z
+LAST-MODIFIED:20140202T183416Z
+SEQUENCE:1
+STATUS:CONFIRMED
+SUMMARY:Den české státnosti
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20150508
+DTEND;VALUE=DATE:20150509
+DTSTAMP:20140202T201100Z
+UID:h@f234114d721bac5776f1683f23a58ed2ffd53c84@google.com
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;X-NUM-GUE
+ STS=0:mailto:cdpisorqclhmg8r8dtm6ip31f506esjfelo2sthecdgmopbechgn4bj7dtnmer
+ 355phmur8%40virtual
+CLASS:PUBLIC
+CREATED:20140202T183416Z
+LAST-MODIFIED:20140202T183416Z
+SEQUENCE:1
+STATUS:CONFIRMED
+SUMMARY:Den vítězství
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20130508
+DTEND;VALUE=DATE:20130509
+DTSTAMP:20140202T201100Z
+UID:h@5b971aece3bf450de53261bafe25898080af2454@google.com
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;X-NUM-GUE
+ STS=0:mailto:cdpisorqclhmg8r8dtm6ip31f506esjfelo2sthecdgmopbechgn4bj7dtnmer
+ 355phmur8%40virtual
+CLASS:PUBLIC
+CREATED:20140202T183416Z
+LAST-MODIFIED:20140202T183416Z
+SEQUENCE:1
+STATUS:CONFIRMED
+SUMMARY:Den vítězství
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20140508
+DTEND;VALUE=DATE:20140509
+DTSTAMP:20140202T201100Z
+UID:h@574f6e8b741d1eb0e80ed4caea1441858393ff58@google.com
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;X-NUM-GUE
+ STS=0:mailto:cdpisorqclhmg8r8dtm6ip31f506esjfelo2sthecdgmopbechgn4bj7dtnmer
+ 355phmur8%40virtual
+CLASS:PUBLIC
+CREATED:20140202T183416Z
+LAST-MODIFIED:20140202T183416Z
+SEQUENCE:1
+STATUS:CONFIRMED
+SUMMARY:Den vítězství
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20131028
+DTEND;VALUE=DATE:20131029
+DTSTAMP:20140202T201100Z
+UID:h@be894303693f374fad9017da7ac6391c23eca0f6@google.com
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;X-NUM-GUE
+ STS=0:mailto:cdpisorqclhmg8r8dtm6ip31f506esjfelo2sthecdgmopbechgn4bj7dtnmer
+ 355phmur8%40virtual
+CLASS:PUBLIC
+CREATED:20140202T183416Z
+LAST-MODIFIED:20140202T183416Z
+SEQUENCE:1
+STATUS:CONFIRMED
+SUMMARY:Den vzniku samostatného československého státu
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20151028
+DTEND;VALUE=DATE:20151029
+DTSTAMP:20140202T201100Z
+UID:h@7e708d1f45342cd36f819e1f0d3d9f9b7eacc02f@google.com
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;X-NUM-GUE
+ STS=0:mailto:cdpisorqclhmg8r8dtm6ip31f506esjfelo2sthecdgmopbechgn4bj7dtnmer
+ 355phmur8%40virtual
+CLASS:PUBLIC
+CREATED:20140202T183416Z
+LAST-MODIFIED:20140202T183416Z
+SEQUENCE:1
+STATUS:CONFIRMED
+SUMMARY:Den vzniku samostatného československého státu
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20141028
+DTEND;VALUE=DATE:20141029
+DTSTAMP:20140202T201100Z
+UID:h@4dcdf85aaa09aea21fd49914085b47cdb44ccf0f@google.com
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;X-NUM-GUE
+ STS=0:mailto:cdpisorqclhmg8r8dtm6ip31f506esjfelo2sthecdgmopbechgn4bj7dtnmer
+ 355phmur8%40virtual
+CLASS:PUBLIC
+CREATED:20140202T183416Z
+LAST-MODIFIED:20140202T183416Z
+SEQUENCE:1
+STATUS:CONFIRMED
+SUMMARY:Den vzniku samostatného československého státu
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20150706
+DTEND;VALUE=DATE:20150707
+DTSTAMP:20140202T201100Z
+UID:h@d2253851fcafd5063bdbece5367507e338b5eea0@google.com
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;X-NUM-GUE
+ STS=0:mailto:cdpisorqclhmg8r8dtm6ip31f506esjfelo2sthecdgmopbechgn4bj7dtnmer
+ 355phmur8%40virtual
+CLASS:PUBLIC
+CREATED:20140202T183416Z
+LAST-MODIFIED:20140202T183416Z
+SEQUENCE:1
+STATUS:CONFIRMED
+SUMMARY:Den upálení mistra Jana Husa
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20140706
+DTEND;VALUE=DATE:20140707
+DTSTAMP:20140202T201100Z
+UID:h@2f980e6bc7f0445430367c33d3e4a27441196199@google.com
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;X-NUM-GUE
+ STS=0:mailto:cdpisorqclhmg8r8dtm6ip31f506esjfelo2sthecdgmopbechgn4bj7dtnmer
+ 355phmur8%40virtual
+CLASS:PUBLIC
+CREATED:20140202T183416Z
+LAST-MODIFIED:20140202T183416Z
+SEQUENCE:1
+STATUS:CONFIRMED
+SUMMARY:Den upálení mistra Jana Husa
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20130706
+DTEND;VALUE=DATE:20130707
+DTSTAMP:20140202T201100Z
+UID:h@09c62186abafba1bac59818bde105765a7a02121@google.com
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;X-NUM-GUE
+ STS=0:mailto:cdpisorqclhmg8r8dtm6ip31f506esjfelo2sthecdgmopbechgn4bj7dtnmer
+ 355phmur8%40virtual
+CLASS:PUBLIC
+CREATED:20140202T183416Z
+LAST-MODIFIED:20140202T183416Z
+SEQUENCE:1
+STATUS:CONFIRMED
+SUMMARY:Den upálení mistra Jana Husa
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20150705
+DTEND;VALUE=DATE:20150706
+DTSTAMP:20140202T201100Z
+UID:h@df873adcd2b61ea7c1b13761d7561b9fe6faae5c@google.com
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;X-NUM-GUE
+ STS=0:mailto:cdpisorqclhmg8r8dtm6ip31f506esjfelo2sthecdgmopbechgn4bj7dtnmer
+ 355phmur8%40virtual
+CLASS:PUBLIC
+CREATED:20140202T183416Z
+LAST-MODIFIED:20140202T183416Z
+SEQUENCE:1
+STATUS:CONFIRMED
+SUMMARY:Den slovanských věrozvěstů Cyrila a Metoděje
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20140705
+DTEND;VALUE=DATE:20140706
+DTSTAMP:20140202T201100Z
+UID:h@cc790a245031c0186f1d6d9ab8560db87c86269d@google.com
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;X-NUM-GUE
+ STS=0:mailto:cdpisorqclhmg8r8dtm6ip31f506esjfelo2sthecdgmopbechgn4bj7dtnmer
+ 355phmur8%40virtual
+CLASS:PUBLIC
+CREATED:20140202T183416Z
+LAST-MODIFIED:20140202T183416Z
+SEQUENCE:1
+STATUS:CONFIRMED
+SUMMARY:Den slovanských věrozvěstů Cyrila a Metoděje
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20130705
+DTEND;VALUE=DATE:20130706
+DTSTAMP:20140202T201100Z
+UID:h@4b4d8fc982e6734d799afdd5de90041a009e56b5@google.com
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;X-NUM-GUE
+ STS=0:mailto:cdpisorqclhmg8r8dtm6ip31f506esjfelo2sthecdgmopbechgn4bj7dtnmer
+ 355phmur8%40virtual
+CLASS:PUBLIC
+CREATED:20140202T183416Z
+LAST-MODIFIED:20140202T183416Z
+SEQUENCE:1
+STATUS:CONFIRMED
+SUMMARY:Den slovanských věrozvěstů Cyrila a Metoděje
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20150101
+DTEND;VALUE=DATE:20150102
+DTSTAMP:20140202T201100Z
+UID:h@e35dfa2052d4cf25d186e005626c66b794792d35@google.com
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;X-NUM-GUE
+ STS=0:mailto:cdpisorqclhmg8r8dtm6ip31f506esjfelo2sthecdgmopbechgn4bj7dtnmer
+ 355phmur8%40virtual
+CLASS:PUBLIC
+CREATED:20140202T183416Z
+LAST-MODIFIED:20140202T183416Z
+SEQUENCE:1
+STATUS:CONFIRMED
+SUMMARY:Den obnovy samostatného českého státu
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20130101
+DTEND;VALUE=DATE:20130102
+DTSTAMP:20140202T201100Z
+UID:h@e13a9a864c4beec0b4f1055fb4e1bb14076b5a9b@google.com
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;X-NUM-GUE
+ STS=0:mailto:cdpisorqclhmg8r8dtm6ip31f506esjfelo2sthecdgmopbechgn4bj7dtnmer
+ 355phmur8%40virtual
+CLASS:PUBLIC
+CREATED:20140202T183416Z
+LAST-MODIFIED:20140202T183416Z
+SEQUENCE:1
+STATUS:CONFIRMED
+SUMMARY:Den obnovy samostatného českého státu
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20140101
+DTEND;VALUE=DATE:20140102
+DTSTAMP:20140202T201100Z
+UID:h@a87543a1136d4a980a8037471eb49ea00f087c81@google.com
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;X-NUM-GUE
+ STS=0:mailto:cdpisorqclhmg8r8dtm6ip31f506esjfelo2sthecdgmopbechgn4bj7dtnmer
+ 355phmur8%40virtual
+CLASS:PUBLIC
+CREATED:20140202T183416Z
+LAST-MODIFIED:20140202T183416Z
+SEQUENCE:1
+STATUS:CONFIRMED
+SUMMARY:Den obnovy samostatného českého státu
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20141117
+DTEND;VALUE=DATE:20141118
+DTSTAMP:20140202T201100Z
+UID:h@94e14807e30f52a82572a2cd28a51c89a033d09f@google.com
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;X-NUM-GUE
+ STS=0:mailto:cdpisorqclhmg8r8dtm6ip31f506esjfelo2sthecdgmopbechgn4bj7dtnmer
+ 355phmur8%40virtual
+CLASS:PUBLIC
+CREATED:20140202T183416Z
+LAST-MODIFIED:20140202T183416Z
+SEQUENCE:1
+STATUS:CONFIRMED
+SUMMARY:Den boje za svobodu a demokracii
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20131117
+DTEND;VALUE=DATE:20131118
+DTSTAMP:20140202T201100Z
+UID:h@873a2a1499e25477876926c6729dc214b2f1f0f9@google.com
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;X-NUM-GUE
+ STS=0:mailto:cdpisorqclhmg8r8dtm6ip31f506esjfelo2sthecdgmopbechgn4bj7dtnmer
+ 355phmur8%40virtual
+CLASS:PUBLIC
+CREATED:20140202T183416Z
+LAST-MODIFIED:20140202T183416Z
+SEQUENCE:1
+STATUS:CONFIRMED
+SUMMARY:Den boje za svobodu a demokracii
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20151117
+DTEND;VALUE=DATE:20151118
+DTSTAMP:20140202T201100Z
+UID:h@599f0d6373565c265b3491b084a2c6198b0b00b9@google.com
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;X-NUM-GUE
+ STS=0:mailto:cdpisorqclhmg8r8dtm6ip31f506esjfelo2sthecdgmopbechgn4bj7dtnmer
+ 355phmur8%40virtual
+CLASS:PUBLIC
+CREATED:20140202T183416Z
+LAST-MODIFIED:20140202T183416Z
+SEQUENCE:1
+STATUS:CONFIRMED
+SUMMARY:Den boje za svobodu a demokracii
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20151226
+DTEND;VALUE=DATE:20151227
+DTSTAMP:20140202T201100Z
+UID:h@e65fdbb6f9703e75e775c9f407f55663c80d4764@google.com
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;X-NUM-GUE
+ STS=0:mailto:cdpisorqclhmg8r8dtm6ip31f506esjfelo2sthecdgmopbechgn4bj7dtnmer
+ 355phmur8%40virtual
+CLASS:PUBLIC
+CREATED:20140202T183416Z
+LAST-MODIFIED:20140202T183416Z
+SEQUENCE:1
+STATUS:CONFIRMED
+SUMMARY:2. svátek vánoční
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20141226
+DTEND;VALUE=DATE:20141227
+DTSTAMP:20140202T201100Z
+UID:h@807088064c072183b2fa351251155bff44f09787@google.com
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;X-NUM-GUE
+ STS=0:mailto:cdpisorqclhmg8r8dtm6ip31f506esjfelo2sthecdgmopbechgn4bj7dtnmer
+ 355phmur8%40virtual
+CLASS:PUBLIC
+CREATED:20140202T183416Z
+LAST-MODIFIED:20140202T183416Z
+SEQUENCE:1
+STATUS:CONFIRMED
+SUMMARY:2. svátek vánoční
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20131226
+DTEND;VALUE=DATE:20131227
+DTSTAMP:20140202T201100Z
+UID:h@6165f686632ab29cdd7bdb46a4c3578a48045428@google.com
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;X-NUM-GUE
+ STS=0:mailto:cdpisorqclhmg8r8dtm6ip31f506esjfelo2sthecdgmopbechgn4bj7dtnmer
+ 355phmur8%40virtual
+CLASS:PUBLIC
+CREATED:20140202T183416Z
+LAST-MODIFIED:20140202T183416Z
+SEQUENCE:1
+STATUS:CONFIRMED
+SUMMARY:2. svátek vánoční
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20141225
+DTEND;VALUE=DATE:20141226
+DTSTAMP:20140202T201100Z
+UID:h@e2f049ac27b03ada54a27294becbcd1cc2680d9a@google.com
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;X-NUM-GUE
+ STS=0:mailto:cdpisorqclhmg8r8dtm6ip31f506esjfelo2sthecdgmopbechgn4bj7dtnmer
+ 355phmur8%40virtual
+CLASS:PUBLIC
+CREATED:20140202T183416Z
+LAST-MODIFIED:20140202T183416Z
+SEQUENCE:1
+STATUS:CONFIRMED
+SUMMARY:1. svátek vánoční
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20131225
+DTEND;VALUE=DATE:20131226
+DTSTAMP:20140202T201100Z
+UID:h@7f26c52a3d0e69b81f2fc35490224899490c0014@google.com
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;X-NUM-GUE
+ STS=0:mailto:cdpisorqclhmg8r8dtm6ip31f506esjfelo2sthecdgmopbechgn4bj7dtnmer
+ 355phmur8%40virtual
+CLASS:PUBLIC
+CREATED:20140202T183416Z
+LAST-MODIFIED:20140202T183416Z
+SEQUENCE:1
+STATUS:CONFIRMED
+SUMMARY:1. svátek vánoční
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20151225
+DTEND;VALUE=DATE:20151226
+DTSTAMP:20140202T201100Z
+UID:h@3ddadf7953340f067a4e3b07a4621f9343ff1518@google.com
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;X-NUM-GUE
+ STS=0:mailto:cdpisorqclhmg8r8dtm6ip31f506esjfelo2sthecdgmopbechgn4bj7dtnmer
+ 355phmur8%40virtual
+CLASS:PUBLIC
+CREATED:20140202T183416Z
+LAST-MODIFIED:20140202T183416Z
+SEQUENCE:1
+STATUS:CONFIRMED
+SUMMARY:1. svátek vánoční
+TRANSP:OPAQUE
+END:VEVENT
+END:VCALENDAR
diff --git a/includes/composer/vendor/om/icalparser/tests/cal/blank_description.ics b/includes/composer/vendor/om/icalparser/tests/cal/blank_description.ics
new file mode 100755
index 0000000..568d7e0
--- /dev/null
+++ b/includes/composer/vendor/om/icalparser/tests/cal/blank_description.ics
@@ -0,0 +1,51 @@
+BEGIN:VCALENDAR
+PRODID:-//Google Inc//Google Calendar 70.9054//EN
+VERSION:2.0
+CALSCALE:GREGORIAN
+X-WR-CALNAME:calmozilla1@gmail.com
+X-WR-TIMEZONE:America/Los_Angeles
+BEGIN:VTIMEZONE
+TZID:America/Los_Angeles
+X-LIC-LOCATION:America/Los_Angeles
+BEGIN:DAYLIGHT
+TZOFFSETFROM:-0800
+TZOFFSETTO:-0700
+TZNAME:PDT
+DTSTART:19700308T020000
+RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
+END:DAYLIGHT
+BEGIN:STANDARD
+TZOFFSETFROM:-0700
+TZOFFSETTO:-0800
+TZNAME:PST
+DTSTART:19701101T020000
+RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTART;TZID=America/Los_Angeles:20120630T060000
+DTEND;TZID=America/Los_Angeles:20120630T070000
+DTSTAMP:20120724T212411Z
+UID:dn4vrfmfn5p05roahsopg57h48@google.com
+CREATED:20120724T212411Z
+DESCRIPTION:
+LAST-MODIFIED:20120724T212411Z
+LOCATION:
+SEQUENCE:0
+STATUS:CONFIRMED
+SUMMARY:Really long event name thing
+TRANSP:OPAQUE
+BEGIN:VALARM
+ACTION:EMAIL
+DESCRIPTION:This is an event reminder
+SUMMARY:Alarm notification
+ATTENDEE:mailto:calmozilla1@gmail.com
+TRIGGER:-P0DT0H30M0S
+END:VALARM
+BEGIN:VALARM
+ACTION:DISPLAY
+DESCRIPTION:This is an event reminder
+TRIGGER:-P0DT0H30M0S
+END:VALARM
+END:VEVENT
+END:VCALENDAR
diff --git a/includes/composer/vendor/om/icalparser/tests/cal/blank_line_end.ics b/includes/composer/vendor/om/icalparser/tests/cal/blank_line_end.ics
new file mode 100755
index 0000000..2c397c2
--- /dev/null
+++ b/includes/composer/vendor/om/icalparser/tests/cal/blank_line_end.ics
@@ -0,0 +1,4 @@
+BEGIN:VCALENDAR
+END:VCALENDAR
+
+
diff --git a/includes/composer/vendor/om/icalparser/tests/cal/blank_line_mid.ics b/includes/composer/vendor/om/icalparser/tests/cal/blank_line_mid.ics
new file mode 100755
index 0000000..5e54e2e
--- /dev/null
+++ b/includes/composer/vendor/om/icalparser/tests/cal/blank_line_mid.ics
@@ -0,0 +1,4 @@
+BEGIN:VCALENDAR
+COMMENT:This blank line is invalid
+
+END:VCALENDAR
diff --git a/includes/composer/vendor/om/icalparser/tests/cal/daily_recur.ics b/includes/composer/vendor/om/icalparser/tests/cal/daily_recur.ics
new file mode 100755
index 0000000..9983098
--- /dev/null
+++ b/includes/composer/vendor/om/icalparser/tests/cal/daily_recur.ics
@@ -0,0 +1,52 @@
+BEGIN:VCALENDAR
+PRODID:-//Google Inc//Google Calendar 70.9054//EN
+VERSION:2.0
+CALSCALE:GREGORIAN
+X-WR-CALNAME:calmozilla1@gmail.com
+X-WR-TIMEZONE:America/Los_Angeles
+BEGIN:VTIMEZONE
+TZID:America/Los_Angeles
+X-LIC-LOCATION:America/Los_Angeles
+BEGIN:DAYLIGHT
+TZOFFSETFROM:-0800
+TZOFFSETTO:-0700
+TZNAME:PDT
+DTSTART:19700308T020000
+RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
+END:DAYLIGHT
+BEGIN:STANDARD
+TZOFFSETFROM:-0700
+TZOFFSETTO:-0800
+TZNAME:PST
+DTSTART:19701101T020000
+RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTART;TZID=America/Los_Angeles:20120801T050000
+DTEND;TZID=America/Los_Angeles:20120801T060000
+RRULE:FREQ=DAILY
+DTSTAMP:20120803T221236Z
+UID:tgh9qho17b07pk2n2ji3gluans@google.com
+CREATED:20120803T221236Z
+DESCRIPTION:
+LAST-MODIFIED:20120803T221236Z
+LOCATION:
+SEQUENCE:0
+STATUS:CONFIRMED
+SUMMARY:Every day recurring
+TRANSP:OPAQUE
+BEGIN:VALARM
+ACTION:EMAIL
+DESCRIPTION:This is an event reminder
+SUMMARY:Alarm notification
+ATTENDEE:mailto:calmozilla1@gmail.com
+TRIGGER:-P0DT0H30M0S
+END:VALARM
+BEGIN:VALARM
+ACTION:DISPLAY
+DESCRIPTION:This is an event reminder
+TRIGGER:-P0DT0H30M0S
+END:VALARM
+END:VEVENT
+END:VCALENDAR
diff --git a/includes/composer/vendor/om/icalparser/tests/cal/daily_recur2.ics b/includes/composer/vendor/om/icalparser/tests/cal/daily_recur2.ics
new file mode 100755
index 0000000..346f54e
--- /dev/null
+++ b/includes/composer/vendor/om/icalparser/tests/cal/daily_recur2.ics
@@ -0,0 +1,41 @@
+BEGIN:VCALENDAR
+PRODID:-//Google Inc//Google Calendar 70.9054//EN
+VERSION:2.0
+CALSCALE:GREGORIAN
+X-WR-CALNAME:calmozilla1@gmail.com
+X-WR-TIMEZONE:America/Los_Angeles
+BEGIN:VTIMEZONE
+TZID:America/Los_Angeles
+X-LIC-LOCATION:America/Los_Angeles
+BEGIN:DAYLIGHT
+TZOFFSETFROM:-0800
+TZOFFSETTO:-0700
+TZNAME:PDT
+DTSTART:19700308T020000
+RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
+END:DAYLIGHT
+BEGIN:STANDARD
+TZOFFSETFROM:-0700
+TZOFFSETTO:-0800
+TZNAME:PST
+DTSTART:19701101T020000
+RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20170821
+DTEND;VALUE=DATE:20170822
+RRULE:FREQ=WEEKLY;UNTIL=20170911;BYDAY=MO
+DTSTAMP:20170818T191547Z
+UID:37mfdqtlcrrvbil9b3n7vicb1t@google.com
+CLASS:PUBLIC
+CREATED:20170818T175332Z
+DESCRIPTION:
+LAST-MODIFIED:20170818T175332Z
+LOCATION:
+SEQUENCE:0
+STATUS:CONFIRMED
+SUMMARY:Late Start\, SMS
+TRANSP:TRANSPARENT
+END:VEVENT
+END:VCALENDAR
diff --git a/includes/composer/vendor/om/icalparser/tests/cal/day_long_recur_yearly.ics b/includes/composer/vendor/om/icalparser/tests/cal/day_long_recur_yearly.ics
new file mode 100755
index 0000000..0c0aeb5
--- /dev/null
+++ b/includes/composer/vendor/om/icalparser/tests/cal/day_long_recur_yearly.ics
@@ -0,0 +1,52 @@
+BEGIN:VCALENDAR
+PRODID:-//Google Inc//Google Calendar 70.9054//EN
+VERSION:2.0
+CALSCALE:GREGORIAN
+X-WR-CALNAME:calmozilla1@gmail.com
+X-WR-TIMEZONE:America/Los_Angeles
+BEGIN:VTIMEZONE
+TZID:America/Los_Angeles
+X-LIC-LOCATION:America/Los_Angeles
+BEGIN:DAYLIGHT
+TZOFFSETFROM:-0800
+TZOFFSETTO:-0700
+TZNAME:PDT
+DTSTART:19700308T020000
+RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
+END:DAYLIGHT
+BEGIN:STANDARD
+TZOFFSETFROM:-0700
+TZOFFSETTO:-0800
+TZNAME:PST
+DTSTART:19701101T020000
+RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20120803
+DTEND;VALUE=DATE:20120804
+RRULE:FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR
+DTSTAMP:20120803T221306Z
+UID:4pfh824gvims850j0gar361t04@google.com
+CREATED:20120803T221306Z
+DESCRIPTION:
+LAST-MODIFIED:20120803T221306Z
+LOCATION:
+SEQUENCE:0
+STATUS:CONFIRMED
+SUMMARY:Day Long Event
+TRANSP:TRANSPARENT
+BEGIN:VALARM
+ACTION:EMAIL
+DESCRIPTION:This is an event reminder
+SUMMARY:Alarm notification
+ATTENDEE:mailto:calmozilla1@gmail.com
+TRIGGER;VALUE=DATE-TIME:20120802T233000Z
+END:VALARM
+BEGIN:VALARM
+ACTION:DISPLAY
+DESCRIPTION:This is an event reminder
+TRIGGER;VALUE=DATE-TIME:20120802T233000Z
+END:VALARM
+END:VEVENT
+END:VCALENDAR
diff --git a/includes/composer/vendor/om/icalparser/tests/cal/forced_types.ics b/includes/composer/vendor/om/icalparser/tests/cal/forced_types.ics
new file mode 100755
index 0000000..f213f01
--- /dev/null
+++ b/includes/composer/vendor/om/icalparser/tests/cal/forced_types.ics
@@ -0,0 +1,50 @@
+BEGIN:VCALENDAR
+PRODID:-//Google Inc//Google Calendar 70.9054//EN
+VERSION:2.0
+CALSCALE:GREGORIAN
+X-WR-CALNAME:calmozilla1@gmail.com
+X-WR-TIMEZONE:America/Los_Angeles
+BEGIN:VTIMEZONE
+TZID:America/Los_Angeles
+X-LIC-LOCATION:America/Los_Angeles
+BEGIN:DAYLIGHT
+TZOFFSETFROM:-0800
+TZOFFSETTO:-0700
+TZNAME:PDT
+DTSTART:19700308T020000
+RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
+END:DAYLIGHT
+BEGIN:STANDARD
+TZOFFSETFROM:-0700
+TZOFFSETTO:-0800
+TZNAME:PST
+DTSTART:19701101T020000
+RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20120904
+DTEND;VALUE=DATE:20120905
+DTSTAMP:20120905T084734Z
+UID:redgrb1l0aju5edm6h0s102eu4@google.com
+CREATED:20120905T084734Z
+DESCRIPTION:
+LAST-MODIFIED:20120905T084734Z
+LOCATION:
+SEQUENCE:0
+STATUS:CONFIRMED
+SUMMARY:Event
+TRANSP:TRANSPARENT
+BEGIN:VALARM
+ACTION:EMAIL
+DESCRIPTION:This is an event reminder
+SUMMARY:Alarm notification
+ATTENDEE:mailto:calmozilla1@gmail.com
+TRIGGER;VALUE=DATE-TIME:20120903T233000Z
+END:VALARM
+BEGIN:VALARM
+ACTION:DISPLAY
+DESCRIPTION:This is an event reminder
+END:VALARM
+END:VEVENT
+END:VCALENDAR
diff --git a/includes/composer/vendor/om/icalparser/tests/cal/google_birthday.ics b/includes/composer/vendor/om/icalparser/tests/cal/google_birthday.ics
new file mode 100755
index 0000000..f9b7c9d
--- /dev/null
+++ b/includes/composer/vendor/om/icalparser/tests/cal/google_birthday.ics
@@ -0,0 +1,90 @@
+BEGIN:VCALENDAR
+PRODID:-//Google Inc//Google Calendar 70.9054//EN
+VERSION:2.0
+CALSCALE:GREGORIAN
+X-WR-CALNAME:Contacts' birthdays and events
+X-WR-TIMEZONE:America/Los_Angeles
+X-WR-CALDESC:Your contacts' birthdays and anniversaries
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20141210
+DTEND;VALUE=DATE:20141211
+RRULE:FREQ=DAILY;INTERVAL=1;COUNT=1
+RDATE:20131210Z
+RDATE:20121210Z
+DTSTAMP:20121207T183041Z
+UID:2014_BIRTHDAY_79d389868f96182e@google.com
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Contac
+ ts;X-NUM-GUESTS=0:mailto:4dhmurjkc5hn8sq0ctp6utbg5pr2sor1dhimsp31e8n6errfct
+ m6abj3dtmg@virtual
+CLASS:PUBLIC
+CREATED:20121207T183041Z
+LAST-MODIFIED:20121207T183041Z
+SEQUENCE:1
+STATUS:CONFIRMED
+SUMMARY:PErson #2's birthday
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20121210
+DTEND;VALUE=DATE:20121211
+DTSTAMP:20121207T183041Z
+UID:BIRTHDAY_79d389868f96182e@google.com
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Contac
+ ts;X-NUM-GUESTS=0:mailto:4dhmurjkc5hn8sq0ctp6utbg5pr2sor1dhimsp31e8n6errfct
+ m6abj3dtmg@virtual
+X-GOOGLE-CALENDAR-CONTENT-ICON:https://calendar.google.com/googlecalendar/i
+ mages/cake.gif
+X-GOOGLE-CALENDAR-CONTENT-DISPLAY:chip
+RECURRENCE-ID;VALUE=DATE:20121210
+CLASS:PUBLIC
+CREATED:20121207T183041Z
+DESCRIPTION:Today is PErson #2's birthday!
+LAST-MODIFIED:20121207T183041Z
+SEQUENCE:1
+STATUS:CONFIRMED
+SUMMARY:PErson #2's birthday
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20131210
+DTEND;VALUE=DATE:20131211
+DTSTAMP:20121207T183041Z
+UID:BIRTHDAY_79d389868f96182e@google.com
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Contac
+ ts;X-NUM-GUESTS=0:mailto:4dhmurjkc5hn8sq0ctp6utbg5pr2sor1dhimsp31e8n6errfct
+ m6abj3dtmg@virtual
+X-GOOGLE-CALENDAR-CONTENT-ICON:https://calendar.google.com/googlecalendar/i
+ mages/cake.gif
+X-GOOGLE-CALENDAR-CONTENT-DISPLAY:chip
+RECURRENCE-ID;VALUE=DATE:20131210
+CLASS:PUBLIC
+CREATED:20121207T183041Z
+DESCRIPTION:Today is PErson #2's birthday!
+LAST-MODIFIED:20121207T183041Z
+SEQUENCE:1
+STATUS:CONFIRMED
+SUMMARY:PErson #2's birthday
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20141210
+DTEND;VALUE=DATE:20141211
+DTSTAMP:20121207T183041Z
+UID:BIRTHDAY_79d389868f96182e@google.com
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Contac
+ ts;X-NUM-GUESTS=0:mailto:4dhmurjkc5hn8sq0ctp6utbg5pr2sor1dhimsp31e8n6errfct
+ m6abj3dtmg@virtual
+X-GOOGLE-CALENDAR-CONTENT-ICON:https://calendar.google.com/googlecalendar/i
+ mages/cake.gif
+X-GOOGLE-CALENDAR-CONTENT-DISPLAY:chip
+RECURRENCE-ID;VALUE=DATE:20141210
+CLASS:PUBLIC
+CREATED:20121207T183041Z
+DESCRIPTION:Today is PErson #2's birthday!
+LAST-MODIFIED:20121207T183041Z
+SEQUENCE:1
+STATUS:CONFIRMED
+SUMMARY:PErson #2's birthday
+TRANSP:OPAQUE
+END:VEVENT
+END:VCALENDAR
diff --git a/includes/composer/vendor/om/icalparser/tests/cal/minimal.ics b/includes/composer/vendor/om/icalparser/tests/cal/minimal.ics
new file mode 100755
index 0000000..b97d2ac
--- /dev/null
+++ b/includes/composer/vendor/om/icalparser/tests/cal/minimal.ics
@@ -0,0 +1,39 @@
+BEGIN:VCALENDAR
+PRODID:-//Google Inc//Google Calendar 70.9054//EN
+VERSION:2.0
+CALSCALE:GREGORIAN
+X-WR-CALNAME:calmozilla1@gmail.com
+X-WR-TIMEZONE:America/Los_Angeles
+BEGIN:VTIMEZONE
+TZID:America/Los_Angeles
+X-LIC-LOCATION:America/Los_Angeles
+BEGIN:DAYLIGHT
+TZOFFSETFROM:-0800
+TZOFFSETTO:-0700
+TZNAME:PDT
+DTSTART:19700308T020000
+RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
+END:DAYLIGHT
+BEGIN:STANDARD
+TZOFFSETFROM:-0700
+TZOFFSETTO:-0800
+TZNAME:PST
+DTSTART:19701101T020000
+RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTART;TZID=America/Los_Angeles:20120630T060000
+DTEND;TZID=America/Los_Angeles:20120630T070000
+DTSTAMP:20120724T212411Z
+UID:dn4vrfmfn5p05roahsopg57h48@google.com
+CREATED:20120724T212411Z
+DESCRIPTION:
+LAST-MODIFIED:20120724T212411Z
+LOCATION:
+SEQUENCE:0
+STATUS:CONFIRMED
+SUMMARY:Really long event name thing
+TRANSP:OPAQUE
+END:VEVENT
+END:VCALENDAR
diff --git a/includes/composer/vendor/om/icalparser/tests/cal/missing-timezone.ics b/includes/composer/vendor/om/icalparser/tests/cal/missing-timezone.ics
new file mode 100644
index 0000000..2579548
--- /dev/null
+++ b/includes/composer/vendor/om/icalparser/tests/cal/missing-timezone.ics
@@ -0,0 +1,47 @@
+BEGIN:VCALENDAR
+PRODID;X-RICAL-TZSOURCE=TZINFO:-//Airbnb Inc//Hosting Calendar 0.8.8//EN
+CALSCALE:GREGORIAN
+VERSION:2.0
+BEGIN:VEVENT
+DTEND;VALUE=DATE:20220520
+DTSTART;VALUE=DATE:20220412
+UID:1418fdfasfdasdfsad@airbnb.com
+DESCRIPTION:Reservation URL: https://www.airbnb.com/hosting/reservations/
+ details/HMQHSAR9SE\nPhone Number (Last 4 Digits): 0431
+SUMMARY:Reserved
+END:VEVENT
+BEGIN:VEVENT
+DTEND;VALUE=DATE:20220620
+DTSTART;VALUE=DATE:20220617
+UID:1418fb94e984-dfasdfasdfsdfsdfsd@airbnb.com
+DESCRIPTION:Reservation URL: https://www.airbnb.com/hosting/reservations/
+ details/HMWQXYQSM4\nPhone Number (Last 4 Digits): 2360
+SUMMARY:Reserved
+END:VEVENT
+BEGIN:VEVENT
+DTEND;VALUE=DATE:20220628
+DTSTART;VALUE=DATE:20220625
+UID:1418fb94e984-dafdfdfadfdfadsfasdafsd@airbnb.com
+DESCRIPTION:Reservation URL: https://www.airbnb.com/hosting/reservations/
+ details/HM49HZXKQT\nPhone Number (Last 4 Digits): 1537
+SUMMARY:Reserved
+END:VEVENT
+BEGIN:VEVENT
+DTEND;VALUE=DATE:20220724
+DTSTART;VALUE=DATE:20220723
+UID:6fec1092d3fa-afdfasdfdsfasdfasdfsdfasd@airbnb.com
+SUMMARY:Airbnb (Not available)
+END:VEVENT
+BEGIN:VEVENT
+DTEND;VALUE=DATE:20220807
+DTSTART;VALUE=DATE:20220725
+UID:6fec1092d3fa-afdfsdfsdfasdfadsfsfs@airbnb.com
+SUMMARY:Airbnb (Not available)
+END:VEVENT
+BEGIN:VEVENT
+DTEND;VALUE=DATE:20230512
+DTSTART;VALUE=DATE:20221107
+UID:6fec1092d3fa-afdafdsafsdfdfsdfsd@airbnb.com
+SUMMARY:Airbnb (Not available)
+END:VEVENT
+END:VCALENDAR \ No newline at end of file
diff --git a/includes/composer/vendor/om/icalparser/tests/cal/missing_RRULE_notice.ics b/includes/composer/vendor/om/icalparser/tests/cal/missing_RRULE_notice.ics
new file mode 100644
index 0000000..84ace92
--- /dev/null
+++ b/includes/composer/vendor/om/icalparser/tests/cal/missing_RRULE_notice.ics
@@ -0,0 +1,39 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+X-WR-CALNAME:URL
+CALSCALE:GREGORIAN
+BEGIN:VTIMEZONE
+TZID:Europe/Berlin
+TZURL:http://tzurl.org/zoneinfo-outlook/Europe/Berlin
+X-LIC-LOCATION:Europe/Berlin
+BEGIN:DAYLIGHT
+TZOFFSETFROM:+0100
+TZOFFSETTO:+0200
+TZNAME:CEST
+DTSTART:19700329T020000
+RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
+END:DAYLIGHT
+BEGIN:STANDARD
+TZOFFSETFROM:+0200
+TZOFFSETTO:+0100
+TZNAME:CET
+DTSTART:19701025T030000
+RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+UID:111
+DTSTAMP:20181123T192651Z
+CATEGORIES;LANGUAGE=de-DE:Party
+CONTACT:
+DESCRIPTION:xxx
+DTSTART;TZID=Europe/Berlin:20160415T210000
+DTEND;TZID=Europe/Berlin:20160416T040000
+LOCATION:xxx
+RDATE;TZID=Europe/Berlin:20161216T210000
+RDATE;TZID=Europe/Berlin:20161223T210000
+RDATE;TZID=Europe/Berlin:20161230T210000
+SEQUENCE:0
+SUMMARY:xxx
+END:VEVENT
+END:VCALENDAR
diff --git a/includes/composer/vendor/om/icalparser/tests/cal/multiline_description.ics b/includes/composer/vendor/om/icalparser/tests/cal/multiline_description.ics
new file mode 100644
index 0000000..b5ff35c
--- /dev/null
+++ b/includes/composer/vendor/om/icalparser/tests/cal/multiline_description.ics
@@ -0,0 +1,52 @@
+BEGIN:VCALENDAR
+PRODID:-//Google Inc//Google Calendar 70.9054//EN
+VERSION:2.0
+CALSCALE:GREGORIAN
+X-WR-CALNAME:calmozilla1@gmail.com
+X-WR-TIMEZONE:America/Los_Angeles
+BEGIN:VTIMEZONE
+TZID:America/Los_Angeles
+X-LIC-LOCATION:America/Los_Angeles
+BEGIN:DAYLIGHT
+TZOFFSETFROM:-0800
+TZOFFSETTO:-0700
+TZNAME:PDT
+DTSTART:19700308T020000
+RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
+END:DAYLIGHT
+BEGIN:STANDARD
+TZOFFSETFROM:-0700
+TZOFFSETTO:-0800
+TZNAME:PST
+DTSTART:19701101T020000
+RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTART;TZID=America/Los_Angeles:20120630T060000
+DTEND;TZID=America/Los_Angeles:20120630T070000
+DTSTAMP:20120724T212411Z
+UID:dn4vrfmfn5p05roahsopg57h48@google.com
+CREATED:20120724T212411Z
+DESCRIPTION:Here is a description that spans multiple lines!\n\nThis should be on
+ a new line as well because the description contains newline characters.
+LAST-MODIFIED:20120724T212411Z
+LOCATION:
+SEQUENCE:0
+STATUS:CONFIRMED
+SUMMARY:Really long event name thing
+TRANSP:OPAQUE
+BEGIN:VALARM
+ACTION:EMAIL
+DESCRIPTION:This is an event reminder
+SUMMARY:Alarm notification
+ATTENDEE:mailto:calmozilla1@gmail.com
+TRIGGER:-P0DT0H30M0S
+END:VALARM
+BEGIN:VALARM
+ACTION:DISPLAY
+DESCRIPTION:This is an event reminder
+TRIGGER:-P0DT0H30M0S
+END:VALARM
+END:VEVENT
+END:VCALENDAR
diff --git a/includes/composer/vendor/om/icalparser/tests/cal/multiple_attachments.ics b/includes/composer/vendor/om/icalparser/tests/cal/multiple_attachments.ics
new file mode 100755
index 0000000..0c25f82
--- /dev/null
+++ b/includes/composer/vendor/om/icalparser/tests/cal/multiple_attachments.ics
@@ -0,0 +1,45 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:Zimbra-Calendar-Provider
+BEGIN:VTIMEZONE
+TZID:America/Los_Angeles
+BEGIN:STANDARD
+DTSTART:19710101T020000
+TZOFFSETTO:-0800
+TZOFFSETFROM:-0700
+RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=11;BYDAY=1SU
+TZNAME:PST
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:19710101T020000
+TZOFFSETTO:-0700
+TZOFFSETFROM:-0800
+RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=3;BYDAY=2SU
+TZNAME:PDT
+END:DAYLIGHT
+END:VTIMEZONE
+BEGIN:VEVENT
+UID:1334F9B7-6136-444E-A58D-472564C6AA73
+SUMMARY:sahaja <> frashed
+DESCRIPTION:weekly 1on1
+ATTACH:http://globe-views.com/dcim/dreams/dog/dog-01.jpg
+ATTACH:http://www.hdanimals.com/static/cache/e9/59/e959f33a6b440f36cad24beca8bf6d1c.jpg
+ATTENDEE;CN=James Lal;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS
+ -ACTION;RSVP=TRUE:mailto:jlal@mozilla.com
+ORGANIZER;CN=Faramarz Rashed:mailto:frashed@mozilla.com
+DTSTART;TZID=America/Los_Angeles:20120326T110000
+DTEND;TZID=America/Los_Angeles:20120326T113000
+STATUS:CONFIRMED
+CLASS:PUBLIC
+TRANSP:OPAQUE
+LAST-MODIFIED:20120326T161522Z
+DTSTAMP:20120730T165637Z
+SEQUENCE:9
+BEGIN:VALARM
+ACTION:DISPLAY
+TRIGGER;RELATED=START:-PT5M
+DESCRIPTION:Reminder
+END:VALARM
+END:VEVENT
+END:VCALENDAR
+
diff --git a/includes/composer/vendor/om/icalparser/tests/cal/multiple_categories.ics b/includes/composer/vendor/om/icalparser/tests/cal/multiple_categories.ics
new file mode 100755
index 0000000..5353845
--- /dev/null
+++ b/includes/composer/vendor/om/icalparser/tests/cal/multiple_categories.ics
@@ -0,0 +1,67 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:Zimbra-Calendar-Provider
+BEGIN:VTIMEZONE
+TZID:America/Los_Angeles
+BEGIN:STANDARD
+DTSTART:19710101T020000
+TZOFFSETTO:-0800
+TZOFFSETFROM:-0700
+RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=11;BYDAY=1SU
+TZNAME:PST
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:19710101T020000
+TZOFFSETTO:-0700
+TZOFFSETFROM:-0800
+RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=3;BYDAY=2SU
+TZNAME:PDT
+END:DAYLIGHT
+END:VTIMEZONE
+BEGIN:VEVENT
+UID:1334F9B7-6136-444E-A58D-472564C6AA73
+SUMMARY:sahaja <> frashed
+DESCRIPTION:weekly 1on1
+CATEGORIES:one, two, three
+ATTENDEE;CN=James Lal;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS
+ -ACTION;RSVP=TRUE:mailto:jlal@mozilla.com
+ORGANIZER;CN=Faramarz Rashed:mailto:frashed@mozilla.com
+DTSTART;TZID=America/Los_Angeles:20120326T110000
+DTEND;TZID=America/Los_Angeles:20120326T113000
+STATUS:CONFIRMED
+CLASS:PUBLIC
+TRANSP:OPAQUE
+LAST-MODIFIED:20120326T161522Z
+DTSTAMP:20120730T165637Z
+SEQUENCE:9
+BEGIN:VALARM
+ACTION:DISPLAY
+TRIGGER;RELATED=START:-PT5M
+DESCRIPTION:Reminder
+END:VALARM
+END:VEVENT
+BEGIN:VEVENT
+UID:14556F9B7-6136-444E-A58D-472564C6AA73
+SUMMARY:something something
+DESCRIPTION:weekly 1on1
+CATEGORIES:one
+CATEGORIES:two
+CATEGORIES:three
+ATTENDEE;CN=James Lal;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS
+ -ACTION;RSVP=TRUE:mailto:jlal@mozilla.com
+ORGANIZER;CN=Faramarz Rashed:mailto:frashed@mozilla.com
+DTSTART;TZID=America/Los_Angeles:20120326T110000
+DTEND;TZID=America/Los_Angeles:20120326T113000
+STATUS:CONFIRMED
+CLASS:PUBLIC
+TRANSP:OPAQUE
+LAST-MODIFIED:20120326T161522Z
+DTSTAMP:20120730T165637Z
+SEQUENCE:9
+BEGIN:VALARM
+ACTION:DISPLAY
+TRIGGER;RELATED=START:-PT5M
+DESCRIPTION:Reminder
+END:VALARM
+END:VEVENT
+END:VCALENDAR
diff --git a/includes/composer/vendor/om/icalparser/tests/cal/multiple_rrules.ics b/includes/composer/vendor/om/icalparser/tests/cal/multiple_rrules.ics
new file mode 100755
index 0000000..339c318
--- /dev/null
+++ b/includes/composer/vendor/om/icalparser/tests/cal/multiple_rrules.ics
@@ -0,0 +1,45 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:Zimbra-Calendar-Provider
+BEGIN:VTIMEZONE
+TZID:America/Los_Angeles
+BEGIN:STANDARD
+DTSTART:19710101T020000
+TZOFFSETTO:-0800
+TZOFFSETFROM:-0700
+RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=11;BYDAY=1SU
+TZNAME:PST
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:19710101T020000
+TZOFFSETTO:-0700
+TZOFFSETFROM:-0800
+RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=3;BYDAY=2SU
+TZNAME:PDT
+END:DAYLIGHT
+END:VTIMEZONE
+BEGIN:VEVENT
+UID:1334F9B7-6136-444E-A58D-472564C6AA73
+RRULE:FREQ=WEEKLY;UNTIL=20120730T065959Z
+RRULE:FREQ=MONTHLY;BYDAY=SU;UNTIL=20120730T065959Z
+SUMMARY:sahaja <> frashed
+DESCRIPTION:weekly 1on1
+ATTENDEE;CN=James Lal;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS
+ -ACTION;RSVP=TRUE:mailto:jlal@mozilla.com
+ORGANIZER;CN=Faramarz Rashed:mailto:frashed@mozilla.com
+DTSTART;TZID=America/Los_Angeles:20120326T110000
+DTEND;TZID=America/Los_Angeles:20120326T113000
+STATUS:CONFIRMED
+CLASS:PUBLIC
+TRANSP:OPAQUE
+LAST-MODIFIED:20120326T161522Z
+DTSTAMP:20120730T165637Z
+SEQUENCE:9
+BEGIN:VALARM
+ACTION:DISPLAY
+TRIGGER;RELATED=START:-PT5M
+DESCRIPTION:Reminder
+END:VALARM
+END:VEVENT
+END:VCALENDAR
+
diff --git a/includes/composer/vendor/om/icalparser/tests/cal/parserv2.ics b/includes/composer/vendor/om/icalparser/tests/cal/parserv2.ics
new file mode 100755
index 0000000..11c8301
--- /dev/null
+++ b/includes/composer/vendor/om/icalparser/tests/cal/parserv2.ics
@@ -0,0 +1,45 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:Zimbra-Calendar-Provider
+BEGIN:VTIMEZONE
+TZID:America/Los_Angeles
+BEGIN:STANDARD
+DTSTART:19710101T020000
+TZOFFSETTO:-0800
+TZOFFSETFROM:-0700
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=11
+TZNAME:PST
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:19710101T020000
+TZOFFSETTO:-0700
+TZOFFSETFROM:-0800
+RRULE:FREQ=YEARLY;BYDAY=2SU;BYMONTH=3
+TZNAME:PDT
+END:DAYLIGHT
+END:VTIMEZONE
+BEGIN:VEVENT
+UID:44c10eaa-db0b-4223-8653-cf2b63f26326
+RRULE:FREQ=DAILY;BYDAY=MO,TU,WE,TH,FR
+SUMMARY:Calendar
+DESCRIPTION:desc
+ATTENDEE;CN=XXX;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;RSVP=TRU
+ E:mailto:foo@bar.com
+ATTENDEE;CN=XXXX;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;RSVP=TR
+ UE:mailto:x@bar.com
+ORGANIZER;CN=foobar:mailto:x@bar.com
+DTSTART;TZID=America/Los_Angeles:20120911T103000
+DTEND;TZID=America/Los_Angeles:20120911T110000
+STATUS:CONFIRMED
+CLASS:PUBLIC
+TRANSP:OPAQUE
+LAST-MODIFIED:20120911T184851Z
+DTSTAMP:20120911T184851Z
+SEQUENCE:1
+BEGIN:VALARM
+ACTION:DISPLAY
+TRIGGER;RELATED=START:-PT5M
+DESCRIPTION:Reminder
+END:VALARM
+END:VEVENT
+END:VCALENDAR
diff --git a/includes/composer/vendor/om/icalparser/tests/cal/readme.md b/includes/composer/vendor/om/icalparser/tests/cal/readme.md
new file mode 100644
index 0000000..4e3ec57
--- /dev/null
+++ b/includes/composer/vendor/om/icalparser/tests/cal/readme.md
@@ -0,0 +1,3 @@
+# iCal source
+
+- https://github.com/mozilla-comm/ical.js/tree/master/samples
diff --git a/includes/composer/vendor/om/icalparser/tests/cal/recur_instances.ics b/includes/composer/vendor/om/icalparser/tests/cal/recur_instances.ics
new file mode 100755
index 0000000..d26903f
--- /dev/null
+++ b/includes/composer/vendor/om/icalparser/tests/cal/recur_instances.ics
@@ -0,0 +1,92 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:Zimbra-Calendar-Provider
+BEGIN:VTIMEZONE
+TZID:America/Los_Angeles
+BEGIN:STANDARD
+DTSTART:19710101T020000
+TZOFFSETTO:-0800
+TZOFFSETFROM:-0700
+RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=11;BYDAY=1SU
+TZNAME:PST
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:19710101T020000
+TZOFFSETTO:-0700
+TZOFFSETFROM:-0800
+RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=3;BYDAY=2SU
+TZNAME:PDT
+END:DAYLIGHT
+END:VTIMEZONE
+BEGIN:VEVENT
+UID:623c13c0-6c2b-45d6-a12b-c33ad61c4868
+DESCRIPTION:IAM FOO
+RRULE:FREQ=MONTHLY;INTERVAL=1;BYDAY=1TU
+SUMMARY:Crazy Event Thingy!
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Sahaja
+ Lal;X-NUM-GUESTS=0:mailto:calmozilla1@gmail.com
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;CN=ja
+ mes@lightsofapollo.com;X-NUM-GUESTS=0:mailto:james@lightsofapollo.com
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;CN=ia
+ m.revelation@gmail.com;X-NUM-GUESTS=0:mailto:iam.revelation@gmail.com
+LOCATION:PLACE
+ORGANIZER;CN=James Lal:mailto:jlal@mozilla.com
+DTSTART;TZID=America/Los_Angeles:20121002T100000
+DTEND;TZID=America/Los_Angeles:20121002T103000
+STATUS:CONFIRMED
+CLASS:PUBLIC
+TRANSP:OPAQUE
+LAST-MODIFIED:20120912T171506Z
+DTSTAMP:20120912T171506Z
+SEQUENCE:0
+RDATE;TZID=America/Los_Angeles:20121105T100000
+RDATE;TZID=America/Los_Angeles:20121110T100000,20121130T100000
+EXDATE;TZID=America/Los_Angeles:20130402T100000
+EXDATE;TZID=America/Los_Angeles:20121204T100000
+EXDATE;TZID=America/Los_Angeles:20130205T100000
+BEGIN:VALARM
+ACTION:DISPLAY
+TRIGGER;RELATED=START:-PT5M
+DESCRIPTION:Reminder
+END:VALARM
+END:VEVENT
+BEGIN:VEVENT
+UID:623c13c0-6c2b-45d6-a12b-c33ad61c4868
+SUMMARY:Crazy Event Thingy!
+DESCRIPTION:I HAZ CHANGED!
+ORGANIZER;CN=James Lal:mailto:jlal@mozilla.com
+DTSTART;TZID=America/Los_Angeles:20121002T150000
+DTEND;TZID=America/Los_Angeles:20121002T153000
+STATUS:CONFIRMED
+CLASS:PUBLIC
+TRANSP:OPAQUE
+RECURRENCE-ID;TZID=America/Los_Angeles:20121002T100000
+LAST-MODIFIED:20120912T171540Z
+DTSTAMP:20120912T171540Z
+SEQUENCE:1
+BEGIN:VALARM
+ACTION:DISPLAY
+TRIGGER;RELATED=START:-PT5M
+DESCRIPTION:Reminder
+END:VALARM
+END:VEVENT
+BEGIN:VEVENT
+UID:623c13c0-6c2b-45d6-a12b-c33ad61c4868
+SUMMARY:Crazy Event Thingy!
+ORGANIZER;CN=James Lal:mailto:jlal@mozilla.com
+DTSTART;TZID=America/Los_Angeles:20121106T200000
+DTEND;TZID=America/Los_Angeles:20121106T203000
+STATUS:CONFIRMED
+CLASS:PUBLIC
+TRANSP:OPAQUE
+RECURRENCE-ID:20121105T180000Z
+LAST-MODIFIED:20120912T171820Z
+DTSTAMP:20120912T171820Z
+SEQUENCE:1
+BEGIN:VALARM
+ACTION:DISPLAY
+TRIGGER;RELATED=START:-PT5M
+DESCRIPTION:Reminder
+END:VALARM
+END:VEVENT
+END:VCALENDAR
diff --git a/includes/composer/vendor/om/icalparser/tests/cal/recur_instances_finite.ics b/includes/composer/vendor/om/icalparser/tests/cal/recur_instances_finite.ics
new file mode 100755
index 0000000..e7dc481
--- /dev/null
+++ b/includes/composer/vendor/om/icalparser/tests/cal/recur_instances_finite.ics
@@ -0,0 +1,50 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:Zimbra-Calendar-Provider
+BEGIN:VTIMEZONE
+TZID:America/Los_Angeles
+BEGIN:STANDARD
+DTSTART:19710101T020000
+TZOFFSETTO:-0800
+TZOFFSETFROM:-0700
+RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=11;BYDAY=1SU
+TZNAME:PST
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:19710101T020000
+TZOFFSETTO:-0700
+TZOFFSETFROM:-0800
+RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=3;BYDAY=2SU
+TZNAME:PDT
+END:DAYLIGHT
+END:VTIMEZONE
+BEGIN:VEVENT
+UID:623c13c0-6c2b-45d6-a12b-c33ad61c4868
+DESCRIPTION:IAM FOO
+RRULE:FREQ=MONTHLY;INTERVAL=1;BYDAY=1TU;UNTIL=20121231T100000
+SUMMARY:Crazy Event Thingy!
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Sahaja
+ Lal;X-NUM-GUESTS=0:mailto:calmozilla1@gmail.com
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;CN=ja
+ mes@lightsofapollo.com;X-NUM-GUESTS=0:mailto:james@lightsofapollo.com
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;CN=ia
+ m.revelation@gmail.com;X-NUM-GUESTS=0:mailto:iam.revelation@gmail.com
+LOCATION:PLACE
+ORGANIZER;CN=James Lal:mailto:jlal@mozilla.com
+DTSTART;TZID=America/Los_Angeles:20121002T100000
+DTEND;TZID=America/Los_Angeles:20121002T103000
+STATUS:CONFIRMED
+CLASS:PUBLIC
+TRANSP:OPAQUE
+LAST-MODIFIED:20120912T171506Z
+DTSTAMP:20120912T171506Z
+SEQUENCE:0
+RDATE;TZID=America/Los_Angeles:20121110T100000
+RDATE;TZID=America/Los_Angeles:20121105T100000
+BEGIN:VALARM
+ACTION:DISPLAY
+TRIGGER;RELATED=START:-PT5M
+DESCRIPTION:Reminder
+END:VALARM
+END:VEVENT
+END:VCALENDAR
diff --git a/includes/composer/vendor/om/icalparser/tests/cal/recur_instances_with_modifications.ics b/includes/composer/vendor/om/icalparser/tests/cal/recur_instances_with_modifications.ics
new file mode 100644
index 0000000..dcaef06
--- /dev/null
+++ b/includes/composer/vendor/om/icalparser/tests/cal/recur_instances_with_modifications.ics
@@ -0,0 +1,63 @@
+BEGIN:VCALENDAR
+PRODID:-//Google Inc//Google Calendar 70.9054//EN
+VERSION:2.0
+CALSCALE:GREGORIAN
+METHOD:PUBLISH
+X-WR-CALNAME:School Board
+X-WR-TIMEZONE:America/Chicago
+X-WR-CALDESC:
+BEGIN:VTIMEZONE
+TZID:America/Chicago
+X-LIC-LOCATION:America/Chicago
+BEGIN:DAYLIGHT
+TZOFFSETFROM:-0600
+TZOFFSETTO:-0500
+TZNAME:CDT
+DTSTART:19700308T020000
+RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
+END:DAYLIGHT
+BEGIN:STANDARD
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0600
+TZNAME:CST
+DTSTART:19701101T020000
+RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTART;TZID=America/Chicago:20160808T180000
+DTEND;TZID=America/Chicago:20160808T203000
+DTSTAMP:20160718T160226Z
+UID:kpgr4590djmi89l3sv51gmalrc@google.com
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=School
+ Board;X-NUM-GUESTS=0:mailto:aliceisd.net_7hatmpq9uek3a1h6if0r0sn5bc@group.
+ calendar.google.com
+RECURRENCE-ID;TZID=America/Chicago:20160808T183000
+CREATED:20150715T183809Z
+DESCRIPTION:
+LAST-MODIFIED:20160718T155538Z
+LOCATION:
+SEQUENCE:1
+STATUS:CONFIRMED
+SUMMARY:Regular Board Meeting Modified
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;TZID=America/Chicago:20150810T183000
+DTEND;TZID=America/Chicago:20150810T210000
+RRULE:FREQ=MONTHLY;UNTIL=20180709T233000Z;BYDAY=2MO
+DTSTAMP:20160718T160226Z
+UID:kpgr4590djmi89l3sv51gmalrc@google.com
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=School
+ Board;X-NUM-GUESTS=0:mailto:aliceisd.net_7hatmpq9uek3a1h6if0r0sn5bc@group.
+ calendar.google.com
+CREATED:20150715T183809Z
+DESCRIPTION:
+LAST-MODIFIED:20160718T155538Z
+LOCATION:
+SEQUENCE:0
+STATUS:CONFIRMED
+SUMMARY:Regular Board Meeting
+TRANSP:OPAQUE
+END:VEVENT
+END:VCALENDAR
diff --git a/includes/composer/vendor/om/icalparser/tests/cal/recur_instances_with_modifications_and_interval.ics b/includes/composer/vendor/om/icalparser/tests/cal/recur_instances_with_modifications_and_interval.ics
new file mode 100644
index 0000000..202393e
--- /dev/null
+++ b/includes/composer/vendor/om/icalparser/tests/cal/recur_instances_with_modifications_and_interval.ics
@@ -0,0 +1,578 @@
+BEGIN:VCALENDAR
+PRODID:-//Google Inc//Google Calendar 70.9054//EN
+VERSION:2.0
+CALSCALE:GREGORIAN
+METHOD:PUBLISH
+X-WR-CALNAME:SB-1213
+X-WR-TIMEZONE:America/Denver
+X-WR-CALDESC:
+BEGIN:VTIMEZONE
+TZID:America/New_York
+X-LIC-LOCATION:America/New_York
+BEGIN:DAYLIGHT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+TZNAME:EDT
+DTSTART:19700308T020000
+RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
+END:DAYLIGHT
+BEGIN:STANDARD
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+TZNAME:EST
+DTSTART:19701101T020000
+RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20170602
+DTEND;VALUE=DATE:20170603
+DTSTAMP:20160829T191852Z
+UID:h9i3hjtisl53goaljdcdb681fc@google.com
+RECURRENCE-ID;VALUE=DATE:20170601
+CREATED:20160829T134437Z
+DESCRIPTION:
+LAST-MODIFIED:20160829T134450Z
+LOCATION:
+SEQUENCE:4
+STATUS:CONFIRMED
+SUMMARY:B
+TRANSP:TRANSPARENT
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20170531
+DTEND;VALUE=DATE:20170601
+DTSTAMP:20160829T191852Z
+UID:h9i3hjtisl53goaljdcdb681fc@google.com
+RECURRENCE-ID;VALUE=DATE:20170530
+CREATED:20160829T134437Z
+DESCRIPTION:
+LAST-MODIFIED:20160829T134450Z
+LOCATION:
+SEQUENCE:4
+STATUS:CONFIRMED
+SUMMARY:B
+TRANSP:TRANSPARENT
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20170524
+DTEND;VALUE=DATE:20170525
+DTSTAMP:20160829T191852Z
+UID:h9i3hjtisl53goaljdcdb681fc@google.com
+RECURRENCE-ID;VALUE=DATE:20170524
+CREATED:20160829T134437Z
+DESCRIPTION:
+LAST-MODIFIED:20160829T134450Z
+LOCATION:
+SEQUENCE:5
+STATUS:CONFIRMED
+SUMMARY:B
+TRANSP:TRANSPARENT
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20170216
+DTEND;VALUE=DATE:20170217
+DTSTAMP:20160829T191852Z
+UID:h9i3hjtisl53goaljdcdb681fc@google.com
+RECURRENCE-ID;VALUE=DATE:20170215
+CREATED:20160829T134437Z
+DESCRIPTION:
+LAST-MODIFIED:20160829T134450Z
+LOCATION:
+SEQUENCE:2
+STATUS:CONFIRMED
+SUMMARY:B
+TRANSP:TRANSPARENT
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20170214
+DTEND;VALUE=DATE:20170215
+DTSTAMP:20160829T191852Z
+UID:h9i3hjtisl53goaljdcdb681fc@google.com
+RECURRENCE-ID;VALUE=DATE:20170213
+CREATED:20160829T134437Z
+DESCRIPTION:
+LAST-MODIFIED:20160829T134450Z
+LOCATION:
+SEQUENCE:2
+STATUS:CONFIRMED
+SUMMARY:B
+TRANSP:TRANSPARENT
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20170210
+DTEND;VALUE=DATE:20170211
+DTSTAMP:20160829T191852Z
+UID:h9i3hjtisl53goaljdcdb681fc@google.com
+RECURRENCE-ID;VALUE=DATE:20170209
+CREATED:20160829T134437Z
+DESCRIPTION:
+LAST-MODIFIED:20160829T134450Z
+LOCATION:
+SEQUENCE:2
+STATUS:CONFIRMED
+SUMMARY:B
+TRANSP:TRANSPARENT
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20170208
+DTEND;VALUE=DATE:20170209
+DTSTAMP:20160829T191852Z
+UID:h9i3hjtisl53goaljdcdb681fc@google.com
+RECURRENCE-ID;VALUE=DATE:20170207
+CREATED:20160829T134437Z
+DESCRIPTION:
+LAST-MODIFIED:20160829T134450Z
+LOCATION:
+SEQUENCE:2
+STATUS:CONFIRMED
+SUMMARY:B
+TRANSP:TRANSPARENT
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20170206
+DTEND;VALUE=DATE:20170207
+DTSTAMP:20160829T191852Z
+UID:h9i3hjtisl53goaljdcdb681fc@google.com
+RECURRENCE-ID;VALUE=DATE:20170205
+CREATED:20160829T134437Z
+DESCRIPTION:
+LAST-MODIFIED:20160829T134450Z
+LOCATION:
+SEQUENCE:2
+STATUS:CONFIRMED
+SUMMARY:B
+TRANSP:TRANSPARENT
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20170202
+DTEND;VALUE=DATE:20170203
+DTSTAMP:20160829T191852Z
+UID:h9i3hjtisl53goaljdcdb681fc@google.com
+RECURRENCE-ID;VALUE=DATE:20170201
+CREATED:20160829T134437Z
+DESCRIPTION:
+LAST-MODIFIED:20160829T134450Z
+LOCATION:
+SEQUENCE:2
+STATUS:CONFIRMED
+SUMMARY:B
+TRANSP:TRANSPARENT
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20170131
+DTEND;VALUE=DATE:20170201
+DTSTAMP:20160829T191852Z
+UID:h9i3hjtisl53goaljdcdb681fc@google.com
+RECURRENCE-ID;VALUE=DATE:20170130
+CREATED:20160829T134437Z
+DESCRIPTION:
+LAST-MODIFIED:20160829T134450Z
+LOCATION:
+SEQUENCE:2
+STATUS:CONFIRMED
+SUMMARY:B
+TRANSP:TRANSPARENT
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20170127
+DTEND;VALUE=DATE:20170128
+DTSTAMP:20160829T191852Z
+UID:h9i3hjtisl53goaljdcdb681fc@google.com
+RECURRENCE-ID;VALUE=DATE:20170126
+CREATED:20160829T134437Z
+DESCRIPTION:
+LAST-MODIFIED:20160829T134450Z
+LOCATION:
+SEQUENCE:2
+STATUS:CONFIRMED
+SUMMARY:B
+TRANSP:TRANSPARENT
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20170125
+DTEND;VALUE=DATE:20170126
+DTSTAMP:20160829T191852Z
+UID:h9i3hjtisl53goaljdcdb681fc@google.com
+RECURRENCE-ID;VALUE=DATE:20170124
+CREATED:20160829T134437Z
+DESCRIPTION:
+LAST-MODIFIED:20160829T134450Z
+LOCATION:
+SEQUENCE:2
+STATUS:CONFIRMED
+SUMMARY:B
+TRANSP:TRANSPARENT
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20170123
+DTEND;VALUE=DATE:20170124
+DTSTAMP:20160829T191852Z
+UID:h9i3hjtisl53goaljdcdb681fc@google.com
+RECURRENCE-ID;VALUE=DATE:20170122
+CREATED:20160829T134437Z
+DESCRIPTION:
+LAST-MODIFIED:20160829T134450Z
+LOCATION:
+SEQUENCE:2
+STATUS:CONFIRMED
+SUMMARY:B
+TRANSP:TRANSPARENT
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20170119
+DTEND;VALUE=DATE:20170120
+DTSTAMP:20160829T191852Z
+UID:h9i3hjtisl53goaljdcdb681fc@google.com
+RECURRENCE-ID;VALUE=DATE:20170118
+CREATED:20160829T134437Z
+DESCRIPTION:
+LAST-MODIFIED:20160829T134450Z
+LOCATION:
+SEQUENCE:2
+STATUS:CONFIRMED
+SUMMARY:B
+TRANSP:TRANSPARENT
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20170113
+DTEND;VALUE=DATE:20170114
+DTSTAMP:20160829T191852Z
+UID:h9i3hjtisl53goaljdcdb681fc@google.com
+RECURRENCE-ID;VALUE=DATE:20170112
+CREATED:20160829T134437Z
+DESCRIPTION:
+LAST-MODIFIED:20160829T134450Z
+LOCATION:
+SEQUENCE:2
+STATUS:CONFIRMED
+SUMMARY:B
+TRANSP:TRANSPARENT
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20170111
+DTEND;VALUE=DATE:20170112
+DTSTAMP:20160829T191852Z
+UID:h9i3hjtisl53goaljdcdb681fc@google.com
+RECURRENCE-ID;VALUE=DATE:20170110
+CREATED:20160829T134437Z
+DESCRIPTION:
+LAST-MODIFIED:20160829T134450Z
+LOCATION:
+SEQUENCE:2
+STATUS:CONFIRMED
+SUMMARY:B
+TRANSP:TRANSPARENT
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20170109
+DTEND;VALUE=DATE:20170110
+DTSTAMP:20160829T191852Z
+UID:h9i3hjtisl53goaljdcdb681fc@google.com
+RECURRENCE-ID;VALUE=DATE:20170108
+CREATED:20160829T134437Z
+DESCRIPTION:
+LAST-MODIFIED:20160829T134450Z
+LOCATION:
+SEQUENCE:2
+STATUS:CONFIRMED
+SUMMARY:B
+TRANSP:TRANSPARENT
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20170105
+DTEND;VALUE=DATE:20170106
+DTSTAMP:20160829T191852Z
+UID:h9i3hjtisl53goaljdcdb681fc@google.com
+RECURRENCE-ID;VALUE=DATE:20170104
+CREATED:20160829T134437Z
+DESCRIPTION:
+LAST-MODIFIED:20160829T134450Z
+LOCATION:
+SEQUENCE:2
+STATUS:CONFIRMED
+SUMMARY:B
+TRANSP:TRANSPARENT
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20170103
+DTEND;VALUE=DATE:20170104
+DTSTAMP:20160829T191852Z
+UID:h9i3hjtisl53goaljdcdb681fc@google.com
+RECURRENCE-ID;VALUE=DATE:20170102
+CREATED:20160829T134437Z
+DESCRIPTION:
+LAST-MODIFIED:20160829T134450Z
+LOCATION:
+SEQUENCE:2
+STATUS:CONFIRMED
+SUMMARY:B
+TRANSP:TRANSPARENT
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20161122
+DTEND;VALUE=DATE:20161123
+DTSTAMP:20160829T191852Z
+UID:h9i3hjtisl53goaljdcdb681fc@google.com
+RECURRENCE-ID;VALUE=DATE:20161121
+CREATED:20160829T134437Z
+DESCRIPTION:
+LAST-MODIFIED:20160829T134450Z
+LOCATION:
+SEQUENCE:2
+STATUS:CONFIRMED
+SUMMARY:B
+TRANSP:TRANSPARENT
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20161118
+DTEND;VALUE=DATE:20161119
+DTSTAMP:20160829T191852Z
+UID:h9i3hjtisl53goaljdcdb681fc@google.com
+RECURRENCE-ID;VALUE=DATE:20161117
+CREATED:20160829T134437Z
+DESCRIPTION:
+LAST-MODIFIED:20160829T134450Z
+LOCATION:
+SEQUENCE:2
+STATUS:CONFIRMED
+SUMMARY:B
+TRANSP:TRANSPARENT
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20161116
+DTEND;VALUE=DATE:20161117
+DTSTAMP:20160829T191852Z
+UID:h9i3hjtisl53goaljdcdb681fc@google.com
+RECURRENCE-ID;VALUE=DATE:20161115
+CREATED:20160829T134437Z
+DESCRIPTION:
+LAST-MODIFIED:20160829T134450Z
+LOCATION:
+SEQUENCE:2
+STATUS:CONFIRMED
+SUMMARY:B
+TRANSP:TRANSPARENT
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20161114
+DTEND;VALUE=DATE:20161115
+DTSTAMP:20160829T191852Z
+UID:h9i3hjtisl53goaljdcdb681fc@google.com
+RECURRENCE-ID;VALUE=DATE:20161113
+CREATED:20160829T134437Z
+DESCRIPTION:
+LAST-MODIFIED:20160829T134450Z
+LOCATION:
+SEQUENCE:2
+STATUS:CONFIRMED
+SUMMARY:B
+TRANSP:TRANSPARENT
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20161110
+DTEND;VALUE=DATE:20161111
+DTSTAMP:20160829T191852Z
+UID:h9i3hjtisl53goaljdcdb681fc@google.com
+RECURRENCE-ID;VALUE=DATE:20161109
+CREATED:20160829T134437Z
+DESCRIPTION:
+LAST-MODIFIED:20160829T134450Z
+LOCATION:
+SEQUENCE:2
+STATUS:CONFIRMED
+SUMMARY:B
+TRANSP:TRANSPARENT
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20160923
+DTEND;VALUE=DATE:20160924
+DTSTAMP:20160829T191852Z
+UID:h9i3hjtisl53goaljdcdb681fc@google.com
+RECURRENCE-ID;VALUE=DATE:20160922
+CREATED:20160829T134437Z
+DESCRIPTION:
+LAST-MODIFIED:20160829T134450Z
+LOCATION:
+SEQUENCE:2
+STATUS:CONFIRMED
+SUMMARY:B
+TRANSP:TRANSPARENT
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20160921
+DTEND;VALUE=DATE:20160922
+DTSTAMP:20160829T191852Z
+UID:h9i3hjtisl53goaljdcdb681fc@google.com
+RECURRENCE-ID;VALUE=DATE:20160920
+CREATED:20160829T134437Z
+DESCRIPTION:
+LAST-MODIFIED:20160829T134450Z
+LOCATION:
+SEQUENCE:2
+STATUS:CONFIRMED
+SUMMARY:B
+TRANSP:TRANSPARENT
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20160919
+DTEND;VALUE=DATE:20160920
+DTSTAMP:20160829T191852Z
+UID:h9i3hjtisl53goaljdcdb681fc@google.com
+RECURRENCE-ID;VALUE=DATE:20160916
+CREATED:20160829T134437Z
+DESCRIPTION:
+LAST-MODIFIED:20160829T134450Z
+LOCATION:
+SEQUENCE:2
+STATUS:CONFIRMED
+SUMMARY:B
+TRANSP:TRANSPARENT
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20160915
+DTEND;VALUE=DATE:20160916
+DTSTAMP:20160829T191852Z
+UID:h9i3hjtisl53goaljdcdb681fc@google.com
+RECURRENCE-ID;VALUE=DATE:20160914
+CREATED:20160829T134437Z
+DESCRIPTION:
+LAST-MODIFIED:20160829T134450Z
+LOCATION:
+SEQUENCE:2
+STATUS:CONFIRMED
+SUMMARY:B
+TRANSP:TRANSPARENT
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20160913
+DTEND;VALUE=DATE:20160914
+DTSTAMP:20160829T191852Z
+UID:h9i3hjtisl53goaljdcdb681fc@google.com
+RECURRENCE-ID;VALUE=DATE:20160912
+CREATED:20160829T134437Z
+DESCRIPTION:
+LAST-MODIFIED:20160829T134450Z
+LOCATION:
+SEQUENCE:2
+STATUS:CONFIRMED
+SUMMARY:B
+TRANSP:TRANSPARENT
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20160909
+DTEND;VALUE=DATE:20160910
+DTSTAMP:20160829T191852Z
+UID:h9i3hjtisl53goaljdcdb681fc@google.com
+RECURRENCE-ID;VALUE=DATE:20160908
+CREATED:20160829T134437Z
+DESCRIPTION:
+LAST-MODIFIED:20160829T134450Z
+LOCATION:
+SEQUENCE:2
+STATUS:CONFIRMED
+SUMMARY:B
+TRANSP:TRANSPARENT
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20160907
+DTEND;VALUE=DATE:20160908
+DTSTAMP:20160829T191852Z
+UID:h9i3hjtisl53goaljdcdb681fc@google.com
+RECURRENCE-ID;VALUE=DATE:20160906
+CREATED:20160829T134437Z
+DESCRIPTION:
+LAST-MODIFIED:20160829T134450Z
+LOCATION:
+SEQUENCE:2
+STATUS:CONFIRMED
+SUMMARY:B
+TRANSP:TRANSPARENT
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20160817
+DTEND;VALUE=DATE:20160818
+EXDATE;VALUE=DATE:20160821
+EXDATE;VALUE=DATE:20160827
+EXDATE;VALUE=DATE:20160904
+EXDATE;VALUE=DATE:20160910
+EXDATE;VALUE=DATE:20160918
+EXDATE;VALUE=DATE:20160924
+EXDATE;VALUE=DATE:20160926
+EXDATE;VALUE=DATE:20161002
+EXDATE;VALUE=DATE:20161008
+EXDATE;VALUE=DATE:20161016
+EXDATE;VALUE=DATE:20161022
+EXDATE;VALUE=DATE:20161030
+EXDATE;VALUE=DATE:20161105
+EXDATE;VALUE=DATE:20161107
+EXDATE;VALUE=DATE:20161111
+EXDATE;VALUE=DATE:20161119
+EXDATE;VALUE=DATE:20161123
+EXDATE;VALUE=DATE:20161125
+EXDATE;VALUE=DATE:20161127
+EXDATE;VALUE=DATE:20161203
+EXDATE;VALUE=DATE:20161211
+EXDATE;VALUE=DATE:20161217
+EXDATE;VALUE=DATE:20161219
+EXDATE;VALUE=DATE:20161221
+EXDATE;VALUE=DATE:20161223
+EXDATE;VALUE=DATE:20161225
+EXDATE;VALUE=DATE:20161227
+EXDATE;VALUE=DATE:20161229
+EXDATE;VALUE=DATE:20161231
+EXDATE;VALUE=DATE:20170106
+EXDATE;VALUE=DATE:20170114
+EXDATE;VALUE=DATE:20170116
+EXDATE;VALUE=DATE:20170120
+EXDATE;VALUE=DATE:20170128
+EXDATE;VALUE=DATE:20170203
+EXDATE;VALUE=DATE:20170211
+EXDATE;VALUE=DATE:20170217
+EXDATE;VALUE=DATE:20170219
+EXDATE;VALUE=DATE:20170225
+EXDATE;VALUE=DATE:20170305
+EXDATE;VALUE=DATE:20170311
+EXDATE;VALUE=DATE:20170319
+EXDATE;VALUE=DATE:20170325
+EXDATE;VALUE=DATE:20170327
+EXDATE;VALUE=DATE:20170402
+EXDATE;VALUE=DATE:20170408
+EXDATE;VALUE=DATE:20170410
+EXDATE;VALUE=DATE:20170412
+EXDATE;VALUE=DATE:20170414
+EXDATE;VALUE=DATE:20170416
+EXDATE;VALUE=DATE:20170422
+EXDATE;VALUE=DATE:20170430
+EXDATE;VALUE=DATE:20170506
+EXDATE;VALUE=DATE:20170514
+EXDATE;VALUE=DATE:20170520
+EXDATE;VALUE=DATE:20170528
+RRULE:FREQ=DAILY;UNTIL=20170601;INTERVAL=2
+DTSTAMP:20160829T191852Z
+UID:h9i3hjtisl53goaljdcdb681fc@google.com
+CREATED:20160829T134437Z
+DESCRIPTION:
+LAST-MODIFIED:20160829T134450Z
+LOCATION:
+SEQUENCE:1
+STATUS:CONFIRMED
+SUMMARY:B
+TRANSP:TRANSPARENT
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20170601
+DTEND;VALUE=DATE:20170602
+DTSTAMP:20160829T191852Z
+UID:h9i3hjtisl53goaljdcdb681fc@google.com
+RECURRENCE-ID;VALUE=DATE:20170526
+CREATED:20160829T134437Z
+DESCRIPTION:
+LAST-MODIFIED:20160829T134450Z
+LOCATION:
+SEQUENCE:6
+STATUS:CONFIRMED
+SUMMARY:A
+TRANSP:TRANSPARENT
+END:VEVENT
+END:VCALENDAR
diff --git a/includes/composer/vendor/om/icalparser/tests/cal/recur_instances_with_modifications_to_first_day.ics b/includes/composer/vendor/om/icalparser/tests/cal/recur_instances_with_modifications_to_first_day.ics
new file mode 100755
index 0000000..7dd2939
--- /dev/null
+++ b/includes/composer/vendor/om/icalparser/tests/cal/recur_instances_with_modifications_to_first_day.ics
@@ -0,0 +1,57 @@
+BEGIN:VCALENDAR
+PRODID:-//Google Inc//Google Calendar 70.9054//EN
+VERSION:2.0
+CALSCALE:GREGORIAN
+METHOD:PUBLISH
+X-WR-CALNAME:G. C. Hawley Middle School
+X-WR-TIMEZONE:America/New_York
+X-WR-CALDESC:This is the website calendar for GC Hawley MS.
+BEGIN:VTIMEZONE
+TZID:America/New_York
+X-LIC-LOCATION:America/New_York
+BEGIN:DAYLIGHT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+TZNAME:EDT
+DTSTART:19700308T020000
+RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
+END:DAYLIGHT
+BEGIN:STANDARD
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+TZNAME:EST
+DTSTART:19701101T020000
+RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTART;TZID=America/New_York:20160915T123000
+DTEND;TZID=America/New_York:20160915T160000
+RRULE:FREQ=MONTHLY;UNTIL=20161020T035959Z;BYDAY=3TH
+DTSTAMP:20160913T221241Z
+UID:d28i2lkvhp2qb2v7n6oe9poikc@google.com
+CREATED:20160705T193430Z
+DESCRIPTION:Professional Development for Staff
+LAST-MODIFIED:20160825T003008Z
+LOCATION:
+SEQUENCE:1
+STATUS:CONFIRMED
+SUMMARY:Early Release for Students
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;TZID=America/New_York:20160929T123000
+DTEND;TZID=America/New_York:20160929T160000
+DTSTAMP:20160913T221241Z
+UID:d28i2lkvhp2qb2v7n6oe9poikc@google.com
+RECURRENCE-ID;TZID=America/New_York:20160915T123000
+CREATED:20160705T193430Z
+DESCRIPTION:Professional Development for Staff
+LAST-MODIFIED:20160825T003008Z
+LOCATION:
+SEQUENCE:2
+STATUS:CONFIRMED
+SUMMARY:Early Release for Students
+TRANSP:OPAQUE
+END:VEVENT
+END:VCALENDAR
diff --git a/includes/composer/vendor/om/icalparser/tests/cal/rrule_interval.ics b/includes/composer/vendor/om/icalparser/tests/cal/rrule_interval.ics
new file mode 100644
index 0000000..262721a
--- /dev/null
+++ b/includes/composer/vendor/om/icalparser/tests/cal/rrule_interval.ics
@@ -0,0 +1,34 @@
+BEGIN:VCALENDAR
+PRODID:-//Google Inc//Google Calendar 70.9054//EN
+VERSION:2.0
+CALSCALE:GREGORIAN
+X-WR-CALNAME:calmozilla1@gmail.com
+X-WR-TIMEZONE:America/Los_Angeles
+BEGIN:VTIMEZONE
+TZID:America/Los_Angeles
+X-LIC-LOCATION:America/Los_Angeles
+BEGIN:DAYLIGHT
+TZOFFSETFROM:-0800
+TZOFFSETTO:-0700
+TZNAME:PDT
+DTSTART:19700308T020000
+RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
+END:DAYLIGHT
+BEGIN:STANDARD
+TZOFFSETFROM:-0700
+TZOFFSETTO:-0800
+TZNAME:PST
+DTSTART:19701101T020000
+RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTART;TZID=America/Los_Angeles:20230131T050000
+DTEND;TZID=America/Los_Angeles:20230131T060000
+RRULE:FREQ=WEEKLY;WKST=MO;UNTIL=20230228T090000;INTERVAL=2;BYDAY=TU
+DTSTAMP:20120803T221236Z
+DESCRIPTION:
+SUMMARY:Every day recurring
+TRANSP:OPAQUE
+END:VEVENT
+END:VCALENDAR
diff --git a/includes/composer/vendor/om/icalparser/tests/cal/url.ics b/includes/composer/vendor/om/icalparser/tests/cal/url.ics
new file mode 100644
index 0000000..8ae6620
--- /dev/null
+++ b/includes/composer/vendor/om/icalparser/tests/cal/url.ics
@@ -0,0 +1,32 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+X-WR-CALNAME:URL
+CALSCALE:GREGORIAN
+BEGIN:VTIMEZONE
+TZID:Europe/Berlin
+TZURL:http://tzurl.org/zoneinfo-outlook/Europe/Berlin
+X-LIC-LOCATION:Europe/Berlin
+BEGIN:DAYLIGHT
+TZOFFSETFROM:+0100
+TZOFFSETTO:+0200
+TZNAME:CEST
+DTSTART:19700329T020000
+RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
+END:DAYLIGHT
+BEGIN:STANDARD
+TZOFFSETFROM:+0200
+TZOFFSETTO:+0100
+TZNAME:CET
+DTSTART:19701025T030000
+RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTAMP:20191106T093607Z
+UID:20191106T093607Z-791992399@marudot.com
+DTSTART;VALUE=DATE:20191101
+DTEND;VALUE=DATE:20191102
+SUMMARY:Example event
+URL:https%3A%2F%2Fgithub.com%2FOzzyCzech%2Ficalparser%2F
+END:VEVENT
+END:VCALENDAR \ No newline at end of file
diff --git a/includes/composer/vendor/om/icalparser/tests/cal/utc_negative_zero.ics b/includes/composer/vendor/om/icalparser/tests/cal/utc_negative_zero.ics
new file mode 100755
index 0000000..e61ad9a
--- /dev/null
+++ b/includes/composer/vendor/om/icalparser/tests/cal/utc_negative_zero.ics
@@ -0,0 +1,27 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:Zimbra-Calendar-Provider
+BEGIN:VTIMEZONE
+TZID:Etc/GMT
+BEGIN:STANDARD
+DTSTART:19710101T000000
+TZOFFSETTO:-0000
+TZOFFSETFROM:-0000
+TZNAME:GMT
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+UID:d118e997-3683-4552-8fe8-57c641f1f179
+SUMMARY:And another
+ORGANIZER;CN=Sahaja Lal:mailto:calmozilla1@yahoo.com
+DTSTART;TZID=Etc/GMT:20120821T210000
+DTEND;TZID=Etc/GMT:20120821T213000
+STATUS:CONFIRMED
+CLASS:PUBLIC
+X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
+TRANSP:OPAQUE
+X-MICROSOFT-DISALLOW-COUNTER:TRUE
+DTSTAMP:20120817T032509Z
+SEQUENCE:0
+END:VEVENT
+END:VCALENDAR
diff --git a/includes/composer/vendor/om/icalparser/tests/cal/weird_windows_timezones.ics b/includes/composer/vendor/om/icalparser/tests/cal/weird_windows_timezones.ics
new file mode 100644
index 0000000..5d736a1
--- /dev/null
+++ b/includes/composer/vendor/om/icalparser/tests/cal/weird_windows_timezones.ics
@@ -0,0 +1,237 @@
+BEGIN:VCALENDAR
+METHOD:PUBLISH
+PRODID:Microsoft Exchange Server 2010
+VERSION:2.0
+X-WR-CALNAME:High School Counselors Office
+BEGIN:VTIMEZONE
+TZID:(UTC-06:00) Central Time (US & Canada)
+BEGIN:STANDARD
+DTSTART:16010101T020000
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0600
+RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=1SU;BYMONTH=11
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:16010101T020000
+TZOFFSETFROM:-0600
+TZOFFSETTO:-0500
+RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=2SU;BYMONTH=3
+END:DAYLIGHT
+END:VTIMEZONE
+BEGIN:VTIMEZONE
+TZID:Eastern Time
+BEGIN:STANDARD
+DTSTART:16010101T020000
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=1SU;BYMONTH=11
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:16010101T020000
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=2SU;BYMONTH=3
+END:DAYLIGHT
+END:VTIMEZONE
+BEGIN:VTIMEZONE
+TZID:Greenwich Standard Time
+BEGIN:STANDARD
+DTSTART:16010101T000000
+TZOFFSETFROM:+0000
+TZOFFSETTO:+0000
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:16010101T000000
+TZOFFSETFROM:+0000
+TZOFFSETTO:+0000
+END:DAYLIGHT
+END:VTIMEZONE
+BEGIN:VEVENT
+DESCRIPTION:All seniors MUST make an appointment in the counseling office\,
+ to visit with a counselor and go over their application for graduation.\n
+UID:040000008200E00074C5B7101A82E008000000004A8A50D0FC09D201000000000000000
+ 010000000D27D08FB73761145BC661D80CE521463
+SUMMARY:Senior Appointment Sign-up
+DTSTART;VALUE=DATE:20160914
+DTEND;VALUE=DATE:20160915
+CLASS:PUBLIC
+PRIORITY:5
+DTSTAMP:20160916T193959Z
+TRANSP:OPAQUE
+STATUS:CONFIRMED
+SEQUENCE:0
+LOCATION:
+X-MICROSOFT-CDO-APPT-SEQUENCE:0
+X-MICROSOFT-CDO-BUSYSTATUS:FREE
+X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
+X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
+X-MICROSOFT-CDO-IMPORTANCE:1
+X-MICROSOFT-CDO-INSTTYPE:0
+X-MICROSOFT-DISALLOW-COUNTER:FALSE
+END:VEVENT
+BEGIN:VEVENT
+DESCRIPTION:Registration for the PSAT test begins in the counseling office.
+ The test is open to any junior or sophomore. The test is $15 and must be
+ paid at the time of registration. Test date is Wednesday\, October 19th.\n
+UID:040000008200E00074C5B7101A82E008000000004B8D8376DB0AD201000000000000000
+ 010000000CF196AE75B9C684C9E51C33A403CA455
+SUMMARY:PSAT Registration
+DTSTART;VALUE=DATE:20160915
+DTEND;VALUE=DATE:20160916
+CLASS:PUBLIC
+PRIORITY:5
+DTSTAMP:20160916T193959Z
+TRANSP:OPAQUE
+STATUS:CONFIRMED
+SEQUENCE:0
+LOCATION:
+X-MICROSOFT-CDO-APPT-SEQUENCE:0
+X-MICROSOFT-CDO-BUSYSTATUS:FREE
+X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
+X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
+X-MICROSOFT-CDO-IMPORTANCE:1
+X-MICROSOFT-CDO-INSTTYPE:0
+X-MICROSOFT-DISALLOW-COUNTER:FALSE
+END:VEVENT
+BEGIN:VEVENT
+DESCRIPTION:Financial Aid night for all seniors and their parents at 7:00pm
+ in the high school auditorium.\n
+UID:040000008200E00074C5B7101A82E00800000000A3D802C7DB0AD201000000000000000
+ 0100000004690B516982D4841A6A5808F1BF285D2
+SUMMARY:Financial Aid NIght
+DTSTART;TZID="(UTC-06:00) Central Time (US & Canada)":20160919T190000
+DTEND;TZID="(UTC-06:00) Central Time (US & Canada)":20160919T200000
+CLASS:PUBLIC
+PRIORITY:5
+DTSTAMP:20160916T193959Z
+TRANSP:OPAQUE
+STATUS:CONFIRMED
+SEQUENCE:0
+LOCATION:
+X-MICROSOFT-CDO-APPT-SEQUENCE:0
+X-MICROSOFT-CDO-BUSYSTATUS:BUSY
+X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
+X-MICROSOFT-CDO-ALLDAYEVENT:FALSE
+X-MICROSOFT-CDO-IMPORTANCE:1
+X-MICROSOFT-CDO-INSTTYPE:0
+X-MICROSOFT-DISALLOW-COUNTER:FALSE
+END:VEVENT
+BEGIN:VEVENT
+DESCRIPTION:This is the last day to register for the PSAT test in October!
+ Please see the counseling office if you would like to register.\n
+UID:040000008200E00074C5B7101A82E00800000000DE3BE28BDB0AD201000000000000000
+ 0100000008C413809A1751A4E82CEB8F1BB526C61
+SUMMARY:PSAT Test registration ends
+DTSTART;VALUE=DATE:20160923
+DTEND;VALUE=DATE:20160924
+CLASS:PUBLIC
+PRIORITY:5
+DTSTAMP:20160916T193959Z
+TRANSP:OPAQUE
+STATUS:CONFIRMED
+SEQUENCE:0
+LOCATION:
+X-MICROSOFT-CDO-APPT-SEQUENCE:0
+X-MICROSOFT-CDO-BUSYSTATUS:FREE
+X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
+X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
+X-MICROSOFT-CDO-IMPORTANCE:1
+X-MICROSOFT-CDO-INSTTYPE:0
+X-MICROSOFT-DISALLOW-COUNTER:FALSE
+END:VEVENT
+BEGIN:VEVENT
+DESCRIPTION:College Application Day for all interested seniors! The Bank of
+ North Dakota is waiving the application fee for any student to apply to a
+ North Dakota college or university. Counselors and college staff will be
+ assisting students with their applications periods 1-3 in the high school
+ library!\n
+UID:040000008200E00074C5B7101A82E0080000000019668644DC0AD201000000000000000
+ 010000000DB1D0B39660D4045A6AC5C232EB0D76B
+SUMMARY:College Application Day
+DTSTART;TZID="(UTC-06:00) Central Time (US & Canada)":20161005T080000
+DTEND;TZID="(UTC-06:00) Central Time (US & Canada)":20161005T081500
+CLASS:PUBLIC
+PRIORITY:5
+DTSTAMP:20160916T193959Z
+TRANSP:OPAQUE
+STATUS:CONFIRMED
+SEQUENCE:0
+LOCATION:
+X-MICROSOFT-CDO-APPT-SEQUENCE:0
+X-MICROSOFT-CDO-BUSYSTATUS:BUSY
+X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
+X-MICROSOFT-CDO-ALLDAYEVENT:FALSE
+X-MICROSOFT-CDO-IMPORTANCE:1
+X-MICROSOFT-CDO-INSTTYPE:0
+X-MICROSOFT-DISALLOW-COUNTER:FALSE
+END:VEVENT
+BEGIN:VEVENT
+DESCRIPTION:PSAT Test in the high school auditorium for all students that r
+ egistered. Please report to the auditorium at 8:30am with a sharpened #2 p
+ encil and calculator.\n
+UID:040000008200E00074C5B7101A82E00800000000E68A2E67DC0AD201000000000000000
+ 01000000080E5BC118E41944ABC1C94B815AB2235
+SUMMARY:PSAT Test
+DTSTART;VALUE=DATE:20161019
+DTEND;VALUE=DATE:20161020
+CLASS:PUBLIC
+PRIORITY:5
+DTSTAMP:20160916T193959Z
+TRANSP:OPAQUE
+STATUS:CONFIRMED
+SEQUENCE:0
+LOCATION:
+X-MICROSOFT-CDO-APPT-SEQUENCE:0
+X-MICROSOFT-CDO-BUSYSTATUS:FREE
+X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
+X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
+X-MICROSOFT-CDO-IMPORTANCE:1
+X-MICROSOFT-CDO-INSTTYPE:0
+X-MICROSOFT-DISALLOW-COUNTER:FALSE
+END:VEVENT
+BEGIN:VEVENT
+DESCRIPTION:North Dakota State Assessment for all juniors (periods 2-4).\n
+UID:040000008200E00074C5B7101A82E008000000002EB6D123DD0AD201000000000000000
+ 01000000061F7AF4CD0D2C84B9C6A916D2C633339
+SUMMARY:NDSA Science Assessment
+DTSTART;TZID="(UTC-06:00) Central Time (US & Canada)":20161025T091500
+DTEND;TZID="(UTC-06:00) Central Time (US & Canada)":20161025T114500
+CLASS:PUBLIC
+PRIORITY:5
+DTSTAMP:20160916T193959Z
+TRANSP:OPAQUE
+STATUS:CONFIRMED
+SEQUENCE:0
+LOCATION:
+X-MICROSOFT-CDO-APPT-SEQUENCE:0
+X-MICROSOFT-CDO-BUSYSTATUS:BUSY
+X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
+X-MICROSOFT-CDO-ALLDAYEVENT:FALSE
+X-MICROSOFT-CDO-IMPORTANCE:1
+X-MICROSOFT-CDO-INSTTYPE:0
+X-MICROSOFT-DISALLOW-COUNTER:FALSE
+END:VEVENT
+BEGIN:VEVENT
+DESCRIPTION:\n
+UID:040000008200E00074C5B7101A82E0080000000052D533E856D6D301000000000000000
+ 010000000568B47E6EF679B4B812809E063BB64E1
+SUMMARY:Test Event
+DTSTART;TZID=Eastern Time:20180419T103000
+DTEND;TZID=Eastern Time:20180419T113000
+CLASS:PUBLIC
+PRIORITY:5
+DTSTAMP:20180417T144309Z
+TRANSP:OPAQUE
+STATUS:CONFIRMED
+SEQUENCE:0
+LOCATION:Boardroom
+X-MICROSOFT-CDO-APPT-SEQUENCE:0
+X-MICROSOFT-CDO-BUSYSTATUS:BUSY
+X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
+X-MICROSOFT-CDO-ALLDAYEVENT:FALSE
+X-MICROSOFT-CDO-IMPORTANCE:1
+X-MICROSOFT-CDO-INSTTYPE:0
+X-MICROSOFT-DONOTFORWARDMEETING:FALSE
+X-MICROSOFT-DISALLOW-COUNTER:FALSE
+END:VEVENT
+END:VCALENDAR
diff --git a/includes/composer/vendor/om/icalparser/tests/cal/wrong_dates.ics b/includes/composer/vendor/om/icalparser/tests/cal/wrong_dates.ics
new file mode 100644
index 0000000..0468020
--- /dev/null
+++ b/includes/composer/vendor/om/icalparser/tests/cal/wrong_dates.ics
@@ -0,0 +1,37 @@
+BEGIN:VCALENDAR
+PRODID:-//Google Inc//Google Calendar 70.9054//EN
+VERSION:2.0
+CALSCALE:GREGORIAN
+X-WR-CALNAME:calmozilla1@gmail.com
+X-WR-TIMEZONE:America/Los_Angeles
+BEGIN:VTIMEZONE
+TZID:America/Los_Angeles
+X-LIC-LOCATION:America/Los_Angeles
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:2014929
+DTEND;VALUE=DATE:20140930
+UID:dn4vrfmfn5p05roahsopg57h48@google.com
+CREATED:20120724T212411Z
+DESCRIPTION:
+LAST-MODIFIED:20120724T212411Z
+LOCATION:
+SEQUENCE:0
+STATUS:CONFIRMED
+SUMMARY:Really long event name thing
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20140929
+DTEND;VALUE=DATE:2014930
+UID:dn4vrfmfn5p05roahsopg57h48@google.com
+CREATED:20120724T212411Z
+DESCRIPTION:
+LAST-MODIFIED:20120724T212411Z
+LOCATION:
+SEQUENCE:0
+STATUS:CONFIRMED
+SUMMARY:Really long event name thing
+TRANSP:OPAQUE
+END:VEVENT
+END:VCALENDAR