aboutsummaryrefslogtreecommitdiffstats
path: root/test/data
diff options
context:
space:
mode:
authorUlf Jasper2020-10-22 17:45:59 +0200
committerUlf Jasper2020-10-22 17:45:59 +0200
commit6342264ef74bdc5d649d6baaaa986d54d3aa11fe (patch)
treef8420ebc260c001f43f330386ecc94019c2d62a5 /test/data
parent5d152ed73754f3fcd8ce7e08bf1cfcf96e9656bb (diff)
downloademacs-6342264ef74bdc5d649d6baaaa986d54d3aa11fe.tar.gz
emacs-6342264ef74bdc5d649d6baaaa986d54d3aa11fe.zip
Move test data for icalendar tests to separate files.
* test/lisp/calendar/icalendar-tests.el (icalendar-tests--data-dir, icalendar-tests--get-file-contents): New. (icalendar-tests--test-import, icalendar-tests--do-test-import): Read input and expected results from files. (icalendar-import-non-recurring, icalendar-import-rrule) (icalendar-import-duration, icalendar-import-bug-6766) (icalendar-import-bug-24199, icalendar-import-bug-33277) (icalendar-import-multiple-vcalendars, icalendar-import-with-uid) (icalendar-import-with-timezone, icalendar-real-world): Move test data (input and expected result) to separate files. * test/calendar/icalendar/* New files containing test data for icalendar tests.
Diffstat (limited to 'test/data')
-rw-r--r--test/data/icalendar/import-bug-11473.diary-european10
-rw-r--r--test/data/icalendar/import-bug-11473.ics54
-rw-r--r--test/data/icalendar/import-bug-22092.diary-american6
-rw-r--r--test/data/icalendar/import-bug-22092.diary-european6
-rw-r--r--test/data/icalendar/import-bug-22092.diary-iso6
-rw-r--r--test/data/icalendar/import-bug-22092.ics30
-rw-r--r--test/data/icalendar/import-bug-24199.diary-american5
-rw-r--r--test/data/icalendar/import-bug-24199.diary-european5
-rw-r--r--test/data/icalendar/import-bug-24199.diary-iso5
-rw-r--r--test/data/icalendar/import-bug-24199.ics25
-rw-r--r--test/data/icalendar/import-bug-33277.diary-american1
-rw-r--r--test/data/icalendar/import-bug-33277.diary-european1
-rw-r--r--test/data/icalendar/import-bug-33277.diary-iso1
-rw-r--r--test/data/icalendar/import-bug-33277.ics15
-rw-r--r--test/data/icalendar/import-bug-6766.diary-american7
-rw-r--r--test/data/icalendar/import-bug-6766.diary-european7
-rw-r--r--test/data/icalendar/import-bug-6766.diary-iso7
-rw-r--r--test/data/icalendar/import-bug-6766.ics28
-rw-r--r--test/data/icalendar/import-duration-2.diary-american3
-rw-r--r--test/data/icalendar/import-duration-2.diary-european3
-rw-r--r--test/data/icalendar/import-duration-2.diary-iso3
-rw-r--r--test/data/icalendar/import-duration-2.ics17
-rw-r--r--test/data/icalendar/import-duration.diary-american1
-rw-r--r--test/data/icalendar/import-duration.diary-european1
-rw-r--r--test/data/icalendar/import-duration.diary-iso1
-rw-r--r--test/data/icalendar/import-duration.ics10
-rw-r--r--test/data/icalendar/import-multiple-vcalendars.diary-american4
-rw-r--r--test/data/icalendar/import-multiple-vcalendars.diary-european4
-rw-r--r--test/data/icalendar/import-multiple-vcalendars.diary-iso4
-rw-r--r--test/data/icalendar/import-multiple-vcalendars.ics21
-rw-r--r--test/data/icalendar/import-non-recurring-1.diary-american1
-rw-r--r--test/data/icalendar/import-non-recurring-1.diary-european1
-rw-r--r--test/data/icalendar/import-non-recurring-1.diary-iso1
-rw-r--r--test/data/icalendar/import-non-recurring-1.ics10
-rw-r--r--test/data/icalendar/import-non-recurring-all-day.diary-american1
-rw-r--r--test/data/icalendar/import-non-recurring-all-day.diary-european1
-rw-r--r--test/data/icalendar/import-non-recurring-all-day.diary-iso1
-rw-r--r--test/data/icalendar/import-non-recurring-all-day.ics9
-rw-r--r--test/data/icalendar/import-non-recurring-another-example.diary-american4
-rw-r--r--test/data/icalendar/import-non-recurring-another-example.diary-european4
-rw-r--r--test/data/icalendar/import-non-recurring-another-example.diary-iso4
-rw-r--r--test/data/icalendar/import-non-recurring-another-example.ics23
-rw-r--r--test/data/icalendar/import-non-recurring-block.diary-american4
-rw-r--r--test/data/icalendar/import-non-recurring-block.diary-european4
-rw-r--r--test/data/icalendar/import-non-recurring-block.diary-iso4
-rw-r--r--test/data/icalendar/import-non-recurring-block.ics16
-rw-r--r--test/data/icalendar/import-non-recurring-folded-summary.diary-american4
-rw-r--r--test/data/icalendar/import-non-recurring-folded-summary.diary-european4
-rw-r--r--test/data/icalendar/import-non-recurring-folded-summary.diary-iso4
-rw-r--r--test/data/icalendar/import-non-recurring-folded-summary.ics25
-rw-r--r--test/data/icalendar/import-non-recurring-long-summary.diary-american1
-rw-r--r--test/data/icalendar/import-non-recurring-long-summary.diary-european1
-rw-r--r--test/data/icalendar/import-non-recurring-long-summary.diary-iso1
-rw-r--r--test/data/icalendar/import-non-recurring-long-summary.ics10
-rw-r--r--test/data/icalendar/import-real-world-2003-05-29.diary-american6
-rw-r--r--test/data/icalendar/import-real-world-2003-05-29.diary-european6
-rw-r--r--test/data/icalendar/import-real-world-2003-05-29.ics54
-rw-r--r--test/data/icalendar/import-real-world-2003-06-18a.diary-american6
-rw-r--r--test/data/icalendar/import-real-world-2003-06-18a.diary-european6
-rw-r--r--test/data/icalendar/import-real-world-2003-06-18a.ics36
-rw-r--r--test/data/icalendar/import-real-world-2003-06-18b.diary-american6
-rw-r--r--test/data/icalendar/import-real-world-2003-06-18b.diary-european6
-rw-r--r--test/data/icalendar/import-real-world-2003-06-18b.ics55
-rw-r--r--test/data/icalendar/import-real-world-2004-11-19.diary-american19
-rw-r--r--test/data/icalendar/import-real-world-2004-11-19.diary-european19
-rw-r--r--test/data/icalendar/import-real-world-2004-11-19.ics120
-rw-r--r--test/data/icalendar/import-real-world-2005-02-07.diary-american5
-rw-r--r--test/data/icalendar/import-real-world-2005-02-07.diary-european5
-rw-r--r--test/data/icalendar/import-real-world-2005-02-07.ics26
-rw-r--r--test/data/icalendar/import-real-world-2005-03-01.diary-american2
-rw-r--r--test/data/icalendar/import-real-world-2005-03-01.diary-european2
-rw-r--r--test/data/icalendar/import-real-world-2005-03-01.ics11
-rw-r--r--test/data/icalendar/import-real-world-no-dst.diary-american4
-rw-r--r--test/data/icalendar/import-real-world-no-dst.diary-european4
-rw-r--r--test/data/icalendar/import-real-world-no-dst.ics26
-rw-r--r--test/data/icalendar/import-rrule-anniversary.diary-american1
-rw-r--r--test/data/icalendar/import-rrule-anniversary.diary-european1
-rw-r--r--test/data/icalendar/import-rrule-anniversary.diary-iso1
-rw-r--r--test/data/icalendar/import-rrule-anniversary.ics11
-rw-r--r--test/data/icalendar/import-rrule-count-bi-weekly.diary-american1
-rw-r--r--test/data/icalendar/import-rrule-count-bi-weekly.diary-european1
-rw-r--r--test/data/icalendar/import-rrule-count-bi-weekly.diary-iso1
-rw-r--r--test/data/icalendar/import-rrule-count-bi-weekly.ics11
-rw-r--r--test/data/icalendar/import-rrule-count-daily-long.diary-american1
-rw-r--r--test/data/icalendar/import-rrule-count-daily-long.diary-european1
-rw-r--r--test/data/icalendar/import-rrule-count-daily-long.diary-iso1
-rw-r--r--test/data/icalendar/import-rrule-count-daily-long.ics11
-rw-r--r--test/data/icalendar/import-rrule-count-daily-short.diary-american1
-rw-r--r--test/data/icalendar/import-rrule-count-daily-short.diary-european1
-rw-r--r--test/data/icalendar/import-rrule-count-daily-short.diary-iso1
-rw-r--r--test/data/icalendar/import-rrule-count-daily-short.ics11
-rw-r--r--test/data/icalendar/import-rrule-count-every-second-month.diary-american1
-rw-r--r--test/data/icalendar/import-rrule-count-every-second-month.diary-european1
-rw-r--r--test/data/icalendar/import-rrule-count-every-second-month.diary-iso1
-rw-r--r--test/data/icalendar/import-rrule-count-every-second-month.ics11
-rw-r--r--test/data/icalendar/import-rrule-count-every-second-year.diary-american1
-rw-r--r--test/data/icalendar/import-rrule-count-every-second-year.diary-european1
-rw-r--r--test/data/icalendar/import-rrule-count-every-second-year.diary-iso1
-rw-r--r--test/data/icalendar/import-rrule-count-every-second-year.ics10
-rw-r--r--test/data/icalendar/import-rrule-count-monthly.diary-american1
-rw-r--r--test/data/icalendar/import-rrule-count-monthly.diary-european1
-rw-r--r--test/data/icalendar/import-rrule-count-monthly.diary-iso1
-rw-r--r--test/data/icalendar/import-rrule-count-monthly.ics11
-rw-r--r--test/data/icalendar/import-rrule-count-yearly.diary-american1
-rw-r--r--test/data/icalendar/import-rrule-count-yearly.diary-european1
-rw-r--r--test/data/icalendar/import-rrule-count-yearly.diary-iso1
-rw-r--r--test/data/icalendar/import-rrule-count-yearly.ics11
-rw-r--r--test/data/icalendar/import-rrule-daily-two-day.diary-american1
-rw-r--r--test/data/icalendar/import-rrule-daily-two-day.diary-european1
-rw-r--r--test/data/icalendar/import-rrule-daily-two-day.diary-iso1
-rw-r--r--test/data/icalendar/import-rrule-daily-two-day.ics10
-rw-r--r--test/data/icalendar/import-rrule-daily-with-exceptions.diary-american1
-rw-r--r--test/data/icalendar/import-rrule-daily-with-exceptions.diary-european1
-rw-r--r--test/data/icalendar/import-rrule-daily-with-exceptions.diary-iso1
-rw-r--r--test/data/icalendar/import-rrule-daily-with-exceptions.ics12
-rw-r--r--test/data/icalendar/import-rrule-daily.diary-american1
-rw-r--r--test/data/icalendar/import-rrule-daily.diary-european1
-rw-r--r--test/data/icalendar/import-rrule-daily.diary-iso1
-rw-r--r--test/data/icalendar/import-rrule-daily.ics11
-rw-r--r--test/data/icalendar/import-rrule-monthly-no-end.diary-american1
-rw-r--r--test/data/icalendar/import-rrule-monthly-no-end.diary-european1
-rw-r--r--test/data/icalendar/import-rrule-monthly-no-end.diary-iso1
-rw-r--r--test/data/icalendar/import-rrule-monthly-no-end.ics11
-rw-r--r--test/data/icalendar/import-rrule-monthly-with-end.diary-american1
-rw-r--r--test/data/icalendar/import-rrule-monthly-with-end.diary-european1
-rw-r--r--test/data/icalendar/import-rrule-monthly-with-end.diary-iso1
-rw-r--r--test/data/icalendar/import-rrule-monthly-with-end.ics11
-rw-r--r--test/data/icalendar/import-rrule-weekly.diary-american1
-rw-r--r--test/data/icalendar/import-rrule-weekly.diary-european1
-rw-r--r--test/data/icalendar/import-rrule-weekly.diary-iso1
-rw-r--r--test/data/icalendar/import-rrule-weekly.ics11
-rw-r--r--test/data/icalendar/import-rrule-yearly.diary-american1
-rw-r--r--test/data/icalendar/import-rrule-yearly.diary-european1
-rw-r--r--test/data/icalendar/import-rrule-yearly.diary-iso1
-rw-r--r--test/data/icalendar/import-rrule-yearly.ics11
-rw-r--r--test/data/icalendar/import-with-timezone.diary-iso2
-rw-r--r--test/data/icalendar/import-with-timezone.ics27
-rw-r--r--test/data/icalendar/import-with-uid.diary-american2
-rw-r--r--test/data/icalendar/import-with-uid.diary-european2
-rw-r--r--test/data/icalendar/import-with-uid.diary-iso2
-rw-r--r--test/data/icalendar/import-with-uid.ics10
141 files changed, 1107 insertions, 0 deletions
diff --git a/test/data/icalendar/import-bug-11473.diary-european b/test/data/icalendar/import-bug-11473.diary-european
new file mode 100644
index 00000000000..97348ae0498
--- /dev/null
+++ b/test/data/icalendar/import-bug-11473.diary-european
@@ -0,0 +1,10 @@
1&15/5/2012 15:00-15:30 Query
2 Desc:
3 Whassup?
4
5
6 Location: phone
7 Organizer: MAILTO:a.luser@foo.com
8 Status: CONFIRMED
9 Class: PUBLIC
10 UID: 040000008200E00074C5B7101A82E0080000000020FFAED0CFEFCC01000000000000000010000000575268034ECDB649A15349B1BF240F15
diff --git a/test/data/icalendar/import-bug-11473.ics b/test/data/icalendar/import-bug-11473.ics
new file mode 100644
index 00000000000..bc3a6c69fb7
--- /dev/null
+++ b/test/data/icalendar/import-bug-11473.ics
@@ -0,0 +1,54 @@
1BEGIN:VCALENDAR
2METHOD:REQUEST
3PRODID:Microsoft Exchange Server 2007
4VERSION:2.0
5BEGIN:VTIMEZONE
6TZID:(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna
7BEGIN:STANDARD
8DTSTART:16010101T030000
9TZOFFSETFROM:+0200
10TZOFFSETTO:+0100
11RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=10
12END:STANDARD
13BEGIN:DAYLIGHT
14DTSTART:16010101T020000
15TZOFFSETFROM:+0100
16TZOFFSETTO:+0200
17RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=3
18END:DAYLIGHT
19END:VTIMEZONE
20BEGIN:VEVENT
21ORGANIZER;CN="A. Luser":MAILTO:a.luser@foo.com
22ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN="Luser, Oth
23 er":MAILTO:other.luser@foo.com
24DESCRIPTION;LANGUAGE=en-US:\nWhassup?\n\n
25SUMMARY;LANGUAGE=en-US:Query
26DTSTART;TZID="(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna"
27 :20120515T150000
28DTEND;TZID="(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna":2
29 0120515T153000
30UID:040000008200E00074C5B7101A82E0080000000020FFAED0CFEFCC01000000000000000
31 010000000575268034ECDB649A15349B1BF240F15
32RECURRENCE-ID;TZID="(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, V
33 ienna":20120515T170000
34CLASS:PUBLIC
35PRIORITY:5
36DTSTAMP:20120514T153645Z
37TRANSP:OPAQUE
38STATUS:CONFIRMED
39SEQUENCE:15
40LOCATION;LANGUAGE=en-US:phone
41X-MICROSOFT-CDO-APPT-SEQUENCE:15
42X-MICROSOFT-CDO-OWNERAPPTID:1907632092
43X-MICROSOFT-CDO-BUSYSTATUS:TENTATIVE
44X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
45X-MICROSOFT-CDO-ALLDAYEVENT:FALSE
46X-MICROSOFT-CDO-IMPORTANCE:1
47X-MICROSOFT-CDO-INSTTYPE:3
48BEGIN:VALARM
49ACTION:DISPLAY
50DESCRIPTION:REMINDER
51TRIGGER;RELATED=START:-PT15M
52END:VALARM
53END:VEVENT
54END:VCALENDAR \ No newline at end of file
diff --git a/test/data/icalendar/import-bug-22092.diary-american b/test/data/icalendar/import-bug-22092.diary-american
new file mode 100644
index 00000000000..392345fe0a2
--- /dev/null
+++ b/test/data/icalendar/import-bug-22092.diary-american
@@ -0,0 +1,6 @@
1&12/8/2014 18:30-22:55 Norwegian til Tromsoe-Langnes -
2 Desc: Fly med Norwegian, reservasjon. Fra Stavanger til Tromsø 8. des 2014 18:30, DY545Fly med Norwegian, reservasjon . Fra Stavanger til Tromsø 8. des 2014 21:00, DY390
3 Location: Stavanger-Sola
4 Organizer: noreply@norwegian.no
5 Class: PUBLIC
6 UID: RFCALITEM1
diff --git a/test/data/icalendar/import-bug-22092.diary-european b/test/data/icalendar/import-bug-22092.diary-european
new file mode 100644
index 00000000000..6a64cf6a8e9
--- /dev/null
+++ b/test/data/icalendar/import-bug-22092.diary-european
@@ -0,0 +1,6 @@
1&8/12/2014 18:30-22:55 Norwegian til Tromsoe-Langnes -
2 Desc: Fly med Norwegian, reservasjon. Fra Stavanger til Tromsø 8. des 2014 18:30, DY545Fly med Norwegian, reservasjon . Fra Stavanger til Tromsø 8. des 2014 21:00, DY390
3 Location: Stavanger-Sola
4 Organizer: noreply@norwegian.no
5 Class: PUBLIC
6 UID: RFCALITEM1
diff --git a/test/data/icalendar/import-bug-22092.diary-iso b/test/data/icalendar/import-bug-22092.diary-iso
new file mode 100644
index 00000000000..e0fadbf94dc
--- /dev/null
+++ b/test/data/icalendar/import-bug-22092.diary-iso
@@ -0,0 +1,6 @@
1&2014/12/8 18:30-22:55 Norwegian til Tromsoe-Langnes -
2 Desc: Fly med Norwegian, reservasjon. Fra Stavanger til Tromsø 8. des 2014 18:30, DY545Fly med Norwegian, reservasjon . Fra Stavanger til Tromsø 8. des 2014 21:00, DY390
3 Location: Stavanger-Sola
4 Organizer: noreply@norwegian.no
5 Class: PUBLIC
6 UID: RFCALITEM1
diff --git a/test/data/icalendar/import-bug-22092.ics b/test/data/icalendar/import-bug-22092.ics
new file mode 100644
index 00000000000..4a4c679da9c
--- /dev/null
+++ b/test/data/icalendar/import-bug-22092.ics
@@ -0,0 +1,30 @@
1BEGIN:VCALENDAR
2PRODID:-//www.norwegian.no//iCalendar MIMEDIR//EN
3VERSION:2.0
4METHOD:REQUEST
5BEGIN:VEVENT
6UID:RFCALITEM1
7SEQUENCE:1512040950
8DTSTAMP:20141204T095043Z
9ORGANIZER:noreply@norwegian.no
10DTSTART:20141208T173000Z
11
12DTEND:20141208T215500Z
13
14LOCATION:Stavanger-Sola
15
16DESCRIPTION:Fly med Norwegian, reservasjon. Fra Stavanger til Tromsø 8. des 2014 18:30, DY545Fly med Norwegian, reservasjon . Fra Stavanger til Tromsø 8. des 2014 21:00, DY390
17
18X-ALT-DESC;FMTTYPE=text/html:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"><html><head><META NAME="Generator" CONTENT="MS Exchange Server version 08.00.0681.000"><title></title></head><body><b><font face="Calibri" size="3">Reisereferanse</p></body></html>
19SUMMARY:Norwegian til Tromsoe-Langnes -
20
21CATEGORIES:Appointment
22
23
24PRIORITY:5
25
26CLASS:PUBLIC
27
28TRANSP:OPAQUE
29END:VEVENT
30END:VCALENDAR
diff --git a/test/data/icalendar/import-bug-24199.diary-american b/test/data/icalendar/import-bug-24199.diary-american
new file mode 100644
index 00000000000..b3308f1fcfa
--- /dev/null
+++ b/test/data/icalendar/import-bug-24199.diary-american
@@ -0,0 +1,5 @@
1&%%(and (not (diary-date 1 6 2016)) (not (diary-date 2 3 2016)) (not (diary-date 3 2 2016)) (not (diary-date 5 4 2016)) (not (diary-date 6 1 2016)) (diary-float t 3 1) (diary-block 12 2 2015 1 1 9999)) 12:46-16:00 Summary
2 Desc: Desc
3 Location: Loc
4 Class: DEFAULT
5 UID: 9188710a-08a7-4061-bae3-d4cf4972599a
diff --git a/test/data/icalendar/import-bug-24199.diary-european b/test/data/icalendar/import-bug-24199.diary-european
new file mode 100644
index 00000000000..acba714b527
--- /dev/null
+++ b/test/data/icalendar/import-bug-24199.diary-european
@@ -0,0 +1,5 @@
1&%%(and (not (diary-date 6 1 2016)) (not (diary-date 3 2 2016)) (not (diary-date 2 3 2016)) (not (diary-date 4 5 2016)) (not (diary-date 1 6 2016)) (diary-float t 3 1) (diary-block 2 12 2015 1 1 9999)) 12:46-16:00 Summary
2 Desc: Desc
3 Location: Loc
4 Class: DEFAULT
5 UID: 9188710a-08a7-4061-bae3-d4cf4972599a
diff --git a/test/data/icalendar/import-bug-24199.diary-iso b/test/data/icalendar/import-bug-24199.diary-iso
new file mode 100644
index 00000000000..2c18395dea8
--- /dev/null
+++ b/test/data/icalendar/import-bug-24199.diary-iso
@@ -0,0 +1,5 @@
1&%%(and (not (diary-date 2016 1 6)) (not (diary-date 2016 2 3)) (not (diary-date 2016 3 2)) (not (diary-date 2016 5 4)) (not (diary-date 2016 6 1)) (diary-float t 3 1) (diary-block 2015 12 2 9999 1 1)) 12:46-16:00 Summary
2 Desc: Desc
3 Location: Loc
4 Class: DEFAULT
5 UID: 9188710a-08a7-4061-bae3-d4cf4972599a
diff --git a/test/data/icalendar/import-bug-24199.ics b/test/data/icalendar/import-bug-24199.ics
new file mode 100644
index 00000000000..a307c2da3ca
--- /dev/null
+++ b/test/data/icalendar/import-bug-24199.ics
@@ -0,0 +1,25 @@
1BEGIN:VCALENDAR
2PRODID:-//Emacs//NONSGML icalendar.el//EN
3VERSION:2.0
4BEGIN:VEVENT
5SUMMARY:Summary
6DESCRIPTION:Desc
7LOCATION:Loc
8DTSTART:20151202T124600
9DTEND:20151202T160000
10RRULE:FREQ=MONTHLY;BYDAY=1WE;INTERVAL=1
11EXDATE:20160106T114600Z
12EXDATE:20160203T114600Z
13EXDATE:20160302T114600Z
14EXDATE:20160504T104600Z
15EXDATE:20160601T104600Z
16CLASS:DEFAULT
17TRANSP:OPAQUE
18BEGIN:VALARM
19ACTION:DISPLAY
20TRIGGER;VALUE=DURATION:-PT3H
21END:VALARM
22LAST-MODIFIED:20160805T191040Z
23UID:9188710a-08a7-4061-bae3-d4cf4972599a
24END:VEVENT
25END:VCALENDAR
diff --git a/test/data/icalendar/import-bug-33277.diary-american b/test/data/icalendar/import-bug-33277.diary-american
new file mode 100644
index 00000000000..c546fa9a97c
--- /dev/null
+++ b/test/data/icalendar/import-bug-33277.diary-american
@@ -0,0 +1 @@
&11/5/2018 21:00 event with same start/end time
diff --git a/test/data/icalendar/import-bug-33277.diary-european b/test/data/icalendar/import-bug-33277.diary-european
new file mode 100644
index 00000000000..28e53960536
--- /dev/null
+++ b/test/data/icalendar/import-bug-33277.diary-european
@@ -0,0 +1 @@
&5/11/2018 21:00 event with same start/end time
diff --git a/test/data/icalendar/import-bug-33277.diary-iso b/test/data/icalendar/import-bug-33277.diary-iso
new file mode 100644
index 00000000000..faa7aeafeb5
--- /dev/null
+++ b/test/data/icalendar/import-bug-33277.diary-iso
@@ -0,0 +1 @@
&2018/11/5 21:00 event with same start/end time
diff --git a/test/data/icalendar/import-bug-33277.ics b/test/data/icalendar/import-bug-33277.ics
new file mode 100644
index 00000000000..a4122a28007
--- /dev/null
+++ b/test/data/icalendar/import-bug-33277.ics
@@ -0,0 +1,15 @@
1BEGIN:VCALENDAR
2PRODID:-//Emacs//NONSGML icalendar.el//EN
3VERSION:2.0
4BEGIN:VEVENT
5DTSTART:20181105T200000Z
6DTSTAMP:20181105T181652Z
7DESCRIPTION:
8LAST-MODIFIED:20181105T181646Z
9LOCATION:
10SEQUENCE:0
11SUMMARY:event with same start/end time
12TRANSP:OPAQUE
13END:VEVENT
14END:VCALENDAR
15
diff --git a/test/data/icalendar/import-bug-6766.diary-american b/test/data/icalendar/import-bug-6766.diary-american
new file mode 100644
index 00000000000..30deea9911a
--- /dev/null
+++ b/test/data/icalendar/import-bug-6766.diary-american
@@ -0,0 +1,7 @@
1&%%(and (memq (calendar-day-of-week date) '(1 3 4 5)) (diary-cyclic 1 4 21 2010)) 11:30-12:00 Scrum
2 Status: CONFIRMED
3 Class: PUBLIC
4 UID: 8814e3f9-7482-408f-996c-3bfe486a1262
5&%%(and (memq (calendar-day-of-week date) '(2 4)) (diary-cyclic 1 4 22 2010)) Tues + Thurs thinking
6 Class: PUBLIC
7 UID: 8814e3f9-7482-408f-996c-3bfe486a1263
diff --git a/test/data/icalendar/import-bug-6766.diary-european b/test/data/icalendar/import-bug-6766.diary-european
new file mode 100644
index 00000000000..ba16c02305a
--- /dev/null
+++ b/test/data/icalendar/import-bug-6766.diary-european
@@ -0,0 +1,7 @@
1&%%(and (memq (calendar-day-of-week date) '(1 3 4 5)) (diary-cyclic 1 21 4 2010)) 11:30-12:00 Scrum
2 Status: CONFIRMED
3 Class: PUBLIC
4 UID: 8814e3f9-7482-408f-996c-3bfe486a1262
5&%%(and (memq (calendar-day-of-week date) '(2 4)) (diary-cyclic 1 22 4 2010)) Tues + Thurs thinking
6 Class: PUBLIC
7 UID: 8814e3f9-7482-408f-996c-3bfe486a1263
diff --git a/test/data/icalendar/import-bug-6766.diary-iso b/test/data/icalendar/import-bug-6766.diary-iso
new file mode 100644
index 00000000000..7794e586f37
--- /dev/null
+++ b/test/data/icalendar/import-bug-6766.diary-iso
@@ -0,0 +1,7 @@
1&%%(and (memq (calendar-day-of-week date) '(1 3 4 5)) (diary-cyclic 1 2010 4 21)) 11:30-12:00 Scrum
2 Status: CONFIRMED
3 Class: PUBLIC
4 UID: 8814e3f9-7482-408f-996c-3bfe486a1262
5&%%(and (memq (calendar-day-of-week date) '(2 4)) (diary-cyclic 1 2010 4 22)) Tues + Thurs thinking
6 Class: PUBLIC
7 UID: 8814e3f9-7482-408f-996c-3bfe486a1263
diff --git a/test/data/icalendar/import-bug-6766.ics b/test/data/icalendar/import-bug-6766.ics
new file mode 100644
index 00000000000..451391be025
--- /dev/null
+++ b/test/data/icalendar/import-bug-6766.ics
@@ -0,0 +1,28 @@
1BEGIN:VCALENDAR
2PRODID:-//Emacs//NONSGML icalendar.el//EN
3VERSION:2.0
4BEGIN:VEVENT
5CLASS:PUBLIC
6DTEND;TZID=America/New_York:20100421T120000
7DTSTAMP:20100525T141214Z
8DTSTART;TZID=America/New_York:20100421T113000
9RRULE:FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,WE,TH,FR
10SEQUENCE:1
11STATUS:CONFIRMED
12SUMMARY:Scrum
13TRANSP:OPAQUE
14UID:8814e3f9-7482-408f-996c-3bfe486a1262
15END:VEVENT
16BEGIN:VEVENT
17CLASS:PUBLIC
18DTSTAMP:20100525T141214Z
19DTSTART;VALUE=DATE:20100422
20DTEND;VALUE=DATE:20100423
21RRULE:FREQ=WEEKLY;INTERVAL=1;BYDAY=TU,TH
22SEQUENCE:1
23SUMMARY:Tues + Thurs thinking
24TRANSP:OPAQUE
25UID:8814e3f9-7482-408f-996c-3bfe486a1263
26END:VEVENT
27END:VCALENDAR
28
diff --git a/test/data/icalendar/import-duration-2.diary-american b/test/data/icalendar/import-duration-2.diary-american
new file mode 100644
index 00000000000..56f41d6ad9e
--- /dev/null
+++ b/test/data/icalendar/import-duration-2.diary-american
@@ -0,0 +1,3 @@
1&%%(and (diary-cyclic 1 12 21 2001) (diary-block 12 21 2001 12 29 2001)) Urlaub
2 Class: PUBLIC
3 UID: 20041127T183329Z-18215-1001-4536-49109@andromeda
diff --git a/test/data/icalendar/import-duration-2.diary-european b/test/data/icalendar/import-duration-2.diary-european
new file mode 100644
index 00000000000..999102ab6b4
--- /dev/null
+++ b/test/data/icalendar/import-duration-2.diary-european
@@ -0,0 +1,3 @@
1&%%(and (diary-cyclic 1 21 12 2001) (diary-block 21 12 2001 29 12 2001)) Urlaub
2 Class: PUBLIC
3 UID: 20041127T183329Z-18215-1001-4536-49109@andromeda
diff --git a/test/data/icalendar/import-duration-2.diary-iso b/test/data/icalendar/import-duration-2.diary-iso
new file mode 100644
index 00000000000..393937e6cd9
--- /dev/null
+++ b/test/data/icalendar/import-duration-2.diary-iso
@@ -0,0 +1,3 @@
1&%%(and (diary-cyclic 1 2001 12 21) (diary-block 2001 12 21 2001 12 29)) Urlaub
2 Class: PUBLIC
3 UID: 20041127T183329Z-18215-1001-4536-49109@andromeda
diff --git a/test/data/icalendar/import-duration-2.ics b/test/data/icalendar/import-duration-2.ics
new file mode 100644
index 00000000000..eb8a03ba36f
--- /dev/null
+++ b/test/data/icalendar/import-duration-2.ics
@@ -0,0 +1,17 @@
1BEGIN:VCALENDAR
2PRODID:-//Emacs//NONSGML icalendar.el//EN
3VERSION:2.0
4BEGIN:VEVENT
5UID:20041127T183329Z-18215-1001-4536-49109@andromeda
6DTSTAMP:20041127T183315Z
7LAST-MODIFIED:20041127T183329
8SUMMARY:Urlaub
9DTSTART;VALUE=DATE:20011221
10DTEND;VALUE=DATE:20011221
11RRULE:FREQ=DAILY;UNTIL=20011229;INTERVAL=1;WKST=SU
12CLASS:PUBLIC
13SEQUENCE:1
14CREATED:20041127T183329
15END:VEVENT
16END:VCALENDAR
17
diff --git a/test/data/icalendar/import-duration.diary-american b/test/data/icalendar/import-duration.diary-american
new file mode 100644
index 00000000000..268736a8cd0
--- /dev/null
+++ b/test/data/icalendar/import-duration.diary-american
@@ -0,0 +1 @@
&%%(and (diary-block 2 17 2005 2 23 2005)) duration
diff --git a/test/data/icalendar/import-duration.diary-european b/test/data/icalendar/import-duration.diary-european
new file mode 100644
index 00000000000..7d852ddcd3c
--- /dev/null
+++ b/test/data/icalendar/import-duration.diary-european
@@ -0,0 +1 @@
&%%(and (diary-block 17 2 2005 23 2 2005)) duration
diff --git a/test/data/icalendar/import-duration.diary-iso b/test/data/icalendar/import-duration.diary-iso
new file mode 100644
index 00000000000..5d3a714284e
--- /dev/null
+++ b/test/data/icalendar/import-duration.diary-iso
@@ -0,0 +1 @@
&%%(and (diary-block 2005 2 17 2005 2 23)) duration
diff --git a/test/data/icalendar/import-duration.ics b/test/data/icalendar/import-duration.ics
new file mode 100644
index 00000000000..67f5c73571b
--- /dev/null
+++ b/test/data/icalendar/import-duration.ics
@@ -0,0 +1,10 @@
1BEGIN:VCALENDAR
2PRODID:-//Emacs//NONSGML icalendar.el//EN
3VERSION:2.0
4BEGIN:VEVENT
5DTSTART;VALUE=DATE:20050217
6SUMMARY:duration
7DURATION:P7D
8END:VEVENT
9END:VCALENDAR
10
diff --git a/test/data/icalendar/import-multiple-vcalendars.diary-american b/test/data/icalendar/import-multiple-vcalendars.diary-american
new file mode 100644
index 00000000000..d1b1992a022
--- /dev/null
+++ b/test/data/icalendar/import-multiple-vcalendars.diary-american
@@ -0,0 +1,4 @@
1&7/23/2011 event-1
2&7/24/2011 event-2
3&7/25/2011 event-3a
4&7/25/2011 event-3b
diff --git a/test/data/icalendar/import-multiple-vcalendars.diary-european b/test/data/icalendar/import-multiple-vcalendars.diary-european
new file mode 100644
index 00000000000..f068354220c
--- /dev/null
+++ b/test/data/icalendar/import-multiple-vcalendars.diary-european
@@ -0,0 +1,4 @@
1&23/7/2011 event-1
2&24/7/2011 event-2
3&25/7/2011 event-3a
4&25/7/2011 event-3b
diff --git a/test/data/icalendar/import-multiple-vcalendars.diary-iso b/test/data/icalendar/import-multiple-vcalendars.diary-iso
new file mode 100644
index 00000000000..5685e4708a7
--- /dev/null
+++ b/test/data/icalendar/import-multiple-vcalendars.diary-iso
@@ -0,0 +1,4 @@
1&2011/7/23 event-1
2&2011/7/24 event-2
3&2011/7/25 event-3a
4&2011/7/25 event-3b
diff --git a/test/data/icalendar/import-multiple-vcalendars.ics b/test/data/icalendar/import-multiple-vcalendars.ics
new file mode 100644
index 00000000000..69a02c09b1b
--- /dev/null
+++ b/test/data/icalendar/import-multiple-vcalendars.ics
@@ -0,0 +1,21 @@
1BEGIN:VCALENDAR
2PRODID:-//Emacs//NONSGML icalendar.el//EN
3VERSION:2.0
4BEGIN:VEVENT
5DTSTART;VALUE=DATE:20110723
6SUMMARY:event-1
7END:VEVENT
8BEGIN:VEVENT
9DTSTART;VALUE=DATE:20110724
10SUMMARY:event-2
11END:VEVENT
12BEGIN:VEVENT
13DTSTART;VALUE=DATE:20110725
14SUMMARY:event-3a
15END:VEVENT
16BEGIN:VEVENT
17DTSTART;VALUE=DATE:20110725
18SUMMARY:event-3b
19END:VEVENT
20END:VCALENDAR
21
diff --git a/test/data/icalendar/import-non-recurring-1.diary-american b/test/data/icalendar/import-non-recurring-1.diary-american
new file mode 100644
index 00000000000..780e3a8ce64
--- /dev/null
+++ b/test/data/icalendar/import-non-recurring-1.diary-american
@@ -0,0 +1 @@
&9/19/2003 09:00-11:30 non-recurring
diff --git a/test/data/icalendar/import-non-recurring-1.diary-european b/test/data/icalendar/import-non-recurring-1.diary-european
new file mode 100644
index 00000000000..7e0cd21b784
--- /dev/null
+++ b/test/data/icalendar/import-non-recurring-1.diary-european
@@ -0,0 +1 @@
&19/9/2003 09:00-11:30 non-recurring
diff --git a/test/data/icalendar/import-non-recurring-1.diary-iso b/test/data/icalendar/import-non-recurring-1.diary-iso
new file mode 100644
index 00000000000..c7311286619
--- /dev/null
+++ b/test/data/icalendar/import-non-recurring-1.diary-iso
@@ -0,0 +1 @@
&2003/9/19 09:00-11:30 non-recurring
diff --git a/test/data/icalendar/import-non-recurring-1.ics b/test/data/icalendar/import-non-recurring-1.ics
new file mode 100644
index 00000000000..cd471efc861
--- /dev/null
+++ b/test/data/icalendar/import-non-recurring-1.ics
@@ -0,0 +1,10 @@
1BEGIN:VCALENDAR
2PRODID:-//Emacs//NONSGML icalendar.el//EN
3VERSION:2.0
4BEGIN:VEVENT
5SUMMARY:non-recurring
6DTSTART;VALUE=DATE-TIME:20030919T090000
7DTEND;VALUE=DATE-TIME:20030919T113000
8END:VEVENT
9END:VCALENDAR
10
diff --git a/test/data/icalendar/import-non-recurring-all-day.diary-american b/test/data/icalendar/import-non-recurring-all-day.diary-american
new file mode 100644
index 00000000000..1d4bb6a337e
--- /dev/null
+++ b/test/data/icalendar/import-non-recurring-all-day.diary-american
@@ -0,0 +1 @@
&9/19/2003 non-recurring allday
diff --git a/test/data/icalendar/import-non-recurring-all-day.diary-european b/test/data/icalendar/import-non-recurring-all-day.diary-european
new file mode 100644
index 00000000000..b56c7f4e17f
--- /dev/null
+++ b/test/data/icalendar/import-non-recurring-all-day.diary-european
@@ -0,0 +1 @@
&19/9/2003 non-recurring allday
diff --git a/test/data/icalendar/import-non-recurring-all-day.diary-iso b/test/data/icalendar/import-non-recurring-all-day.diary-iso
new file mode 100644
index 00000000000..f1c70ab34c3
--- /dev/null
+++ b/test/data/icalendar/import-non-recurring-all-day.diary-iso
@@ -0,0 +1 @@
&2003/9/19 non-recurring allday
diff --git a/test/data/icalendar/import-non-recurring-all-day.ics b/test/data/icalendar/import-non-recurring-all-day.ics
new file mode 100644
index 00000000000..4efa8ffa133
--- /dev/null
+++ b/test/data/icalendar/import-non-recurring-all-day.ics
@@ -0,0 +1,9 @@
1BEGIN:VCALENDAR
2PRODID:-//Emacs//NONSGML icalendar.el//EN
3VERSION:2.0
4BEGIN:VEVENT
5SUMMARY:non-recurring allday
6DTSTART;VALUE=DATE-TIME:20030919
7END:VEVENT
8END:VCALENDAR
9
diff --git a/test/data/icalendar/import-non-recurring-another-example.diary-american b/test/data/icalendar/import-non-recurring-another-example.diary-american
new file mode 100644
index 00000000000..2eb8c0ab686
--- /dev/null
+++ b/test/data/icalendar/import-non-recurring-another-example.diary-american
@@ -0,0 +1,4 @@
1&11/23/2004 14:45-15:45 another example
2 Status: TENTATIVE
3 Class: PRIVATE
4 UID: 6161a312-3902-11d9-b512-f764153bb28b
diff --git a/test/data/icalendar/import-non-recurring-another-example.diary-european b/test/data/icalendar/import-non-recurring-another-example.diary-european
new file mode 100644
index 00000000000..394eae8bb77
--- /dev/null
+++ b/test/data/icalendar/import-non-recurring-another-example.diary-european
@@ -0,0 +1,4 @@
1&23/11/2004 14:45-15:45 another example
2 Status: TENTATIVE
3 Class: PRIVATE
4 UID: 6161a312-3902-11d9-b512-f764153bb28b
diff --git a/test/data/icalendar/import-non-recurring-another-example.diary-iso b/test/data/icalendar/import-non-recurring-another-example.diary-iso
new file mode 100644
index 00000000000..5e8bdf417d5
--- /dev/null
+++ b/test/data/icalendar/import-non-recurring-another-example.diary-iso
@@ -0,0 +1,4 @@
1&2004/11/23 14:45-15:45 another example
2 Status: TENTATIVE
3 Class: PRIVATE
4 UID: 6161a312-3902-11d9-b512-f764153bb28b
diff --git a/test/data/icalendar/import-non-recurring-another-example.ics b/test/data/icalendar/import-non-recurring-another-example.ics
new file mode 100644
index 00000000000..b145e418791
--- /dev/null
+++ b/test/data/icalendar/import-non-recurring-another-example.ics
@@ -0,0 +1,23 @@
1BEGIN:VCALENDAR
2PRODID:-//Emacs//NONSGML icalendar.el//EN
3VERSION:2.0
4BEGIN:VEVENT
5UID
6 :6161a312-3902-11d9-b512-f764153bb28b
7SUMMARY
8 :another example
9STATUS
10 :TENTATIVE
11CLASS
12 :PRIVATE
13X-MOZILLA-ALARM-DEFAULT-LENGTH
14 :0
15DTSTART
16 :20041123T144500
17DTEND
18 :20041123T154500
19DTSTAMP
20 :20041118T013641Z
21END:VEVENT
22END:VCALENDAR
23
diff --git a/test/data/icalendar/import-non-recurring-block.diary-american b/test/data/icalendar/import-non-recurring-block.diary-american
new file mode 100644
index 00000000000..b22234229cf
--- /dev/null
+++ b/test/data/icalendar/import-non-recurring-block.diary-american
@@ -0,0 +1,4 @@
1&%%(and (diary-block 7 19 2004 8 27 2004)) Sommerferien
2 Status: TENTATIVE
3 Class: PRIVATE
4 UID: 748f2da0-0d9b-11d8-97af-b4ec8686ea61
diff --git a/test/data/icalendar/import-non-recurring-block.diary-european b/test/data/icalendar/import-non-recurring-block.diary-european
new file mode 100644
index 00000000000..8043482442f
--- /dev/null
+++ b/test/data/icalendar/import-non-recurring-block.diary-european
@@ -0,0 +1,4 @@
1&%%(and (diary-block 19 7 2004 27 8 2004)) Sommerferien
2 Status: TENTATIVE
3 Class: PRIVATE
4 UID: 748f2da0-0d9b-11d8-97af-b4ec8686ea61
diff --git a/test/data/icalendar/import-non-recurring-block.diary-iso b/test/data/icalendar/import-non-recurring-block.diary-iso
new file mode 100644
index 00000000000..e0f1896114f
--- /dev/null
+++ b/test/data/icalendar/import-non-recurring-block.diary-iso
@@ -0,0 +1,4 @@
1&%%(and (diary-block 2004 7 19 2004 8 27)) Sommerferien
2 Status: TENTATIVE
3 Class: PRIVATE
4 UID: 748f2da0-0d9b-11d8-97af-b4ec8686ea61
diff --git a/test/data/icalendar/import-non-recurring-block.ics b/test/data/icalendar/import-non-recurring-block.ics
new file mode 100644
index 00000000000..0c52ba3d66a
--- /dev/null
+++ b/test/data/icalendar/import-non-recurring-block.ics
@@ -0,0 +1,16 @@
1BEGIN:VCALENDAR
2PRODID:-//Emacs//NONSGML icalendar.el//EN
3VERSION:2.0
4BEGIN:VEVENT
5UID:748f2da0-0d9b-11d8-97af-b4ec8686ea61
6SUMMARY:Sommerferien
7STATUS:TENTATIVE
8CLASS:PRIVATE
9X-MOZILLA-ALARM-DEFAULT-UNITS:Minuten
10X-MOZILLA-RECUR-DEFAULT-INTERVAL:0
11DTSTART;VALUE=DATE:20040719
12DTEND;VALUE=DATE:20040828
13DTSTAMP:20031103T011641Z
14END:VEVENT
15END:VCALENDAR
16
diff --git a/test/data/icalendar/import-non-recurring-folded-summary.diary-american b/test/data/icalendar/import-non-recurring-folded-summary.diary-american
new file mode 100644
index 00000000000..2954d0c4fd1
--- /dev/null
+++ b/test/data/icalendar/import-non-recurring-folded-summary.diary-american
@@ -0,0 +1,4 @@
1&11/23/2004 14:00-14:30 folded summary
2 Status: TENTATIVE
3 Class: PRIVATE
4 UID: 04979712-3902-11d9-93dd-8f9f4afe08da
diff --git a/test/data/icalendar/import-non-recurring-folded-summary.diary-european b/test/data/icalendar/import-non-recurring-folded-summary.diary-european
new file mode 100644
index 00000000000..7745fc811b4
--- /dev/null
+++ b/test/data/icalendar/import-non-recurring-folded-summary.diary-european
@@ -0,0 +1,4 @@
1&23/11/2004 14:00-14:30 folded summary
2 Status: TENTATIVE
3 Class: PRIVATE
4 UID: 04979712-3902-11d9-93dd-8f9f4afe08da
diff --git a/test/data/icalendar/import-non-recurring-folded-summary.diary-iso b/test/data/icalendar/import-non-recurring-folded-summary.diary-iso
new file mode 100644
index 00000000000..8c19a95ed2d
--- /dev/null
+++ b/test/data/icalendar/import-non-recurring-folded-summary.diary-iso
@@ -0,0 +1,4 @@
1&2004/11/23 14:00-14:30 folded summary
2 Status: TENTATIVE
3 Class: PRIVATE
4 UID: 04979712-3902-11d9-93dd-8f9f4afe08da
diff --git a/test/data/icalendar/import-non-recurring-folded-summary.ics b/test/data/icalendar/import-non-recurring-folded-summary.ics
new file mode 100644
index 00000000000..e3ecee9dae8
--- /dev/null
+++ b/test/data/icalendar/import-non-recurring-folded-summary.ics
@@ -0,0 +1,25 @@
1BEGIN:VCALENDAR
2PRODID:-//Emacs//NONSGML icalendar.el//EN
3VERSION:2.0
4BEGIN:VEVENT
5UID
6 :04979712-3902-11d9-93dd-8f9f4afe08da
7SUMMARY
8 :folded summary
9STATUS
10 :TENTATIVE
11CLASS
12 :PRIVATE
13X-MOZILLA-ALARM-DEFAULT-LENGTH
14 :0
15DTSTART
16 :20041123T140000
17DTEND
18 :20041123T143000
19DTSTAMP
20 :20041118T013430Z
21LAST-MODIFIED
22 :20041118T013640Z
23END:VEVENT
24END:VCALENDAR
25
diff --git a/test/data/icalendar/import-non-recurring-long-summary.diary-american b/test/data/icalendar/import-non-recurring-long-summary.diary-american
new file mode 100644
index 00000000000..84cd464c568
--- /dev/null
+++ b/test/data/icalendar/import-non-recurring-long-summary.diary-american
@@ -0,0 +1 @@
&9/19/2003 long summary
diff --git a/test/data/icalendar/import-non-recurring-long-summary.diary-european b/test/data/icalendar/import-non-recurring-long-summary.diary-european
new file mode 100644
index 00000000000..5d6524202c3
--- /dev/null
+++ b/test/data/icalendar/import-non-recurring-long-summary.diary-european
@@ -0,0 +1 @@
&19/9/2003 long summary
diff --git a/test/data/icalendar/import-non-recurring-long-summary.diary-iso b/test/data/icalendar/import-non-recurring-long-summary.diary-iso
new file mode 100644
index 00000000000..d2300522d9a
--- /dev/null
+++ b/test/data/icalendar/import-non-recurring-long-summary.diary-iso
@@ -0,0 +1 @@
&2003/9/19 long summary
diff --git a/test/data/icalendar/import-non-recurring-long-summary.ics b/test/data/icalendar/import-non-recurring-long-summary.ics
new file mode 100644
index 00000000000..39ae02f10ca
--- /dev/null
+++ b/test/data/icalendar/import-non-recurring-long-summary.ics
@@ -0,0 +1,10 @@
1BEGIN:VCALENDAR
2PRODID:-//Emacs//NONSGML icalendar.el//EN
3VERSION:2.0
4BEGIN:VEVENT
5SUMMARY:long
6 summary
7DTSTART;VALUE=DATE:20030919
8END:VEVENT
9END:VCALENDAR
10
diff --git a/test/data/icalendar/import-real-world-2003-05-29.diary-american b/test/data/icalendar/import-real-world-2003-05-29.diary-american
new file mode 100644
index 00000000000..e6c8712d254
--- /dev/null
+++ b/test/data/icalendar/import-real-world-2003-05-29.diary-american
@@ -0,0 +1,6 @@
1&5/9/2003 07:00-12:00 On-Site Interview
2 Desc: 10:30am - Blah
3 Location: Cccc
4 Organizer: MAILTO:aaaaaaa@aaaaaaa.com
5 Status: CONFIRMED
6 UID: 040000008200E00074C5B7101A82E0080000000080B6DE661216C301000000000000000010000000DB823520692542408ED02D7023F9DFF9
diff --git a/test/data/icalendar/import-real-world-2003-05-29.diary-european b/test/data/icalendar/import-real-world-2003-05-29.diary-european
new file mode 100644
index 00000000000..cecca070a51
--- /dev/null
+++ b/test/data/icalendar/import-real-world-2003-05-29.diary-european
@@ -0,0 +1,6 @@
1&9/5/2003 07:00-12:00 On-Site Interview
2 Desc: 10:30am - Blah
3 Location: Cccc
4 Organizer: MAILTO:aaaaaaa@aaaaaaa.com
5 Status: CONFIRMED
6 UID: 040000008200E00074C5B7101A82E0080000000080B6DE661216C301000000000000000010000000DB823520692542408ED02D7023F9DFF9
diff --git a/test/data/icalendar/import-real-world-2003-05-29.ics b/test/data/icalendar/import-real-world-2003-05-29.ics
new file mode 100644
index 00000000000..decc8df5451
--- /dev/null
+++ b/test/data/icalendar/import-real-world-2003-05-29.ics
@@ -0,0 +1,54 @@
1BEGIN:VCALENDAR
2METHOD:REQUEST
3PRODID:Microsoft CDO for Microsoft Exchange
4VERSION:2.0
5BEGIN:VTIMEZONE
6TZID:Kolkata, Chennai, Mumbai, New Delhi
7X-MICROSOFT-CDO-TZID:23
8BEGIN:STANDARD
9DTSTART:16010101T000000
10TZOFFSETFROM:+0530
11TZOFFSETTO:+0530
12END:STANDARD
13BEGIN:DAYLIGHT
14DTSTART:16010101T000000
15TZOFFSETFROM:+0530
16TZOFFSETTO:+0530
17END:DAYLIGHT
18END:VTIMEZONE
19BEGIN:VEVENT
20DTSTAMP:20030509T043439Z
21DTSTART;TZID="Kolkata, Chennai, Mumbai, New Delhi":20030509T103000
22SUMMARY:On-Site Interview
23UID:040000008200E00074C5B7101A82E0080000000080B6DE661216C301000000000000000
24 010000000DB823520692542408ED02D7023F9DFF9
25ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN="Xxxxx
26 xxx Xxxxxxxxxxxx":MAILTO:xxxxxxxx@xxxxxxx.com
27ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN="Yyyyyyy Y
28 yyyy":MAILTO:yyyyyyy@yyyyyyy.com
29ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN="Zzzz Zzzz
30 zz":MAILTO:zzzzzz@zzzzzzz.com
31ORGANIZER;CN="Aaaaaa Aaaaa":MAILTO:aaaaaaa@aaaaaaa.com
32LOCATION:Cccc
33DTEND;TZID="Kolkata, Chennai, Mumbai, New Delhi":20030509T153000
34DESCRIPTION:10:30am - Blah
35SEQUENCE:0
36PRIORITY:5
37CLASS:
38CREATED:20030509T043439Z
39LAST-MODIFIED:20030509T043459Z
40STATUS:CONFIRMED
41TRANSP:OPAQUE
42X-MICROSOFT-CDO-BUSYSTATUS:BUSY
43X-MICROSOFT-CDO-INSTTYPE:0
44X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
45X-MICROSOFT-CDO-ALLDAYEVENT:FALSE
46X-MICROSOFT-CDO-IMPORTANCE:1
47X-MICROSOFT-CDO-OWNERAPPTID:126441427
48BEGIN:VALARM
49ACTION:DISPLAY
50DESCRIPTION:REMINDER
51TRIGGER;RELATED=START:-PT00H15M00S
52END:VALARM
53END:VEVENT
54END:VCALENDAR
diff --git a/test/data/icalendar/import-real-world-2003-06-18a.diary-american b/test/data/icalendar/import-real-world-2003-06-18a.diary-american
new file mode 100644
index 00000000000..f2c914184e7
--- /dev/null
+++ b/test/data/icalendar/import-real-world-2003-06-18a.diary-american
@@ -0,0 +1,6 @@
1&6/23/2003 11:00-12:00 Dress Rehearsal for XXXX-XXXX
2 Desc: 753 Zeichen hier radiert
3 Location: 555 or TN 555-5555 ID 5555 & NochWas (see below)
4 Organizer: MAILTO:xxx@xxxxx.com
5 Status: CONFIRMED
6 UID: 040000008200E00074C5B7101A82E00800000000608AA7DA9835C3010000000000000000100000007C3A6D65EE726E40B7F3D69A23BD567E
diff --git a/test/data/icalendar/import-real-world-2003-06-18a.diary-european b/test/data/icalendar/import-real-world-2003-06-18a.diary-european
new file mode 100644
index 00000000000..89cff58af42
--- /dev/null
+++ b/test/data/icalendar/import-real-world-2003-06-18a.diary-european
@@ -0,0 +1,6 @@
1&23/6/2003 11:00-12:00 Dress Rehearsal for XXXX-XXXX
2 Desc: 753 Zeichen hier radiert
3 Location: 555 or TN 555-5555 ID 5555 & NochWas (see below)
4 Organizer: MAILTO:xxx@xxxxx.com
5 Status: CONFIRMED
6 UID: 040000008200E00074C5B7101A82E00800000000608AA7DA9835C3010000000000000000100000007C3A6D65EE726E40B7F3D69A23BD567E
diff --git a/test/data/icalendar/import-real-world-2003-06-18a.ics b/test/data/icalendar/import-real-world-2003-06-18a.ics
new file mode 100644
index 00000000000..6bb5b05af17
--- /dev/null
+++ b/test/data/icalendar/import-real-world-2003-06-18a.ics
@@ -0,0 +1,36 @@
1BEGIN:VCALENDAR
2PRODID:-//Emacs//NONSGML icalendar.el//EN
3VERSION:2.0
4BEGIN:VEVENT
5DTSTAMP:20030618T195512Z
6DTSTART;TZID="Mountain Time (US & Canada)":20030623T110000
7SUMMARY:Dress Rehearsal for XXXX-XXXX
8UID:040000008200E00074C5B7101A82E00800000000608AA7DA9835C301000000000000000
9 0100000007C3A6D65EE726E40B7F3D69A23BD567E
10ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN="AAAAA,AAA
11 AA (A-AAAAAAA,ex1)":MAILTO:aaaaa_aaaaa@aaaaa.com
12ORGANIZER;CN="ABCD,TECHTRAINING
13 (A-Americas,exgen1)":MAILTO:xxx@xxxxx.com
14LOCATION:555 or TN 555-5555 ID 5555 & NochWas (see below)
15DTEND;TZID="Mountain Time (US & Canada)":20030623T120000
16DESCRIPTION:753 Zeichen hier radiert
17SEQUENCE:0
18PRIORITY:5
19CLASS:
20CREATED:20030618T195518Z
21LAST-MODIFIED:20030618T195527Z
22STATUS:CONFIRMED
23TRANSP:OPAQUE
24X-MICROSOFT-CDO-BUSYSTATUS:BUSY
25X-MICROSOFT-CDO-INSTTYPE:0
26X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
27X-MICROSOFT-CDO-ALLDAYEVENT:FALSE
28X-MICROSOFT-CDO-IMPORTANCE:1
29X-MICROSOFT-CDO-OWNERAPPTID:1022519251
30BEGIN:VALARM
31ACTION:DISPLAY
32DESCRIPTION:REMINDER
33TRIGGER;RELATED=START:-PT00H15M00S
34END:VALARM
35END:VEVENT
36END:VCALENDAR
diff --git a/test/data/icalendar/import-real-world-2003-06-18b.diary-american b/test/data/icalendar/import-real-world-2003-06-18b.diary-american
new file mode 100644
index 00000000000..2c0774cdd83
--- /dev/null
+++ b/test/data/icalendar/import-real-world-2003-06-18b.diary-american
@@ -0,0 +1,6 @@
1&6/23/2003 17:00-18:00 Updated: Dress Rehearsal for ABC01-15
2 Desc: Viele Zeichen standen hier früher
3 Location: 123 or TN 123-1234 ID abcd & SonstWo (see below)
4 Organizer: MAILTO:bbb@bbbbb.com
5 Status: CONFIRMED
6 UID: 040000008200E00074C5B7101A82E00800000000608AA7DA9835C3010000000000000000100000007C3A6D65EE726E40B7F3D69A23BD567E
diff --git a/test/data/icalendar/import-real-world-2003-06-18b.diary-european b/test/data/icalendar/import-real-world-2003-06-18b.diary-european
new file mode 100644
index 00000000000..95aac168699
--- /dev/null
+++ b/test/data/icalendar/import-real-world-2003-06-18b.diary-european
@@ -0,0 +1,6 @@
1&23/6/2003 17:00-18:00 Updated: Dress Rehearsal for ABC01-15
2 Desc: Viele Zeichen standen hier früher
3 Location: 123 or TN 123-1234 ID abcd & SonstWo (see below)
4 Organizer: MAILTO:bbb@bbbbb.com
5 Status: CONFIRMED
6 UID: 040000008200E00074C5B7101A82E00800000000608AA7DA9835C3010000000000000000100000007C3A6D65EE726E40B7F3D69A23BD567E
diff --git a/test/data/icalendar/import-real-world-2003-06-18b.ics b/test/data/icalendar/import-real-world-2003-06-18b.ics
new file mode 100644
index 00000000000..1523135adf3
--- /dev/null
+++ b/test/data/icalendar/import-real-world-2003-06-18b.ics
@@ -0,0 +1,55 @@
1BEGIN:VCALENDAR
2METHOD:REQUEST
3PRODID:Microsoft CDO for Microsoft Exchange
4VERSION:2.0
5BEGIN:VTIMEZONE
6TZID:Mountain Time (US & Canada)
7X-MICROSOFT-CDO-TZID:12
8BEGIN:STANDARD
9DTSTART:16010101T020000
10TZOFFSETFROM:-0600
11TZOFFSETTO:-0700
12RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=10;BYDAY=-1SU
13END:STANDARD
14BEGIN:DAYLIGHT
15DTSTART:16010101T020000
16TZOFFSETFROM:-0700
17TZOFFSETTO:-0600
18RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=4;BYDAY=1SU
19END:DAYLIGHT
20END:VTIMEZONE
21BEGIN:VEVENT
22DTSTAMP:20030618T230323Z
23DTSTART;TZID="Mountain Time (US & Canada)":20030623T090000
24SUMMARY:Updated: Dress Rehearsal for ABC01-15
25UID:040000008200E00074C5B7101A82E00800000000608AA7DA9835C301000000000000000
26 0100000007C3A6D65EE726E40B7F3D69A23BD567E
27ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;X-REPLYTIME=20030618T20
28 0700Z;RSVP=TRUE;CN="AAAAA,AAAAAA
29\(A-AAAAAAA,ex1)":MAILTO:aaaaaa_aaaaa@aaaaa
30 .com
31ORGANIZER;CN="ABCD,TECHTRAINING
32\(A-Americas,exgen1)":MAILTO:bbb@bbbbb.com
33LOCATION:123 or TN 123-1234 ID abcd & SonstWo (see below)
34DTEND;TZID="Mountain Time (US & Canada)":20030623T100000
35DESCRIPTION:Viele Zeichen standen hier früher
36SEQUENCE:0
37PRIORITY:5
38CLASS:
39CREATED:20030618T230326Z
40LAST-MODIFIED:20030618T230335Z
41STATUS:CONFIRMED
42TRANSP:OPAQUE
43X-MICROSOFT-CDO-BUSYSTATUS:BUSY
44X-MICROSOFT-CDO-INSTTYPE:0
45X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
46X-MICROSOFT-CDO-ALLDAYEVENT:FALSE
47X-MICROSOFT-CDO-IMPORTANCE:1
48X-MICROSOFT-CDO-OWNERAPPTID:1022519251
49BEGIN:VALARM
50ACTION:DISPLAY
51DESCRIPTION:REMINDER
52TRIGGER;RELATED=START:-PT00H15M00S
53END:VALARM
54END:VEVENT
55END:VCALENDAR \ No newline at end of file
diff --git a/test/data/icalendar/import-real-world-2004-11-19.diary-american b/test/data/icalendar/import-real-world-2004-11-19.diary-american
new file mode 100644
index 00000000000..a986f700ba2
--- /dev/null
+++ b/test/data/icalendar/import-real-world-2004-11-19.diary-american
@@ -0,0 +1,19 @@
1&11/23/2004 14:00-14:30 Jjjjj & Wwwww
2 Status: TENTATIVE
3 Class: PRIVATE
4&11/23/2004 14:45-15:45 BB Aaaaaaaa Bbbbb
5 Status: TENTATIVE
6 Class: PRIVATE
7&11/23/2004 11:00-12:00 Hhhhhhhh
8 Status: TENTATIVE
9 Class: PRIVATE
10&%%(and (diary-cyclic 14 11 12 2004)) 14:00-18:30 MMM Aaaaaaaaa
11 Status: TENTATIVE
12 Class: PRIVATE
13&%%(and (diary-block 11 19 2004 11 19 2004)) Rrrr/Cccccc ii Aaaaaaaa
14 Desc: Vvvvv Rrrr aaa Cccccc
15 Status: TENTATIVE
16 Class: PRIVATE
17&%%(and (diary-cyclic 7 11 1 2004)) Wwww aa hhhh
18 Status: TENTATIVE
19 Class: PRIVATE
diff --git a/test/data/icalendar/import-real-world-2004-11-19.diary-european b/test/data/icalendar/import-real-world-2004-11-19.diary-european
new file mode 100644
index 00000000000..cbfe99eb8e3
--- /dev/null
+++ b/test/data/icalendar/import-real-world-2004-11-19.diary-european
@@ -0,0 +1,19 @@
1&23/11/2004 14:00-14:30 Jjjjj & Wwwww
2 Status: TENTATIVE
3 Class: PRIVATE
4&23/11/2004 14:45-15:45 BB Aaaaaaaa Bbbbb
5 Status: TENTATIVE
6 Class: PRIVATE
7&23/11/2004 11:00-12:00 Hhhhhhhh
8 Status: TENTATIVE
9 Class: PRIVATE
10&%%(and (diary-cyclic 14 12 11 2004)) 14:00-18:30 MMM Aaaaaaaaa
11 Status: TENTATIVE
12 Class: PRIVATE
13&%%(and (diary-block 19 11 2004 19 11 2004)) Rrrr/Cccccc ii Aaaaaaaa
14 Desc: Vvvvv Rrrr aaa Cccccc
15 Status: TENTATIVE
16 Class: PRIVATE
17&%%(and (diary-cyclic 7 1 11 2004)) Wwww aa hhhh
18 Status: TENTATIVE
19 Class: PRIVATE
diff --git a/test/data/icalendar/import-real-world-2004-11-19.ics b/test/data/icalendar/import-real-world-2004-11-19.ics
new file mode 100644
index 00000000000..9edb682fcad
--- /dev/null
+++ b/test/data/icalendar/import-real-world-2004-11-19.ics
@@ -0,0 +1,120 @@
1BEGIN:VCALENDAR
2VERSION
3 :2.0
4PRODID
5 :-//Mozilla.org/NONSGML Mozilla Calendar V1.0//EN
6BEGIN:VEVENT
7SUMMARY
8 :Jjjjj & Wwwww
9STATUS
10 :TENTATIVE
11CLASS
12 :PRIVATE
13X-MOZILLA-ALARM-DEFAULT-LENGTH
14 :0
15DTSTART
16 :20041123T140000
17DTEND
18 :20041123T143000
19DTSTAMP
20 :20041118T013430Z
21LAST-MODIFIED
22 :20041118T013640Z
23END:VEVENT
24BEGIN:VEVENT
25SUMMARY
26 :BB Aaaaaaaa Bbbbb
27STATUS
28 :TENTATIVE
29CLASS
30 :PRIVATE
31X-MOZILLA-ALARM-DEFAULT-LENGTH
32 :0
33DTSTART
34 :20041123T144500
35DTEND
36 :20041123T154500
37DTSTAMP
38 :20041118T013641Z
39END:VEVENT
40BEGIN:VEVENT
41SUMMARY
42 :Hhhhhhhh
43STATUS
44 :TENTATIVE
45CLASS
46 :PRIVATE
47X-MOZILLA-ALARM-DEFAULT-LENGTH
48 :0
49DTSTART
50 :20041123T110000
51DTEND
52 :20041123T120000
53DTSTAMP
54 :20041118T013831Z
55END:VEVENT
56BEGIN:VEVENT
57SUMMARY
58 :MMM Aaaaaaaaa
59STATUS
60 :TENTATIVE
61CLASS
62 :PRIVATE
63X-MOZILLA-ALARM-DEFAULT-LENGTH
64 :0
65X-MOZILLA-RECUR-DEFAULT-INTERVAL
66 :2
67RRULE
68 :FREQ=WEEKLY;INTERVAL=2;BYDAY=FR
69DTSTART
70 :20041112T140000
71DTEND
72 :20041112T183000
73DTSTAMP
74 :20041118T014117Z
75END:VEVENT
76BEGIN:VEVENT
77SUMMARY
78 :Rrrr/Cccccc ii Aaaaaaaa
79DESCRIPTION
80 :Vvvvv Rrrr aaa Cccccc
81STATUS
82 :TENTATIVE
83CLASS
84 :PRIVATE
85X-MOZILLA-ALARM-DEFAULT-LENGTH
86 :0
87DTSTART
88 ;VALUE=DATE
89 :20041119
90DTEND
91 ;VALUE=DATE
92 :20041120
93DTSTAMP
94 :20041118T013107Z
95LAST-MODIFIED
96 :20041118T014203Z
97END:VEVENT
98BEGIN:VEVENT
99SUMMARY
100 :Wwww aa hhhh
101STATUS
102 :TENTATIVE
103CLASS
104 :PRIVATE
105X-MOZILLA-ALARM-DEFAULT-LENGTH
106 :0
107RRULE
108 :FREQ=WEEKLY;INTERVAL=1;BYDAY=MO
109DTSTART
110 ;VALUE=DATE
111 :20041101
112DTEND
113 ;VALUE=DATE
114 :20041102
115DTSTAMP
116 :20041118T014045Z
117LAST-MODIFIED
118 :20041118T023846Z
119END:VEVENT
120END:VCALENDAR
diff --git a/test/data/icalendar/import-real-world-2005-02-07.diary-american b/test/data/icalendar/import-real-world-2005-02-07.diary-american
new file mode 100644
index 00000000000..ce7d835d96b
--- /dev/null
+++ b/test/data/icalendar/import-real-world-2005-02-07.diary-american
@@ -0,0 +1,5 @@
1&%%(and (diary-block 2 6 2005 2 6 2005)) Waitangi Day
2 Desc: abcdef
3 Status: CONFIRMED
4 Class: PRIVATE
5 UID: b60d398e-1dd1-11b2-a159-cf8cb05139f4
diff --git a/test/data/icalendar/import-real-world-2005-02-07.diary-european b/test/data/icalendar/import-real-world-2005-02-07.diary-european
new file mode 100644
index 00000000000..3a52b0ab271
--- /dev/null
+++ b/test/data/icalendar/import-real-world-2005-02-07.diary-european
@@ -0,0 +1,5 @@
1&%%(and (diary-block 6 2 2005 6 2 2005)) Waitangi Day
2 Desc: abcdef
3 Status: CONFIRMED
4 Class: PRIVATE
5 UID: b60d398e-1dd1-11b2-a159-cf8cb05139f4
diff --git a/test/data/icalendar/import-real-world-2005-02-07.ics b/test/data/icalendar/import-real-world-2005-02-07.ics
new file mode 100644
index 00000000000..9eec71fe751
--- /dev/null
+++ b/test/data/icalendar/import-real-world-2005-02-07.ics
@@ -0,0 +1,26 @@
1BEGIN:VCALENDAR
2PRODID:-//Emacs//NONSGML icalendar.el//EN
3VERSION:2.0
4BEGIN:VEVENT
5UID
6 :b60d398e-1dd1-11b2-a159-cf8cb05139f4
7SUMMARY
8 :Waitangi Day
9DESCRIPTION
10 :abcdef
11CATEGORIES
12 :Public Holiday
13STATUS
14 :CONFIRMED
15CLASS
16 :PRIVATE
17DTSTART
18 ;VALUE=DATE
19 :20050206
20DTEND
21 ;VALUE=DATE
22 :20050207
23DTSTAMP
24 :20050128T011209Z
25END:VEVENT
26END:VCALENDAR
diff --git a/test/data/icalendar/import-real-world-2005-03-01.diary-american b/test/data/icalendar/import-real-world-2005-03-01.diary-american
new file mode 100644
index 00000000000..23c93d45d9a
--- /dev/null
+++ b/test/data/icalendar/import-real-world-2005-03-01.diary-american
@@ -0,0 +1,2 @@
1&%%(and (diary-block 2 17 2005 2 23 2005)) Hhhhhh Aaaaa ii Aaaaaaaa
2 UID: 6AFA7558-6994-11D9-8A3A-000A95A0E830-RID
diff --git a/test/data/icalendar/import-real-world-2005-03-01.diary-european b/test/data/icalendar/import-real-world-2005-03-01.diary-european
new file mode 100644
index 00000000000..106e9f3cdd0
--- /dev/null
+++ b/test/data/icalendar/import-real-world-2005-03-01.diary-european
@@ -0,0 +1,2 @@
1&%%(and (diary-block 17 2 2005 23 2 2005)) Hhhhhh Aaaaa ii Aaaaaaaa
2 UID: 6AFA7558-6994-11D9-8A3A-000A95A0E830-RID
diff --git a/test/data/icalendar/import-real-world-2005-03-01.ics b/test/data/icalendar/import-real-world-2005-03-01.ics
new file mode 100644
index 00000000000..ed9faa9b0bd
--- /dev/null
+++ b/test/data/icalendar/import-real-world-2005-03-01.ics
@@ -0,0 +1,11 @@
1BEGIN:VCALENDAR
2PRODID:-//Emacs//NONSGML icalendar.el//EN
3VERSION:2.0
4BEGIN:VEVENT
5DTSTART;VALUE=DATE:20050217
6SUMMARY:Hhhhhh Aaaaa ii Aaaaaaaa
7UID:6AFA7558-6994-11D9-8A3A-000A95A0E830-RID
8DTSTAMP:20050118T210335Z
9DURATION:P7D
10END:VEVENT
11END:VCALENDAR
diff --git a/test/data/icalendar/import-real-world-no-dst.diary-american b/test/data/icalendar/import-real-world-no-dst.diary-american
new file mode 100644
index 00000000000..290edb88760
--- /dev/null
+++ b/test/data/icalendar/import-real-world-no-dst.diary-american
@@ -0,0 +1,4 @@
1&11/16/2014 04:30-05:30 NoDST
2 Desc: Test event from timezone without DST
3 Location: Everywhere
4 UID: 20141116T171439Z-678877132@marudot.com
diff --git a/test/data/icalendar/import-real-world-no-dst.diary-european b/test/data/icalendar/import-real-world-no-dst.diary-european
new file mode 100644
index 00000000000..c56b7a6547a
--- /dev/null
+++ b/test/data/icalendar/import-real-world-no-dst.diary-european
@@ -0,0 +1,4 @@
1&16/11/2014 04:30-05:30 NoDST
2 Desc: Test event from timezone without DST
3 Location: Everywhere
4 UID: 20141116T171439Z-678877132@marudot.com
diff --git a/test/data/icalendar/import-real-world-no-dst.ics b/test/data/icalendar/import-real-world-no-dst.ics
new file mode 100644
index 00000000000..5f147af4f37
--- /dev/null
+++ b/test/data/icalendar/import-real-world-no-dst.ics
@@ -0,0 +1,26 @@
1BEGIN:VCALENDAR
2VERSION:2.0
3PRODID:-//www.marudot.com//iCal Event Maker
4X-WR-CALNAME:Test
5CALSCALE:GREGORIAN
6BEGIN:VTIMEZONE
7TZID:Asia/Tehran
8TZURL:http://tzurl.org/zoneinfo-outlook/Asia/Tehran
9X-LIC-LOCATION:Asia/Tehran
10BEGIN:STANDARD
11TZOFFSETFROM:+0330
12TZOFFSETTO:+0330
13TZNAME:IRST
14DTSTART:19700101T000000
15END:STANDARD
16END:VTIMEZONE
17BEGIN:VEVENT
18DTSTAMP:20141116T171439Z
19UID:20141116T171439Z-678877132@marudot.com
20DTSTART;TZID="Asia/Tehran":20141116T070000
21DTEND;TZID="Asia/Tehran":20141116T080000
22SUMMARY:NoDST
23DESCRIPTION:Test event from timezone without DST
24LOCATION:Everywhere
25END:VEVENT
26END:VCALENDAR \ No newline at end of file
diff --git a/test/data/icalendar/import-rrule-anniversary.diary-american b/test/data/icalendar/import-rrule-anniversary.diary-american
new file mode 100644
index 00000000000..7b86b554dd4
--- /dev/null
+++ b/test/data/icalendar/import-rrule-anniversary.diary-american
@@ -0,0 +1 @@
&%%(and (diary-anniversary 8 15 2004)) Maria Himmelfahrt
diff --git a/test/data/icalendar/import-rrule-anniversary.diary-european b/test/data/icalendar/import-rrule-anniversary.diary-european
new file mode 100644
index 00000000000..3b82ec09fd5
--- /dev/null
+++ b/test/data/icalendar/import-rrule-anniversary.diary-european
@@ -0,0 +1 @@
&%%(and (diary-anniversary 15 8 2004)) Maria Himmelfahrt
diff --git a/test/data/icalendar/import-rrule-anniversary.diary-iso b/test/data/icalendar/import-rrule-anniversary.diary-iso
new file mode 100644
index 00000000000..7fc99478d4e
--- /dev/null
+++ b/test/data/icalendar/import-rrule-anniversary.diary-iso
@@ -0,0 +1 @@
&%%(and (diary-anniversary 2004 8 15)) Maria Himmelfahrt
diff --git a/test/data/icalendar/import-rrule-anniversary.ics b/test/data/icalendar/import-rrule-anniversary.ics
new file mode 100644
index 00000000000..2996f494167
--- /dev/null
+++ b/test/data/icalendar/import-rrule-anniversary.ics
@@ -0,0 +1,11 @@
1BEGIN:VCALENDAR
2PRODID:-//Emacs//NONSGML icalendar.el//EN
3VERSION:2.0
4BEGIN:VEVENT
5DTSTART;VALUE=DATE:20040815
6DTEND;VALUE=DATE:20040816
7SUMMARY:Maria Himmelfahrt
8RRULE:FREQ=YEARLY;INTERVAL=1;BYMONTH=8
9END:VEVENT
10END:VCALENDAR
11
diff --git a/test/data/icalendar/import-rrule-count-bi-weekly.diary-american b/test/data/icalendar/import-rrule-count-bi-weekly.diary-american
new file mode 100644
index 00000000000..84b6d109953
--- /dev/null
+++ b/test/data/icalendar/import-rrule-count-bi-weekly.diary-american
@@ -0,0 +1 @@
&%%(and (diary-cyclic 14 9 19 2003) (diary-block 9 19 2003 10 31 2003)) 09:00-11:30 rrule count bi-weekly 3 times
diff --git a/test/data/icalendar/import-rrule-count-bi-weekly.diary-european b/test/data/icalendar/import-rrule-count-bi-weekly.diary-european
new file mode 100644
index 00000000000..0bebdf8872f
--- /dev/null
+++ b/test/data/icalendar/import-rrule-count-bi-weekly.diary-european
@@ -0,0 +1 @@
&%%(and (diary-cyclic 14 19 9 2003) (diary-block 19 9 2003 31 10 2003)) 09:00-11:30 rrule count bi-weekly 3 times
diff --git a/test/data/icalendar/import-rrule-count-bi-weekly.diary-iso b/test/data/icalendar/import-rrule-count-bi-weekly.diary-iso
new file mode 100644
index 00000000000..11429081abe
--- /dev/null
+++ b/test/data/icalendar/import-rrule-count-bi-weekly.diary-iso
@@ -0,0 +1 @@
&%%(and (diary-cyclic 14 2003 9 19) (diary-block 2003 9 19 2003 10 31)) 09:00-11:30 rrule count bi-weekly 3 times
diff --git a/test/data/icalendar/import-rrule-count-bi-weekly.ics b/test/data/icalendar/import-rrule-count-bi-weekly.ics
new file mode 100644
index 00000000000..888b85bb331
--- /dev/null
+++ b/test/data/icalendar/import-rrule-count-bi-weekly.ics
@@ -0,0 +1,11 @@
1BEGIN:VCALENDAR
2PRODID:-//Emacs//NONSGML icalendar.el//EN
3VERSION:2.0
4BEGIN:VEVENT
5SUMMARY:rrule count bi-weekly 3 times
6DTSTART;VALUE=DATE-TIME:20030919T090000
7DTEND;VALUE=DATE-TIME:20030919T113000
8RRULE:FREQ=WEEKLY;COUNT=3;INTERVAL=2
9END:VEVENT
10END:VCALENDAR
11
diff --git a/test/data/icalendar/import-rrule-count-daily-long.diary-american b/test/data/icalendar/import-rrule-count-daily-long.diary-american
new file mode 100644
index 00000000000..23fe9fcaf32
--- /dev/null
+++ b/test/data/icalendar/import-rrule-count-daily-long.diary-american
@@ -0,0 +1 @@
&%%(and (diary-cyclic 1 9 19 2003) (diary-block 9 19 2003 10 2 2003)) 09:00-11:30 rrule count daily long
diff --git a/test/data/icalendar/import-rrule-count-daily-long.diary-european b/test/data/icalendar/import-rrule-count-daily-long.diary-european
new file mode 100644
index 00000000000..0d4ab669058
--- /dev/null
+++ b/test/data/icalendar/import-rrule-count-daily-long.diary-european
@@ -0,0 +1 @@
&%%(and (diary-cyclic 1 19 9 2003) (diary-block 19 9 2003 2 10 2003)) 09:00-11:30 rrule count daily long
diff --git a/test/data/icalendar/import-rrule-count-daily-long.diary-iso b/test/data/icalendar/import-rrule-count-daily-long.diary-iso
new file mode 100644
index 00000000000..8cecda5c879
--- /dev/null
+++ b/test/data/icalendar/import-rrule-count-daily-long.diary-iso
@@ -0,0 +1 @@
&%%(and (diary-cyclic 1 2003 9 19) (diary-block 2003 9 19 2003 10 2)) 09:00-11:30 rrule count daily long
diff --git a/test/data/icalendar/import-rrule-count-daily-long.ics b/test/data/icalendar/import-rrule-count-daily-long.ics
new file mode 100644
index 00000000000..73df19a8196
--- /dev/null
+++ b/test/data/icalendar/import-rrule-count-daily-long.ics
@@ -0,0 +1,11 @@
1BEGIN:VCALENDAR
2PRODID:-//Emacs//NONSGML icalendar.el//EN
3VERSION:2.0
4BEGIN:VEVENT
5SUMMARY:rrule count daily long
6DTSTART;VALUE=DATE-TIME:20030919T090000
7DTEND;VALUE=DATE-TIME:20030919T113000
8RRULE:FREQ=DAILY;COUNT=14;INTERVAL=1
9END:VEVENT
10END:VCALENDAR
11
diff --git a/test/data/icalendar/import-rrule-count-daily-short.diary-american b/test/data/icalendar/import-rrule-count-daily-short.diary-american
new file mode 100644
index 00000000000..d69bb08c318
--- /dev/null
+++ b/test/data/icalendar/import-rrule-count-daily-short.diary-american
@@ -0,0 +1 @@
&%%(and (diary-cyclic 1 9 19 2003) (diary-block 9 19 2003 9 19 2003)) 09:00-11:30 rrule count daily short
diff --git a/test/data/icalendar/import-rrule-count-daily-short.diary-european b/test/data/icalendar/import-rrule-count-daily-short.diary-european
new file mode 100644
index 00000000000..33a1ce4cf51
--- /dev/null
+++ b/test/data/icalendar/import-rrule-count-daily-short.diary-european
@@ -0,0 +1 @@
&%%(and (diary-cyclic 1 19 9 2003) (diary-block 19 9 2003 19 9 2003)) 09:00-11:30 rrule count daily short
diff --git a/test/data/icalendar/import-rrule-count-daily-short.diary-iso b/test/data/icalendar/import-rrule-count-daily-short.diary-iso
new file mode 100644
index 00000000000..a06bcba0dc1
--- /dev/null
+++ b/test/data/icalendar/import-rrule-count-daily-short.diary-iso
@@ -0,0 +1 @@
&%%(and (diary-cyclic 1 2003 9 19) (diary-block 2003 9 19 2003 9 19)) 09:00-11:30 rrule count daily short
diff --git a/test/data/icalendar/import-rrule-count-daily-short.ics b/test/data/icalendar/import-rrule-count-daily-short.ics
new file mode 100644
index 00000000000..92ffe8be654
--- /dev/null
+++ b/test/data/icalendar/import-rrule-count-daily-short.ics
@@ -0,0 +1,11 @@
1BEGIN:VCALENDAR
2PRODID:-//Emacs//NONSGML icalendar.el//EN
3VERSION:2.0
4BEGIN:VEVENT
5SUMMARY:rrule count daily short
6DTSTART;VALUE=DATE-TIME:20030919T090000
7DTEND;VALUE=DATE-TIME:20030919T113000
8RRULE:FREQ=DAILY;COUNT=1;INTERVAL=1
9END:VEVENT
10END:VCALENDAR
11
diff --git a/test/data/icalendar/import-rrule-count-every-second-month.diary-american b/test/data/icalendar/import-rrule-count-every-second-month.diary-american
new file mode 100644
index 00000000000..4ce8ef842f8
--- /dev/null
+++ b/test/data/icalendar/import-rrule-count-every-second-month.diary-american
@@ -0,0 +1 @@
&%%(and (diary-date t 19 t) (diary-block 9 19 2003 5 19 2004)) 09:00-11:30 rrule count every second month
diff --git a/test/data/icalendar/import-rrule-count-every-second-month.diary-european b/test/data/icalendar/import-rrule-count-every-second-month.diary-european
new file mode 100644
index 00000000000..09ec3756295
--- /dev/null
+++ b/test/data/icalendar/import-rrule-count-every-second-month.diary-european
@@ -0,0 +1 @@
&%%(and (diary-date 19 t t) (diary-block 19 9 2003 19 5 2004)) 09:00-11:30 rrule count every second month
diff --git a/test/data/icalendar/import-rrule-count-every-second-month.diary-iso b/test/data/icalendar/import-rrule-count-every-second-month.diary-iso
new file mode 100644
index 00000000000..ae6feb70d4c
--- /dev/null
+++ b/test/data/icalendar/import-rrule-count-every-second-month.diary-iso
@@ -0,0 +1 @@
&%%(and (diary-date t t 19) (diary-block 2003 9 19 2004 5 19)) 09:00-11:30 rrule count every second month
diff --git a/test/data/icalendar/import-rrule-count-every-second-month.ics b/test/data/icalendar/import-rrule-count-every-second-month.ics
new file mode 100644
index 00000000000..3b27b665498
--- /dev/null
+++ b/test/data/icalendar/import-rrule-count-every-second-month.ics
@@ -0,0 +1,11 @@
1BEGIN:VCALENDAR
2PRODID:-//Emacs//NONSGML icalendar.el//EN
3VERSION:2.0
4BEGIN:VEVENT
5SUMMARY:rrule count every second month
6DTSTART;VALUE=DATE-TIME:20030919T090000
7DTEND;VALUE=DATE-TIME:20030919T113000
8RRULE:FREQ=MONTHLY;INTERVAL=2;COUNT=5
9END:VEVENT
10END:VCALENDAR
11
diff --git a/test/data/icalendar/import-rrule-count-every-second-year.diary-american b/test/data/icalendar/import-rrule-count-every-second-year.diary-american
new file mode 100644
index 00000000000..99543aa9596
--- /dev/null
+++ b/test/data/icalendar/import-rrule-count-every-second-year.diary-american
@@ -0,0 +1 @@
&%%(and (diary-date 9 19 t) (diary-block 9 19 2003 9 19 2011)) 09:00-11:30 rrule count every second year
diff --git a/test/data/icalendar/import-rrule-count-every-second-year.diary-european b/test/data/icalendar/import-rrule-count-every-second-year.diary-european
new file mode 100644
index 00000000000..3b330886ce0
--- /dev/null
+++ b/test/data/icalendar/import-rrule-count-every-second-year.diary-european
@@ -0,0 +1 @@
&%%(and (diary-date 19 9 t) (diary-block 19 9 2003 19 9 2011)) 09:00-11:30 rrule count every second year
diff --git a/test/data/icalendar/import-rrule-count-every-second-year.diary-iso b/test/data/icalendar/import-rrule-count-every-second-year.diary-iso
new file mode 100644
index 00000000000..16af52ea91c
--- /dev/null
+++ b/test/data/icalendar/import-rrule-count-every-second-year.diary-iso
@@ -0,0 +1 @@
&%%(and (diary-date t 9 19) (diary-block 2003 9 19 2011 9 19)) 09:00-11:30 rrule count every second year
diff --git a/test/data/icalendar/import-rrule-count-every-second-year.ics b/test/data/icalendar/import-rrule-count-every-second-year.ics
new file mode 100644
index 00000000000..ce21c34d09a
--- /dev/null
+++ b/test/data/icalendar/import-rrule-count-every-second-year.ics
@@ -0,0 +1,10 @@
1BEGIN:VCALENDAR
2PRODID:-//Emacs//NONSGML icalendar.el//EN
3VERSION:2.0
4BEGIN:VEVENT
5SUMMARY:rrule count every second year
6DTSTART;VALUE=DATE-TIME:20030919T090000
7DTEND;VALUE=DATE-TIME:20030919T113000
8RRULE:FREQ=YEARLY;INTERVAL=2;COUNT=5
9END:VEVENT
10END:VCALENDAR
diff --git a/test/data/icalendar/import-rrule-count-monthly.diary-american b/test/data/icalendar/import-rrule-count-monthly.diary-american
new file mode 100644
index 00000000000..ad5ca0b0ed4
--- /dev/null
+++ b/test/data/icalendar/import-rrule-count-monthly.diary-american
@@ -0,0 +1 @@
&%%(and (diary-date t 19 t) (diary-block 9 19 2003 1 19 2004)) 09:00-11:30 rrule count monthly
diff --git a/test/data/icalendar/import-rrule-count-monthly.diary-european b/test/data/icalendar/import-rrule-count-monthly.diary-european
new file mode 100644
index 00000000000..709de3a3fd5
--- /dev/null
+++ b/test/data/icalendar/import-rrule-count-monthly.diary-european
@@ -0,0 +1 @@
&%%(and (diary-date 19 t t) (diary-block 19 9 2003 19 1 2004)) 09:00-11:30 rrule count monthly
diff --git a/test/data/icalendar/import-rrule-count-monthly.diary-iso b/test/data/icalendar/import-rrule-count-monthly.diary-iso
new file mode 100644
index 00000000000..9fc2a2def94
--- /dev/null
+++ b/test/data/icalendar/import-rrule-count-monthly.diary-iso
@@ -0,0 +1 @@
&%%(and (diary-date t t 19) (diary-block 2003 9 19 2004 1 19)) 09:00-11:30 rrule count monthly
diff --git a/test/data/icalendar/import-rrule-count-monthly.ics b/test/data/icalendar/import-rrule-count-monthly.ics
new file mode 100644
index 00000000000..3391ca24252
--- /dev/null
+++ b/test/data/icalendar/import-rrule-count-monthly.ics
@@ -0,0 +1,11 @@
1BEGIN:VCALENDAR
2PRODID:-//Emacs//NONSGML icalendar.el//EN
3VERSION:2.0
4BEGIN:VEVENT
5SUMMARY:rrule count monthly
6DTSTART;VALUE=DATE-TIME:20030919T090000
7DTEND;VALUE=DATE-TIME:20030919T113000
8RRULE:FREQ=MONTHLY;INTERVAL=1;COUNT=5
9END:VEVENT
10END:VCALENDAR
11
diff --git a/test/data/icalendar/import-rrule-count-yearly.diary-american b/test/data/icalendar/import-rrule-count-yearly.diary-american
new file mode 100644
index 00000000000..8c1f95b0c05
--- /dev/null
+++ b/test/data/icalendar/import-rrule-count-yearly.diary-american
@@ -0,0 +1 @@
&%%(and (diary-date 9 19 t) (diary-block 9 19 2003 9 19 2007)) 09:00-11:30 rrule count yearly
diff --git a/test/data/icalendar/import-rrule-count-yearly.diary-european b/test/data/icalendar/import-rrule-count-yearly.diary-european
new file mode 100644
index 00000000000..e216e224eae
--- /dev/null
+++ b/test/data/icalendar/import-rrule-count-yearly.diary-european
@@ -0,0 +1 @@
&%%(and (diary-date 19 9 t) (diary-block 19 9 2003 19 9 2007)) 09:00-11:30 rrule count yearly
diff --git a/test/data/icalendar/import-rrule-count-yearly.diary-iso b/test/data/icalendar/import-rrule-count-yearly.diary-iso
new file mode 100644
index 00000000000..3801192ee60
--- /dev/null
+++ b/test/data/icalendar/import-rrule-count-yearly.diary-iso
@@ -0,0 +1 @@
&%%(and (diary-date t 9 19) (diary-block 2003 9 19 2007 9 19)) 09:00-11:30 rrule count yearly
diff --git a/test/data/icalendar/import-rrule-count-yearly.ics b/test/data/icalendar/import-rrule-count-yearly.ics
new file mode 100644
index 00000000000..d8569933e0c
--- /dev/null
+++ b/test/data/icalendar/import-rrule-count-yearly.ics
@@ -0,0 +1,11 @@
1BEGIN:VCALENDAR
2PRODID:-//Emacs//NONSGML icalendar.el//EN
3VERSION:2.0
4BEGIN:VEVENT
5SUMMARY:rrule count yearly
6DTSTART;VALUE=DATE-TIME:20030919T090000
7DTEND;VALUE=DATE-TIME:20030919T113000
8RRULE:FREQ=YEARLY;INTERVAL=1;COUNT=5
9END:VEVENT
10END:VCALENDAR
11
diff --git a/test/data/icalendar/import-rrule-daily-two-day.diary-american b/test/data/icalendar/import-rrule-daily-two-day.diary-american
new file mode 100644
index 00000000000..495fca5f8df
--- /dev/null
+++ b/test/data/icalendar/import-rrule-daily-two-day.diary-american
@@ -0,0 +1 @@
&%%(and (diary-cyclic 2 9 19 2003)) 09:00-11:30 rrule daily
diff --git a/test/data/icalendar/import-rrule-daily-two-day.diary-european b/test/data/icalendar/import-rrule-daily-two-day.diary-european
new file mode 100644
index 00000000000..61db14ab24a
--- /dev/null
+++ b/test/data/icalendar/import-rrule-daily-two-day.diary-european
@@ -0,0 +1 @@
&%%(and (diary-cyclic 2 19 9 2003)) 09:00-11:30 rrule daily
diff --git a/test/data/icalendar/import-rrule-daily-two-day.diary-iso b/test/data/icalendar/import-rrule-daily-two-day.diary-iso
new file mode 100644
index 00000000000..0e0a4b19781
--- /dev/null
+++ b/test/data/icalendar/import-rrule-daily-two-day.diary-iso
@@ -0,0 +1 @@
&%%(and (diary-cyclic 2 2003 9 19)) 09:00-11:30 rrule daily
diff --git a/test/data/icalendar/import-rrule-daily-two-day.ics b/test/data/icalendar/import-rrule-daily-two-day.ics
new file mode 100644
index 00000000000..8c9cb3b2845
--- /dev/null
+++ b/test/data/icalendar/import-rrule-daily-two-day.ics
@@ -0,0 +1,10 @@
1BEGIN:VCALENDAR
2PRODID:-//Emacs//NONSGML icalendar.el//EN
3VERSION:2.0
4BEGIN:VEVENT
5SUMMARY:rrule daily
6DTSTART;VALUE=DATE-TIME:20030919T090000
7DTEND;VALUE=DATE-TIME:20030919T113000
8RRULE:FREQ=DAILY;INTERVAL=2
9END:VEVENT
10END:VCALENDAR
diff --git a/test/data/icalendar/import-rrule-daily-with-exceptions.diary-american b/test/data/icalendar/import-rrule-daily-with-exceptions.diary-american
new file mode 100644
index 00000000000..83e5f582d5f
--- /dev/null
+++ b/test/data/icalendar/import-rrule-daily-with-exceptions.diary-american
@@ -0,0 +1 @@
&%%(and (not (diary-date 9 25 2003)) (not (diary-date 9 21 2003)) (diary-cyclic 2 9 19 2003)) 09:00-11:30 rrule daily with exceptions
diff --git a/test/data/icalendar/import-rrule-daily-with-exceptions.diary-european b/test/data/icalendar/import-rrule-daily-with-exceptions.diary-european
new file mode 100644
index 00000000000..a3c7fdd4177
--- /dev/null
+++ b/test/data/icalendar/import-rrule-daily-with-exceptions.diary-european
@@ -0,0 +1 @@
&%%(and (not (diary-date 25 9 2003)) (not (diary-date 21 9 2003)) (diary-cyclic 2 19 9 2003)) 09:00-11:30 rrule daily with exceptions
diff --git a/test/data/icalendar/import-rrule-daily-with-exceptions.diary-iso b/test/data/icalendar/import-rrule-daily-with-exceptions.diary-iso
new file mode 100644
index 00000000000..88b4c892d16
--- /dev/null
+++ b/test/data/icalendar/import-rrule-daily-with-exceptions.diary-iso
@@ -0,0 +1 @@
&%%(and (not (diary-date 2003 9 25)) (not (diary-date 2003 9 21)) (diary-cyclic 2 2003 9 19)) 09:00-11:30 rrule daily with exceptions
diff --git a/test/data/icalendar/import-rrule-daily-with-exceptions.ics b/test/data/icalendar/import-rrule-daily-with-exceptions.ics
new file mode 100644
index 00000000000..5284bf42d8b
--- /dev/null
+++ b/test/data/icalendar/import-rrule-daily-with-exceptions.ics
@@ -0,0 +1,12 @@
1BEGIN:VCALENDAR
2PRODID:-//Emacs//NONSGML icalendar.el//EN
3VERSION:2.0
4BEGIN:VEVENT
5SUMMARY:rrule daily with exceptions
6DTSTART;VALUE=DATE-TIME:20030919T090000
7DTEND;VALUE=DATE-TIME:20030919T113000
8RRULE:FREQ=DAILY;INTERVAL=2
9EXDATE:20030921,20030925
10END:VEVENT
11END:VCALENDAR
12
diff --git a/test/data/icalendar/import-rrule-daily.diary-american b/test/data/icalendar/import-rrule-daily.diary-american
new file mode 100644
index 00000000000..9213270fa41
--- /dev/null
+++ b/test/data/icalendar/import-rrule-daily.diary-american
@@ -0,0 +1 @@
&%%(and (diary-cyclic 1 9 19 2003)) 09:00-11:30 rrule daily
diff --git a/test/data/icalendar/import-rrule-daily.diary-european b/test/data/icalendar/import-rrule-daily.diary-european
new file mode 100644
index 00000000000..2c70cd7da55
--- /dev/null
+++ b/test/data/icalendar/import-rrule-daily.diary-european
@@ -0,0 +1 @@
&%%(and (diary-cyclic 1 19 9 2003)) 09:00-11:30 rrule daily
diff --git a/test/data/icalendar/import-rrule-daily.diary-iso b/test/data/icalendar/import-rrule-daily.diary-iso
new file mode 100644
index 00000000000..b201cb44308
--- /dev/null
+++ b/test/data/icalendar/import-rrule-daily.diary-iso
@@ -0,0 +1 @@
&%%(and (diary-cyclic 1 2003 9 19)) 09:00-11:30 rrule daily
diff --git a/test/data/icalendar/import-rrule-daily.ics b/test/data/icalendar/import-rrule-daily.ics
new file mode 100644
index 00000000000..6d013b0b4f6
--- /dev/null
+++ b/test/data/icalendar/import-rrule-daily.ics
@@ -0,0 +1,11 @@
1BEGIN:VCALENDAR
2PRODID:-//Emacs//NONSGML icalendar.el//EN
3VERSION:2.0
4BEGIN:VEVENT
5SUMMARY:rrule daily
6DTSTART;VALUE=DATE-TIME:20030919T090000
7DTEND;VALUE=DATE-TIME:20030919T113000
8RRULE:FREQ=DAILY;
9END:VEVENT
10END:VCALENDAR
11
diff --git a/test/data/icalendar/import-rrule-monthly-no-end.diary-american b/test/data/icalendar/import-rrule-monthly-no-end.diary-american
new file mode 100644
index 00000000000..bc5453fe425
--- /dev/null
+++ b/test/data/icalendar/import-rrule-monthly-no-end.diary-american
@@ -0,0 +1 @@
&%%(and (diary-date t 19 t) (diary-block 9 19 2003 1 1 9999)) 09:00-11:30 rrule monthly no end
diff --git a/test/data/icalendar/import-rrule-monthly-no-end.diary-european b/test/data/icalendar/import-rrule-monthly-no-end.diary-european
new file mode 100644
index 00000000000..f071519701d
--- /dev/null
+++ b/test/data/icalendar/import-rrule-monthly-no-end.diary-european
@@ -0,0 +1 @@
&%%(and (diary-date 19 t t) (diary-block 19 9 2003 1 1 9999)) 09:00-11:30 rrule monthly no end
diff --git a/test/data/icalendar/import-rrule-monthly-no-end.diary-iso b/test/data/icalendar/import-rrule-monthly-no-end.diary-iso
new file mode 100644
index 00000000000..3709e933337
--- /dev/null
+++ b/test/data/icalendar/import-rrule-monthly-no-end.diary-iso
@@ -0,0 +1 @@
&%%(and (diary-date t t 19) (diary-block 2003 9 19 9999 1 1)) 09:00-11:30 rrule monthly no end
diff --git a/test/data/icalendar/import-rrule-monthly-no-end.ics b/test/data/icalendar/import-rrule-monthly-no-end.ics
new file mode 100644
index 00000000000..b871658600a
--- /dev/null
+++ b/test/data/icalendar/import-rrule-monthly-no-end.ics
@@ -0,0 +1,11 @@
1BEGIN:VCALENDAR
2PRODID:-//Emacs//NONSGML icalendar.el//EN
3VERSION:2.0
4BEGIN:VEVENT
5SUMMARY:rrule monthly no end
6DTSTART;VALUE=DATE-TIME:20030919T090000
7DTEND;VALUE=DATE-TIME:20030919T113000
8RRULE:FREQ=MONTHLY;
9END:VEVENT
10END:VCALENDAR
11
diff --git a/test/data/icalendar/import-rrule-monthly-with-end.diary-american b/test/data/icalendar/import-rrule-monthly-with-end.diary-american
new file mode 100644
index 00000000000..638ab8b2327
--- /dev/null
+++ b/test/data/icalendar/import-rrule-monthly-with-end.diary-american
@@ -0,0 +1 @@
&%%(and (diary-date t 19 t) (diary-block 9 19 2003 8 19 2005)) 09:00-11:30 rrule monthly with end
diff --git a/test/data/icalendar/import-rrule-monthly-with-end.diary-european b/test/data/icalendar/import-rrule-monthly-with-end.diary-european
new file mode 100644
index 00000000000..c70cde25f32
--- /dev/null
+++ b/test/data/icalendar/import-rrule-monthly-with-end.diary-european
@@ -0,0 +1 @@
&%%(and (diary-date 19 t t) (diary-block 19 9 2003 19 8 2005)) 09:00-11:30 rrule monthly with end
diff --git a/test/data/icalendar/import-rrule-monthly-with-end.diary-iso b/test/data/icalendar/import-rrule-monthly-with-end.diary-iso
new file mode 100644
index 00000000000..ee51a2142a4
--- /dev/null
+++ b/test/data/icalendar/import-rrule-monthly-with-end.diary-iso
@@ -0,0 +1 @@
&%%(and (diary-date t t 19) (diary-block 2003 9 19 2005 8 19)) 09:00-11:30 rrule monthly with end
diff --git a/test/data/icalendar/import-rrule-monthly-with-end.ics b/test/data/icalendar/import-rrule-monthly-with-end.ics
new file mode 100644
index 00000000000..d8a1fe2e5af
--- /dev/null
+++ b/test/data/icalendar/import-rrule-monthly-with-end.ics
@@ -0,0 +1,11 @@
1BEGIN:VCALENDAR
2PRODID:-//Emacs//NONSGML icalendar.el//EN
3VERSION:2.0
4BEGIN:VEVENT
5SUMMARY:rrule monthly with end
6DTSTART;VALUE=DATE-TIME:20030919T090000
7DTEND;VALUE=DATE-TIME:20030919T113000
8RRULE:FREQ=MONTHLY;UNTIL=20050819;
9END:VEVENT
10END:VCALENDAR
11
diff --git a/test/data/icalendar/import-rrule-weekly.diary-american b/test/data/icalendar/import-rrule-weekly.diary-american
new file mode 100644
index 00000000000..d8bf2eba104
--- /dev/null
+++ b/test/data/icalendar/import-rrule-weekly.diary-american
@@ -0,0 +1 @@
&%%(and (diary-cyclic 7 9 19 2003)) 09:00-11:30 rrule weekly
diff --git a/test/data/icalendar/import-rrule-weekly.diary-european b/test/data/icalendar/import-rrule-weekly.diary-european
new file mode 100644
index 00000000000..e368fde9709
--- /dev/null
+++ b/test/data/icalendar/import-rrule-weekly.diary-european
@@ -0,0 +1 @@
&%%(and (diary-cyclic 7 19 9 2003)) 09:00-11:30 rrule weekly
diff --git a/test/data/icalendar/import-rrule-weekly.diary-iso b/test/data/icalendar/import-rrule-weekly.diary-iso
new file mode 100644
index 00000000000..49cd9d8ace6
--- /dev/null
+++ b/test/data/icalendar/import-rrule-weekly.diary-iso
@@ -0,0 +1 @@
&%%(and (diary-cyclic 7 2003 9 19)) 09:00-11:30 rrule weekly
diff --git a/test/data/icalendar/import-rrule-weekly.ics b/test/data/icalendar/import-rrule-weekly.ics
new file mode 100644
index 00000000000..c3f0b8ae933
--- /dev/null
+++ b/test/data/icalendar/import-rrule-weekly.ics
@@ -0,0 +1,11 @@
1BEGIN:VCALENDAR
2PRODID:-//Emacs//NONSGML icalendar.el//EN
3VERSION:2.0
4BEGIN:VEVENT
5SUMMARY:rrule weekly
6DTSTART;VALUE=DATE-TIME:20030919T090000
7DTEND;VALUE=DATE-TIME:20030919T113000
8RRULE:FREQ=WEEKLY;
9END:VEVENT
10END:VCALENDAR
11
diff --git a/test/data/icalendar/import-rrule-yearly.diary-american b/test/data/icalendar/import-rrule-yearly.diary-american
new file mode 100644
index 00000000000..a54780b9699
--- /dev/null
+++ b/test/data/icalendar/import-rrule-yearly.diary-american
@@ -0,0 +1 @@
&%%(and (diary-anniversary 9 19 2003)) 09:00-11:30 rrule yearly
diff --git a/test/data/icalendar/import-rrule-yearly.diary-european b/test/data/icalendar/import-rrule-yearly.diary-european
new file mode 100644
index 00000000000..a4bd81d6f2b
--- /dev/null
+++ b/test/data/icalendar/import-rrule-yearly.diary-european
@@ -0,0 +1 @@
&%%(and (diary-anniversary 19 9 2003)) 09:00-11:30 rrule yearly
diff --git a/test/data/icalendar/import-rrule-yearly.diary-iso b/test/data/icalendar/import-rrule-yearly.diary-iso
new file mode 100644
index 00000000000..65a7abe0344
--- /dev/null
+++ b/test/data/icalendar/import-rrule-yearly.diary-iso
@@ -0,0 +1 @@
&%%(and (diary-anniversary 2003 9 19)) 09:00-11:30 rrule yearly
diff --git a/test/data/icalendar/import-rrule-yearly.ics b/test/data/icalendar/import-rrule-yearly.ics
new file mode 100644
index 00000000000..21cca097f7e
--- /dev/null
+++ b/test/data/icalendar/import-rrule-yearly.ics
@@ -0,0 +1,11 @@
1BEGIN:VCALENDAR
2PRODID:-//Emacs//NONSGML icalendar.el//EN
3VERSION:2.0
4BEGIN:VEVENT
5SUMMARY:rrule yearly
6DTSTART;VALUE=DATE-TIME:20030919T090000
7DTEND;VALUE=DATE-TIME:20030919T113000
8RRULE:FREQ=YEARLY;INTERVAL=2
9END:VEVENT
10END:VCALENDAR
11
diff --git a/test/data/icalendar/import-with-timezone.diary-iso b/test/data/icalendar/import-with-timezone.diary-iso
new file mode 100644
index 00000000000..f99b59213e5
--- /dev/null
+++ b/test/data/icalendar/import-with-timezone.diary-iso
@@ -0,0 +1,2 @@
1&2012/1/15 15:00-15:30 standardtime
2&2012/12/15 11:00-11:30 daylightsavingtime
diff --git a/test/data/icalendar/import-with-timezone.ics b/test/data/icalendar/import-with-timezone.ics
new file mode 100644
index 00000000000..110a9835e41
--- /dev/null
+++ b/test/data/icalendar/import-with-timezone.ics
@@ -0,0 +1,27 @@
1BEGIN:VCALENDAR
2BEGIN:VTIMEZONE
3TZID:fictional, nonexistent, arbitrary
4BEGIN:STANDARD
5DTSTART:20100101T000000
6TZOFFSETFROM:+0200
7TZOFFSETTO:-0200
8RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=1SU;BYMONTH=01
9END:STANDARD
10BEGIN:DAYLIGHT
11DTSTART:20101201T000000
12TZOFFSETFROM:-0200
13TZOFFSETTO:+0200
14RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=1SU;BYMONTH=11
15END:DAYLIGHT
16END:VTIMEZONE
17BEGIN:VEVENT
18SUMMARY:standardtime
19DTSTART;TZID="fictional, nonexistent, arbitrary":20120115T120000
20DTEND;TZID="fictional, nonexistent, arbitrary":20120115T123000
21END:VEVENT
22BEGIN:VEVENT
23SUMMARY:daylightsavingtime
24DTSTART;TZID="fictional, nonexistent, arbitrary":20121215T120000
25DTEND;TZID="fictional, nonexistent, arbitrary":20121215T123000
26END:VEVENT
27END:VCALENDAR
diff --git a/test/data/icalendar/import-with-uid.diary-american b/test/data/icalendar/import-with-uid.diary-american
new file mode 100644
index 00000000000..9b2f06afc26
--- /dev/null
+++ b/test/data/icalendar/import-with-uid.diary-american
@@ -0,0 +1,2 @@
1&9/19/2003 09:00-11:30 non-recurring
2 UID: 1234567890uid
diff --git a/test/data/icalendar/import-with-uid.diary-european b/test/data/icalendar/import-with-uid.diary-european
new file mode 100644
index 00000000000..95db4d40151
--- /dev/null
+++ b/test/data/icalendar/import-with-uid.diary-european
@@ -0,0 +1,2 @@
1&19/9/2003 09:00-11:30 non-recurring
2 UID: 1234567890uid
diff --git a/test/data/icalendar/import-with-uid.diary-iso b/test/data/icalendar/import-with-uid.diary-iso
new file mode 100644
index 00000000000..d372e5a3d1f
--- /dev/null
+++ b/test/data/icalendar/import-with-uid.diary-iso
@@ -0,0 +1,2 @@
1&2003/9/19 09:00-11:30 non-recurring
2 UID: 1234567890uid
diff --git a/test/data/icalendar/import-with-uid.ics b/test/data/icalendar/import-with-uid.ics
new file mode 100644
index 00000000000..db412d9d9f5
--- /dev/null
+++ b/test/data/icalendar/import-with-uid.ics
@@ -0,0 +1,10 @@
1BEGIN:VCALENDAR
2PRODID:-//Emacs//NONSGML icalendar.el//EN
3VERSION:2.0
4BEGIN:VEVENT
5UID:1234567890uid
6SUMMARY:non-recurring
7DTSTART;VALUE=DATE-TIME:20030919T090000
8DTEND;VALUE=DATE-TIME:20030919T113000
9END:VEVENT
10END:VCALENDAR