From 556b9a600dcc45b6a0cab9b96fb400a76b7e79da Mon Sep 17 00:00:00 2001 From: Thomas Irgang Date: Wed, 19 Jul 2017 10:05:03 +0200 Subject: [PATCH] ical events tests --- test/__init__.py | 3 + test/test_data/basic.ics | 1508 +++++++++++++++++++++++++++++ test/test_data/basic_content.txt | 1508 +++++++++++++++++++++++++++++ test/test_data/icloud.ics | 305 ++++++ test/test_data/icloud_content.txt | 305 ++++++ test/test_icaldownload.py | 62 ++ test/test_icalparser.py | 90 ++ 7 files changed, 3781 insertions(+) create mode 100644 test/__init__.py create mode 100644 test/test_data/basic.ics create mode 100644 test/test_data/basic_content.txt create mode 100644 test/test_data/icloud.ics create mode 100644 test/test_data/icloud_content.txt create mode 100644 test/test_icaldownload.py create mode 100644 test/test_icalparser.py diff --git a/test/__init__.py b/test/__init__.py new file mode 100644 index 0000000..c281211 --- /dev/null +++ b/test/__init__.py @@ -0,0 +1,3 @@ +""" +Tests for icalevents. +""" diff --git a/test/test_data/basic.ics b/test/test_data/basic.ics new file mode 100644 index 0000000..c442f2d --- /dev/null +++ b/test/test_data/basic.ics @@ -0,0 +1,1508 @@ +BEGIN:VCALENDAR +PRODID:-//Google Inc//Google Calendar 70.9054//EN +VERSION:2.0 +CALSCALE:GREGORIAN +METHOD:PUBLISH +X-WR-CALNAME:Müll +X-WR-TIMEZONE:Europe/Berlin +X-WR-CALDESC:Müllabholung Treuchtlingen Luitpoldstraße +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170712 +DTEND;VALUE=DATE:20170713 +DTSTAMP:20170711T171222Z +UID:0eedefedba891fcbb49dcfa4279d9d93 +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170711T160050Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +BEGIN:VALARM +ACTION:NONE +TRIGGER;VALUE=DATE-TIME:19760401T005545Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170712 +DTEND;VALUE=DATE:20170713 +DTSTAMP:20170711T171222Z +UID:e122da9cfb107b38516b45571d212f4f +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170711T160048Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +BEGIN:VALARM +ACTION:NONE +TRIGGER;VALUE=DATE-TIME:19760401T005545Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170626 +DTEND;VALUE=DATE:20170627 +DTSTAMP:20170711T171222Z +UID:efe9e2c0be259e0f3aabd383ee6c4d15 +CREATED:20170103T080401Z +DESCRIPTION:Gelber Sack nicht vergessen! +LAST-MODIFIED:20170625T160105Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:Gelber Sack +TRANSP:TRANSPARENT +BEGIN:VALARM +ACTION:NONE +TRIGGER;VALUE=DATE-TIME:19760401T005545Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170622 +DTEND;VALUE=DATE:20170623 +DTSTAMP:20170711T171222Z +UID:07c802ef4f8fe50f95faf0ac95ac881c +CREATED:20170103T080401Z +DESCRIPTION:grüne Papiertonne und grüner 1\,1m³ Papiercontainer nicht verge + ssen! +LAST-MODIFIED:20170621T144339Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:grüne Papiertonne und grüner 1\,1m³ Papiercontainer +TRANSP:TRANSPARENT +BEGIN:VALARM +ACTION:NONE +TRIGGER;VALUE=DATE-TIME:19760401T005545Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170614 +DTEND;VALUE=DATE:20170615 +DTSTAMP:20170711T171222Z +UID:7c994ff7de1de11183053c180adfc867 +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170613T173416Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +X-APPLE-TRAVEL-ADVISORY-BEHAVIOR:AUTOMATIC +BEGIN:VALARM +ACTION:AUDIO +TRIGGER:-PT15H +X-WR-ALARMUID:BC3EDCEF-AAB1-4A24-AB4D-69B6B4A9F597 +UID:BC3EDCEF-AAB1-4A24-AB4D-69B6B4A9F597 +ATTACH;VALUE=URI:Basso +X-APPLE-DEFAULT-ALARM:TRUE +ACKNOWLEDGED:20170613T173415Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170614 +DTEND;VALUE=DATE:20170615 +DTSTAMP:20170711T171222Z +UID:36b222845f3311adc661fe262b1154b8 +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170613T173340Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +X-APPLE-TRAVEL-ADVISORY-BEHAVIOR:AUTOMATIC +BEGIN:VALARM +ACTION:AUDIO +TRIGGER:-PT15H +X-WR-ALARMUID:E005835A-4FBA-4FC8-A8EA-3DDAFF0D195F +UID:E005835A-4FBA-4FC8-A8EA-3DDAFF0D195F +ATTACH;VALUE=URI:Basso +X-APPLE-DEFAULT-ALARM:TRUE +ACKNOWLEDGED:20170613T173339Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170608 +DTEND;VALUE=DATE:20170609 +DTSTAMP:20170711T171222Z +UID:c396c07c3daa1c21849738723d9a595e +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170608T152251Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +BEGIN:VALARM +ACTION:NONE +TRIGGER;VALUE=DATE-TIME:19760401T005545Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170531 +DTEND;VALUE=DATE:20170601 +DTSTAMP:20170711T171222Z +UID:4dbfa315cac19965a33882b0aa4c9e90 +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170530T082532Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +BEGIN:VALARM +ACTION:NONE +TRIGGER;VALUE=DATE-TIME:19760401T005545Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170531 +DTEND;VALUE=DATE:20170601 +DTSTAMP:20170711T171222Z +UID:5ca0da577f9c2b932c2ac7b430b38ab4 +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170530T082531Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +BEGIN:VALARM +ACTION:NONE +TRIGGER;VALUE=DATE-TIME:19760401T005545Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170524 +DTEND;VALUE=DATE:20170525 +DTSTAMP:20170711T171222Z +UID:617bdd5b0817191ed3c8b95ec8aa910b +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170523T090111Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +BEGIN:VALARM +ACTION:NONE +TRIGGER;VALUE=DATE-TIME:19760401T005545Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170524 +DTEND;VALUE=DATE:20170525 +DTSTAMP:20170711T171222Z +UID:92dddc277b05b3b25a60f3896beb85f9 +CREATED:20170103T080401Z +DESCRIPTION:Gelber Sack nicht vergessen! +LAST-MODIFIED:20170523T090111Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:Gelber Sack +TRANSP:TRANSPARENT +BEGIN:VALARM +ACTION:NONE +TRIGGER;VALUE=DATE-TIME:19760401T005545Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170522 +DTEND;VALUE=DATE:20170523 +DTSTAMP:20170711T171222Z +UID:12a65763abc1354e36aa04e7b57d3ae0 +CREATED:20170103T080401Z +DESCRIPTION:grüne Papiertonne und grüner 1\,1m³ Papiercontainer nicht verge + ssen! +LAST-MODIFIED:20170521T125619Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:grüne Papiertonne und grüner 1\,1m³ Papiercontainer +TRANSP:TRANSPARENT +BEGIN:VALARM +ACTION:NONE +TRIGGER;VALUE=DATE-TIME:19760401T005545Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170517 +DTEND;VALUE=DATE:20170518 +DTSTAMP:20170711T171222Z +UID:f6e6b6d3eb68b176f8a88fbdaba6910e +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170516T092545Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +BEGIN:VALARM +ACTION:NONE +TRIGGER;VALUE=DATE-TIME:19760401T005545Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170517 +DTEND;VALUE=DATE:20170518 +DTSTAMP:20170711T171222Z +UID:c49bacfe7ceb769cf61d842448dd6102 +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170516T092544Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +BEGIN:VALARM +ACTION:NONE +TRIGGER;VALUE=DATE-TIME:19760401T005545Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170510 +DTEND;VALUE=DATE:20170511 +DTSTAMP:20170711T171222Z +UID:0432f7eea3d2ae4032ea41bbe76392d1 +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170509T160147Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +BEGIN:VALARM +ACTION:NONE +TRIGGER;VALUE=DATE-TIME:19760401T005545Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170426 +DTEND;VALUE=DATE:20170427 +DTSTAMP:20170711T171222Z +UID:012af86d58d90698ea922fb6b4661b06 +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170425T174313Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +BEGIN:VALARM +ACTION:NONE +TRIGGER;VALUE=DATE-TIME:19760401T005545Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170424 +DTEND;VALUE=DATE:20170425 +DTSTAMP:20170711T171222Z +UID:a918e86e2a2f4c6098a7c619ae2f4a40 +CREATED:20170103T080401Z +DESCRIPTION:Gelber Sack nicht vergessen! +LAST-MODIFIED:20170423T162255Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:Gelber Sack +TRANSP:TRANSPARENT +BEGIN:VALARM +ACTION:NONE +TRIGGER;VALUE=DATE-TIME:19760401T005545Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170412 +DTEND;VALUE=DATE:20170413 +DTSTAMP:20170711T171222Z +UID:935847042462cd08b76015c97cd90d14 +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170412T155528Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +BEGIN:VALARM +ACTION:NONE +TRIGGER;VALUE=DATE-TIME:19760401T005545Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170405 +DTEND;VALUE=DATE:20170406 +DTSTAMP:20170711T171222Z +UID:a6414e7f22bf7b30f45c427aaa947b4a +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170404T070148Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +BEGIN:VALARM +ACTION:NONE +TRIGGER;VALUE=DATE-TIME:19760401T005545Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170329 +DTEND;VALUE=DATE:20170330 +DTSTAMP:20170711T171222Z +UID:1a567b4e0d1efc31dc7893f087697a4f +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170328T165756Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +BEGIN:VALARM +ACTION:NONE +TRIGGER;VALUE=DATE-TIME:19760401T005545Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170320 +DTEND;VALUE=DATE:20170321 +DTSTAMP:20170711T171222Z +UID:7a5416a2ca1ac6d4bb77f8b94ed0a8be +CREATED:20170103T080401Z +DESCRIPTION:grüne Papiertonne und grüner 1\,1m³ Papiercontainer nicht verge + ssen! +LAST-MODIFIED:20170319T131719Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:grüne Papiertonne und grüner 1\,1m³ Papiercontainer +TRANSP:TRANSPARENT +X-APPLE-TRAVEL-ADVISORY-BEHAVIOR:AUTOMATIC +BEGIN:VALARM +ACTION:AUDIO +TRIGGER:-PT15H +X-WR-ALARMUID:4BB6A40E-6845-4541-BD87-0962514D03DC +UID:4BB6A40E-6845-4541-BD87-0962514D03DC +ATTACH;VALUE=URI:Basso +X-APPLE-DEFAULT-ALARM:TRUE +ACKNOWLEDGED:20170319T131719Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170308 +DTEND;VALUE=DATE:20170309 +DTSTAMP:20170711T171222Z +UID:3c72a54356c95bfbfe7383d1d3d19379 +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170307T100509Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +X-APPLE-TRAVEL-ADVISORY-BEHAVIOR:AUTOMATIC +BEGIN:VALARM +ACTION:AUDIO +TRIGGER:-PT15H +X-WR-ALARMUID:2DB10823-1AD7-4793-BC69-BC4FC1383E5E +UID:2DB10823-1AD7-4793-BC69-BC4FC1383E5E +ATTACH;VALUE=URI:Basso +X-APPLE-DEFAULT-ALARM:TRUE +ACKNOWLEDGED:20170307T100501Z +END:VALARM +BEGIN:VALARM +ACTION:AUDIO +TRIGGER;VALUE=DATE-TIME:20170307T100500Z +X-WR-ALARMUID:EE4099B4-69A5-4199-8601-F131819E01E0 +UID:EE4099B4-69A5-4199-8601-F131819E01E0 +ATTACH;VALUE=URI:Basso +RELATED-TO:2DB10823-1AD7-4793-BC69-BC4FC1383E5E +ACKNOWLEDGED:20170307T100501Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170301 +DTEND;VALUE=DATE:20170302 +DTSTAMP:20170711T171222Z +UID:0e17dbf248106fc4e0750b82204b1eb3 +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170228T174301Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +X-APPLE-TRAVEL-ADVISORY-BEHAVIOR:AUTOMATIC +BEGIN:VALARM +ACTION:AUDIO +TRIGGER:-PT15H +X-WR-ALARMUID:BE658068-8213-4228-BE68-AF2A53D8508F +UID:BE658068-8213-4228-BE68-AF2A53D8508F +ATTACH;VALUE=URI:Basso +X-APPLE-DEFAULT-ALARM:TRUE +ACKNOWLEDGED:20170228T174318Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170215 +DTEND;VALUE=DATE:20170216 +DTSTAMP:20170711T171222Z +UID:1e540f2f49688b87332de4f74c77b9c9 +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170214T182848Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +BEGIN:VALARM +ACTION:NONE +TRIGGER;VALUE=DATE-TIME:19760401T005545Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170203 +DTEND;VALUE=DATE:20170204 +DTSTAMP:20170711T171222Z +UID:bd22e2dec844adf3bddca2f4c0fd2f88 +CREATED:20170103T080401Z +DESCRIPTION:Sondermüll 13.00-16.00 Volksfestplatz nicht vergessen! +LAST-MODIFIED:20170202T125220Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:Sondermüll +TRANSP:TRANSPARENT +BEGIN:VALARM +ACTION:NONE +TRIGGER;VALUE=DATE-TIME:19760401T005545Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170201 +DTEND;VALUE=DATE:20170202 +DTSTAMP:20170711T171222Z +UID:8d6b72cc11bc18b07b6662e4230ebf6b +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170201T184715Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +BEGIN:VALARM +ACTION:NONE +TRIGGER;VALUE=DATE-TIME:19760401T005545Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20171027 +DTEND;VALUE=DATE:20171028 +DTSTAMP:20170711T171222Z +UID:b9f96af011f03644a186fd1633dd26c6 +CREATED:20170103T080401Z +DESCRIPTION:Sondermüll 13.00-16.00 Volksfestplatz nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:Sondermüll +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170804 +DTEND;VALUE=DATE:20170805 +DTSTAMP:20170711T171222Z +UID:4cb27817622e7b3274ad087e1894572a +CREATED:20170103T080401Z +DESCRIPTION:Sondermüll 13.00-16.00 Volksfestplatz nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:Sondermüll +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170422 +DTEND;VALUE=DATE:20170423 +DTSTAMP:20170711T171222Z +UID:3ab8a5bdbf22fa9b330e203611f5bcc7 +CREATED:20170103T080401Z +DESCRIPTION:Sondermüll 11.00-14.00 Volksfestplatz nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:Sondermüll +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170123 +DTEND;VALUE=DATE:20170124 +DTSTAMP:20170711T171222Z +UID:e3ac69ae8d6f05c15e5c1a8e2688c9b7 +CREATED:20170103T080401Z +DESCRIPTION:grüne Papiertonne und grüner 1\,1m³ Papiercontainer nicht verge + ssen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:grüne Papiertonne und grüner 1\,1m³ Papiercontainer +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170720 +DTEND;VALUE=DATE:20170721 +DTSTAMP:20170711T171222Z +UID:db02708b90bcac408e84a37f1f09010e +CREATED:20170103T080401Z +DESCRIPTION:grüne Papiertonne und grüner 1\,1m³ Papiercontainer nicht verge + ssen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:grüne Papiertonne und grüner 1\,1m³ Papiercontainer +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170914 +DTEND;VALUE=DATE:20170915 +DTSTAMP:20170711T171222Z +UID:b987aeb6ceedae19a92ed8e6d47feede +CREATED:20170103T080401Z +DESCRIPTION:grüne Papiertonne und grüner 1\,1m³ Papiercontainer nicht verge + ssen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:grüne Papiertonne und grüner 1\,1m³ Papiercontainer +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170220 +DTEND;VALUE=DATE:20170221 +DTSTAMP:20170711T171222Z +UID:ab0aaeb9d8487558c283be1422915899 +CREATED:20170103T080401Z +DESCRIPTION:grüne Papiertonne und grüner 1\,1m³ Papiercontainer nicht verge + ssen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:grüne Papiertonne und grüner 1\,1m³ Papiercontainer +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170817 +DTEND;VALUE=DATE:20170818 +DTSTAMP:20170711T171222Z +UID:8b8b1253498443ea1dcf4996b85384dc +CREATED:20170103T080401Z +DESCRIPTION:grüne Papiertonne und grüner 1\,1m³ Papiercontainer nicht verge + ssen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:grüne Papiertonne und grüner 1\,1m³ Papiercontainer +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20171219 +DTEND;VALUE=DATE:20171220 +DTSTAMP:20170711T171222Z +UID:71cba68020f1918038e158901906c38d +CREATED:20170103T080401Z +DESCRIPTION:grüne Papiertonne und grüner 1\,1m³ Papiercontainer nicht verge + ssen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:grüne Papiertonne und grüner 1\,1m³ Papiercontainer +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20171121 +DTEND;VALUE=DATE:20171122 +DTSTAMP:20170711T171222Z +UID:3e1b9285d22c9e3fc6aea39f30dcbf32 +CREATED:20170103T080401Z +DESCRIPTION:grüne Papiertonne und grüner 1\,1m³ Papiercontainer nicht verge + ssen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:grüne Papiertonne und grüner 1\,1m³ Papiercontainer +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170418 +DTEND;VALUE=DATE:20170419 +DTSTAMP:20170711T171222Z +UID:2dd84b7600eec3f674e2704b8b1ae442 +CREATED:20170103T080401Z +DESCRIPTION:grüne Papiertonne und grüner 1\,1m³ Papiercontainer nicht verge + ssen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:grüne Papiertonne und grüner 1\,1m³ Papiercontainer +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20171019 +DTEND;VALUE=DATE:20171020 +DTSTAMP:20170711T171222Z +UID:295a8a624928c949ece1f3991f2ab200 +CREATED:20170103T080401Z +DESCRIPTION:grüne Papiertonne und grüner 1\,1m³ Papiercontainer nicht verge + ssen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:grüne Papiertonne und grüner 1\,1m³ Papiercontainer +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20171115 +DTEND;VALUE=DATE:20171116 +DTSTAMP:20170711T171222Z +UID:f84edfee25e57fec7b2a0036235ae3ef +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20171129 +DTEND;VALUE=DATE:20171130 +DTSTAMP:20170711T171222Z +UID:e00a31d744277d44633bb8ff219853fb +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170823 +DTEND;VALUE=DATE:20170824 +DTSTAMP:20170711T171222Z +UID:ddf5c06a0f0ac02bebc0e8485fadd43f +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170322 +DTEND;VALUE=DATE:20170323 +DTSTAMP:20170711T171222Z +UID:dc7c42b1704baecd17811f6ccf5fb1ba +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170726 +DTEND;VALUE=DATE:20170727 +DTSTAMP:20170711T171222Z +UID:d758da5abb4acd5f3f84d25dec69ec1b +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170222 +DTEND;VALUE=DATE:20170223 +DTSTAMP:20170711T171222Z +UID:ceb59dbac23995412bfb62a59019f25c +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170920 +DTEND;VALUE=DATE:20170921 +DTSTAMP:20170711T171222Z +UID:c5f71249b1943da7bdbdad13922421cf +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170420 +DTEND;VALUE=DATE:20170421 +DTSTAMP:20170711T171222Z +UID:c14c86836347f9922f0c5d68a952dfd6 +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170809 +DTEND;VALUE=DATE:20170810 +DTSTAMP:20170711T171222Z +UID:93239592ff0f8d16bf34b2aa5c7288e2 +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170628 +DTEND;VALUE=DATE:20170629 +DTSTAMP:20170711T171222Z +UID:8e5e62128fe3ed2a22577725e6a605af +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170111 +DTEND;VALUE=DATE:20170112 +DTSTAMP:20170711T171222Z +UID:8c1c6aff0a57960ea573409be9c14c32 +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170208 +DTEND;VALUE=DATE:20170209 +DTSTAMP:20170711T171222Z +UID:7f7f6d57ee0058e042d9da043c111cb8 +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170125 +DTEND;VALUE=DATE:20170126 +DTSTAMP:20170711T171222Z +UID:68d38cb88d40779fa9aec09b84c004d8 +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170906 +DTEND;VALUE=DATE:20170907 +DTSTAMP:20170711T171222Z +UID:63dc783377f10a4c141a663fcdcff2a9 +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20171102 +DTEND;VALUE=DATE:20171103 +DTSTAMP:20170711T171222Z +UID:5e6fc787cb425c39cb3998639b4966a7 +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170504 +DTEND;VALUE=DATE:20170505 +DTSTAMP:20170711T171222Z +UID:5bf75396a5d201d18efebd220b1c1177 +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20171228 +DTEND;VALUE=DATE:20171229 +DTSTAMP:20170711T171222Z +UID:5a30134566e84224f30128808d89a31e +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20171005 +DTEND;VALUE=DATE:20171006 +DTSTAMP:20170711T171222Z +UID:4c58836e8beaee68920f11cfbb19b820 +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20171018 +DTEND;VALUE=DATE:20171019 +DTSTAMP:20170711T171222Z +UID:2415471b7ab7a6aa92a84eb7fddcee92 +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20171213 +DTEND;VALUE=DATE:20171214 +DTSTAMP:20170711T171222Z +UID:11be18f68972fbb15e8dff78616ea3a8 +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170322 +DTEND;VALUE=DATE:20170323 +DTSTAMP:20170711T171222Z +UID:fe7bdd0f1ae26125306052a4a03d2841 +CREATED:20170103T080401Z +DESCRIPTION:Gelber Sack nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:Gelber Sack +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170222 +DTEND;VALUE=DATE:20170223 +DTSTAMP:20170711T171222Z +UID:fbe837e05f4d57a238fd21f1fd990525 +CREATED:20170103T080401Z +DESCRIPTION:Gelber Sack nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:Gelber Sack +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170823 +DTEND;VALUE=DATE:20170824 +DTSTAMP:20170711T171222Z +UID:c5b7d52b109fbcbd55039c4d8e3fa69f +CREATED:20170103T080401Z +DESCRIPTION:Gelber Sack nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:Gelber Sack +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170125 +DTEND;VALUE=DATE:20170126 +DTSTAMP:20170711T171222Z +UID:becee7d5a184726bb0096bee84297e63 +CREATED:20170103T080401Z +DESCRIPTION:Gelber Sack nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:Gelber Sack +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20171023 +DTEND;VALUE=DATE:20171024 +DTSTAMP:20170711T171222Z +UID:aee6a98c7260300e8b857fb6c94855d2 +CREATED:20170103T080401Z +DESCRIPTION:Gelber Sack nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:Gelber Sack +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170726 +DTEND;VALUE=DATE:20170727 +DTSTAMP:20170711T171222Z +UID:a223fb2ab3c9c6948c2bfe17f5201fb2 +CREATED:20170103T080401Z +DESCRIPTION:Gelber Sack nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:Gelber Sack +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20171120 +DTEND;VALUE=DATE:20171121 +DTSTAMP:20170711T171222Z +UID:7e0895d1e0462593836c6ffab1051a44 +CREATED:20170103T080401Z +DESCRIPTION:Gelber Sack nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:Gelber Sack +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170921 +DTEND;VALUE=DATE:20170922 +DTSTAMP:20170711T171222Z +UID:4c5c9c893de7b4f7b3900cecb8198d56 +CREATED:20170103T080401Z +DESCRIPTION:Gelber Sack nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:Gelber Sack +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20171220 +DTEND;VALUE=DATE:20171221 +DTSTAMP:20170711T171222Z +UID:0d3a14a2db43e83871d6e890d1bf106d +CREATED:20170103T080401Z +DESCRIPTION:Gelber Sack nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:Gelber Sack +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170913 +DTEND;VALUE=DATE:20170914 +DTSTAMP:20170711T171222Z +UID:ffdb3556ae7d8e69cdf1abdb3b8724e5 +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170726 +DTEND;VALUE=DATE:20170727 +DTSTAMP:20170711T171222Z +UID:eb12b8e39471d01a0731370caee3a8d9 +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170920 +DTEND;VALUE=DATE:20170921 +DTSTAMP:20170711T171222Z +UID:e6b7080131d472ce18d7287d69f28f95 +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170705 +DTEND;VALUE=DATE:20170706 +DTSTAMP:20170711T171222Z +UID:e3a004ecd454d47b251d9a54ca9eb1f4 +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20171025 +DTEND;VALUE=DATE:20171026 +DTSTAMP:20170711T171222Z +UID:e19e1c3c2a9a53087d7965bcc9ced05f +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170927 +DTEND;VALUE=DATE:20170928 +DTSTAMP:20170711T171222Z +UID:dab760f60854de69501f6f12f561640c +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170830 +DTEND;VALUE=DATE:20170831 +DTSTAMP:20170711T171222Z +UID:c8d70536a1eba5b4a75f154c2b262747 +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20171102 +DTEND;VALUE=DATE:20171103 +DTSTAMP:20170711T171222Z +UID:b61452b731eda4e297ddc5077371b23b +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170118 +DTEND;VALUE=DATE:20170119 +DTSTAMP:20170711T171222Z +UID:acb89bbb7132daf5d1dfad9d37465566 +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20171108 +DTEND;VALUE=DATE:20171109 +DTSTAMP:20170711T171222Z +UID:a93e6810ba360eea0abbc25d9625c6b5 +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170621 +DTEND;VALUE=DATE:20170622 +DTSTAMP:20170711T171222Z +UID:a6718774e02d1fc560e885b555c80635 +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170504 +DTEND;VALUE=DATE:20170505 +DTSTAMP:20170711T171222Z +UID:a649b385d5b63bf49c1708ee4c48e5fb +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170719 +DTEND;VALUE=DATE:20170720 +DTSTAMP:20170711T171222Z +UID:9bc9a9a7a20118f55e8f8a3874f7caee +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170906 +DTEND;VALUE=DATE:20170907 +DTSTAMP:20170711T171222Z +UID:863ef88cd36254a31ef0e940e89f7650 +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170817 +DTEND;VALUE=DATE:20170818 +DTSTAMP:20170711T171222Z +UID:63d836662f6ee8fafe3dab60077da9ad +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20171005 +DTEND;VALUE=DATE:20171006 +DTSTAMP:20170711T171222Z +UID:6026bb0d055caf74eac88b8b31dd7f05 +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20171206 +DTEND;VALUE=DATE:20171207 +DTSTAMP:20170711T171222Z +UID:58b9d72d6641e50499b527f7e2afc8de +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170809 +DTEND;VALUE=DATE:20170810 +DTSTAMP:20170711T171222Z +UID:55bb6c11f2a3556431e943f2dd10cd2c +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20171122 +DTEND;VALUE=DATE:20171123 +DTSTAMP:20170711T171222Z +UID:48dc695b62a967fed5a3f4c35c082b9e +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170823 +DTEND;VALUE=DATE:20170824 +DTSTAMP:20170711T171222Z +UID:44d5882112b286940fd474c1256a330c +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170104 +DTEND;VALUE=DATE:20170105 +DTSTAMP:20170711T171222Z +UID:35b4b6d13b585bccc3d9e76f209de769 +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +BEGIN:VALARM +ACTION:NONE +TRIGGER;VALUE=DATE-TIME:19760401T005545Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170628 +DTEND;VALUE=DATE:20170629 +DTSTAMP:20170711T171222Z +UID:347383367fdf3f0f47e7c7720f626e1c +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20171220 +DTEND;VALUE=DATE:20171221 +DTSTAMP:20170711T171222Z +UID:2afeb7fb18f41bcbed600c88109fb34d +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170802 +DTEND;VALUE=DATE:20170803 +DTSTAMP:20170711T171222Z +UID:22b2a3c2db5d4f5d156478197ce2f099 +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170315 +DTEND;VALUE=DATE:20170316 +DTSTAMP:20170711T171222Z +UID:1c9b834c5770278fb11c534741eddd22 +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20171011 +DTEND;VALUE=DATE:20171012 +DTSTAMP:20170711T171222Z +UID:16ac78600ddabe1f3687ddbfe117759a +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20171018 +DTEND;VALUE=DATE:20171019 +DTSTAMP:20170711T171222Z +UID:02ffbdd421078a217b1a8055482e4012 +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20161213 +DTEND;VALUE=DATE:20161214 +DTSTAMP:20170711T171222Z +UID:d2fqot83imae46g8ov14p93jv4@google.com +CREATED:20161208T124911Z +DESCRIPTION: +LAST-MODIFIED:20161212T122336Z +LOCATION:Treuchtlingen\, 91757 Treuchtlingen\, Deutschland +SEQUENCE:1 +STATUS:CONFIRMED +SUMMARY:Bio +TRANSP:TRANSPARENT +X-APPLE-TRAVEL-ADVISORY-BEHAVIOR:AUTOMATIC +BEGIN:VALARM +ACTION:AUDIO +TRIGGER:-PT15H +X-WR-ALARMUID:4B966FA0-EAB2-43C6-A054-0782318F886A +UID:4B966FA0-EAB2-43C6-A054-0782318F886A +ATTACH;VALUE=URI:Basso +X-APPLE-DEFAULT-ALARM:TRUE +ACKNOWLEDGED:20161212T122336Z +END:VALARM +END:VEVENT +END:VCALENDAR diff --git a/test/test_data/basic_content.txt b/test/test_data/basic_content.txt new file mode 100644 index 0000000..c442f2d --- /dev/null +++ b/test/test_data/basic_content.txt @@ -0,0 +1,1508 @@ +BEGIN:VCALENDAR +PRODID:-//Google Inc//Google Calendar 70.9054//EN +VERSION:2.0 +CALSCALE:GREGORIAN +METHOD:PUBLISH +X-WR-CALNAME:Müll +X-WR-TIMEZONE:Europe/Berlin +X-WR-CALDESC:Müllabholung Treuchtlingen Luitpoldstraße +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170712 +DTEND;VALUE=DATE:20170713 +DTSTAMP:20170711T171222Z +UID:0eedefedba891fcbb49dcfa4279d9d93 +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170711T160050Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +BEGIN:VALARM +ACTION:NONE +TRIGGER;VALUE=DATE-TIME:19760401T005545Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170712 +DTEND;VALUE=DATE:20170713 +DTSTAMP:20170711T171222Z +UID:e122da9cfb107b38516b45571d212f4f +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170711T160048Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +BEGIN:VALARM +ACTION:NONE +TRIGGER;VALUE=DATE-TIME:19760401T005545Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170626 +DTEND;VALUE=DATE:20170627 +DTSTAMP:20170711T171222Z +UID:efe9e2c0be259e0f3aabd383ee6c4d15 +CREATED:20170103T080401Z +DESCRIPTION:Gelber Sack nicht vergessen! +LAST-MODIFIED:20170625T160105Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:Gelber Sack +TRANSP:TRANSPARENT +BEGIN:VALARM +ACTION:NONE +TRIGGER;VALUE=DATE-TIME:19760401T005545Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170622 +DTEND;VALUE=DATE:20170623 +DTSTAMP:20170711T171222Z +UID:07c802ef4f8fe50f95faf0ac95ac881c +CREATED:20170103T080401Z +DESCRIPTION:grüne Papiertonne und grüner 1\,1m³ Papiercontainer nicht verge + ssen! +LAST-MODIFIED:20170621T144339Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:grüne Papiertonne und grüner 1\,1m³ Papiercontainer +TRANSP:TRANSPARENT +BEGIN:VALARM +ACTION:NONE +TRIGGER;VALUE=DATE-TIME:19760401T005545Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170614 +DTEND;VALUE=DATE:20170615 +DTSTAMP:20170711T171222Z +UID:7c994ff7de1de11183053c180adfc867 +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170613T173416Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +X-APPLE-TRAVEL-ADVISORY-BEHAVIOR:AUTOMATIC +BEGIN:VALARM +ACTION:AUDIO +TRIGGER:-PT15H +X-WR-ALARMUID:BC3EDCEF-AAB1-4A24-AB4D-69B6B4A9F597 +UID:BC3EDCEF-AAB1-4A24-AB4D-69B6B4A9F597 +ATTACH;VALUE=URI:Basso +X-APPLE-DEFAULT-ALARM:TRUE +ACKNOWLEDGED:20170613T173415Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170614 +DTEND;VALUE=DATE:20170615 +DTSTAMP:20170711T171222Z +UID:36b222845f3311adc661fe262b1154b8 +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170613T173340Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +X-APPLE-TRAVEL-ADVISORY-BEHAVIOR:AUTOMATIC +BEGIN:VALARM +ACTION:AUDIO +TRIGGER:-PT15H +X-WR-ALARMUID:E005835A-4FBA-4FC8-A8EA-3DDAFF0D195F +UID:E005835A-4FBA-4FC8-A8EA-3DDAFF0D195F +ATTACH;VALUE=URI:Basso +X-APPLE-DEFAULT-ALARM:TRUE +ACKNOWLEDGED:20170613T173339Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170608 +DTEND;VALUE=DATE:20170609 +DTSTAMP:20170711T171222Z +UID:c396c07c3daa1c21849738723d9a595e +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170608T152251Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +BEGIN:VALARM +ACTION:NONE +TRIGGER;VALUE=DATE-TIME:19760401T005545Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170531 +DTEND;VALUE=DATE:20170601 +DTSTAMP:20170711T171222Z +UID:4dbfa315cac19965a33882b0aa4c9e90 +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170530T082532Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +BEGIN:VALARM +ACTION:NONE +TRIGGER;VALUE=DATE-TIME:19760401T005545Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170531 +DTEND;VALUE=DATE:20170601 +DTSTAMP:20170711T171222Z +UID:5ca0da577f9c2b932c2ac7b430b38ab4 +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170530T082531Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +BEGIN:VALARM +ACTION:NONE +TRIGGER;VALUE=DATE-TIME:19760401T005545Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170524 +DTEND;VALUE=DATE:20170525 +DTSTAMP:20170711T171222Z +UID:617bdd5b0817191ed3c8b95ec8aa910b +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170523T090111Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +BEGIN:VALARM +ACTION:NONE +TRIGGER;VALUE=DATE-TIME:19760401T005545Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170524 +DTEND;VALUE=DATE:20170525 +DTSTAMP:20170711T171222Z +UID:92dddc277b05b3b25a60f3896beb85f9 +CREATED:20170103T080401Z +DESCRIPTION:Gelber Sack nicht vergessen! +LAST-MODIFIED:20170523T090111Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:Gelber Sack +TRANSP:TRANSPARENT +BEGIN:VALARM +ACTION:NONE +TRIGGER;VALUE=DATE-TIME:19760401T005545Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170522 +DTEND;VALUE=DATE:20170523 +DTSTAMP:20170711T171222Z +UID:12a65763abc1354e36aa04e7b57d3ae0 +CREATED:20170103T080401Z +DESCRIPTION:grüne Papiertonne und grüner 1\,1m³ Papiercontainer nicht verge + ssen! +LAST-MODIFIED:20170521T125619Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:grüne Papiertonne und grüner 1\,1m³ Papiercontainer +TRANSP:TRANSPARENT +BEGIN:VALARM +ACTION:NONE +TRIGGER;VALUE=DATE-TIME:19760401T005545Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170517 +DTEND;VALUE=DATE:20170518 +DTSTAMP:20170711T171222Z +UID:f6e6b6d3eb68b176f8a88fbdaba6910e +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170516T092545Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +BEGIN:VALARM +ACTION:NONE +TRIGGER;VALUE=DATE-TIME:19760401T005545Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170517 +DTEND;VALUE=DATE:20170518 +DTSTAMP:20170711T171222Z +UID:c49bacfe7ceb769cf61d842448dd6102 +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170516T092544Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +BEGIN:VALARM +ACTION:NONE +TRIGGER;VALUE=DATE-TIME:19760401T005545Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170510 +DTEND;VALUE=DATE:20170511 +DTSTAMP:20170711T171222Z +UID:0432f7eea3d2ae4032ea41bbe76392d1 +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170509T160147Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +BEGIN:VALARM +ACTION:NONE +TRIGGER;VALUE=DATE-TIME:19760401T005545Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170426 +DTEND;VALUE=DATE:20170427 +DTSTAMP:20170711T171222Z +UID:012af86d58d90698ea922fb6b4661b06 +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170425T174313Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +BEGIN:VALARM +ACTION:NONE +TRIGGER;VALUE=DATE-TIME:19760401T005545Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170424 +DTEND;VALUE=DATE:20170425 +DTSTAMP:20170711T171222Z +UID:a918e86e2a2f4c6098a7c619ae2f4a40 +CREATED:20170103T080401Z +DESCRIPTION:Gelber Sack nicht vergessen! +LAST-MODIFIED:20170423T162255Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:Gelber Sack +TRANSP:TRANSPARENT +BEGIN:VALARM +ACTION:NONE +TRIGGER;VALUE=DATE-TIME:19760401T005545Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170412 +DTEND;VALUE=DATE:20170413 +DTSTAMP:20170711T171222Z +UID:935847042462cd08b76015c97cd90d14 +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170412T155528Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +BEGIN:VALARM +ACTION:NONE +TRIGGER;VALUE=DATE-TIME:19760401T005545Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170405 +DTEND;VALUE=DATE:20170406 +DTSTAMP:20170711T171222Z +UID:a6414e7f22bf7b30f45c427aaa947b4a +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170404T070148Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +BEGIN:VALARM +ACTION:NONE +TRIGGER;VALUE=DATE-TIME:19760401T005545Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170329 +DTEND;VALUE=DATE:20170330 +DTSTAMP:20170711T171222Z +UID:1a567b4e0d1efc31dc7893f087697a4f +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170328T165756Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +BEGIN:VALARM +ACTION:NONE +TRIGGER;VALUE=DATE-TIME:19760401T005545Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170320 +DTEND;VALUE=DATE:20170321 +DTSTAMP:20170711T171222Z +UID:7a5416a2ca1ac6d4bb77f8b94ed0a8be +CREATED:20170103T080401Z +DESCRIPTION:grüne Papiertonne und grüner 1\,1m³ Papiercontainer nicht verge + ssen! +LAST-MODIFIED:20170319T131719Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:grüne Papiertonne und grüner 1\,1m³ Papiercontainer +TRANSP:TRANSPARENT +X-APPLE-TRAVEL-ADVISORY-BEHAVIOR:AUTOMATIC +BEGIN:VALARM +ACTION:AUDIO +TRIGGER:-PT15H +X-WR-ALARMUID:4BB6A40E-6845-4541-BD87-0962514D03DC +UID:4BB6A40E-6845-4541-BD87-0962514D03DC +ATTACH;VALUE=URI:Basso +X-APPLE-DEFAULT-ALARM:TRUE +ACKNOWLEDGED:20170319T131719Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170308 +DTEND;VALUE=DATE:20170309 +DTSTAMP:20170711T171222Z +UID:3c72a54356c95bfbfe7383d1d3d19379 +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170307T100509Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +X-APPLE-TRAVEL-ADVISORY-BEHAVIOR:AUTOMATIC +BEGIN:VALARM +ACTION:AUDIO +TRIGGER:-PT15H +X-WR-ALARMUID:2DB10823-1AD7-4793-BC69-BC4FC1383E5E +UID:2DB10823-1AD7-4793-BC69-BC4FC1383E5E +ATTACH;VALUE=URI:Basso +X-APPLE-DEFAULT-ALARM:TRUE +ACKNOWLEDGED:20170307T100501Z +END:VALARM +BEGIN:VALARM +ACTION:AUDIO +TRIGGER;VALUE=DATE-TIME:20170307T100500Z +X-WR-ALARMUID:EE4099B4-69A5-4199-8601-F131819E01E0 +UID:EE4099B4-69A5-4199-8601-F131819E01E0 +ATTACH;VALUE=URI:Basso +RELATED-TO:2DB10823-1AD7-4793-BC69-BC4FC1383E5E +ACKNOWLEDGED:20170307T100501Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170301 +DTEND;VALUE=DATE:20170302 +DTSTAMP:20170711T171222Z +UID:0e17dbf248106fc4e0750b82204b1eb3 +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170228T174301Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +X-APPLE-TRAVEL-ADVISORY-BEHAVIOR:AUTOMATIC +BEGIN:VALARM +ACTION:AUDIO +TRIGGER:-PT15H +X-WR-ALARMUID:BE658068-8213-4228-BE68-AF2A53D8508F +UID:BE658068-8213-4228-BE68-AF2A53D8508F +ATTACH;VALUE=URI:Basso +X-APPLE-DEFAULT-ALARM:TRUE +ACKNOWLEDGED:20170228T174318Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170215 +DTEND;VALUE=DATE:20170216 +DTSTAMP:20170711T171222Z +UID:1e540f2f49688b87332de4f74c77b9c9 +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170214T182848Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +BEGIN:VALARM +ACTION:NONE +TRIGGER;VALUE=DATE-TIME:19760401T005545Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170203 +DTEND;VALUE=DATE:20170204 +DTSTAMP:20170711T171222Z +UID:bd22e2dec844adf3bddca2f4c0fd2f88 +CREATED:20170103T080401Z +DESCRIPTION:Sondermüll 13.00-16.00 Volksfestplatz nicht vergessen! +LAST-MODIFIED:20170202T125220Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:Sondermüll +TRANSP:TRANSPARENT +BEGIN:VALARM +ACTION:NONE +TRIGGER;VALUE=DATE-TIME:19760401T005545Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170201 +DTEND;VALUE=DATE:20170202 +DTSTAMP:20170711T171222Z +UID:8d6b72cc11bc18b07b6662e4230ebf6b +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170201T184715Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +BEGIN:VALARM +ACTION:NONE +TRIGGER;VALUE=DATE-TIME:19760401T005545Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20171027 +DTEND;VALUE=DATE:20171028 +DTSTAMP:20170711T171222Z +UID:b9f96af011f03644a186fd1633dd26c6 +CREATED:20170103T080401Z +DESCRIPTION:Sondermüll 13.00-16.00 Volksfestplatz nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:Sondermüll +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170804 +DTEND;VALUE=DATE:20170805 +DTSTAMP:20170711T171222Z +UID:4cb27817622e7b3274ad087e1894572a +CREATED:20170103T080401Z +DESCRIPTION:Sondermüll 13.00-16.00 Volksfestplatz nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:Sondermüll +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170422 +DTEND;VALUE=DATE:20170423 +DTSTAMP:20170711T171222Z +UID:3ab8a5bdbf22fa9b330e203611f5bcc7 +CREATED:20170103T080401Z +DESCRIPTION:Sondermüll 11.00-14.00 Volksfestplatz nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:Sondermüll +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170123 +DTEND;VALUE=DATE:20170124 +DTSTAMP:20170711T171222Z +UID:e3ac69ae8d6f05c15e5c1a8e2688c9b7 +CREATED:20170103T080401Z +DESCRIPTION:grüne Papiertonne und grüner 1\,1m³ Papiercontainer nicht verge + ssen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:grüne Papiertonne und grüner 1\,1m³ Papiercontainer +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170720 +DTEND;VALUE=DATE:20170721 +DTSTAMP:20170711T171222Z +UID:db02708b90bcac408e84a37f1f09010e +CREATED:20170103T080401Z +DESCRIPTION:grüne Papiertonne und grüner 1\,1m³ Papiercontainer nicht verge + ssen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:grüne Papiertonne und grüner 1\,1m³ Papiercontainer +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170914 +DTEND;VALUE=DATE:20170915 +DTSTAMP:20170711T171222Z +UID:b987aeb6ceedae19a92ed8e6d47feede +CREATED:20170103T080401Z +DESCRIPTION:grüne Papiertonne und grüner 1\,1m³ Papiercontainer nicht verge + ssen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:grüne Papiertonne und grüner 1\,1m³ Papiercontainer +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170220 +DTEND;VALUE=DATE:20170221 +DTSTAMP:20170711T171222Z +UID:ab0aaeb9d8487558c283be1422915899 +CREATED:20170103T080401Z +DESCRIPTION:grüne Papiertonne und grüner 1\,1m³ Papiercontainer nicht verge + ssen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:grüne Papiertonne und grüner 1\,1m³ Papiercontainer +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170817 +DTEND;VALUE=DATE:20170818 +DTSTAMP:20170711T171222Z +UID:8b8b1253498443ea1dcf4996b85384dc +CREATED:20170103T080401Z +DESCRIPTION:grüne Papiertonne und grüner 1\,1m³ Papiercontainer nicht verge + ssen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:grüne Papiertonne und grüner 1\,1m³ Papiercontainer +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20171219 +DTEND;VALUE=DATE:20171220 +DTSTAMP:20170711T171222Z +UID:71cba68020f1918038e158901906c38d +CREATED:20170103T080401Z +DESCRIPTION:grüne Papiertonne und grüner 1\,1m³ Papiercontainer nicht verge + ssen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:grüne Papiertonne und grüner 1\,1m³ Papiercontainer +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20171121 +DTEND;VALUE=DATE:20171122 +DTSTAMP:20170711T171222Z +UID:3e1b9285d22c9e3fc6aea39f30dcbf32 +CREATED:20170103T080401Z +DESCRIPTION:grüne Papiertonne und grüner 1\,1m³ Papiercontainer nicht verge + ssen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:grüne Papiertonne und grüner 1\,1m³ Papiercontainer +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170418 +DTEND;VALUE=DATE:20170419 +DTSTAMP:20170711T171222Z +UID:2dd84b7600eec3f674e2704b8b1ae442 +CREATED:20170103T080401Z +DESCRIPTION:grüne Papiertonne und grüner 1\,1m³ Papiercontainer nicht verge + ssen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:grüne Papiertonne und grüner 1\,1m³ Papiercontainer +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20171019 +DTEND;VALUE=DATE:20171020 +DTSTAMP:20170711T171222Z +UID:295a8a624928c949ece1f3991f2ab200 +CREATED:20170103T080401Z +DESCRIPTION:grüne Papiertonne und grüner 1\,1m³ Papiercontainer nicht verge + ssen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:grüne Papiertonne und grüner 1\,1m³ Papiercontainer +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20171115 +DTEND;VALUE=DATE:20171116 +DTSTAMP:20170711T171222Z +UID:f84edfee25e57fec7b2a0036235ae3ef +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20171129 +DTEND;VALUE=DATE:20171130 +DTSTAMP:20170711T171222Z +UID:e00a31d744277d44633bb8ff219853fb +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170823 +DTEND;VALUE=DATE:20170824 +DTSTAMP:20170711T171222Z +UID:ddf5c06a0f0ac02bebc0e8485fadd43f +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170322 +DTEND;VALUE=DATE:20170323 +DTSTAMP:20170711T171222Z +UID:dc7c42b1704baecd17811f6ccf5fb1ba +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170726 +DTEND;VALUE=DATE:20170727 +DTSTAMP:20170711T171222Z +UID:d758da5abb4acd5f3f84d25dec69ec1b +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170222 +DTEND;VALUE=DATE:20170223 +DTSTAMP:20170711T171222Z +UID:ceb59dbac23995412bfb62a59019f25c +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170920 +DTEND;VALUE=DATE:20170921 +DTSTAMP:20170711T171222Z +UID:c5f71249b1943da7bdbdad13922421cf +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170420 +DTEND;VALUE=DATE:20170421 +DTSTAMP:20170711T171222Z +UID:c14c86836347f9922f0c5d68a952dfd6 +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170809 +DTEND;VALUE=DATE:20170810 +DTSTAMP:20170711T171222Z +UID:93239592ff0f8d16bf34b2aa5c7288e2 +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170628 +DTEND;VALUE=DATE:20170629 +DTSTAMP:20170711T171222Z +UID:8e5e62128fe3ed2a22577725e6a605af +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170111 +DTEND;VALUE=DATE:20170112 +DTSTAMP:20170711T171222Z +UID:8c1c6aff0a57960ea573409be9c14c32 +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170208 +DTEND;VALUE=DATE:20170209 +DTSTAMP:20170711T171222Z +UID:7f7f6d57ee0058e042d9da043c111cb8 +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170125 +DTEND;VALUE=DATE:20170126 +DTSTAMP:20170711T171222Z +UID:68d38cb88d40779fa9aec09b84c004d8 +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170906 +DTEND;VALUE=DATE:20170907 +DTSTAMP:20170711T171222Z +UID:63dc783377f10a4c141a663fcdcff2a9 +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20171102 +DTEND;VALUE=DATE:20171103 +DTSTAMP:20170711T171222Z +UID:5e6fc787cb425c39cb3998639b4966a7 +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170504 +DTEND;VALUE=DATE:20170505 +DTSTAMP:20170711T171222Z +UID:5bf75396a5d201d18efebd220b1c1177 +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20171228 +DTEND;VALUE=DATE:20171229 +DTSTAMP:20170711T171222Z +UID:5a30134566e84224f30128808d89a31e +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20171005 +DTEND;VALUE=DATE:20171006 +DTSTAMP:20170711T171222Z +UID:4c58836e8beaee68920f11cfbb19b820 +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20171018 +DTEND;VALUE=DATE:20171019 +DTSTAMP:20170711T171222Z +UID:2415471b7ab7a6aa92a84eb7fddcee92 +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20171213 +DTEND;VALUE=DATE:20171214 +DTSTAMP:20170711T171222Z +UID:11be18f68972fbb15e8dff78616ea3a8 +CREATED:20170103T080401Z +DESCRIPTION:graue Restmülltonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:graue Restmülltonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170322 +DTEND;VALUE=DATE:20170323 +DTSTAMP:20170711T171222Z +UID:fe7bdd0f1ae26125306052a4a03d2841 +CREATED:20170103T080401Z +DESCRIPTION:Gelber Sack nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:Gelber Sack +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170222 +DTEND;VALUE=DATE:20170223 +DTSTAMP:20170711T171222Z +UID:fbe837e05f4d57a238fd21f1fd990525 +CREATED:20170103T080401Z +DESCRIPTION:Gelber Sack nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:Gelber Sack +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170823 +DTEND;VALUE=DATE:20170824 +DTSTAMP:20170711T171222Z +UID:c5b7d52b109fbcbd55039c4d8e3fa69f +CREATED:20170103T080401Z +DESCRIPTION:Gelber Sack nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:Gelber Sack +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170125 +DTEND;VALUE=DATE:20170126 +DTSTAMP:20170711T171222Z +UID:becee7d5a184726bb0096bee84297e63 +CREATED:20170103T080401Z +DESCRIPTION:Gelber Sack nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:Gelber Sack +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20171023 +DTEND;VALUE=DATE:20171024 +DTSTAMP:20170711T171222Z +UID:aee6a98c7260300e8b857fb6c94855d2 +CREATED:20170103T080401Z +DESCRIPTION:Gelber Sack nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:Gelber Sack +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170726 +DTEND;VALUE=DATE:20170727 +DTSTAMP:20170711T171222Z +UID:a223fb2ab3c9c6948c2bfe17f5201fb2 +CREATED:20170103T080401Z +DESCRIPTION:Gelber Sack nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:Gelber Sack +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20171120 +DTEND;VALUE=DATE:20171121 +DTSTAMP:20170711T171222Z +UID:7e0895d1e0462593836c6ffab1051a44 +CREATED:20170103T080401Z +DESCRIPTION:Gelber Sack nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:Gelber Sack +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170921 +DTEND;VALUE=DATE:20170922 +DTSTAMP:20170711T171222Z +UID:4c5c9c893de7b4f7b3900cecb8198d56 +CREATED:20170103T080401Z +DESCRIPTION:Gelber Sack nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:Gelber Sack +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20171220 +DTEND;VALUE=DATE:20171221 +DTSTAMP:20170711T171222Z +UID:0d3a14a2db43e83871d6e890d1bf106d +CREATED:20170103T080401Z +DESCRIPTION:Gelber Sack nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:Gelber Sack +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170913 +DTEND;VALUE=DATE:20170914 +DTSTAMP:20170711T171222Z +UID:ffdb3556ae7d8e69cdf1abdb3b8724e5 +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170726 +DTEND;VALUE=DATE:20170727 +DTSTAMP:20170711T171222Z +UID:eb12b8e39471d01a0731370caee3a8d9 +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170920 +DTEND;VALUE=DATE:20170921 +DTSTAMP:20170711T171222Z +UID:e6b7080131d472ce18d7287d69f28f95 +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170705 +DTEND;VALUE=DATE:20170706 +DTSTAMP:20170711T171222Z +UID:e3a004ecd454d47b251d9a54ca9eb1f4 +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20171025 +DTEND;VALUE=DATE:20171026 +DTSTAMP:20170711T171222Z +UID:e19e1c3c2a9a53087d7965bcc9ced05f +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170927 +DTEND;VALUE=DATE:20170928 +DTSTAMP:20170711T171222Z +UID:dab760f60854de69501f6f12f561640c +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170830 +DTEND;VALUE=DATE:20170831 +DTSTAMP:20170711T171222Z +UID:c8d70536a1eba5b4a75f154c2b262747 +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20171102 +DTEND;VALUE=DATE:20171103 +DTSTAMP:20170711T171222Z +UID:b61452b731eda4e297ddc5077371b23b +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170118 +DTEND;VALUE=DATE:20170119 +DTSTAMP:20170711T171222Z +UID:acb89bbb7132daf5d1dfad9d37465566 +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20171108 +DTEND;VALUE=DATE:20171109 +DTSTAMP:20170711T171222Z +UID:a93e6810ba360eea0abbc25d9625c6b5 +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170621 +DTEND;VALUE=DATE:20170622 +DTSTAMP:20170711T171222Z +UID:a6718774e02d1fc560e885b555c80635 +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170504 +DTEND;VALUE=DATE:20170505 +DTSTAMP:20170711T171222Z +UID:a649b385d5b63bf49c1708ee4c48e5fb +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170719 +DTEND;VALUE=DATE:20170720 +DTSTAMP:20170711T171222Z +UID:9bc9a9a7a20118f55e8f8a3874f7caee +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170906 +DTEND;VALUE=DATE:20170907 +DTSTAMP:20170711T171222Z +UID:863ef88cd36254a31ef0e940e89f7650 +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170817 +DTEND;VALUE=DATE:20170818 +DTSTAMP:20170711T171222Z +UID:63d836662f6ee8fafe3dab60077da9ad +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20171005 +DTEND;VALUE=DATE:20171006 +DTSTAMP:20170711T171222Z +UID:6026bb0d055caf74eac88b8b31dd7f05 +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20171206 +DTEND;VALUE=DATE:20171207 +DTSTAMP:20170711T171222Z +UID:58b9d72d6641e50499b527f7e2afc8de +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170809 +DTEND;VALUE=DATE:20170810 +DTSTAMP:20170711T171222Z +UID:55bb6c11f2a3556431e943f2dd10cd2c +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20171122 +DTEND;VALUE=DATE:20171123 +DTSTAMP:20170711T171222Z +UID:48dc695b62a967fed5a3f4c35c082b9e +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170823 +DTEND;VALUE=DATE:20170824 +DTSTAMP:20170711T171222Z +UID:44d5882112b286940fd474c1256a330c +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170104 +DTEND;VALUE=DATE:20170105 +DTSTAMP:20170711T171222Z +UID:35b4b6d13b585bccc3d9e76f209de769 +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +BEGIN:VALARM +ACTION:NONE +TRIGGER;VALUE=DATE-TIME:19760401T005545Z +END:VALARM +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170628 +DTEND;VALUE=DATE:20170629 +DTSTAMP:20170711T171222Z +UID:347383367fdf3f0f47e7c7720f626e1c +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20171220 +DTEND;VALUE=DATE:20171221 +DTSTAMP:20170711T171222Z +UID:2afeb7fb18f41bcbed600c88109fb34d +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170802 +DTEND;VALUE=DATE:20170803 +DTSTAMP:20170711T171222Z +UID:22b2a3c2db5d4f5d156478197ce2f099 +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20170315 +DTEND;VALUE=DATE:20170316 +DTSTAMP:20170711T171222Z +UID:1c9b834c5770278fb11c534741eddd22 +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20171011 +DTEND;VALUE=DATE:20171012 +DTSTAMP:20170711T171222Z +UID:16ac78600ddabe1f3687ddbfe117759a +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20171018 +DTEND;VALUE=DATE:20171019 +DTSTAMP:20170711T171222Z +UID:02ffbdd421078a217b1a8055482e4012 +CREATED:20170103T080401Z +DESCRIPTION:braune Biotonne nicht vergessen! +LAST-MODIFIED:20170126T100735Z +LOCATION:Luitpoldstraße\, Treuchtlingen +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:braune Biotonne +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +DTSTART;VALUE=DATE:20161213 +DTEND;VALUE=DATE:20161214 +DTSTAMP:20170711T171222Z +UID:d2fqot83imae46g8ov14p93jv4@google.com +CREATED:20161208T124911Z +DESCRIPTION: +LAST-MODIFIED:20161212T122336Z +LOCATION:Treuchtlingen\, 91757 Treuchtlingen\, Deutschland +SEQUENCE:1 +STATUS:CONFIRMED +SUMMARY:Bio +TRANSP:TRANSPARENT +X-APPLE-TRAVEL-ADVISORY-BEHAVIOR:AUTOMATIC +BEGIN:VALARM +ACTION:AUDIO +TRIGGER:-PT15H +X-WR-ALARMUID:4B966FA0-EAB2-43C6-A054-0782318F886A +UID:4B966FA0-EAB2-43C6-A054-0782318F886A +ATTACH;VALUE=URI:Basso +X-APPLE-DEFAULT-ALARM:TRUE +ACKNOWLEDGED:20161212T122336Z +END:VALARM +END:VEVENT +END:VCALENDAR diff --git a/test/test_data/icloud.ics b/test/test_data/icloud.ics new file mode 100644 index 0000000..1679376 --- /dev/null +++ b/test/test_data/icloud.ics @@ -0,0 +1,305 @@ +BEGIN:VCALENDAR +VERSION:2.0 +X-WR-CALNAME:Der Wir Kalender +X-WR-CALDESC: +X-APPLE-CALENDAR-COLOR:#ff2d55FF +BEGIN:VTIMEZONE +TZID:US/Pacific +X-LIC-LOCATION:US/Pacific +BEGIN:STANDARD +DTSTART:18831118T120702 +RDATE;VALUE=DATE-TIME:18831118T120702 +TZNAME:PST +TZOFFSETFROM:-0752 +TZOFFSETTO:-0800 +END:STANDARD +BEGIN:DAYLIGHT +DTSTART:19180331T020000 +RRULE:FREQ=YEARLY;UNTIL=19190330T100000Z;BYDAY=-1SU;BYMONTH=3 +TZNAME:PDT +TZOFFSETFROM:-0800 +TZOFFSETTO:-0700 +END:DAYLIGHT +BEGIN:STANDARD +DTSTART:19181027T020000 +RRULE:FREQ=YEARLY;UNTIL=19191026T090000Z;BYDAY=-1SU;BYMONTH=10 +TZNAME:PST +TZOFFSETFROM:-0700 +TZOFFSETTO:-0800 +END:STANDARD +BEGIN:DAYLIGHT +DTSTART:19420209T020000 +RDATE;VALUE=DATE-TIME:19420209T020000 +TZNAME:PWT +TZOFFSETFROM:-0800 +TZOFFSETTO:-0700 +END:DAYLIGHT +BEGIN:DAYLIGHT +DTSTART:19450814T160000 +RDATE;VALUE=DATE-TIME:19450814T160000 +TZNAME:PPT +TZOFFSETFROM:-0700 +TZOFFSETTO:-0700 +END:DAYLIGHT +BEGIN:STANDARD +DTSTART:19450930T020000 +RDATE;VALUE=DATE-TIME:19450930T020000 +RDATE;VALUE=DATE-TIME:19490101T020000 +TZNAME:PST +TZOFFSETFROM:-0700 +TZOFFSETTO:-0800 +END:STANDARD +BEGIN:STANDARD +DTSTART:19460101T000000 +RDATE;VALUE=DATE-TIME:19460101T000000 +RDATE;VALUE=DATE-TIME:19670101T000000 +TZNAME:PST +TZOFFSETFROM:-0800 +TZOFFSETTO:-0800 +END:STANDARD +BEGIN:DAYLIGHT +DTSTART:19480314T020100 +RDATE;VALUE=DATE-TIME:19480314T020100 +RDATE;VALUE=DATE-TIME:19740106T020000 +RDATE;VALUE=DATE-TIME:19750223T020000 +TZNAME:PDT +TZOFFSETFROM:-0800 +TZOFFSETTO:-0700 +END:DAYLIGHT +BEGIN:DAYLIGHT +DTSTART:19500430T010000 +RRULE:FREQ=YEARLY;UNTIL=19660424T090000Z;BYDAY=-1SU;BYMONTH=4 +TZNAME:PDT +TZOFFSETFROM:-0800 +TZOFFSETTO:-0700 +END:DAYLIGHT +BEGIN:STANDARD +DTSTART:19500924T020000 +RRULE:FREQ=YEARLY;UNTIL=19610924T090000Z;BYDAY=-1SU;BYMONTH=9 +TZNAME:PST +TZOFFSETFROM:-0700 +TZOFFSETTO:-0800 +END:STANDARD +BEGIN:STANDARD +DTSTART:19621028T020000 +RRULE:FREQ=YEARLY;UNTIL=19661030T090000Z;BYDAY=-1SU;BYMONTH=10 +TZNAME:PST +TZOFFSETFROM:-0700 +TZOFFSETTO:-0800 +END:STANDARD +BEGIN:DAYLIGHT +DTSTART:19670430T020000 +RRULE:FREQ=YEARLY;UNTIL=19730429T100000Z;BYDAY=-1SU;BYMONTH=4 +TZNAME:PDT +TZOFFSETFROM:-0800 +TZOFFSETTO:-0700 +END:DAYLIGHT +BEGIN:STANDARD +DTSTART:19671029T020000 +RRULE:FREQ=YEARLY;UNTIL=20061029T090000Z;BYDAY=-1SU;BYMONTH=10 +TZNAME:PST +TZOFFSETFROM:-0700 +TZOFFSETTO:-0800 +END:STANDARD +BEGIN:DAYLIGHT +DTSTART:19760425T020000 +RRULE:FREQ=YEARLY;UNTIL=19860427T100000Z;BYDAY=-1SU;BYMONTH=4 +TZNAME:PDT +TZOFFSETFROM:-0800 +TZOFFSETTO:-0700 +END:DAYLIGHT +BEGIN:DAYLIGHT +DTSTART:19870405T020000 +RRULE:FREQ=YEARLY;UNTIL=20060402T100000Z;BYDAY=1SU;BYMONTH=4 +TZNAME:PDT +TZOFFSETFROM:-0800 +TZOFFSETTO:-0700 +END:DAYLIGHT +BEGIN:DAYLIGHT +DTSTART:20070311T020000 +RRULE:FREQ=YEARLY;BYDAY=2SU;BYMONTH=3 +TZNAME:PDT +TZOFFSETFROM:-0800 +TZOFFSETTO:-0700 +END:DAYLIGHT +BEGIN:STANDARD +DTSTART:20071104T020000 +RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=11 +TZNAME:PST +TZOFFSETFROM:-0700 +TZOFFSETTO:-0800 +END:STANDARD +END:VTIMEZONE +BEGIN:VTIMEZONE +TZID:Europe/Berlin +X-LIC-LOCATION:Europe/Berlin +BEGIN:STANDARD +DTSTART:18930401T000000 +RDATE;VALUE=DATE-TIME:18930401T000000 +TZNAME:CEST +TZOFFSETFROM:+5328 +TZOFFSETTO:+0100 +END:STANDARD +BEGIN:DAYLIGHT +DTSTART:19160430T230000 +RDATE;VALUE=DATE-TIME:19160430T230000 +RDATE;VALUE=DATE-TIME:19400401T020000 +RDATE;VALUE=DATE-TIME:19430329T020000 +RDATE;VALUE=DATE-TIME:19460414T020000 +RDATE;VALUE=DATE-TIME:19470406T030000 +RDATE;VALUE=DATE-TIME:19480418T020000 +RDATE;VALUE=DATE-TIME:19490410T020000 +RDATE;VALUE=DATE-TIME:19800406T020000 +TZNAME:CEST +TZOFFSETFROM:+0100 +TZOFFSETTO:+0200 +END:DAYLIGHT +BEGIN:STANDARD +DTSTART:19161001T010000 +RDATE;VALUE=DATE-TIME:19161001T010000 +RDATE;VALUE=DATE-TIME:19421102T030000 +RDATE;VALUE=DATE-TIME:19431004T030000 +RDATE;VALUE=DATE-TIME:19441002T030000 +RDATE;VALUE=DATE-TIME:19451118T030000 +RDATE;VALUE=DATE-TIME:19461007T030000 +TZNAME:CET +TZOFFSETFROM:+0200 +TZOFFSETTO:+0100 +END:STANDARD +BEGIN:DAYLIGHT +DTSTART:19170416T020000 +RRULE:FREQ=YEARLY;UNTIL=19180415T010000Z;BYDAY=3MO;BYMONTH=4 +TZNAME:CEST +TZOFFSETFROM:+0100 +TZOFFSETTO:+0200 +END:DAYLIGHT +BEGIN:STANDARD +DTSTART:19170917T030000 +RRULE:FREQ=YEARLY;UNTIL=19180916T010000Z;BYDAY=3MO;BYMONTH=9 +TZNAME:CET +TZOFFSETFROM:+0200 +TZOFFSETTO:+0100 +END:STANDARD +BEGIN:DAYLIGHT +DTSTART:19440403T020000 +RRULE:FREQ=YEARLY;UNTIL=19450402T010000Z;BYDAY=1MO;BYMONTH=4 +TZNAME:CEST +TZOFFSETFROM:+0100 +TZOFFSETTO:+0200 +END:DAYLIGHT +BEGIN:DAYLIGHT +DTSTART:19450524T020000 +RDATE;VALUE=DATE-TIME:19450524T020000 +RDATE;VALUE=DATE-TIME:19470511T030000 +TZNAME:CEMT +TZOFFSETFROM:+0200 +TZOFFSETTO:+0300 +END:DAYLIGHT +BEGIN:DAYLIGHT +DTSTART:19450924T030000 +RDATE;VALUE=DATE-TIME:19450924T030000 +RDATE;VALUE=DATE-TIME:19470629T030000 +TZNAME:CEST +TZOFFSETFROM:+0300 +TZOFFSETTO:+0200 +END:DAYLIGHT +BEGIN:STANDARD +DTSTART:19460101T000000 +RDATE;VALUE=DATE-TIME:19460101T000000 +RDATE;VALUE=DATE-TIME:19800101T000000 +TZNAME:CEST +TZOFFSETFROM:+0100 +TZOFFSETTO:+0100 +END:STANDARD +BEGIN:STANDARD +DTSTART:19471005T030000 +RRULE:FREQ=YEARLY;UNTIL=19491002T010000Z;BYDAY=1SU;BYMONTH=10 +TZNAME:CET +TZOFFSETFROM:+0200 +TZOFFSETTO:+0100 +END:STANDARD +BEGIN:STANDARD +DTSTART:19800928T030000 +RRULE:FREQ=YEARLY;UNTIL=19950924T010000Z;BYDAY=-1SU;BYMONTH=9 +TZNAME:CET +TZOFFSETFROM:+0200 +TZOFFSETTO:+0100 +END:STANDARD +BEGIN:DAYLIGHT +DTSTART:19810329T020000 +RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3 +TZNAME:CEST +TZOFFSETFROM:+0100 +TZOFFSETTO:+0200 +END:DAYLIGHT +BEGIN:STANDARD +DTSTART:19961027T030000 +RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10 +TZNAME:CET +TZOFFSETFROM:+0200 +TZOFFSETTO:+0100 +END:STANDARD +END:VTIMEZONE +BEGIN:VEVENT +CREATED:20161026T154648Z +DTEND;TZID=Europe/Berlin:20161103T183000 +DTSTAMP:20161026T154649Z +DTSTART;TZID=Europe/Berlin:20161103T180000 +LAST-MODIFIED:20161026T154648Z +LOCATION:Naturpark Altmühltal\nKanalstraße 5\n91757 + Treuchtlingen\nDeutschland +SEQUENCE:0 +SUMMARY:Friseur +UID:003AFB7E-BA60-481A-A087-23024D956074 +X-APPLE-STRUCTURED-LOCATION;VALUE=URI;X-ADDRESS=Kanalstraße 5\\n91757 + Treuchtlingen\\nDeutschland;X-APPLE-RADIUS=100;X-APPLE-REFERENCEFRAME=1; + X-TITLE=Naturpark Altmühltal:geo:48.954682,10.909644 +END:VEVENT +BEGIN:VEVENT +DTEND;TZID=Europe/Berlin:20160616T213000 +UID:015A230B-1627-4C27-939B-DB0B54F8CF26 +DTSTAMP:20160616T173403Z +LOCATION:Römerstraße 49 +URL;VALUE=URI:message: + %3C1836419472.103507.1464935907579.JavaMail.open-xchange@omgreatgod.store% + 3E +SEQUENCE:0 +SUMMARY:Weinabend Franken – Castell +DTSTART;TZID=Europe/Berlin:20160616T193000 +CREATED:20160603T100150Z +LAST-MODIFIED:20160603T100150Z +END:VEVENT +BEGIN:VEVENT +CREATED:20151209T212646Z +DTEND;TZID=Europe/Berlin:20151209T110000 +DTSTAMP:20160401T132640Z +DTSTART;TZID=Europe/Berlin:20151209T100000 +LAST-MODIFIED:20160401T132551Z +RRULE:FREQ=YEARLY +SEQUENCE:1 +SUMMARY:Geburtstag +UID:09094143-005B-478F-BF37-10316FC9490B +END:VEVENT +BEGIN:VEVENT +CREATED:20160222T073027Z +DTEND;TZID=Europe/Berlin:20160222T173000 +DTSTAMP:20160926T150116Z +DTSTART;TZID=Europe/Berlin:20160222T161500 +EXDATE;TZID=Europe/Berlin:20160321T161500 +EXDATE;TZID=Europe/Berlin:20160328T161500 +EXDATE;TZID=Europe/Berlin:20160516T161500 +EXDATE;TZID=Europe/Berlin:20160523T161500 +EXDATE;TZID=Europe/Berlin:20160801T161500 +EXDATE;TZID=Europe/Berlin:20160808T161500 +EXDATE;TZID=Europe/Berlin:20160815T161500 +EXDATE;TZID=Europe/Berlin:20160822T161500 +EXDATE;TZID=Europe/Berlin:20160829T161500 +EXDATE;TZID=Europe/Berlin:20160905T161500 +EXDATE;TZID=Europe/Berlin:20160912T161500 +LAST-MODIFIED:20160926T150115Z +RRULE:FREQ=WEEKLY;UNTIL=20161001T215959Z +SEQUENCE:0 +SUMMARY:Kinderturnen +UID:0ED5515F-D6C2-4678-9EB1-8C483A12C410 +END:VEVENT +END:VCALENDAR diff --git a/test/test_data/icloud_content.txt b/test/test_data/icloud_content.txt new file mode 100644 index 0000000..aeb9bc1 --- /dev/null +++ b/test/test_data/icloud_content.txt @@ -0,0 +1,305 @@ +BEGIN:VCALENDAR +VERSION:2.0 +X-WR-CALNAME:Der Wir Kalender +X-WR-CALDESC: +X-APPLE-CALENDAR-COLOR:#ff2d55FF +BEGIN:VTIMEZONE +TZID:US/Pacific +X-LIC-LOCATION:US/Pacific +BEGIN:STANDARD +DTSTART:18831118T120702 +RDATE;VALUE=DATE-TIME:18831118T120702 +TZNAME:PST +TZOFFSETFROM:-0752 +TZOFFSETTO:-0800 +END:STANDARD +BEGIN:DAYLIGHT +DTSTART:19180331T020000 +RRULE:FREQ=YEARLY;UNTIL=19190330T100000Z;BYDAY=-1SU;BYMONTH=3 +TZNAME:PDT +TZOFFSETFROM:-0800 +TZOFFSETTO:-0700 +END:DAYLIGHT +BEGIN:STANDARD +DTSTART:19181027T020000 +RRULE:FREQ=YEARLY;UNTIL=19191026T090000Z;BYDAY=-1SU;BYMONTH=10 +TZNAME:PST +TZOFFSETFROM:-0700 +TZOFFSETTO:-0800 +END:STANDARD +BEGIN:DAYLIGHT +DTSTART:19420209T020000 +RDATE;VALUE=DATE-TIME:19420209T020000 +TZNAME:PWT +TZOFFSETFROM:-0800 +TZOFFSETTO:-0700 +END:DAYLIGHT +BEGIN:DAYLIGHT +DTSTART:19450814T160000 +RDATE;VALUE=DATE-TIME:19450814T160000 +TZNAME:PPT +TZOFFSETFROM:-0700 +TZOFFSETTO:-0700 +END:DAYLIGHT +BEGIN:STANDARD +DTSTART:19450930T020000 +RDATE;VALUE=DATE-TIME:19450930T020000 +RDATE;VALUE=DATE-TIME:19490101T020000 +TZNAME:PST +TZOFFSETFROM:-0700 +TZOFFSETTO:-0800 +END:STANDARD +BEGIN:STANDARD +DTSTART:19460101T000000 +RDATE;VALUE=DATE-TIME:19460101T000000 +RDATE;VALUE=DATE-TIME:19670101T000000 +TZNAME:PST +TZOFFSETFROM:-0800 +TZOFFSETTO:-0800 +END:STANDARD +BEGIN:DAYLIGHT +DTSTART:19480314T020100 +RDATE;VALUE=DATE-TIME:19480314T020100 +RDATE;VALUE=DATE-TIME:19740106T020000 +RDATE;VALUE=DATE-TIME:19750223T020000 +TZNAME:PDT +TZOFFSETFROM:-0800 +TZOFFSETTO:-0700 +END:DAYLIGHT +BEGIN:DAYLIGHT +DTSTART:19500430T010000 +RRULE:FREQ=YEARLY;UNTIL=19660424T090000Z;BYDAY=-1SU;BYMONTH=4 +TZNAME:PDT +TZOFFSETFROM:-0800 +TZOFFSETTO:-0700 +END:DAYLIGHT +BEGIN:STANDARD +DTSTART:19500924T020000 +RRULE:FREQ=YEARLY;UNTIL=19610924T090000Z;BYDAY=-1SU;BYMONTH=9 +TZNAME:PST +TZOFFSETFROM:-0700 +TZOFFSETTO:-0800 +END:STANDARD +BEGIN:STANDARD +DTSTART:19621028T020000 +RRULE:FREQ=YEARLY;UNTIL=19661030T090000Z;BYDAY=-1SU;BYMONTH=10 +TZNAME:PST +TZOFFSETFROM:-0700 +TZOFFSETTO:-0800 +END:STANDARD +BEGIN:DAYLIGHT +DTSTART:19670430T020000 +RRULE:FREQ=YEARLY;UNTIL=19730429T100000Z;BYDAY=-1SU;BYMONTH=4 +TZNAME:PDT +TZOFFSETFROM:-0800 +TZOFFSETTO:-0700 +END:DAYLIGHT +BEGIN:STANDARD +DTSTART:19671029T020000 +RRULE:FREQ=YEARLY;UNTIL=20061029T090000Z;BYDAY=-1SU;BYMONTH=10 +TZNAME:PST +TZOFFSETFROM:-0700 +TZOFFSETTO:-0800 +END:STANDARD +BEGIN:DAYLIGHT +DTSTART:19760425T020000 +RRULE:FREQ=YEARLY;UNTIL=19860427T100000Z;BYDAY=-1SU;BYMONTH=4 +TZNAME:PDT +TZOFFSETFROM:-0800 +TZOFFSETTO:-0700 +END:DAYLIGHT +BEGIN:DAYLIGHT +DTSTART:19870405T020000 +RRULE:FREQ=YEARLY;UNTIL=20060402T100000Z;BYDAY=1SU;BYMONTH=4 +TZNAME:PDT +TZOFFSETFROM:-0800 +TZOFFSETTO:-0700 +END:DAYLIGHT +BEGIN:DAYLIGHT +DTSTART:20070311T020000 +RRULE:FREQ=YEARLY;BYDAY=2SU;BYMONTH=3 +TZNAME:PDT +TZOFFSETFROM:-0800 +TZOFFSETTO:-0700 +END:DAYLIGHT +BEGIN:STANDARD +DTSTART:20071104T020000 +RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=11 +TZNAME:PST +TZOFFSETFROM:-0700 +TZOFFSETTO:-0800 +END:STANDARD +END:VTIMEZONE +BEGIN:VTIMEZONE +TZID:Europe/Berlin +X-LIC-LOCATION:Europe/Berlin +BEGIN:STANDARD +DTSTART:18930401T000000 +RDATE;VALUE=DATE-TIME:18930401T000000 +TZNAME:CEST +TZOFFSETFROM:+0053 +TZOFFSETTO:+0100 +END:STANDARD +BEGIN:DAYLIGHT +DTSTART:19160430T230000 +RDATE;VALUE=DATE-TIME:19160430T230000 +RDATE;VALUE=DATE-TIME:19400401T020000 +RDATE;VALUE=DATE-TIME:19430329T020000 +RDATE;VALUE=DATE-TIME:19460414T020000 +RDATE;VALUE=DATE-TIME:19470406T030000 +RDATE;VALUE=DATE-TIME:19480418T020000 +RDATE;VALUE=DATE-TIME:19490410T020000 +RDATE;VALUE=DATE-TIME:19800406T020000 +TZNAME:CEST +TZOFFSETFROM:+0100 +TZOFFSETTO:+0200 +END:DAYLIGHT +BEGIN:STANDARD +DTSTART:19161001T010000 +RDATE;VALUE=DATE-TIME:19161001T010000 +RDATE;VALUE=DATE-TIME:19421102T030000 +RDATE;VALUE=DATE-TIME:19431004T030000 +RDATE;VALUE=DATE-TIME:19441002T030000 +RDATE;VALUE=DATE-TIME:19451118T030000 +RDATE;VALUE=DATE-TIME:19461007T030000 +TZNAME:CET +TZOFFSETFROM:+0200 +TZOFFSETTO:+0100 +END:STANDARD +BEGIN:DAYLIGHT +DTSTART:19170416T020000 +RRULE:FREQ=YEARLY;UNTIL=19180415T010000Z;BYDAY=3MO;BYMONTH=4 +TZNAME:CEST +TZOFFSETFROM:+0100 +TZOFFSETTO:+0200 +END:DAYLIGHT +BEGIN:STANDARD +DTSTART:19170917T030000 +RRULE:FREQ=YEARLY;UNTIL=19180916T010000Z;BYDAY=3MO;BYMONTH=9 +TZNAME:CET +TZOFFSETFROM:+0200 +TZOFFSETTO:+0100 +END:STANDARD +BEGIN:DAYLIGHT +DTSTART:19440403T020000 +RRULE:FREQ=YEARLY;UNTIL=19450402T010000Z;BYDAY=1MO;BYMONTH=4 +TZNAME:CEST +TZOFFSETFROM:+0100 +TZOFFSETTO:+0200 +END:DAYLIGHT +BEGIN:DAYLIGHT +DTSTART:19450524T020000 +RDATE;VALUE=DATE-TIME:19450524T020000 +RDATE;VALUE=DATE-TIME:19470511T030000 +TZNAME:CEMT +TZOFFSETFROM:+0200 +TZOFFSETTO:+0300 +END:DAYLIGHT +BEGIN:DAYLIGHT +DTSTART:19450924T030000 +RDATE;VALUE=DATE-TIME:19450924T030000 +RDATE;VALUE=DATE-TIME:19470629T030000 +TZNAME:CEST +TZOFFSETFROM:+0300 +TZOFFSETTO:+0200 +END:DAYLIGHT +BEGIN:STANDARD +DTSTART:19460101T000000 +RDATE;VALUE=DATE-TIME:19460101T000000 +RDATE;VALUE=DATE-TIME:19800101T000000 +TZNAME:CEST +TZOFFSETFROM:+0100 +TZOFFSETTO:+0100 +END:STANDARD +BEGIN:STANDARD +DTSTART:19471005T030000 +RRULE:FREQ=YEARLY;UNTIL=19491002T010000Z;BYDAY=1SU;BYMONTH=10 +TZNAME:CET +TZOFFSETFROM:+0200 +TZOFFSETTO:+0100 +END:STANDARD +BEGIN:STANDARD +DTSTART:19800928T030000 +RRULE:FREQ=YEARLY;UNTIL=19950924T010000Z;BYDAY=-1SU;BYMONTH=9 +TZNAME:CET +TZOFFSETFROM:+0200 +TZOFFSETTO:+0100 +END:STANDARD +BEGIN:DAYLIGHT +DTSTART:19810329T020000 +RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3 +TZNAME:CEST +TZOFFSETFROM:+0100 +TZOFFSETTO:+0200 +END:DAYLIGHT +BEGIN:STANDARD +DTSTART:19961027T030000 +RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10 +TZNAME:CET +TZOFFSETFROM:+0200 +TZOFFSETTO:+0100 +END:STANDARD +END:VTIMEZONE +BEGIN:VEVENT +CREATED:20161026T154648Z +DTEND;TZID=Europe/Berlin:20161103T183000 +DTSTAMP:20161026T154649Z +DTSTART;TZID=Europe/Berlin:20161103T180000 +LAST-MODIFIED:20161026T154648Z +LOCATION:Naturpark Altmühltal\nKanalstraße 5\n91757 + Treuchtlingen\nDeutschland +SEQUENCE:0 +SUMMARY:Friseur +UID:003AFB7E-BA60-481A-A087-23024D956074 +X-APPLE-STRUCTURED-LOCATION;VALUE=URI;X-ADDRESS=Kanalstraße 5\\n91757 + Treuchtlingen\\nDeutschland;X-APPLE-RADIUS=100;X-APPLE-REFERENCEFRAME=1; + X-TITLE=Naturpark Altmühltal:geo:48.954682,10.909644 +END:VEVENT +BEGIN:VEVENT +DTEND;TZID=Europe/Berlin:20160616T213000 +UID:015A230B-1627-4C27-939B-DB0B54F8CF26 +DTSTAMP:20160616T173403Z +LOCATION:Römerstraße 49 +URL;VALUE=URI:message: + %3C1836419472.103507.1464935907579.JavaMail.open-xchange@omgreatgod.store% + 3E +SEQUENCE:0 +SUMMARY:Weinabend Franken – Castell +DTSTART;TZID=Europe/Berlin:20160616T193000 +CREATED:20160603T100150Z +LAST-MODIFIED:20160603T100150Z +END:VEVENT +BEGIN:VEVENT +CREATED:20151209T212646Z +DTEND;TZID=Europe/Berlin:20151209T110000 +DTSTAMP:20160401T132640Z +DTSTART;TZID=Europe/Berlin:20151209T100000 +LAST-MODIFIED:20160401T132551Z +RRULE:FREQ=YEARLY +SEQUENCE:1 +SUMMARY:Geburtstag +UID:09094143-005B-478F-BF37-10316FC9490B +END:VEVENT +BEGIN:VEVENT +CREATED:20160222T073027Z +DTEND;TZID=Europe/Berlin:20160222T173000 +DTSTAMP:20160926T150116Z +DTSTART;TZID=Europe/Berlin:20160222T161500 +EXDATE;TZID=Europe/Berlin:20160321T161500 +EXDATE;TZID=Europe/Berlin:20160328T161500 +EXDATE;TZID=Europe/Berlin:20160516T161500 +EXDATE;TZID=Europe/Berlin:20160523T161500 +EXDATE;TZID=Europe/Berlin:20160801T161500 +EXDATE;TZID=Europe/Berlin:20160808T161500 +EXDATE;TZID=Europe/Berlin:20160815T161500 +EXDATE;TZID=Europe/Berlin:20160822T161500 +EXDATE;TZID=Europe/Berlin:20160829T161500 +EXDATE;TZID=Europe/Berlin:20160905T161500 +EXDATE;TZID=Europe/Berlin:20160912T161500 +LAST-MODIFIED:20160926T150115Z +RRULE:FREQ=WEEKLY;UNTIL=20161001T215959Z +SEQUENCE:0 +SUMMARY:Kinderturnen +UID:0ED5515F-D6C2-4678-9EB1-8C483A12C410 +END:VEVENT +END:VCALENDAR diff --git a/test/test_icaldownload.py b/test/test_icaldownload.py new file mode 100644 index 0000000..148be20 --- /dev/null +++ b/test/test_icaldownload.py @@ -0,0 +1,62 @@ +import unittest +import icalevents.icaldownload + + +class ICalDownloadTests(unittest.TestCase): + + def test_apple_data_fix(self): + data = """ +DTSTART:18831118T120702 +RDATE;VALUE=DATE-TIME:18831118T120702 +TZNAME:PST +TZOFFSETFROM:+5328 +TZOFFSETTO:-0800 +END:STANDARD +BEGIN:DAYLIGHT +DTSTART:19180331T020000 + """ + expected = """ +DTSTART:18831118T120702 +RDATE;VALUE=DATE-TIME:18831118T120702 +TZNAME:PST +TZOFFSETFROM:+0053 +TZOFFSETTO:-0800 +END:STANDARD +BEGIN:DAYLIGHT +DTSTART:19180331T020000 + """ + res = icalevents.icaldownload.apple_data_fix(data) + self.assertEqual(res, expected, "fix invalid TZOFFSETFROM") + + def test_apple_url_fix(self): + data = "webcal://blah.blub/webcal/" + expected = "http://blah.blub/webcal/" + + res = icalevents.icaldownload.apple_url_fix(data) + self.assertEqual(res, expected, "fix url protocol") + + def test_data_from_file_google(self): + file = "test/test_data/basic.ics" + result = "test/test_data/basic_content.txt" + + expected = None + + with open(result, mode='r', encoding='utf-8') as f: + expected = f.read() + + content = icalevents.icaldownload.ICalDownload().data_from_file(file) + + self.assertEqual(expected, content, "content form iCal file, google format") + + def test_data_from_file_apple(self): + file = "test/test_data/icloud.ics" + result = "test/test_data/icloud_content.txt" + + expected = None + + with open(result, mode='r', encoding='utf-8') as f: + expected = f.read() + + content = icalevents.icaldownload.ICalDownload().data_from_file(file, apple_fix=True) + + self.assertEqual(expected, content, "content form iCal file, google format") diff --git a/test/test_icalparser.py b/test/test_icalparser.py new file mode 100644 index 0000000..5a8483a --- /dev/null +++ b/test/test_icalparser.py @@ -0,0 +1,90 @@ +import unittest +import icalevents.icalparser +from datetime import datetime, date +from pytz import utc + + +class ICalParserTests(unittest.TestCase): + + def setUp(self): + self.eventA = icalevents.icalparser.Event() + self.eventA.uid = 1234 + self.eventA.start = datetime(year=2017, month=2, day=3, hour=12, minute=5, tzinfo=utc) + self.eventA.end = datetime(year=2017, month=2, day=3, hour=15, minute=5, tzinfo=utc) + self.eventA.all_day = False + self.eventA.summary = "Event A" + + self.eventB = icalevents.icalparser.Event() + self.eventB.uid = 1234 + self.eventB.start = datetime(year=2017, month=2, day=1, hour=15, minute=5, tzinfo=utc) + self.eventB.end = datetime(year=2017, month=2, day=1, hour=16, minute=5, tzinfo=utc) + self.eventB.all_day = False + self.eventB.summary = "Event B" + + def test_now(self): + n = icalevents.icalparser.now() + + self.assertTrue(type(n) == datetime, "result of now has type datetime") + self.assertTrue(n.tzinfo, "result of now has a timezone info") + + def test_event_copy_to(self): + new_start = utc.normalize(datetime(year=2017, month=2, day=5, hour=12, minute=5, tzinfo=utc)) + eventC = self.eventA.copy_to(new_start) + + self.assertNotEqual(eventC.uid, self.eventA.uid, "new event has new UID") + self.assertEqual(eventC.start, new_start, "new event has new start") + self.assertEqual(eventC.end - eventC.start, self.eventA.end - self.eventA.start, "new event has same duration") + self.assertEqual(eventC.all_day , False, "new event is no all day event") + self.assertEqual(eventC.summary, self.eventA.summary, "copy to: summary") + + def test_event_order(self): + self.assertTrue(self.eventA > self.eventB, "order of events") + + def test_next_year(self): + date = utc.normalize(datetime(year=2016, month=1, day=1, hour=0, minute=0, tzinfo=utc)) + + other = icalevents.icalparser.next_year_at(date, count=2) + + self.assertEqual(date.year + 2, other.year, "year is changed") + self.assertEqual(date.month, other.month, "month is same") + self.assertEqual(date.day, other.day, "day is same") + self.assertEqual(date.hour, other.hour, "hour is same") + self.assertEqual(date.minute, other.minute, "minute is same") + self.assertEqual(date.tzinfo, other.tzinfo, "timezone is same") + + def test_next_month(self): + dt = utc.normalize(datetime(year=2016, month=10, day=1, hour=0, minute=0, tzinfo=utc)) + + other = icalevents.icalparser.next_month_at(dt, count=5) + + self.assertEqual(2017, other.year, "year is same") + self.assertEqual(3, other.month, "month is changed") + self.assertEqual(dt.day, other.day, "day is same") + self.assertEqual(dt.hour, other.hour, "hour is same") + self.assertEqual(dt.minute, other.minute, "minute is same") + self.assertEqual(dt.tzinfo, other.tzinfo, "timezone is same") + + def test_normalize(self): + dt = date(year=2016, month=11, day=13) + norm = icalevents.icalparser.normalize(dt) + + self.assertTrue(type(norm) is datetime, "type is datetime") + self.assertEqual(2016, norm.year, "year") + self.assertEqual(11, norm.month, "month") + self.assertEqual(13, norm.day, "day") + self.assertEqual(0, norm.hour, "hour") + self.assertEqual(0, norm.minute, "minute") + self.assertEqual(0, norm.second, "second") + self.assertEqual(0, norm.microsecond, "microsecond") + self.assertEqual(utc, norm.tzinfo, "timezone") + + def test_in_range(self): + range_start = datetime(year=2017, month=2, day=2, hour=12, minute=0, tzinfo=utc) + range_end = datetime(year=2017, month=2, day=4, hour=12, minute=0, tzinfo=utc) + + events = [self.eventA, self.eventB] + + filtered = icalevents.icalparser.in_range(events, range_start, range_end) + + self.assertEqual(len(filtered), 1, "one event is left") + self.assertEqual(filtered[0], self.eventA, "event A is left")