From acc2b77512ce0d8d708dda14dec1464f3eed830c Mon Sep 17 00:00:00 2001
From: tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>
Date: Fri, 14 May 2010 02:06:47 +0000
Subject: Second batch of kdepim stability and functionality repairs

git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdepim@1126473 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
---
 kaddressbook/features/resourceselection.cpp        |   87 +-
 kaddressbook/features/resourceselection.h          |    4 +
 kaddressbook/kabcore.cpp                           |   49 +-
 kaddressbook/views/contactlistview.cpp             |    7 +-
 knode/aboutdata.cpp                                |    3 +-
 korganizer/aboutdata.cpp                           |    4 +-
 korganizer/actionmanager.cpp                       |    2 +-
 korganizer/calendarview.cpp                        |    2 -
 korganizer/freebusymanager.cpp                     |   99 +-
 korganizer/koagenda.cpp                            |    7 +-
 korganizer/koagendaview.cpp                        |    7 +
 korganizer/koeditorgeneral.cpp                     |    7 +-
 korganizer/kogroupwareprefspage.ui                 |    8 +-
 korganizer/koprefs.cpp                             |    8 +
 korganizer/koprefs.h                               |    1 +
 korganizer/koprefsdialog.cpp                       |   13 +-
 korganizer/resourceview.cpp                        |    4 +-
 korganizer/timelabels.cpp                          |    5 +
 kresources/lib/Makefile.am                         |   10 +-
 kresources/remote/resourceremote.cpp               |   20 +-
 libkcal/Makefile.am                                |   11 +-
 libkcal/icalformat.cpp                             |   10 +-
 libkcal/icalformatimpl.cpp                         |    6 +-
 libkcal/icalformatimpl.h                           |    2 +-
 libkcal/libical/AUTHORS                            |    4 -
 libkcal/libical/COPYING                            |    0
 libkcal/libical/ChangeLog                          |  811 ------
 libkcal/libical/INSTALL                            |   24 -
 libkcal/libical/Makefile.am                        |   11 -
 libkcal/libical/NEWS                               |  522 ----
 libkcal/libical/README                             |  102 -
 libkcal/libical/README.zoneinfo                    |   44 -
 libkcal/libical/TEST                               |    4 -
 libkcal/libical/THANKS                             |   69 -
 libkcal/libical/TODO                               |   39 -
 libkcal/libical/configure.in.in                    |   20 -
 libkcal/libical/design-data/Makefile.am            |    6 -
 libkcal/libical/design-data/parameters.csv         |   25 -
 libkcal/libical/design-data/properties.csv         |   78 -
 libkcal/libical/design-data/restrictions.csv       | 1420 -----------
 libkcal/libical/design-data/status.txt             |   56 -
 libkcal/libical/design-data/value-types.csv        |   31 -
 libkcal/libical/doc/Makefile.am                    |    1 -
 libkcal/libical/doc/UsingLibical.lyx               | 2578 -------------------
 libkcal/libical/doc/UsingLibical.ps                | 2327 -----------------
 libkcal/libical/doc/UsingLibical.txt               | 1384 ----------
 libkcal/libical/examples/Makefile.am               |   16 -
 libkcal/libical/examples/access_components.c       |  318 ---
 .../examples/access_properties_and_parameters.c    |  144 --
 libkcal/libical/examples/errors.c                  |   70 -
 libkcal/libical/examples/main.c                    |   12 -
 libkcal/libical/examples/parse_text.c              |   68 -
 libkcal/libical/scripts/Makefile.am                |    9 -
 libkcal/libical/scripts/mkderivedcomponents.pl     |  170 --
 libkcal/libical/scripts/mkderivedparameters.pl     |  332 ---
 libkcal/libical/scripts/mkderivedproperties.pl     |  258 --
 libkcal/libical/scripts/mkderivedvalues.pl         |  236 --
 libkcal/libical/scripts/mkparameterrestrictions.pl |   85 -
 libkcal/libical/scripts/mkrestrictionrecords.pl    |  109 -
 libkcal/libical/scripts/mkrestrictiontable.pl      |   98 -
 libkcal/libical/scripts/readvaluesfile.pl          |  130 -
 libkcal/libical/src/Makefile.am                    |    1 -
 libkcal/libical/src/libical/Makefile.am            |  232 --
 libkcal/libical/src/libical/astime.h               |   65 -
 libkcal/libical/src/libical/caldate.c              |  176 --
 libkcal/libical/src/libical/icalarray.c            |  161 --
 libkcal/libical/src/libical/icalarray.h            |   61 -
 libkcal/libical/src/libical/icalattach.c           |  137 -
 libkcal/libical/src/libical/icalattach.h           |   60 -
 libkcal/libical/src/libical/icalattachimpl.h       |   58 -
 libkcal/libical/src/libical/icalcomponent.c        | 2598 -------------------
 libkcal/libical/src/libical/icalcomponent.h        |  283 ---
 .../libical/src/libical/icalderivedparameter.c.in  |  205 --
 .../libical/src/libical/icalderivedparameter.h.in  |   36 -
 .../libical/src/libical/icalderivedproperty.c.in   |  284 ---
 .../libical/src/libical/icalderivedproperty.h.in   |   21 -
 libkcal/libical/src/libical/icalderivedvalue.c.in  |  336 ---
 libkcal/libical/src/libical/icalderivedvalue.h.in  |   63 -
 libkcal/libical/src/libical/icalduration.c         |  331 ---
 libkcal/libical/src/libical/icalduration.h         |   61 -
 libkcal/libical/src/libical/icalenums.c            |  166 --
 libkcal/libical/src/libical/icalenums.h            |  166 --
 libkcal/libical/src/libical/icalerror.c            |  250 --
 libkcal/libical/src/libical/icalerror.h            |  160 --
 libkcal/libical/src/libical/icalmemory.c           |  373 ---
 libkcal/libical/src/libical/icalmemory.h           |   83 -
 libkcal/libical/src/libical/icalmime.c             |  393 ---
 libkcal/libical/src/libical/icalmime.h             |   42 -
 libkcal/libical/src/libical/icalparameter.c        |  384 ---
 libkcal/libical/src/libical/icalparameter.h        |   68 -
 libkcal/libical/src/libical/icalparameterimpl.h    |   51 -
 libkcal/libical/src/libical/icalparser.c           | 1105 --------
 libkcal/libical/src/libical/icalparser.h           |   96 -
 libkcal/libical/src/libical/icalperiod.c           |  169 --
 libkcal/libical/src/libical/icalperiod.h           |   54 -
 libkcal/libical/src/libical/icalproperty.c         |  998 --------
 libkcal/libical/src/libical/icalproperty.h         |  133 -
 libkcal/libical/src/libical/icalrecur.c            | 2400 ------------------
 libkcal/libical/src/libical/icalrecur.h            |  215 --
 libkcal/libical/src/libical/icalrestriction.c.in   |  503 ----
 libkcal/libical/src/libical/icalrestriction.h      |   63 -
 libkcal/libical/src/libical/icaltime.c             | 1014 --------
 libkcal/libical/src/libical/icaltime.h             |  271 --
 libkcal/libical/src/libical/icaltimezone.c         | 1670 ------------
 libkcal/libical/src/libical/icaltimezone.h         |  165 --
 libkcal/libical/src/libical/icaltypes.c            |  190 --
 libkcal/libical/src/libical/icaltypes.h            |  108 -
 libkcal/libical/src/libical/icalvalue.c            | 1326 ----------
 libkcal/libical/src/libical/icalvalue.h            |   87 -
 libkcal/libical/src/libical/icalvalueimpl.h        |   95 -
 libkcal/libical/src/libical/icalversion.h          |    7 -
 libkcal/libical/src/libical/icalversion.h.in       |    7 -
 libkcal/libical/src/libical/pvl.c                  |  585 -----
 libkcal/libical/src/libical/pvl.h                  |   98 -
 libkcal/libical/src/libical/sspm.c                 | 1630 ------------
 libkcal/libical/src/libical/sspm.h                 |  144 --
 libkcal/libical/src/libical/vsnprintf.c            |  172 --
 libkcal/libical/src/libicalss/Makefile.am          |   35 -
 libkcal/libical/src/libicalss/icalclassify.c       |  752 ------
 libkcal/libical/src/libicalss/icalclassify.h       |   38 -
 libkcal/libical/tzdata/africa                      |  673 -----
 libkcal/libical/tzdata/antarctica                  |  327 ---
 libkcal/libical/tzdata/asia                        | 1919 --------------
 libkcal/libical/tzdata/australasia                 | 1454 -----------
 libkcal/libical/tzdata/backward                    |  112 -
 libkcal/libical/tzdata/etcetera                    |   80 -
 libkcal/libical/tzdata/europe                      | 2525 -------------------
 libkcal/libical/tzdata/factory                     |    8 -
 libkcal/libical/tzdata/iso3166.tab                 |  269 --
 libkcal/libical/tzdata/leapseconds                 |   83 -
 libkcal/libical/tzdata/northamerica                | 2651 --------------------
 libkcal/libical/tzdata/pacificnew                  |   26 -
 libkcal/libical/tzdata/solar87                     |  388 ---
 libkcal/libical/tzdata/solar88                     |  388 ---
 libkcal/libical/tzdata/solar89                     |  393 ---
 libkcal/libical/tzdata/southamerica                | 1259 ----------
 libkcal/libical/tzdata/systemv                     |   36 -
 libkcal/libical/tzdata/yearistype.sh               |   40 -
 libkcal/libical/tzdata/zone.tab                    |  423 ----
 libkcal/libical/vzic-1.3/ChangeLog                 |   57 -
 libkcal/libical/vzic-1.3/Makefile                  |   83 -
 libkcal/libical/vzic-1.3/Makefile.org              |   89 -
 libkcal/libical/vzic-1.3/README                    |  202 --
 libkcal/libical/vzic-1.3/test-vzic.c               |  422 ----
 libkcal/libical/vzic-1.3/vzic-dump.c               |  409 ---
 libkcal/libical/vzic-1.3/vzic-dump.h               |   58 -
 libkcal/libical/vzic-1.3/vzic-dump.pl              |  222 --
 libkcal/libical/vzic-1.3/vzic-merge.pl             |  127 -
 libkcal/libical/vzic-1.3/vzic-output.c             | 2325 -----------------
 libkcal/libical/vzic-1.3/vzic-output.h             |   38 -
 libkcal/libical/vzic-1.3/vzic-parse.c              |  901 -------
 libkcal/libical/vzic-1.3/vzic-parse.h              |   38 -
 libkcal/libical/vzic-1.3/vzic-test.pl              |  164 --
 libkcal/libical/vzic-1.3/vzic.c                    |  320 ---
 libkcal/libical/vzic-1.3/vzic.h                    |  196 --
 libkcal/libical/zoneinfo/Africa/Abidjan.ics        |   15 -
 libkcal/libical/zoneinfo/Africa/Accra.ics          |   41 -
 libkcal/libical/zoneinfo/Africa/Addis_Ababa.ics    |   22 -
 libkcal/libical/zoneinfo/Africa/Algiers.ics        |   90 -
 libkcal/libical/zoneinfo/Africa/Asmara.ics         |   29 -
 libkcal/libical/zoneinfo/Africa/Bamako.ics         |   29 -
 libkcal/libical/zoneinfo/Africa/Bangui.ics         |   15 -
 libkcal/libical/zoneinfo/Africa/Banjul.ics         |   29 -
 libkcal/libical/zoneinfo/Africa/Bissau.ics         |   22 -
 libkcal/libical/zoneinfo/Africa/Blantyre.ics       |   15 -
 libkcal/libical/zoneinfo/Africa/Brazzaville.ics    |   15 -
 libkcal/libical/zoneinfo/Africa/Bujumbura.ics      |   15 -
 libkcal/libical/zoneinfo/Africa/Cairo.ics          |  148 --
 libkcal/libical/zoneinfo/Africa/Casablanca.ics     |   51 -
 libkcal/libical/zoneinfo/Africa/Ceuta.ics          |   99 -
 libkcal/libical/zoneinfo/Africa/Conakry.ics        |   29 -
 libkcal/libical/zoneinfo/Africa/Dakar.ics          |   22 -
 libkcal/libical/zoneinfo/Africa/Dar_es_Salaam.ics  |   29 -
 libkcal/libical/zoneinfo/Africa/Djibouti.ics       |   15 -
 libkcal/libical/zoneinfo/Africa/Douala.ics         |   15 -
 libkcal/libical/zoneinfo/Africa/El_Aaiun.ics       |   22 -
 libkcal/libical/zoneinfo/Africa/Freetown.ics       |   81 -
 libkcal/libical/zoneinfo/Africa/Gaborone.ics       |   29 -
 libkcal/libical/zoneinfo/Africa/Harare.ics         |   15 -
 libkcal/libical/zoneinfo/Africa/Johannesburg.ics   |   38 -
 libkcal/libical/zoneinfo/Africa/Kampala.ics        |   36 -
 libkcal/libical/zoneinfo/Africa/Khartoum.ics       |   66 -
 libkcal/libical/zoneinfo/Africa/Kigali.ics         |   15 -
 libkcal/libical/zoneinfo/Africa/Kinshasa.ics       |   15 -
 libkcal/libical/zoneinfo/Africa/Lagos.ics          |   15 -
 libkcal/libical/zoneinfo/Africa/Libreville.ics     |   15 -
 libkcal/libical/zoneinfo/Africa/Lome.ics           |   15 -
 libkcal/libical/zoneinfo/Africa/Luanda.ics         |   22 -
 libkcal/libical/zoneinfo/Africa/Lubumbashi.ics     |   15 -
 libkcal/libical/zoneinfo/Africa/Lusaka.ics         |   15 -
 libkcal/libical/zoneinfo/Africa/Malabo.ics         |   22 -
 libkcal/libical/zoneinfo/Africa/Maputo.ics         |   15 -
 libkcal/libical/zoneinfo/Africa/Maseru.ics         |   29 -
 libkcal/libical/zoneinfo/Africa/Mbabane.ics        |   15 -
 libkcal/libical/zoneinfo/Africa/Mogadishu.ics      |   29 -
 libkcal/libical/zoneinfo/Africa/Monrovia.ics       |   29 -
 libkcal/libical/zoneinfo/Africa/Nairobi.ics        |   36 -
 libkcal/libical/zoneinfo/Africa/Ndjamena.ics       |   29 -
 libkcal/libical/zoneinfo/Africa/Niamey.ics         |   29 -
 libkcal/libical/zoneinfo/Africa/Nouakchott.ics     |   29 -
 libkcal/libical/zoneinfo/Africa/Ouagadougou.ics    |   15 -
 libkcal/libical/zoneinfo/Africa/Porto-Novo.ics     |   22 -
 libkcal/libical/zoneinfo/Africa/Sao_Tome.ics       |   22 -
 libkcal/libical/zoneinfo/Africa/Tripoli.ics        |   67 -
 libkcal/libical/zoneinfo/Africa/Tunis.ics          |   74 -
 libkcal/libical/zoneinfo/Africa/Windhoek.ics       |   64 -
 libkcal/libical/zoneinfo/America/Adak.ics          |  186 --
 libkcal/libical/zoneinfo/America/Anchorage.ics     |  186 --
 libkcal/libical/zoneinfo/America/Anguilla.ics      |   15 -
 libkcal/libical/zoneinfo/America/Antigua.ics       |   22 -
 libkcal/libical/zoneinfo/America/Araguaina.ics     |   84 -
 .../zoneinfo/America/Argentina/Buenos_Aires.ics    |  134 -
 .../zoneinfo/America/Argentina/Catamarca.ics       |  154 --
 .../libical/zoneinfo/America/Argentina/Cordoba.ics |  146 --
 .../libical/zoneinfo/America/Argentina/Jujuy.ics   |  165 --
 .../zoneinfo/America/Argentina/La_Rioja.ics        |  149 --
 .../libical/zoneinfo/America/Argentina/Mendoza.ics |  160 --
 .../zoneinfo/America/Argentina/Rio_Gallegos.ics    |  142 --
 .../zoneinfo/America/Argentina/San_Juan.ics        |  149 --
 .../zoneinfo/America/Argentina/San_Luis.ics        |  141 --
 .../libical/zoneinfo/America/Argentina/Tucuman.ics |  154 --
 .../libical/zoneinfo/America/Argentina/Ushuaia.ics |  142 --
 libkcal/libical/zoneinfo/America/Aruba.ics         |   22 -
 libkcal/libical/zoneinfo/America/Asuncion.ics      |  121 -
 libkcal/libical/zoneinfo/America/Atikokan.ics      |   51 -
 libkcal/libical/zoneinfo/America/Bahia.ics         |   92 -
 libkcal/libical/zoneinfo/America/Barbados.ics      |   42 -
 libkcal/libical/zoneinfo/America/Belem.ics         |   62 -
 libkcal/libical/zoneinfo/America/Belize.ics        |   93 -
 libkcal/libical/zoneinfo/America/Blanc-Sablon.ics  |   51 -
 libkcal/libical/zoneinfo/America/Boa_Vista.ics     |   67 -
 libkcal/libical/zoneinfo/America/Bogota.ics        |   36 -
 libkcal/libical/zoneinfo/America/Boise.ics         |  166 --
 libkcal/libical/zoneinfo/America/Cambridge_Bay.ics |  155 --
 libkcal/libical/zoneinfo/America/Campo_Grande.ics  |  107 -
 libkcal/libical/zoneinfo/America/Cancun.ics        |   79 -
 libkcal/libical/zoneinfo/America/Caracas.ics       |   36 -
 libkcal/libical/zoneinfo/America/Cayenne.ics       |   22 -
 libkcal/libical/zoneinfo/America/Cayman.ics        |   22 -
 libkcal/libical/zoneinfo/America/Chicago.ics       |  242 --
 libkcal/libical/zoneinfo/America/Chihuahua.ics     |   90 -
 libkcal/libical/zoneinfo/America/Costa_Rica.ics    |   42 -
 libkcal/libical/zoneinfo/America/Cuiaba.ics        |  113 -
 libkcal/libical/zoneinfo/America/Curacao.ics       |   22 -
 libkcal/libical/zoneinfo/America/Danmarkshavn.ics  |   66 -
 libkcal/libical/zoneinfo/America/Dawson.ics        |  153 --
 libkcal/libical/zoneinfo/America/Dawson_Creek.ics  |  109 -
 libkcal/libical/zoneinfo/America/Denver.ics        |  158 --
 libkcal/libical/zoneinfo/America/Detroit.ics       |  145 --
 libkcal/libical/zoneinfo/America/Dominica.ics      |   15 -
 libkcal/libical/zoneinfo/America/Edmonton.ics      |  151 --
 libkcal/libical/zoneinfo/America/Eirunepe.ics      |   66 -
 libkcal/libical/zoneinfo/America/El_Salvador.ics   |   31 -
 libkcal/libical/zoneinfo/America/Fortaleza.ics     |   75 -
 libkcal/libical/zoneinfo/America/Glace_Bay.ics     |  140 --
 libkcal/libical/zoneinfo/America/Godthab.ics       |   58 -
 libkcal/libical/zoneinfo/America/Goose_Bay.ics     |  258 --
 libkcal/libical/zoneinfo/America/Grand_Turk.ics    |  104 -
 libkcal/libical/zoneinfo/America/Grenada.ics       |   15 -
 libkcal/libical/zoneinfo/America/Guadeloupe.ics    |   15 -
 libkcal/libical/zoneinfo/America/Guatemala.ics     |   35 -
 libkcal/libical/zoneinfo/America/Guayaquil.ics     |   22 -
 libkcal/libical/zoneinfo/America/Guyana.ics        |   36 -
 libkcal/libical/zoneinfo/America/Halifax.ics       |  228 --
 libkcal/libical/zoneinfo/America/Havana.ics        |  148 --
 libkcal/libical/zoneinfo/America/Hermosillo.ics    |   66 -
 .../zoneinfo/America/Indiana/Indianapolis.ics      |  125 -
 libkcal/libical/zoneinfo/America/Indiana/Knox.ics  |  169 --
 .../libical/zoneinfo/America/Indiana/Marengo.ics   |  133 -
 .../zoneinfo/America/Indiana/Petersburg.ics        |  133 -
 .../libical/zoneinfo/America/Indiana/Tell_City.ics |  130 -
 libkcal/libical/zoneinfo/America/Indiana/Vevay.ics |   98 -
 .../libical/zoneinfo/America/Indiana/Vincennes.ics |  132 -
 .../libical/zoneinfo/America/Indiana/Winamac.ics   |  143 --
 libkcal/libical/zoneinfo/America/Inuvik.ics        |  122 -
 libkcal/libical/zoneinfo/America/Iqaluit.ics       |  135 -
 libkcal/libical/zoneinfo/America/Jamaica.ics       |   61 -
 libkcal/libical/zoneinfo/America/Juneau.ics        |  173 --
 .../zoneinfo/America/Kentucky/Louisville.ics       |  205 --
 .../zoneinfo/America/Kentucky/Monticello.ics       |  164 --
 libkcal/libical/zoneinfo/America/La_Paz.ics        |   29 -
 libkcal/libical/zoneinfo/America/Lima.ics          |   48 -
 libkcal/libical/zoneinfo/America/Los_Angeles.ics   |  184 --
 libkcal/libical/zoneinfo/America/Maceio.ics        |   79 -
 libkcal/libical/zoneinfo/America/Managua.ics       |   54 -
 libkcal/libical/zoneinfo/America/Manaus.ics        |   66 -
 libkcal/libical/zoneinfo/America/Marigot.ics       |   15 -
 libkcal/libical/zoneinfo/America/Martinique.ics    |   36 -
 libkcal/libical/zoneinfo/America/Mazatlan.ics      |   79 -
 libkcal/libical/zoneinfo/America/Menominee.ics     |  152 --
 libkcal/libical/zoneinfo/America/Merida.ics        |   61 -
 libkcal/libical/zoneinfo/America/Mexico_City.ics   |   91 -
 libkcal/libical/zoneinfo/America/Miquelon.ics      |   95 -
 libkcal/libical/zoneinfo/America/Moncton.ics       |  215 --
 libkcal/libical/zoneinfo/America/Monterrey.ics     |   63 -
 libkcal/libical/zoneinfo/America/Montevideo.ics    |  151 --
 libkcal/libical/zoneinfo/America/Montreal.ics      |  233 --
 libkcal/libical/zoneinfo/America/Montserrat.ics    |   15 -
 libkcal/libical/zoneinfo/America/Nassau.ics        |  134 -
 libkcal/libical/zoneinfo/America/New_York.ics      |  236 --
 libkcal/libical/zoneinfo/America/Nipigon.ics       |  125 -
 libkcal/libical/zoneinfo/America/Nome.ics          |  186 --
 libkcal/libical/zoneinfo/America/Noronha.ics       |   75 -
 .../zoneinfo/America/North_Dakota/Center.ics       |  158 --
 .../zoneinfo/America/North_Dakota/New_Salem.ics    |  158 --
 libkcal/libical/zoneinfo/America/Panama.ics        |   22 -
 libkcal/libical/zoneinfo/America/Pangnirtung.ics   |  160 --
 libkcal/libical/zoneinfo/America/Paramaribo.ics    |   43 -
 libkcal/libical/zoneinfo/America/Phoenix.ics       |   51 -
 .../libical/zoneinfo/America/Port-au-Prince.ics    |   68 -
 libkcal/libical/zoneinfo/America/Port_of_Spain.ics |   15 -
 libkcal/libical/zoneinfo/America/Porto_Velho.ics   |   62 -
 libkcal/libical/zoneinfo/America/Puerto_Rico.ics   |   43 -
 libkcal/libical/zoneinfo/America/Rainy_River.ics   |  125 -
 libkcal/libical/zoneinfo/America/Rankin_Inlet.ics  |  121 -
 libkcal/libical/zoneinfo/America/Recife.ics        |   75 -
 libkcal/libical/zoneinfo/America/Regina.ics        |   97 -
 libkcal/libical/zoneinfo/America/Resolute.ics      |  107 -
 libkcal/libical/zoneinfo/America/Rio_Branco.ics    |   62 -
 libkcal/libical/zoneinfo/America/Santiago.ics      |  193 --
 libkcal/libical/zoneinfo/America/Santo_Domingo.ics |   67 -
 libkcal/libical/zoneinfo/America/Sao_Paulo.ics     |  114 -
 libkcal/libical/zoneinfo/America/Scoresbysund.ics  |   71 -
 libkcal/libical/zoneinfo/America/Shiprock.ics      |  158 --
 libkcal/libical/zoneinfo/America/St_Barthelemy.ics |   15 -
 libkcal/libical/zoneinfo/America/St_Johns.ics      |  268 --
 libkcal/libical/zoneinfo/America/St_Kitts.ics      |   15 -
 libkcal/libical/zoneinfo/America/St_Lucia.ics      |   22 -
 libkcal/libical/zoneinfo/America/St_Thomas.ics     |   15 -
 libkcal/libical/zoneinfo/America/St_Vincent.ics    |   22 -
 libkcal/libical/zoneinfo/America/Swift_Current.ics |   74 -
 libkcal/libical/zoneinfo/America/Tegucigalpa.ics   |   33 -
 libkcal/libical/zoneinfo/America/Thule.ics         |   73 -
 libkcal/libical/zoneinfo/America/Thunder_Bay.ics   |  145 --
 libkcal/libical/zoneinfo/America/Tijuana.ics       |  106 -
 libkcal/libical/zoneinfo/America/Toronto.ics       |  232 --
 libkcal/libical/zoneinfo/America/Tortola.ics       |   15 -
 libkcal/libical/zoneinfo/America/Vancouver.ics     |  187 --
 libkcal/libical/zoneinfo/America/Whitehorse.ics    |  153 --
 libkcal/libical/zoneinfo/America/Winnipeg.ics      |  183 --
 libkcal/libical/zoneinfo/America/Yakutat.ics       |  167 --
 libkcal/libical/zoneinfo/America/Yellowknife.ics   |  131 -
 libkcal/libical/zoneinfo/Antarctica/Casey.ics      |   15 -
 libkcal/libical/zoneinfo/Antarctica/Davis.ics      |   23 -
 .../libical/zoneinfo/Antarctica/DumontDUrville.ics |   29 -
 libkcal/libical/zoneinfo/Antarctica/Mawson.ics     |   15 -
 libkcal/libical/zoneinfo/Antarctica/McMurdo.ics    |  107 -
 libkcal/libical/zoneinfo/Antarctica/Palmer.ics     |  118 -
 libkcal/libical/zoneinfo/Antarctica/Rothera.ics    |   15 -
 libkcal/libical/zoneinfo/Antarctica/South_Pole.ics |  107 -
 libkcal/libical/zoneinfo/Antarctica/Syowa.ics      |   15 -
 libkcal/libical/zoneinfo/Antarctica/Vostok.ics     |   15 -
 libkcal/libical/zoneinfo/Arctic/Longyearbyen.ics   |   89 -
 libkcal/libical/zoneinfo/Asia/Aden.ics             |   15 -
 libkcal/libical/zoneinfo/Asia/Almaty.ics           |   89 -
 libkcal/libical/zoneinfo/Asia/Amman.ics            |   89 -
 libkcal/libical/zoneinfo/Asia/Anadyr.ics           |  112 -
 libkcal/libical/zoneinfo/Asia/Aqtau.ics            |  143 --
 libkcal/libical/zoneinfo/Asia/Aqtobe.ics           |  119 -
 libkcal/libical/zoneinfo/Asia/Ashgabat.ics         |   82 -
 libkcal/libical/zoneinfo/Asia/Baghdad.ics          |   86 -
 libkcal/libical/zoneinfo/Asia/Bahrain.ics          |   22 -
 libkcal/libical/zoneinfo/Asia/Baku.ics             |  119 -
 libkcal/libical/zoneinfo/Asia/Bangkok.ics          |   22 -
 libkcal/libical/zoneinfo/Asia/Beirut.ics           |   97 -
 libkcal/libical/zoneinfo/Asia/Bishkek.ics          |  108 -
 libkcal/libical/zoneinfo/Asia/Brunei.ics           |   22 -
 libkcal/libical/zoneinfo/Asia/Calcutta.ics         |   37 -
 libkcal/libical/zoneinfo/Asia/Choibalsan.ics       |   84 -
 libkcal/libical/zoneinfo/Asia/Chongqing.ics        |   46 -
 libkcal/libical/zoneinfo/Asia/Colombo.ics          |   64 -
 libkcal/libical/zoneinfo/Asia/Damascus.ics         |  131 -
 libkcal/libical/zoneinfo/Asia/Dhaka.ics            |   50 -
 libkcal/libical/zoneinfo/Asia/Dili.ics             |   43 -
 libkcal/libical/zoneinfo/Asia/Dubai.ics            |   15 -
 libkcal/libical/zoneinfo/Asia/Dushanbe.ics         |   68 -
 libkcal/libical/zoneinfo/Asia/Gaza.ics             |  147 --
 libkcal/libical/zoneinfo/Asia/Harbin.ics           |   61 -
 libkcal/libical/zoneinfo/Asia/Ho_Chi_Minh.ics      |   36 -
 libkcal/libical/zoneinfo/Asia/Hong_Kong.ics        |   95 -
 libkcal/libical/zoneinfo/Asia/Hovd.ics             |   78 -
 libkcal/libical/zoneinfo/Asia/Irkutsk.ics          |   95 -
 libkcal/libical/zoneinfo/Asia/Istanbul.ics         |  187 --
 libkcal/libical/zoneinfo/Asia/Jakarta.ics          |   64 -
 libkcal/libical/zoneinfo/Asia/Jayapura.ics         |   29 -
 libkcal/libical/zoneinfo/Asia/Jerusalem.ics        |  187 --
 libkcal/libical/zoneinfo/Asia/Kabul.ics            |   22 -
 libkcal/libical/zoneinfo/Asia/Kamchatka.ics        |   88 -
 libkcal/libical/zoneinfo/Asia/Karachi.ics          |   57 -
 libkcal/libical/zoneinfo/Asia/Kashgar.ics          |   53 -
 libkcal/libical/zoneinfo/Asia/Katmandu.ics         |   22 -
 libkcal/libical/zoneinfo/Asia/Kolkata.ics          |   37 -
 libkcal/libical/zoneinfo/Asia/Krasnoyarsk.ics      |   88 -
 libkcal/libical/zoneinfo/Asia/Kuala_Lumpur.ics     |   64 -
 libkcal/libical/zoneinfo/Asia/Kuching.ics          |   69 -
 libkcal/libical/zoneinfo/Asia/Kuwait.ics           |   15 -
 libkcal/libical/zoneinfo/Asia/Macau.ics            |   74 -
 libkcal/libical/zoneinfo/Asia/Magadan.ics          |   88 -
 libkcal/libical/zoneinfo/Asia/Makassar.ics         |   36 -
 libkcal/libical/zoneinfo/Asia/Manila.ics           |   48 -
 libkcal/libical/zoneinfo/Asia/Muscat.ics           |   15 -
 libkcal/libical/zoneinfo/Asia/Nicosia.ics          |   95 -
 libkcal/libical/zoneinfo/Asia/Novosibirsk.ics      |   96 -
 libkcal/libical/zoneinfo/Asia/Omsk.ics             |   88 -
 libkcal/libical/zoneinfo/Asia/Oral.ics             |  143 --
 libkcal/libical/zoneinfo/Asia/Phnom_Penh.ics       |   36 -
 libkcal/libical/zoneinfo/Asia/Pontianak.ics        |   64 -
 libkcal/libical/zoneinfo/Asia/Pyongyang.ics        |   44 -
 libkcal/libical/zoneinfo/Asia/Qatar.ics            |   22 -
 libkcal/libical/zoneinfo/Asia/Qyzylorda.ics        |  132 -
 libkcal/libical/zoneinfo/Asia/Rangoon.ics          |   36 -
 libkcal/libical/zoneinfo/Asia/Riyadh.ics           |   15 -
 libkcal/libical/zoneinfo/Asia/Saigon.ics           |   36 -
 libkcal/libical/zoneinfo/Asia/Sakhalin.ics         |  107 -
 libkcal/libical/zoneinfo/Asia/Samarkand.ics        |   88 -
 libkcal/libical/zoneinfo/Asia/Seoul.ics            |   69 -
 libkcal/libical/zoneinfo/Asia/Shanghai.ics         |   50 -
 libkcal/libical/zoneinfo/Asia/Singapore.ics        |   71 -
 libkcal/libical/zoneinfo/Asia/Taipei.ics           |   67 -
 libkcal/libical/zoneinfo/Asia/Tashkent.ics         |   82 -
 libkcal/libical/zoneinfo/Asia/Tbilisi.ics          |  159 --
 libkcal/libical/zoneinfo/Asia/Tehran.ics           |  156 --
 libkcal/libical/zoneinfo/Asia/Thimphu.ics          |   22 -
 libkcal/libical/zoneinfo/Asia/Tokyo.ics            |   49 -
 libkcal/libical/zoneinfo/Asia/Ulaanbaatar.ics      |   78 -
 libkcal/libical/zoneinfo/Asia/Urumqi.ics           |   46 -
 libkcal/libical/zoneinfo/Asia/Vientiane.ics        |   36 -
 libkcal/libical/zoneinfo/Asia/Vladivostok.ics      |   88 -
 libkcal/libical/zoneinfo/Asia/Yakutsk.ics          |   88 -
 libkcal/libical/zoneinfo/Asia/Yekaterinburg.ics    |  106 -
 libkcal/libical/zoneinfo/Asia/Yerevan.ics          |  110 -
 libkcal/libical/zoneinfo/Atlantic/Azores.ics       |  223 --
 libkcal/libical/zoneinfo/Atlantic/Bermuda.ics      |  114 -
 libkcal/libical/zoneinfo/Atlantic/Canary.ics       |   72 -
 libkcal/libical/zoneinfo/Atlantic/Cape_Verde.ics   |   36 -
 libkcal/libical/zoneinfo/Atlantic/Faroe.ics        |   57 -
 libkcal/libical/zoneinfo/Atlantic/Jan_Mayen.ics    |   89 -
 libkcal/libical/zoneinfo/Atlantic/Madeira.ics      |  201 --
 libkcal/libical/zoneinfo/Atlantic/Reykjavik.ics    |  103 -
 .../libical/zoneinfo/Atlantic/South_Georgia.ics    |   15 -
 libkcal/libical/zoneinfo/Atlantic/St_Helena.ics    |   22 -
 libkcal/libical/zoneinfo/Atlantic/Stanley.ics      |  120 -
 libkcal/libical/zoneinfo/Australia/Adelaide.ics    |  136 -
 libkcal/libical/zoneinfo/Australia/Brisbane.ics    |   50 -
 libkcal/libical/zoneinfo/Australia/Broken_Hill.ics |  150 --
 libkcal/libical/zoneinfo/Australia/Currie.ics      |  129 -
 libkcal/libical/zoneinfo/Australia/Darwin.ics      |   42 -
 libkcal/libical/zoneinfo/Australia/Eucla.ics       |   52 -
 libkcal/libical/zoneinfo/Australia/Hobart.ics      |  137 -
 libkcal/libical/zoneinfo/Australia/Lindeman.ics    |   55 -
 libkcal/libical/zoneinfo/Australia/Lord_Howe.ics   |  113 -
 libkcal/libical/zoneinfo/Australia/Melbourne.ics   |  129 -
 libkcal/libical/zoneinfo/Australia/Perth.ics       |   52 -
 libkcal/libical/zoneinfo/Australia/Sydney.ics      |  129 -
 libkcal/libical/zoneinfo/Europe/Amsterdam.ics      |  164 --
 libkcal/libical/zoneinfo/Europe/Andorra.ics        |   53 -
 libkcal/libical/zoneinfo/Europe/Athens.ics         |  116 -
 libkcal/libical/zoneinfo/Europe/Belgrade.ics       |   69 -
 libkcal/libical/zoneinfo/Europe/Berlin.ics         |  103 -
 libkcal/libical/zoneinfo/Europe/Bratislava.ics     |   96 -
 libkcal/libical/zoneinfo/Europe/Brussels.ics       |  164 --
 libkcal/libical/zoneinfo/Europe/Bucharest.ics      |  109 -
 libkcal/libical/zoneinfo/Europe/Budapest.ics       |  101 -
 libkcal/libical/zoneinfo/Europe/Chisinau.ics       |  161 --
 libkcal/libical/zoneinfo/Europe/Copenhagen.ics     |   88 -
 libkcal/libical/zoneinfo/Europe/Dublin.ics         |  201 --
 libkcal/libical/zoneinfo/Europe/Gibraltar.ics      |  171 --
 libkcal/libical/zoneinfo/Europe/Guernsey.ics       |  208 --
 libkcal/libical/zoneinfo/Europe/Helsinki.ics       |   72 -
 libkcal/libical/zoneinfo/Europe/Isle_of_Man.ics    |  208 --
 libkcal/libical/zoneinfo/Europe/Istanbul.ics       |  187 --
 libkcal/libical/zoneinfo/Europe/Jersey.ics         |  208 --
 libkcal/libical/zoneinfo/Europe/Kaliningrad.ics    |  138 -
 libkcal/libical/zoneinfo/Europe/Kiev.ics           |  137 -
 libkcal/libical/zoneinfo/Europe/Lisbon.ics         |  227 --
 libkcal/libical/zoneinfo/Europe/Ljubljana.ics      |   69 -
 libkcal/libical/zoneinfo/Europe/London.ics         |  208 --
 libkcal/libical/zoneinfo/Europe/Luxembourg.ics     |  155 --
 libkcal/libical/zoneinfo/Europe/Madrid.ics         |  136 -
 libkcal/libical/zoneinfo/Europe/Malta.ics          |  117 -
 libkcal/libical/zoneinfo/Europe/Mariehamn.ics      |   72 -
 libkcal/libical/zoneinfo/Europe/Minsk.ics          |  129 -
 libkcal/libical/zoneinfo/Europe/Monaco.ics         |  163 --
 libkcal/libical/zoneinfo/Europe/Moscow.ics         |  155 --
 libkcal/libical/zoneinfo/Europe/Nicosia.ics        |   95 -
 libkcal/libical/zoneinfo/Europe/Oslo.ics           |   89 -
 libkcal/libical/zoneinfo/Europe/Paris.ics          |  168 --
 libkcal/libical/zoneinfo/Europe/Podgorica.ics      |   69 -
 libkcal/libical/zoneinfo/Europe/Prague.ics         |   96 -
 libkcal/libical/zoneinfo/Europe/Riga.ics           |  167 --
 libkcal/libical/zoneinfo/Europe/Rome.ics           |  131 -
 libkcal/libical/zoneinfo/Europe/Samara.ics         |  125 -
 libkcal/libical/zoneinfo/Europe/San_Marino.ics     |  131 -
 libkcal/libical/zoneinfo/Europe/Sarajevo.ics       |   69 -
 libkcal/libical/zoneinfo/Europe/Simferopol.ics     |  150 --
 libkcal/libical/zoneinfo/Europe/Skopje.ics         |   69 -
 libkcal/libical/zoneinfo/Europe/Sofia.ics          |  123 -
 libkcal/libical/zoneinfo/Europe/Stockholm.ics      |   74 -
 libkcal/libical/zoneinfo/Europe/Tallinn.ics        |  160 --
 libkcal/libical/zoneinfo/Europe/Tirane.ics         |   85 -
 libkcal/libical/zoneinfo/Europe/Uzhgorod.ics       |  146 --
 libkcal/libical/zoneinfo/Europe/Vaduz.ics          |   57 -
 libkcal/libical/zoneinfo/Europe/Vatican.ics        |  131 -
 libkcal/libical/zoneinfo/Europe/Vienna.ics         |   89 -
 libkcal/libical/zoneinfo/Europe/Vilnius.ics        |  170 --
 libkcal/libical/zoneinfo/Europe/Volgograd.ics      |  112 -
 libkcal/libical/zoneinfo/Europe/Warsaw.ics         |  152 --
 libkcal/libical/zoneinfo/Europe/Zagreb.ics         |   69 -
 libkcal/libical/zoneinfo/Europe/Zaporozhye.ics     |  138 -
 libkcal/libical/zoneinfo/Europe/Zurich.ics         |   76 -
 libkcal/libical/zoneinfo/Indian/Antananarivo.ics   |   29 -
 libkcal/libical/zoneinfo/Indian/Chagos.ics         |   22 -
 libkcal/libical/zoneinfo/Indian/Christmas.ics      |   15 -
 libkcal/libical/zoneinfo/Indian/Cocos.ics          |   15 -
 libkcal/libical/zoneinfo/Indian/Comoro.ics         |   15 -
 libkcal/libical/zoneinfo/Indian/Kerguelen.ics      |   15 -
 libkcal/libical/zoneinfo/Indian/Mahe.ics           |   15 -
 libkcal/libical/zoneinfo/Indian/Maldives.ics       |   22 -
 libkcal/libical/zoneinfo/Indian/Mauritius.ics      |   15 -
 libkcal/libical/zoneinfo/Indian/Mayotte.ics        |   15 -
 libkcal/libical/zoneinfo/Indian/Reunion.ics        |   15 -
 libkcal/libical/zoneinfo/Makefile.am               |   39 -
 libkcal/libical/zoneinfo/Pacific/Apia.ics          |   29 -
 libkcal/libical/zoneinfo/Pacific/Auckland.ics      |  165 --
 libkcal/libical/zoneinfo/Pacific/Chatham.ics       |  107 -
 libkcal/libical/zoneinfo/Pacific/Easter.ics        |  154 --
 libkcal/libical/zoneinfo/Pacific/Efate.ics         |   47 -
 libkcal/libical/zoneinfo/Pacific/Enderbury.ics     |   29 -
 libkcal/libical/zoneinfo/Pacific/Fakaofo.ics       |   15 -
 libkcal/libical/zoneinfo/Pacific/Fiji.ics          |   31 -
 libkcal/libical/zoneinfo/Pacific/Funafuti.ics      |   15 -
 libkcal/libical/zoneinfo/Pacific/Galapagos.ics     |   22 -
 libkcal/libical/zoneinfo/Pacific/Gambier.ics       |   15 -
 libkcal/libical/zoneinfo/Pacific/Guadalcanal.ics   |   15 -
 libkcal/libical/zoneinfo/Pacific/Guam.ics          |   29 -
 libkcal/libical/zoneinfo/Pacific/Honolulu.ics      |   51 -
 libkcal/libical/zoneinfo/Pacific/Johnston.ics      |   15 -
 libkcal/libical/zoneinfo/Pacific/Kiritimati.ics    |   29 -
 libkcal/libical/zoneinfo/Pacific/Kosrae.ics        |   29 -
 libkcal/libical/zoneinfo/Pacific/Kwajalein.ics     |   29 -
 libkcal/libical/zoneinfo/Pacific/Majuro.ics        |   22 -
 libkcal/libical/zoneinfo/Pacific/Marquesas.ics     |   15 -
 libkcal/libical/zoneinfo/Pacific/Midway.ics        |   43 -
 libkcal/libical/zoneinfo/Pacific/Nauru.ics         |   36 -
 libkcal/libical/zoneinfo/Pacific/Niue.ics          |   29 -
 libkcal/libical/zoneinfo/Pacific/Norfolk.ics       |   22 -
 libkcal/libical/zoneinfo/Pacific/Noumea.ics        |   33 -
 libkcal/libical/zoneinfo/Pacific/Pago_Pago.ics     |   43 -
 libkcal/libical/zoneinfo/Pacific/Palau.ics         |   15 -
 libkcal/libical/zoneinfo/Pacific/Pitcairn.ics      |   22 -
 libkcal/libical/zoneinfo/Pacific/Ponape.ics        |   15 -
 libkcal/libical/zoneinfo/Pacific/Port_Moresby.ics  |   22 -
 libkcal/libical/zoneinfo/Pacific/Rarotonga.ics     |   59 -
 libkcal/libical/zoneinfo/Pacific/Saipan.ics        |   36 -
 libkcal/libical/zoneinfo/Pacific/Tahiti.ics        |   15 -
 libkcal/libical/zoneinfo/Pacific/Tarawa.ics        |   15 -
 libkcal/libical/zoneinfo/Pacific/Tongatapu.ics     |   47 -
 libkcal/libical/zoneinfo/Pacific/Truk.ics          |   15 -
 libkcal/libical/zoneinfo/Pacific/Wake.ics          |   15 -
 libkcal/libical/zoneinfo/Pacific/Wallis.ics        |   15 -
 libkcal/libical/zoneinfo/zones.h                   |  401 ---
 libkcal/libical/zoneinfo/zones.tab                 |  401 ---
 libkcal/vcalformat.cpp                             |    4 +-
 libkdepim/kfileio.cpp                              |   16 +-
 564 files changed, 274 insertions(+), 85676 deletions(-)
 delete mode 100644 libkcal/libical/AUTHORS
 delete mode 100644 libkcal/libical/COPYING
 delete mode 100644 libkcal/libical/ChangeLog
 delete mode 100644 libkcal/libical/INSTALL
 delete mode 100644 libkcal/libical/Makefile.am
 delete mode 100644 libkcal/libical/NEWS
 delete mode 100644 libkcal/libical/README
 delete mode 100644 libkcal/libical/README.zoneinfo
 delete mode 100644 libkcal/libical/TEST
 delete mode 100644 libkcal/libical/THANKS
 delete mode 100644 libkcal/libical/TODO
 delete mode 100644 libkcal/libical/configure.in.in
 delete mode 100644 libkcal/libical/design-data/Makefile.am
 delete mode 100644 libkcal/libical/design-data/parameters.csv
 delete mode 100644 libkcal/libical/design-data/properties.csv
 delete mode 100644 libkcal/libical/design-data/restrictions.csv
 delete mode 100644 libkcal/libical/design-data/status.txt
 delete mode 100644 libkcal/libical/design-data/value-types.csv
 delete mode 100644 libkcal/libical/doc/Makefile.am
 delete mode 100644 libkcal/libical/doc/UsingLibical.lyx
 delete mode 100644 libkcal/libical/doc/UsingLibical.ps
 delete mode 100644 libkcal/libical/doc/UsingLibical.txt
 delete mode 100644 libkcal/libical/examples/Makefile.am
 delete mode 100644 libkcal/libical/examples/access_components.c
 delete mode 100644 libkcal/libical/examples/access_properties_and_parameters.c
 delete mode 100644 libkcal/libical/examples/errors.c
 delete mode 100644 libkcal/libical/examples/main.c
 delete mode 100644 libkcal/libical/examples/parse_text.c
 delete mode 100644 libkcal/libical/scripts/Makefile.am
 delete mode 100755 libkcal/libical/scripts/mkderivedcomponents.pl
 delete mode 100755 libkcal/libical/scripts/mkderivedparameters.pl
 delete mode 100755 libkcal/libical/scripts/mkderivedproperties.pl
 delete mode 100755 libkcal/libical/scripts/mkderivedvalues.pl
 delete mode 100755 libkcal/libical/scripts/mkparameterrestrictions.pl
 delete mode 100755 libkcal/libical/scripts/mkrestrictionrecords.pl
 delete mode 100755 libkcal/libical/scripts/mkrestrictiontable.pl
 delete mode 100644 libkcal/libical/scripts/readvaluesfile.pl
 delete mode 100644 libkcal/libical/src/Makefile.am
 delete mode 100644 libkcal/libical/src/libical/Makefile.am
 delete mode 100644 libkcal/libical/src/libical/astime.h
 delete mode 100644 libkcal/libical/src/libical/caldate.c
 delete mode 100644 libkcal/libical/src/libical/icalarray.c
 delete mode 100644 libkcal/libical/src/libical/icalarray.h
 delete mode 100644 libkcal/libical/src/libical/icalattach.c
 delete mode 100644 libkcal/libical/src/libical/icalattach.h
 delete mode 100644 libkcal/libical/src/libical/icalattachimpl.h
 delete mode 100644 libkcal/libical/src/libical/icalcomponent.c
 delete mode 100644 libkcal/libical/src/libical/icalcomponent.h
 delete mode 100644 libkcal/libical/src/libical/icalderivedparameter.c.in
 delete mode 100644 libkcal/libical/src/libical/icalderivedparameter.h.in
 delete mode 100644 libkcal/libical/src/libical/icalderivedproperty.c.in
 delete mode 100644 libkcal/libical/src/libical/icalderivedproperty.h.in
 delete mode 100644 libkcal/libical/src/libical/icalderivedvalue.c.in
 delete mode 100644 libkcal/libical/src/libical/icalderivedvalue.h.in
 delete mode 100644 libkcal/libical/src/libical/icalduration.c
 delete mode 100644 libkcal/libical/src/libical/icalduration.h
 delete mode 100644 libkcal/libical/src/libical/icalenums.c
 delete mode 100644 libkcal/libical/src/libical/icalenums.h
 delete mode 100644 libkcal/libical/src/libical/icalerror.c
 delete mode 100644 libkcal/libical/src/libical/icalerror.h
 delete mode 100644 libkcal/libical/src/libical/icalmemory.c
 delete mode 100644 libkcal/libical/src/libical/icalmemory.h
 delete mode 100644 libkcal/libical/src/libical/icalmime.c
 delete mode 100644 libkcal/libical/src/libical/icalmime.h
 delete mode 100644 libkcal/libical/src/libical/icalparameter.c
 delete mode 100644 libkcal/libical/src/libical/icalparameter.h
 delete mode 100644 libkcal/libical/src/libical/icalparameterimpl.h
 delete mode 100644 libkcal/libical/src/libical/icalparser.c
 delete mode 100644 libkcal/libical/src/libical/icalparser.h
 delete mode 100644 libkcal/libical/src/libical/icalperiod.c
 delete mode 100644 libkcal/libical/src/libical/icalperiod.h
 delete mode 100644 libkcal/libical/src/libical/icalproperty.c
 delete mode 100644 libkcal/libical/src/libical/icalproperty.h
 delete mode 100644 libkcal/libical/src/libical/icalrecur.c
 delete mode 100644 libkcal/libical/src/libical/icalrecur.h
 delete mode 100644 libkcal/libical/src/libical/icalrestriction.c.in
 delete mode 100644 libkcal/libical/src/libical/icalrestriction.h
 delete mode 100644 libkcal/libical/src/libical/icaltime.c
 delete mode 100644 libkcal/libical/src/libical/icaltime.h
 delete mode 100644 libkcal/libical/src/libical/icaltimezone.c
 delete mode 100644 libkcal/libical/src/libical/icaltimezone.h
 delete mode 100644 libkcal/libical/src/libical/icaltypes.c
 delete mode 100644 libkcal/libical/src/libical/icaltypes.h
 delete mode 100644 libkcal/libical/src/libical/icalvalue.c
 delete mode 100644 libkcal/libical/src/libical/icalvalue.h
 delete mode 100644 libkcal/libical/src/libical/icalvalueimpl.h
 delete mode 100644 libkcal/libical/src/libical/icalversion.h
 delete mode 100644 libkcal/libical/src/libical/icalversion.h.in
 delete mode 100644 libkcal/libical/src/libical/pvl.c
 delete mode 100644 libkcal/libical/src/libical/pvl.h
 delete mode 100644 libkcal/libical/src/libical/sspm.c
 delete mode 100644 libkcal/libical/src/libical/sspm.h
 delete mode 100644 libkcal/libical/src/libical/vsnprintf.c
 delete mode 100644 libkcal/libical/src/libicalss/Makefile.am
 delete mode 100644 libkcal/libical/src/libicalss/icalclassify.c
 delete mode 100644 libkcal/libical/src/libicalss/icalclassify.h
 delete mode 100644 libkcal/libical/tzdata/africa
 delete mode 100644 libkcal/libical/tzdata/antarctica
 delete mode 100644 libkcal/libical/tzdata/asia
 delete mode 100644 libkcal/libical/tzdata/australasia
 delete mode 100644 libkcal/libical/tzdata/backward
 delete mode 100644 libkcal/libical/tzdata/etcetera
 delete mode 100644 libkcal/libical/tzdata/europe
 delete mode 100644 libkcal/libical/tzdata/factory
 delete mode 100644 libkcal/libical/tzdata/iso3166.tab
 delete mode 100644 libkcal/libical/tzdata/leapseconds
 delete mode 100644 libkcal/libical/tzdata/northamerica
 delete mode 100644 libkcal/libical/tzdata/pacificnew
 delete mode 100644 libkcal/libical/tzdata/solar87
 delete mode 100644 libkcal/libical/tzdata/solar88
 delete mode 100644 libkcal/libical/tzdata/solar89
 delete mode 100644 libkcal/libical/tzdata/southamerica
 delete mode 100644 libkcal/libical/tzdata/systemv
 delete mode 100644 libkcal/libical/tzdata/yearistype.sh
 delete mode 100644 libkcal/libical/tzdata/zone.tab
 delete mode 100644 libkcal/libical/vzic-1.3/ChangeLog
 delete mode 100644 libkcal/libical/vzic-1.3/Makefile
 delete mode 100644 libkcal/libical/vzic-1.3/Makefile.org
 delete mode 100644 libkcal/libical/vzic-1.3/README
 delete mode 100644 libkcal/libical/vzic-1.3/test-vzic.c
 delete mode 100644 libkcal/libical/vzic-1.3/vzic-dump.c
 delete mode 100644 libkcal/libical/vzic-1.3/vzic-dump.h
 delete mode 100755 libkcal/libical/vzic-1.3/vzic-dump.pl
 delete mode 100755 libkcal/libical/vzic-1.3/vzic-merge.pl
 delete mode 100644 libkcal/libical/vzic-1.3/vzic-output.c
 delete mode 100644 libkcal/libical/vzic-1.3/vzic-output.h
 delete mode 100644 libkcal/libical/vzic-1.3/vzic-parse.c
 delete mode 100644 libkcal/libical/vzic-1.3/vzic-parse.h
 delete mode 100755 libkcal/libical/vzic-1.3/vzic-test.pl
 delete mode 100644 libkcal/libical/vzic-1.3/vzic.c
 delete mode 100644 libkcal/libical/vzic-1.3/vzic.h
 delete mode 100644 libkcal/libical/zoneinfo/Africa/Abidjan.ics
 delete mode 100644 libkcal/libical/zoneinfo/Africa/Accra.ics
 delete mode 100644 libkcal/libical/zoneinfo/Africa/Addis_Ababa.ics
 delete mode 100644 libkcal/libical/zoneinfo/Africa/Algiers.ics
 delete mode 100644 libkcal/libical/zoneinfo/Africa/Asmara.ics
 delete mode 100644 libkcal/libical/zoneinfo/Africa/Bamako.ics
 delete mode 100644 libkcal/libical/zoneinfo/Africa/Bangui.ics
 delete mode 100644 libkcal/libical/zoneinfo/Africa/Banjul.ics
 delete mode 100644 libkcal/libical/zoneinfo/Africa/Bissau.ics
 delete mode 100644 libkcal/libical/zoneinfo/Africa/Blantyre.ics
 delete mode 100644 libkcal/libical/zoneinfo/Africa/Brazzaville.ics
 delete mode 100644 libkcal/libical/zoneinfo/Africa/Bujumbura.ics
 delete mode 100644 libkcal/libical/zoneinfo/Africa/Cairo.ics
 delete mode 100644 libkcal/libical/zoneinfo/Africa/Casablanca.ics
 delete mode 100644 libkcal/libical/zoneinfo/Africa/Ceuta.ics
 delete mode 100644 libkcal/libical/zoneinfo/Africa/Conakry.ics
 delete mode 100644 libkcal/libical/zoneinfo/Africa/Dakar.ics
 delete mode 100644 libkcal/libical/zoneinfo/Africa/Dar_es_Salaam.ics
 delete mode 100644 libkcal/libical/zoneinfo/Africa/Djibouti.ics
 delete mode 100644 libkcal/libical/zoneinfo/Africa/Douala.ics
 delete mode 100644 libkcal/libical/zoneinfo/Africa/El_Aaiun.ics
 delete mode 100644 libkcal/libical/zoneinfo/Africa/Freetown.ics
 delete mode 100644 libkcal/libical/zoneinfo/Africa/Gaborone.ics
 delete mode 100644 libkcal/libical/zoneinfo/Africa/Harare.ics
 delete mode 100644 libkcal/libical/zoneinfo/Africa/Johannesburg.ics
 delete mode 100644 libkcal/libical/zoneinfo/Africa/Kampala.ics
 delete mode 100644 libkcal/libical/zoneinfo/Africa/Khartoum.ics
 delete mode 100644 libkcal/libical/zoneinfo/Africa/Kigali.ics
 delete mode 100644 libkcal/libical/zoneinfo/Africa/Kinshasa.ics
 delete mode 100644 libkcal/libical/zoneinfo/Africa/Lagos.ics
 delete mode 100644 libkcal/libical/zoneinfo/Africa/Libreville.ics
 delete mode 100644 libkcal/libical/zoneinfo/Africa/Lome.ics
 delete mode 100644 libkcal/libical/zoneinfo/Africa/Luanda.ics
 delete mode 100644 libkcal/libical/zoneinfo/Africa/Lubumbashi.ics
 delete mode 100644 libkcal/libical/zoneinfo/Africa/Lusaka.ics
 delete mode 100644 libkcal/libical/zoneinfo/Africa/Malabo.ics
 delete mode 100644 libkcal/libical/zoneinfo/Africa/Maputo.ics
 delete mode 100644 libkcal/libical/zoneinfo/Africa/Maseru.ics
 delete mode 100644 libkcal/libical/zoneinfo/Africa/Mbabane.ics
 delete mode 100644 libkcal/libical/zoneinfo/Africa/Mogadishu.ics
 delete mode 100644 libkcal/libical/zoneinfo/Africa/Monrovia.ics
 delete mode 100644 libkcal/libical/zoneinfo/Africa/Nairobi.ics
 delete mode 100644 libkcal/libical/zoneinfo/Africa/Ndjamena.ics
 delete mode 100644 libkcal/libical/zoneinfo/Africa/Niamey.ics
 delete mode 100644 libkcal/libical/zoneinfo/Africa/Nouakchott.ics
 delete mode 100644 libkcal/libical/zoneinfo/Africa/Ouagadougou.ics
 delete mode 100644 libkcal/libical/zoneinfo/Africa/Porto-Novo.ics
 delete mode 100644 libkcal/libical/zoneinfo/Africa/Sao_Tome.ics
 delete mode 100644 libkcal/libical/zoneinfo/Africa/Tripoli.ics
 delete mode 100644 libkcal/libical/zoneinfo/Africa/Tunis.ics
 delete mode 100644 libkcal/libical/zoneinfo/Africa/Windhoek.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Adak.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Anchorage.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Anguilla.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Antigua.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Araguaina.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Argentina/Buenos_Aires.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Argentina/Catamarca.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Argentina/Cordoba.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Argentina/Jujuy.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Argentina/La_Rioja.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Argentina/Mendoza.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Argentina/Rio_Gallegos.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Argentina/San_Juan.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Argentina/San_Luis.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Argentina/Tucuman.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Argentina/Ushuaia.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Aruba.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Asuncion.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Atikokan.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Bahia.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Barbados.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Belem.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Belize.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Blanc-Sablon.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Boa_Vista.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Bogota.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Boise.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Cambridge_Bay.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Campo_Grande.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Cancun.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Caracas.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Cayenne.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Cayman.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Chicago.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Chihuahua.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Costa_Rica.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Cuiaba.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Curacao.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Danmarkshavn.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Dawson.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Dawson_Creek.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Denver.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Detroit.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Dominica.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Edmonton.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Eirunepe.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/El_Salvador.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Fortaleza.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Glace_Bay.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Godthab.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Goose_Bay.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Grand_Turk.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Grenada.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Guadeloupe.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Guatemala.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Guayaquil.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Guyana.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Halifax.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Havana.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Hermosillo.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Indiana/Indianapolis.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Indiana/Knox.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Indiana/Marengo.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Indiana/Petersburg.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Indiana/Tell_City.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Indiana/Vevay.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Indiana/Vincennes.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Indiana/Winamac.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Inuvik.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Iqaluit.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Jamaica.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Juneau.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Kentucky/Louisville.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Kentucky/Monticello.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/La_Paz.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Lima.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Los_Angeles.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Maceio.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Managua.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Manaus.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Marigot.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Martinique.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Mazatlan.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Menominee.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Merida.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Mexico_City.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Miquelon.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Moncton.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Monterrey.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Montevideo.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Montreal.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Montserrat.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Nassau.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/New_York.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Nipigon.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Nome.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Noronha.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/North_Dakota/Center.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/North_Dakota/New_Salem.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Panama.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Pangnirtung.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Paramaribo.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Phoenix.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Port-au-Prince.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Port_of_Spain.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Porto_Velho.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Puerto_Rico.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Rainy_River.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Rankin_Inlet.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Recife.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Regina.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Resolute.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Rio_Branco.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Santiago.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Santo_Domingo.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Sao_Paulo.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Scoresbysund.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Shiprock.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/St_Barthelemy.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/St_Johns.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/St_Kitts.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/St_Lucia.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/St_Thomas.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/St_Vincent.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Swift_Current.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Tegucigalpa.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Thule.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Thunder_Bay.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Tijuana.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Toronto.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Tortola.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Vancouver.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Whitehorse.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Winnipeg.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Yakutat.ics
 delete mode 100644 libkcal/libical/zoneinfo/America/Yellowknife.ics
 delete mode 100644 libkcal/libical/zoneinfo/Antarctica/Casey.ics
 delete mode 100644 libkcal/libical/zoneinfo/Antarctica/Davis.ics
 delete mode 100644 libkcal/libical/zoneinfo/Antarctica/DumontDUrville.ics
 delete mode 100644 libkcal/libical/zoneinfo/Antarctica/Mawson.ics
 delete mode 100644 libkcal/libical/zoneinfo/Antarctica/McMurdo.ics
 delete mode 100644 libkcal/libical/zoneinfo/Antarctica/Palmer.ics
 delete mode 100644 libkcal/libical/zoneinfo/Antarctica/Rothera.ics
 delete mode 100644 libkcal/libical/zoneinfo/Antarctica/South_Pole.ics
 delete mode 100644 libkcal/libical/zoneinfo/Antarctica/Syowa.ics
 delete mode 100644 libkcal/libical/zoneinfo/Antarctica/Vostok.ics
 delete mode 100644 libkcal/libical/zoneinfo/Arctic/Longyearbyen.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Aden.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Almaty.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Amman.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Anadyr.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Aqtau.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Aqtobe.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Ashgabat.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Baghdad.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Bahrain.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Baku.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Bangkok.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Beirut.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Bishkek.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Brunei.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Calcutta.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Choibalsan.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Chongqing.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Colombo.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Damascus.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Dhaka.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Dili.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Dubai.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Dushanbe.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Gaza.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Harbin.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Ho_Chi_Minh.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Hong_Kong.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Hovd.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Irkutsk.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Istanbul.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Jakarta.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Jayapura.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Jerusalem.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Kabul.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Kamchatka.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Karachi.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Kashgar.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Katmandu.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Kolkata.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Krasnoyarsk.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Kuala_Lumpur.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Kuching.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Kuwait.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Macau.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Magadan.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Makassar.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Manila.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Muscat.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Nicosia.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Novosibirsk.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Omsk.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Oral.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Phnom_Penh.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Pontianak.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Pyongyang.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Qatar.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Qyzylorda.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Rangoon.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Riyadh.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Saigon.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Sakhalin.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Samarkand.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Seoul.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Shanghai.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Singapore.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Taipei.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Tashkent.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Tbilisi.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Tehran.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Thimphu.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Tokyo.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Ulaanbaatar.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Urumqi.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Vientiane.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Vladivostok.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Yakutsk.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Yekaterinburg.ics
 delete mode 100644 libkcal/libical/zoneinfo/Asia/Yerevan.ics
 delete mode 100644 libkcal/libical/zoneinfo/Atlantic/Azores.ics
 delete mode 100644 libkcal/libical/zoneinfo/Atlantic/Bermuda.ics
 delete mode 100644 libkcal/libical/zoneinfo/Atlantic/Canary.ics
 delete mode 100644 libkcal/libical/zoneinfo/Atlantic/Cape_Verde.ics
 delete mode 100644 libkcal/libical/zoneinfo/Atlantic/Faroe.ics
 delete mode 100644 libkcal/libical/zoneinfo/Atlantic/Jan_Mayen.ics
 delete mode 100644 libkcal/libical/zoneinfo/Atlantic/Madeira.ics
 delete mode 100644 libkcal/libical/zoneinfo/Atlantic/Reykjavik.ics
 delete mode 100644 libkcal/libical/zoneinfo/Atlantic/South_Georgia.ics
 delete mode 100644 libkcal/libical/zoneinfo/Atlantic/St_Helena.ics
 delete mode 100644 libkcal/libical/zoneinfo/Atlantic/Stanley.ics
 delete mode 100644 libkcal/libical/zoneinfo/Australia/Adelaide.ics
 delete mode 100644 libkcal/libical/zoneinfo/Australia/Brisbane.ics
 delete mode 100644 libkcal/libical/zoneinfo/Australia/Broken_Hill.ics
 delete mode 100644 libkcal/libical/zoneinfo/Australia/Currie.ics
 delete mode 100644 libkcal/libical/zoneinfo/Australia/Darwin.ics
 delete mode 100644 libkcal/libical/zoneinfo/Australia/Eucla.ics
 delete mode 100644 libkcal/libical/zoneinfo/Australia/Hobart.ics
 delete mode 100644 libkcal/libical/zoneinfo/Australia/Lindeman.ics
 delete mode 100644 libkcal/libical/zoneinfo/Australia/Lord_Howe.ics
 delete mode 100644 libkcal/libical/zoneinfo/Australia/Melbourne.ics
 delete mode 100644 libkcal/libical/zoneinfo/Australia/Perth.ics
 delete mode 100644 libkcal/libical/zoneinfo/Australia/Sydney.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Amsterdam.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Andorra.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Athens.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Belgrade.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Berlin.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Bratislava.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Brussels.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Bucharest.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Budapest.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Chisinau.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Copenhagen.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Dublin.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Gibraltar.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Guernsey.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Helsinki.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Isle_of_Man.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Istanbul.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Jersey.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Kaliningrad.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Kiev.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Lisbon.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Ljubljana.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/London.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Luxembourg.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Madrid.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Malta.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Mariehamn.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Minsk.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Monaco.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Moscow.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Nicosia.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Oslo.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Paris.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Podgorica.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Prague.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Riga.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Rome.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Samara.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/San_Marino.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Sarajevo.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Simferopol.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Skopje.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Sofia.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Stockholm.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Tallinn.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Tirane.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Uzhgorod.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Vaduz.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Vatican.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Vienna.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Vilnius.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Volgograd.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Warsaw.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Zagreb.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Zaporozhye.ics
 delete mode 100644 libkcal/libical/zoneinfo/Europe/Zurich.ics
 delete mode 100644 libkcal/libical/zoneinfo/Indian/Antananarivo.ics
 delete mode 100644 libkcal/libical/zoneinfo/Indian/Chagos.ics
 delete mode 100644 libkcal/libical/zoneinfo/Indian/Christmas.ics
 delete mode 100644 libkcal/libical/zoneinfo/Indian/Cocos.ics
 delete mode 100644 libkcal/libical/zoneinfo/Indian/Comoro.ics
 delete mode 100644 libkcal/libical/zoneinfo/Indian/Kerguelen.ics
 delete mode 100644 libkcal/libical/zoneinfo/Indian/Mahe.ics
 delete mode 100644 libkcal/libical/zoneinfo/Indian/Maldives.ics
 delete mode 100644 libkcal/libical/zoneinfo/Indian/Mauritius.ics
 delete mode 100644 libkcal/libical/zoneinfo/Indian/Mayotte.ics
 delete mode 100644 libkcal/libical/zoneinfo/Indian/Reunion.ics
 delete mode 100644 libkcal/libical/zoneinfo/Makefile.am
 delete mode 100644 libkcal/libical/zoneinfo/Pacific/Apia.ics
 delete mode 100644 libkcal/libical/zoneinfo/Pacific/Auckland.ics
 delete mode 100644 libkcal/libical/zoneinfo/Pacific/Chatham.ics
 delete mode 100644 libkcal/libical/zoneinfo/Pacific/Easter.ics
 delete mode 100644 libkcal/libical/zoneinfo/Pacific/Efate.ics
 delete mode 100644 libkcal/libical/zoneinfo/Pacific/Enderbury.ics
 delete mode 100644 libkcal/libical/zoneinfo/Pacific/Fakaofo.ics
 delete mode 100644 libkcal/libical/zoneinfo/Pacific/Fiji.ics
 delete mode 100644 libkcal/libical/zoneinfo/Pacific/Funafuti.ics
 delete mode 100644 libkcal/libical/zoneinfo/Pacific/Galapagos.ics
 delete mode 100644 libkcal/libical/zoneinfo/Pacific/Gambier.ics
 delete mode 100644 libkcal/libical/zoneinfo/Pacific/Guadalcanal.ics
 delete mode 100644 libkcal/libical/zoneinfo/Pacific/Guam.ics
 delete mode 100644 libkcal/libical/zoneinfo/Pacific/Honolulu.ics
 delete mode 100644 libkcal/libical/zoneinfo/Pacific/Johnston.ics
 delete mode 100644 libkcal/libical/zoneinfo/Pacific/Kiritimati.ics
 delete mode 100644 libkcal/libical/zoneinfo/Pacific/Kosrae.ics
 delete mode 100644 libkcal/libical/zoneinfo/Pacific/Kwajalein.ics
 delete mode 100644 libkcal/libical/zoneinfo/Pacific/Majuro.ics
 delete mode 100644 libkcal/libical/zoneinfo/Pacific/Marquesas.ics
 delete mode 100644 libkcal/libical/zoneinfo/Pacific/Midway.ics
 delete mode 100644 libkcal/libical/zoneinfo/Pacific/Nauru.ics
 delete mode 100644 libkcal/libical/zoneinfo/Pacific/Niue.ics
 delete mode 100644 libkcal/libical/zoneinfo/Pacific/Norfolk.ics
 delete mode 100644 libkcal/libical/zoneinfo/Pacific/Noumea.ics
 delete mode 100644 libkcal/libical/zoneinfo/Pacific/Pago_Pago.ics
 delete mode 100644 libkcal/libical/zoneinfo/Pacific/Palau.ics
 delete mode 100644 libkcal/libical/zoneinfo/Pacific/Pitcairn.ics
 delete mode 100644 libkcal/libical/zoneinfo/Pacific/Ponape.ics
 delete mode 100644 libkcal/libical/zoneinfo/Pacific/Port_Moresby.ics
 delete mode 100644 libkcal/libical/zoneinfo/Pacific/Rarotonga.ics
 delete mode 100644 libkcal/libical/zoneinfo/Pacific/Saipan.ics
 delete mode 100644 libkcal/libical/zoneinfo/Pacific/Tahiti.ics
 delete mode 100644 libkcal/libical/zoneinfo/Pacific/Tarawa.ics
 delete mode 100644 libkcal/libical/zoneinfo/Pacific/Tongatapu.ics
 delete mode 100644 libkcal/libical/zoneinfo/Pacific/Truk.ics
 delete mode 100644 libkcal/libical/zoneinfo/Pacific/Wake.ics
 delete mode 100644 libkcal/libical/zoneinfo/Pacific/Wallis.ics
 delete mode 100644 libkcal/libical/zoneinfo/zones.h
 delete mode 100644 libkcal/libical/zoneinfo/zones.tab

diff --git a/kaddressbook/features/resourceselection.cpp b/kaddressbook/features/resourceselection.cpp
index c7e89dbf..c18d8b16 100644
--- a/kaddressbook/features/resourceselection.cpp
+++ b/kaddressbook/features/resourceselection.cpp
@@ -82,7 +82,10 @@ class ResourceItem : public QCheckListItem
 
     void createSubresourceItems();
 
-    void setChecked( bool state ) { mChecked = state; }
+    void setChecked( bool state ) {
+        mChecked = state;
+        setOn(state);
+    }
     bool checked() const { return mChecked; }
     KABC::Resource *resource() const { return mResource; }
     QString resourceIdentifier() const { return mResourceIdentifier; }
@@ -117,15 +120,6 @@ void ResourceItem::createSubresourceItems()
   mSubItemsCreated = true;
 }
 
-// TODO: connect this to some signalResourceModified
-// void ResourceItem::setGuiState()
-// {
-//   if ( mIsSubresource )
-//     setOn( mResource->subresourceActive( mResourceIdentifier ) );
-//   else
-//     setOn( mResource->isActive() );
-// }
-
 void ResourceItem::stateChange( bool active )
 {
   //kdDebug(5720) << k_funcinfo << this << " " << text( 0 ) << " active=" << active << endl;
@@ -216,13 +210,18 @@ void ResourceSelection::edit()
   if ( !item )
     return;
 
-  KRES::ConfigDialog dlg( this, QString( "contact" ), item->resource() );
+  // view items can change during "edit", e.g. sub resources being removed ->
+  // sub resource item removed
+  // thus keep their data rather than their pointer
+  KABC::Resource *resource = item->resource();
+
+  KRES::ConfigDialog dlg( this, QString( "contact" ), resource );
 
   if ( dlg.exec() ) {
-    mManager->change( item->resource() );
-    item->resource()->asyncLoad();
+    mManager->change( resource );
+    resource->asyncLoad();
 
-    mLastResource = item->resource()->identifier();
+    mLastResource = resource->identifier();
     updateView();
   }
 }
@@ -300,7 +299,7 @@ void ResourceSelection::updateView()
   KRES::Manager<KABC::Resource>::Iterator it;
   for ( it = mManager->begin(); it != mManager->end(); ++it ) {
 
-    new ResourceItem( mListView, *it );
+    ResourceItem *item = new ResourceItem( mListView, *it );
     KPIM::ResourceABC* resource = dynamic_cast<KPIM::ResourceABC *>( *it );
     if ( resource ) {
       disconnect( resource, 0, this, 0 );
@@ -313,8 +312,15 @@ void ResourceSelection::updateView()
                                                            const QString &, const QString & ) ),
                SLOT( slotSubresourceRemoved( KPIM::ResourceABC *,
                                              const QString &, const QString & ) ) );
+
+      connect( resource, SIGNAL( signalSubresourceChanged( KPIM::ResourceABC *,
+                                                           const QString &, const QString & ) ),
+               SLOT( slotSubresourceChanged( KPIM::ResourceABC *,
+                                             const QString &, const QString & ) ) );
+
       //connect( resource, SIGNAL( resourceSaved( KPIM::ResourceABC * ) ),
       //         SLOT( closeResource( KPIM::ResourceABC * ) ) );
+      item->createSubresourceItems();
     }
   }
 
@@ -345,7 +351,13 @@ void ResourceSelection::slotSubresourceAdded( KPIM::ResourceABC *resource,
     return;
 
   ResourceItem *item = static_cast<ResourceItem *>( i );
-  (void)new ResourceItem( resource, item, subResource );
+  // Make sure all other sub items have already been created
+  item->createSubresourceItems();
+
+  // check if we already have an item for it
+  if ( !findSubResourceItem( resource, subResource ) ) {
+      (void)new ResourceItem( resource, item, subResource );
+  }
 }
 
 // Remove an entry
@@ -353,6 +365,30 @@ void ResourceSelection::slotSubresourceRemoved( KPIM::ResourceABC* resource,
                                                 const QString& /*type*/,
                                                 const QString& subResource )
 {
+  ResourceItem *item = findSubResourceItem( resource, subResource );
+  delete item;
+  core()->addressBook()->emitAddressBookChanged();
+  updateView();
+}
+
+// change an entry
+void ResourceSelection::slotSubresourceChanged( KPIM::ResourceABC* resource,
+                                                const QString& type,
+                                                const QString& subResource )
+{
+  kdDebug(5720) << resource->resourceName() << subResource;
+
+  ResourceItem *item = findSubResourceItem( resource, subResource );
+  if ( item == 0 ) {
+      kdWarning(5720) << "Changed before it was added?";
+      slotSubresourceAdded( resource, type, subResource );
+      return;
+  }
+
+  item->setText( 0, resource->subresourceLabel( subResource ) );
+  item->setChecked( resource->subresourceActive( subResource ) ? true : false );
+  // TODO
+  //emitResourcesChanged();
   core()->addressBook()->emitAddressBookChanged();
   updateView();
 }
@@ -362,6 +398,25 @@ ResourceItem* ResourceSelection::selectedItem() const
   return static_cast<ResourceItem*>( mListView->selectedItem() );
 }
 
+ResourceItem* ResourceSelection::findSubResourceItem( KPIM::ResourceABC *resource,
+                                                const QString &subResource )
+{
+    QListViewItemIterator parentIt( mListView );
+    for ( ; *parentIt; ++parentIt ) {
+        if ( static_cast<ResourceItem*>(*parentIt)->resource() != resource )
+            continue;
+
+        QListViewItemIterator childIt( *parentIt );
+        for ( ; *childIt; ++childIt ) {
+            ResourceItem *item = static_cast<ResourceItem*>(*childIt);
+            if ( item->resourceIdentifier() == subResource )
+                return item;
+        }
+    }
+
+    return 0;
+}
+
 void ResourceSelection::initGUI()
 {
   QBoxLayout *topLayout = new QVBoxLayout( this );
diff --git a/kaddressbook/features/resourceselection.h b/kaddressbook/features/resourceselection.h
index 07c458f3..6e1a56b0 100644
--- a/kaddressbook/features/resourceselection.h
+++ b/kaddressbook/features/resourceselection.h
@@ -62,11 +62,15 @@ class ResourceSelection : public KAB::ExtensionWidget
     void slotSubresourceRemoved( KPIM::ResourceABC* /*resource*/,
                                  const QString& /*type*/,
                                  const QString& subResource );
+    void slotSubresourceChanged( KPIM::ResourceABC* /*resource*/,
+                               const QString& /*type*/,
+                               const QString& subResource );
 
   private:
     void initGUI();
 
     ResourceItem* selectedItem() const;
+    ResourceItem* findSubResourceItem( KPIM::ResourceABC *resource, const QString &subResource );
 
     KListView *mListView;
     QPushButton *mAddButton;
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp
index 0702ce04..449357d1 100644
--- a/kaddressbook/kabcore.cpp
+++ b/kaddressbook/kabcore.cpp
@@ -226,7 +226,7 @@ void KABCore::restoreSettings()
   mDetailsSplitter->setSizes( splitterSize );
 
   const QValueList<int> leftSplitterSizes = KABPrefs::instance()->leftSplitter();
-  if ( !leftSplitterSizes.isEmpty() )    
+  if ( !leftSplitterSizes.isEmpty() )
       mLeftSplitter->setSizes( leftSplitterSizes );
 }
 
@@ -236,7 +236,7 @@ void KABCore::saveSettings()
   KABPrefs::instance()->setDetailsPageVisible( mActionDetails->isChecked() );
   KABPrefs::instance()->setDetailsSplitter( mDetailsSplitter->sizes() );
   KABPrefs::instance()->setLeftSplitter( mLeftSplitter->sizes() );
-  
+
   mExtensionManager->saveSettings();
   mViewManager->saveSettings();
 
@@ -295,10 +295,11 @@ QWidget *KABCore::widget() const
 KAboutData *KABCore::createAboutData()
 {
   KAboutData *about = new KAboutData( "kaddressbook", I18N_NOOP( "KAddressBook" ),
-                                      "3.5.10", I18N_NOOP( "The KDE Address Book" ),
+                                      "3.5.11", I18N_NOOP( "The KDE Address Book" ),
                                       KAboutData::License_GPL_V2,
-                                      I18N_NOOP( "(c) 1997-2005, The KDE PIM Team" ) );
-  about->addAuthor( "Tobias Koenig", I18N_NOOP( "Current maintainer" ), "tokoe@kde.org" );
+                                      I18N_NOOP( "(c) 2008-2010, The Trinity Team\n(c) 1997-2005, The KDE PIM Team" ) );
+  about->addAuthor( "Timothy Pearson", I18N_NOOP( "Current maintainer" ), "kb9vqf@pearsoncomputing.net" );
+  about->addAuthor( "Tobias Koenig", I18N_NOOP( "Previous maintainer" ), "tokoe@kde.org" );
   about->addAuthor( "Don Sanders", I18N_NOOP( "Original author" ) );
   about->addAuthor( "Cornelius Schumacher",
                     I18N_NOOP( "Co-maintainer, libkabc port, CSV import/export" ),
@@ -327,10 +328,15 @@ KStatusBar *KABCore::statusBar() const
 
 void KABCore::setContactSelected( const QString &uid )
 {
+  // Avoid crash on exit
+  if ( !mAddressBook ) {
+      return;
+  }
+
   KABC::Addressee addr = mAddressBook->findByUid( uid );
   if ( !mDetailsViewer->isHidden() )
     mDetailsViewer->setAddressee( addr );
-#ifdef KDEPIM_NEW_DISTRLISTS 
+#ifdef KDEPIM_NEW_DISTRLISTS
   if ( !mSelectedDistributionList.isNull() && mDistListEntryView->isShown() ) {
       showDistributionListEntry( uid );
   }
@@ -470,10 +476,10 @@ void KABCore::deleteDistributionLists( const QStringList & names )
 
   QStringList uids;
   for ( QStringList::ConstIterator it = names.begin(); it != names.end(); ++it ) {
-      uids.append( KPIM::DistributionList::findByName( mAddressBook, *it ).uid() ); 
+      uids.append( KPIM::DistributionList::findByName( mAddressBook, *it ).uid() );
   }
   DeleteCommand *command = new DeleteCommand( mAddressBook, uids );
-  mCommandHistory->addCommand( command );  
+  mCommandHistory->addCommand( command );
   setModified( true );
 }
 
@@ -667,7 +673,7 @@ void KABCore::newDistributionList()
     bool foundUnused = false;
     int i = 1;
     while ( !foundUnused ) {
-      name = i18n( "New Distribution List (%1)" ).arg( i++ );  
+      name = i18n( "New Distribution List (%1)" ).arg( i++ );
       foundUnused = KPIM::DistributionList::findByName( addressBook(), name ).isEmpty();
     }
   }
@@ -1158,14 +1164,14 @@ void KABCore::initGUI()
 
   topLayout->addWidget( searchTB );
   topLayout->addWidget( mDetailsSplitter );
-  
+
   mDetailsStack = new QWidgetStack( mDetailsSplitter );
   mExtensionManager = new ExtensionManager( new QWidget( mLeftSplitter ), mDetailsStack, this, this );
-  connect( mExtensionManager, SIGNAL( detailsWidgetDeactivated( QWidget* ) ), 
+  connect( mExtensionManager, SIGNAL( detailsWidgetDeactivated( QWidget* ) ),
            this, SLOT( deactivateDetailsWidget( QWidget* ) ) );
-  connect( mExtensionManager, SIGNAL( detailsWidgetActivated( QWidget* ) ), 
+  connect( mExtensionManager, SIGNAL( detailsWidgetActivated( QWidget* ) ),
            this, SLOT( activateDetailsWidget( QWidget* ) ) );
-  
+
   QWidget *viewWidget = new QWidget( mLeftSplitter );
   if ( KABPrefs::instance()->contactListAboveExtensions() )
     mLeftSplitter->moveToFirst( viewWidget );
@@ -1187,7 +1193,7 @@ void KABCore::initGUI()
 
   KPushButton *addDistListButton = new KPushButton( mDistListButtonWidget );
   addDistListButton->setText( i18n( "Add" ) );
-  connect( addDistListButton, SIGNAL( clicked() ), 
+  connect( addDistListButton, SIGNAL( clicked() ),
            this, SLOT( editSelectedDistributionList() ) );
   buttonLayout->addWidget( addDistListButton );
   mDistListButtonWidget->setShown( false );
@@ -1195,7 +1201,7 @@ void KABCore::initGUI()
 
   KPushButton *removeDistListButton = new KPushButton( mDistListButtonWidget );
   removeDistListButton->setText( i18n( "Remove" ) );
-  connect( removeDistListButton, SIGNAL( clicked() ), 
+  connect( removeDistListButton, SIGNAL( clicked() ),
            this, SLOT( removeSelectedContactsFromDistList() ) );
   buttonLayout->addWidget( removeDistListButton );
 #endif
@@ -1404,6 +1410,11 @@ QStringList KABCore::allCategories() const
   QStringList categories, allCategories;
   QStringList::ConstIterator catIt;
 
+  // Avoid crash on exit
+  if ( !mAddressBook ) {
+      return allCategories;
+  }
+
   KABC::AddressBook::ConstIterator it;
   const KABC::AddressBook::ConstIterator endIt( mAddressBook->end() );
   for ( it = mAddressBook->begin(); it != endIt; ++it ) {
@@ -1559,12 +1570,12 @@ void KABCore::sendMailToDistributionList( const QString &name )
   KPIM::DistributionList dist = KPIM::DistributionList::findByName( addressBook(), name );
   if ( dist.isEmpty() )
     return;
-  typedef KPIM::DistributionList::Entry::List EntryList; 
+  typedef KPIM::DistributionList::Entry::List EntryList;
   QStringList mails;
   const EntryList entries = dist.entries( addressBook() );
   for ( EntryList::ConstIterator it = entries.begin(); it != entries.end(); ++it )
     mails += (*it).addressee.fullEmail( (*it).email );
-  sendMail( mails.join( ", " ) ); 
+  sendMail( mails.join( ", " ) );
 #endif
 }
 
@@ -1590,8 +1601,8 @@ void KABCore::showDistributionListEntry( const QString& uid )
   KPIM::DistributionList dist = KPIM::DistributionList::findByName( addressBook(), mSelectedDistributionList );
   if ( !dist.isEmpty() ) {
     mDistListEntryView->clear();
-    typedef KPIM::DistributionList::Entry::List EntryList;   
-    const EntryList entries = dist.entries( addressBook() ); 
+    typedef KPIM::DistributionList::Entry::List EntryList;
+    const EntryList entries = dist.entries( addressBook() );
     for (EntryList::ConstIterator it = entries.begin(); it != entries.end(); ++it ) {
       if ( (*it).addressee.uid() == uid ) {
         mDistListEntryView->setEntry( dist, *it );
diff --git a/kaddressbook/views/contactlistview.cpp b/kaddressbook/views/contactlistview.cpp
index 1deadc19..90941ff5 100644
--- a/kaddressbook/views/contactlistview.cpp
+++ b/kaddressbook/views/contactlistview.cpp
@@ -216,7 +216,12 @@ ContactListView *ContactListViewItem::parent()
 
 void ContactListViewItem::refresh()
 {
-  // Update our addressee, since it may have changed else were
+  // Avoid crash on exit
+  if ( !mDocument ) {
+      return;
+  }
+
+  // Update our addressee, since it may have changed elsewhere
   mAddressee = mDocument->findByUid(mAddressee.uid());
   if (mAddressee.isEmpty())
     return;
diff --git a/knode/aboutdata.cpp b/knode/aboutdata.cpp
index 714f2613..4e7928a1 100644
--- a/knode/aboutdata.cpp
+++ b/knode/aboutdata.cpp
@@ -27,7 +27,8 @@ namespace KNode
   };
 
   static const about_authors authors[] = {
-    { "Volker Krause", I18N_NOOP("Maintainer"), "volker.krause@rwth-aachen.de" },
+    { "Timothy Pearson", I18N_NOOP("Maintainer"), "kb9vqf@pearsoncomputing.net" },
+    { "Volker Krause", I18N_NOOP("Former maintainer"), "volker.krause@rwth-aachen.de" },
     { "Roberto Selbach Teixeira", I18N_NOOP("Former maintainer"), "roberto@kde.org" },
     { "Christian Gebauer", 0, "gebauer@kde.org" },
     { "Christian Thurner", 0, "cthurner@web.de" },
diff --git a/korganizer/aboutdata.cpp b/korganizer/aboutdata.cpp
index d2a5de35..f372d11f 100644
--- a/korganizer/aboutdata.cpp
+++ b/korganizer/aboutdata.cpp
@@ -37,7 +37,9 @@ AboutData::AboutData()
                 "(c) 2004-2005 Reinhold Kainhofer", 0,
                 "http://korganizer.kde.org" )
 {
-  addAuthor("Reinhold Kainhofer",I18N_NOOP("Current Maintainer"),
+  addAuthor("Timothy Pearson",I18N_NOOP("Current Maintainer"),
+            "kb9vqf@pearsoncomputing.net");
+  addAuthor("Reinhold Kainhofer",I18N_NOOP("Previous maintainer"),
             "reinhold@kainhofer.com");
   addAuthor("Cornelius Schumacher",I18N_NOOP("Co-Maintainer"),
             "schumacher@kde.org");
diff --git a/korganizer/actionmanager.cpp b/korganizer/actionmanager.cpp
index 4a900abd..ce608165 100644
--- a/korganizer/actionmanager.cpp
+++ b/korganizer/actionmanager.cpp
@@ -197,7 +197,7 @@ void ActionManager::createCalendarResources()
   mResourceView = factory.resourceView();
 
   connect( mCalendarResources, SIGNAL( calendarChanged() ),
-           mCalendarView, SLOT( slotCalendarChanged() ) );
+           mCalendarView, SLOT(resourcesChanged() ) );
   connect( mCalendarResources, SIGNAL( signalErrorMessage( const QString & ) ),
            mCalendarView, SLOT( showErrorMessage( const QString & ) ) );
 
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp
index 75e7ee43..6a91254e 100644
--- a/korganizer/calendarview.cpp
+++ b/korganizer/calendarview.cpp
@@ -2159,8 +2159,6 @@ void CalendarView::purgeCompleted()
 void CalendarView::slotCalendarChanged()
 {
   kdDebug(5850) << "CalendarView::slotCalendarChanged()" << endl;
-
-  updateView();
 }
 
 void CalendarView::warningChangeFailed( Incidence * )
diff --git a/korganizer/freebusymanager.cpp b/korganizer/freebusymanager.cpp
index 94fe320c..fdb4f531 100644
--- a/korganizer/freebusymanager.cpp
+++ b/korganizer/freebusymanager.cpp
@@ -66,6 +66,8 @@
 #include <qregexp.h>
 #include <qdir.h>
 
+#define DEBUG_5850 kdDebug(5850)
+
 using namespace KCal;
 
 FreeBusyDownloadJob::FreeBusyDownloadJob( const QString &email, const KURL &url,
@@ -96,10 +98,10 @@ void FreeBusyDownloadJob::slotData( KIO::Job *, const QByteArray &data )
 
 void FreeBusyDownloadJob::slotResult( KIO::Job *job )
 {
-  kdDebug(5850) << "FreeBusyDownloadJob::slotResult() " << mEmail << endl;
+  DEBUG_5850 << "FreeBusyDownloadJob::slotResult() " << mEmail << endl;
 
   if( job->error() ) {
-    kdDebug(5850) << "FreeBusyDownloadJob::slotResult() job error for " << mEmail << endl;
+    DEBUG_5850 << "FreeBusyDownloadJob::slotResult() job error for " << mEmail << endl;
     emit freeBusyDownloadError( mEmail );
   } else {
     FreeBusy *fb = mManager->iCalToFreeBusy( mFreeBusyData );
@@ -189,7 +191,7 @@ void FreeBusyManager::slotPerhapsUploadFB()
   } else {
     // We are currently uploading the FB list. Start the timer
     if( eta <= 0 ) {
-      kdDebug(5850) << "This shouldn't happen! eta <= 0\n";
+      DEBUG_5850 << "This shouldn't happen! eta <= 0\n";
       eta = 10; // whatever
     }
   }
@@ -241,6 +243,16 @@ void FreeBusyManager::publishFreeBusy()
     mBrokenUrl = true;
     return;
   }
+
+//   // Substitute %u and %d [FIXME]
+//   QString defaultEmail = KOCore()::self()->email();
+//   int emailpos = defaultEmail.find( '@' );
+//   if (emailpos != -1) {
+//     const QString emailName = defaultEmail.left( emailpos );
+//     const QString emailHost = defaultEmail.mid( emailpos + 1 );
+//     targetURL = targetURL.url().replace("%25u", emailName, true);
+//     targetURL = targetURL.url().replace("%25d", emailHost, true);
+//   }
   targetURL.setUser( KOPrefs::instance()->mFreeBusyPublishUser );
   targetURL.setPass( KOPrefs::instance()->mFreeBusyPublishPassword );
 
@@ -311,7 +323,7 @@ void FreeBusyManager::publishFreeBusy()
     KURL src;
     src.setPath( tempFile.name() );
 
-    kdDebug(5850) << "FreeBusyManager::publishFreeBusy(): " << targetURL << endl;
+    DEBUG_5850 << "FreeBusyManager::publishFreeBusy(): " << targetURL << endl;
 
     KIO::Job * job = KIO::file_copy( src, targetURL, -1,
                                      true /*overwrite*/,
@@ -343,7 +355,7 @@ void FreeBusyManager::slotUploadFreeBusyResult(KIO::Job *_job)
 
 bool FreeBusyManager::retrieveFreeBusy( const QString &email, bool forceDownload )
 {
-  kdDebug(5850) << "FreeBusyManager::retrieveFreeBusy(): " << email << endl;
+  DEBUG_5850 << "FreeBusyManager::retrieveFreeBusy(): " << email << endl;
   if ( email.isEmpty() ) return false;
 
   // Check for cached copy of free/busy list
@@ -374,11 +386,11 @@ bool FreeBusyManager::processRetrieveQueue()
 
   KURL sourceURL = freeBusyUrl( email );
 
-  kdDebug(5850) << "FreeBusyManager::processRetrieveQueue(): url: " << sourceURL
+  DEBUG_5850 << "FreeBusyManager::processRetrieveQueue(): url: " << sourceURL
             << endl;
 
   if ( !sourceURL.isValid() ) {
-    kdDebug(5850) << "Invalid FB URL\n";
+    DEBUG_5850 << "Invalid FB URL\n";
     slotFreeBusyDownloadError( email );
     return false;
   }
@@ -406,7 +418,7 @@ void FreeBusyManager::slotFreeBusyDownloadError( const QString& email )
     // The reason we try to download even our own free-busy list is that
     // this allows to avoid showing as busy the folders that are "fb relevant for nobody"
     // like shared resources (meeting rooms etc.)
-    kdDebug(5850) << "freebusy of owner, falling back to local list" << endl;
+    DEBUG_5850 << "freebusy of owner, falling back to local list" << endl;
     emit freeBusyRetrieved( ownerFreeBusy(), email );
   }
 
@@ -419,7 +431,7 @@ void FreeBusyManager::cancelRetrieval()
 
 KURL FreeBusyManager::freeBusyUrl( const QString &email )
 {
-  kdDebug(5850) << "FreeBusyManager::freeBusyUrl(): " << email << endl;
+  DEBUG_5850 << "FreeBusyManager::freeBusyUrl(): " << email << endl;
 
   // First check if there is a specific FB url for this email
   QString configFile = locateLocal( "data", "korganizer/freebusyurls" );
@@ -428,7 +440,7 @@ KURL FreeBusyManager::freeBusyUrl( const QString &email )
   cfg.setGroup( email );
   QString url = cfg.readEntry( "url" );
   if ( !url.isEmpty() ) {
-    kdDebug(5850) << "found cached url: " << url << endl;
+    DEBUG_5850 << "found cached url: " << url << endl;
     return KURL( url );
   }
   // Try with the url configurated by preferred email in kaddressbook
@@ -459,8 +471,9 @@ KURL FreeBusyManager::freeBusyUrl( const QString &email )
   // Sanity check: Don't download if it's not a correct email
   // address (this also avoids downloading for "(empty email)").
   int emailpos = email.find( '@' );
-  if( emailpos == -1 )
+  if( emailpos == -1 ) {
     return KURL();
+  }
 
   // Cut off everything left of the @ sign to get the user name.
   const QString emailName = email.left( emailpos );
@@ -477,35 +490,51 @@ KURL FreeBusyManager::freeBusyUrl( const QString &email )
     if ( hostDomain != emailHost && !hostDomain.endsWith( '.' + emailHost )
          && !emailHost.endsWith( '.' + hostDomain ) ) {
       // Host names do not match
-      kdDebug(5850) << "Host '" << sourceURL.host() << "' doesn't match email '"
+      DEBUG_5850 << "Host '" << sourceURL.host() << "' doesn't match email '"
         << email << '\'' << endl;
       return KURL();
     }
   }
 
-  kdDebug(5850) << "Server FreeBusy url: " << sourceURL << endl;
-  if ( KOPrefs::instance()->mFreeBusyFullDomainRetrieval )
-    sourceURL.setFileName( email + ".ifb" );
-  else
-    sourceURL.setFileName( emailName + ".ifb" );
-  sourceURL.setUser( KOPrefs::instance()->mFreeBusyRetrieveUser );
-  sourceURL.setPass( KOPrefs::instance()->mFreeBusyRetrievePassword );
-
-  kdDebug(5850) << "Results in generated: " << sourceURL << endl;
-  return sourceURL;
+  // This should work with anything thrown at it, not just Kolab
+  // Notice that Kolab URLs are just entered as the base address, e.g. http://server.com/mykolab/
+  // This means that if the trailing slash is not entered, we can treat this as a custom, non-Kolab URL!
+  // In that case, just pass it on through with substitution for %u and %d
+  // TODO: May want an explicit configuration option in kogroupwareprefspage.ui for this
+  if ((sourceURL.url().endsWith("/", true) == false) || (sourceURL.url().contains("%25u", true)) || (sourceURL.url().contains("%25d", true))) {
+    // A generic URL, substitute %u and %d
+    sourceURL = sourceURL.url().replace("%25u", emailName, true);
+    sourceURL = sourceURL.url().replace("%25d", emailHost, true);
+    sourceURL.setUser( KOPrefs::instance()->mFreeBusyRetrieveUser );
+    sourceURL.setPass( KOPrefs::instance()->mFreeBusyRetrievePassword );
+    return sourceURL;
+  }
+  else {
+    // This is (probably) a Kolab URL!
+    DEBUG_5850 << "Server FreeBusy url: " << sourceURL << endl;
+    if ( KOPrefs::instance()->mFreeBusyFullDomainRetrieval )
+      sourceURL.setFileName( email + ".ifb" );
+    else
+      sourceURL.setFileName( emailName + ".ifb" );
+    sourceURL.setUser( KOPrefs::instance()->mFreeBusyRetrieveUser );
+    sourceURL.setPass( KOPrefs::instance()->mFreeBusyRetrievePassword );
+
+    DEBUG_5850 << "Results in generated: " << sourceURL << endl;
+    return sourceURL;
+  }
 }
 
 KCal::FreeBusy *FreeBusyManager::iCalToFreeBusy( const QCString &data )
 {
-  kdDebug(5850) << "FreeBusyManager::iCalToFreeBusy()" << endl;
-  kdDebug(5850) << data << endl;
+  DEBUG_5850 << "FreeBusyManager::iCalToFreeBusy()" << endl;
+  DEBUG_5850 << data << endl;
 
   QString freeBusyVCal = QString::fromUtf8( data );
   KCal::FreeBusy *fb = mFormat.parseFreeBusy( freeBusyVCal );
   if ( !fb ) {
-    kdDebug(5850) << "FreeBusyManager::iCalToFreeBusy(): Error parsing free/busy"
+    DEBUG_5850 << "FreeBusyManager::iCalToFreeBusy(): Error parsing free/busy"
               << endl;
-    kdDebug(5850) << freeBusyVCal << endl;
+    DEBUG_5850 << freeBusyVCal << endl;
   }
   return fb;
 }
@@ -517,19 +546,19 @@ QString FreeBusyManager::freeBusyDir()
 
 FreeBusy *FreeBusyManager::loadFreeBusy( const QString &email )
 {
-  kdDebug(5850) << "FreeBusyManager::loadFreeBusy(): " << email << endl;
+  DEBUG_5850 << "FreeBusyManager::loadFreeBusy(): " << email << endl;
 
   QString fbd = freeBusyDir();
 
   QFile f( fbd + "/" + email + ".ifb" );
   if ( !f.exists() ) {
-    kdDebug(5850) << "FreeBusyManager::loadFreeBusy() " << f.name()
+    DEBUG_5850 << "FreeBusyManager::loadFreeBusy() " << f.name()
               << " doesn't exist." << endl;
     return 0;
   }
 
   if ( !f.open( IO_ReadOnly ) ) {
-    kdDebug(5850) << "FreeBusyManager::loadFreeBusy() Unable to open file "
+    DEBUG_5850 << "FreeBusyManager::loadFreeBusy() Unable to open file "
               << f.name() << endl;
     return 0;
   }
@@ -542,17 +571,17 @@ FreeBusy *FreeBusyManager::loadFreeBusy( const QString &email )
 
 bool FreeBusyManager::saveFreeBusy( FreeBusy *freebusy, const Person &person )
 {
-  kdDebug(5850) << "FreeBusyManager::saveFreeBusy(): " << person.fullName() << endl;
+  DEBUG_5850 << "FreeBusyManager::saveFreeBusy(): " << person.fullName() << endl;
 
   QString fbd = freeBusyDir();
 
   QDir freeBusyDirectory( fbd );
   if ( !freeBusyDirectory.exists() ) {
-    kdDebug(5850) << "Directory " << fbd << " does not exist!" << endl;
-    kdDebug(5850) << "Creating directory: " << fbd << endl;
+    DEBUG_5850 << "Directory " << fbd << " does not exist!" << endl;
+    DEBUG_5850 << "Creating directory: " << fbd << endl;
 
     if( !freeBusyDirectory.mkdir( fbd, true ) ) {
-      kdDebug(5850) << "Could not create directory: " << fbd << endl;
+      DEBUG_5850 << "Could not create directory: " << fbd << endl;
       return false;
     }
   }
@@ -563,7 +592,7 @@ bool FreeBusyManager::saveFreeBusy( FreeBusy *freebusy, const Person &person )
   filename += ".ifb";
   QFile f( filename );
 
-  kdDebug(5850) << "FreeBusyManager::saveFreeBusy(): filename: " << filename
+  DEBUG_5850 << "FreeBusyManager::saveFreeBusy(): filename: " << filename
             << endl;
 
   freebusy->clearAttendees();
@@ -573,7 +602,7 @@ bool FreeBusyManager::saveFreeBusy( FreeBusy *freebusy, const Person &person )
                                                        Scheduler::Publish );
 
   if ( !f.open( IO_ReadWrite ) ) {
-    kdDebug(5850) << "acceptFreeBusy: Can't open:" << filename << " for writing"
+    DEBUG_5850 << "acceptFreeBusy: Can't open:" << filename << " for writing"
               << endl;
     return false;
   }
diff --git a/korganizer/koagenda.cpp b/korganizer/koagenda.cpp
index b63f1303..953bb606 100644
--- a/korganizer/koagenda.cpp
+++ b/korganizer/koagenda.cpp
@@ -1913,9 +1913,10 @@ void KOAgenda::selectItem(KOAgendaItem *item)
   }
   mSelectedItem = item;
   mSelectedItem->select();
-  assert( mSelectedItem->incidence() );
-  mSelectedUid = mSelectedItem->incidence()->uid();
-  emit incidenceSelected( mSelectedItem->incidence() );
+  Incidence *incidence = mSelectedItem->incidence();
+  assert( incidence );
+  mSelectedUid = incidence->uid();
+  emit incidenceSelected( incidence );
 }
 
 void KOAgenda::selectItemByUID( const QString& uid )
diff --git a/korganizer/koagendaview.cpp b/korganizer/koagendaview.cpp
index a526760e..e81e0485 100644
--- a/korganizer/koagendaview.cpp
+++ b/korganizer/koagendaview.cpp
@@ -368,6 +368,13 @@ KOAgendaView::KOAgendaView(Calendar *cal,QWidget *parent,const char *name, bool
 
   if ( cal )
     cal->registerObserver( this );
+
+  CalendarResources *calres = dynamic_cast<CalendarResources*>( cal );
+  if ( calres ) {
+    connect( calres, SIGNAL(signalResourceAdded(ResourceCalendar *)), SLOT(resourcesChanged()) );
+    connect( calres, SIGNAL(signalResourceModified( ResourceCalendar *)), SLOT(resourcesChanged()) );
+    connect( calres, SIGNAL(signalResourceDeleted(ResourceCalendar *)), SLOT(resourcesChanged()) );
+  }
 }
 
 
diff --git a/korganizer/koeditorgeneral.cpp b/korganizer/koeditorgeneral.cpp
index 8b93c2ef..3a9c2007 100644
--- a/korganizer/koeditorgeneral.cpp
+++ b/korganizer/koeditorgeneral.cpp
@@ -349,7 +349,12 @@ void KOEditorGeneral::updateAlarmWidgets()
 {
   if ( mAlarmList.isEmpty() ) {
     mAlarmStack->raiseWidget( SimpleAlarmPage );
-    mAlarmButton->setChecked( false );
+    if (KOPrefs::instance()->mAlarmsEnabledByDefault == true) {
+      mAlarmButton->setChecked( true );
+    }
+    else {
+      mAlarmButton->setChecked( false );
+    }
     mAlarmEditButton->setEnabled( false );
   } else if ( mAlarmList.count() > 1 ) {
     mAlarmStack->raiseWidget( AdvancedAlarmLabel );
diff --git a/korganizer/kogroupwareprefspage.ui b/korganizer/kogroupwareprefspage.ui
index 2efe88af..d6f14f9a 100644
--- a/korganizer/kogroupwareprefspage.ui
+++ b/korganizer/kogroupwareprefspage.ui
@@ -385,7 +385,9 @@ Here is a Kolab2 server URL example: "webdavs://kolab2.com/freebusy/joe@kolab2.c
                                         <property name="whatsThis" stdset="0">
                                             <string>Enter the URL for the server on which the Free/Busy information is published here.
 Ask the server administrator for this information.
-Here is a Kolab2 server URL example: "webdavs://kolab2.com/freebusy/"</string>
+Here is a Kolab2 server URL example: "webdavs://kolab2.com/freebusy/"
+Here is a generic server example: "http://myserver.net/%u@%d/?internal.ics"
+%u expands to the username, and %d expands to the domain name.</string>
                                         </property>
                                     </widget>
                                     <widget class="QLineEdit">
@@ -398,7 +400,9 @@ Here is a Kolab2 server URL example: "webdavs://kolab2.com/freebusy/"</string>
                                         <property name="whatsThis" stdset="0">
                                             <string>Enter the URL for the server on which the Free/Busy information is published here.
 Ask the server administrator for this information.
-Here is a Kolab2 server URL example: "webdavs://kolab2.com/freebusy/"</string>
+Here is a Kolab2 server URL example: "webdavs://kolab2.com/freebusy/"
+Here is a generic server example: "http://myserver.net/%u@%d/?internal.ics"
+%u expands to the username, and %d expands to the domain name.</string>
                                         </property>
                                     </widget>
                                 </hbox>
diff --git a/korganizer/koprefs.cpp b/korganizer/koprefs.cpp
index a44aaf6e..3e4d78dd 100644
--- a/korganizer/koprefs.cpp
+++ b/korganizer/koprefs.cpp
@@ -92,6 +92,8 @@ KOPrefs::KOPrefs() :
 
   // Load it now, not deep within some painting code
   mMyAddrBookMails = KABC::StdAddressBook::self()->whoAmI().emails();
+
+  mAlarmsEnabledByDefault = false;
 }
 
 
@@ -211,6 +213,9 @@ void KOPrefs::usrReadConfig()
     setTimeZoneIdDefault();
   }
 
+  config()->setGroup("Event Dialogs");
+  mAlarmsEnabledByDefault = config()->readBoolEntry( "Alarm Enabled By Default" );
+
 #if 0
   config()->setGroup("FreeBusy");
   if( mRememberRetrievePw )
@@ -251,6 +256,9 @@ void KOPrefs::usrWriteConfig()
     i->writeConfig( config() );
   }
 
+  config()->setGroup("Event Dialogs");
+  config()->writeEntry( "Alarm Enabled By Default", mAlarmsEnabledByDefault );
+
 #if 0
   if( mRememberRetrievePw )
     config()->writeEntry( "Retrieve Server Password", KStringHandler::obscure( mRetrievePassword ) );
diff --git a/korganizer/koprefs.h b/korganizer/koprefs.h
index d341183e..dc7a62d1 100644
--- a/korganizer/koprefs.h
+++ b/korganizer/koprefs.h
@@ -91,6 +91,7 @@ class KDE_EXPORT KOPrefs : public KOPrefsBase
     QColor* resourceColor( const QString & );
 
     QString mHtmlExportFile;
+    bool mAlarmsEnabledByDefault;
 
     // Groupware passwords
     QString mPublishPassword;
diff --git a/korganizer/koprefsdialog.cpp b/korganizer/koprefsdialog.cpp
index 99045c30..fd9fd824 100644
--- a/korganizer/koprefsdialog.cpp
+++ b/korganizer/koprefsdialog.cpp
@@ -331,11 +331,17 @@ class KOPrefsDialogTime : public KPrefsModule
       mAlarmTimeCombo->insertStringList( alarmList );
       topLayout->addWidget( mAlarmTimeCombo, 5, 1 );
 
+      QLabel *alarmDefaultLabel = new QLabel( i18n( "Enable reminders by default:" ), topFrame);
+      topLayout->addWidget( alarmDefaultLabel, 6, 0 );
+      mAlarmTimeDefaultCheckBox = new QCheckBox( topFrame );
+      topLayout->addWidget( mAlarmTimeDefaultCheckBox, 6, 1 );
+      connect( mAlarmTimeDefaultCheckBox, SIGNAL( toggled( bool ) ),
+               SLOT( slotWidChanged() ) );
 
       QGroupBox *workingHoursGroup = new QGroupBox(1,Horizontal,
                                                    i18n("Working Hours"),
                                                    topFrame);
-      topLayout->addMultiCellWidget( workingHoursGroup, 6, 6, 0, 1 );
+      topLayout->addMultiCellWidget( workingHoursGroup, 7, 7, 0, 1 );
 
       QHBox *workDaysBox = new QHBox( workingHoursGroup );
       // Respect start of week setting
@@ -369,7 +375,7 @@ class KOPrefsDialogTime : public KPrefsModule
       addWidBool( KOPrefs::instance()->excludeHolidaysItem(),
                   workingHoursGroup );
 
-      topLayout->setRowStretch(7,1);
+      topLayout->setRowStretch(8,1);
 
       load();
     }
@@ -381,6 +387,7 @@ class KOPrefsDialogTime : public KPrefsModule
                 i18n( KOPrefs::instance()->mTimeZoneId.utf8() ) );
 
       mAlarmTimeCombo->setCurrentItem( KOPrefs::instance()->mAlarmTime );
+      mAlarmTimeDefaultCheckBox->setChecked ( KOPrefs::instance()->mAlarmsEnabledByDefault );
       for ( int i = 0; i < 7; ++i ) {
         mWorkDays[i]->setChecked( (1<<i) & (KOPrefs::instance()->mWorkWeekMask) );
       }
@@ -403,6 +410,7 @@ class KOPrefsDialogTime : public KPrefsModule
                                        mRegionMap[mHolidayCombo->currentText()];
 
       KOPrefs::instance()->mAlarmTime = mAlarmTimeCombo->currentItem();
+      KOPrefs::instance()->mAlarmsEnabledByDefault = mAlarmTimeDefaultCheckBox->isChecked();
       int mask = 0;
       for ( int i = 0; i < 7; ++i ) {
         if (mWorkDays[i]->isChecked()) mask = mask | (1<<i);
@@ -433,6 +441,7 @@ class KOPrefsDialogTime : public KPrefsModule
     QComboBox    *mHolidayCombo;
     QMap<QString,QString> mRegionMap;
     QComboBox    *mAlarmTimeCombo;
+    QCheckBox    *mAlarmTimeDefaultCheckBox;
     QCheckBox    *mWorkDays[7];
 };
 
diff --git a/korganizer/resourceview.cpp b/korganizer/resourceview.cpp
index 53b8e649..112a2801 100644
--- a/korganizer/resourceview.cpp
+++ b/korganizer/resourceview.cpp
@@ -159,8 +159,10 @@ void ResourceItem::stateChange( bool active )
           createSubresourceItems();
       }
     } else {
-      if ( mResource->save() ) mResource->setActive( false );
+      // mView->requestClose must be called before mResource->save() because
+      // save causes closeResource do be called.
       mView->requestClose( mResource );
+      if ( mResource->save() ) mResource->setActive( false );
     }
 
     setOpen( mResource->isActive() && childCount() > 0 );
diff --git a/korganizer/timelabels.cpp b/korganizer/timelabels.cpp
index 792c270d..ab596705 100644
--- a/korganizer/timelabels.cpp
+++ b/korganizer/timelabels.cpp
@@ -176,6 +176,11 @@ int TimeLabels::minimumWidth() const
 /** updates widget's internal state */
 void TimeLabels::updateConfig()
 {
+  // Avoid crash on exit
+  if ( !mAgenda ) {
+      return;
+  }
+
   setFont(KOPrefs::instance()->mTimeBarFont);
 
   QString test = "20";
diff --git a/kresources/lib/Makefile.am b/kresources/lib/Makefile.am
index 0b3f29b6..0a4d3e37 100644
--- a/kresources/lib/Makefile.am
+++ b/kresources/lib/Makefile.am
@@ -1,7 +1,4 @@
-INCLUDES = -I$(top_srcdir) \
--I$(top_srcdir)/libkcal/libical/src/libical -I$(top_srcdir)/libkcal/libical/src/libicalss \
-    -I$(top_builddir)/libkcal/libical/src/libical -I$(top_builddir)/libkcal/libical/src/libicalss \
-  $(all_includes)
+INCLUDES = -I$(top_srcdir) $(all_includes)
 
 lib_LTLIBRARIES = libkgroupwarebase.la libkgroupwaredav.la
 
@@ -24,11 +21,11 @@ libkgroupwaredav_la_LIBADD  = $(top_builddir)/libkcal/libkcal.la \
 
 METASOURCES = AUTO
 
-### We use three (or more) namespaces here in here - KPIM, KABC and KCal.  
+### We use three (or more) namespaces here in here - KPIM, KABC and KCal.
 ### When using multiple "using namespace foo" declarations, namespaced
 ### definitions cannot be resolved properly; we could use namespace foo { }
 ### instead, but this breaks on KConfigXT generated code, which still uses
-### "using namespace" and can't be fixed due to our backwards-compatibility 
+### "using namespace" and can't be fixed due to our backwards-compatibility
 ### requirements. This is only fatal when doing --enable-final, since only
 ### then do all the namespaces get mixed together.
 KDE_OPTIONS = nofinal
@@ -36,4 +33,3 @@ KDE_OPTIONS = nofinal
 messages: rc.cpp
 	$(XGETTEXT) *.cpp -o $(podir)/kdepimresources.pot
 
-webdavhandler.lo: ../../libkcal/libical/src/libical/ical.h
diff --git a/kresources/remote/resourceremote.cpp b/kresources/remote/resourceremote.cpp
index 3c9db769..68d484c0 100644
--- a/kresources/remote/resourceremote.cpp
+++ b/kresources/remote/resourceremote.cpp
@@ -30,6 +30,7 @@
 #include <kurl.h>
 #include <kio/job.h>
 #include <klocale.h>
+#include <kmessagebox.h>
 #include <kstandarddirs.h>
 
 #include <libkcal/icalformat.h>
@@ -220,7 +221,20 @@ void ResourceRemote::slotPercent( KIO::Job *, unsigned long percent )
 void ResourceRemote::slotLoadJobResult( KIO::Job *job )
 {
   if ( job->error() ) {
-    job->showErrorDialog( 0 );
+    // TODO: Should detect 404, 401 etc. vs host not found and prompt to create new resource only when 404 is returned
+    QString warningString = QString("<b>") + i18n("Remote data access failure") + QString("</b><p>") + i18n("Detailed information") \
+           + QString(":<br>") + job->errorString() + QString("<p>") + i18n("What would you like to do?");
+    int rc = KMessageBox::warningContinueCancel(0,
+	   warningString, i18n("Remote Data Access Failure"), i18n("&Continue with cached resource"));
+    if ( rc == KMessageBox::Continue ) {
+        mCalendar.close();
+        disableChangeNotification();
+        loadCache();
+        enableChangeNotification();
+
+        emit resourceChanged( this );
+    }
+    //job->showErrorDialog( 0 );
   } else {
     kdDebug(5800) << "ResourceRemote::slotLoadJobResult() success" << endl;
 
@@ -284,7 +298,7 @@ void ResourceRemote::slotSaveJobResult( KIO::Job *job )
     job->showErrorDialog( 0 );
   } else {
     kdDebug(5800) << "ResourceRemote::slotSaveJobResult() success" << endl;
-  
+
     Incidence::List::ConstIterator it;
     for( it = mChangedIncidences.begin(); it != mChangedIncidences.end();
          ++it ) {
@@ -292,7 +306,7 @@ void ResourceRemote::slotSaveJobResult( KIO::Job *job )
     }
     mChangedIncidences.clear();
   }
-  
+
   mUploadJob = 0;
 
   emit resourceSaved( this );
diff --git a/libkcal/Makefile.am b/libkcal/Makefile.am
index ccdebd9d..b35079d1 100644
--- a/libkcal/Makefile.am
+++ b/libkcal/Makefile.am
@@ -1,8 +1,6 @@
-SUBDIRS = libical versit tests
+SUBDIRS = versit tests
 
-INCLUDES = -I$(srcdir)/libical/src/libical \
-  -I$(srcdir)/libical/src/libicalss -I./libical/src/libical \
-  -I./libical/src/libicalss -I$(srcdir)/versit -I$(top_srcdir)/ \
+INCLUDES = -I$(srcdir)/versit -I$(top_srcdir)/ \
   -I$(top_srcdir)/ktnef \
   -I$(top_srcdir)/libemailfunctions \
   $(all_includes)
@@ -10,13 +8,11 @@ INCLUDES = -I$(srcdir)/libical/src/libical \
 lib_LTLIBRARIES   = libkcal.la
 libkcal_la_LDFLAGS = $(all_libraries) -no-undefined -version-info 2:0:0
 libkcal_la_LIBADD  = versit/libversit.la $(LIB_KIO) \
-                     ./libical/src/libical/libical.la \
-                     ./libical/src/libicalss/libicalss.la \
+                     -lical -licalss \
                      $(top_builddir)/ktnef/lib/libktnef.la \
                      ../libemailfunctions/libemailfunctions.la \
                      -lkresources -lkabc
 
-libkcal_la_COMPILE_FIRST = ./libical/src/libical/ical.h ./libical/src/libicalss/icalss.h
 libkcal_la_SOURCES = \
 	incidencebase.cpp incidence.cpp journal.cpp todo.cpp event.cpp \
 	freebusy.cpp attendee.cpp attachment.cpp recurrencerule.cpp recurrence.cpp alarm.cpp \
@@ -76,6 +72,5 @@ METASOURCES = AUTO
 messages: rc.cpp
 	$(XGETTEXT) *.cpp -o $(podir)/libkcal.pot
 
-DOXYGEN_EXCLUDE = libical
 DOXYGEN_REFERENCES=kresources
 include $(top_srcdir)/admin/Doxyfile.am
diff --git a/libkcal/icalformat.cpp b/libkcal/icalformat.cpp
index 0c4295cc..f1b75c5a 100644
--- a/libkcal/icalformat.cpp
+++ b/libkcal/icalformat.cpp
@@ -31,11 +31,11 @@
 #include <klocale.h>
 
 extern "C" {
-  #include <ical.h>
-  #include <icalss.h>
-  #include <icalparser.h>
-  #include <icalrestriction.h>
-  #include <icalmemory.h>
+  #include <libical/ical.h>
+  #include <libical/icalss.h>
+  #include <libical/icalparser.h>
+  #include <libical/icalrestriction.h>
+  #include <libical/icalmemory.h>
 }
 
 #include "calendar.h"
diff --git a/libkcal/icalformatimpl.cpp b/libkcal/icalformatimpl.cpp
index bd3b8e7b..64e9bc05 100644
--- a/libkcal/icalformatimpl.cpp
+++ b/libkcal/icalformatimpl.cpp
@@ -31,9 +31,9 @@
 #include <kmdcodec.h>
 
 extern "C" {
-  #include <ical.h>
-  #include <icalparser.h>
-  #include <icalrestriction.h>
+  #include <libical/ical.h>
+  #include <libical/icalparser.h>
+  #include <libical/icalrestriction.h>
 }
 
 #include "calendar.h"
diff --git a/libkcal/icalformatimpl.h b/libkcal/icalformatimpl.h
index c92f381b..0019f2bf 100644
--- a/libkcal/icalformatimpl.h
+++ b/libkcal/icalformatimpl.h
@@ -30,7 +30,7 @@
 
 
 extern "C" {
-  #include <ical.h>
+  #include <libical/ical.h>
 }
 
 namespace KCal {
diff --git a/libkcal/libical/AUTHORS b/libkcal/libical/AUTHORS
deleted file mode 100644
index ce25b7bd..00000000
--- a/libkcal/libical/AUTHORS
+++ /dev/null
@@ -1,4 +0,0 @@
-John Gray <gray@agora-net.com>
-Andrea Campi <a.campi@inet.it>
-
-Original author May 1998-December 2001, Eric Busboom  <eric@softwarestudio.org>
diff --git a/libkcal/libical/COPYING b/libkcal/libical/COPYING
deleted file mode 100644
index e69de29b..00000000
diff --git a/libkcal/libical/ChangeLog b/libkcal/libical/ChangeLog
deleted file mode 100644
index 97d25838..00000000
--- a/libkcal/libical/ChangeLog
+++ /dev/null
@@ -1,811 +0,0 @@
-2002-07-09  Andrea Campi  <a.campi@inet.it>
-
-	* src/libical/icalcomponent.c
-	* src/libical/icalcomponent.h: Added a check for valid component kind
-	before instancing a new one.
-
-2002-07-08  Andrea Campi  <a.campi@inet.it>
-
-	* src/python/Gauge.py
-	* src/python/LibicalWrap.i
-	* src/python/Property.py
-	* src/python/Store.py
-	* src/python/Time.py
-	* src/python/python-binding.txt
-	* src/python/test.py: Updated the python bindings to match the C API
-	changes.
-	Obtained from: Mark Tearle
-
-2002-07-04  Andrea Campi  <a.campi@inet.it>
-
-	* src/libical/icalderivedproperty.c.in
-	* src/libical/icalproperty.c
-	* src/libical/icalproperty.h: Added a check for valid property kind
-	before instancing a new one.
-
-	* src/libical/icalvalue.c: Fixed icalvalue_new_clone to properly clone
-	X- properties.
-
-2002-06-28  Andrea Campi  <a.campi@inet.it>
-
-	* design-data/parameters.csv
-	* src/libicalss/icalgauge.c
-	* src/libicalss/icalgaugeimpl.h
-	* src/libicalss/icalsslexer.c
-	* src/libicalss/icalsslexer.l
-	* src/libicalss/icalssyacc.c
-	* src/libicalss/icalssyacc.h
-	* src/libicalss/icalssyacc.y: Added IS NULL to icalgauge
-	syntax.
-	Obtained from: Paul Lindner
-
-	* src/libical/icallexer.c
-	* src/libical/icallexer.l
-	* src/libical/icalyacc.c
-	* src/libical/icalyacc.h
-	* src/libical/icalyacc.y: Sent lex/yacc code to Attic.
-
-	* src/libical/icalparameter.c: Changed icalparameter_as_ical_string
-	to also quote the param value if it contains a , (comma), as per RFC2445.
-
-	* src/libicalss/icalset.c
-	* src/libicalss/icalset.h: Added experimental code to support
-	dynamic loading of icalset derived classes.
-
-	* src/libicalss/Makefile.am
-	* src/libicalss/icalspanlist_cxx.cpp
-	* src/libicalss/icalspanlist_cxx.h: Added C++ binding for libicalss.
-	Obtained from: Paul Lindner
-
-2002-06-28  Eric Busboom  <eric@softwarestudio.org>
-
-	* src/libical/Makefile.am
-	* src/libical/icalduration.c
-	* src/libical/icalparser.c
-	* src/libical/icalvalue.c
-	* src/libical/icalyacc.c
-	* src/libical/icalyacc.h: removed lex and yacc by writing
-	code to parse UTC-OFFSET
-
-2002-06-27  Andrea Campi  <a.campi@inet.it>
-
-	* src/libical/icalcomponent.c
-	* src/libical/icalcomponent.h: Added icalcomponent_foreach_recurrence
-	as a better way of handling recurrences; deprecated
-	icalcomponent_get_span
-	Obtained from: Paul Lindner
-
-	* src/libical/icalderivedvalue.c.in
-	* src/libical/icalvalue.c
-	* src/libical/icalvalue.h: Added a check for valid value kind before
-	instancing a new one.
-	Obtained from: Paul Lindner
-
-	* src/libical/icalproperty.c
-	* src/libical/icalproperty.h: Deprecated icalproperty_remove_parameter,
-	added 3 new functions to do the same in a safer way (wrt X- params).
-	Obtained from: Paul Lindner
-
-	* src/libical/icaltime.c
-	* src/libical/icaltime.h: Added functions to work with time spans.
-	Obtained from: Paul Lindner
-
-2002-06-26  Andrea Campi  <a.campi@inet.it>
-
-	* src/libical/icalduration.c: Fixed icaldurationtype_from_int to
-	generate valid RFC2445 durations (it used to mix weeks and other
-	time units).
-
-2002-06-13  Andrea Campi  <a.campi@inet.it>
-
-	* src/libical/icalvalue.c: Fixed escaping of TEXT values and
-	formatting of UTCOFFSET values to more closely match RFC2445.
-
-	* configure.in
-	* src/libical/Makefile.am
-	* src/libical/icalparameter_cxx.cpp
-	* src/libical/icalparameter_cxx.h
-	* src/libical/icalproperty_cxx.cpp
-	* src/libical/icalproperty_cxx.h
-	* src/libical/icalvalue_cxx.cpp
-	* src/libical/icalvalue_cxx.h
-	* src/libical/vcomponent.cpp
-	* src/libical/vcomponent.h
-	* src/libicalss/icalbdbset_cxx.h: Added C++ binding.
-	Obtained from: Paul Lindner
-
-	* configure.in
-	* src/libicalss/Makefile.am
-	* src/libicalss/icalbdbset.c
-	* src/libicalss/icalbdbset.h
-	* src/libicalss/icalbdbset.h
-	* src/libicalss/icalbdbsetimpl.h
-	* src/test/Makefile.am
-	* src/test/storage.c: Added BerkeleyDB 4.0 icalset implementation.
-	Obtained from: Paul Lindner
-
-2002-06-11  Andrea Campi  <a.campi@inet.it>
-
-	* src/test/Makefile.am
-	* src/test/regression-classify.c
-	* src/test/regression-component.c
-	* src/test/regression-recur.c
-	* src/test/regression-utils.c
-	* src/test/regression.c
-	* src/test/regression.h
-	* src/test/test_fileset.ics: New regression test suite
-	Obtained from: Paul Lindner
-
-	* src/libical/icalcomponent.c
-	* src/libical/icalproperty.c
-	* src/libical/icalproperty.h
-	* src/python/test.py
-	* src/test/regression.c: Improved X- parameter handling.
-	Obtained from: Mark Tearle
-
-2002-06-07  Andrea Campi  <a.campi@inet.it>
-
-	* configure.in
-	* src/libical/Makefile.am
-	* src/libical/icallexer.l
-	* src/libical/icalparser.c
-	* src/libical/icalparser.h
-	* src/libical/icalyacc.y
-	* src/libicalss/Makefile.am
-	* src/libicalss/icalgauge.c
-	* src/libicalss/icalsslexer.c
-	* src/libicalss/icalsslexer.l
-	* src/libicalss/icalssyacc.c
-	* src/libicalss/icalssyacc.h
-	* src/libicalss/icalssyacc.y: Made parser fully reentrant using
-	recent versions of flex/bison. Also committed the generated files
-	so that the library can be compiled even without those tools.
-	Obtained from: Paul Lindner
-
-	* src/python/LibicalWrap.i
-	* src/python/Property.py
-	* src/python/test.py: Support X- properties in the Python wrapper.
-	Obtained from: Mark Tearle
-
-2002-06-04  Andrea Campi  <a.campi@inet.it>
-
-	* *: Constifed a lot of functions, also made a few of them static
-	Obtained from: Paul Lindner <lindner@inuus.com>
-
-2002-06-03  Andrea Campi  <a.campi@inet.it>
-	* src/libical/icallangbind.c
-	* src/python/Component.py
-	* src/python/Gauge.py
-	* src/python/Libical.py
-	* src/python/LibicalWrap.i
-	* src/python/Store.py
-	* src/python/test.py: Fully implemented FileStore and Gauge
-	in the python bindings.
-	Obtained from: Mark Tearle <mtearle@tearle.com>
-
-2002-05-28  Andrea Campi  <a.campi@inet.it>
-
-	* src/libical/icalattach.c
-	* src/libical/icalattach.h
-	* src/libical/icalattachimpl.h
-	* src/libical/icalderivedproperty.c.in
-	* src/libical/icalderivedvalue.c.in
-	* src/libical/icalderivedvalue.h.in
-	* src/libical/icaltypes.c
-	* src/libical/icaltypes.h
-	* src/libical/icalvalue.c
-	* src/libical/icalvalueimpl.h: Changed ATTACH to be an opaque type
-
-2002-05-27  Eric Busboom  <eric@softwarestudio.org>
-
-	* scripts/mkderivedparameters.pl
-	* scripts/mkderivedproperties.pl
-	* scripts/mkderivedvalues.pl
-	* src/libical/icalderivedparameter.c.in
-	* src/libical/icalderivedparameter.h.in
-	* src/libical/icalderivedproperty.c.in
-	* src/libical/icalderivedproperty.h.in
-	* src/libical/icalderivedvalue.c.in
-	* src/libical/icalderivedvalue.h.in: changed the auto generated
-	files and scripts so that the generated code is inserted into the
-	middle of the template (.in) file, instead of the end. This means
-	we could get rid of the declaration for the maps.
-
-2002-05-27  Andrea Campi  <a.campi@inet.it>
-
-	* src/libical/icaltimezone.c: Worked around Outlook/Exchange brokenness.
-	Obtained from: evolution CVS repository
-
-2002-05-24  Andrea Campi  <a.campi@inet.it>
-
-	* src/libical/icalproperty.c: Implemented proper RFC2445 folding.
-	Obtained from: evolution CVS repository
-
-	* src/libical/icalrecur.c: Worked around Outlook/Exchange brokenness.
-	Obtained from: evolution CVS repository
-
-
-2002-05-21  Andrea Campi  <a.campi@inet.it>
-
-	* src/libical/*: Removed void * in favor of opaque typedef types.
-	This helped uncover a few bugs and made debugging easier.
-	Obtained from: Paul Lindner
-
-2002-05-10  Andrea Campi  <a.campi@inet.it>
-
-	* src/libical/icalmemory.c: Made the memory allocator threadsafe.
-	This code is currently conditional on USE_THREAD, but it might
-	become the default in the future.
-	Obtained from: Paul Lindner
-
-	* src/libical/icaltime.c: Implemented icaltime_is_date(), with the
-	intent of removing all direct accesses to is_date.
-
-2002-05-09  Andrea Campi  <a.campi@inet.it>
-
-	* icaltime.c Rewrote and documented icaltime API, with the goal of
-	keeping it stable until release 1.0. Some functions and internal
-	implementation details are now declared obsolete and removed from
-	the documentation; they will be removed at a later time.
-
-2001-12-12  Eric Busboom  <eric@softwarestudio.org>
-
-	* icalrecur.c implemented recurrence rule for "FREQ=YEARLY",
-	with no BY rules.
-
-2001-12-11  Eric Busboom  <eric@softwarestudio.org>
-
-	* icalrecur.c Fixed bug in next_month for MONTHLY rules that have
-	only BYDAY rules. The code would miss valid dates that fell on the
-	first of the month. created new routine is_day_in_byday()
-
-	* icaltime.c Fixed icaltime_from_day_of_year to correctly handle 
-	negative and over-range day-of-years
-
-	* icaltime.c collected all instances of leap year code into
-	icaltime_is_leap_year
-
-	* icaltime.c icaltime_day_of_year. Changed an assert into code
-	that advances the year when the day of year is lager than the
-	number of days in the given year
-
-	* icalerrno.c,h Added the function version
-	icalerror_set_errno. Only the define verson existed.
-
-	* icaltime.c Moved all of the getenv/putenv operations into icaltimegm()
-	
-2001-06-29  Eric Busboom  <eric@softwarestudio.org>
-
-	* icalderivedproperties.h,c Changed the signature if the CLASS
-	property from TEXT to CLASS. ( enum icalproperty_class) 
-
-2001-06-22  Eric Busboom  <eric@softwarestudio.org>
-
-	* icaltypes.c Fixed bug in icaltriggertype_new_from_string htat
-	caused it to fail.
-
-2001-04-12  Eric Busboom  <eric@softwarestudio.org>
-
-	* icalvalue.c Added quoting to apostrophies ("'") in text
- 	values. This is not required by the spec, but it is necessary in
- 	icallangbind_property_eval_string, since ' is special in both perl
- 	and python.
-
-2001-04-10  Eric Busboom  <eric@softwarestudio.org>
-
-	* icalvalue.c Added routine icalvalue_reset_kind. This routine is
- 	now called by all autogenerated icalvalue_set_*
- 	routines. icalvalue_reset_kind() will change the kind of the value
- 	based on the data in the value. Currently, it will set a value to
- 	either DATETIME or DATE based on the is_date flag of icaltimetype.
-
-2001-04-09  Eric Busboom  <eric@softwarestudio.org>
-
-	* icalproperty.h Converted REQUEST-STATUS to use the struct
- 	icalreqstat structure instead of a string
-
-2001-04-01  Eric Busboom  <eric@softwarestudio.org>
-
-	* icalcomponent.h Changed meaning of
- 	icalcomponent_new_from_string. It used to create a new component
- 	given the text name of the component type to create. Now it calls
- 	icalparser_parse_string to create a new component from the
- 	complete iCalendar text representation of the component.
-
-2001-03-31  Eric Busboom  <eric@softwarestudio.org>
-
-	* icalvalue Changed ACTION properties to take an ACTION value
- 	instead of TEXT. The ACTION value is enumerated.
-
-2001-03-26  Eric Busboom  <eric@softwarestudio.org>
-
-	* icalparameter.h icalparameter_rsvp_* routines now take, return
- 	ICAL_RSVP_TRUE and ICAL_RSVP_FALSE, not 0 and 1
-
-2001-03-25  Eric Busboom  <eric@softwarestudio.org>
-
-	* icalrecur.c Many changes to get YEARLY rules working and fix
- 	other errors. Recurrences are stil broken, but more types of rue
- 	now work.
-
-2001-03-16  Eric Busboom  <eric@softwarestudio.org>
-
-	* icalparameter.c Changed icalparameter_new_from_string() to
- 	icalparameter_new_from_value_string(). Created new
- 	icalparameter_new_from_string() that takes strings of
- 	form"PARAMNAME=PARAMVALUE"
-
-	* *_XNAME changes all _XNAME enumerations to _X
-
-	* derived props, values, parameters. Seperated out derived
- 	proeprties, parameters and values into their own files. This makes
- 	it easier to auto generate all of the enumerations for values,
- 	parameters and proeprties.
-
-	* icalenum.h Major changes to icalenum. Movel all of the
- 	icalenum_* values to other modules, and changed the names. Look
- 	for #defines in icalenum.h tying the old name to the new
- 	name. Also moved all of the enumerations into other files.
-
-	
-	
-2001-02-26  Eric Busboom  <eric@softwarestudio.org>
-
-	* src/libical/icalproperty.c Added
- 	icalproperty_set_parameter_from_string and
- 	icalproperty_set_value_from_string to aid in binding to Python 
-
-2001-02-15  Eric Busboom  <eric@softwarestudio.org>
-
-	* design-data/prop-to-value.txt Made a new CSV file,
- 	properties.cvs That collects property-to-value and default value
- 	information
-
-	* src/libical/icalproperty.{c,h}.in Moved auto generated code into
- 	icalderivedproperty.{c,h} and created icalderivedproperty.{c,h}.in
-
-	
-
-2001-02-14  JP Rosevear  <jpr@ximian.com>
-
-	* src/libical/Makefile.am: Sigh, automake is dumber than i thought
-
-2001-02-12  JP Rosevear  <jpr@ximian.com>
-
-	* src/test/Makefile.am: link with the static versions
-
-	* src/python/Makefile.am: use include dir discovered in configure checks
-
-	* src/python/.cvsignore: shush
-
-	* src/libical/icalrestriction.c: remove autogenerated file
-	
-	* src/libical/Makefile.am: the generated files are now disted so
-	look for them in the source dir rather than the build dir
-
-	* src/Makefile.am: Only build the python dir if all the configure
-	stuff checked out
-
-	* configure.in: Remove shared library disabling and add a python
-	check and allow for the python bindings to not be built
-
-2001-02-11  Eric Busboom  <eric@softwarestudio.org>
-
-	* src/python/Makefile.am Tweaked makefile to use automake more,
- 	but it stil isn't quie right.
-
-2001-02-09  JP Rosevear  <jpr@ximian.com>
-
-	* Shush cvs
-	
-2001-02-09  JP Rosevear  <jpr@ximian.com>
-
-	* src/libical/Makefile.am: Slightly over zealous during the merge
-	
-2001-02-09  JP Rosevear  <jpr@ximian.com>
-
-	* src/libical/Makefile.am: Correct typo
-
-	* Removal of more auto generated files
-	
-2001-02-09  JP Rosevear  <jpr@ximian.com>
-
-	* Removal of various auto generated files
-	
-2001-02-09  JP Rosevear  <jpr@ximian.com>
-
-	* src/libical/icalparameter.c.in (icalparameter_new_from_string):
-	its NEEDS-ACTION rather than NEEDSACTION
-	(icalparameter_as_ical_string): ditto
-
-2001-02-09  Eric Busboom  <eric@softwarestudio.org>
-
-	* python Added src/python directory. Inserted SWIG wrapper files,
- 	and a simple interface to Component, Time, Duration, Period and
- 	Store.
-
-	* icallangbind.c More experimental work
-
-	* icalduration.{c,h}, icalperiod.{c,h} Broke out period and
- 	duration types into their own files
-
-2001-02-06  Christopher James Lahey  <clahey@ximian.com>
-
-	* src/libical/icallangbind.c: Added a missing #include here.
-
-	* src/libical/icalrecur.c (icalrecur_add_bydayrules): Copy the
-	passed in const vals since we change it.
-	
-2001-02-06  Eric Busboom  <eric@softwarestudio.org>
-
-	* icaltime.c Changed icaltime_from_day_of_year to run mktime in
- 	the UTC timezone. This fixed a bug where it would return one day
- 	eariler for some timezones.
-
-2001-02-05  Ettore Perazzoli  <ettore@ximian.com>
-
-	* src/libical/Makefile.am (COMBINEDHEADERS): `icalvalue.h',
-	`icalparameter.h', `icalproperty.h' and `icalrestriction.h' are
-	created in the builddir so they shouldn't be prefixed with
-	`$(top_builddir)/src/libical'.
-	
-2001-01-26  Eric Busboom  <eric@softwarestudio.org>
-
-	* icalproperty.c.in Improved icalproperty_as_ical_string() to
- 	eliminate the possibility of having a VALUE parameter that does
- 	not match the actual kind of value.
-
-	* icalvalue.c.in made icalvalue_*_trigger() and
- 	icalvalue_*_datetimeperiod non-autogenerated. These routines were
- 	for combined value type -- non standard values that can have more
- 	than on standard value type. These non-standard types now delegate
- 	to stadard types.
-
-2001-01-24  Eric Busboom  <eric@softwarestudio.org>
-
-	* icalfileset.c fixed icalfileset_read-from_file so it will handle
- 	lines longer than 80 char properly.
-
-2001-01-23  JP Rosevear  <jpr@ximian.com>
-
-	* configure.in: Don't AC_INIT on an autogenerated file that does not
-	exist beforehand
-	
-2001-01-23  Eric Busboom  <eric@softwarestudio.org>
-
-	* icltime.c Removed all of the _local_ routines and simplified
- 	icaltime_utc_offset and icaltime_as_timet
-
-	* regression.c Added tests for triggers and improvements to icaltime.c
-
-	* icaltypes.c Addedd icaltriggertype_from_string and changed
- 	icaltriggertype to be a struct
-
-2001-01-22  Eric Busboom  <eric@softwarestudio.org>
-
-	* icaltime.c implemented icaldurationtype_from_string to parse the
- 	string it self, rather than use lex/yacc
-
-2001-01-15  Eric Busboom  <eric@softwarestudio.org>
-
-	* icalfileset.c Many improvements. File locking now works, and so
- 	does searching with icalfileset_select()
-
-2001-01-08  Eric Busboom  <eric@softwarestudio.org>
-
-	* Makefile.am Remove spaces after -I in several 
-	Makefile.am routines. 
-
-	* icalset.c removed return statements from some void functions.
-
-	* icalparameter.c.in Added break to default: case that had no
- 	body. Compilers on Solaris and Tru64 UNIX complained.
-
-2001-01-02  Eric Busboom  <eric@softwarestudio.org>
-
-	* icaltime.c Changed icaldurationtype_from_time and _as_timet to
- 	_from_int and _as_int. This is a change interface that may break
- 	some code.
-
-	* icalgauge.c icalgaugeimpl.h, icalgauge.h., Rewrote gauge code to
- 	use pvl-lists directly, instead of trying to reuse icalcomponent.
-
-2000-12-13  Ettore Perazzoli  <ettore@helixcode.com>
-
-	* src/libicalvcal/Makefile.am (INCLUDES): Add
-	`$(top_builddir)/src/libical' to the include directory list.
-
-	* src/libical/Makefile.am (icalparameter.h): Use `$(srcdir)'.
-	(icalparameter.c): Likewise.
-	(icalproperty.h): Likewise.
-	(icalproperty.c): Likewise.
-	(icalvalue.h): Likewise.
-	(icalvalue.c): Likewise.
-	(icalrestriction.c): Likewise.
-	(COMBINEDHEADERS): `icalvalue.h', `icalparameter.h' and
-	`icalproperty.h' are in builddir, not srcdir, so fix the list to
-	use `$(top_builddir)' instead of `$(top_srcdir)'.
-	(all): Removed.
-	(BUILT_SOURCES): Move `ical.h' here instead.
-	(ical.h): Don't depend on `(BUILT_SOURCES)'; this a built source
-	itself.
-	
-2000-12-12  Eric Busboom  <eric@softwarestudio.org>
-
-	* icalparser.c Addedd support for x-parameters. 
-
-	* icalenum.c Fixed icalenum_parameter_type_to_string and
- 	icalenum_property_type_to_string to property identify X- parameers
- 	and properties.
-
-	* icalparameter.c Fixed icalparameter_as_ical_string to property
- 	write out X-Parameters.
-
-	
-2000-12-11  Eric Busboom  <eric@softwarestudio.org>
-
-	* icalcstp.c added empty bodies to prep_* routines so that shared
- 	libraries would build.
-
-2000-12-11  JP Rosevear  <jpr@helixcode.com>
-
-	* src/libical/icaltime.c (icaltime_compare_date_only): New
-	function that compares only the dates, not the times as well.
-
-	* src/libical/icaltime.h: Add prototype for the function above.
-
-	* src/libical/icalrecur.h (struct icalrecurrencetype): Correct
-	header documentation.
-
-	* src/libical/icaltypes.c: No longer include <limits.h>.
-
-	* src/libical/icalrecur.c: Likewise.
-
-	* src/libical/icalvalue.c: Likewise.
-
-	* src/libical/icalyacc.y: Likewise.
-
-2000-12-11  Federico Mena Quintero  <federico@helixcode.com>
-
-	* configure.in (AC_OUTPUT): Fixed order of generated files to make
-	"make distcheck" work.  Turn on AM_MAINTAINER_MODE.
-
-	* src/libical/Makefile.am (EXTRA_DIST): Add icalversion.h.in.
-	(COMBINEDHEADERS): Added paths to make "make distcheck" work.
-	(libical_la_SOURCES): Added headers for distribution in our weird
-	setup.
-
-2000-12-06  Eric Busboom  <eric@softwarestudio.org>
-
-	* icaltime.c added icaltime_as_local to convert a UTC time to a
- 	local time
-
-	* icaltime.h icaltime.c Removed is_utc argument from
- 	icaltime_from_timet
-
-	
-2000-11-29  Eric Busboom  <eric@softwarestudio.org>
-
-	* icalrecur.c More testing and bug fixes. Many more of the rules
- 	in recur.txt work correctly.
-
-2000-11-28  Eric Busboom  <eric@softwarestudio.org>
-
-	* icalrecur.c Several changes to extract icalrecur.c from
- 	libical. I'd like to make it into a reference impl for recurrence
- 	rules. CHanges include moving all of the recurrence type and
- 	recurrence enums from icalenum and icaltypes into icalrecur, and
- 	adding code to parse recurrence rule strings.
-
-	* icaltime.c Changed icaltime_from_string to parse the string
- 	directly. Now icaltime.c has no dependency on icalvalue.c
-
-2000-11-21  Eric Busboom  <eric@softwarestudio.org>
-
-	* icalrecur.c Fixed a bug in the increment_* routines that made
- 	incrementing by more then 1 insensible. Thanks to Martin Neimeier
-
-2000-11-20  Eric Busboom  <eric@softwarestudio.org>
-
-	* icalmessage.c Many routines to create new ical messages. 
-
-	* icalspanlist.c Code to generate a list of the busy time f the
- 	VEVENTS in a set. Also includes routiens to generate free and busy
- 	lists from the spanlist, and to find the next free time after a
- 	given time.
-
-	* icalvalue.c The STATUS property now has its own value type,
- 	STATUS, which holds the enumeration icalproperty_status.
-
-	* icalrestriction.c Added more restrictions. Now handles mutual
- 	and exclusive consitions, and checks for the reight values in
- 	STATUS properties
-	
-
-2000-11-10  Eric Busboom  <eric@softwarestudio.org>
-
-	* icaltypes.c Added routine to create durationtype from string:
- 	icaldurationtype_from_string
-
-2000-11-09  Eric Busboom  <eric@softwarestudio.org>
-
-	* icalcomponet.c Add sever get/set convienience routines to access
- 	and manipulate common component propoerties from the component
- 	interface. This eliminates the need to create a lot of temporary
- 	variables if you just want to change the start time of and event.
-
-2000-11-06 Eric Busboom    <eric@softwarestudio.org>
-
-	* icalcomponent.c Added new routines to icalcomponent:
-	_get_span -- returns the start and end times of the event in UTC
-	_get_first_real_component -- return ref to VTODO, VEVENT or VJOURNAL
-
-	* icalspanlist.c Added new class, icalspanlist, that generates a
- 	list of alternating busy and free times from an icalset. The class
- 	includes routines to gnerate rfc2445 busy and free lists, and to
- 	get the next avaliable busy or free time after a given time.
-
-2000-11-06  Federico Mena Quintero  <federico@helixcode.com>
- 
-	* src/libical/icalvalue.c (icalvalue_recur_as_ical_string): Handle
-	both the position and weekday in the by_day field.
-
-2000-10-20  Eric Busboom  <eric@agony.busboom.org>
-
-	* Const correctness. Added 'const' all over everywhere. 
-
-2000-10-19  Eric Busboom  <eric@agony.busboom.org>
-
-	* icalproperty, icalparameter, icalvalue .c, .h Changed most
-	instances of char* to const char*
-
-	* icalclassify.h Added multiple include protection
-
-	* icalset.h and others, got rid of parameter named "new"
-	
-2000-10-15 Eric Busboom   <eric@softwarestudio.org>
-	
-	* icalcomponent Added convienience functions for constructing
- 	components: icalcomponent_new_vcalendar(), etc.
-
-	* Makefile.am Incorporated build system patch from Federico
- 	Quintero. Misc small fixes and cleanup
-
-	* scripts Incorporated auto-gen patch from Frederico. Generated
- 	code in libical now uses icalproperty.c.in (etc) instead of
- 	editing file icalparoperty.c in place.
-
-	* libical. Changed flex/bison to use the -P/-p options to set
- 	ical_yy as a prefix. Removed prefix redefinition from icalyacc.y
-	
-2000-10-12 Eric Busboom    <eric@softwarestudio.org>
-
-	* icalproperty.c Fixed icalproperty_get_{first,next}_parameter to
- 	honor the parameter kind argument
-
-	* icalparameter.c Added, but did not complete, a new version of
- 	icalparameters_from_string that does not use the hairy nested
- 	case/switch statements of the previous version
-	
-	
-2000-10-02 Eric Busboom  <eric@softwarestudio.org>
-
-	* ical.h ical.h and icalss.h now are concatenations of all of the
- 	public headers for their respective libraries. Thus, only ical.h,
- 	icalss.h and icalvcal.h need to be installed.
-
-2000-09-11  Eric Busboom  <eric@softwarestudio.org>
-
-	* icalvcal.c Added more comments 
-	
-2000-08-31  JP Rosevear  <jpr@helixcode.com>
-
-	* configure.in: Don't list config.h in AC_OUTPUT
-	
-2000-08-26  Ettore Perazzoli  <ettore@helixcode.com>
-
-	* examples/Makefile.am (INCLUDES): More `$(srcdir)' loving.
-
-	* src/libicalvcal/Makefile.am (INCLUDES): Add `-I
-	$(srcdir)/../libical' for builddir != srcdir loving.
-
-2000-08-25  Christopher James Lahey  <clahey@helixcode.com>
-
-	* examples/access_properties_and_parameters.c,
-	src/libicalvcal/vcc.y: Got rid of some warnings.
-
-	* src/libicalvcal/vcc.c: Checking in generated C file.
-
-2000-08-25  Christopher James Lahey  <clahey@helixcode.com>
-
-	* src/libical/icalcomponent.c: Fixed an incorrect struct name.
-
-2000-08-25  Peter Williams  <peterw@helixcode.com>
-
-	* src/libical/icalcomponent.c (icalcomponent_end_component): Compile fix;
-	use icalerror_check_arg_re so we can return an valid icalcompiter.
-	(icalcomponent_begin_component): Same.
-
-2000-08-24  Federico Mena Quintero  <federico@helixcode.com>
-
-	* src/test/Makefile.am: Make it work.
-	
-2000-08-04  Eric Busboom  <eric@softwarestudio.org>
-
-	* stow.c Changed stow to write data to a file ( icalfileset) not a
- 	calendar. Also added MIME parsing capability
-
-	* sspm.c Core of the mime processor. Now handles quoted-printable
- 	and base64 encodings
-
-	* icalmime.h New file that parses mime data and returns an
- 	icalcomponent that includes all of the parts.
-
-	
-2000-07-26   Eric Busboom   <eric@softwarestudio.org>
-
-	* icaldirset.h misc bug fixes to get deleting components to work
-
-	* icalcomponent.h Eliminated internal use of _get_first_component
- 	and _get_next_component, since these will reset the interal
- 	iterators.
-
-2000-07-23   Eric Busboom   <eric@softwarestudio.org>
-
-	* icalcomponent.h Added external iterators to icalcomponent for
- 	subcomponents: icalcompiter. These are still experimental, but they
- 	seem to work OK and have a nice syntax
-
-2000-07-18   Eric Busboom   <eric@softwarestudio.org>
-
-	* icalset This is a new "superclass" for icalstore, icalcluster,
- 	and others. It merges the interfaces of the old icalstore and
- 	icalcluster
-
-	* icalstore.{c,h} CHanged name to icaldirset
-
-	* icalcluster.{c,h} Changed name to icalfileset
-	
-
-2000-06-12  Eric Busboom  <eric@softwarestudio.org>
-
-	* icalstow.c misc improvements and bug fixes to make it useful.
-
-2000-06-09  Eric Busboom  <eric@softwarestudio.org>
-
-	* icalrecur.c More extensive code changes for recurrence rule.
-
-	* icalyacc.y Added support for integers in by day lists
-
-2000-06-01  Eric Busboom  <eric@softwarestudio.org>
-
-	* icalrecur.c moved recur code into new files
-
-2000-05-30  Eric Busboom  <eric@softwarestudio.org>
-
-	* icaltypes.c Extensive work on code to expand recurences
-
-	* icaltypes.h Changed signature icaltimetype_from_timet to include
- 	is_utc flag.
-	
-
-2000-03-17  Eric Busboom  <eric@softwarestudio.org>
-
-	* icalstore.c Vastly improved icalstore_test. 
-
-2000-03-16  Eric Busboom  <eric@softwarestudio.org>
-
-	* icalcluster.c Added compile flag (ICAL_SAFESAVES) to switch how
- 	icalcluster saves files during commits. When the flag is define,
- 	it will write the data to a temorar file and rename the file to
- 	the target file.
-
-	* storage.c Added seterate test suite for sotage components
-
-	* icalparser.c Created parser object, implemented line-oriented
- 	parsering, and made message oriented parsing work in terms f line
- 	oriented parsing.
-
-	* icalparser.c Fixed icalparser_get_line to remove \r in input.
-	
-
diff --git a/libkcal/libical/INSTALL b/libkcal/libical/INSTALL
deleted file mode 100644
index b3f195d6..00000000
--- a/libkcal/libical/INSTALL
+++ /dev/null
@@ -1,24 +0,0 @@
-Building the library
---------------------
-
-This distribution is developed on Red Hat Linux 6.0 and usually
-compiles on SunOS 5.6 and FreeBSD 2.27. I have reports of success of
-previous version on MacOS ( with CodeWarrior ) and on UnixWare, but I
-don't know about any other systems.
-
-The library is configured with automake. From the root directory, run 
-
-	./configure
-
-To build all of the Makefiles for your system. If you will be installing the library, you may want to use the --prefix flag to set the directory where the library and header files will be installed. 
-
-	./configure --prefix=/proj/local/
-
-If configure runs fine, run "make" to build the library and 
-"make install" to install it.
-
-The current version of libical focuses on creating and
-manipulating iCal objects. With it, you can parse text representations
-of iCal components, add and remove sub-components, properties,
-parameters and values, and print the components back out as strings. 
-
diff --git a/libkcal/libical/Makefile.am b/libkcal/libical/Makefile.am
deleted file mode 100644
index baf9fc36..00000000
--- a/libkcal/libical/Makefile.am
+++ /dev/null
@@ -1,11 +0,0 @@
-
-KDE_OPTIONS = foreign
-
-EXTRA_DIST = \
-	ChangeLog \
-	README \
-	TEST \
-	TODO
-
-SUBDIRS = doc scripts src zoneinfo
-
diff --git a/libkcal/libical/NEWS b/libkcal/libical/NEWS
deleted file mode 100644
index ad1299b2..00000000
--- a/libkcal/libical/NEWS
+++ /dev/null
@@ -1,522 +0,0 @@
-Version 0.24, XX Xxx 2002 ( cvs tag libical-0-24 )
---------------------------------------------------
-
-**** Incompatibilities with previous version ****
-
-CSTP client/server code has been removed from libicalss.
-Future versions will eventually contain a full CAP 6.0
-client/server implementation.
-
-icalproperty_get_name() is deprecated and will change
-in a future release.  Use icalproperty_get_icalproperty_name()
-instead.
-
-icalcomponent_get_span() is deprecated in this release
-because it does not handle recurring events.  See
-icalcomponent_foreach_recurrence() for an alternate
-interface.
-
-The icalproperty_remove_parameter() call is deprecated 
-because it improperly deals with extended parameters.
-See icalproperty_remove_parameter_by_kind() for a 
-compatible call.
-
-Code that deals with the TRANSPARENT property now
-uses enumeration values to get/set values instead of
-strings.
-
-The code for dealing with icalsets was overhauled.  You
-will want to use the common icalset_* routines
-directly instead of calling into the icalfileset_* or
-icaldirset_* routines.
-
-A number of routines now expect to be called with
-const arguments.  A number of routines now
-return pointers to const data.
-
-
-**** New Features ****
-
-Major cleanup of the time-handling routines.  New API is
-available that deals with timezones much more cleanly.
-
-The regression routines in src/test are much cleaner.  
-Test runs summarize which tests fail and do not
-immediately abort() like the old set of tests.  A 
-number of old, commented tests were resurrected.
-
-C++ Interface: New libraries libical_cxx.la and libicalss_cxx.la
-are build when you configure with the --enable-cxx option.
-
-Java Interface: A JNI interface to libical is build when
-you configure with the --enable-java option.
-
-Most of libical is now reentrant and thread safe.  The Lex/Yacc
-query parser is pre-built with flex 2.5.8 and bison 1.34.   To
-rebuild these files you will need to specify the --with-devel
-option.  The --enable-reentrant option also adds the -D_REENTRANT
-flag for systems that require it.  The build system attempts to
-add the pthread libraries to support a thread safe memory allocator
-and thread-safe error handling.
-
-A new storage mechanism for Berkeley DB 4.0 was contributed
-by Critical Path.  Specify the --with-bdb4 and --with-bdb4-dir
-options to enable.
-
-Embedded code comments are slowly being migrated to be
-doxygen compliant.  See http://www.doxygen.org/ for
-more on this wonderful tool. 
-
-The code should now compile with non-gcc compilers.  Certain
-parts of the autogenerated code were causing problems.  The
-code base has also been ported to the windows Visual C 
-environment.
-
-
-Version 0.23, 26 Mar 01 ( cvs tag libical-0-23 )
-------------------------------------------------
-
-**** Incompatibilities with previous versions ****
-
-icalparameter_new_rsvp
-icalparameter_get_rsvp
-icalparameter_set_rsvp
-
-	These routines now take and return ICAL_RSVP_TRUE and
-	ICAL_RSVP_FALSE instead of 0 and 1
-	
-icalenum_*_to_*
-
-	These routines have been moved to icalproperty, icalparameter
-	or icalvalue
-
-
-
-Python interface: An alpha level python interface is available in
-src/python.
-
-Perl interface: A pre-alpha level interface is available in
-src/Net-ICal-Libical
-
-Code Autogeneration: Converted all of the important files in
-design-data/ to .csv files and improved the code that is generated
-from them. Now all of the enumerations for property, parameters and
-values are generated from thes files, as are the string
-representations for the enumerations. You can add a new property or
-parameter to the system simply by adding a line to the appropriate
-file in design-data/
-
-Recurrences: Improved the recurrence code by fixing bugs in MONTHLY
-recurrences and completely re-implementing expand_year_days() for
-YEARLY recurrences. Hubert V's aided in testing. 
-
-Build system: JP Rosevear made several improvements to the build
-system. Now checking out the code from cvs should give to a complete
-but minimal distribution, without any of the autognerated files.
-
-Interface changes: Nearly all of the icalenum routines for converting
-between strings and enumerations have been moved out of icalenum into
-icalproperty, icalparameter and icalvalue. This means that their names
-have changed, although #defines have been added to icalenum.h to map
-back to the old names.
- 
-Added src/libical/icllangbind.c that has some functions to make it
-easier to bind libical to other languages.
-
-
-Version 0.22, 15 Jan 01 ( cvs tag libical-0-22)
-----------------------------------------------
-
-Many improvements to the time routines in icaltime.c. I think that
-they actually make sense now. Note that there is an interface change
-with icaltime_from_timet() -- I removed the is_utc parameter, since
-all timet values are in UTC. Use icaltime_from_int() if you really
-want the old interface
-
-Major improvements to icalfileset. icalfileset_select now works and so
-does file locking.
-
-Minor revision to the documentation, but it does include a new section
-on file storage ( icalfileset ) and time ( icaltime.c)
-
-Lots of bug fixes and small patches. 
-
-I improved the regression test in src/test/regression.c. It now have
-command line switches to select specific tests ( undocumentated, of
-course ) and more of the tests include asserts, so you can just run it
-without looking at the output. If the test runs without crashing, it
-is mostly OK.
-
-
-
-Version 0.21, 20 Nov 00 ( cvs tag libical-0-21)
-----------------------------------------------
-
-        * icalmessage.c Many routines to create new ical messages. 
-
-	* icalspanlist.c Code to generate a list of the busy time f the
- 	VEVENTS in a set. Also includes routiens to generate free and busy
- 	lists from the spanlist, and to find the next free time after a
- 	given time.
-
-	* icalvalue.c The STATUS property now has its own value type,
- 	STATUS, which holds the enumeration icalproperty_status.
-
-	* icalrestriction.c Added more restrictions. Now handles mutual
- 	and exclusive consitions, and checks for the reight values in
- 	STATUS properties
-	
-	* icaltypes.c Added routine to create durationtype from string:
- 	icaldurationtype_from_string
-
-
-	* icalcomponet.c Add sever get/set convienience routines to access
- 	and manipulate common component propoerties from the component
- 	interface. This eliminates the need to create a lot of temporary
- 	variables if you just want to change the start time of and event.
-
-
-	* icalcomponent.c Added new routines to icalcomponent:
-	_get_span -- returns the start and end times of the event in UTC
-	_get_first_real_component -- return ref to VTODO, VEVENT or VJOURNAL
-
-	* icalspanlist.c Added new class, icalspanlist, that generates a
- 	list of alternating busy and free times from an icalset. The class
- 	includes routines to gnerate rfc2445 busy and free lists, and to
- 	get the next avaliable busy or free time after a given time.
-
-
-Version 0.20D 3 Nov 00
------------------------
-
-Many miscelaneous tweaks to the build system
-
-More work to icalclassify.
-
-Aded routines to icaltime.c to convert to and from specific timezones
-in Olsen format ("America/Los_Angeles")
-
-
-Version 0.20 7 Sept 00 (cvs tag libical-0-20 )
-----------------------------------------------
-
-Addedd icalclassify() which looks at a message and determine how to
-process it.
-
-Misc bug fixes and tweaks. 
-
-Version 0.19 6 August 00 (cvs tag libical-0-19)
------------------------------------------------
-
-Created a MIME parser in icalmime.c. This will take any complex MIME
-encapsulated message and return an icalcomponent with the same
-structure. Each MIME part is represented by a component of type
-X-LIC-MIMEPART.
-
-Added MIME partsing to stow.c
-
-Added external iterators to icalcomponent. See test_iterators() in
-test/regression.c
-
-Refactored icalcluster and icalstore into icalset, icalfileset and
-icaldirset, which have a pseudo inheritance relationship between them.
-
-Fixed more memory leaks. 
-
-Version 0.18a 10 June 00 ( cvs tag libical-0-18a )
------------------------------------------------
-
-Did the final tweaks to stow.c, a program to recieve and store iMIP
-messages.
-
-
-Version 0.18 10 June 00 ( cvs tag libical-0-18 )
------------------------------------------------
-
-Added libicalvcal, which includes the Versit code for parsing vCal
-files and a routine (icalvcal_convert() ) that converts a vCal object
-to an iCal object. The test program is src/test/testvcal.
-
-Added marginally functional recurrence code. The curent code does not
-handle all of the examples in rfc2445 ( which are extracted in
-test-data/recur.txt ) but it can do all of the obvious cases. See the
-test program in src/test/recur.c for an example. In particular, the
-code cannot handle the integer values in BYDAY, nor negative integers
-in BYMONTH or BYMONTHDAY. It also cannot handle BYSETPOS.
-
-Moved some code to the examples directory and improved the comments. 
-
-Did a little more work on the documentation in the doc directory. The
-documentation is in LyX source, but there is a text version in
-UsingLibical.txt
-
-
-Version 0.17 15 May 00  (cvs tag libical-0-17 ) 
----------------------------------------------
-
-Fixed two bugs that added extraneous '/' to test values
-
-Fixed type in internal string for the COUNTER method
-
-Eliminated a memory leak in icalparser.c
-
-
-Version 0.16a 29 April 00
-----------------------------------------------
-
-Fixed bug in icalvalue_new_from_string that caused METHOD value to
-choke on non standard input.
-
-Fixed a memory leak in icalparser_add_line -- failed to free 'line'
-
-
-Version 0.16 5 April 00 ( cvs tag libical-0-16)
-----------------------------------------------
-
-Now using automake. 
-
-Substantial changes to the parser. New interfaces let you parser
-multiple components from a single stream by feading the parser object
-one line at a time.
-
-Added a STRING value type. this type is like TEXT, but does not
-backslash magic characters. It is used in PRODID and REQUEST-STATUS,
-where the '/' and ';' are literal.
-
-Added several convience functions for REQUEST-STATUS to icalenums.c
-
-Addedd a routine to icalcomponent to convert X-LIC errors to
-REQUEST-STATUS return values.
-
-Version 0.15a  5 Mar 00 (cvs tag libical-0-15a)
----------------------
-
-Experimented with CVS
-
-Fixed icalvalue_set_text to convert escaped characters into the proper
-values.
-
-Other minor code tweaks. 
-
-
-Version 0.15 7 Feb 00
----------------------
-
-Split the storage classess ( icalstore, icalcluster, icalcalendar )
-into a seperate library, libicalss
-
-Implemented restriction checking in file icalrestrictions.c. The
-checking is not complete, but can handle the bulk of the restrictions
-described in RFC 2446.
-
-Created a new value type, METHOD. Changed METHOD property to use the
-new value. The METHOD value uses an enumeration.
-
-
-Version 0.14b 
--------------
-
-Implemented parsing of RECUR values, although it does not handle BYDAY
-specs with numbers.
-
-Fixed error in icalparser_next_line that mangled lines longer than the
-temp buffer (1024 chars.) The temp buffer is now 80 chars, and it can
-handle (apparently) arbitrary length lines
-
-Fixed severe brokenness in a value, but I forgot which one. 
-
-Cleaned cruft out of the distribution, so the tarfile is smaller. 
-
-
-Version 0.14a 14 Jan 00
------------------------
-
-Fixed bug in ROLE parameter -- missing '-' in the text of allowed values
-
-Fixed bug in X-parameters
-
-Version 0.14 11 Jan 00
-----------------------
-
-Fixed wrong value type for TRIGGER property
-
-Added Calendar object. Calendar is an aggregate of two stores and two
-clusters, and can store all of the inforamation associated with a
-calendar.
-
-icalcomponent_add_property and icalcomponent_add_component will
-complain if you try to add a component or property that is already
-part of an other component. The *_free routines wil complain if you try
-to free a linked component or property.
-
-More improvements to error handling. 
-
-Parser is much more robust. 
-
-Minor memory enhancements. 
-
-Regression test runs without memory leaks. 
-
-Version 0.13d 21Dec99
----------------------
-
-Seperated perl interface and library
-
-Added autoconf support
-
-Scripts that generate derived properties, values and parameters now
-change source and header files inline.
-
-Changed icalstore to cluster all components with DTSTART in a month
-into a single file. This should reduce number of file accesses by a
-factor of 60.
-
-Ran code through Purify and fixed memory leaks. 
-
-
-Version 0.13 16Nov99
----------------------
-
-Yet more bug fixes! Yeah!
-
-Added better error handling. The Parser inserts X-LIC-*ERROR
-properties to warn of parsing errors.
-
-The imip source/sink programs in /src/imip is demonstrably functional. 
-
-Version 0.12b 17Oct99
----------------------
-
-More bug fixes, particularily in parse from string routines
-
-ICal::Store is mostly functional
-
-This is version is a checkpoint, not a release. 
-
-Version 0.12a 10Oct99
----------------------
-
-Expanded perl interface: 
-	Added 1/2 of Store module
-	Fixed bugs
-	Implemeted get_{first,next}_property
-
-Extended C interface
-	Made get_{first,next}_property work properly
-	Fixed bugs
-
-
-This is version is a checkpoint, not a release. 
-
-Version 0.12 27Aug99
---------------------
-
-Added a rudimentatry perl interface
-
-This is version is a checkpoint, not a release. 
-
-
-Version 0.11 11Aug99
---------------------
-
-Eliminated most use of flex/bison -- all parsing, except for the
-values, is done in C.
-
-Cleaned up memory leaks. Purify claims that I got them all. 
-
-Moved all derived component/prop/param/value code ( in .inc / .h
-files) into main files ( icalcomponent.{c,h}, icalproperty.{c,h}, etc/
-) 
-
-Implemented *_clone routines. 
-
-Fixed a lot of bugs. 
-
-Implemented more value types. Still unimplemeneted are BINARY and RECUR
-
-Included MacOS/Code Warior files from Graham Davison
-
-
-Version 0.10 8Jul99
--------------------
-
-Eliminated shift/reduce and reduce/reduce conflicts in the parser.
-This version is almost feature complete -- it has the basic structure
-for all of the library's functionality, and it will only require
-implementing procedure shells and fixing bugs. I think that all of the
-hard work is done...
-
-Version 0.09a,b 3,7 Jul99
--------------------------
-
-Various improvements to the parser, added some functionality. The parser code
-is mostly complete, and should be fully functional, except for a horde of
-bugs. Also added support for X-Properties. 
-
-Version 0.09 25Jun99
---------------------
-
-Added a parser in files src/comp/icalitip.{y,l} The lexer is mostly 
-functional, but the parser is not. 
-
-
-Version 0.08 2Jun99
---------------------
-
-All files now have MPL licensing
-
-Implement enough of the code to perform some rudimentary testing
-
-
-Version 0.07 14May99
---------------------
-
-Remove all interfaces that construct object from a string
-
-Moved most code back into comp directory
-
-Implemented C files for most headers -- usecases.c now links. 
-
-Many improvements to generation scripts. 
-
-
-
-Version 0.06 25Apr99
---------------------
-
-Expanded distribution to include:
-	Directory structure that can accomodate future expansion
-	Several levels of Makefiles
-	This CHANGES file
-
-Added headers for irip and parse modules
-
-Added several files with design information
-
-Added scripts that I had used to generate much of the ical header code. 
-
-Split C headers from CC headers
-
-Added data for iTIP and iCAL component restrictions in restrictions.csv
-
-Version 0.05 11Apr99
-----------------------
-
-Changes to ical headers
-
-       Added derived Property classes.
-
-       Improved the interface to the derived property and parameter classes
-
-        Added derived component classes. 
-
-        Created usecases.c and ccusecases.cc to demonstrate use
-
-        C++ interface compile 
-
-
-Version 0.04 5Apr99
--------------------
-
-Version 0.02 30Mar99
---------------------
diff --git a/libkcal/libical/README b/libkcal/libical/README
deleted file mode 100644
index 19a4740e..00000000
--- a/libkcal/libical/README
+++ /dev/null
@@ -1,102 +0,0 @@
-
-LIBICAL -- An implementation of basic iCAL protocols
-
-The code and datafiles in this distribution are licensed under the
-Mozilla Public License. See http://www.mozilla.org/NPL/MPL-1.0.html
-for a copy of the license. Alternately, you may use libical under the
-terms of the GNU Library General Public License. See
-http://www.fsf.org/copyleft/lesser.html for a copy of the LGPL.
-
-This dual license ensures that the library can be incorporated into
-both proprietary code and GPL'd programs, and will benefit from
-improvements made by programmers in both realms. I will only accept
-changes into my version of the library if they are similarly
-dual-licensed.
-
-Portions of this distribution are (C) Copyright 1996 Apple Computer,
-Inc., AT&T Corp., International Business Machines Corporation and
-Siemens Rolm Communications Inc. See src/libicalvcal/README.TXT for
-details.
-
-Portions of this distribution are Copyright (c) 1997 Theo de
-Raadt. See the header for src/libical/vsnprintf.c for the full
-copyright statement.
-
-This code is under active development. If you would like to contribute
-to the project, you can contact me, Eric Busboom, at
-eric@softwarestudio.org. The project has a webpage at
-
-	http://softwarestudio.org/libical/index.html 
-
-and a mailing list that you can join by sending the following mail:
-
-	------------
-	To: minimalist@softwarestudio.org
-	Subject: subscribe libical
-	------------
-
-
-Building the library
---------------------
-
-This distribution is developed on Red Hat Linux 6.0 and usually
-compiles on SunOS 5.6 and FreeBSD 2.27. I have reports of success of
-previous version on MacOS ( with CodeWarrior ) and on UnixWare, but I
-don't know about any other systems.
-
-The library is configured with automake. IF YOU ARE BUILDING THE
-SOURCE FROM A TARBALL, From the root directory, run
-
-	./configure
-
-To build all of the Makefiles for your system. If you will be
-installing the library, you may want to use the --prefix flag to set
-the directory where the library and header files will be installed.
-
-	./configure --prefix=/proj/local/
-
-If configure runs fine, run "make" to build the library and 
-"make install" to install it.
-
-Although the distribution uses libtool to generate libraries, it has
-shared libraries turned off by default. To create and install shared
-libraries use:
-
-	./configure --enable-shared
-
-
-IF YOU ARE BUILDING FROM CVS, there will be no configure file until
-you create one with autogen.sh. YOu can pass configure parameters to
-autogen.sh on the command line.
-
-The current version of libical focuses on creating and
-manipulating iCal objects. With it, you can parse text representations
-of iCal components, add and remove sub-components, properties,
-parameters and values, and print the components back out as strings. 
-
-
-Notes for Libical Developers
--------------------
-
-If you don't want to use gcc as the compiler, and you got the sources
-from CVS, you should set the CC variable to the path to the compiler
-and run "automake --include-deps" to keep automake from using
-gcc-specific automatic dependancy tracking.
-
-        > CC=/pkg/SUNWspro/bin/cc; export CC
-        > automake --include-deps
-        > ./configure --prefix=/proj/local/
-        > make
-
-You will not need to re-run automake unless you got the sources from CVS. 
-
-Using the Library
------------------
-
-There is rudimentary, unfinished documentation in the /doc directory,
-and annotated examples in /examples and the test code in src/test.
-
-
-
-Eric Busboom
-eric@softwarestudio.org
diff --git a/libkcal/libical/README.zoneinfo b/libkcal/libical/README.zoneinfo
deleted file mode 100644
index 57ce26c7..00000000
--- a/libkcal/libical/README.zoneinfo
+++ /dev/null
@@ -1,44 +0,0 @@
-To generate our zoneinfo .ics files:
-
- 1. Download and untar the most recent tzdataXXX.tar.gz package
-    from ftp://elsie.nci.nih.gov/pub/ to the tzdata subdir
-
-    % cd tzdata
-    % wget ftp://elsie.nci.nih.gov/pub/tzdata2007h.tar.gz
-    % cat tzdata2007h.tar.gz | gunzip -c | tar xvf -
-    % rm tzdata2007h.tar.gz
-    % cd ..
-
- 2. Make sure we have the most recent version of the vzic program
-    which can be found at
-    http://dialspace.dial.pipex.com/prod/dialspace/town/pipexdsl/s/asbm26/vzic
-
-    % wget http://dialspace.dial.pipex.com/prod/dialspace/town/pipexdsl/s/asbm26/vzic/vzic-1.3.tgz
-    % cat vzic-1.3.tgz | gunzip -c | tar xvf -
-    % rm vzic-1.3.tgz
-
- 3. Configure and build vzic
-
-    % cd vzic-1.3
-    % vi Makefile
-
-      make the following changes:
-      OLSON_DIR = ../tzdata
-      PRODUCT_ID = -//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-      TZID_PREFIX = /kde.org/Olson_%D_1/
-
-   % make
-   % cd ..
-
- 4. Do it!
-
-    % cd vzic-1.3
-    % ./vzic --pure --output-dir ../zoneinfo
-
- 5. Cleanup
-
-    % make clean
-
- 6. Commit new tzdata and vzic, if necessary
-
- 7. Commit new zoneinfo
diff --git a/libkcal/libical/TEST b/libkcal/libical/TEST
deleted file mode 100644
index 786ce3ce..00000000
--- a/libkcal/libical/TEST
+++ /dev/null
@@ -1,4 +0,0 @@
-
-Parser Tests
-------------
-Use iCAL keywords as first words of unquoted strings
diff --git a/libkcal/libical/THANKS b/libkcal/libical/THANKS
deleted file mode 100644
index d795eeca..00000000
--- a/libkcal/libical/THANKS
+++ /dev/null
@@ -1,69 +0,0 @@
-Thanks to: 
-
-Allan Clark <allanc@atlas.platypus.bc.ca> for testing libical against
-UnixWare.
-
-Graham Davison <g.m.davison@computer.org> for MacOS support and
-miscelaneous code bits
-
-Seth Alves <alves@hungry.com> for the first cut at the Makefile.am
-files and various utility functions.
-
-Russ Steinthal <rms39@columbia.edu> for several utility functions and
-comments.
-
-Ola Lundqvist <olalu526@student.liu.se> for the vCal test data file. 
-
-Colin DuPlantis <colin@cp.net> for new functions in icalparser.c
-
-Holger Schmidt <hschmidt@chronolabs.de> for all of icalcstp.c, The
-CSTP protocol implementation, and modifications to icalcstp.h
-
-Gisle Hannemyr <gisle@oslonett.no> The decode*() functions in sspm.c
-are based on the decode() routine in the mimelite program, Copyright
-(c) 1994 Gisle Hannemyr.
-
-The Evolution team at Helixcode ( Federico Mena Quintero
-<federico@helixcode.com>, JP Rosevear <jpr@helixcode.com>, Ettore
-Perazzoli <ettore@helixcode.com>, Christopher James Lahey
-<clahey@helixcode.com>, Peter Williams <peterw@helixcode.com>) for
-miscelaneous patches and adjustments to the build system.
-
-Cornelius Schumacher <schumacher@kde.org> for many insightful
-suggestions and a few patches.
-
-Mark D. Anderson <mda@discerning.com> for discussions and ideas. 
-
-Martin Neimeier <nei@ibn.de> for correcting bugs in icalrecur.c
-
-Tom Leitner <tom@radar.tu-graz.ac.at> For several bug fixes in
-compiling on Tru64 UNIX.
-
-Patrick Lewis <plewis@inetarena.com> for several bug reports and
-substantial ( co-authorship) contributions to the Python bindings
-
-Larry W. Virden <lvirden@cas.org> for several bug reports in compiling
-on Solaris.
-
-Bryan Bartone <bsb@mesasys.com> for code changes based on porting
-libical to Windows.
-
-Hubert V <hubertv@bigfoot.com> for checking and analyzing the output
-of the recurrence rule system.
-
-Jonathan Yue <jonathan.yue@cp.net> for  icalproperty_get_name()
-
-Jeff Mace <jhm18@psu.edu> for finding bugs in gauges. 
-
-John Gray <gray@agora-net.com> for routing memory leaks, porting to
-WIN32, and taking over leadership of the project.
-
-Andrea Campi <a.campi@inet.it> for miscellaneous updates and beginning
-of Doxygen documentation.
-
-Paul Lindner <plindner@cp.net> for several contributions, including
-C++ binding, reentrant parser, thread safe memory allocator, and a
-lot of documentation.
-
-Mark Tearle <mtearle@tearle.com> for keeping the Python bindings up
-to date.
diff --git a/libkcal/libical/TODO b/libkcal/libical/TODO
deleted file mode 100644
index f707c2a5..00000000
--- a/libkcal/libical/TODO
+++ /dev/null
@@ -1,39 +0,0 @@
-
-TODOs for libical
------------------
-
-libical treats properties with multiple values incorrecty -- it always
-seperates multiple values into multiple properties. This is not
-acceptable for CATEGORIES and RESOURCES.
-
-Some TEXT valued properties, like METHOD, have a limited set of valid
-values. The code should check that the values of these properites are
-valid. ( Although METHOD now uses enums, and is not really TEXT valued )
-
-Finish implementing values
-	ATTACH/BINARY
-	content_type
-	language
-
-Check for buffer overflow on external input. 
-
-Error Handling
-
-   Dates and times: the parser will accept many illegal date time
-   values
-
-RECUR values ignore integers in BYDAY clauses, ie 'FREQ=MONTHLY;BYDAY=-1SU'
-
-Restrictions code does not catch lack of DTEND or DURATION
-
-For some value types, if there illegal characters in the value ( like
-4.56 in an integer value), the parser will output the characters to
-stdout.
-
-Check all uses of strcpy and sprinf for buffer overflows
-
-Make the mime parsing code in sspm grow the list of parts as needed,
-rather than having a hard limit.
-
-in sspm.c, and unrecognized content-transfer-encoding values must
-force a content type of application/octet-stream.
diff --git a/libkcal/libical/configure.in.in b/libkcal/libical/configure.in.in
deleted file mode 100644
index 79aafbc3..00000000
--- a/libkcal/libical/configure.in.in
+++ /dev/null
@@ -1,20 +0,0 @@
-dnl Checks for programs.
-AC_PROG_YACC
-AM_PROG_LEX
-
-AC_CHECK_PROGS(PERL, perl5 perl)  
-
-AC_DEFINE(ICAL_SAFESAVES,1, [safe saves])
-AC_DEFINE(ICAL_UNIX_NEWLINE,1, [unix newline])
-
-AC_CHECK_HEADERS(time.h sys/types.h assert.h)
-
-dnl Checks for typedefs, structures, and compiler characteristics.
-AC_C_CONST
-AC_TYPE_SIZE_T
-AC_STRUCT_TM
-AM_PROG_LEX
-
-dnl Checks for library functions.
-AC_CHECK_FUNCS(strdup)
-
diff --git a/libkcal/libical/design-data/Makefile.am b/libkcal/libical/design-data/Makefile.am
deleted file mode 100644
index 8f27cd6c..00000000
--- a/libkcal/libical/design-data/Makefile.am
+++ /dev/null
@@ -1,6 +0,0 @@
-EXTRA_DIST =\
- properties.csv \
- parameters.csv \
- restrictions.csv \
- status.txt \
- value-types.csv
diff --git a/libkcal/libical/design-data/parameters.csv b/libkcal/libical/design-data/parameters.csv
deleted file mode 100644
index 56cae99d..00000000
--- a/libkcal/libical/design-data/parameters.csv
+++ /dev/null
@@ -1,25 +0,0 @@
-"#Name ","C Type","Enumeration Values"
-"ALTREP","const char*",
-"CHARSET","const char*",
-"CN","const char*",
-"CUTYPE","icalparameter_cutype","INDIVIDUAL;GROUP;RESOURCE;ROOM;UNKNOWN"
-"DELEGATED-FROM","const char*",
-"DELEGATED-TO","const char*",
-"DIR","const char*",
-"ENCODING","icalparameter_encoding","8BIT;BASE64"
-"FBTYPE","icalparameter_fbtype","FREE;BUSY;BUSYUNAVAILABLE;BUSYTENTATIVE"
-"FMTTYPE","const char*",
-"LANGUAGE","const char*",
-"MEMBER","const char*",
-"PARTSTAT","icalparameter_partstat","NEEDS-ACTION;ACCEPTED;DECLINED;TENTATIVE;DELEGATED;COMPLETED;INPROCESS"
-"RANGE","icalparameter_range","THISANDPRIOR;THISANDFUTURE"
-"RELATED","icalparameter_related","START;END"
-"RELTYPE","icalparameter_reltype","PARENT;CHILD;SIBLING"
-"ROLE","icalparameter_role","CHAIR;REQ-PARTICIPANT;OPT-PARTICIPANT;NON-PARTICIPANT"
-"RSVP","icalparameter_rsvp","TRUE;FALSE"
-"SENT-BY","const char*",
-"TZID","const char*",
-"VALUE","icalparameter_value","BINARY;BOOLEAN;DATE;DURATION;FLOAT;INTEGER;PERIOD;RECUR;TEXT;URI;ERROR;DATE-TIME;UTC-OFFSET;CAL-ADDRESS"
-"X","const char*",
-"X-LIC-ERRORTYPE","icalparameter_xlicerrortype","COMPONENT-PARSE-ERROR;PROPERTY-PARSE-ERROR;PARAMETER-NAME-PARSE-ERROR;PARAMETER-VALUE-PARSE-ERROR;VALUE-PARSE-ERROR;INVALID-ITIP;UNKNOWN-VCAL-PROP-ERROR;MIME-PARSE-ERROR;VCAL-PROP-PARSE-ERROR"
-"X-LIC-COMPARETYPE","icalparameter_xliccomparetype","EQUAL;NOTEQUAL;LESS;GREATER;LESSEQUAL;GREATEREQUAL;REGEX;ISNULL;ISNOTNULL"
diff --git a/libkcal/libical/design-data/properties.csv b/libkcal/libical/design-data/properties.csv
deleted file mode 100644
index 57b837b8..00000000
--- a/libkcal/libical/design-data/properties.csv
+++ /dev/null
@@ -1,78 +0,0 @@
-,,
-"#Property Name","libical Value type","iCalendar default value"
-"ACTION","ACTION","ACTION"
-"ALLOW-CONFLICT","TEXT","TEXT"
-"ATTACH","ATTACH","URI"
-"ATTENDEE","CAL-ADDRESS","CAL-ADDRESS"
-"CALSCALE","TEXT","TEXT"
-"CATEGORIES","TEXT","TEXT"
-"CALID","TEXT","TEXT"
-"CARID","TEXT","TEXT"
-"CLASS","CLASS","CLASS"
-"COMMENT","TEXT","TEXT"
-"COMPLETED","DATE-TIME","DATE-TIME"
-"CONTACT","TEXT","TEXT"
-"CREATED","DATE-TIME","DATE-TIME"
-"DECREED","TEXT","TEXT"
-"DEFAULT-CHARSET","TEXT","TEXT"
-"DEFAULT-LOCALE","TEXT","TEXT"
-"DEFAULT-TZID","TEXT","TEXT"
-"DESCRIPTION","TEXT","TEXT"
-"DTEND","DATE-TIME","DATE-TIME"
-"DTSTAMP","DATE-TIME","DATE-TIME"
-"DTSTART","DATE-TIME","DATE-TIME"
-"DUE","DATE-TIME","DATE-TIME"
-"DURATION","DURATION","DURATION"
-"EXDATE","DATE-TIME","DATE-TIME"
-"EXRULE","RECUR","RECUR"
-"FREEBUSY","PERIOD","PERIOD"
-"GEO","GEO","GEO"
-"LAST-MODIFIED","DATE-TIME","DATE-TIME"
-"LOCATION","TEXT","TEXT"
-"METHOD","METHOD","METHOD"
-"ORGANIZER","CAL-ADDRESS","CAL-ADDRESS"
-"OWNER","TEXT","TEXT"
-"PERCENT-COMPLETE","INTEGER","INTEGER"
-"PRIORITY","INTEGER","INTEGER"
-"PRODID","TEXT","TEXT"
-"RDATE","DATE-TIME-PERIOD","DATE-TIME"
-"RECURRENCE-ID","DATE-TIME","DATE-TIME"
-"RELATED-TO","TEXT","TEXT"
-"RELCALID","TEXT","TEXT"
-"REPEAT","INTEGER","INTEGER"
-"REQUEST-STATUS","REQUEST-STATUS","REQUEST-STATUS"
-"RESOURCES","TEXT","TEXT"
-"RRULE","RECUR","RECUR"
-"SEQUENCE","INTEGER","INTEGER"
-"STATUS","STATUS","STATUS"
-"SUMMARY","TEXT","TEXT"
-"TRANSP","TRANSP","TRANSP"
-"TRIGGER","TRIGGER","DURATION"
-"TZID","TEXT","TEXT"
-"TZNAME","TEXT","TEXT"
-"TZOFFSETFROM","UTC-OFFSET","UTC-OFFSET"
-"TZOFFSETTO","UTC-OFFSET","UTC-OFFSET"
-"TZURL","URI","URI"
-"UID","TEXT","TEXT"
-"URL","URI","URI"
-"VERSION","TEXT","TEXT"
-"X","X","X"
-"SCOPE","TEXT","TEXT"
-"MAXRESULTS","INTEGER","INTEGER"
-"MAXRESULTSSIZE","INTEGER","INTEGER"
-"QUERY","QUERY","QUERY"
-"QUERYNAME","TEXT","TEXT"
-"EXPAND","INTEGER","INTEGER"
-"TARGET","CAL-ADDRESS","CAL-ADDRESS"
-"X-LIC-ERROR","TEXT","TEXT"
-"X-LIC-CLUSTERCOUNT","STRING","STRING"
-"X-LIC-MIMECONTENTTYPE","STRING","STRING"
-"X-LIC-MIMECHARSET","STRING","STRING"
-"X-LIC-MIMEENCODING","STRING","STRING"
-"X-LIC-MIMEOPTINFO","STRING","STRING"
-"X-LIC-MIMECID","STRING","STRING"
-"X-LIC-MIMEFILENAME","STRING","STRING"
-"CALMASTER","TEXT","TEXT"
-"X-LIC-CLASS","X-LIC-CLASS","X-LIC-CLASS"
-"ANY","NO","NO"
-"NO","NO","NO"
diff --git a/libkcal/libical/design-data/restrictions.csv b/libkcal/libical/design-data/restrictions.csv
deleted file mode 100644
index bded8506..00000000
--- a/libkcal/libical/design-data/restrictions.csv
+++ /dev/null
@@ -1,1420 +0,0 @@
-# Method, Target component, Property, Sub-component, Restriction
-PUBLISH,VEVENT,NONE,NONE,ONEPLUS
-PUBLISH,VEVENT,DTSTAMP,NONE,ONE
-PUBLISH,VEVENT,DTSTART,NONE,ONE
-PUBLISH,VEVENT,ORGANIZER,NONE,ONE
-PUBLISH,VEVENT,SUMMARY,NONE,ONE
-PUBLISH,VEVENT,UID,NONE,ONE
-PUBLISH,VEVENT,RECURRENCEID,NONE,ZEROORONE,must_be_recurring
-PUBLISH,VEVENT,SEQUENCE,NONE,ZEROORONE
-PUBLISH,VEVENT,ATTACH,NONE,ZEROPLUS
-PUBLISH,VEVENT,CATEGORIES,NONE,ZEROPLUS #Non-standard
-PUBLISH,VEVENT,CLASS,NONE,ZEROORONE
-PUBLISH,VEVENT,COMMENT,NONE,ZEROORONE
-PUBLISH,VEVENT,CONTACT,NONE,ZEROPLUS
-PUBLISH,VEVENT,CREATED,NONE,ZEROORONE
-PUBLISH,VEVENT,DESCRIPTION,NONE,ZEROORONE
-PUBLISH,VEVENT,DTEND,NONE,ONEEXCLUSIVE,no_duration
-PUBLISH,VEVENT,DURATION,NONE,ONEEXCLUSIVE,no_dtend
-PUBLISH,VEVENT,EXDATE,NONE,ZEROPLUS
-PUBLISH,VEVENT,EXRULE,NONE,ZEROPLUS
-PUBLISH,VEVENT,GEO,NONE,ZEROORONE
-PUBLISH,VEVENT,LASTMODIFIED,NONE,ZEROORONE
-PUBLISH,VEVENT,LOCATION,NONE,ZEROORONE
-PUBLISH,VEVENT,PRIORITY,NONE,ZEROORONE
-PUBLISH,VEVENT,RDATE,NONE,ZEROPLUS
-PUBLISH,VEVENT,RELATEDTO,NONE,ZEROPLUS
-PUBLISH,VEVENT,RESOURCES,NONE,ZEROORONE
-PUBLISH,VEVENT,RRULE,NONE,ZEROPLUS
-PUBLISH,VEVENT,STATUS,NONE,ZEROORONE,may_be_tent_conf_cancel
-PUBLISH,VEVENT,TRANSP,NONE,ZEROORONE
-PUBLISH,VEVENT,URL,NONE,ZEROORONE
-PUBLISH,VEVENT,X,NONE,ZEROPLUS
-PUBLISH,VEVENT,ATTENDEE,NONE,ZERO
-PUBLISH,VEVENT,REQUESTSTATUS,NONE,ZERO
-PUBLISH,VEVENT,NONE,VALARM,ZEROPLUS
-PUBLISH,VEVENT,NONE,VFREEBUSY,ZERO
-PUBLISH,VEVENT,NONE,VJOURNAL,ZERO
-PUBLISH,VEVENT,NONE,VTODO,ZERO
-PUBLISH,VEVENT,NONE,VTIMEZONE,ZEROPLUS,must_if_tz_ref
-PUBLISH,VEVENT,NONE,X,ZEROPLUS
-PUBLISH,VEVENT,RELCALID,NONE,ZEROORONE
-REQUEST,VEVENT,NONE,NONE,ONEPLUS
-REQUEST,VEVENT,ATTENDEE,NONE,ONEPLUS
-REQUEST,VEVENT,DTSTAMP,NONE,ONE
-REQUEST,VEVENT,DTSTART,NONE,ONE
-REQUEST,VEVENT,ORGANIZER,NONE,ONE
-REQUEST,VEVENT,SEQUENCE,NONE,ZEROORONE
-REQUEST,VEVENT,SUMMARY,NONE,ONE
-REQUEST,VEVENT,UID,NONE,ONE
-REQUEST,VEVENT,ATTACH,NONE,ZEROPLUS
-REQUEST,VEVENT,CATEGORIES,NONE,ZEROPLUS #Non-standard
-REQUEST,VEVENT,CLASS,NONE,ZEROORONE
-REQUEST,VEVENT,COMMENT,NONE,ZEROORONE
-REQUEST,VEVENT,CONTACT,NONE,ZEROPLUS
-REQUEST,VEVENT,CREATED,NONE,ZEROORONE
-REQUEST,VEVENT,DESCRIPTION,NONE,ZEROORONE
-REQUEST,VEVENT,DTEND,NONE,ONEEXCLUSIVE,no_duration
-REQUEST,VEVENT,DURATION,NONE,ONEEXCLUSIVE,no_dtend
-REQUEST,VEVENT,EXDATE,NONE,ZEROPLUS
-REQUEST,VEVENT,EXRULE,NONE,ZEROPLUS
-REQUEST,VEVENT,GEO,NONE,ZEROORONE
-REQUEST,VEVENT,LASTMODIFIED,NONE,ZEROORONE
-REQUEST,VEVENT,LOCATION,NONE,ZEROORONE
-REQUEST,VEVENT,PRIORITY,NONE,ZEROORONE
-REQUEST,VEVENT,RDATE,NONE,ZEROPLUS
-REQUEST,VEVENT,RECURRENCEID,NONE,ZEROORONE,must_be_recurring
-REQUEST,VEVENT,RELATEDTO,NONE,ZEROPLUS
-REQUEST,VEVENT,REQUESTSTATUS,NONE,ZEROPLUS
-REQUEST,VEVENT,RESOURCES,NONE,ZEROORONE
-REQUEST,VEVENT,RRULE,NONE,ZEROPLUS
-REQUEST,VEVENT,STATUS,NONE,ZEROORONE,may_be_tent_conf
-REQUEST,VEVENT,TRANSP,NONE,ZEROORONE
-REQUEST,VEVENT,URL,NONE,ZEROORONE
-REQUEST,VEVENT,X,NONE,ZEROPLUS
-REQUEST,VEVENT,NONE,VALARM,ZEROPLUS
-REQUEST,VEVENT,NONE,VTIMEZONE,ZEROPLUS,must_if_tz_ref
-REQUEST,VEVENT,NONE,X,ZEROPLUS
-REQUEST,VEVENT,NONE,VFREEBUSY,ZERO
-REQUEST,VEVENT,NONE,VJOURNAL,ZERO
-REQUEST,VEVENT,NONE,VTODO,ZERO
-REQUEST,VEVENT,RELCALID,NONE,ZEROORONE
-REPLY,VEVENT,NONE,NONE,ONEPLUS
-REPLY,VEVENT,ATTENDEE,NONE,ONE
-REPLY,VEVENT,DTSTAMP,NONE,ONE
-REPLY,VEVENT,ORGANIZER,NONE,ONE
-REPLY,VEVENT,RECURRENCEID,NONE,ZEROORONE,must_be_recurring
-REPLY,VEVENT,UID,NONE,ONE
-REPLY,VEVENT,SEQUENCE,NONE,ZEROORONE
-REPLY,VEVENT,ATTACH,NONE,ZEROPLUS
-REPLY,VEVENT,CATEGORIES,NONE,ZEROPLUS #Non-standard
-REPLY,VEVENT,CLASS,NONE,ZEROORONE
-REPLY,VEVENT,COMMENT,NONE,ZEROORONE
-REPLY,VEVENT,CONTACT,NONE,ZEROPLUS
-REPLY,VEVENT,CREATED,NONE,ZEROORONE
-REPLY,VEVENT,DESCRIPTION,NONE,ZEROORONE
-REPLY,VEVENT,DTEND,NONE,ONEEXCLUSIVE,no_duration
-REPLY,VEVENT,DTSTART,NONE,ZEROORONE
-REPLY,VEVENT,DURATION,NONE,ONEEXCLUSIVE,no_dtend
-REPLY,VEVENT,EXDATE,NONE,ZEROPLUS
-REPLY,VEVENT,EXRULE,NONE,ZEROPLUS
-REPLY,VEVENT,GEO,NONE,ZEROORONE
-REPLY,VEVENT,LASTMODIFIED,NONE,ZEROORONE
-REPLY,VEVENT,LOCATION,NONE,ZEROORONE
-REPLY,VEVENT,PRIORITY,NONE,ZEROORONE
-REPLY,VEVENT,RDATE,NONE,ZEROPLUS
-REPLY,VEVENT,RELATEDTO,NONE,ZEROPLUS
-REPLY,VEVENT,RESOURCES,NONE,ZEROORONE
-REPLY,VEVENT,REQUESTSTATUS,NONE,ZEROPLUS
-REPLY,VEVENT,RRULE,NONE,ZEROPLUS
-REPLY,VEVENT,STATUS,NONE,ZEROORONE
-REPLY,VEVENT,SUMMARY,NONE,ZEROORONE
-REPLY,VEVENT,TRANSP,NONE,ZEROORONE
-REPLY,VEVENT,URL,NONE,ZEROORONE
-REPLY,VEVENT,X,NONE,ZEROPLUS
-REPLY,VEVENT,NONE,VTIMEZONE,ZEROORONE,must_if_tz_ref
-REPLY,VEVENT,NONE,X,ZEROPLUS
-REPLY,VEVENT,NONE,VALARM,ZERO
-REPLY,VEVENT,NONE,VFREEBUSY,ZERO
-REPLY,VEVENT,NONE,VJOURNAL,ZERO
-REPLY,VEVENT,NONE,VTODO,ZERO
-REPLY,VEVENT,RELCALID,NONE,ZEROORONE
-ADD,VEVENT,NONE,NONE,ONE
-ADD,VEVENT,DTSTAMP,NONE,ONE
-ADD,VEVENT,DTSTART,NONE,ONE
-ADD,VEVENT,ORGANIZER,NONE,ONE
-ADD,VEVENT,SEQUENCE,NONE,ONE
-ADD,VEVENT,SUMMARY,NONE,ONE
-ADD,VEVENT,UID,NONE,ONE
-ADD,VEVENT,ATTACH,NONE,ZEROPLUS
-ADD,VEVENT,ATTENDEE,NONE,ZEROPLUS
-ADD,VEVENT,CATEGORIES,NONE,ZEROPLUS #Non-standard
-ADD,VEVENT,CLASS,NONE,ZEROORONE
-ADD,VEVENT,COMMENT,NONE,ZEROORONE
-ADD,VEVENT,CONTACT,NONE,ZEROPLUS
-ADD,VEVENT,CREATED,NONE,ZEROORONE
-ADD,VEVENT,DESCRIPTION,NONE,ZEROORONE
-ADD,VEVENT,DTEND,NONE,ONEEXCLUSIVE,no_duration
-ADD,VEVENT,DURATION,NONE,ONEEXCLUSIVE,no_dtend
-ADD,VEVENT,EXDATE,NONE,ZEROPLUS
-ADD,VEVENT,EXRULE,NONE,ZEROPLUS
-ADD,VEVENT,GEO,NONE,ZEROORONE
-ADD,VEVENT,LASTMODIFIED,NONE,ZEROORONE
-ADD,VEVENT,LOCATION,NONE,ZEROORONE
-ADD,VEVENT,PRIORITY,NONE,ZEROORONE
-ADD,VEVENT,RDATE,NONE,ZEROPLUS
-ADD,VEVENT,RELATEDTO,NONE,ZEROPLUS
-ADD,VEVENT,RESOURCES,NONE,ZEROORONE
-ADD,VEVENT,RRULE,NONE,ZEROPLUS
-ADD,VEVENT,STATUS,NONE,ZEROORONE,may_be_tent_conf
-ADD,VEVENT,TRANSP,NONE,ZEROORONE
-ADD,VEVENT,URL,NONE,ZEROORONE
-ADD,VEVENT,X,NONE,ZEROPLUS
-ADD,VEVENT,RECURRENCEID,NONE,ZERO,must_be_recurring
-ADD,VEVENT,REQUESTSTATUS,NONE,ZERO
-ADD,VEVENT,NONE,VALARM,ZEROPLUS
-ADD,VEVENT,NONE,VTIMEZONE,ZEROPLUS,must_if_tz_ref
-ADD,VEVENT,NONE,X,ZEROPLUS
-ADD,VEVENT,NONE,VFREEBUSY,ZERO
-ADD,VEVENT,NONE,VTODO,ZERO
-ADD,VEVENT,NONE,VJOURNAL,ZERO
-ADD,VEVENT,RELCALID,NONE,ZEROORONE
-CANCEL,VEVENT,NONE,NONE,ONEPLUS
-CANCEL,VEVENT,ATTENDEE,NONE,ZEROPLUS
-CANCEL,VEVENT,DTSTAMP,NONE,ONE
-CANCEL,VEVENT,ORGANIZER,NONE,ONE
-CANCEL,VEVENT,SEQUENCE,NONE,ONE
-CANCEL,VEVENT,UID,NONE,ONE
-CANCEL,VEVENT,COMMENT,NONE,ZEROORONE
-CANCEL,VEVENT,ATTACH,NONE,ZEROPLUS
-CANCEL,VEVENT,CATEGORIES,NONE,ZEROPLUS #Non-standard
-CANCEL,VEVENT,CLASS,NONE,ZEROORONE
-CANCEL,VEVENT,CONTACT,NONE,ZEROPLUS
-CANCEL,VEVENT,CREATED,NONE,ZEROORONE
-CANCEL,VEVENT,DESCRIPTION,NONE,ZEROORONE
-CANCEL,VEVENT,DTEND,NONE,ONEEXCLUSIVE ,no_duration
-CANCEL,VEVENT,DTSTART,NONE,ZEROORONE
-CANCEL,VEVENT,DURATION,NONE,ONEEXCLUSIVE,no_dtend
-CANCEL,VEVENT,EXDATE,NONE,ZEROPLUS
-CANCEL,VEVENT,EXRULE,NONE,ZEROPLUS
-CANCEL,VEVENT,GEO,NONE,ZEROORONE
-CANCEL,VEVENT,LASTMODIFIED,NONE,ZEROORONE
-CANCEL,VEVENT,LOCATION,NONE,ZEROORONE
-CANCEL,VEVENT,PRIORITY,NONE,ZEROORONE
-CANCEL,VEVENT,RDATE,NONE,ZEROPLUS
-CANCEL,VEVENT,RECURRENCEID,NONE,ZEROORONE,must_be_recurring
-CANCEL,VEVENT,RELATEDTO,NONE,ZEROPLUS
-CANCEL,VEVENT,RESOURCES,NONE,ZEROORONE
-CANCEL,VEVENT,RRULE,NONE,ZEROPLUS
-CANCEL,VEVENT,STATUS,NONE,ZEROORONE,must_be_canceled_no_attendee
-CANCEL,VEVENT,SUMMARY,NONE,ZEROORONE
-CANCEL,VEVENT,TRANSP,NONE,ZEROORONE
-CANCEL,VEVENT,URL,NONE,ZEROORONE
-CANCEL,VEVENT,X,NONE,ZEROPLUS
-CANCEL,VEVENT,REQUESTSTATUS,NONE,ZERO
-CANCEL,VEVENT,NONE,VTIMEZONE,ZEROPLUS,must_if_tz_ref
-CANCEL,VEVENT,NONE,X,ZEROPLUS
-CANCEL,VEVENT,NONE,VTODO,ZERO
-CANCEL,VEVENT,NONE,VJOURNAL,ZERO
-CANCEL,VEVENT,NONE,VFREEBUSY,ZERO
-CANCEL,VEVENT,NONE,VALARM,ZERO
-CANCEL,VEVENT,RELCALID,NONE,ZEROORONE
-REFRESH,VEVENT,NONE,NONE,ONE
-REFRESH,VEVENT,ATTENDEE,NONE,ONE
-REFRESH,VEVENT,DTSTAMP,NONE,ONE
-REFRESH,VEVENT,ORGANIZER,NONE,ONE
-REFRESH,VEVENT,UID,NONE,ONE
-REFRESH,VEVENT,COMMENT,NONE,ZEROORONE
-REFRESH,VEVENT,RECURRENCEID,NONE,ZEROORONE,must_be_recurring
-REFRESH,VEVENT,X,NONE,ZEROPLUS
-REFRESH,VEVENT,ATTACH,NONE,ZERO
-REFRESH,VEVENT,CATEGORIES,NONE,ZERO
-REFRESH,VEVENT,CLASS,NONE,ZERO
-REFRESH,VEVENT,CONTACT,NONE,ZERO
-REFRESH,VEVENT,CREATED,NONE,ZERO
-REFRESH,VEVENT,DESCRIPTION,NONE,ZERO
-REFRESH,VEVENT,DTEND,NONE,ZERO
-REFRESH,VEVENT,DTSTART,NONE,ZERO
-REFRESH,VEVENT,DURATION,NONE,ZERO
-REFRESH,VEVENT,EXDATE,NONE,ZERO
-REFRESH,VEVENT,EXRULE,NONE,ZERO
-REFRESH,VEVENT,GEO,NONE,ZERO
-REFRESH,VEVENT,LASTMODIFIED,NONE,ZERO
-REFRESH,VEVENT,LOCATION,NONE,ZERO
-REFRESH,VEVENT,PRIORITY,NONE,ZERO
-REFRESH,VEVENT,RDATE,NONE,ZERO
-REFRESH,VEVENT,RELATEDTO,NONE,ZERO
-REFRESH,VEVENT,REQUESTSTATUS,NONE,ZERO
-REFRESH,VEVENT,RESOURCES,NONE,ZERO
-REFRESH,VEVENT,RRULE,NONE,ZERO
-REFRESH,VEVENT,SEQUENCE,NONE,ZERO
-REFRESH,VEVENT,STATUS,NONE,ZERO
-REFRESH,VEVENT,SUMMARY,NONE,ZERO
-REFRESH,VEVENT,TRANSP,NONE,ZERO
-REFRESH,VEVENT,URL,NONE,ZERO
-REFRESH,VEVENT,NONE,X,ZEROPLUS
-REFRESH,VEVENT,NONE,VTODO,ZERO
-REFRESH,VEVENT,NONE,VJOURNAL,ZERO
-REFRESH,VEVENT,NONE,VFREEBUSY,ZERO
-REFRESH,VEVENT,NONE,VTIMEZONE,ZERO,must_if_tz_ref
-REFRESH,VEVENT,NONE,VALARM,ZERO
-REFRESH,VEVENT,RELCALID,NONE,ZEROORONE
-COUNTER,VEVENT,NONE,NONE,ONE
-COUNTER,VEVENT,DTSTAMP,NONE,ONE
-COUNTER,VEVENT,DTSTART,NONE,ONE
-COUNTER,VEVENT,ORGANIZER,NONE,ONE
-COUNTER,VEVENT,SEQUENCE,NONE,ONE
-COUNTER,VEVENT,SUMMARY,NONE,ONE
-COUNTER,VEVENT,UID,NONE,ONE
-COUNTER,VEVENT,ATTACH,NONE,ZEROPLUS
-COUNTER,VEVENT,ATTENDEE,NONE,ZEROPLUS
-COUNTER,VEVENT,CATEGORIES,NONE,ZEROPLUS #Non-standard
-COUNTER,VEVENT,CLASS,NONE,ZEROORONE
-COUNTER,VEVENT,COMMENT,NONE,ZEROORONE
-COUNTER,VEVENT,CONTACT,NONE,ZEROPLUS
-COUNTER,VEVENT,CREATED,NONE,ZEROORONE
-COUNTER,VEVENT,DESCRIPTION,NONE,ZEROORONE
-COUNTER,VEVENT,DTEND,NONE,ONEEXCLUSIVE,no_duration
-COUNTER,VEVENT,DURATION,NONE,ONEEXCLUSIVE,no_dtend
-COUNTER,VEVENT,EXDATE,NONE,ZEROPLUS
-COUNTER,VEVENT,EXRULE,NONE,ZEROPLUS
-COUNTER,VEVENT,GEO,NONE,ZEROORONE
-COUNTER,VEVENT,LASTMODIFIED,NONE,ZEROORONE
-COUNTER,VEVENT,LOCATION,NONE,ZEROORONE
-COUNTER,VEVENT,PRIORITY,NONE,ZEROORONE
-COUNTER,VEVENT,RDATE,NONE,ZEROPLUS
-COUNTER,VEVENT,RECURRENCEID,NONE,ZEROORONE,must_be_recurring
-COUNTER,VEVENT,RELATEDTO,NONE,ZEROPLUS
-COUNTER,VEVENT,REQUESTSTATUS,NONE,ZEROPLUS
-COUNTER,VEVENT,RESOURCES,NONE,ZEROORONE
-COUNTER,VEVENT,RRULE,NONE,ZEROPLUS
-COUNTER,VEVENT,STATUS,NONE,ZEROORONE,may_be_tent_conf_cancel
-COUNTER,VEVENT,TRANSP,NONE,ZEROORONE
-COUNTER,VEVENT,URL,NONE,ZEROORONE
-COUNTER,VEVENT,X,NONE,ZEROPLUS
-COUNTER,VEVENT,NONE,VALARM,ZEROPLUS
-COUNTER,VEVENT,NONE,VTIMEZONE,ZEROPLUS,must_if_tz_ref
-COUNTER,VEVENT,NONE,X,ZEROPLUS
-COUNTER,VEVENT,NONE,VTODO,ZERO
-COUNTER,VEVENT,NONE,VJOURNAL,ZERO
-COUNTER,VEVENT,NONE,VFREEBUSY,ZERO
-COUNTER,VEVENT,RELCALID,NONE,ZEROORONE
-DECLINECOUNTER,VEVENT,NONE,NONE,ONE
-DECLINECOUNTER,VEVENT,DTSTAMP,NONE,ONE
-DECLINECOUNTER,VEVENT,ORGANIZER,NONE,ONE
-DECLINECOUNTER,VEVENT,UID,NONE,ONE
-DECLINECOUNTER,VEVENT,COMMENT,NONE,ZEROORONE
-DECLINECOUNTER,VEVENT,RECURRENCEID,NONE,ZEROORONE,must_be_recurring
-DECLINECOUNTER,VEVENT,REQUESTSTATUS,NONE,ZEROPLUS
-DECLINECOUNTER,VEVENT,SEQUENCE,NONE,ZERO
-DECLINECOUNTER,VEVENT,X,NONE,ZEROPLUS
-DECLINECOUNTER,VEVENT,ATTACH,NONE,ZERO
-DECLINECOUNTER,VEVENT,ATTENDEE,NONE,ZERO
-DECLINECOUNTER,VEVENT,CATEGORIES,NONE,ZERO
-DECLINECOUNTER,VEVENT,CLASS,NONE,ZERO
-DECLINECOUNTER,VEVENT,CONTACT,NONE,ZERO
-DECLINECOUNTER,VEVENT,CREATED,NONE,ZERO
-DECLINECOUNTER,VEVENT,DESCRIPTION,NONE,ZERO
-DECLINECOUNTER,VEVENT,DTEND,NONE,ZERO
-DECLINECOUNTER,VEVENT,DTSTART,NONE,ZERO
-DECLINECOUNTER,VEVENT,DURATION,NONE,ZERO
-DECLINECOUNTER,VEVENT,EXDATE,NONE,ZERO
-DECLINECOUNTER,VEVENT,EXRULE,NONE,ZERO
-DECLINECOUNTER,VEVENT,GEO,NONE,ZERO
-DECLINECOUNTER,VEVENT,LASTMODIFIED,NONE,ZERO
-DECLINECOUNTER,VEVENT,LOCATION,NONE,ZERO
-DECLINECOUNTER,VEVENT,PRIORITY,NONE,ZERO
-DECLINECOUNTER,VEVENT,RDATE,NONE,ZERO
-DECLINECOUNTER,VEVENT,RELATEDTO,NONE,ZERO
-DECLINECOUNTER,VEVENT,RESOURCES,NONE,ZERO
-DECLINECOUNTER,VEVENT,RRULE,NONE,ZERO
-DECLINECOUNTER,VEVENT,STATUS,NONE,ZERO
-DECLINECOUNTER,VEVENT,SUMMARY,NONE,ZERO
-DECLINECOUNTER,VEVENT,TRANSP,NONE,ZERO
-DECLINECOUNTER,VEVENT,URL,NONE,ZERO
-DECLINECOUNTER,VEVENT,NONE,X,ZEROPLUS
-DECLINECOUNTER,VEVENT,NONE,VTODO,ZERO
-DECLINECOUNTER,VEVENT,NONE,VJOURNAL,ZERO
-DECLINECOUNTER,VEVENT,NONE,VFREEBUSY,ZERO
-DECLINECOUNTER,VEVENT,NONE,VTIMEZONE,ZERO,must_if_tz_ref
-DECLINECOUNTER,VEVENT,NONE,VALARM,ZERO
-DECLINECOUNTER,VEVENT,RELCALID,NONE,ZEROORONE
-PUBLISH,VFREEBUSY,NONE,NONE,ONEPLUS
-PUBLISH,VFREEBUSY,DTSTAMP,NONE,ONE
-PUBLISH,VFREEBUSY,DTSTART,NONE,ONE
-PUBLISH,VFREEBUSY,DTEND,NONE,ONE
-PUBLISH,VFREEBUSY,FREEBUSY,NONE,ONEPLUS
-PUBLISH,VFREEBUSY,ORGANIZER,NONE,ONE
-PUBLISH,VFREEBUSY,COMMENT,NONE,ZEROORONE
-PUBLISH,VFREEBUSY,CONTACT,NONE,ZEROPLUS
-PUBLISH,VFREEBUSY,X,NONE,ZEROPLUS
-PUBLISH,VFREEBUSY,URL,NONE,ZEROORONE
-PUBLISH,VFREEBUSY,ATTENDEE,NONE,ZERO
-PUBLISH,VFREEBUSY,DURATION,NONE,ZERO
-PUBLISH,VFREEBUSY,REQUESTSTATUS,NONE,ZERO
-PUBLISH,VFREEBUSY,UID,NONE,ZERO
-PUBLISH,VFREEBUSY,NONE,X,ZEROPLUS
-PUBLISH,VFREEBUSY,NONE,VEVENT,ZERO
-PUBLISH,VFREEBUSY,NONE,VTODO,ZERO
-PUBLISH,VFREEBUSY,NONE,VJOURNAL,ZERO
-PUBLISH,VFREEBUSY,NONE,VTIMEZONE,ZERO,must_if_tz_ref
-PUBLISH,VFREEBUSY,NONE,VALARM,ZERO
-REQUEST,VFREEBUSY,NONE,NONE,ONE
-REQUEST,VFREEBUSY,ATTENDEE,NONE,ONEPLUS
-REQUEST,VFREEBUSY,DTEND,NONE,ONE
-REQUEST,VFREEBUSY,DTSTAMP,NONE,ONE
-REQUEST,VFREEBUSY,DTSTART,NONE,ONE
-REQUEST,VFREEBUSY,ORGANIZER,NONE,ONE
-REQUEST,VFREEBUSY,UID,NONE,ONE
-REQUEST,VFREEBUSY,COMMENT,NONE,ZEROORONE
-REQUEST,VFREEBUSY,CONTACT,NONE,ZEROPLUS
-REQUEST,VFREEBUSY,X,NONE,ZEROPLUS
-REQUEST,VFREEBUSY,FREEBUSY,NONE,ZERO
-REQUEST,VFREEBUSY,DURATION,NONE,ZERO
-REQUEST,VFREEBUSY,REQUESTSTATUS,NONE,ZERO
-REQUEST,VFREEBUSY,URL,NONE,ZERO
-REQUEST,VFREEBUSY,NONE,X,ZEROPLUS
-REQUEST,VFREEBUSY,NONE,VALARM,ZERO
-REQUEST,VFREEBUSY,NONE,VEVENT,ZERO
-REQUEST,VFREEBUSY,NONE,VTODO,ZERO
-REQUEST,VFREEBUSY,NONE,VJOURNAL,ZERO
-REQUEST,VFREEBUSY,NONE,VTIMEZONE,ZERO
-REPLY,VFREEBUSY,NONE,NONE,ONE
-REPLY,VFREEBUSY,ATTENDEE,NONE,ONE
-REPLY,VFREEBUSY,DTSTAMP,NONE,ONE
-REPLY,VFREEBUSY,DTEND,NONE,ONE
-REPLY,VFREEBUSY,DTSTART,NONE,ONE
-REPLY,VFREEBUSY,FREEBUSY,NONE,ONEPLUS
-REPLY,VFREEBUSY,ORGANIZER,NONE,ONE
-REPLY,VFREEBUSY,UID,NONE,ONE
-REPLY,VFREEBUSY,COMMENT,NONE,ZEROORONE
-REPLY,VFREEBUSY,CONTACT,NONE,ZEROPLUS
-REPLY,VFREEBUSY,REQUESTSTATUS,NONE,ZEROPLUS
-REPLY,VFREEBUSY,URL,NONE,ZEROORONE
-REPLY,VFREEBUSY,X,NONE,ZEROPLUS
-REPLY,VFREEBUSY,DURATION,NONE,ZERO
-REPLY,VFREEBUSY,SEQUENCE,NONE,ZERO
-REPLY,VFREEBUSY,NONE,X,ZEROPLUS
-REPLY,VFREEBUSY,NONE,VALARM,ZERO
-REPLY,VFREEBUSY,NONE,VEVENT,ZERO
-REPLY,VFREEBUSY,NONE,VTODO,ZERO
-REPLY,VFREEBUSY,NONE,VJOURNAL,ZERO
-REPLY,VFREEBUSY,NONE,VTIMEZONE,ZERO
-PUBLISH,VTODO,NONE,NONE,ONEPLUS
-PUBLISH,VTODO,DTSTAMP,NONE,ONE
-PUBLISH,VTODO,DTSTART,NONE,ONE
-PUBLISH,VTODO,ORGANIZER,NONE,ONE
-PUBLISH,VTODO,PRIORITY,NONE,ONE
-PUBLISH,VTODO,SEQUENCE,NONE,ZEROORONE
-PUBLISH,VTODO,SUMMARY,NONE,ONE
-PUBLISH,VTODO,UID,NONE,ONE
-PUBLISH,VTODO,ATTACH,NONE,ZEROPLUS
-PUBLISH,VTODO,CATEGORIES,NONE,ZEROPLUS #Non-Standard
-PUBLISH,VTODO,CLASS,NONE,ZEROORONE
-PUBLISH,VTODO,COMMENT,NONE,ZEROORONE
-PUBLISH,VTODO,CONTACT,NONE,ZEROPLUS
-PUBLISH,VTODO,CREATED,NONE,ZEROORONE
-PUBLISH,VTODO,DESCRIPTION,NONE,ZEROORONE
-PUBLISH,VTODO,DUE,NONE,ZEROORONE
-PUBLISH,VTODO,DURATION,NONE,ZEROORONE
-PUBLISH,VTODO,EXDATE,NONE,ZEROPLUS
-PUBLISH,VTODO,EXRULE,NONE,ZEROPLUS
-PUBLISH,VTODO,GEO,NONE,ZEROORONE
-PUBLISH,VTODO,LASTMODIFIED,NONE,ZEROORONE
-PUBLISH,VTODO,LOCATION,NONE,ZEROORONE
-PUBLISH,VTODO,PERCENTCOMPLETE,NONE,ZEROORONE
-PUBLISH,VTODO,RDATE,NONE,ZEROPLUS
-PUBLISH,VTODO,RECURRENCEID,NONE,ZEROORONE,must_be_recurring
-PUBLISH,VTODO,RELATEDTO,NONE,ZEROPLUS
-PUBLISH,VTODO,RESOURCES,NONE,ZEROORONE
-PUBLISH,VTODO,RRULE,NONE,ZEROPLUS
-PUBLISH,VTODO,STATUS,NONE,ZEROORONE
-PUBLISH,VTODO,URL,NONE,ZEROORONE
-PUBLISH,VTODO,X,NONE,ZEROPLUS
-PUBLISH,VTODO,ATTENDEE,NONE,ZERO
-PUBLISH,VTODO,REQUESTSTATUS,NONE,ZERO
-PUBLISH,VTODO,NONE,VTIMEZONE,ZEROPLUS
-PUBLISH,VTODO,NONE,VALARM,ZEROPLUS
-PUBLISH,VTODO,NONE,X,ZEROPLUS
-PUBLISH,VTODO,NONE,VFREEBUSY,ZERO
-PUBLISH,VTODO,NONE,VEVENT,ZERO
-PUBLISH,VTODO,NONE,VJOURNAL,ZERO
-PUBLISH,VTODO,RELCALID,NONE,ZEROORONE
-REQUEST,VTODO,NONE,NONE,ONEPLUS
-REQUEST,VTODO,ATTENDEE,NONE,ONEPLUS
-REQUEST,VTODO,DTSTAMP,NONE,ONE
-REQUEST,VTODO,DTSTART,NONE,ONE
-REQUEST,VTODO,ORGANIZER,NONE,ONE
-REQUEST,VTODO,PRIORITY,NONE,ONE
-REQUEST,VTODO,SEQUENCE,NONE,ZEROORONE
-REQUEST,VTODO,SUMMARY,NONE,ONE
-REQUEST,VTODO,UID,NONE,ONE
-REQUEST,VTODO,ATTACH,NONE,ZEROPLUS
-REQUEST,VTODO,CATEGORIES,NONE,ZEROPLUS #Non-Standard
-REQUEST,VTODO,CLASS,NONE,ZEROORONE
-REQUEST,VTODO,COMMENT,NONE,ZEROORONE
-REQUEST,VTODO,CONTACT,NONE,ZEROPLUS
-REQUEST,VTODO,CREATED,NONE,ZEROORONE
-REQUEST,VTODO,DESCRIPTION,NONE,ZEROORONE
-REQUEST,VTODO,DUE,NONE,ZEROORONE
-REQUEST,VTODO,DURATION,NONE,ZEROORONE
-REQUEST,VTODO,EXDATE,NONE,ZEROPLUS
-REQUEST,VTODO,EXRULE,NONE,ZEROPLUS
-REQUEST,VTODO,GEO,NONE,ZEROORONE
-REQUEST,VTODO,LASTMODIFIED,NONE,ZEROORONE
-REQUEST,VTODO,LOCATION,NONE,ZEROORONE
-REQUEST,VTODO,PERCENTCOMPLETE,NONE,ZEROORONE
-REQUEST,VTODO,RDATE,NONE,ZEROPLUS
-REQUEST,VTODO,RECURRENCEID,NONE,ZEROORONE,must_be_recurring
-REQUEST,VTODO,RELATEDTO,NONE,ZEROPLUS
-REQUEST,VTODO,RESOURCES,NONE,ZEROORONE
-REQUEST,VTODO,RRULE,NONE,ZEROPLUS
-REQUEST,VTODO,STATUS,NONE,ZEROORONE,may_be_comp_need_process
-REQUEST,VTODO,URL,NONE,ZEROORONE
-REQUEST,VTODO,X,NONE,ZEROPLUS
-REQUEST,VTODO,REQUESTSTATUS,NONE,ZERO
-REQUEST,VTODO,NONE,VALARM,ZEROPLUS
-REQUEST,VTODO,NONE,VTIMEZONE,ZEROPLUS
-REQUEST,VTODO,NONE,X,ZEROPLUS
-REQUEST,VTODO,NONE,VEVENT,ZERO
-REQUEST,VTODO,NONE,VFREEBUSY,ZERO
-REQUEST,VTODO,NONE,VJOURNAL,ZERO
-REQUEST,VTODO,RELCALID,NONE,ZEROORONE
-REPLY,VTODO,NONE,NONE,ONEPLUS
-REPLY,VTODO,ATTENDEE,NONE,ONEPLUS
-REPLY,VTODO,DTSTAMP,NONE,ONE
-REPLY,VTODO,ORGANIZER,NONE,ONE
-REPLY,VTODO,REQUESTSTATUS,NONE,ONEPLUS
-REPLY,VTODO,UID,NONE,ONE
-REPLY,VTODO,ATTACH,NONE,ZEROPLUS
-REPLY,VTODO,CATEGORIES,NONE,ZEROPLUS #Non-Standard
-REPLY,VTODO,CLASS,NONE,ZEROORONE
-REPLY,VTODO,COMMENT,NONE,ZEROORONE
-REPLY,VTODO,CONTACT,NONE,ZEROPLUS
-REPLY,VTODO,CREATED,NONE,ZEROORONE
-REPLY,VTODO,DESCRIPTION,NONE,ZEROORONE
-REPLY,VTODO,DTSTART,NONE,ZEROORONE
-REPLY,VTODO,DUE,NONE,ZEROORONE
-REPLY,VTODO,DURATION,NONE,ZEROORONE
-REPLY,VTODO,EXDATE,NONE,ZEROPLUS
-REPLY,VTODO,EXRULE,NONE,ZEROPLUS
-REPLY,VTODO,GEO,NONE,ZEROORONE
-REPLY,VTODO,LASTMODIFIED,NONE,ZEROORONE
-REPLY,VTODO,LOCATION,NONE,ZEROORONE
-REPLY,VTODO,PERCENTCOMPLETE,NONE,ZEROORONE
-REPLY,VTODO,PRIORITY,NONE,ZEROORONE
-REPLY,VTODO,RDATE,NONE,ZEROPLUS
-REPLY,VTODO,RELATEDTO,NONE,ZEROPLUS
-REPLY,VTODO,RESOURCES,NONE,ZEROORONE
-REPLY,VTODO,RRULE,NONE,ZEROPLUS
-REPLY,VTODO,RECURRENCEID,NONE,ZEROORONE,must_be_recurring
-REPLY,VTODO,SEQUENCE,NONE,ZEROORONE
-REPLY,VTODO,STATUS,NONE,ZEROORONE
-REPLY,VTODO,SUMMARY,NONE,ZEROORONE
-REPLY,VTODO,URL,NONE,ZEROORONE
-REPLY,VTODO,X,NONE,ZEROPLUS
-REPLY,VTODO,NONE,VTIMEZONE,ZEROORONE
-REPLY,VTODO,NONE,X,ZEROPLUS
-REPLY,VTODO,NONE,VALARM,ZERO
-REPLY,VTODO,NONE,VEVENT,ZERO
-REPLY,VTODO,NONE,VFREEBUSY,ZERO
-REPLY,VTODO,RELCALID,NONE,ZEROORONE
-ADD,VTODO,NONE,NONE,ONE
-ADD,VTODO,DTSTAMP,NONE,ONE
-ADD,VTODO,ORGANIZER,NONE,ONE
-ADD,VTODO,PRIORITY,NONE,ONE
-ADD,VTODO,SEQUENCE,NONE,ONE
-ADD,VTODO,SUMMARY,NONE,ONE
-ADD,VTODO,UID,NONE,ONE
-ADD,VTODO,ATTACH,NONE,ZEROPLUS
-ADD,VTODO,ATTENDEE,NONE,ZEROPLUS
-ADD,VTODO,CATEGORIES,NONE,ZEROPLUS
-ADD,VTODO,CLASS,NONE,ZEROORONE
-ADD,VTODO,COMMENT,NONE,ZEROORONE
-ADD,VTODO,CONTACT,NONE,ZEROPLUS
-ADD,VTODO,CREATED,NONE,ZEROORONE
-ADD,VTODO,DESCRIPTION,NONE,ZEROORONE
-ADD,VTODO,DTSTART,NONE,ZEROORONE
-ADD,VTODO,DUE,NONE,ZEROORONE
-ADD,VTODO,DURATION,NONE,ZEROORONE
-ADD,VTODO,EXDATE,NONE,ZEROPLUS
-ADD,VTODO,EXRULE,NONE,ZEROPLUS
-ADD,VTODO,GEO,NONE,ZEROORONE
-ADD,VTODO,LASTMODIFIED,NONE,ZEROORONE
-ADD,VTODO,LOCATION,NONE,ZEROORONE
-ADD,VTODO,PERCENTCOMPLETE,NONE,ZEROORONE
-ADD,VTODO,RDATE,NONE,ZEROPLUS
-ADD,VTODO,RELATEDTO,NONE,ZEROPLUS
-ADD,VTODO,RESOURCES,NONE,ZEROORONE
-ADD,VTODO,RRULE,NONE,ZEROPLUS
-ADD,VTODO,STATUS,NONE,ZEROORONE,may_be_comp_need_process
-ADD,VTODO,URL,NONE,ZEROORONE
-ADD,VTODO,X,NONE,ZEROPLUS
-ADD,VTODO,RECURRENCEID,NONE,ZERO,must_be_recurring
-ADD,VTODO,REQUESTSTATUS,NONE,ZERO
-ADD,VTODO,NONE,VALARM,ZEROPLUS
-ADD,VTODO,NONE,VTIMEZONE,ZEROPLUS
-ADD,VTODO,NONE,X,ZEROPLUS
-ADD,VTODO,NONE,VEVENT,ZERO
-ADD,VTODO,NONE,VJOURNAL,ZERO
-ADD,VTODO,NONE,VFREEBUSY,ZERO
-ADD,VTODO,RELCALID,NONE,ZEROORONE
-CANCEL,VTODO,NONE,NONE,ONE
-CANCEL,VTODO,ATTENDEE,NONE,ZEROPLUS
-CANCEL,VTODO,UID,NONE,ONE
-CANCEL,VTODO,DTSTAMP,NONE,ONE
-CANCEL,VTODO,ORGANIZER,NONE,ONE
-CANCEL,VTODO,SEQUENCE,NONE,ONE
-CANCEL,VTODO,ATTACH,NONE,ZEROPLUS
-CANCEL,VTODO,CATEGORIES,NONE,ZEROPLUS #Non-Standard
-CANCEL,VTODO,CLASS,NONE,ZEROORONE
-CANCEL,VTODO,COMMENT,NONE,ZEROORONE
-CANCEL,VTODO,CONTACT,NONE,ZEROPLUS
-CANCEL,VTODO,CREATED,NONE,ZEROORONE
-CANCEL,VTODO,DESCRIPTION,NONE,ZEROORONE
-CANCEL,VTODO,DTSTART,NONE,ZEROORONE
-CANCEL,VTODO,DUE,NONE,ZEROORONE
-CANCEL,VTODO,DURATION,NONE,ZEROORONE
-CANCEL,VTODO,EXDATE,NONE,ZEROPLUS
-CANCEL,VTODO,EXRULE,NONE,ZEROPLUS
-CANCEL,VTODO,GEO,NONE,ZEROORONE
-CANCEL,VTODO,LASTMODIFIED,NONE,ZEROORONE
-CANCEL,VTODO,LOCATION,NONE,ZEROORONE
-CANCEL,VTODO,PERCENTCOMPLETE,NONE,ZEROORONE
-CANCEL,VTODO,RDATE,NONE,ZEROPLUS
-CANCEL,VTODO,RECURRENCEID,NONE,ZEROORONE,must_be_recurring
-CANCEL,VTODO,RELATEDTO,NONE,ZEROPLUS
-CANCEL,VTODO,RESOURCES,NONE,ZEROORONE
-CANCEL,VTODO,RRULE,NONE,ZEROPLUS
-CANCEL,VTODO,PRIORITY,NONE,ZEROORONE
-CANCEL,VTODO,STATUS,NONE,ZEROORONE,must_be_canceled_no_attendee
-CANCEL,VTODO,URL,NONE,ZEROORONE
-CANCEL,VTODO,X,NONE,ZEROPLUS
-CANCEL,VTODO,REQUESTSTATUS,NONE,ZERO
-CANCEL,VTODO,NONE,VTIMEZONE,ZEROORONE
-CANCEL,VTODO,NONE,X,ZEROPLUS
-CANCEL,VTODO,NONE,VALARM,ZERO
-CANCEL,VTODO,NONE,VEVENT,ZERO
-CANCEL,VTODO,NONE,VFREEBUSY,ZERO
-CANCEL,VTODO,RELCALID,NONE,ZEROORONE
-REFRESH,VTODO,NONE,NONE,ONE
-REFRESH,VTODO,ATTENDEE,NONE,ONE
-REFRESH,VTODO,DTSTAMP,NONE,ONE
-REFRESH,VTODO,UID,NONE,ONE
-REFRESH,VTODO,RECURRENCEID,NONE,ZEROORONE,must_be_recurring
-REFRESH,VTODO,X,NONE,ZEROPLUS
-REFRESH,VTODO,ATTACH,NONE,ZERO
-REFRESH,VTODO,CATEGORIES,NONE,ZERO
-REFRESH,VTODO,CLASS,NONE,ZERO
-REFRESH,VTODO,COMMENT,NONE,ZERO
-REFRESH,VTODO,CONTACT,NONE,ZERO
-REFRESH,VTODO,CREATED,NONE,ZERO
-REFRESH,VTODO,DESCRIPTION,NONE,ZERO
-REFRESH,VTODO,DTSTART,NONE,ZERO
-REFRESH,VTODO,DUE,NONE,ZERO
-REFRESH,VTODO,DURATION,NONE,ZERO
-REFRESH,VTODO,EXDATE,NONE,ZERO
-REFRESH,VTODO,EXRULE,NONE,ZERO
-REFRESH,VTODO,GEO,NONE,ZERO
-REFRESH,VTODO,LASTMODIFIED,NONE,ZERO
-REFRESH,VTODO,LOCATION,NONE,ZERO
-REFRESH,VTODO,ORGANIZER,NONE,ZERO
-REFRESH,VTODO,PERCENTCOMPLETE,NONE,ZERO
-REFRESH,VTODO,PRIORITY,NONE,ZERO
-REFRESH,VTODO,RDATE,NONE,ZERO
-REFRESH,VTODO,RELATEDTO,NONE,ZERO
-REFRESH,VTODO,REQUESTSTATUS,NONE,ZERO
-REFRESH,VTODO,RESOURCES,NONE,ZERO
-REFRESH,VTODO,RRULE,NONE,ZERO
-REFRESH,VTODO,SEQUENCE,NONE,ZERO
-REFRESH,VTODO,STATUS,NONE,ZERO
-REFRESH,VTODO,URL,NONE,ZERO
-REFRESH,VTODO,NONE,X,ZEROPLUS
-REFRESH,VTODO,NONE,VALARM,ZERO
-REFRESH,VTODO,NONE,VEVENT,ZERO
-REFRESH,VTODO,NONE,VFREEBUSY,ZERO
-REFRESH,VTODO,NONE,VTIMEZONE,ZERO
-REFRESH,VTODO,RELCALID,NONE,ZEROORONE
-COUNTER,VTODO,NONE,NONE,ONE
-COUNTER,VTODO,ATTENDEE,NONE,ONEPLUS
-COUNTER,VTODO,DTSTAMP,NONE,ONE
-COUNTER,VTODO,ORGANIZER,NONE,ONE
-COUNTER,VTODO,PRIORITY,NONE,ONE
-COUNTER,VTODO,SUMMARY,NONE,ONE
-COUNTER,VTODO,UID,NONE,ONE
-COUNTER,VTODO,ATTACH,NONE,ZEROPLUS
-COUNTER,VTODO,CATEGORIES,NONE,ZEROPLUS #Non-standard
-COUNTER,VTODO,CLASS,NONE,ZEROORONE
-COUNTER,VTODO,COMMENT,NONE,ZEROORONE
-COUNTER,VTODO,CONTACT,NONE,ZEROPLUS
-COUNTER,VTODO,CREATED,NONE,ZEROORONE
-COUNTER,VTODO,DESCRIPTION,NONE,ZEROORONE
-COUNTER,VTODO,DTSTART,NONE,ZEROORONE
-COUNTER,VTODO,DUE,NONE,ZEROORONE
-COUNTER,VTODO,DURATION,NONE,ZEROORONE
-COUNTER,VTODO,EXDATE,NONE,ZEROPLUS
-COUNTER,VTODO,EXRULE,NONE,ZEROPLUS
-COUNTER,VTODO,GEO,NONE,ZEROORONE
-COUNTER,VTODO,LASTMODIFIED,NONE,ZEROORONE
-COUNTER,VTODO,LOCATION,NONE,ZEROORONE
-COUNTER,VTODO,PERCENTCOMPLETE,NONE,ZEROORONE
-COUNTER,VTODO,RDATE,NONE,ZEROPLUS
-COUNTER,VTODO,RECURRENCEID,NONE,ZEROORONE,must_be_recurring
-COUNTER,VTODO,RELATEDTO,NONE,ZEROPLUS
-COUNTER,VTODO,REQUESTSTATUS,NONE,ZEROPLUS
-COUNTER,VTODO,RESOURCES,NONE,ZEROORONE
-COUNTER,VTODO,RRULE,NONE,ZEROORONE
-COUNTER,VTODO,SEQUENCE,NONE,ZEROORONE
-COUNTER,VTODO,STATUS,NONE,ZEROORONE,may_be_comp_need_process
-COUNTER,VTODO,URL,NONE,ZEROORONE
-COUNTER,VTODO,X,NONE,ZEROPLUS
-COUNTER,VTODO,NONE,VALARM,ZEROPLUS
-COUNTER,VTODO,NONE,VTIMEZONE,ZEROORONE
-COUNTER,VTODO,NONE,X,ZEROPLUS
-COUNTER,VTODO,NONE,VEVENT,ZERO
-COUNTER,VTODO,NONE,VFREEBUSY,ZERO
-COUNTER,VTODO,RELCALID,NONE,ZEROORONE
-DECLINECOUNTER,VTODO,NONE,NONE,ONE
-DECLINECOUNTER,VTODO,ATTENDEE,NONE,ONEPLUS
-DECLINECOUNTER,VTODO,DTSTAMP,NONE,ONE
-DECLINECOUNTER,VTODO,ORGANIZER,NONE,ONE
-DECLINECOUNTER,VTODO,SEQUENCE,NONE,ONE
-DECLINECOUNTER,VTODO,UID,NONE,ONE
-DECLINECOUNTER,VTODO,ATTACH,NONE,ZEROPLUS
-DECLINECOUNTER,VTODO,CATEGORIES,NONE,ZEROPLUS #Non-standard
-DECLINECOUNTER,VTODO,CLASS,NONE,ZEROORONE
-DECLINECOUNTER,VTODO,COMMENT,NONE,ZEROORONE
-DECLINECOUNTER,VTODO,CONTACT,NONE,ZEROPLUS
-DECLINECOUNTER,VTODO,CREATED,NONE,ZEROORONE
-DECLINECOUNTER,VTODO,DESCRIPTION,NONE,ZEROORONE
-DECLINECOUNTER,VTODO,DTSTART,NONE,ZEROORONE
-DECLINECOUNTER,VTODO,DUE,NONE,ZEROORONE
-DECLINECOUNTER,VTODO,DURATION,NONE,ZEROORONE
-DECLINECOUNTER,VTODO,EXDATE,NONE,ZEROPLUS
-DECLINECOUNTER,VTODO,EXRULE,NONE,ZEROPLUS
-DECLINECOUNTER,VTODO,GEO,NONE,ZEROORONE
-DECLINECOUNTER,VTODO,LASTMODIFIED,NONE,ZEROORONE
-DECLINECOUNTER,VTODO,LOCATION,NONE,ZEROORONE
-DECLINECOUNTER,VTODO,PERCENTCOMPLETE,NONE,ZEROORONE
-DECLINECOUNTER,VTODO,PRIORITY,NONE,ZEROORONE
-DECLINECOUNTER,VTODO,RDATE,NONE,ZEROPLUS
-DECLINECOUNTER,VTODO,RECURRENCEID,NONE,ZEROORONE,must_be_recurring
-DECLINECOUNTER,VTODO,RELATEDTO,NONE,ZEROPLUS
-DECLINECOUNTER,VTODO,REQUESTSTATUS,NONE,ZEROPLUS
-DECLINECOUNTER,VTODO,RESOURCES,NONE,ZEROORONE
-DECLINECOUNTER,VTODO,RRULE,NONE,ZEROPLUS
-DECLINECOUNTER,VTODO,STATUS,NONE,ZEROORONE
-DECLINECOUNTER,VTODO,URL,NONE,ZEROORONE
-DECLINECOUNTER,VTODO,X,NONE,ZEROPLUS
-DECLINECOUNTER,VTODO,NONE,VTIMEZONE,ZEROPLUS
-DECLINECOUNTER,VTODO,NONE,X,ZEROPLUS
-DECLINECOUNTER,VTODO,NONE,VALARM,ZERO
-DECLINECOUNTER,VTODO,NONE,VEVENT,ZERO
-DECLINECOUNTER,VTODO,NONE,VFREEBUSY,ZERO
-DECLINECOUNTER,VTODO,RELCALID,NONE,ZEROORONE
-PUBLISH,VJOURNAL,NONE,NONE,ONEPLUS
-PUBLISH,VJOURNAL,DESCRIPTION,NONE,ONE
-PUBLISH,VJOURNAL,DTSTAMP,NONE,ONE
-PUBLISH,VJOURNAL,DTSTART,NONE,ONE
-PUBLISH,VJOURNAL,ORGANIZER,NONE,ONE
-PUBLISH,VJOURNAL,UID,NONE,ONE
-PUBLISH,VJOURNAL,ATTACH,NONE,ZEROPLUS
-PUBLISH,VJOURNAL,CATEGORIES,NONE,ZEROPLUS #Non-standard
-PUBLISH,VJOURNAL,CLASS,NONE,ZEROORONE
-PUBLISH,VJOURNAL,COMMENT,NONE,ZEROORONE
-PUBLISH,VJOURNAL,CONTACT,NONE,ZEROPLUS
-PUBLISH,VJOURNAL,CREATED,NONE,ZEROORONE
-PUBLISH,VJOURNAL,EXDATE,NONE,ZEROPLUS
-PUBLISH,VJOURNAL,EXRULE,NONE,ZEROPLUS
-PUBLISH,VJOURNAL,LASTMODIFIED,NONE,ZEROORONE
-PUBLISH,VJOURNAL,RDATE,NONE,ZEROPLUS
-PUBLISH,VJOURNAL,RECURRENCEID,NONE,ZEROORONE,must_be_recurring
-PUBLISH,VJOURNAL,RELATEDTO,NONE,ZEROPLUS
-PUBLISH,VJOURNAL,RRULE,NONE,ZEROPLUS
-PUBLISH,VJOURNAL,SEQUENCE,NONE,ZEROORONE
-PUBLISH,VJOURNAL,STATUS,NONE,ZEROORONE,may_be_draft_final_canceled
-PUBLISH,VJOURNAL,SUMMARY,NONE,ZEROORONE
-PUBLISH,VJOURNAL,URL,NONE,ZEROORONE
-PUBLISH,VJOURNAL,X,NONE,ZEROPLUS
-PUBLISH,VJOURNAL,ATTENDEE,NONE,ZERO
-PUBLISH,VJOURNAL,NONE,VALARM,ZEROPLUS
-PUBLISH,VJOURNAL,NONE,VTIMEZONE,ZEROPLUS
-PUBLISH,VJOURNAL,NONE,X,ZEROPLUS
-PUBLISH,VJOURNAL,NONE,VEVENT,ZERO
-PUBLISH,VJOURNAL,NONE,VFREEBUSY,ZERO
-PUBLISH,VJOURNAL,NONE,VTODO,ZERO
-ADD,VJOURNAL,NONE,NONE,ONE
-ADD,VJOURNAL,DESCRIPTION,NONE,ONE
-ADD,VJOURNAL,DTSTAMP,NONE,ONE
-ADD,VJOURNAL,DTSTART,NONE,ONE
-ADD,VJOURNAL,ORGANIZER,NONE,ONE
-ADD,VJOURNAL,SEQUENCE,NONE,ONE
-ADD,VJOURNAL,UID,NONE,ONE
-ADD,VJOURNAL,ATTACH,NONE,ZEROPLUS
-ADD,VJOURNAL,CATEGORIES,NONE,ZEROPLUS #Non-standard
-ADD,VJOURNAL,CLASS,NONE,ZEROORONE
-ADD,VJOURNAL,COMMENT,NONE,ZEROORONE
-ADD,VJOURNAL,CONTACT,NONE,ZEROPLUS
-ADD,VJOURNAL,CREATED,NONE,ZEROORONE
-ADD,VJOURNAL,EXDATE,NONE,ZEROPLUS
-ADD,VJOURNAL,EXRULE,NONE,ZEROPLUS
-ADD,VJOURNAL,LASTMODIFIED,NONE,ZEROORONE
-ADD,VJOURNAL,RDATE,NONE,ZEROPLUS
-ADD,VJOURNAL,RELATEDTO,NONE,ZEROPLUS
-ADD,VJOURNAL,RRULE,NONE,ZEROPLUS
-ADD,VJOURNAL,STATUS,NONE,ZEROORONE
-ADD,VJOURNAL,SUMMARY,NONE,ZEROORONE
-ADD,VJOURNAL,URL,NONE,ZEROORONE
-ADD,VJOURNAL,X,NONE,ZEROPLUS
-ADD,VJOURNAL,ATTENDEE,NONE,ZERO
-ADD,VJOURNAL,RECURRENCEID,NONE,ZERO
-ADD,VJOURNAL,NONE,VALARM,ZEROPLUS
-ADD,VJOURNAL,NONE,VTIMEZONE,ZEROORONE
-ADD,VJOURNAL,NONE,X,ZEROPLUS
-ADD,VJOURNAL,NONE,VEVENT,ZERO
-ADD,VJOURNAL,NONE,VFREEBUSY,ZERO
-ADD,VJOURNAL,NONE,VTODO,ZERO
-CANCEL,VJOURNAL,NONE,NONE,ONEPLUS
-CANCEL,VJOURNAL,DTSTAMP,NONE,ONE
-CANCEL,VJOURNAL,ORGANIZER,NONE,ONE
-CANCEL,VJOURNAL,SEQUENCE,NONE,ONE
-CANCEL,VJOURNAL,UID,NONE,ONE
-CANCEL,VJOURNAL,ATTACH,NONE,ZEROPLUS
-CANCEL,VJOURNAL,ATTENDEE,NONE,ZEROPLUS
-CANCEL,VJOURNAL,CATEGORIES,NONE,ZEROPLUS #Non-standard
-CANCEL,VJOURNAL,CLASS,NONE,ZEROORONE
-CANCEL,VJOURNAL,COMMENT,NONE,ZEROORONE
-CANCEL,VJOURNAL,CONTACT,NONE,ZEROPLUS
-CANCEL,VJOURNAL,CREATED,NONE,ZEROORONE
-CANCEL,VJOURNAL,DESCRIPTION,NONE,ZEROORONE
-CANCEL,VJOURNAL,DTSTART,NONE,ZEROORONE
-CANCEL,VJOURNAL,EXDATE,NONE,ZEROPLUS
-CANCEL,VJOURNAL,EXRULE,NONE,ZEROPLUS
-CANCEL,VJOURNAL,LASTMODIFIED,NONE,ZEROORONE
-CANCEL,VJOURNAL,RDATE,NONE,ZEROPLUS
-CANCEL,VJOURNAL,RECURRENCEID,NONE,ZEROORONE,must_be_recurring
-CANCEL,VJOURNAL,RELATEDTO,NONE,ZEROPLUS
-CANCEL,VJOURNAL,RRULE,NONE,ZEROPLUS
-CANCEL,VJOURNAL,STATUS,NONE,ZEROORONE,must_be_cancel_if_present
-CANCEL,VJOURNAL,SUMMARY,NONE,ZEROORONE
-CANCEL,VJOURNAL,URL,NONE,ZEROORONE
-CANCEL,VJOURNAL,X,NONE,ZEROPLUS
-CANCEL,VJOURNAL,REQUESTSTATUS,NONE,ZERO
-CANCEL,VJOURNAL,NONE,VTIMEZONE,ZEROPLUS
-CANCEL,VJOURNAL,NONE,X,ZEROPLUS
-CANCEL,VJOURNAL,NONE,VALARM,ZERO
-CANCEL,VJOURNAL,NONE,VEVENT,ZERO
-CANCEL,VJOURNAL,NONE,VFREEBUSY,ZERO
-CANCEL,VJOURNAL,NONE,VTODO,ZERO
-PUBLISH,VAGENDA,NONE,NONE,ONEPLUS
-PUBLISH,VAGENDA,CALMASTER,NONE,ONE
-PUBLISH,VAGENDA,OWNER,NONE,ZEROORONE
-PUBLISH,VAGENDA,RELCALID,NONE,ZEROORONE
-PUBLISH,VAGENDA,TZID,NONE,ONE
-REQUEST,VAGENDA,NONE,NONE,ONEPLUS
-REQUEST,VAGENDA,CALMASTER,NONE,ONE
-REQUEST,VAGENDA,OWNER,NONE,ZEROORONE
-REQUEST,VAGENDA,RELCALID,NONE,ZEROORONE
-REQUEST,VAGENDA,TZID,NONE,ONE
-REPLY,VAGENDA,NONE,NONE,ONEPLUS
-REPLY,VAGENDA,CALMASTER,NONE,ONE
-REPLY,VAGENDA,OWNER,NONE,ZEROORONE
-REPLY,VAGENDA,RELCALID,NONE,ZEROORONE
-REPLY,VAGENDA,TZID,NONE,ONE
-ADD,VAGENDA,NONE,NONE,ONEPLUS
-ADD,VAGENDA,CALMASTER,NONE,ONE
-ADD,VAGENDA,OWNER,NONE,ZEROORONE
-ADD,VAGENDA,RELCALID,NONE,ZEROORONE
-ADD,VAGENDA,TZID,NONE,ONE
-CANCEL,VAGENDA,NONE,NONE,ONEPLUS
-CANCEL,VAGENDA,CALMASTER,NONE,ONE
-CANCEL,VAGENDA,OWNER,NONE,ZEROORONE
-CANCEL,VAGENDA,RELCALID,NONE,ZEROORONE
-CANCEL,VAGENDA,TZID,NONE,ONE
-REFRESH,VAGENDA,NONE,NONE,ONEPLUS
-REFRESH,VAGENDA,CALMASTER,NONE,ONE
-REFRESH,VAGENDA,OWNER,NONE,ZEROORONE
-REFRESH,VAGENDA,RELCALID,NONE,ZEROORONE
-REFRESH,VAGENDA,TZID,NONE,ONE
-COUNTER,VAGENDA,NONE,NONE,ONEPLUS
-COUNTER,VAGENDA,CALMASTER,NONE,ONE
-COUNTER,VAGENDA,OWNER,NONE,ZEROORONE
-COUNTER,VAGENDA,RELCALID,NONE,ZEROORONE
-COUNTER,VAGENDA,TZID,NONE,ONE
-DECLINECOUNTER,VAGENDA,NONE,NONE,ONEPLUS
-DECLINECOUNTER,VAGENDA,CALMASTER,NONE,ONE
-DECLINECOUNTER,VAGENDA,OWNER,NONE,ZEROORONE
-DECLINECOUNTER,VAGENDA,RELCALID,NONE,ZEROORONE
-DECLINECOUNTER,VAGENDA,TZID,NONE,ONE
-NONE,VAGENDA,ALLOWCONFLICT,NONE,ONE
-NONE,VAGENDA,CALMASTER,NONE,ONE
-NONE,VAGENDA,OWNER,NONE,ZEROORONE
-NONE,VAGENDA,RELCALID,NONE,ZEROORONE
-NONE,VAGENDA,TZID,NONE,ONE
-NONE,VAGENDA,DEFAULTCHARSET,NONE,ONE
-NONE,VAGENDA,DEFAULTLOCALE,NONE,ONE
-NONE,VAGENDA,DEFAULTTZID,NONE,ONE
-NONE,VCALENDAR,ACTION,NONE,ZERO
-NONE,VCALENDAR,ATTACH,NONE,ZERO
-NONE,VCALENDAR,ATTENDEE,NONE,ZERO
-NONE,VCALENDAR,RELCALID,NONE,ZEROORONE
-NONE,VCALENDAR,CALSCALE,NONE,ZEROORONE
-NONE,VCALENDAR,CATEGORIES,NONE,ZERO
-NONE,VCALENDAR,CLASS,NONE,ZERO
-NONE,VCALENDAR,COMMENT,NONE,ZERO
-NONE,VCALENDAR,COMPLETED,NONE,ZERO
-NONE,VCALENDAR,CONTACT,NONE,ZERO
-NONE,VCALENDAR,CREATED,NONE,ZERO
-NONE,VCALENDAR,DESCRIPTION,NONE,ZERO
-NONE,VCALENDAR,DTEND,NONE,ZERO
-NONE,VCALENDAR,DTSTAMP,NONE,ZERO
-NONE,VCALENDAR,DTSTART,NONE,ZERO
-NONE,VCALENDAR,DUE,NONE,ZERO
-NONE,VCALENDAR,DURATION,NONE,ZERO
-NONE,VCALENDAR,EXDATE,NONE,ZERO
-NONE,VCALENDAR,EXRULE,NONE,ZERO
-NONE,VCALENDAR,FREEBUSY,NONE,ZERO
-NONE,VCALENDAR,GEO,NONE,ZERO
-NONE,VCALENDAR,LASTMODIFIED,NONE,ZERO
-NONE,VCALENDAR,LOCATION,NONE,ZERO
-NONE,VCALENDAR,METHOD,NONE,ZEROORONE
-NONE,VCALENDAR,ORGANIZER,NONE,ZERO
-NONE,VCALENDAR,PERCENTCOMPLETE,NONE,ZERO
-NONE,VCALENDAR,PRIORITY,NONE,ZERO
-NONE,VCALENDAR,PRODID,NONE,ONE
-NONE,VCALENDAR,RDATE,NONE,ZERO
-NONE,VCALENDAR,RECURRENCEID,NONE,ZERO
-NONE,VCALENDAR,RELATEDTO,NONE,ZERO
-NONE,VCALENDAR,REPEAT,NONE,ZERO
-NONE,VCALENDAR,REQUESTSTATUS,NONE,ZERO
-NONE,VCALENDAR,RESOURCES,NONE,ZERO
-NONE,VCALENDAR,RRULE,NONE,ZERO
-NONE,VCALENDAR,SEQUENCE,NONE,ZERO
-NONE,VCALENDAR,STATUS,NONE,ZERO
-NONE,VCALENDAR,SUMMARY,NONE,ZERO
-NONE,VCALENDAR,TRANSP,NONE,ZERO
-NONE,VCALENDAR,TRIGGER,NONE,ZERO
-NONE,VCALENDAR,TZID,NONE,ZERO
-NONE,VCALENDAR,TZNAME,NONE,ZERO
-NONE,VCALENDAR,TZOFFSETFROM,NONE,ZERO
-NONE,VCALENDAR,TZOFFSETTO,NONE,ZERO
-NONE,VCALENDAR,TZURL,NONE,ZERO
-NONE,VCALENDAR,UID,NONE,ZERO
-NONE,VCALENDAR,URL,NONE,ZERO
-NONE,VCALENDAR,VERSION,NONE,ONE
-NONE,VCALENDAR,X,NONE,ZEROPLUS
-NONE,VEVENT,ACTION,NONE,ZERO
-NONE,VEVENT,ATTACH,NONE,ZEROPLUS
-NONE,VEVENT,ATTENDEE,NONE,ZEROPLUS
-NONE,VEVENT,CALSCALE,NONE,ZERO
-NONE,VEVENT,CATEGORIES,NONE,ZEROPLUS
-NONE,VEVENT,CLASS,NONE,ZEROORONE
-NONE,VEVENT,COMMENT,NONE,ZEROPLUS
-NONE,VEVENT,COMPLETED,NONE,ZERO
-NONE,VEVENT,CONTACT,NONE,ZEROPLUS
-NONE,VEVENT,CREATED,NONE,ZEROORONE
-NONE,VEVENT,DESCRIPTION,NONE,ZEROORONE
-NONE,VEVENT,DTEND,NONE,ONEEXCLUSIVE,no_duration
-NONE,VEVENT,DTSTAMP,NONE,ZEROORONE
-NONE,VEVENT,DTSTART,NONE,ZEROORONE
-NONE,VEVENT,DUE,NONE,ZERO
-NONE,VEVENT,DURATION,NONE,ONEEXCLUSIVE,no_dtend
-NONE,VEVENT,EXDATE,NONE,ZEROPLUS
-NONE,VEVENT,EXRULE,NONE,ZEROPLUS
-NONE,VEVENT,FREEBUSY,NONE,ZERO
-NONE,VEVENT,GEO,NONE,ZEROORONE
-NONE,VEVENT,LASTMODIFIED,NONE,ZEROORONE
-NONE,VEVENT,LOCATION,NONE,ZEROORONE
-NONE,VEVENT,METHOD,NONE,ZERO
-NONE,VEVENT,ORGANIZER,NONE,ZEROORONE
-NONE,VEVENT,PERCENTCOMPLETE,NONE,ZERO
-NONE,VEVENT,PRIORITY,NONE,ZEROORONE
-NONE,VEVENT,PRODID,NONE,ZERO
-NONE,VEVENT,RDATE,NONE,ZEROPLUS
-NONE,VEVENT,RECURRENCEID,NONE,ZEROORONE,must_be_recurring
-NONE,VEVENT,RELATEDTO,NONE,ZEROPLUS
-NONE,VEVENT,REPEAT,NONE,ZERO
-NONE,VEVENT,REQUESTSTATUS,NONE,ZEROPLUS
-NONE,VEVENT,RESOURCES,NONE,ZEROPLUS
-NONE,VEVENT,RRULE,NONE,ZEROPLUS
-NONE,VEVENT,SEQUENCE,NONE,ZEROORONE
-NONE,VEVENT,STATUS,NONE,ZEROORONE
-NONE,VEVENT,SUMMARY,NONE,ZEROORONE
-NONE,VEVENT,TRANSP,NONE,ZEROORONE
-NONE,VEVENT,TRIGGER,NONE,ZERO
-NONE,VEVENT,TZID,NONE,ZERO
-NONE,VEVENT,TZNAME,NONE,ZERO
-NONE,VEVENT,TZOFFSETFROM,NONE,ZERO
-NONE,VEVENT,TZOFFSETTO,NONE,ZERO
-NONE,VEVENT,TZURL,NONE,ZERO
-NONE,VEVENT,UID,NONE,ZEROORONE
-NONE,VEVENT,URL,NONE,ZEROORONE
-NONE,VEVENT,VERSION,NONE,ZERO
-NONE,VEVENT,X,NONE,ZEROPLUS
-NONE,VEVENT,RELCALID,NONE,ZEROORONE
-NONE,VTODO,ACTION,NONE,ZERO
-NONE,VTODO,ATTACH,NONE,ZEROPLUS
-NONE,VTODO,ATTENDEE,NONE,ZEROPLUS
-NONE,VTODO,CALSCALE,NONE,ZERO
-NONE,VTODO,CATEGORIES,NONE,ZEROPLUS
-NONE,VTODO,CLASS,NONE,ZEROORONE
-NONE,VTODO,COMMENT,NONE,ZEROPLUS
-NONE,VTODO,COMPLETED,NONE,ZEROORONE
-NONE,VTODO,CONTACT,NONE,ZEROPLUS
-NONE,VTODO,CREATED,NONE,ZEROORONE
-NONE,VTODO,DESCRIPTION,NONE,ZEROORONE
-NONE,VTODO,DTEND,NONE,ZERO
-NONE,VTODO,DTSTAMP,NONE,ZEROORONE
-NONE,VTODO,DTSTART,NONE,ZEROORONE
-NONE,VTODO,DUE,NONE,ONEEXCLUSIVE
-NONE,VTODO,DURATION,NONE,ONEEXCLUSIVE
-NONE,VTODO,EXDATE,NONE,ZEROPLUS
-NONE,VTODO,EXRULE,NONE,ZEROPLUS
-NONE,VTODO,FREEBUSY,NONE,ZERO
-NONE,VTODO,GEO,NONE,ZEROORONE
-NONE,VTODO,LASTMODIFIED,NONE,ZEROORONE
-NONE,VTODO,LOCATION,NONE,ZEROORONE
-NONE,VTODO,METHOD,NONE,ZERO
-NONE,VTODO,ORGANIZER,NONE,ZEROORONE
-NONE,VTODO,PERCENTCOMPLETE,NONE,ZEROORONE
-NONE,VTODO,PRIORITY,NONE,ZEROORONE
-NONE,VTODO,PRODID,NONE,ZERO
-NONE,VTODO,RDATE,NONE,ZEROPLUS
-NONE,VTODO,RECURRENCEID,NONE,ZEROORONE,must_be_recurring
-NONE,VTODO,RELATEDTO,NONE,ZEROPLUS
-NONE,VTODO,REPEAT,NONE,ZERO
-NONE,VTODO,REQUESTSTATUS,NONE,ZEROPLUS
-NONE,VTODO,RESOURCES,NONE,ZEROPLUS
-NONE,VTODO,RRULE,NONE,ZEROPLUS
-NONE,VTODO,SEQUENCE,NONE,ZEROORONE
-NONE,VTODO,STATUS,NONE,ZEROORONE
-NONE,VTODO,SUMMARY,NONE,ZEROORONE
-NONE,VTODO,TRANSP,NONE,ZERO
-NONE,VTODO,TRIGGER,NONE,ZERO
-NONE,VTODO,TZID,NONE,ZERO
-NONE,VTODO,TZNAME,NONE,ZERO
-NONE,VTODO,TZOFFSETFROM,NONE,ZERO
-NONE,VTODO,TZOFFSETTO,NONE,ZERO
-NONE,VTODO,TZURL,NONE,ZERO
-NONE,VTODO,UID,NONE,ZEROORONE
-NONE,VTODO,URL,NONE,ZEROORONE
-NONE,VTODO,VERSION,NONE,ZERO
-NONE,VTODO,X,NONE,ZEROPLUS
-NONE,VTODO,RELCALID,NONE,ZEROORONE
-NONE,VJOURNAL,ACTION,NONE,ZERO
-NONE,VJOURNAL,ATTACH,NONE,ZEROPLUS
-NONE,VJOURNAL,ATTENDEE,NONE,ZEROPLUS
-NONE,VJOURNAL,CALSCALE,NONE,ZERO
-NONE,VJOURNAL,CATEGORIES,NONE,ZEROPLUS
-NONE,VJOURNAL,CLASS,NONE,ZEROORONE
-NONE,VJOURNAL,COMMENT,NONE,ZEROPLUS
-NONE,VJOURNAL,COMPLETED,NONE,ZERO
-NONE,VJOURNAL,CONTACT,NONE,ZEROPLUS
-NONE,VJOURNAL,CREATED,NONE,ZEROORONE
-NONE,VJOURNAL,DESCRIPTION,NONE,ZEROORONE
-NONE,VJOURNAL,DTEND,NONE,ZERO
-NONE,VJOURNAL,DTSTAMP,NONE,ZEROORONE
-NONE,VJOURNAL,DTSTART,NONE,ZEROORONE
-NONE,VJOURNAL,DUE,NONE,ONEEXCLUSIVE
-NONE,VJOURNAL,DURATION,NONE,ONEEXCLUSIVE
-NONE,VJOURNAL,EXDATE,NONE,ZEROPLUS
-NONE,VJOURNAL,EXRULE,NONE,ZEROPLUS
-NONE,VJOURNAL,FREEBUSY,NONE,ZERO
-NONE,VJOURNAL,GEO,NONE,ZERO
-NONE,VJOURNAL,LASTMODIFIED,NONE,ZEROORONE
-NONE,VJOURNAL,LOCATION,NONE,ZERO
-NONE,VJOURNAL,METHOD,NONE,ZERO
-NONE,VJOURNAL,ORGANIZER,NONE,ZEROORONE
-NONE,VJOURNAL,PERCENTCOMPLETE,NONE,ZERO
-NONE,VJOURNAL,PRIORITY,NONE,ZERO
-NONE,VJOURNAL,PRODID,NONE,ZERO
-NONE,VJOURNAL,RDATE,NONE,ZEROPLUS
-NONE,VJOURNAL,RECURRENCEID,NONE,ZEROORONE,must_be_recurring
-NONE,VJOURNAL,RELATEDTO,NONE,ZEROPLUS
-NONE,VJOURNAL,REPEAT,NONE,ZERO
-NONE,VJOURNAL,REQUESTSTATUS,NONE,ZEROPLUS
-NONE,VJOURNAL,RESOURCES,NONE,ZERO
-NONE,VJOURNAL,RRULE,NONE,ZEROPLUS
-NONE,VJOURNAL,SEQUENCE,NONE,ZEROORONE
-NONE,VJOURNAL,STATUS,NONE,ZEROORONE
-NONE,VJOURNAL,SUMMARY,NONE,ZEROORONE
-NONE,VJOURNAL,TRANSP,NONE,ZERO
-NONE,VJOURNAL,TRIGGER,NONE,ZERO
-NONE,VJOURNAL,TZID,NONE,ZERO
-NONE,VJOURNAL,TZNAME,NONE,ZERO
-NONE,VJOURNAL,TZOFFSETFROM,NONE,ZERO
-NONE,VJOURNAL,TZOFFSETTO,NONE,ZERO
-NONE,VJOURNAL,TZURL,NONE,ZERO
-NONE,VJOURNAL,UID,NONE,ZEROORONE
-NONE,VJOURNAL,URL,NONE,ZEROORONE
-NONE,VJOURNAL,VERSION,NONE,ZERO
-NONE,VJOURNAL,X,NONE,ZEROPLUS
-NONE,VFREEBUSY,ACTION,NONE,ZERO
-NONE,VFREEBUSY,ATTACH,NONE,ZERO
-NONE,VFREEBUSY,ATTENDEE,NONE,ZEROPLUS
-NONE,VFREEBUSY,CALSCALE,NONE,ZERO
-NONE,VFREEBUSY,CATEGORIES,NONE,ZERO
-NONE,VFREEBUSY,CLASS,NONE,ZERO
-NONE,VFREEBUSY,COMMENT,NONE,ZEROPLUS
-NONE,VFREEBUSY,COMPLETED,NONE,ZERO
-NONE,VFREEBUSY,CONTACT,NONE,ZEROORONE
-NONE,VFREEBUSY,CREATED,NONE,ZERO
-NONE,VFREEBUSY,DESCRIPTION,NONE,ZERO
-NONE,VFREEBUSY,DTEND,NONE,ZEROORONE
-NONE,VFREEBUSY,DTSTAMP,NONE,ZERO
-NONE,VFREEBUSY,DTSTART,NONE,ZEROORONE
-NONE,VFREEBUSY,DUE,NONE,ZERO
-NONE,VFREEBUSY,DURATION,NONE,ZEROORONE
-NONE,VFREEBUSY,EXDATE,NONE,ZERO
-NONE,VFREEBUSY,EXRULE,NONE,ZERO
-NONE,VFREEBUSY,FREEBUSY,NONE,ZEROPLUS
-NONE,VFREEBUSY,GEO,NONE,ZERO
-NONE,VFREEBUSY,LASTMODIFIED,NONE,ZERO
-NONE,VFREEBUSY,LOCATION,NONE,ZERO
-NONE,VFREEBUSY,METHOD,NONE,ZERO
-NONE,VFREEBUSY,ORGANIZER,NONE,ZEROORONE
-NONE,VFREEBUSY,PERCENTCOMPLETE,NONE,ZERO
-NONE,VFREEBUSY,PRIORITY,NONE,ZERO
-NONE,VFREEBUSY,PRODID,NONE,ZERO
-NONE,VFREEBUSY,RDATE,NONE,ZERO
-NONE,VFREEBUSY,RECURRENCEID,NONE,ZERO
-NONE,VFREEBUSY,RELATEDTO,NONE,ZERO
-NONE,VFREEBUSY,REPEAT,NONE,ZERO
-NONE,VFREEBUSY,REQUESTSTATUS,NONE,ZEROPLUS
-NONE,VFREEBUSY,RESOURCES,NONE,ZERO
-NONE,VFREEBUSY,RRULE,NONE,ZERO
-NONE,VFREEBUSY,SEQUENCE,NONE,ZERO
-NONE,VFREEBUSY,STATUS,NONE,ZERO
-NONE,VFREEBUSY,SUMMARY,NONE,ZERO
-NONE,VFREEBUSY,TRANSP,NONE,ZERO
-NONE,VFREEBUSY,TRIGGER,NONE,ZERO
-NONE,VFREEBUSY,TZID,NONE,ZERO
-NONE,VFREEBUSY,TZNAME,NONE,ZERO
-NONE,VFREEBUSY,TZOFFSETFROM,NONE,ZERO
-NONE,VFREEBUSY,TZOFFSETTO,NONE,ZERO
-NONE,VFREEBUSY,TZURL,NONE,ZERO
-NONE,VFREEBUSY,UID,NONE,ZEROORONE
-NONE,VFREEBUSY,URL,NONE,ZEROORONE
-NONE,VFREEBUSY,VERSION,NONE,ZERO
-NONE,VFREEBUSY,X,NONE,ZEROPLUS
-NONE,VTIMEZONE,ACTION,NONE,ZERO
-NONE,VTIMEZONE,ATTACH,NONE,ZERO
-NONE,VTIMEZONE,ATTENDEE,NONE,ZERO
-NONE,VTIMEZONE,CALSCALE,NONE,ZERO
-NONE,VTIMEZONE,CATEGORIES,NONE,ZERO
-NONE,VTIMEZONE,CLASS,NONE,ZERO
-NONE,VTIMEZONE,COMMENT,NONE,ZERO
-NONE,VTIMEZONE,COMPLETED,NONE,ZERO
-NONE,VTIMEZONE,CONTACT,NONE,ZERO
-NONE,VTIMEZONE,CREATED,NONE,ZERO
-NONE,VTIMEZONE,DESCRIPTION,NONE,ZERO
-NONE,VTIMEZONE,DTEND,NONE,ZERO
-NONE,VTIMEZONE,DTSTAMP,NONE,ZERO
-NONE,VTIMEZONE,DTSTART,NONE,ZERO
-NONE,VTIMEZONE,DUE,NONE,ZERO
-NONE,VTIMEZONE,DURATION,NONE,ZERO
-NONE,VTIMEZONE,EXDATE,NONE,ZERO
-NONE,VTIMEZONE,EXRULE,NONE,ZERO
-NONE,VTIMEZONE,FREEBUSY,NONE,ZERO
-NONE,VTIMEZONE,GEO,NONE,ZERO
-NONE,VTIMEZONE,LASTMODIFIED,NONE,ZEROORONE
-NONE,VTIMEZONE,LOCATION,NONE,ZERO
-NONE,VTIMEZONE,METHOD,NONE,ZERO
-NONE,VTIMEZONE,ORGANIZER,NONE,ZERO
-NONE,VTIMEZONE,PERCENTCOMPLETE,NONE,ZERO
-NONE,VTIMEZONE,PRIORITY,NONE,ZERO
-NONE,VTIMEZONE,PRODID,NONE,ZERO
-NONE,VTIMEZONE,RDATE,NONE,ZERO
-NONE,VTIMEZONE,RECURRENCEID,NONE,ZERO
-NONE,VTIMEZONE,RELATEDTO,NONE,ZERO
-NONE,VTIMEZONE,REPEAT,NONE,ZERO
-NONE,VTIMEZONE,REQUESTSTATUS,NONE,ZERO
-NONE,VTIMEZONE,RESOURCES,NONE,ZERO
-NONE,VTIMEZONE,RRULE,NONE,ZERO
-NONE,VTIMEZONE,SEQUENCE,NONE,ZERO
-NONE,VTIMEZONE,STATUS,NONE,ZERO
-NONE,VTIMEZONE,SUMMARY,NONE,ZERO
-NONE,VTIMEZONE,TRANSP,NONE,ZERO
-NONE,VTIMEZONE,TRIGGER,NONE,ZERO
-NONE,VTIMEZONE,TZID,NONE,ONE
-NONE,VTIMEZONE,TZNAME,NONE,ZERO
-NONE,VTIMEZONE,TZOFFSETFROM,NONE,ZERO
-NONE,VTIMEZONE,TZOFFSETTO,NONE,ZERO
-NONE,VTIMEZONE,TZURL,NONE,ZEROPLUS
-NONE,VTIMEZONE,UID,NONE,ZERO
-NONE,VTIMEZONE,URL,NONE,ZERO
-NONE,VTIMEZONE,VERSION,NONE,ZERO
-NONE,VTIMEZONE,X,NONE,ZEROORONE
-NONE,VTIMEZONE,NONE,XSTANDARD,ZEROPLUS
-NONE,VTIMEZONE,NONE,XDAYLIGHT,ZEROPLUS
-NONE,XSTANDARD,ACTION,NONE,ZERO
-NONE,XSTANDARD,ATTACH,NONE,ZERO
-NONE,XSTANDARD,ATTENDEE,NONE,ZERO
-NONE,XSTANDARD,CALSCALE,NONE,ZERO
-NONE,XSTANDARD,CATEGORIES,NONE,ZERO
-NONE,XSTANDARD,CLASS,NONE,ZERO
-NONE,XSTANDARD,COMMENT,NONE,ZEROPLUS
-NONE,XSTANDARD,COMPLETED,NONE,ZERO
-NONE,XSTANDARD,CONTACT,NONE,ZERO
-NONE,XSTANDARD,CREATED,NONE,ZERO
-NONE,XSTANDARD,DESCRIPTION,NONE,ZERO
-NONE,XSTANDARD,DTEND,NONE,ZERO
-NONE,XSTANDARD,DTSTAMP,NONE,ZERO
-NONE,XSTANDARD,DTSTART,NONE,ONE
-NONE,XSTANDARD,DUE,NONE,ZERO
-NONE,XSTANDARD,DURATION,NONE,ZERO
-NONE,XSTANDARD,EXDATE,NONE,ZERO
-NONE,XSTANDARD,EXRULE,NONE,ZERO
-NONE,XSTANDARD,FREEBUSY,NONE,ZERO
-NONE,XSTANDARD,GEO,NONE,ZERO
-NONE,XSTANDARD,LASTMODIFIED,NONE,ZERO
-NONE,XSTANDARD,LOCATION,NONE,ZERO
-NONE,XSTANDARD,METHOD,NONE,ZERO
-NONE,XSTANDARD,ORGANIZER,NONE,ZERO
-NONE,XSTANDARD,PERCENTCOMPLETE,NONE,ZERO
-NONE,XSTANDARD,PRIORITY,NONE,ZERO
-NONE,XSTANDARD,PRODID,NONE,ZERO
-NONE,XSTANDARD,RDATE,NONE,ZEROPLUS
-NONE,XSTANDARD,RECURRENCEID,NONE,ZERO
-NONE,XSTANDARD,RELATEDTO,NONE,ZERO
-NONE,XSTANDARD,REPEAT,NONE,ZERO
-NONE,XSTANDARD,REQUESTSTATUS,NONE,ZERO
-NONE,XSTANDARD,RESOURCES,NONE,ZERO
-NONE,XSTANDARD,RRULE,NONE,ZEROPLUS
-NONE,XSTANDARD,SEQUENCE,NONE,ZERO
-NONE,XSTANDARD,STATUS,NONE,ZERO
-NONE,XSTANDARD,SUMMARY,NONE,ZERO
-NONE,XSTANDARD,TRANSP,NONE,ZERO
-NONE,XSTANDARD,TRIGGER,NONE,ZERO
-NONE,XSTANDARD,TZID,NONE,ZERO
-NONE,XSTANDARD,TZNAME,NONE,ZEROPLUS
-NONE,XSTANDARD,TZOFFSETFROM,NONE,ONE
-NONE,XSTANDARD,TZOFFSETTO,NONE,ONE
-NONE,XSTANDARD,TZURL,NONE,ZERO
-NONE,XSTANDARD,UID,NONE,ZERO
-NONE,XSTANDARD,URL,NONE,ZERO
-NONE,XSTANDARD,VERSION,NONE,ZERO
-NONE,XSTANDARD,X,NONE,ZEROPLUS
-NONE,XDAYLIGHT,ACTION,NONE,ZERO
-NONE,XDAYLIGHT,ATTACH,NONE,ZERO
-NONE,XDAYLIGHT,ATTENDEE,NONE,ZERO
-NONE,XDAYLIGHT,CALSCALE,NONE,ZERO
-NONE,XDAYLIGHT,CATEGORIES,NONE,ZERO
-NONE,XDAYLIGHT,CLASS,NONE,ZERO
-NONE,XDAYLIGHT,COMMENT,NONE,ZEROPLUS
-NONE,XDAYLIGHT,COMPLETED,NONE,ZERO
-NONE,XDAYLIGHT,CONTACT,NONE,ZERO
-NONE,XDAYLIGHT,CREATED,NONE,ZERO
-NONE,XDAYLIGHT,DESCRIPTION,NONE,ZERO
-NONE,XDAYLIGHT,DTEND,NONE,ZERO
-NONE,XDAYLIGHT,DTSTAMP,NONE,ZERO
-NONE,XDAYLIGHT,DTSTART,NONE,ONE
-NONE,XDAYLIGHT,DUE,NONE,ZERO
-NONE,XDAYLIGHT,DURATION,NONE,ZERO
-NONE,XDAYLIGHT,EXDATE,NONE,ZERO
-NONE,XDAYLIGHT,EXRULE,NONE,ZERO
-NONE,XDAYLIGHT,FREEBUSY,NONE,ZERO
-NONE,XDAYLIGHT,GEO,NONE,ZERO
-NONE,XDAYLIGHT,LASTMODIFIED,NONE,ZERO
-NONE,XDAYLIGHT,LOCATION,NONE,ZERO
-NONE,XDAYLIGHT,METHOD,NONE,ZERO
-NONE,XDAYLIGHT,ORGANIZER,NONE,ZERO
-NONE,XDAYLIGHT,PERCENTCOMPLETE,NONE,ZERO
-NONE,XDAYLIGHT,PRIORITY,NONE,ZERO
-NONE,XDAYLIGHT,PRODID,NONE,ZERO
-NONE,XDAYLIGHT,RDATE,NONE,ZEROPLUS
-NONE,XDAYLIGHT,RECURRENCEID,NONE,ZERO
-NONE,XDAYLIGHT,RELATEDTO,NONE,ZERO
-NONE,XDAYLIGHT,REPEAT,NONE,ZERO
-NONE,XDAYLIGHT,REQUESTSTATUS,NONE,ZERO
-NONE,XDAYLIGHT,RESOURCES,NONE,ZERO
-NONE,XDAYLIGHT,RRULE,NONE,ZEROPLUS
-NONE,XDAYLIGHT,SEQUENCE,NONE,ZERO
-NONE,XDAYLIGHT,STATUS,NONE,ZERO
-NONE,XDAYLIGHT,SUMMARY,NONE,ZERO
-NONE,XDAYLIGHT,TRANSP,NONE,ZERO
-NONE,XDAYLIGHT,TRIGGER,NONE,ZERO
-NONE,XDAYLIGHT,TZID,NONE,ZERO
-NONE,XDAYLIGHT,TZNAME,NONE,ZEROPLUS
-NONE,XDAYLIGHT,TZOFFSETFROM,NONE,ONE
-NONE,XDAYLIGHT,TZOFFSETTO,NONE,ONE
-NONE,XDAYLIGHT,TZURL,NONE,ZERO
-NONE,XDAYLIGHT,UID,NONE,ZERO
-NONE,XDAYLIGHT,URL,NONE,ZERO
-NONE,XDAYLIGHT,VERSION,NONE,ZERO
-NONE,XDAYLIGHT,X,NONE,ZEROPLUS
-NONE,XAUDIOALARM,ACTION,NONE,ONE
-NONE,XAUDIOALARM,ATTACH,NONE,ZEROORONE
-NONE,XAUDIOALARM,ATTENDEE,NONE,ZERO
-NONE,XAUDIOALARM,CALSCALE,NONE,ZERO
-NONE,XAUDIOALARM,CATEGORIES,NONE,ZERO
-NONE,XAUDIOALARM,CLASS,NONE,ZERO
-NONE,XAUDIOALARM,COMMENT,NONE,ZERO
-NONE,XAUDIOALARM,COMPLETED,NONE,ZERO
-NONE,XAUDIOALARM,CONTACT,NONE,ZERO
-NONE,XAUDIOALARM,CREATED,NONE,ZERO
-NONE,XAUDIOALARM,DESCRIPTION,NONE,ZERO
-NONE,XAUDIOALARM,DTEND,NONE,ZERO
-NONE,XAUDIOALARM,DTSTAMP,NONE,ZERO
-NONE,XAUDIOALARM,DTSTART,NONE,ZERO
-NONE,XAUDIOALARM,DUE,NONE,ZERO
-NONE,XAUDIOALARM,DURATION,NONE,ONEMUTUAL,must_have_repeat
-NONE,XAUDIOALARM,REPEAT,NONE,ONEMUTUAL,must_have_duration
-NONE,XAUDIOALARM,EXDATE,NONE,ZERO
-NONE,XAUDIOALARM,EXRULE,NONE,ZERO
-NONE,XAUDIOALARM,FREEBUSY,NONE,ZERO
-NONE,XAUDIOALARM,GEO,NONE,ZERO
-NONE,XAUDIOALARM,LASTMODIFIED,NONE,ZERO
-NONE,XAUDIOALARM,LOCATION,NONE,ZERO
-NONE,XAUDIOALARM,METHOD,NONE,ZERO
-NONE,XAUDIOALARM,ORGANIZER,NONE,ZERO
-NONE,XAUDIOALARM,PERCENTCOMPLETE,NONE,ZERO
-NONE,XAUDIOALARM,PRIORITY,NONE,ZERO
-NONE,XAUDIOALARM,PRODID,NONE,ZERO
-NONE,XAUDIOALARM,RDATE,NONE,ZERO
-NONE,XAUDIOALARM,RECURRENCEID,NONE,ZERO
-NONE,XAUDIOALARM,RELATEDTO,NONE,ZERO
-NONE,XAUDIOALARM,REQUESTSTATUS,NONE,ZERO
-NONE,XAUDIOALARM,RESOURCES,NONE,ZERO
-NONE,XAUDIOALARM,RRULE,NONE,ZERO
-NONE,XAUDIOALARM,SEQUENCE,NONE,ZERO
-NONE,XAUDIOALARM,STATUS,NONE,ZERO
-NONE,XAUDIOALARM,SUMMARY,NONE,ZERO
-NONE,XAUDIOALARM,TRANSP,NONE,ZERO
-NONE,XAUDIOALARM,TRIGGER,NONE,ONE
-NONE,XAUDIOALARM,TZID,NONE,ZERO
-NONE,XAUDIOALARM,TZNAME,NONE,ZERO
-NONE,XAUDIOALARM,TZOFFSETFROM,NONE,ZERO
-NONE,XAUDIOALARM,TZOFFSETTO,NONE,ZERO
-NONE,XAUDIOALARM,TZURL,NONE,ZERO
-NONE,XAUDIOALARM,UID,NONE,ZERO
-NONE,XAUDIOALARM,URL,NONE,ZERO
-NONE,XAUDIOALARM,VERSION,NONE,ZERO
-NONE,XAUDIOALARM,X,NONE,ZEROPLUS
-NONE,XDISPLAYALARM,ACTION,NONE,ONE
-NONE,XDISPLAYALARM,ATTACH,NONE,ZERO
-NONE,XDISPLAYALARM,ATTENDEE,NONE,ZERO
-NONE,XDISPLAYALARM,CALSCALE,NONE,ZERO
-NONE,XDISPLAYALARM,CATEGORIES,NONE,ZERO
-NONE,XDISPLAYALARM,CLASS,NONE,ZERO
-NONE,XDISPLAYALARM,COMMENT,NONE,ZERO
-NONE,XDISPLAYALARM,COMPLETED,NONE,ZERO
-NONE,XDISPLAYALARM,CONTACT,NONE,ZERO
-NONE,XDISPLAYALARM,CREATED,NONE,ZERO
-NONE,XDISPLAYALARM,DESCRIPTION,NONE,ONE
-NONE,XDISPLAYALARM,DTEND,NONE,ZERO
-NONE,XDISPLAYALARM,DTSTAMP,NONE,ZERO
-NONE,XDISPLAYALARM,DTSTART,NONE,ZERO
-NONE,XDISPLAYALARM,DUE,NONE,ZERO
-NONE,XDISPLAYALARM,DURATION,NONE,ONEMUTUAL,must_have_repeat
-NONE,XDISPLAYALARM,REPEAT,NONE,ONEMUTUAL,must_have_duration
-NONE,XDISPLAYALARM,EXDATE,NONE,ZERO
-NONE,XDISPLAYALARM,EXRULE,NONE,ZERO
-NONE,XDISPLAYALARM,FREEBUSY,NONE,ZERO
-NONE,XDISPLAYALARM,GEO,NONE,ZERO
-NONE,XDISPLAYALARM,LASTMODIFIED,NONE,ZERO
-NONE,XDISPLAYALARM,LOCATION,NONE,ZERO
-NONE,XDISPLAYALARM,METHOD,NONE,ZERO
-NONE,XDISPLAYALARM,ORGANIZER,NONE,ZERO
-NONE,XDISPLAYALARM,PERCENTCOMPLETE,NONE,ZERO
-NONE,XDISPLAYALARM,PRIORITY,NONE,ZERO
-NONE,XDISPLAYALARM,PRODID,NONE,ZERO
-NONE,XDISPLAYALARM,RDATE,NONE,ZERO
-NONE,XDISPLAYALARM,RECURRENCEID,NONE,ZERO
-NONE,XDISPLAYALARM,RELATEDTO,NONE,ZERO
-NONE,XDISPLAYALARM,REQUESTSTATUS,NONE,ZERO
-NONE,XDISPLAYALARM,RESOURCES,NONE,ZERO
-NONE,XDISPLAYALARM,RRULE,NONE,ZERO
-NONE,XDISPLAYALARM,SEQUENCE,NONE,ZERO
-NONE,XDISPLAYALARM,STATUS,NONE,ZERO
-NONE,XDISPLAYALARM,SUMMARY,NONE,ZERO
-NONE,XDISPLAYALARM,TRANSP,NONE,ZERO
-NONE,XDISPLAYALARM,TRIGGER,NONE,ONE
-NONE,XDISPLAYALARM,TZID,NONE,ZERO
-NONE,XDISPLAYALARM,TZNAME,NONE,ZERO
-NONE,XDISPLAYALARM,TZOFFSETFROM,NONE,ZERO
-NONE,XDISPLAYALARM,TZOFFSETTO,NONE,ZERO
-NONE,XDISPLAYALARM,TZURL,NONE,ZERO
-NONE,XDISPLAYALARM,UID,NONE,ZERO
-NONE,XDISPLAYALARM,URL,NONE,ZERO
-NONE,XDISPLAYALARM,VERSION,NONE,ZERO
-NONE,XDISPLAYALARM,X,NONE,ZEROPLUS
-NONE,XEMAILALARM,ACTION,NONE,ONE,must_be_email
-NONE,XEMAILALARM,ATTACH,NONE,ZEROPLUS
-NONE,XEMAILALARM,ATTENDEE,NONE,ONEPLUS
-NONE,XEMAILALARM,CALSCALE,NONE,ZERO
-NONE,XEMAILALARM,CATEGORIES,NONE,ZERO
-NONE,XEMAILALARM,CLASS,NONE,ZERO
-NONE,XEMAILALARM,COMMENT,NONE,ZERO
-NONE,XEMAILALARM,COMPLETED,NONE,ZERO
-NONE,XEMAILALARM,CONTACT,NONE,ZERO
-NONE,XEMAILALARM,CREATED,NONE,ZERO
-NONE,XEMAILALARM,DESCRIPTION,NONE,ONE
-NONE,XEMAILALARM,DTEND,NONE,ZERO
-NONE,XEMAILALARM,DTSTAMP,NONE,ZERO
-NONE,XEMAILALARM,DTSTART,NONE,ZERO
-NONE,XEMAILALARM,DUE,NONE,ZERO
-NONE,XEMAILALARM,DURATION,NONE,ONEMUTUAL,must_have_repeat
-NONE,XEMAILALARM,REPEAT,NONE,ONEMUTUAL,must_have_duration
-NONE,XEMAILALARM,EXDATE,NONE,ZERO
-NONE,XEMAILALARM,EXRULE,NONE,ZERO
-NONE,XEMAILALARM,FREEBUSY,NONE,ZERO
-NONE,XEMAILALARM,GEO,NONE,ZERO
-NONE,XEMAILALARM,LASTMODIFIED,NONE,ZERO
-NONE,XEMAILALARM,LOCATION,NONE,ZERO
-NONE,XEMAILALARM,METHOD,NONE,ZERO
-NONE,XEMAILALARM,ORGANIZER,NONE,ZERO
-NONE,XEMAILALARM,PERCENTCOMPLETE,NONE,ZERO
-NONE,XEMAILALARM,PRIORITY,NONE,ZERO
-NONE,XEMAILALARM,PRODID,NONE,ZERO
-NONE,XEMAILALARM,RDATE,NONE,ZERO
-NONE,XEMAILALARM,RECURRENCEID,NONE,ZERO
-NONE,XEMAILALARM,RELATEDTO,NONE,ZERO
-NONE,XEMAILALARM,REQUESTSTATUS,NONE,ZERO
-NONE,XEMAILALARM,RESOURCES,NONE,ZERO
-NONE,XEMAILALARM,RRULE,NONE,ZERO
-NONE,XEMAILALARM,SEQUENCE,NONE,ZERO
-NONE,XEMAILALARM,STATUS,NONE,ZERO
-NONE,XEMAILALARM,SUMMARY,NONE,ONE
-NONE,XEMAILALARM,TRANSP,NONE,ZERO
-NONE,XEMAILALARM,TRIGGER,NONE,ONE
-NONE,XEMAILALARM,TZID,NONE,ZERO
-NONE,XEMAILALARM,TZNAME,NONE,ZERO
-NONE,XEMAILALARM,TZOFFSETFROM,NONE,ZERO
-NONE,XEMAILALARM,TZOFFSETTO,NONE,ZERO
-NONE,XEMAILALARM,TZURL,NONE,ZERO
-NONE,XEMAILALARM,UID,NONE,ZERO
-NONE,XEMAILALARM,URL,NONE,ZERO
-NONE,XEMAILALARM,VERSION,NONE,ZERO
-NONE,XEMAILALARM,X,NONE,ZEROPLUS
-NONE,XPROCEDUREALARM,ACTION,NONE,ONE
-NONE,XPROCEDUREALARM,ATTACH,NONE,ZEROORONE
-NONE,XPROCEDUREALARM,ATTENDEE,NONE,ZERO
-NONE,XPROCEDUREALARM,CALSCALE,NONE,ZERO
-NONE,XPROCEDUREALARM,CATEGORIES,NONE,ZERO
-NONE,XPROCEDUREALARM,CLASS,NONE,ZERO
-NONE,XPROCEDUREALARM,COMMENT,NONE,ZERO
-NONE,XPROCEDUREALARM,COMPLETED,NONE,ZERO
-NONE,XPROCEDUREALARM,CONTACT,NONE,ZERO
-NONE,XPROCEDUREALARM,CREATED,NONE,ZERO
-NONE,XPROCEDUREALARM,DESCRIPTION,NONE,ZEROORONE
-NONE,XPROCEDUREALARM,DTEND,NONE,ZERO
-NONE,XPROCEDUREALARM,DTSTAMP,NONE,ZERO
-NONE,XPROCEDUREALARM,DTSTART,NONE,ZERO
-NONE,XPROCEDUREALARM,DUE,NONE,ZERO
-NONE,XPROCEDUREALARM,DURATION,NONE,ONEMUTUAL,must_have_repeat
-NONE,XPROCEDUREALARM,REPEAT,NONE,ONEMUTUAL,must_have_duration
-NONE,XPROCEDUREALARM,EXDATE,NONE,ZERO
-NONE,XPROCEDUREALARM,EXRULE,NONE,ZERO
-NONE,XPROCEDUREALARM,FREEBUSY,NONE,ZERO
-NONE,XPROCEDUREALARM,GEO,NONE,ZERO
-NONE,XPROCEDUREALARM,LASTMODIFIED,NONE,ZERO
-NONE,XPROCEDUREALARM,LOCATION,NONE,ZERO
-NONE,XPROCEDUREALARM,METHOD,NONE,ZERO
-NONE,XPROCEDUREALARM,ORGANIZER,NONE,ZERO
-NONE,XPROCEDUREALARM,PERCENTCOMPLETE,NONE,ZERO
-NONE,XPROCEDUREALARM,PRIORITY,NONE,ZERO
-NONE,XPROCEDUREALARM,PRODID,NONE,ZERO
-NONE,XPROCEDUREALARM,RDATE,NONE,ZERO
-NONE,XPROCEDUREALARM,RECURRENCEID,NONE,ZERO
-NONE,XPROCEDUREALARM,RELATEDTO,NONE,ZERO
-NONE,XPROCEDUREALARM,REQUESTSTATUS,NONE,ZERO
-NONE,XPROCEDUREALARM,RESOURCES,NONE,ZERO
-NONE,XPROCEDUREALARM,RRULE,NONE,ZERO
-NONE,XPROCEDUREALARM,SEQUENCE,NONE,ZERO
-NONE,XPROCEDUREALARM,STATUS,NONE,ZERO
-NONE,XPROCEDUREALARM,SUMMARY,NONE,ZERO
-NONE,XPROCEDUREALARM,TRANSP,NONE,ZERO
-NONE,XPROCEDUREALARM,TRIGGER,NONE,ONE
-NONE,XPROCEDUREALARM,TZID,NONE,ZERO
-NONE,XPROCEDUREALARM,TZNAME,NONE,ZERO
-NONE,XPROCEDUREALARM,TZOFFSETFROM,NONE,ZERO
-NONE,XPROCEDUREALARM,TZOFFSETTO,NONE,ZERO
-NONE,XPROCEDUREALARM,TZURL,NONE,ZERO
-NONE,XPROCEDUREALARM,UID,NONE,ZERO
-NONE,XPROCEDUREALARM,URL,NONE,ZERO
-NONE,XPROCEDUREALARM,VERSION,NONE,ZERO
-NONE,XPROCEDUREALARM,X,NONE,ZEROPLUS
-NONE,VQUERY,QUERY,NONE,ZEROORONE
-NONE,VQUERY,QUERYNAME,NONE,ONE
-NONE,VQUERY,EXPAND,NONE,ONE
diff --git a/libkcal/libical/design-data/status.txt b/libkcal/libical/design-data/status.txt
deleted file mode 100644
index 9e7bbf83..00000000
--- a/libkcal/libical/design-data/status.txt
+++ /dev/null
@@ -1,56 +0,0 @@
-2.0 STATOK Operation was successfully performed.
-2.0.1 STARTSENDATA Start ICAL input; end with <CRLF>.<CRLF>
-2.0.11 OKDATAFOLLOWS The request was processed successfully. Reply data follows on the next line and terminates with <CRLF>.<CRLF>
-2.0.2 REPLYPENDING A timeout has occurred. The server is still working on the reply. Use CONTINUE to continue waiting for the reply or ABORT to terminate the command.
-2.0.3 ABORTED The  command currently underway was successsfully aborted.
-2.0.4 WILLATTEMPT The specified Calendar is not here but an attempt will be made to deliver the request or reply to the Calendar anyway.
-2.0.5 TRUSTEDWILLQUEUE The request or reply will be queued and delivered to the target calendar when its iRIP server contacts this server and issues the SWITCH command. 
-2.0.6 WILLATTEMPT The specified Calendar is not here but an attempt will be made to deliver the request or reply to the Calendar anyway. 
-2.0.7 QUEUED The message has been queued for delivery.
-2.0.8 QUEUEEMPTY There are no more queued messages.
-2.1 FALLBACK Success. Fallback taken  on one or more property  values.
-2.2 NOCOMMANDINPROGRESS An ABORT or CONTINUE was received when no command was in progress
-2.2 IGPROP Success. Invalid property ignored.
-2.3 IGPARAM Success. invalid property parameter ignored.
-2.4 IGXPROP Success. Unknown non-standard property ignored.
-2.5 IGXPARAM Success. Unknown non standard property value  ignored.
-2.6 IGCOMP Success. Invalid calendar component ignored.
-2.7 FORWARD Success. Request forwarded to Calendar User.
-2.8 ONEEVENT Success. Repeating event ignored. Scheduled as a  single component.
-2.9 TRUNC Success. Truncated end date time to date boundary.
-2.10 ONETODO Success. Repeating VTODO ignored. Scheduled as a  single VTODO.
-2.11 TRUNCRRULE Success. Unbounded RRULE clipped at some finite  number of instances  
-3.0 INVPROPNAME Invalid property name.
-3.1 INVPROPVAL Invalid property value.
-3.2 INVPARAM Invalid property parameter.
-3.3 INVPARAMVAL Invalid property parameter value.
-3.4 INVCOMP Invalid calendar component sequence.
-3.5 INVTIME Invalid date or time.
-3.6 INVRULE Invalid rule.
-3.7 INVCU Invalid Calendar User.
-3.8 NOAUTH No authority.
-3.9 BADVERSION Unsupported version.
-3.10 TOOBIG Request entity too large.
-3.11 MISSREQCOMP Required component or property missing.
-3.12 UNKCOMP Unknown component or property found.
-3.13 BADCOMP Unsupported component or property found
-3.14 NOCAP Unsupported capability.
-4.0 BUSY Event conflict. Date/time  is busy.
-5.0 MAYBE Request MAY supported.
-5.1 UNAVAIL Service unavailable.
-5.2 NOSERVICE Invalid calendar service.
-5.3 NOSCHED No scheduling support for  user.
-6.1 AUTHENTICATEFAILURE Unsupported authentication mechanism, credentials rejected
-6.2 AUTHENTICATIONABORTED Sender aborted authentication, authentication exchange cancelled
-8.0 GENERALFAILURE A failure has occurred in the Receiver that prevents the operation from succeeding.
-8.1 SERVERTOOBUSY The iRIP Receiver is too busy.
-8.2 ICALOBJECTTOOBIG Object has exceeded the server's size limit.
-8.3 DATETOOLARGE A DATETIME value was too far in the future to be represented on this Calendar.
-8.4 DATETOOSMALL A DATETIME value was too far in the past to be represented on this Calendar.
-9.0 INVALIDIRIPCOMMAND An unrecongnized command was received.
-9.1 UNEXPECTEDCOMMAND The command is not allowed for the server's current state. 
-10.1 REFERRAL Accompanied by an alternate address. 
-10.2 SERVERSHUTDOWN The server is shutting down.
-10.3 SERVERSTOPPING FLOOD 2
-10.4 EXCEEDEDQUOTAS The operation would cause a resource to exceed the allocated quota
-10.5 QUEUEDTOOLONG The ITIP message has been queued too long. Delivery has been aborted.
diff --git a/libkcal/libical/design-data/value-types.csv b/libkcal/libical/design-data/value-types.csv
deleted file mode 100644
index feb5c476..00000000
--- a/libkcal/libical/design-data/value-types.csv
+++ /dev/null
@@ -1,31 +0,0 @@
-"#Name","C type& gen flag","Python","Component Values","Enum Values"
-"BINARY","(a)const char*","file","unitary",
-"BOOLEAN","(a)int","integer","unitary",
-"CAL-ADDRESS","(a)const char*","string","unitary",
-"DATE","(a)struct icaltimetype","Time","unitary",
-"DATE-TIME","(a)struct icaltimetype","Time","unitary",
-"DURATION","(a)struct icaldurationtype","Duration","unitary",
-"FLOAT","(a)float","float","unitary",
-"INTEGER","(a)int","integer","unitary",
-"PERIOD","(a)struct icalperiodtype","Period","unitary",
-"RECUR","(m)struct icalrecurrencetype","RecurrenceSet","unitary",
-"TEXT","(a)const char*","string","unitary",
-"URI","(a)const char*","string","unitary",
-"UTC-OFFSET","(a)int","integer","unitary",
-"QUERY","(a)const char*","string","unitary",
-"#Non-standard multi-valued types",,,,
-"ATTACH","(m)icalattach *","none","URI;BINARY",
-"DATE-TIME-PERIOD","(m)struct icaldatetimeperiodtype","none","DATE-TIME;PERIOD",
-"TRIGGER","(m)struct icaltriggertype","string","DURATION;DATE-TIME",
-"#Non-standard property enumeration types",,,,
-"METHOD","(a)enum icalproperty_method","string","unitary","PUBLISH;REQUEST;REPLY;ADD;CANCEL;REFRESH;COUNTER;DECLINECOUNTER;CREATE;READ;RESPONSE;MOVE;MODIFY;GENERATEUID;DELETE"
-"X-LIC-CLASS","(a)enum icalproperty_xlicclass","string","unitary","PUBLISH-NEW;PUBLISH-UPDATE;PUBLISH-FREEBUSY;REQUEST-NEW;REQUEST-UPDATE;REQUEST-RESCHEDULE;REQUEST-DELEGATE;REQUEST-NEW-ORGANIZER;REQUEST-FORWARD;REQUEST-STATUS;REQUEST-FREEBUSY;REPLY-ACCEPT;REPLY-DECLINE;REPLY-DELEGATE;REPLY-CRASHER-ACCEPT;REPLY-CRASHER-DECLINE;ADD-INSTANCE;CANCEL-EVENT;CANCEL-INSTANCE;CANCEL-ALL;REFRESH;COUNTER;DECLINECOUNTER;MALFORMED;OBSOLETE;MISSEQUENCED;UNKNOWN"
-"ACTION","(a)enum icalproperty_action","string","unitary","AUDIO;DISPLAY;EMAIL;PROCEDURE"
-"STATUS","(a)enum icalproperty_status","string","unitary","TENTATIVE;CONFIRMED;COMPLETED;NEEDS-ACTION;CANCELLED;IN-PROCESS;DRAFT;FINAL"
-"TRANSP","(a)enum icalproperty_transp","string","unitary","OPAQUE;OPAQUE-NOCONFLICT;TRANSPARENT;TRANSPARENT-NOCONFLICT"
-"CLASS","(a)enum icalproperty_class","string","unitary","PUBLIC;PRIVATE;CONFIDENTIAL"
-"#Other non-standard",,,,
-"REQUEST-STATUS","(a)struct icalreqstattype","string","unitary"
-"GEO","(a)struct icalgeotype","tuple","unitary",
-"STRING","(a)const char*","string","unitary",
-"X","(m)const char*","string","unitary",
diff --git a/libkcal/libical/doc/Makefile.am b/libkcal/libical/doc/Makefile.am
deleted file mode 100644
index 70b008a3..00000000
--- a/libkcal/libical/doc/Makefile.am
+++ /dev/null
@@ -1 +0,0 @@
-EXTRA_DIST = UsingLibical.lyx UsingLibical.ps  UsingLibical.txt
diff --git a/libkcal/libical/doc/UsingLibical.lyx b/libkcal/libical/doc/UsingLibical.lyx
deleted file mode 100644
index c29a61f6..00000000
--- a/libkcal/libical/doc/UsingLibical.lyx
+++ /dev/null
@@ -1,2578 +0,0 @@
-#LyX 1.1 created this file. For more info see http://www.lyx.org/
-\lyxformat 2.16
-\textclass article
-\language default
-\inputencoding latin1
-\fontscheme default
-\graphics default
-\paperfontsize default
-\spacing single 
-\papersize Default
-\paperpackage a4
-\use_geometry 0
-\use_amsmath 0
-\paperorientation portrait
-\secnumdepth 3
-\tocdepth 3
-\paragraph_separation indent
-\defskip medskip
-\quotes_language english
-\quotes_times 2
-\papercolumns 1
-\papersides 1
-\paperpagestyle default
-
-\layout Title
-
-Using Libical
-\layout Author
-
-Eric Busboom (eric@softwarestudio.org)
-\layout Date
-
-January 2001
-\layout Standard
-
-
-\begin_inset LatexCommand \tableofcontents{}
-
-\end_inset 
-
-
-\layout Section
-
-Introduction 
-\layout Standard
-
-Libical is an Open Source implementation of the iCalendar protocols and
- protocol data units.
- The iCalendar specification describes how calendar clients can communicate
- with calendar servers so users can store their calendar data and arrange
- meetings with other users.
- 
-\layout Standard
-
-Libical implements RFC2445, RFC2446 and some of RFC2447 and the CAP draft.
- 
-\layout Standard
-
-This documentation assumes that you are familiar with the iCalendar standards
- RFC2445 and RFC2446.
- these specifications are online on the CALSCH webpage at:
-\layout LyX-Code
-
-http://www.imc.org/ietf-calendar/
-\layout Subsection
-
-The libical project
-\layout Standard
-
-This code is under active development.
- If you would like to contribute to the project, you can contact me, Eric
- Busboom, at eric@softwarestudio.org.
- The project has a webpage at
-\layout LyX-Code
-
-http://softwarestudio.org/libical/index.html 
-\layout Standard
-
-and a mailing list that you can join by sending the following mail:
-\layout LyX-Code
-
-To: minimalist@softwarestudio.org 
-\layout LyX-Code
-
-Subject: subscribe libical 
-\layout Subsection
-
-License
-\layout Standard
-
-The code and datafiles in this distribution are licensed under the Mozilla
- Public License.
- See http://www.mozilla.org/NPL/MPL-1.0.html for a copy of the license.
- Alternately, you may use libical under the terms of the GNU Library General
- Public License.
- See http://www.fsf.org/copyleft/lesser.html for a copy of the LGPL.
-\layout Standard
-
-This dual license ensures that the library can be incorporated into both
- proprietary code and GPL'd programs, and will benefit from improvements
- made by programmers in both realms.
- I will only accept changes into my version of the library if they are similarly
- dual-licensed.
-\layout Subsection
-
-Example Code
-\layout Standard
-
-A lot of the documentation for this library is in the form of example code.
- These examples are in the 
-\begin_inset Quotes eld
-\end_inset 
-
-examples
-\begin_inset Quotes erd
-\end_inset 
-
- directory of the distribution.
- Also look in 
-\begin_inset Quotes eld
-\end_inset 
-
-src/test
-\begin_inset Quotes erd
-\end_inset 
-
- for additional annotated examples.
- 
-\layout Section
-
-Building and Installing the Library
-\layout Standard
-
-Libical uses autoconf to generate makefiles.
- It should built with no adjustments on Linux, FreeBSD and Solaris under
- gcc.
- Some version have been successfully been build on MacOS, Solaris, UnixWare,
- And Tru64 UNIX without gcc, but you may run into problems with a particular
- later version.
- 
-\layout Standard
-
-For a more complete guide to building the library, see the README file in
- the distribution.
- 
-\layout Standard
-
-
-\begin_inset Quotes eld
-\end_inset 
-
-make install
-\begin_inset Quotes erd
-\end_inset 
-
- will install the libraries and header files for three modules: libical,
- libicalss.
- and libicalvcal.
- If you build shared objects, then these files will be installed: 
-\layout Itemize
-
-ical.h
-\layout Itemize
-
-libical.a
-\layout Itemize
-
-libical.so
-\layout Itemize
-
-icalss.h
-\layout Itemize
-
-libicalss.a
-\layout Itemize
-
-libicalss.so
-\layout Itemize
-
-icalvcal.h
-\layout Itemize
-
-libicalvcal.a
-\layout Itemize
-
-libicalvcal.so
-\layout Standard
-
-The header files ical.h and icalss.h are combined header files, generated
- by concatenating together all of the header files in src/libical and src/libica
-lss respectively.
- 
-\layout Section
-
-Structure 
-\layout Standard
-
-The iCal calendar model is based on four types of objects: components, propertie
-s, values and parameters.
- 
-\layout Standard
-
-Properties are the fundamental unit of information in iCal, and they work
- a bit like a hash entry, with a constant key and a variable value.
- Properties may also have modifiers, called parameters.
- In the iCal content line
-\layout LyX-Code
-
-ORGANIZER;ROLE=CHAIR:MAILTO:mrbig@host.com
-\layout Standard
-
-The property name is 
-\begin_inset Quotes eld
-\end_inset 
-
-ORGANIZER,
-\begin_inset Quotes erd
-\end_inset 
-
- the value of the property is 
-\begin_inset Quotes eld
-\end_inset 
-
-mrbig@host.com
-\begin_inset Quotes erd
-\end_inset 
-
- and the 
-\begin_inset Quotes eld
-\end_inset 
-
-ROLE
-\begin_inset Quotes erd
-\end_inset 
-
- parameter specifies that Mr Big is the chair of the meetings associated
- with this property.
- 
-\layout Standard
-
-Components are groups of properties that represent the core objects of a
- calendar system, such as events or timezones.
- Components are delimited by 
-\begin_inset Quotes eld
-\end_inset 
-
-BEGIN
-\begin_inset Quotes erd
-\end_inset 
-
- and 
-\begin_inset Quotes eld
-\end_inset 
-
-END
-\begin_inset Quotes erd
-\end_inset 
-
- tags.
- 
-\layout Standard
-\added_space_bottom 0.3cm 
-When a component is sent across a network, if it is un-encrypted, it will
- look something like:
-\layout LyX-Code
-
-BEGIN:VCALENDAR
-\layout LyX-Code
-
-METHOD:REQUEST
-\layout LyX-Code
-
-PRODID: -//hacksw/handcal//NONSGML v1.0//EN
-\layout LyX-Code
-
-BEGIN:VEVENT 
-\layout LyX-Code
-
-DTSTAMP:19980309T231000Z 
-\layout LyX-Code
-
-UID:guid-1.host1.com 
-\layout LyX-Code
-
-ORGANIZER;ROLE=CHAIR:MAILTO:mrbig@host.com 
-\layout LyX-Code
-
-ATTENDEE;RSVP=TRUE;ROLE=REQ-PARTICIPANT;CUTYPE=GROUP: 
-\layout LyX-Code
-
-  MAILTO:employee-A@host.com 
-\layout LyX-Code
-
-DESCRIPTION:Project XYZ Review Meeting 
-\layout LyX-Code
-
-CATEGORIES:MEETING 
-\layout LyX-Code
-
-CLASS:PUBLIC 
-\layout LyX-Code
-
-CREATED:19980309T130000Z 
-\layout LyX-Code
-
-SUMMARY:XYZ Project Review 
-\layout LyX-Code
-
-DTSTART;TZID=US-Eastern:19980312T083000 
-\layout LyX-Code
-
-DTEND;TZID=US-Eastern:19980312T093000 
-\layout LyX-Code
-
-LOCATION:1CP Conference Room 4350 
-\layout LyX-Code
-
-END:VEVENT 
-\layout LyX-Code
-
-END:VCALENDAR
-\layout Standard
-
-Note that components can be nested; this example has both a VCALENDAR and
- a VEVENT component, one nested inside the other.
- 
-\layout Standard
-
-The main goal of Libical is to offer a structured, type-safe to create,
- access and manipulate components and their properties, values and parameters.
- 
-\layout Subsection
-
-Core iCal classes
-\layout Standard
-
-Libical is an object-based, data-oriented library.
- There are no real-objects, but the way the routines are named and organized
- results in the same sort of encapsulations and abstraction that are major
- features of Object-Orieted languages.
- Nearly all of the routines in the library are associated with an opaque
- data types and perform some operation on that data type.
- For instnace, a Property is declared as:
-\layout LyX-Code
-
-icalproperty *prop;
-\layout Standard
-
-Icalproperty is typedef'd to void, so the only way to manipulate it is through
- the accessor routines, all of which have a form similar to:
-\layout LyX-Code
-
-char* icalproperty_as_ical_string(icalproperty* prop);
-\layout Standard
-
-That is, the name of the 'class' is the first word in the routine name,
- and the first parameter is a pointer to the 'object.'
-\layout Standard
-
-Although the library does not actually have classes, we will use those terms
- since the behavior of these associations of data and routines is very similar
- to a class.
- 
-\layout Subsubsection
-
-Properties
-\layout LyX-Code
-
-icalproperty *prop;
-\layout Standard
-
-Properties are represented with the icalproperty class and its many 
-\begin_inset Quotes eld
-\end_inset 
-
-derived
-\begin_inset Quotes erd
-\end_inset 
-
- classes with on 
-\begin_inset Quotes eld
-\end_inset 
-
-derived
-\begin_inset Quotes erd
-\end_inset 
-
- class per property type in RFC2445.
- Again, there is no actual inheritance relations, but there are clusters
- of routines that make this term useful.
- A property is a container for a single value and a set of parameters.
- 
-\layout Subsubsection
-
-Components 
-\layout LyX-Code
-
-icalcomponent *comp;
-\layout Standard
-
-In libical, components are represented with the icalcomponent class.
- Icalcomponent is a container for a set of other components and properties.
-\layout Subsubsection
-
-Values 
-\layout LyX-Code
-
-icalvalue *value;
-\layout Standard
-
-Values are represented in a similar way to properties; a base class and
- many 
-\begin_inset Quotes eld
-\end_inset 
-
-derived 
-\begin_inset Quotes eld
-\end_inset 
-
- classes.
- A value is essentially a abstract handle on a single fundamental type,
- a structure or a union.
- You probably will never use a value directly, since for most operations
- you can get to its data through the property that holds it.
- 
-\layout Subsubsection
-
-Parameters 
-\layout LyX-Code
-
-icalparameter *param;
-\layout Standard
-
-Parameters are represetned in a similar way to properties, except that they
- contain only one value
-\layout Subsection
-
-Other elements of libical
-\layout Standard
-
-In addition to the core iCal classes, libical has many other types, structures,
- classes that aid in creating and using iCal components.
- 
-\layout Subsubsection
-
-Enumerations and types
-\layout Standard
-
-Libical is strongly typed, so every component, property, parameter, and
- value type has an enumeration, and some have an associated structure or
- union.
- 
-\layout Subsubsection
-
-The parser
-\layout Standard
-
-The libical parser offers a variety of ways to convert RFC2445 text into
- a libical iinsteral component structure.
- the parser can parse blocks of text as a string, or it can parse lin-by-line.
-\layout Subsubsection
-
-Error objects
-\layout Standard
-
-Libical has a substantial error reporting system for both programming errors
- and component usage errors.
- 
-\layout Subsubsection
-
-Memory Management
-\layout Standard
-
-Since many of libicals interfaces return strings, the library has its own
- memory management system to elimiate the need to free every string returned
- from the libraru.
- 
-\layout Subsubsection
-
-Storage classes
-\layout Standard
-
-The library also offers several classes to store components to flies, memory
- or databases.
- 
-\layout Section
-
-Differences From RFCs 
-\layout Standard
-
-Libical has been designed to follow the standards as closely as possible,
- so that the key objects in the standards are also key objects in the library.
- However, there are a few areas where the specifications are (arguably)
- irregular, and following them exactly would result in an unfriendly interface.
- These deviations make libical easier to use by maintaining a self-similar
- interface.
- 
-\layout Subsection
-
-Pseudo Components 
-\layout Standard
-
-Libical defines components for groups of properties that look and act like
- components, but are not defined as components in the specification.
- XDAYLIGHT and XSTANDARD are notable examples.
- These pseudo components group properties within the VTIMEZONE components.
- For instanace, the timezone properties associated with daylight savings
- time starts with 
-\begin_inset Quotes eld
-\end_inset 
-
-BEGIN:DAYLIGHT
-\begin_inset Quotes erd
-\end_inset 
-
- and ends with 
-\begin_inset Quotes eld
-\end_inset 
-
-END:DAYLIGHT, just like other components, but is not defined as a component
- in RFC2445.
- ( See RFC2445, page 61 ) In Libical,this grouping is represented by the
- XDAYLIGHT component.
- Standard iCAL components all start with the letter 
-\begin_inset Quotes eld
-\end_inset 
-
-V,
-\begin_inset Quotes erd
-\end_inset 
-
- while pseudo components start with
-\begin_inset Quotes erd
-\end_inset 
-
-X.
-\begin_inset Quotes erd
-\end_inset 
-
-
-\layout Standard
-
-There are also pseudo components that are conceptually derived classes of
- VALARM.
- RFC2446 defines what properties may be included in each component, and
- for VALARM, the set of properties it may have depends on the value of the
- ACTION property.
- 
-\layout Standard
-
-For instance, if a VALARM component has an ACTION property with the value
- of 
-\begin_inset Quotes eld
-\end_inset 
-
-AUDIO,
-\begin_inset Quotes erd
-\end_inset 
-
- the component must also have an 
-\begin_inset Quotes eld
-\end_inset 
-
-ATTACH
-\begin_inset Quotes erd
-\end_inset 
-
- property.
- However, if the ACTION value is 
-\begin_inset Quotes eld
-\end_inset 
-
-DISPLAY,
-\begin_inset Quotes erd
-\end_inset 
-
- the component must have a DESCRIPTION property.
- 
-\layout Standard
-
-To handle these various, complex restrictions, libical has pseudo components
- for each type of alarm: XAUDIOALARM, XDISPLAYALARM, XEMAILALARM and XPROCEDUREA
-LARM.
- 
-\layout Subsection
-
-Combined Values 
-\layout Standard
-
-Many values can take more than one type.
- TRIGGER, for instance, can have a value type of with DURATION or of DATE-TIME.
- These multiple types make it difficult to create routines to return the
- value associated with a property.
- 
-\layout Standard
-
-It is natural to have interfaces that would return the value of a property,
- but it is cumbersome for a single routine to return multiple types.
- So, in libical, properties that can have multiple types are given a single
- type that is the union of their RFC2445 types.
- For instance, in libical, the value of the TRIGGER property resolves to
- struct icaltriggertype.
- This type is a union of a DURATION and a DATE-TIME.
- 
-\layout Subsection
-
-Multi-Valued Properties
-\layout Standard
-
-Some properties, such as CATEGORIES have only one value type, but each CATEGORIE
-S property can have multiple value instances.
- This also results in a cumbersome interface -- CATEGORIES accessors would
- have to return a list while all other accessors returned a single value.
- In libical, all properties have a single value, and multi-valued properties
- are broken down into multiple single valued properties during parsing.
- That is, an input line like, 
-\layout LyX-Code
-
-CATEGORIES: work, home
-\layout Standard
-
-becomes in libical's internal representation
-\layout LyX-Code
-
-CATEGORIES: work
-\layout LyX-Code
-
-CATEGORIES: home
-\layout Standard
-
-Oddly, RFC2445 allows some multi-valued properties ( like FREEBUSY ) to
- exist as both a multi-values property and as multiple single value properties,
- while others ( like CATEGORIES ) can only exist as single multi-valued
- properties.
- This makes the internal representation for CATEGORIES illegal.
- However when you convert a component to a string, the library will collect
- all of the CATEGORIES properties into one.
- 
-\layout Section
-
-Using libical
-\layout Subsection
-
-Creating Components 
-\layout Standard
-
-There are three ways to create components in Libical: 
-\layout Itemize
-
-Create individual components, properties and parameters and assemble them
- into structures
-\layout Itemize
-
-Build complete components with nested vaargs calls
-\layout Itemize
-
-Parse bits of text
-\layout Itemize
-
-Parse entire files
-\layout Subsubsection
-
-Constructor Interfaces 
-\layout Standard
-
-Using constructor interfaces, you create each of the objects separately
- and then assemble them in to components: 
-\layout LyX-Code
-
-icalcomponent *event;
-\layout LyX-Code
-
-icalproperty *prop;
-\layout LyX-Code
-
-icalparameter *param;
-\layout LyX-Code
-
-struct icaltimetype atime;
-\layout LyX-Code
-
-\layout LyX-Code
-
-event = icalcomponent_new(ICAL_VEVENT_COMPONENT);
-\layout LyX-Code
-
-prop = icalproperty_new_dtstamp(atime); 
-\layout LyX-Code
-
-icalcomponent_add_property(event, prop);
-\layout LyX-Code
-
-\layout LyX-Code
-
-prop = icalproperty_new_uid(''guid-1.host1.com'') );
-\layout LyX-Code
-
-icalcomponent_add_property(event,prop);
-\layout LyX-Code
-
-\layout LyX-Code
-
-prop=icalproperty_new_organizer(''mrbig@host.com''); 
-\layout LyX-Code
-
-param = icalparameter_new_role(ICAL_ROLE_CHAIR) 
-\layout LyX-Code
-
-icalproperty_add_parameter(prop, param);
-\layout LyX-Code
-
-\layout LyX-Code
-
-icalcomponent_add_property(event,prop);
-\layout Standard
-
-Notice that libical uses a semi-object-oriented style of interface.
- Most things you work with are objects, that are instantiated with a constructor
- that has 
-\begin_inset Quotes eld
-\end_inset 
-
-new
-\begin_inset Quotes erd
-\end_inset 
-
- in the name.
- Also note that, other than the object reference, most structure data is
- passed in to libical routines by value.
- Libical has some complex but very regular memory handling rules.
- These are detailed in section 
-\begin_inset LatexCommand \ref{sec:memory}
-
-\end_inset 
-
-.
-\layout Standard
-
-If any of the constructors fail, they will return 0.
- If you try to insert 0 into a property or component, or use a zero-valued
- object reference, libical will either silently ignore the error or will
- abort with an error message.
- This behavior is controlled by a compile time flag (ICAL_ERRORS_ARE_FATAL),
- and will abort by default.
- 
-\layout Subsubsection
-
-vaargs Constructors 
-\layout Standard
-
-There is another way to create complex components, which is arguably more
- elegant, if you are not horrified by varargs.
- The varargs constructor interface allows you to create intricate components
- in a single block of code.
- Here is the previous examples in the vaargs style.
- 
-\layout LyX-Code
-
-    calendar = 
-\layout LyX-Code
-
-        icalcomponent_vanew(
-\layout LyX-Code
-
-            ICAL_VCALENDAR_COMPONENT,
-\layout LyX-Code
-
-            icalproperty_new_version(''2.0''),
-\layout LyX-Code
-
-            icalproperty_new_prodid(
-\layout LyX-Code
-
-                 ''-//RDU Software//NONSGML HandCal//EN''),
-\layout LyX-Code
-
-            icalcomponent_vanew(
-\layout LyX-Code
-
-                ICAL_VEVENT_COMPONENT,
-\layout LyX-Code
-
-                icalproperty_new_dtstamp(atime),
-\layout LyX-Code
-
-                icalproperty_new_uid(''guid-1.host1.com''),
-\layout LyX-Code
-
-                icalproperty_vanew_organizer(
-\layout LyX-Code
-
-                    ''mrbig@host.com''),
-\layout LyX-Code
-
-                    icalparameter_new_role(ICAL_ROLE_CHAIR),
-\layout LyX-Code
-
-                    0
-\layout LyX-Code
-
-                    ),
-\layout LyX-Code
-
-                icalproperty_vanew_attendee(
-\layout LyX-Code
-
-                    ''employee-A@host.com'',
-\layout LyX-Code
-
-                    icalparameter_new_role(
-\layout LyX-Code
-
-                        ICAL_ROLE_REQPARTICIPANT),
-\layout LyX-Code
-
-                    icalparameter_new_rsvp(1),
-\layout LyX-Code
-
-                    icalparameter_new_cutype(ICAL_CUTYPE_GROUP),
-\layout LyX-Code
-
-                    0
-\layout LyX-Code
-
-                    ),
-\layout LyX-Code
-
-                icalproperty_new_location(
-\layout LyX-Code
-
-                   "1CP Conference Room 4350"),
-\layout LyX-Code
-
-                0
-\layout LyX-Code
-
-                ),
-\layout LyX-Code
-
-            0
-\layout LyX-Code
-
-            );
-\layout Standard
-
-This form is similar to the constructor form , except that the constructors
- have 
-\begin_inset Quotes eld
-\end_inset 
-
-vanew
-\begin_inset Quotes erd
-\end_inset 
-
- instead of 
-\begin_inset Quotes eld
-\end_inset 
-
-new
-\begin_inset Quotes erd
-\end_inset 
-
- in the name.
- The arguments are similar too, except that the component constructor can
- have a list of properties, and the property constructor can have a list
- of parameters.
- Be sure to terminate every list with a '0', or your code will crash, if
- you are lucky.
- 
-\layout Subsubsection
-
-Parsing Text
-\layout Standard
-
-Several routines are available for generating objects from text.
- For properties, use:
-\layout LyX-Code
-
-icalproperty* p;
-\layout LyX-Code
-
-p = icalproperty_new_from_string("DTSTART:19970101T120000Z
-\backslash 
-n");
-\layout Standard
-
-For parameters, use:
-\layout LyX-Code
-
-icalparameter *param
-\layout LyX-Code
-
-param = icalparameter_new_from_string("PARTSTAT=ACCEPTED");
-\layout Standard
-
-The final way to create components will probably be the most common; you
- can create components from RFC2445 compliant text.
- If you have the string in memory, use
-\layout LyX-Code
-
-icalcomponent* icalcomponent_new_from_string(char* str);
-\layout Standard
-
-If the string contains only one component, the routine will return the component
- in libical form.
- If the string contains multiple components, the multiple components will
- be returned as the children of an ICAL_XROOT_COMPONENT component.
- This routine is identical to ( and actually uses ) icalparser_parse_string(char
-* str).
-\layout Standard
-
-Parsing a whole string may seem wasteful if you want to pull a large component
- off of the network or from a file; you may prefer to parse the component
- line by line.
- This is possible too by using:
-\layout LyX-Code
-
-icalparser* icalparser_new(); 
-\layout LyX-Code
-
-void icalparser_free(icalparser* parser);
-\layout LyX-Code
-
-icalparser_get_line(parser,read_stream);
-\layout LyX-Code
-
-icalparser_add_line(parser,line);
-\layout LyX-Code
-
-icalparser_set_gen_data(parser,stream)
-\layout Standard
-
-These routines will construct a parser object to which you can add lines
- of input and retrieve any components that the parser creates from the input.
- These routines work by specifing an adaptor routine to get string data
- from a source.
- For an example:
-\layout LyX-Code
-
-char* read_stream(char *s, size_t size, void *d) 
-\layout LyX-Code
-
-{ 
-\layout LyX-Code
-
-  char *c = fgets(s,size, (FILE*)d);
-\layout LyX-Code
-
-  return c;
-\layout LyX-Code
-
-}
-\layout LyX-Code
-
-main() {
-\layout LyX-Code
-
-  char* line; 
-\layout LyX-Code
-
-  icalcomponent *c; 
-\layout LyX-Code
-
-  icalparser *parser = icalparser_new();
-\layout LyX-Code
-
-  FILE* stream = fopen(argv[1],"r");
-\layout LyX-Code
-
-  icalparser_set_gen_data(parser,stream);
-\layout LyX-Code
-
-  do{ 
-\layout LyX-Code
-
-    line = icalparser_get_line(parser,read_stream); 
-\layout LyX-Code
-
-    c = icalparser_add_line(parser,line);
-\layout LyX-Code
-
-    if (c != 0){ 
-\layout LyX-Code
-
-     printf("%s",icalcomponent_as_ical_string(c));     
-\layout LyX-Code
-
-     icalparser_claim(parser); 
-\layout LyX-Code
-
-     printf("
-\backslash 
-n---------------
-\backslash 
-n"); 
-\layout LyX-Code
-
-     icalcomponent_free(c); 
-\layout LyX-Code
-
-   }
-\layout LyX-Code
-
-  } while ( line != 0);
-\layout LyX-Code
-
-}
-\layout Standard
-
-The parser object parameterizes the routine used to get input lines with
- icalparser_set_gen_data() and
-\emph on 
- 
-\emph default 
-icalparser_get_line().
- In this example, the routine read_stream() will fetch the next line from
- a stream, with the stream passed in as the void* parameter d.
- The parser calls read_stream() from icalparser_get_line(), but it also
- needs to know what stream to use.
- This is set by the call to icalparser_set_gen_data().
- By using a different routine for read_stream or passing in different data
- with icalparser_set_gen_data, you can connect to any data source.
- 
-\layout Standard
-
-Using the same mechanism, other implementations could read from memory buffers,
- sockets or other interfaces.
- 
-\layout Standard
-
-Since the example code is a very common way to use the parser, there is
- a convenience routine;
-\layout LyX-Code
-
-icalcomponent* icalparser_parse(icalparser *parser, 
-\layout LyX-Code
-
-               char* (*line_gen_func)(char *s, size_t size,  void* d))
-\layout Standard
-
-To use this routine, you still must construct the parser object and pass
- in a reference to a line reading routine.
- If the parser can create a single component from the input, it will return
- a pointer to the newly constructed component.
- If the parser can construct multiple components from the input, it will
- return a reference to an XROOT component ( of type ICAL_XROOT_COMPONENT.)
- This XROOT component will hold all of the components constructed from the
- input as children.
- 
-\layout Subsection
-
-Accessing Components 
-\layout Standard
-
-Given a reference to a component, you probably will want to access the propertie
-s, parameters and values inside.
- Libical interfaces let you find sub-components, add and remove sub-components,
- and do the same three operations on properties.
- 
-\layout Subsubsection
-
-Finding Components 
-\layout Standard
-
-To find a sub-component of a component, use: 
-\layout LyX-Code
-
-icalcomponent* icalcomponent_get_first_component(
-\layout LyX-Code
-
-                                   icalcomponent* component, 
-\layout LyX-Code
-
-                                   icalcomponent_kind kind);
-\layout Standard
-
-This routine will return a reference to the first component of the type
- 'kind.' The key kind values, listed in icalenums.h are: 
-\layout LyX-Code
-
-ICAL_ANY_COMPONENT
-\layout LyX-Code
-
-ICAL_VEVENT_COMPONENT
-\layout LyX-Code
-
-ICAL_VTODO_COMPONENT
-\layout LyX-Code
-
-ICAL_VJOURNAL_COMPONENT
-\layout LyX-Code
-
-ICAL_VCALENDAR_COMPONENT 
-\layout LyX-Code
-
-ICAL_VFREEBUSY_COMPONENT
-\layout LyX-Code
-
-ICAL_VALARM_COMPONENT
-\layout Standard
-
-These are only the most common components; there are many more listed in
- icalenums.h.
-\layout Standard
-
-As you might guess, if there is more than one subcomponent of the type you
- have chosen, this routine will return only the first.
- to get at the others, you need to iterate through the component.
- 
-\layout Subsubsection
-
-Iterating Through Components
-\layout Standard
-
-Iteration requires a second routine to get the next subcomponent after the
- first:
-\layout LyX-Code
-
-icalcomponent* icalcomponent_get_next_component(
-\layout LyX-Code
-
-               icalcomponent* component, 
-\layout LyX-Code
-
-               icalcomponent_kind kind);
-\layout Standard
-
-With the 'first' and 'next' routines, you can create a for loop to iterate
- through all of a components subcomponents
-\layout LyX-Code
-
-  for(c = icalcomponent_get_first_component(comp,ICAL_ANY_COMPONENT); 
-\layout LyX-Code
-
-         c != 0; 
-\layout LyX-Code
-
- c = icalcomponent_get_next_component(comp,ICAL_ANY_COMPONENT))
-\layout LyX-Code
-
-{ 
-\layout LyX-Code
-
-      do_something(c);
-\layout LyX-Code
-
-}
-\layout Standard
-
-This code bit wil iterate through all of the subcomponents in 'comp' but
- you can select a specific type of component by changing ICAL_ANY_COMPONENT
- to another component type.
-\layout Subsubsection
-
-Using Component Iterators
-\layout Standard
-
-The iteration model in the previous section requires the component to keep
- the state of the iteration.
- So, you could not use this model to perform a sorting operations, since
- you'd need two iterators and there is only space for one.
- If you ever call icalcomponent_get_first_component() when an iteration
- is in progress, the pointer will be reset to the beginning.
- 
-\layout Standard
-
-To solve this problem, there are also external iterators for components.
- The routines associated with these external iterators are: 
-\layout LyX-Code
-
-icalcompiter icalcomponent_begin_component(icalcomponent* component, icalcompone
-nt_kind kind);
-\layout LyX-Code
-
-icalcompiter icalcomponent_end_component(icalcomponent* component, icalcomponent
-_kind kind);
-\layout LyX-Code
-
-icalcomponent* icalcompiter_next(icalcompiter* i); 
-\layout LyX-Code
-
-icalcomponent* icalcompiter_prior(icalcompiter* i); 
-\layout LyX-Code
-
-icalcomponent* icalcompiter_deref(icalcompiter* i);
-\layout Standard
-
-The _begin_() and _end_() routines return a new iterator that points to
- the beginning and ending of the list of subcomponent for the given component,
- and the kind argument works like the kind argument for internal iterators.
- 
-\layout Standard
-
-After creating an iterators, use _next_() and _prior_() to step forward
- and backward through the list and get the component that the iterator points
- to, and use _deref() to return the component that the iterator points to
- without moving the iterator.
- All routines will return 0 when they move to point off the end of the list.
- 
-\layout Standard
-
-Here is an example of a loop using these routines: 
-\layout LyX-Code
-
-for(
-\layout LyX-Code
-
-   i = icalcomponent_begin_component(impl->cluster,ICAL_ANY_COMPONENT);
- 
-\layout LyX-Code
-
-   icalcompiter_deref(&i)!= 0; 
-\layout LyX-Code
-
-   icalcompiter_next(&i)
-\layout LyX-Code
-
-) { 
-\layout LyX-Code
-
-      icalcomponent *this = icalcompiter_deref(&i);
-\layout LyX-Code
-
-}
-\layout Subsubsection
-
-Removing Components 
-\layout Standard
-
-Removing an element from a list while iterating through the list with the
- internal iterators can cause problems, since you will probably be removing
- the element that the internal iterator points to.
- The _remove() routine will keep the iterator valid by moving it to the
- next component, but in a normal loop, this will result in two advances
- per iteration, and you will remove only every other component.
-  To avoid the problem, you will need to step the iterator ahead of the
- element you are going to remove, like this:
-\layout LyX-Code
-
-for(c = icalcomponent_get_first_component(parent_comp,ICAL_ANY_COMPONENT);
- 
-\layout LyX-Code
-
-       c != 0; 
-\layout LyX-Code
-
-       c = next
-\layout LyX-Code
-
-{     
-\layout LyX-Code
-
-    next = icalcomponent_get_next_component(parent_comp,ICAL_ANY_COMPONENT);
-\layout LyX-Code
-
-    icalcomponent_remove_component(parent_comp,c); 
-\layout LyX-Code
-
-}
-\layout Standard
-
-Another way to remove components is to rely on the side effect of icalcomponent_
-remove_component: if component iterator in the parent component is pointing
- to the child that will be removed, it will move the iterator to the component
- after the child.
- The following code will exploit this behavior: 
-\layout LyX-Code
-
-icalcomponent_get_first_component(parent_comp,ICAL_VEVENT_COMPONENT);
-\layout LyX-Code
-
-while((c=icalcomponent_get_current_component(c)) != 0 ){ 
-\layout LyX-Code
-
-   if(icalcomponent_isa(c) == ICAL_VEVENT_COMPONENT){ 
-\layout LyX-Code
-
-      icalcomponent_remove_component(parent_comp,inner);
-\layout LyX-Code
-
-   } else { 
-\layout LyX-Code
-
-      icalcomponent_get_next_component(parent_comp,ICAL_VEVENT_COMPONENT);
- 
-\layout LyX-Code
-
-   } 
-\layout LyX-Code
-
-}
-\layout Subsubsection
-
-Working with properties and parameters
-\layout Standard
-
-Finding, iterating and removing properties works the same as it does for
- components, using the property-specific or parameter-specific interfaces:
- 
-\layout LyX-Code
-
-icalproperty* icalcomponent_get_first_property(
-\layout LyX-Code
-
-     icalcomponent* component, 
-\layout LyX-Code
-
-     icalproperty_kind kind); 
-\layout LyX-Code
-
-icalproperty* icalcomponent_get_next_property(
-\layout LyX-Code
-
-     icalcomponent* component, 
-\layout LyX-Code
-
-     icalproperty_kind kind);
-\layout LyX-Code
-
-void icalcomponent_add_property(
-\layout LyX-Code
-
-     icalcomponent* component, 
-\layout LyX-Code
-
-     icalproperty* property);
-\layout LyX-Code
-
-void icalcomponent_remove_property(
-\layout LyX-Code
-
-     icalcomponent* component, 
-\layout LyX-Code
-
-     icalproperty* property);
-\layout Standard
-
-For parameters:
-\layout LyX-Code
-
-icalparameter* icalproperty_get_first_parameter(
-\layout LyX-Code
-
-     icalproperty* prop, 
-\layout LyX-Code
-
-     icalparameter_kind kind); 
-\layout LyX-Code
-
-icalparameter* icalproperty_get_next_parameter(
-\layout LyX-Code
-
-     icalproperty* prop, 
-\layout LyX-Code
-
-     icalparameter_kind kind);
-\layout LyX-Code
-
-void icalproperty_add_parameter(
-\layout LyX-Code
-
-     icalproperty* prop,
-\layout LyX-Code
-
-     icalparameter* parameter);
-\layout LyX-Code
-
-void icalproperty_remove_parameter(
-\layout LyX-Code
-
-     icalproperty* prop, 
-\layout LyX-Code
-
-     icalparameter_kind kind);
-\layout Standard
-
-Note that since there should be only one parameter of each type in a property,
- you will rarely need to use icalparameter_get_nect_paameter.
-\layout Subsubsection
-
-Working with values
-\layout Standard
-
-Values are typically part of a property, although they can exist on their
- own.
- You can manipulate them either as part of the property or independently.
-\layout Standard
-
-The most common way to work with values to is to manipulate them from they
- properties that contain them.
- This involves fewer routine calls and intermediate variables than working
- with them independently, and it is type-safe.
- 
-\layout Standard
-
-For each property, there are a _get_ and a _set_ routine that access the
- internal value.
- For instanace, for the UID property, the routines are: 
-\layout LyX-Code
-
-void icalproperty_set_uid(icalproperty* prop, const char* v)
-\layout LyX-Code
-
-const char* icalproperty_get_uid(icalproperty* prop)
-\layout Standard
-
-For multi-valued properties, like ATTACH, the value type is usually a struct
- or union that holds both possible types.
- 
-\layout Standard
-
-If you want to work with the underlying value object, you can get and set
- it with:
-\layout LyX-Code
-
-icalvalue* icalproperty_get_value (icalproperty* prop)
-\layout LyX-Code
-
-void icalproperty_set_value(icalproperty* prop, icalvalue* value);
-\layout Standard
-
-Icalproperty_get_value() will return a reference that you can manipulate
- with other icalvalue routines.
- Most of the time, you will have to know what the type of the value is.
- For instance, if you know that the value is a DATETIME type, you can manipulate
- it with: 
-\layout LyX-Code
-
-struct icaltimetype icalvalue_get_datetime(icalvalue* value); 
-\layout LyX-Code
-
-void icalvalue_set_datetime(icalvalue* value, struct icaltimetype v);
-\layout Standard
-
-When working with an extension property or value (and X-PROPERTY or a property
- that has the parameter VALUE=x-name ) the value type is always a string.
- To get and set the value, use: 
-\layout LyX-Code
-
-void icalproperty_set_x(icalproperty* prop, char* v); 
-\layout LyX-Code
-
-char* icalproperty_get_x(icalproperty* prop);
-\layout Standard
-
-All X properties have the type of ICAL_X_PROPERTY, so you will need these
- routines to get and set the name of the property:
-\layout LyX-Code
-
-char* icalproperty_get_x_name(icalproperty* prop)
-\layout LyX-Code
-
-void icalproperty_set_x_name(icalproperty* prop, char* name);
-\layout Subsubsection
-
-Checking Component Validity
-\layout Standard
-
-RFC 2446 defines rules for what properties must exist in a component to
- be used for transferring scheduling data.
- Most of these rules relate to the existence of properties relative to the
- METHOD property, which declares what operation a remote receiver should
- use to process a component.
- For instance, if the METHOD is REQUEST and the component is a VEVENT, the
- sender is probably asking the receiver to join in a meeting.
- In this case, RFC2446 says that the component must specify a start time
- (DTSTART) and list the receiver as an attendee (ATTENDEE).
- 
-\layout Standard
-
-Libical can check these restrictions with the routine:
-\layout LyX-Code
-
-int icalrestriction_check(icalcomponent* comp);
-\layout Standard
-
-This routine returns 0 if the component does not pass RFC2446 restrictions,
- or if the component is malformed.
- The component you pass in 
-\emph on 
-must
-\emph default 
- be a VCALENDAR, with one or more children, like the examples in RFC2446.
- 
-\layout Standard
-
-When this routine runs, it will insert new properties into the component
- to indicate any errors it finds.
- See section 6.5.3, X-LIC-ERROR for more information about these error properties.
- 
-\layout Subsubsection
-
-Converting Components to Text
-\layout Standard
-
-To create an RFC2445 compliant text representation of an object, use one
- of the *_as_ical_string() routines:
-\layout LyX-Code
-
-char* icalcomponent_as_ical_string (icalcomponent* component)
-\layout LyX-Code
-
-char* icalproperty_as_ical_string (icalproperty* property)
-\layout LyX-Code
-
-char* icalparameter_as_ical_string (icalparameter* parameter)
-\layout LyX-Code
-
-char* icalvalue_as_ical_string (icalvalue* value)
-\layout Standard
-
-In most cases, you will only use icalcomponent_as_ical_string (), since
- it will cascade and convert all of the parameters, properties and values
- that are attached to the root component.
-\layout Standard
-
-Icalproperty_as_ical_string() will terminate each line with the RFC2445
- specified line terminator 
-\begin_inset Quotes eld
-\end_inset 
-
-
-\backslash 
-
-\backslash 
-n
-\begin_inset Quotes erd
-\end_inset 
-
- However, if you compile with the symbol ICAL_UNIX_NEWLINE undefined, (
- it is defined by default) it will terminate lines with 
-\begin_inset Quotes eld
-\end_inset 
-
-
-\backslash 
-
-\backslash 
-n
-\backslash 
-
-\backslash 
-r
-\begin_inset Quotes erd
-\end_inset 
-
-
-\layout Standard
-
-Remember that the string returned by these routines is owned by the library,
- and will eventually be re-written.
- You should copy it if you want to preserve it.
- 
-\layout Subsection
-
-Time
-\layout Subsubsection
-
-Time structure
-\layout Standard
-
-LIbical defines it's own time structure for storing all dates and times.
- It would have been nice to re-use the C library's 
-\emph on 
-struct tm, 
-\emph default 
-but that structure does not differentiate between dates and times, and between
- local time and UTC.
- The libical structure is:
-\layout LyX-Code
-
-struct icaltimetype { 
-\layout LyX-Code
-
-  int year; 
-\layout LyX-Code
-
-  int month; 
-\layout LyX-Code
-
-  int day; 
-\layout LyX-Code
-
-  int hour; 
-\layout LyX-Code
-
-  int minute; 
-\layout LyX-Code
-
-  int second;
-\layout LyX-Code
-
-  int is_utc; /* 1-> time is in UTC timezone */
-\layout LyX-Code
-
-  int is_date; /* 1 -> interpret this as date.
- */ }; 
-\layout Standard
-
-The year, month, day, hour, minute and second fields hold the broken-out
- time values.
- The is_utc field distinguishes between times in UTC and a local time zone.
- The is_date field indicates if the time should be interpreted only as a
- date.
- If it is a date, the hour, minute and second fields are assumed to be zero,
- regardless of their actual vaules.
- 
-\layout Subsubsection
-
-Creating time structures
-\layout Standard
-
-There are several ways to create a new icaltimetype structure: 
-\layout LyX-Code
-
-struct icaltimetype icaltime_from_string(const char* str);
-\layout LyX-Code
-
-struct icaltimetype icaltime_from_timet(time_t v, int is_date);
-\layout LyX-Code
-
-\layout Standard
-
-Icaltime_from_string takes any RFC2445 compliant time string: 
-\layout LyX-Code
-
-struct icaltimetype tt = icaltime_from_string("19970101T103000");
-\layout Standard
-
-Icaltime_from_timet takes a timet value, representing seconds past the POSIX
- epoch, and a flag to indicate if the time is a date.
- Dates have an identical structure to a time, but the time portion ( hours,
- minuts and seconds ) is always 00:00:00.
- Dates act differently in sorting an comparision, and they have a different
- string representation in RFC2445.
- 
-\layout Subsubsection
-
-Time manipulating routines
-\layout Standard
-
-The null time value is used to indicate that the data in the structure is
- not a valid time.
-\layout LyX-Code
-
-struct icaltimetype icaltime_null_time(void);
-\layout LyX-Code
-
-int icaltime_is_null_time(struct icaltimetype t);
-\layout Standard
-
-It is sensible for the broken-out time fields to contain values that are
- not permitted in an ISO compliant time string.
- For instance, the seconds field can hold values greater than 59, and the
- hours field can hold values larger than 24.
- The excessive values will be rolled over into the next larger field when
- the structure is normalized.
- 
-\layout LyX-Code
-
-struct icaltimetype icaltime_normalize(struct icaltimetype t);
-\layout Standard
-
-Normalizing allows you to do arithmetic operations on time values.
- 
-\layout LyX-Code
-
-struct icaltimetype tt = icaltime_from_string(
-\begin_inset Quotes eld
-\end_inset 
-
-19970101T103000
-\begin_inset Quotes erd
-\end_inset 
-
-);
-\layout LyX-Code
-
-tt.days +=3 
-\layout LyX-Code
-
-tt.second += 70;
-\layout LyX-Code
-
-tt = icaltime_normalize(tt);
-\layout Standard
-
-There are several routines to get the day of the week or month, etc, from
- a time structure.
-\layout LyX-Code
-
-short icaltime_day_of_year(struct icaltimetype t); 
-\layout LyX-Code
-
-struct icaltimetype icaltime_from_day_of_year(short doy, short year);
-\layout LyX-Code
-
-short icaltime_day_of_week(struct icaltimetype t); 
-\layout LyX-Code
-
-short icaltime_start_doy_of_week(struct icaltimetype t);
-\layout LyX-Code
-
-short icaltime_week_number(short day_of_month, short month, short year);
-\layout LyX-Code
-
-struct icaltimetype icaltime_from_week_number(short week_number, short year);
-\layout LyX-Code
-
-short icaltime_days_in_month(short month,short year);
-\layout Standard
-
-Two routines convert time structures to and from the number of seconds since
- the POSIX epoch.
- The is_date field indicates whether or not the hour, minute and second
- fields should be used in the conversion.
-\layout LyX-Code
-
-struct icaltimetype icaltime_from_timet(time_t v, int is_date); 
-\layout LyX-Code
-
-time_t icaltime_as_timet(struct icaltimetype);
-\layout Standard
-
-The compare routine works exactly like strcmp, but on time structures.
- 
-\layout LyX-Code
-
-int icaltime_compare(struct icaltimetype a,struct icaltimetype b);
-\layout Standard
-
-The following routines convert between UTC and a named timezone.
- The tzid field must be a timezone name from the Olsen database, such as
- 
-\begin_inset Quotes eld
-\end_inset 
-
-America/Los_Angeles.
-\begin_inset Quotes erd
-\end_inset 
-
- 
-\layout Standard
-
-The utc_offset routine returns the offset of the named time zone from UTC,
- in seconds.
- 
-\layout Standard
-
-The tt parameter in the following routines indicates the date on which the
- conversion should be made.
- The tt parameter is necessary because timezones have many different rules
- for when daylight savings time is used, and these rules can change over
- time.
- So, for a single timezone one year may have daylight savings time on March
- 15, but for other years March 15 may be standard time, and some years may
- have standard time all year.
- 
-\layout LyX-Code
-
-int icaltime_utc_offset(struct icaltimetype tt, char* tzid);
-\layout LyX-Code
-
-int icaltime_local_utc_offset();
-\layout LyX-Code
-
-struct icaltimetype icaltime_as_utc(struct icaltimetype tt,char* tzid);
-\layout LyX-Code
-
-struct icaltimetype icaltime_as_zone(struct icaltimetype tt,char* tzid);
-\layout LyX-Code
-
-struct icaltimetype icaltime_as_local(struct icaltimetype tt);
-\layout Subsection
-
-Storing Objects
-\layout Standard
-
-The libical distribution includes a separate library, libicalss, that allows
- you to store iCal component data to disk in a variety of ways.
- This library also includes code to implement the CSTP protocol of CAP and
- has some routines for deciphering incomming messages.
- 
-\layout Standard
-
-The file storage routines are organized in an inheritance heirarchy that
- is rooted in icalset, with the derived class icalfileset and icaldirset.
- Icalfileset stores components to a file, while icaldirset stores components
- to multiple files, one per month based on DTSTAMP.
- Other storages classess, for storage to a heap or a mysql database are
- planned for the future.
- 
-\layout Standard
-
-All of the icalset derived classes have the same interface: 
-\layout LyX-Code
-
-\layout LyX-Code
-
-icaldirset* icaldirset_new(const char* path);
-\layout LyX-Code
-
-void icaldirset_free(icaldirset* store);
-\layout LyX-Code
-
-const char* icaldirset_path(icaldirset* store);
-\layout LyX-Code
-
-void icaldirset_mark(icaldirset* store);
-\layout LyX-Code
-
-icalerrorenum icaldirset_commit(icaldirset* store); 
-\layout LyX-Code
-
-icalerrorenum icaldirset_add_component(icaldirset* store, icalcomponent*
- comp);
-\layout LyX-Code
-
-icalerrorenum icaldirset_remove_component(icaldirset* store, icalcomponent*
- comp);
-\layout LyX-Code
-
-int icaldirset_count_components(icaldirset* store, icalcomponent_kind kind);
-\layout LyX-Code
-
-icalerrorenum icaldirset_select(icaldirset* store, icalcomponent* gauge);
-\layout LyX-Code
-
-void icaldirset_clear(icaldirset* store);
-\layout LyX-Code
-
-icalcomponent* icaldirset_fetch(icaldirset* store, const char* uid);
-\layout LyX-Code
-
-int icaldirset_has_uid(icaldirset* store, const char* uid);
-\layout LyX-Code
-
-icalcomponent* icaldirset_fetch_match(icaldirset* set, icalcomponent *c);
-\layout LyX-Code
-
-icalerrorenum icaldirset_modify(icaldirset* store, icalcomponent *oldc,
- icalcomponent *newc);
-\layout LyX-Code
-
-icalcomponent* icaldirset_get_current_component(icaldirset* store);
-\layout LyX-Code
-
-icalcomponent* icaldirset_get_first_component(icaldirset* store);
-\layout LyX-Code
-
-icalcomponent* icaldirset_get_next_component(icaldirset* store);
-\layout Subsubsection
-
-Creating a new set
-\layout Standard
-
-You can create a new set from either the base class or the direved class.
- From the base class use one of:
-\layout LyX-Code
-
-icalset* icalset_new_file(const char* path); 
-\layout LyX-Code
-
-icalset* icalset_new_dir(const char* path); 
-\layout LyX-Code
-
-icalset* icalset_new_heap(void); 
-\layout LyX-Code
-
-icalset* icalset_new_mysql(const char* path);
-\layout Standard
-
-You can also create a new set based on the derived class, For instance,
- with icalfileset: 
-\layout LyX-Code
-
-icalfileset* icalfileset_new(const char* path);
-\layout LyX-Code
-
-icalfileset* icalfileset_new_open(const char* path, int flags, mode_t mode);
-\layout Standard
-
-Icaset_new_file is identical to icalfileset_new.
- BOth routines will open an existing file for readinga and writing, or create
- a new file if it does not exist.
- Icalfilset_new_open takes the same arguments as the open() system routine
- and behaves in the same way.
- 
-\layout Standard
-
-The icalset and icalfilset objects are somewhat interchangable -- you can
- use an icalfileset* as an argument to any of the icalset routines.
-\layout Standard
-
-The following examples will all use icalfileset routines; using the other
- icalset derived classess will be similar.
- 
-\layout Subsubsection
-
-Adding, Finding and Removing Components 
-\layout Standard
-
-To add components to a set, use: 
-\layout LyX-Code
-
-icalerrorenum icalfileset_add_component(icalfileset* cluster, icalcomponent*
- child);
-\layout Standard
-
-The fileset keeps an inmemory copy of the components, and this set must
- be written back to the file ocassionally.
- There are two routines to manage this: 
-\layout LyX-Code
-
-void icalfileset_mark(icalfileset* cluster); 
-\layout LyX-Code
-
-icalerrorenum icalfileset_commit(icalfileset* cluster);
-\layout Standard
-
-Icalfileset_mark indicates that the in-memory components have changed.
- Calling the _add_component routine will call _mark automatically, but you
- may need to call it yourself if you have made a change to an existing component.
- The _commit routine writes the data base to disk, but only if it is marked.
- The _commit routine is called automatically when the icalfileset is freed.
- 
-\layout Standard
-
-To iterate through the components in a set, use: 
-\layout LyX-Code
-
-icalcomponent* icalfileset_get_first_component(icalfileset* cluster); 
-\layout LyX-Code
-
-icalcomponent* icalfileset_get_next_component(icalfileset* cluster);
-\layout LyX-Code
-
-icalcomponent* icalfileset_get_current_component (icalfileset* cluster);
-  
-\layout Standard
-
-These routines work like the corresponding routines from icalcomponent,
- except that their output is filtered through a gauge.
- A gauge is a test for the properties within a components; only components
- that pass the test are returned.
- A gauge can be constructed from a MINSQL string with:
-\layout LyX-Code
-
-icalgauge* icalgauge_new_from_sql(char* sql);
-\layout Standard
-
-Then, you can add the gauge to the set with : 
-\layout LyX-Code
-
-icalerrorenum icalfileset_select(icalfileset* store, icalgauge* gauge);
-\layout Standard
-
-Here is an example that puts all of these routines together: 
-\layout LyX-Code
-
-
-\latex no_latex 
-void test_fileset()
-\layout LyX-Code
-
-
-\latex no_latex 
-{
-\layout LyX-Code
-
-
-\latex no_latex 
-    icalfileset *fs;
-\layout LyX-Code
-
-
-\latex no_latex 
-    icalcomponent *c;
-\layout LyX-Code
-
-
-\latex no_latex 
-    int i;
-\layout LyX-Code
-
-
-\latex no_latex 
-    char *path = "test_fileset.ics";
-\layout LyX-Code
-
-
-\latex no_latex 
-    icalgauge  *g = icalgauge_new_from_sql(
-\layout LyX-Code
-
-
-\latex no_latex 
-        "SELECT * FROM VEVENT WHERE DTSTART > '20000103T120000Z' AND DTSTART
- <= '20000106T120000Z'");
-\layout LyX-Code
-
-
-\latex no_latex 
- 
-\layout LyX-Code
-
-    
-\latex no_latex 
-fs = icalfileset_new(path);
-\layout LyX-Code
-
-  
-\layout LyX-Code
-
-    
-\latex no_latex 
-for (i = 0; i!= 10; i++){
-\layout LyX-Code
-
-
-\latex no_latex 
-        c = make_component(i);
-\latex default 
- /* Make a new component where DTSTART has month of i */
-\layout LyX-Code
-
-
-\latex no_latex 
-        icalfileset_add_component(fs,c);
-\layout LyX-Code
-
-
-\latex no_latex 
-    }
-\layout LyX-Code
-
-\layout LyX-Code
-
-
-\latex no_latex 
-    icalfileset_commit(fs);
-\latex default 
- /* Write to disk */
-\layout LyX-Code
-
-\layout LyX-Code
-
-
-\latex no_latex 
-    icalfileset_select(fs,g);
-\latex default 
- /* Set the gauge to filter components */
-\layout LyX-Code
-
-
-\latex no_latex 
- 
-\layout LyX-Code
-
-
-\latex no_latex 
-    for (c = icalfileset_get_first_component(fs);
-\layout LyX-Code
-
-
-\latex no_latex 
-         c != 0;
-\layout LyX-Code
-
-
-\latex no_latex 
-         c = icalfileset_get_next_component(fs)){
-\layout LyX-Code
-
-
-\latex no_latex 
-        struct icaltimetype t = icalcomponent_get_dtstart(c);
-\layout LyX-Code
-
-
-\latex no_latex 
- 
-\layout LyX-Code
-
-
-\latex no_latex 
-        printf("%s
-\backslash 
-n",icaltime_as_ctime(t));
-\layout LyX-Code
-
-
-\latex no_latex 
-    }
-\layout LyX-Code
-
-    
-\latex no_latex 
-icalfileset_free(fs);
-\layout LyX-Code
-
-
-\latex no_latex 
-}
-\layout Subsubsection
-
-Other routines
-\layout Standard
-
-There are several other routines in the icalset interface, but they not
- fully implemented yet.
- 
-\layout Subsection
-
-
-\begin_inset LatexCommand \label{sec:memory}
-
-\end_inset 
-
-Memory Management 
-\layout Standard
-
-Libical relies heavily on dynamic allocation for both the core objects and
- for the strings used to hold values.
- Some of this memory the library caller owns and must free, and some of
- the memory is managed by the library.
- Here is a summary of the memory rules.
- 
-\layout Description
-
-1) If the function name has "new" in it, the caller gets control of the
- memory.
- ( such as icalcomponent_new(), or icalproperty_new_clone() ) 
-\layout Description
-
-2) If you got the memory from a routine with new in it, you must call the
- corresponding *_free routine to free the memory.
- ( Use icalcomponent_free() to free objects created with icalcomponent_new())
- 
-\layout Description
-
-3) If the function name has "add" in it, the caller is transferring control
- of the memory to the routine.
- ( icalproperty_add_parameter() )
-\layout Description
-
-4) If the function name has "remove" in it, the caller passes in a pointer
- to an object and after the call returns, the caller owns the object.
- So, before you call icalcomponent_remove_property(comp,foo), you do not
- own "foo" and after the call returns, you do.
- 
-\layout Description
-
-5) If the routine returns a string, libical owns the memory and will put
- it on a ring buffer to reclaim later.
- For example, icalcomponent_as_ical_string().
- You'd better strdup() it if you want to keep it, and you don't have to
- delete it.
- 
-\layout Subsection
-
-Error Handling
-\layout Standard
-
-Libical has several error handling mechanisms for the various types of programmi
-ng, semantic and syntactic errors you may encounter.
-\layout Subsubsection
-
-Return values
-\layout Standard
-
-Many library routines signal errors through their return values.
- All routines that return a pointer, such as icalcomponent_new(), will return
- 0 ( zero ) on a fatal error.
- Some routines will return a value of enum icalerrorenum.
- 
-\layout Subsubsection
-
-icalerrno
-\layout Standard
-
-Most routines will set the global error value icalerrno on errors.
- This variable is an enumeration; permissible values can be found in libical/ica
-lerror.h.
- If the routine returns an enum icalerrorenum, then the return value will
- be the same as icalerrno.
- You can use icalerror_strerror() to get a string that describes the error.
- The enumerations are:
-\layout Standard
-\added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
-multicol5
-12 2 0 0 -1 -1 -1 -1
-1 1 0 0
-1 0 0 0
-1 0 0 0
-1 0 0 0
-1 0 0 0
-1 0 0 0
-1 0 0 0
-1 0 0 0
-1 0 0 0
-1 0 0 0
-1 0 0 0
-1 1 0 0
-2 1 0 "" ""
-2 1 1 "" ""
-0 8 1 0 0 0 0 "" ""
-0 8 1 0 0 0 0 "" ""
-0 2 1 0 0 0 0 "" ""
-0 2 1 0 0 0 0 "" ""
-0 2 1 0 0 0 0 "" ""
-0 2 1 0 0 0 0 "" ""
-0 2 1 0 0 0 0 "" ""
-0 2 1 0 0 0 0 "" ""
-0 2 1 0 0 0 0 "" ""
-0 2 1 0 0 0 0 "" ""
-0 2 1 0 0 0 0 "" ""
-0 2 1 0 0 0 0 "" ""
-0 2 1 0 0 0 0 "" ""
-0 2 1 0 0 0 0 "" ""
-0 2 1 0 0 0 0 "" ""
-0 2 1 0 0 0 0 "" ""
-0 2 1 0 0 0 0 "" ""
-0 2 1 0 0 0 0 "" ""
-0 2 1 0 0 0 0 "" ""
-0 2 1 0 0 0 0 "" ""
-0 2 1 0 0 0 0 "" ""
-0 2 1 0 0 0 0 "" ""
-0 2 1 0 0 0 0 "" ""
-0 2 1 0 0 0 0 "" ""
-
-
-\newline 
-
-\newline 
-ICAL_BADARG_ERROR
-\newline 
-One of the argument to a routine was bad.
- Typically for a null pointer.
-\newline 
-ICAL_NEWFAILED_ERROR
-\newline 
-A new() or malloc() failed
-\newline 
-ICAL_MALFORMEDDATA_ERROR
-\newline 
-An input string was not in the correct format
-\newline 
-ICAL_PARSE_ERROR
-\newline 
-the parser failed to parse an incomming component
-\newline 
-ICAL_INTERNAL_ERROR 
-\newline 
-Largely equivalent to an assert; it indicates a bug in the libical code
-\newline 
-ICAL_FILE_ERROR
-\newline 
-A file operation failed.
- Check errno for more detai
-\newline 
-ICAL_ALLOCATION_ERROR
-\newline 
-
-\newline 
-ICAL_NO_ERROR
-\newline 
-No error has occurred
-\newline 
-ICAL_TIMEDOUT_ERROR
-\newline 
-Failed to acquire a lock on a file, or the CSTP protocol timed out.
- 
-\newline 
-ICAL_MULTIPLEINCLUSION_ERROR 
-\newline 
-
-\newline 
-ICAL_UNKNOWN_ERROR
-\newline 
-
-\layout Subsubsection
-
-X-LIC-ERROR and X-LIC-INVALID-COMPONENT
-\layout Standard
-
-The library handles semantic and syntactic errors in components by inserting
- errors properties into the components.
- If the parser cannot parse incoming text ( a syntactic error ) or if the
- icalrestriction_check() routine indicates that the component does not meet
- the requirements of RFC2446 ( a semantic error) the library will insert
- properties of the type X-LIC-ERROR to describe the error.
- Here is an example of the error property: 
-\layout LyX-Code
-
-X-LIC-ERROR;X-LIC-ERRORTYPE=INVALID_ITIP :Failed iTIP restrictions for property
- DTSTART.
- 
-\layout LyX-Code
-
-Expected 1 instances of the property and got 0 
-\layout Standard
-
-This error resulted from a call to icalrestriction_check(), which discovered
- that the component does not have a DTSTART property, as required by RFC2445.
- 
-\layout Standard
-
-There are a few routines to manipulate error properties:
-\layout Standard
-\LyXTable
-multicol5
-10 2 0 0 -1 -1 -1 -1
-1 1 0 0
-0 0 0 0
-0 1 1 0
-0 0 0 0
-0 1 1 0
-0 1 0 0
-0 1 1 0
-0 1 0 0
-0 1 1 0
-0 1 1 0
-2 1 1 "" ""
-2 1 1 "3in" ""
-0 2 1 1 0 0 0 "" ""
-0 8 1 0 0 0 0 "" ""
-0 2 1 0 0 0 0 "" ""
-0 2 1 0 1 0 1 "" ""
-0 2 1 0 0 0 0 "" ""
-0 2 1 0 0 0 1 "" ""
-0 2 1 0 0 0 0 "" ""
-0 2 1 0 1 0 0 "" ""
-0 2 1 0 0 0 0 "" ""
-0 2 1 0 0 0 0 "" ""
-0 2 1 0 0 0 0 "" ""
-0 2 1 0 1 0 0 "" ""
-0 2 1 0 0 0 0 "" ""
-0 2 1 0 0 0 0 "" ""
-0 2 1 0 0 0 0 "" ""
-0 2 1 1 1 0 1 "" ""
-0 2 1 0 0 0 0 "" ""
-0 2 1 1 1 0 1 "" ""
-0 2 1 0 0 0 0 "" ""
-0 2 1 1 0 0 1 "" ""
-
-Routine
-\newline 
-Purpose
-\newline 
-void icalrestriction_check()
-\newline 
-Check a component against RFC2446 and insert
-\newline 
-
-\newline 
-error properties to indicate non compliance
-\newline 
-int icalcomponent_count_errors()
-\newline 
-Return the number of error properties 
-\newline 
-
-\newline 
-in a component
-\newline 
-void icalcomponent_strip_errors()
-\newline 
-Remove all error properties in as
-\newline 
-
-\newline 
-component
-\newline 
-void icalcomponent_convert_errors()
-\newline 
-Convert some error properties into 
-\newline 
-
-\newline 
-REQUESTS-STATUS proprties to indicate the inability to 
-\newline 
-
-\newline 
-process the component as an iTIP request.
- 
-\layout Standard
-
-The types of errors are listed in icalerror.h.
- They are:
-\layout LyX-Code
-
-ICAL_XLICERRORTYPE_COMPONENTPARSEERROR
-\layout LyX-Code
-
-ICAL_XLICERRORTYPE_PARAMETERVALUEPARSEERROR
-\layout LyX-Code
-
-ICAL_XLICERRORTYPE_PARAMETERNAMEPARSEERROR 
-\layout LyX-Code
-
-ICAL_XLICERRORTYPE_PROPERTYPARSEERROR
-\layout LyX-Code
-
-ICAL_XLICERRORTYPE_VALUEPARSEERROR
-\layout LyX-Code
-
-ICAL_XLICERRORTYPE_UNKVCALPROP
-\layout LyX-Code
-
-ICAL_XLICERRORTYPE_INVALIDITIP
-\layout Standard
-
-The libical parser will generate the error that end in PARSEERROR when it
- encounters garbage in the input steam.
- ICAL_XLICERRORTYPE_INVALIDITIP is inserted by icalrestriction_check(),
- and ICAL_XLICERRORTYPE_UNKVCALPROP is generated by icalvcal_convert() when
- it encounters a vCal property that it cannot convert or does not know about.
- 
-\layout Standard
-
-Icalcomponent_convert_errors() converts some of the error properties in
- a component into REQUEST-STATUS properties that indicate a failure.
- As of libical version0.18, this routine only convert *PARSEERROR errors
- and it always generates a 3.x ( failure ) code.
- This makes it more of a good idea than a really useful bit of code.
- 
-\layout Subsubsection
-
-ICAL_ERRORS_ARE_FATAL and icalerror_errors_are_fatal
-\layout Standard
-
-If the global variable icalerror_errors_are_fatal is set to 1, then any
- error condition will cause the program to abort.
- The abort occurs in icalerror_set_errno(), and is done with an assert(0)
- if NDEBUG is undefined, and with icalerror_crash_here if NDEBUG is defined.
- The default value of icalerror_errors_are_fatal is 1 when ICAL_ERRORS_ARE_FATAL
- is defined, and 0 otherwise.
- Since ICAL_ERRORS_ARE_FATAL is defined by default, icalerror_errors_are_fatal
- is also defined by default.
- 
-\layout Subsection
-
-Naming Standard
-\layout Standard
-
-Structures that you access with the 
-\begin_inset Quotes eld
-\end_inset 
-
-struct
-\begin_inset Quotes erd
-\end_inset 
-
- keyword, such as 
-\begin_inset Quotes eld
-\end_inset 
-
-struct icaltimetype
-\begin_inset Quotes erd
-\end_inset 
-
- are things that you are allowed to see inside and poke at.
- 
-\layout Standard
-
-Structures that you access though a typedef, such as 
-\begin_inset Quotes eld
-\end_inset 
-
-icalcomponent
-\begin_inset Quotes erd
-\end_inset 
-
- are things where all of the data is hidden.
- 
-\layout Standard
-
-Component names that start with 
-\begin_inset Quotes eld
-\end_inset 
-
-V
-\begin_inset Quotes erd
-\end_inset 
-
- are part of RFC 2445 or another iCal standard.
- Component names that start with 
-\begin_inset Quotes eld
-\end_inset 
-
-X
-\begin_inset Quotes erd
-\end_inset 
-
- are also part of the spec, but they are not actually components in the
- spec.
- However, they look and act like components, so they are components in libical.
- Names that start with 
-\begin_inset Quotes eld
-\end_inset 
-
-XLIC
-\begin_inset Quotes erd
-\end_inset 
-
- or 
-\begin_inset Quotes eld
-\end_inset 
-
-X-LIC
-\begin_inset Quotes erd
-\end_inset 
-
- are not part of any iCal spec.
- They are used internally by libical.
- 
-\layout Standard
-
-Enums that identify a component, property, value or parameter end with 
-\begin_inset Quotes eld
-\end_inset 
-
-_COMPONENT,
-\begin_inset Quotes erd
-\end_inset 
-
- 
-\begin_inset Quotes eld
-\end_inset 
-
-_PROPERTY,
-\begin_inset Quotes erd
-\end_inset 
-
- 
-\begin_inset Quotes eld
-\end_inset 
-
-_VALUE,
-\begin_inset Quotes erd
-\end_inset 
-
- or 
-\begin_inset Quotes eld
-\end_inset 
-
-_PARAMETER
-\begin_inset Quotes erd
-\end_inset 
-
-s
-\layout Standard
-
-Enums that identify a parameter value have the name of the parameter as
- the second word.
- For instance: ICAL_ROLE_REQPARTICIPANT or ICAL_PARTSTAT_ACCEPTED.
-\layout Standard
-
-The enums for the parts of a recurarance rule and request statuses are irregular.
- 
-\layout Section
-
-Hacks and Bugs
-\layout Standard
-
-There are a lot of hacks in the library -- bits of code that I am not proud
- of and should probably be changed.
- These are marked with the comment string 
-\begin_inset Quotes eld
-\end_inset 
-
-HACK.
-\begin_inset Quotes erd
-\end_inset 
-
-
-\the_end
diff --git a/libkcal/libical/doc/UsingLibical.ps b/libkcal/libical/doc/UsingLibical.ps
deleted file mode 100644
index 6223144e..00000000
--- a/libkcal/libical/doc/UsingLibical.ps
+++ /dev/null
@@ -1,2327 +0,0 @@
-%!PS-Adobe-2.0
-%%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software
-%%Title: UsingLibical.dvi
-%%Pages: 22
-%%PageOrder: Ascend
-%%BoundingBox: 0 0 612 792
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: dvips -t letter -o
-%+ /usr/local/home/eric/proj/FreeAssociation/libical/doc/UsingLibical.ps
-%+ UsingLibical.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource:  TeX output 2001.01.09:0928
-%%BeginProcSet: texc.pro
-%!
-/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
-N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
-mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
-0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
-landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
-mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
-matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
-exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
-statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
-N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
-/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
-/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
-array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
-df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
-definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
-}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
-B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
-1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3
-1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx
-0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx
-sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{
-rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp
-gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B
-/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{
-/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
-A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
-get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse}
-ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp
-fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17
-{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add
-chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{
-1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop}
-forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
-/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
-}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
-bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
-mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
-SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
-userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
-1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{
-/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
-(LaserWriter 16/600)]{A length product length le{A length product exch 0
-exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
-end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
-grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
-imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
-exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
-fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
-delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M}
-B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{
-p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S
-rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
-
-%%EndProcSet
-TeXDict begin 40258431 52099146 1000 600 600 (UsingLibical.dvi)
-@start
-%DVIPSBitmapFont: Fa ecti1000 10 7
-/Fa 7 118 df<EA03C0EA07F0120F121F13F8A313F0EA07B0EA003013701360A213E013
-C01201EA038013005A120E5A5A5A5A5A0D197A8819>44 D<147F903803FFC090380FC1E0
-90381F0070017E13784913383901F801F83803F003120713E0120FD81FC013F091C7FC48
-5AA2127F90C8FCA35A5AA45AA3153015381578007C14F0007EEB01E0003EEB03C0EC0F80
-6CEB3E00380F81F83803FFE0C690C7FC1D2677A426>99 D<D801E001FEEB07F03C07F803
-FF801FFC3C0E3C0F07C0783E3C1E3E3C03E1E01F261C1F78D9F3C013803C383FF001F780
-0F02E01400007801C013FE007018C002805B4A4848EB1F80EAF07FD8E07E5CA200000207
-143F01FE1700495CA2030F5C0001177E495C18FE031F5C120349DA8001131C18F8033F15
-3C00070403133849020013F0A24B1570000F17E049017E15F019E003FEECE1C0001FEE01
-E34949903800FF000007C70038143C3E2679A444>109 D<3903C003F0390FF01FFC391E
-783C0F381C7C703A3C3EE03F8038383FC0EB7F800078150000701300151CD8F07E90C7FC
-EAE0FE5BA2120012015BA312035BA312075BA3120F5BA3121F5BA3123F90C9FC120E2126
-79A423>114 D<14FE903807FF8090380F83C090383E00E04913F00178137001F813F000
-01130313F0A215E00003EB01C06DC7FC7FEBFFC06C13F814FE6C7F6D13807F010F13C013
-00143F141F140F123E127E00FE1480A348EB1F0012E06C133E00705B6C5B381E03E06CB4
-5AD801FEC7FC1C267AA422>I<EB0380EB07C0130FA4131F1480A3133F1400A35B137E00
-7FB5FCA2B6FC3800FC00A312015BA312035BA312075BA3120F5BA3121FEB801CA2143C00
-3F1338EB0078147014F014E0EB01C0EA3E03381F0780380F0F00EA07FCEA01F0183579B3
-1C>I<13F8D803FEEB01C0D8078FEB03E0390E0F8007121E121C0038140F131F007815C0
-1270013F131F00F0130000E015805BD8007E133FA201FE14005B5D120149137EA215FE12
-0349EBFC0EA20201131E161C15F813E0163CD9F003133814070001ECF07091381EF8F03A
-00F83C78E090393FF03FC090390FC00F00272679A42D>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fb ecbx1200 12 42
-/Fb 42 122 df<B612F8A91D097F9A25>45 D<EA07C0EA1FF0EA3FF8EA7FFCEAFFFEA7EA
-7FFCEA3FF8EA1FF0EA07C00F0F788E1F>I<EC03C01407141F147FEB03FF133FB6FCA413
-C3EA0003B3B3ADB712FCA5264177C038>49 D<ECFFE0010F13FE013F6D7E90B612E00003
-15F82607FC0313FE3A0FE0007FFFD81F806D138048C7000F13C0488001C015E001F07F00
-FF6E13F07F17F881A46C5A6C5A6C5AC9FC17F05DA217E05D17C04B13804B1300A2ED1FFC
-4B5A5E4B5A4B5A4A90C7FC4A5A4A5AEC0FF04A5AEC3F804AC7127814FE495A494814F8D9
-07E014F0495A495A49C8FC017C140149140348B7FC4816E05A5A5A5A5AB8FC17C0A42D41
-7BC038>I<ECFFF0010713FF011F14C0017F14F049C66C7ED803F8EB3FFED807E06D7E81
-D80FF86D138013FE001F16C07FA66C5A6C4815806C485BC814005D5E4B5A4B5A4B5A4A5B
-020F1380902607FFFEC7FC15F815FF16C090C713F0ED3FFCED0FFEEEFF80816F13C017E0
-A26F13F0A217F8A3EA0FC0EA3FF0487EA2487EA217F0A25D17E06C5A494913C05BD83F80
-491380D81FF0491300D80FFEEBFFFE6CB612F800015D6C6C14C0011F49C7FC010113E02D
-427BC038>I<163FA25E5E5D5DA25D5D5D5DA25D92B5FCEC01F7EC03E7140715C7EC0F87
-EC1F07143E147E147C14F8EB01F0EB03E0130714C0EB0F80EB1F00133E5BA25B485A485A
-485A120F5B48C7FC123E5A12FCB91280A5C8000F90C7FCAC027FB61280A531417DC038>
-I<0007150301E0143F01FFEB07FF91B6FC5E5E5E5E5E16804BC7FC5D15E092C8FC01C0C9
-FCAAEC3FF001C1B5FC01C714C001DF14F09039FFE03FFC9138000FFE01FC6D7E01F06D13
-804915C0497F6C4815E0C8FC6F13F0A317F8A4EA0F80EA3FE0487E12FF7FA317F05B5D6C
-4815E05B007EC74813C0123E003F4A1380D81FC0491300D80FF0495AD807FEEBFFFC6CB6
-12F0C65D013F1480010F01FCC7FC010113C02D427BC038>I<4AB47E021F13F0027F13FC
-49B6FC01079038807F8090390FFC001FD93FF014C04948137F4948EBFFE048495A5A1400
-485A120FA248486D13C0EE7F80EE1E00003F92C7FCA25B127FA2EC07FC91381FFF8000FF
-017F13E091B512F89039F9F01FFC9039FBC007FE9039FF8003FF17804A6C13C05B6F13E0
-A24915F0A317F85BA4127FA5123FA217F07F121FA2000F4A13E0A26C6C15C06D4913806C
-018014006C6D485A6C9038E01FFC6DB55A011F5C010714C0010191C7FC9038003FF02D42
-7BC038>I<121E121F13FC90B712FEA45A17FC17F817F017E017C0A2481680007EC8EA3F
-00007C157E5E00785D15014B5A00F84A5A484A5A5E151FC848C7FC157E5DA24A5A14035D
-14074A5AA2141F5D143FA2147F5D14FFA25BA35B92C8FCA35BA55BAA6D5A6D5A6D5A2F44
-7AC238>I<EE1F80A24C7EA24C7EA34C7EA24B7FA34B7FA24B7FA34B7F169F031F80161F
-82033F80ED3E07037E80157C8203FC804B7E02018115F0820203814B137F0207815D173F
-020F814B7F021F8292C77EA24A82023E80027E82027FB7FCA291B87EA2498302F0C8FCA2
-0103834A157F0107834A153FA249488284011F8491C97E4984133E017E82B6020FB612F0
-A54C457CC455>65 D<DCFFF01470031F01FF14F04AB6EAE0010207EDF803023FEDFE0791
-B539E001FF0F4949C7EA3F9F010701F0EC0FFF4901C0804990C87E494881494881494816
-7F4849163F4849161F5A4A160F485B19074890CAFC19035A5BA2007F1801A34994C7FC12
-FFAE127F7F1AF0A2123FA27F6C18011AE06C7F19036C6D17C06E16077E6C6DEE0F806C6D
-EE1F006D6C5E6D6C167E6D6C6C5D6D6D4A5A6D01F0EC07F0010101FEEC1FE06D903AFFF0
-01FF80023F90B6C7FC020715FC020115F0DA001F1480030001F8C8FC44467AC451>67
-D<BA12F8A485D8001F90C71201EF003F180F180318011800A2197E193EA3191EA21778A2
-85A405F890C7FCA316011603161F92B5FCA5ED001F160316011600A2F101E01778A2F103
-C0A494C7FC1907A21A80A2190FA2191FA2193FF17F0061601807181F4DB5FCBBFC61A443
-447DC34A>69 D<B7D88003B612FEA526003FFEC9EBF800B3A791B9FCA54AC9FCB3AAB7D8
-8003B612FEA54F447CC358>72 D<B712F0A526003FFECAFCB3B1F00780A4180F1900A460
-A360A2187EA218FE170117031707171F177FEE03FFB95AA539447CC343>76
-D<B500FE067FB512806E95B6FCA26F5EA2D8003F50C7FC013D6DEE03DFA2013C6DEE079F
-A26E6CEE0F1FA26E6C161EA26E6C163CA36E6C1678A26E6C16F0A26E6DEC01E0A26E6DEC
-03C0A36E6DEC0780A26F6CEC0F00A26F6C141EA26F6C5CA36F6C5CA26F6C5CA26F6D485A
-A26F6D485AA26F6D485AA3706C48C7FCA293383FF81EA2706C5AA2706C5AA3706C5AA270
-5BA2705BA2705BA2B6057FB6128071C7FCA2173E171C61447CC36A>I<B64BB512FE8181
-A281D8003F6D91C7EA780081013D7F81133C6E7E6E7F6E7F6E7F6E7F82806E7F6E7F6F7E
-6F7F83816F7F6F7F6F7F6F7F6F7F8382707F707F707F707F8482707F707F717E71138071
-13C019E0837113F07113F87113FC7113FE19FF847213F884848484A28484197F193F191F
-A2190F1907B61603190119001A78A24F447CC358>I<923807FFC092B512FE0207ECFFC0
-021F15F091267FFE0013FC902601FFF0EB1FFF01070180010313C04990C76C7FD91FFC6E
-6C7E49486F7E49486F7E01FF8348496F7E48496F1380A248496F13C0A24890C96C13E0A2
-4819F04982003F19F8A3007F19FC49177FA400FF19FEAD007F19FC6D17FFA3003F19F8A2
-6D5E6C19F0A26E5D6C19E0A26C6D4B13C06C19806E5D6C6D4B13006C6D4B5A6D6C4B5A6D
-6C4B5A6D6C4A5B6D01C001075B6D01F0011F5B010101FE90B5C7FC6D90B65A023F15F802
-0715C002004AC8FC030713C047467AC454>I<B9FC18F018FE727E19E0D8001F90C7000F
-7F05017F716C7E727E727E721380A21AC084A21AE0A91AC0A24E1380A21A00604E5A4E5A
-4D485A050F5B92B712C096C7FC18FC18C092CBFCB3A7B712E0A543447DC34D>I<DAFFE0
-131C010701FE133C013F9038FF807C90B6EAE0FC4815F9489038801FFF3907FC00014848
-EB007F4848143F4848140F491407007F15035B1601160012FF177CA27FA26D153C7F7F6D
-92C7FC6C7EEBFFE014FE6CEBFFF015FF6C15E016FC6C816C6F7E6C826C826C6C81011F81
-0107811300020F80140003077FED007F82040F1380828212F082A282A27EA218007EA26C
-5D6C5E6D14036D5D6D140701F84A5A01FFEC3FF002F8EBFFE0486CB65AD8FC1F92C7FCD8
-F80714FC48C614F0480107138031467AC43E>83 D<003FBA12E0A59026FE000FEB8003D8
-7FE09338003FF049171F90C71607A2007E1803007C1801A300781800A400F819F8481978
-A5C81700B3B3A20107B8FCA545437CC24E>I<B792B6FCA526003FFECAEAFC00806D606F
-15016D608119036D606F15076D606F150F6D6081191F6D6D93C7FC61027F163E6F157E02
-3F167C8119FC6E6D5C18016E5E7013036E5E8218076E6D5C180F6E5E70131F6E93C8FC70
-5B037F143E82187E033F147C7013FC6F5C17816F5C17C117C36F5C17E76F5C17FF6F5CA3
-6F91C9FCA2705AA2705AA3705AA2705AA2705AA250457EC355>86
-D<903801FFE0011F13FE017F6D7E48B612E03A03FE007FF84848EB1FFC6D6D7E486C6D7E
-A26F7FA36F7F6C5A6C5AEA00F090C7FCA40203B5FC91B6FC1307013F13F19038FFFC0100
-0313E0481380381FFE00485A5B127F5B12FF5BA35DA26D5B6C6C5B4B13F0D83FFE013EEB
-FFC03A1FFF80FC7F0007EBFFF86CECE01FC66CEB8007D90FFCC9FC322F7DAD36>97
-D<EB7FC0B5FCA512037EB1ED0FF892B57E02C314E002CF14F89139DFC03FFC9139FF000F
-FE02FCEB03FF4A6D13804A15C04A6D13E05CEF7FF0A218F8173FA318FCAC18F8A2177F18
-F0A3EFFFE06E15C06E5B6E491380027C491300496C495A903AFC1FC07FFC496CB512F0D9
-F00314C049C691C7FCC8EA1FF036467DC43E>I<EC3FFC49B512C0010F14F0013F14FC90
-397FF003FE9039FFC001FF0003495A48494813805B120F485AA2485A6F1300007F6E5AED
-00784991C7FCA212FFAC6C7EA3123F6DEC03C0A26C6C1407000F16806D140F6C6DEB1F00
-6C6D133E6C01F05B3A007FFC03F86DB55A010F14C0010391C7FC9038003FF82A2F7CAD32
->I<EE03FEED07FFA5ED001F160FB1EC3FE0903803FFFC010FEBFF8F013F14CF9039FFF8
-07FF48EBC00148903880007F4890C7123F4848141F49140F121F485AA3127F5BA212FFAC
-127FA37F123FA26C6C141FA26C6C143F0007157F6C6C91B5FC6CD9C00314FC6C9038F01F
-EF6DB5128F011FEBFE0F010713F89026007FC0EBF80036467CC43E>I<EC3FF80103B57E
-010F14E0013F8090397FF83FF89039FFC007FC48496C7E48496C7E48486D1380485A001F
-ED7FC05B003FED3FE0A2127F5B17F0161F12FFA290B7FCA401F0C9FCA5127FA27FA2123F
-17F06C7E16016C6C15E06C6C14036C6DEB07C06C6DEB0F806C01F0EB3F0090397FFE01FE
-011FB55A010714F0010114C09026001FFEC7FC2C2F7DAD33>I<EDFF80020F13E0027F13
-F049B512F849EB8FFC90390FFE0FFE90381FFC1F14F8133FEB7FF0A2ED0FFCEBFFE0ED03
-F0ED00C01600ABB612F8A5C601E0C7FCB3B0007FEBFFE0A527467DC522>I<DAFFE0137E
-010F9039FE03FF80013FEBFF8F90B812C048D9C07F133F489038001FF84848EB0FFC4848
-903907FE1F80001F9238FF0F00496D90C7FCA2003F82A8001F93C7FCA26D5B000F5D6C6C
-495A6C6C495A6C9038C07FF04890B55A1680D8078F49C8FC018013E0000F90CAFCA47F7F
-7F90B612C016FC6CEDFF8017E06C826C16FC7E000382000F82D81FF0C77ED83FC0140748
-48020113808248C9FC177FA46D15FF007F17006D5C6C6C4A5A6C6C4A5AD80FFEEC3FF83B
-07FFC001FFF0000190B612C06C6C92C7FC010F14F8D9007F90C8FC32427DAC38>I<EB7F
-C0B5FCA512037EB1ED07FE92383FFF8092B512E002C114F89139C7F03FFC9138CF801F91
-39DF000FFE14DE14FC4A6D7E5CA25CA35CB3A7B60083B512FEA537457CC43E>I<137C48
-B4FC4813804813C0A24813E0A56C13C0A26C13806C1300EA007C90C7FCAAEB7FC0EA7FFF
-A512037EB3AFB6FCA518467CC520>I<EC03E0EC0FF8EC1FFCEC3FFEA2EC7FFFA5EC3FFE
-A2EC1FFCEC0FF8EC03E091C7FCAAEC01FF0103B5FCA5EB000F80B3B3A7EA1F80EA3FC0EA
-7FE0EAFFF0EC0FFEA215FC141F01E013F8007FEB3FF0393FC0FFE06CB512806C14000003
-13FCC613C0205A86C522>I<EB7FC0B5FCA512037EB3B3B3A3B61280A519457CC420>108
-D<90277F8007FEEC0FFCB590263FFFC090387FFF8092B5D8F001B512E002816E4880913D
-87F01FFC0FE03FF8913D8FC00FFE1F801FFC0003D99F009026FF3E007F6C019E6D013C13
-0F02BC5D02F86D496D7EA24A5D4A5DA34A5DB3A7B60081B60003B512FEA5572D7CAC5E>
-I<90397F8007FEB590383FFF8092B512E0028114F8913987F03FFC91388F801F00039039
-9F000FFE6C139E14BC02F86D7E5CA25CA35CB3A7B60083B512FEA5372D7CAC3E>I<EC1F
-FC49B512C0010714F0011F14FC90397FF80FFF9026FFC0017F48496C7F4848C7EA3FE000
-078248486E7E49140F001F82A2003F82491407007F82A400FF1780AA007F1700A46C6C4A
-5AA2001F5E6D141F000F5E6C6C4A5AA26C6C6CEBFFE06C6D485B27007FF80F90C7FC6DB5
-5A010F14F8010114C09026001FFCC8FC312F7DAD38>I<90397FC00FF8B590B57E02C314
-E002CF14F89139DFC03FFC9139FF001FFE000301FCEB07FF6C496D13804A15C04A6D13E0
-5C7013F0A2EF7FF8A4EF3FFCACEF7FF8A318F017FFA24C13E06E15C06E5B6E4913806E49
-13006E495A9139DFC07FFC02CFB512F002C314C002C091C7FCED1FF092C9FCADB67EA536
-407DAC3E>I<90387F807FB53881FFE0028313F0028F13F8ED8FFC91389F1FFE000313BE
-6C13BC14F8A214F0ED0FFC9138E007F8ED01E092C7FCA35CB3A5B612E0A5272D7DAC2E>
-114 D<90391FFC038090B51287000314FF120F381FF003383FC00049133F48C7121F127E
-00FE140FA215077EA27F01E090C7FC13FE387FFFF014FF6C14C015F06C14FC6C80000380
-6C15806C7E010F14C0EB003F020313E0140000F0143FA26C141F150FA27EA26C15C06C14
-1FA26DEB3F8001E0EB7F009038F803FE90B55A00FC5CD8F03F13E026E007FEC7FC232F7C
-AD2C>I<EB01E0A51303A41307A2130FA2131FA2133F137F13FF1203000F90B51280B7FC
-A4C601E0C7FCB3A3ED01E0A9150302F013C0137F150790393FF80F8090391FFC1F006DB5
-FC6D13FC01015B9038003FE023407EBE2C>I<D97FC049B4FCB50103B5FCA50003EC000F
-6C81B3A85EA25EA25E7E6E491380017FD901F713FE9138F807E76DB512C7010F14070103
-13FE9026007FF0EBFC00372E7CAC3E>I<B500FE90383FFFF0A5C601F0903803E0006D6C
-495A6D6C495A011F4AC7FC6E5B6D6C137E6DEB807C6D6D5A6DEBC1F0EDE3E06DEBF7C06E
-B45A806E90C8FC5D6E7E6E7F6E7FA24A7F4A7F8291381F3FFCEC3E1F027C7F4A6C7E4948
-6C7F01036D7F49487E02C08049486C7F49C76C7E013E6E7E017E141FB500E090B512FCA5
-362C7EAB3B>120 D<B6903803FFFCA5000101E09038003E006C163C80017F5D8017F801
-3F5D6E1301011F5D6E1303010F5D6E13076D5DED800F6D92C7FC15C05E6DEBE01E163E6D
-143CEDF07C027F1378EDF8F8023F5B15FD021F5B15FF6E5BA36E5BA26E90C8FCA26E5AA2
-6E5AA21578A215F85D14015D001F1303D83F805B387FC007D8FFE05B140F92C9FC5C143E
-495A387FC1F8EB07F06CB45A6C5B000790CAFCEA01FC36407EAB3B>I
-E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fc ectt1000 10 78
-/Fc 78 123 df<121FEA3F80EA7FC0EAFFE0B0EA7FC0AEEA1F00C7FCA7121FEA3F80EA7F
-C0EAFFE0A5EA7FC0EA3F80EA1F000B3470B32C>33 D<003C131E007F137F481480A66C14
-00A6007E7FA6003E133EA3003C131E001C131C191977B32C>I<EA0F80EA1FE0EA3FF012
-7F13F8A213FCA2123F121F120FEA007CA313FC13F8A2120113F01203EA07E0A2EA0FC0EA
-3F80127FEAFF005A12F812700E1D71B22C>39 D<143814FC13011303EB07F8EB0FF0EB1F
-C0EB3F80EB7F0013FE485A485A5B12075B120F5B485AA2123F90C7FCA25A127EA312FE5A
-AC7E127EA3127F7EA27F121FA26C7E7F12077F12037F6C7E6C7E137FEB3F80EB1FC0EB0F
-F0EB07F8EB03FC130113001438164272B92C>I<127012FC7E7E6C7E6C7EEA0FE06C7E6C
-7E6C7E6C7E137F7F1480131F14C0130FEB07E0A214F01303A214F81301A314FC1300AC13
-0114F8A3130314F0A2130714E0A2EB0FC0131F1480133F14005B13FE485A485A485A485A
-EA3FC0485A48C7FC5A5A1270164279B92C>I<EB0380497EA60020140800F8143E00FE14
-FE00FF13C1EBC7C7EBE7CF003FB512F8000F14E0000314806C140038007FFCA248B5FC48
-1480000F14E0003F14F839FFE7CFFEEBC7C7EB07C100FE13C000F8143E00201408000014
-00A66D5A1F247AAA2C>I<147014F8AF003FB612E0B712F8A4C700F8C7FCB0147025267D
-AB2C>I<EA0F80EA1FE0EA3FF0EA7FF8A213FCA3123F121F120F120013F8A21201EA03F0
-1207EA1FE0EA7FC0EAFF80130012FC12700E17718A2C>I<007FB512F0B612F8A36C14F0
-1D0579942C>I<121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F000B0B708A2C>I<1507
-ED0F80A2151F16005D153E157E157CA215FC5D14015D14035D14075D140F5D141F92C7FC
-5C143EA2147E147C14FC5C13015C13035C13075C130F5C131F91C8FC5B133EA2137E137C
-13FC5B12015B12035B12075B120F5B121F90C9FCA25A123E127E127C12FC5AA212702141
-7BB92C>I<EB03F8EB0FFE90383FFF80497F90B57E3901FE0FF03903F803F848486C7EEB
-E0004848137EA248487FA248C7EA1F80A2003E140F007E15C0A3007C140700FC15E0AC6C
-140F007E15C0A46CEC1F80A36C6CEB3F00A26C6C137E6D13FE00075CEBF0016C6C485A39
-01FE0FF06CB55A6D5B6D5BD90FFEC7FCEB03F823357CB32C>I<1307497EA2131FA2133F
-137F13FF5A1207127FB5FC13DF139FEA7C1F1200B3AE007FB512E0B612F0A36C14E01C34
-77B32C>I<EB0FF890387FFF8048B512E00007804814FC391FF80FFE393FE001FF903880
-007F48C7EA3F80007E141F00FE15C0150F6C15E01507A3127E123CC8FCA2150F16C0151F
-1680153F16005D15FE4A5A14034A5A4A5A4A5A4A5AECFF804948C7FC495A495A495AEB3F
-E0EB7F8049C8FC485A4848EB03C04848EB07E0EA1FE0485A48B6FCB7FCA36C15C023347C
-B32C>I<EB0FFC90387FFF8048B512E0000714F84880391FF807FEEBC0004848137F6D7F
-1680151FA26C5A6CC7FCC8FC153F16005D15FE14014A5AEC1FF890381FFFF0495BA215F8
-6D7F90380007FEEC00FF81ED3F80ED1FC0150FA216E01507A2123C127EB4FC150F16C0A2
-48141F007FEC3F806DEB7F006C6C5B391FF807FE6CB55A6C5C6C14E0C66C1380D90FFCC7
-FC23357CB32C>I<EC07F04A7E141F143FA2147EA214FCEB01F8A2EB03F0EB07E0A2EB0F
-C0EB1F80A2EB3F00137EA25B485AA2485A5B1207485AA2485A48C7FCA2127E5AB712FC16
-FEA36C15FCC8EAF800AA91387FFFF091B512F8A36E13F027347EB32C>I<000FB512FE48
-80A35D0180C8FCADEB83FE90389FFF8090B512E015F8819038FE03FE9038F000FF01C07F
-49EB3F8090C7121F6C15C0C8120FA2ED07E0A4123C127EB4FC150F16C0A248141F007EEC
-3F80007FEC7F006C6C5B6D485A391FF80FFC6CB55A6C5C000114C06C6C90C7FCEB0FF823
-347CB22C>I<EC3FC0903801FFF801077F011F7F497F90387FE07F9039FF003F80484813
-7FEA03F8485A5B000FEC3F004848131E4990C7FC123F90C9FCA25A127EEB03FE90381FFF
-80D8FC7F13E000FDB57EB67E9038FE07FC9038F001FE9038C0007F49EB3F8090C7121F16
-C048140F16E01507A3127EA47E150F6D14C0001F141F6D1480000F143F6DEB7F003907F8
-01FE3903FE07FC6CB55A6C5C6D5B011F1380D907FCC7FC23357CB32C>I<1278B712C016
-E0A316C000FCC7EA3F80ED7F0015FE00785CC712014A5A4A5A5D140F5D4A5A143F92C7FC
-5C147E14FE5C13015CA2495AA213075CA3495AA4495AA5133F91C8FCAA131E23357CB32C
->I<EB07FC90383FFF8090B512E0000314F84880390FFC07FE391FF001FF9038C0007F48
-48EB3F8090C7121F4815C0007E140FA56CEC1F80A26C6CEB3F006D5B390FF001FE3903FC
-07F86CB55A6C6C13C0D907FCC7FC90387FFFC048B512F03903FC07F8390FF001FE391FC0
-007F497F48C7EA1F80007EEC0FC0A248EC07E0A7007EEC0FC0A2007F141F6C6CEB3F806C
-6CEB7F009038F001FF390FFC07FE6CB55A6C5CC614E0013F1380D907FCC7FC23357CB32C
->I<EB07FCEB3FFF90B512C0488048803907FC07F8390FF001FC48486C7ED83F80137E15
-7F48C77E007EEC1F8012FE5AED0FC0A416E0A37E127E007F141F7E6D133F6C6C137F390F
-F001FF3807FC0F6CB6FC6C14F76C14C7013F130FD90FF813C090C7FCA2151F1680153F16
-00000F5C486C137E486C13FE4A5A4A5A14079038801FF0391FE07FE090B55A6C91C7FC6C
-5B000113F838007FC023357CB32C>I<121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F
-00C7FCAE121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F000B2470A32C>I<EA0F80EA
-1FC0EA3FE0EA7FF0A5EA3FE0EA1FC0EA0F80C7FCAEEA0F80EA1FE0EA3FF0EA7FF8A213FC
-A3123F121F120F120013F8A21201EA03F01207EA1FE0EA7FC0EAFF80130012FC12700E30
-71A32C>I<007FB612F0B712F8A36C15F0CAFCA8007FB612F0B712F8A36C15F025127DA1
-2C>61 D<EC7F80903803FFE0010F7F013F7F497F9038FFC0FE3901FE007FD803F87F4848
-EB1F809038E00FCF390FC03FFF48484813C091B5FCEA3F01393E03F87F903907F03FE000
-7EEBE01F397C0FC00FEC8007A2EAFC1F00F8EB0003A900FCEB8007D87C0F14C0A2ECC00F
-3A7E07E01F80003EEBF03F903903F87F00393F01FFFED81F805B6E5A6C6C6C5A3907E00F
-C09039F00007C06C6CEB0FE0D801FE131F3900FFC0FF6DB512C06D1480010FEBFE000103
-13F89038007FC023337CB22C>64 D<14FE497EA4497FA214EFA2130781A214C7A2010F7F
-A314C390381F83F0A590383F01F8A490387E00FCA549137E90B512FEA34880A29038F800
-3FA34848EB1F80A4000715C049130FD87FFEEBFFFC6D5AB514FE6C15FC497E27347EB32C
->I<007FB512E015F8B612FE6C8016C03903F0003FED0FE0ED07F01503A2ED01F8A6ED03
-F0A21507ED0FE0ED1FC0EDFF8090B612005D5D15FF16C09039F0001FE0ED07F0ED03F815
-01ED00FCA216FE167EA616FE16FC1501ED03F8150FED3FF0007FB612E016C0B712806CEC
-FE0015F027337FB22C>I<02FF13700107EBE0F84913F9013F13FD4913FFEBFF813901FE
-007F4848131FD807F0130F1507485A491303485A150148C7FCA25A007EEC00F01600A212
-FE5AAB7E127EA3007F15F06CEC01F8A26C7EA26C6C13036D14F06C6C130716E0D803FC13
-1F6C6CEB3FC03A00FF81FF806DB512006D5B010F5B6D13F00100138025357DB32C>I<00
-7FB5FCB612C015F0816C803907E003FEEC00FFED7F80153FED1FC0ED0FE0A2150716F015
-0316F81501A4ED00FCACED01F8A3150316F0A2150716E0150FED1FC0153FED7F80EDFF00
-EC03FE007FB55AB65A5D15C06C91C7FC26337EB22C>I<007FB612F0B712F8A37E3903F0
-0001A7ED00F01600A4EC01E04A7EA490B5FCA5EBF003A46E5A91C8FCA5163C167EA8007F
-B612FEB7FCA36C15FC27337EB22C>I<007FB612F8B712FCA37ED803F0C7FCA716781600
-A515F04A7EA490B5FCA5EBF001A46E5A92C7FCAD387FFFE0B5FC805C7E26337EB22C>I<
-903901FC038090390FFF87C04913EF017F13FF90B6FC4813073803FC01497E4848137F48
-48133F49131F121F5B003F140F90C7FCA2127EED078092C7FCA212FE5AA8913803FFF84A
-13FCA27E007E6D13F89138000FC0A36C141FA27F121F6D133F120F6D137F6C7E6C6C13FF
-6D5A3801FF076C90B5FC6D13EF011F13CF6DEB0780D901FCC7FC26357DB32C>I<D87FFE
-EBFFFCB54813FEA36C486C13FCD807E0EB0FC0B190B6FCA59038E0000FB3D87FFEEBFFFC
-B54813FEA36C486C13FC27337EB22C>I<007FB512F8B612FCA36C14F839000FC000B3B3
-A5007FB512F8B612FCA36C14F81E3379B22C>I<0107B512804914C0A36D148090390003
-F000B3AF1218127EA2B4FCA24A5A48130F007F131F9038C07FC06CB55A6C91C7FC6C5B00
-0313F838007FC022347BB22C>I<D87FFCEB7FF8486CEBFFFCA36C48EB7FF8D807C0EB1F
-80153FED7F00157E5D4A5A14034A5A5D4A5A4A5A143F4AC7FC147E5CEBC1F813C3EBC7FC
-A2EBCFFEEBDFBEEBFFBF141F01FE7F496C7E13F86E7EEBF00301E07FEBC001816E7EA215
-7E153E153F811680ED0FC0A2ED07E0D87FFCEB1FFC486CEB3FFEA36C48EB1FFC27337EB2
-2C>I<387FFFE0B57EA36C5BD803F0C8FCB3AE16F0ED01F8A8007FB6FCB7FCA36C15F025
-337DB22C>I<D87FE0EB0FFC486CEB1FFEA26D133F007F15FC000F15E001BC137BA4019E
-13F3A3EB9F01A2018F13E3A21483A2018713C314C7A201831383A214EFA201811303A214
-FFEB80FEA3147C14381400ACD87FF0EB1FFC486CEB3FFEA36C48EB1FFC27337EB22C>I<
-D87FF0EB7FFC486CEBFFFEA27F007FEC7FFCD807FEEB07C013DEA213DF13CFA2148013C7
-14C0A213C314E0A213C114F0A213C014F8A2147CA3143EA2141E141FA2140F1587A21407
-15C7A2140315E71401A215F71400A215FFD87FFC137F487E153FA26C48EB1F8027337EB2
-2C>I<EB7FFF0003B512E0000F14F848804880EBE003EB800048C7127FA2007E80A300FE
-158048141FB3A86C143FA2007E1500A3007F5CA26C6C13FEEBF00790B5FC6C5C6C5C0003
-14E0C66C90C7FC21357BB32C>I<007FB512C0B612F88115FF6C15802603F00013C0153F
-ED0FE0ED07F0A2150316F81501A6150316F01507A2ED0FE0ED3FC015FF90B61280160015
-FC5D15C001F0C8FCB0387FFF80B57EA36C5B25337EB22C>I<EB7FFF0003B512E0000F14
-F848804880EBF007EB800048C7127FA2007E80A300FE158048141FB3A7EB01F0EB03F800
-FE143F267E01FC1300A2EB00FE007F5C147FD83F8013FEEBF03F90B5FC6C5C6C5C000314
-E0C67E90380007F0A26E7EA26E7EA26E7EA2157FA2153E21407BB32C>I<387FFFFCB67E
-15E015F86C803907E007FE1401EC007F6F7E151FA26F7EA64B5AA2153F4BC7FCEC01FE14
-0790B55A5D15E081819038E007FCEC01FE1400157F81A8160FEE1F80A5D87FFEEB1FBFB5
-ECFF00815E6C486D5AC8EA01F029347EB22C>I<90381FF80790B5EA0F804814CF000714
-FF5A381FF01F383FC003497E48C7FC007E147F00FE143F5A151FA46CEC0F00007E91C7FC
-127F7FEA3FE0EA1FFCEBFFC06C13FC0003EBFFC06C14F06C6C7F01077F9038007FFEEC07
-FF02001380153FED1FC0A2ED0FE0A20078140712FCA56CEC0FC0A26CEC1F806D133F01E0
-EB7F009038FE01FF90B55A5D00F914F0D8F83F13C0D8700790C7FC23357CB32C>I<007F
-B612FCB712FEA43AFC007E007EA70078153CC71400B3AF90383FFFFCA2497F6D5BA22733
-7EB22C>I<3B7FFF803FFFC0B56C4813E0A36C496C13C03B03F00001F800B3AF6D130300
-015DA26D130700005D6D130F017F495A6D6C485AECE0FF6DB5C7FC6D5B010313F86D5B90
-38003F802B3480B22C>I<D87FFCEB7FFC486CEBFFFEA36C48EB7FFCD80FC0EB07E06D13
-0F000715C0A36D131F00031580A36D133F00011500A36D5B0000147EA4017E5BA46D485A
-A490381F83F0A4010F5B14C7A301075BA214EFA201035BA214FFA26D90C7FCA46D5A2734
-7EB22C>I<D87FF0EB07FF486C491380A36C486D1300001FC8127CA46C6C5CA76C6C495A
-A4143E147FA33A03E0FF83E0A214F7A201E113C3A3000101E35BA201F113C701F313E7A3
-14C1A200005DA201F713F71480A301FF13FF017F91C7FC4A7EA4013E133E29347FB22C>
-I<3A3FFF03FFE0484913F0148714076C6D13E03A01F800FE007F0000495A13FE017E5BEB
-7F03013F5B1487011F5B14CF010F5B14FF6D5BA26D90C7FCA26D5AA26D5AA2497EA2497E
-A2497F81EB0FCF81EB1FC7EC87F0EB3F83EC03F8EB7F01017E7FEBFE00497F0001147E49
-137F000380491480151FD87FFEEBFFFC6D5AB514FE6C15FC497E27337EB22C>I<D87FFC
-EB7FFC486CEBFFFEA36C48EB7FFCD807F0EB0FC0151F000315806D133F12016DEB7F0012
-006D137E017E13FE017F5BEB3F01EC81F8131FEC83F0EB0FC314C7903807E7E0A201035B
-14EF6DB45AA292C7FC7F5C147EB0903807FFE0497FA36D5B27337EB22C>I<003FB612C0
-4815E0A4007EC7EA1FC0ED3F80A2ED7F00157E15FE4A5A003C5CC712034A5AA24A5A4A5A
-A24A5A4AC7FCA214FE495AA2495A495AA2495A495AA2495A49C8FCA213FE485AA24848EB
-03C049EB07E01207485A5B121F485AA248C7FCB7FCA46C15C023337CB22C>I<007FB6FC
-B71280A46C150021067B7D2C>95 D<3801FFF0000713FE001F6D7E15E048809038C01FF8
-1407EC01FC381F80000006C77EC8127EA3ECFFFE131F90B5FC1203120F48EB807E383FF8
-00EA7FC090C7FC12FE5AA47E007F14FEEB8003383FE01F6CB612FC6C15FE6C14BF0001EB
-FE1F3A003FF007FC27247CA32C>97 D<EA7FF0487EA3127F1201AAEC1FE0ECFFF801FB13
-FE90B6FC16809138F07FC09138801FE091380007F049EB03F85BED01FC491300A216FE16
-7EA816FE6D14FCA2ED01F86D13036DEB07F0150F9138801FE09138E07FC091B512801600
-01FB5B01F813F83900F03FC027337FB22C>I<903803FFE0011F13F8017F13FE48B5FC48
-804848C6FCEA0FF0485A49137E4848131890C9FC5A127EA25AA8127EA2127F6C140F6DEB
-1F806C7E6D133F6C6CEB7F003907FE03FF6CB55A6C5C6C6C5B011F13E0010390C7FC2124
-7AA32C>I<EC0FFE4A7EA380EC003FAAEB07F8EB3FFE90B512BF4814FF5A3807FC0F380F
-F00348487E497E48487F90C7FC007E80A212FE5AA87E007E5CA2007F5C6C7E5C6C6C5A38
-0FF0073807FC1F6CB612FC6CECBFFE6C143FEB3FFC90390FF01FFC27337DB22C>I<EB03
-FE90381FFFC0017F13F048B57E48803907FE03FE390FF800FFD81FE0EB3F805B4848EB1F
-C090C7120F5A007E15E015075AB7FCA416C000FCC9FC7E127EA2127F6CEC03C06DEB07E0
-6C7ED80FF0130F6C6CEB3FC001FF13FF000190B512806C1500013F13FC010F13F0010113
-8023247CA32C>I<EC0FF8EC3FFE91B5FC4914805B903807FC7F14F090390FE03F0014C0
-92C7FCA6007FB512FEB7FCA36C5C26000FC0C7FCB3A8003FB512F04880A36C5C21337DB2
-2C>I<ED03F8903907F80FFC90391FFE3FFE017FB6FC48B7FC48ECFE7F9038FC0FF82607
-F003133E3A0FE001FC1CD9C0001300001F8049137EA66D13FE000F5CEBE0016C6C485A39
-03FC0FF048B5FC5D481480D99FFEC7FCEB87F80180C8FCA37F6C7E90B512F06C14FE48EC
-FF804815E04815F03A3FC0001FF848C7EA03FC007E1400007C157C00FC157E48153EA46C
-157E007E15FCD87F801303D83FE0EB0FF8D81FFCEB7FF06CB612E0000315806C1500D800
-3F13F8010713C028387EA42C>I<EA7FF0487EA3127F1201AAEC1FE0EC7FFC9038F9FFFE
-01FB7F90B6FC9138F03F80ECC01F02807FEC000F5B5BA25BB3267FFFE0B5FCB500F11480
-A36C01E0140029337FB22C>I<1307EB1FC0A2497EA36D5AA20107C7FC90C8FCA7387FFF
-C080B5FC7EA2EA0007B3A8007FB512FCB612FEA36C14FC1F3479B32C>I<140EEC3F80A2
-EC7FC0A3EC3F80A2EC0E0091C7FCA748B512804814C0A37EC7120FB3B3A2141F003C1480
-007E133FB414005CEB01FEEBFFFC6C5B5C001F5B000790C7FC1A467CB32C>I<EA7FE048
-7EA3127F1201AA91381FFFF04A13F8A36E13F0913800FE004A5A4A5A4A5A4A5A4A5A4A5A
-4AC7FC14FEEBF1FC13F3EBF7FE90B5FCA2EC9F80EC0FC001FE7FEBFC07496C7E496C7E81
-1400157E811680151F3A7FFFC0FFFCB500E113FEA36C01C013FC27337EB22C>I<387FFF
-E0B57EA37EEA0003B3B3A5007FB61280B712C0A36C158022337BB22C>I<3A7F83F007E0
-9039CFFC1FF83AFFDFFE3FFCD87FFF13FF91B57E3A07FE1FFC3E01FCEBF83F496C487E01
-F013E001E013C0A301C01380B33B7FFC3FF87FF0027F13FFD8FFFE6D13F8D87FFC4913F0
-023F137F2D2481A32C>I<397FF01FE039FFF87FFC9038F9FFFE01FB7F6CB6FC00019038
-F03F80ECC01F02807FEC000F5B5BA25BB3267FFFE0B5FCB500F11480A36C01E014002924
-7FA32C>I<EB07FCEB1FFF017F13C048B512F048803907FC07FC390FF001FE48486C7E01
-80133F003F158090C7121F007EEC0FC0A348EC07E0A76C140F007E15C0A2007F141F6C15
-806D133F6C6CEB7F006D5B6C6C485A3907FC07FC6CB55A6C5C6C6C13C0011F90C7FCEB07
-FC23247CA32C>I<397FF01FE039FFF8FFF801FB13FE90B6FC6C158000019038F07FC091
-38801FE091380007F049EB03F85BED01FC491300A216FE167EA816FE6D14FCA2ED01F86D
-13036DEB07F0150F9138801FE09138E07FC091B51280160001FB5B01F813F8EC3FC091C8
-FCAD387FFFE0B57EA36C5B27367FA32C>I<903903FC078090391FFF0FC0017F13CF48B5
-12EF4814FF3807FE07380FF00148487E49137F4848133F90C7FC48141F127E150F5AA87E
-007E141FA26C143F7F6C6C137F6D13FF380FF0033807FC0F6CB6FC6C14EF6C6C138F6D13
-0FEB07F890C7FCAD0203B5FC4A1480A36E140029367DA32C>I<D87FFEEB3FC0B53801FF
-F0020713F8021F13FC6C5B39003F7FE1ECFF019138FC00F84A13704A13005CA25C5CA391
-C8FCAF007FB512E0B67EA36C5C26247EA32C>I<90387FF8700003B512F8120F5A5A387F
-C00F387E00034813015AA36CEB00F0007F140013F0383FFFC06C13FE6CEBFF80000314E0
-C66C13F8010113FCEB0007EC00FE0078147F00FC143F151F7EA26C143F6D133E6D13FE90
-38F007FC90B5FC15F815E000F8148039701FFC0020247AA32C>I<131E133FA9007FB6FC
-B71280A36C1500D8003FC8FCB1ED03C0ED07E0A5EC800F011FEB1FC0ECE07F6DB5128016
-0001035B6D13F89038003FE0232E7EAD2C>I<3A7FF003FF80486C487FA3007F7F0001EB
-000FB3A3151FA2153F6D137F3900FE03FF90B7FC6D15807F6D13CF902603FE0713002924
-7FA32C>I<3A7FFF01FFFCB514FE148314016C15FC3A03E0000F80A26D131F00011500A2
-6D5B0000143EA26D137E017C137CA2017E13FC013E5BA2EB3F01011F5BA21483010F5BA2
-14C701075BA214EF01035BA214FF6D90C7FCA26D5A147C27247EA32C>I<D87FFFEB7FFF
-6EB5FCB515806C16004A7ED807C0EB01F0A66C6C495AA3143E147FA2D801F0495AECFF87
-A214F7A201F113C700005D9038F9E3CFA201FB13EFA3D97BC190C7FC017F13FFA21480A2
-013F5B90381F007C29247FA32C>I<3A3FFF03FFF048018713F8A36C010313F03A00FC00
-7E005D90387E01F8013F5BEB1F83EC87E090380FCFC0903807EF80EB03FF6D90C7FC5C6D
-5A147C14FE130180903803EF80903807CFC0EB0FC7EC83E090381F01F0013F7FEB7E0001
-7C137C49137E0001803A7FFF01FFFC1483B514FE6C15FC140127247EA32C>I<3A7FFF01
-FFFCB5008113FE148314816C010113FC3A03E0000F806C7E151F6D140012005D6D133E13
-7C017E137E013E137CA2013F13FC6D5BA2EB0F815DA2EB07C1ECC3E0A2EB03E3ECE7C013
-0114F75DEB00FFA292C7FC80A2143EA2147E147CA214FC5CA2EA0C01003F5BEA7F83EB87
-E0EA7E0F495A387FFF806C90C8FC6C5A6C5AEA07E027367EA32C>I<003FB612E04815F0
-A4007EC7EA1FE0ED3FC0ED7F80EDFF004A5A003C495AC7485A4A5A4A5A4A5A4A5A4AC7FC
-EB01FC495AEB0FF0495A495A495A49C8FC4848EB01E04848EB03F0485A485A485A485A48
-5AB7FCA46C15E024247DA32C>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fd ecbx1000 10 57
-/Fd 57 122 df<913A03FF8007FE027F9039F07FFF800103B500FDB512E0010F903A00FF
-FE0FF0D93FF8ECF81F90267FE0019038F03FF849485A4816E014804816C00200ED1FF081
-F007C06F91C7FCA8B912E0A4000390C701C0C7FCB3ABB5D8FC3FEBFF80A43D3A7EB938>
-27 D<12E07E127C7E7E7F6C7E6C7E12037F6C7E7F12007F137E137FA2EB3F80A214C013
-1F14E0A2130F14F0A4EB07F8A514FCB114F8A5EB0FF0A414E0131FA214C0133F1480A2EB
-7F00A2137E13FE5B12015B485A5B1207485A485A90C7FC123E5A12F05A16537BBD25>41
-D<EA0F80EA3FE0EA7FF0A2EAFFF8A213FCA3127FA2123FEA0F9CEA001C133C1338A31378
-137013F0EA01E0A2EA03C0EA0780EA0F005A121C12180E1D798C1B>44
-D<B61280A819087F9620>I<EA0F80EA3FE0EA7FF0A2EAFFF8A5EA7FF0A2EA3FE0EA0F80
-0D0D798C1B>I<141E143E14FE1307137FB5FCA3138FEA000FB3B3A5007FB61280A42136
-79B530>49 D<EB0FFE90387FFFC048B512F0000714FC390FE03FFF261F800F1380263F00
-0313C0D87F8014E0EBE00100FF6D13F07FA2ED7FF8A46C5A6C5A0006C7FCC8FCEDFFF0A2
-16E05C16C04A138016004A5A4A5AEC1FF05D4A5A4AC7FC14FE495AD903F01378495A495A
-495A49C712F8017C14F05B49130148B6FC5A5A5A5A5A4815E0B7FCA425367BB530>I<EB
-03FF011F13F0017F13FC3901FC07FF2603F003138048486C13C0496C13E0EA0FF86D14F0
-487EA66C4814E06C5A6C485AC714C04A138016004A5A4A5AEC3FF090380FFFC05D15F090
-380007FE913801FF806E13C016E0ED7FF016F8ED3FFCA216FEEA1FC0487E487E487EA416
-FCA249137F007F15F801C0EBFFF06C5A6C6C4813E0260FFC0713806CB61200000114FC6C
-6C13F0010790C7FC27377CB530>I<ED07C0150FA2151F153F157F15FF5CA25C5C5C5C14
-3E143C5C5C1301495A5C495A495A5B133E5B13785B485A1203485A5B48C7FC121E5A127C
-5AB81280A4C70001EBC000AA0103B61280A429367DB530>I<001C15C0D81F80130701F8
-137F90B61280A216005D5D15F05D15804AC7FC14F090C9FCA7EB03FE90381FFFE0017F13
-F89038FE07FC9038F003FFD9C0011380496C13C090C7FC000E15E0C8127F16F0A216F8A3
-121FEA3FC0487E12FF7FA316F05B15FFD87F8014E0007EC713C0003E5B003F4913806C6C
-481300390FF01FFE6CB512F8000114E06C6C1380D90FF8C7FC25377BB530>I<EC0FF8EC
-FFFE0103EBFF8090390FF80FC090393FE003E090397F8001F09038FF000F48EC1FF84848
-133F485A120F5B121FA2003FEC1FF0ED0FE0484890C7FCA31408EC7FF039FFF1FFFC01F3
-13FFD9F78013809039FF007FC049EB3FE04914F0ED1FF85B16FCA34914FEA4127FA5123F
-16FCA26C7E16F8000F143F6D14F0000715E06C6CEB7FC03A01FF81FF806C90B51200013F
-13FC010F13F00101138027377CB530>I<123C123EEA3FE090B71280A41700485D5E5E5E
-5EA2007CC7EA0FC000784A5A4BC7FC00F8147E485C5D14014A5AC7485A4A5AA24A5A143F
-4AC8FCA214FEA213015C1303A21307A2130F5CA2131FA5133FA96D5A6D5A6D5A29397BB7
-30>I<49B47E010F13F0013F13FC9038FE01FF3A01F8007F804848EB3FC04848EB1FE015
-0F484814F01507121FA27F7F7F6D130F01FF14E014C09138E01FC06CEBF83F9138FE7F80
-6C9038FFFE005D6C14F06C14FC6C14FF6D14806D14C090B612E0D803FD14F02607F07F13
-F848487E261FC00F13FC383F8003007F010013FE90C7127F151F00FE140715031501A215
-00A216FC7E6C14016D14F86C6C13036DEB07F06C6CEB0FE0D80FFEEB7FC00003B61200C6
-14FC013F13F00103138027377CB530>I<ED03E04B7EA24B7EA34B7EA24B7EA34B7EA292
-B57EA34A8015F302038015E1A202078015C0020F80ED807FA2021F80ED003F4A80023E13
-1FA2027E80027C7F02FC814A7FA20101824A7F49B77EA3498202C0C7FC010F824A147FA2
-011F8291C8123F4982013E151FA2017E82017C8101FE83B500F80107B61280A4413A7DB9
-48>65 D<B812C017FC17FF18C028007FF000037F04007F717E717E171F84A2717EA74D5A
-A260173F4D5A4D5A4C13C0040F5B91B600FCC7FCA2EFFF8002F0C713F0EF3FF8717E717E
-717E19807113C0A319E0A719C0A25F4D138019005FEF7FFE4C485AB912F018C095C7FC17
-F03B397DB844>I<DB3FFCEB01C00203B5EAC003021FECF00791B6EAFC0F01039039FC00
-FF3F4901C0EB1FFFD91FFEC77E49481403D97FF080494880485B48177F4849153F4890C9
-FC181F485A180F123F5B1807127FA24993C7FC12FFAD127F7FF003C0123FA27F001F1707
-A26C6C1780180F6C6D16006C6D5D6C173E6C6D157ED97FF85D6D6C4A5A6DB44A5A010701
-C0EB0FE06D01FCEBFF80010090B548C7FC021F14F8020314E09126003FFEC8FC3A3B7BB9
-45>I<B87E17F817FF18C028007FF8000713F09338007FF8EF1FFE717E050313807113C0
-A27113E0F07FF0A2F03FF8A219FC181FA219FEA419FFAC19FEA419FC183FA219F8187F19
-F0F0FFE0A24D13C04D13804D1300EF1FFEEF7FFC933807FFF0B912C095C7FC17FC178040
-397DB849>I<B912F0A426007FF8C7FCEF1FF8170717031701A21700A21878A3043C137C
-183CA41800167CA216FC150391B5FCA4ECF8031500167CA2163C180FA3181EA293C7FCA2
-183EA2183C187CA218FCA2EF01F81703170F173FEE01FFB9FC18F0A338397DB83F>I<B9
-12C0A43A007FF800039338007FE0171F170F1707A21703A21701A318F0EE7800A41800A2
-16F8A21501150791B5FCA4ECF80715011500A21678A693C8FCADB7FCA434397DB83C>I<
-B6D8FC03B612F0A426007FF8C70001EBE000B3A391B8FCA402F8C71201B3A6B6D8FC03B6
-12F0A444397DB84B>72 D<B612FCA439007FF800B3B3ADB612FCA41E397DB824>I<B7FC
-A426007FF8C9FCB3ACEF0780A5170F1800A35FA25FA25F5F5E5EEE0FFE167FB8FCA43139
-7DB839>76 D<B500F80403B512F06E5EA26E5ED8007FF1E000A2D97BFF161EA201796D5D
-A201786D5DA26E6C5DA36E6C4A5AA26E6C4A5AA26E6C4A5AA26E6C4A5AA26E6C141EA36E
-6D5BA26E6D5BA26F6C5BA26F6C485AA36F6C485AA26F6C485AA26F6C48C7FCA2923803FF
-1EA36F13BCA26F13F8A2705AA2705AA213FCB500FC6D4848B612F0A2EE0F80EE07005439
-7DB85B>I<B500FC0203B512F0A28080C66C6D90390003F0006F6E5A81017B7F13798101
-787F6E7E6E7E6E7F6E7FA26E7F6E7F6E7F6E7F6F7E153F826F13806F13C06F13E06F13F0
-6F13F88117FCEE7FFEEE3FFF7013817013C17013E18218F17013F97013FDEF7FFF8383A2
-8383838383187FA2183F181F01FC160FB500FC150718031801A244397DB84B>I<EDFFF8
-020FEBFF80027F14F0903A01FFC01FFC010790380007FFD91FFC010113C0D93FF06D6C7E
-49486E7E49486E7E48496E7E48834890C86C7EA248486F1380A248486F13C0A2003F18E0
-A348486F13F0A400FF18F8AC007F18F06D5DA3003F18E0A26D5D001F18C0A26C6C4B1380
-6C18006E5C6C6D4A5A6C5F6C6D4A5A6D6C4A5AD93FFC49485A6DB401075B0107D9C01F90
-C7FC010190B512FC6D6C14F0020F1480020001F8C8FC3D3B7BB948>I<B8FC17F017FEEF
-FF8028007FF8000F13C0040113E07013F0EF7FF8EF3FFCA2EF1FFEA218FFA818FEA2EF3F
-FCA2EF7FF8EFFFF04C13E0040F13C091B7120017FC17E002F8C9FCB3A4B612FCA438397D
-B841>I<B712FCEEFFE017FC17FF28007FF8000F13C004017F707F717E717EA2717EA284
-A760A24D5A604D5A4D5A04035B041F90C8FC91B612FC17E0839139F8003FFCEE0FFF707F
-707F8284A2707FA584A51A601AF084177F1901DD3FFE13E0B600FC011F130394390FFF87
-C071EBFF8005011400CBEA1FFC443A7DB848>82 D<D907FF130E013FEBE01E90B5EAF83E
-0003ECFE7E3A07FC01FFFE390FF0001F4848130F48481303491301007F140090C8FC167E
-5A163EA27F161E7F7F6D91C7FC13FC387FFFE014FEECFFF06C14FE6F7E6C816C15F06C81
-6C81C681133F010F801301D9000F1480EC007F030F13C01503818100F0157FA3163FA27E
-17807E167F6C16007E6D14FE01E0495A01F813039039FF801FF800FC90B512E0D8F83F5C
-D8F00749C7FC39E0007FF02A3B7BB935>I<003FB91280A4D9F800EBF003D87FC0923800
-7FC049161F007EC7150FA2007C1707A200781703A400F818E0481701A4C892C7FCB3AE01
-0FB7FCA43B387DB742>I<B600FC011FB512C0A426007FF8C8381FC000725AB3B3181F01
-3F94C7FC8060011F163E6D6C157E187C6D6C15FC6D6D495A6D6DEB07F06D01F0EB1FE0DA
-7FFEEBFFC0021FB6C8FC02075C020014F0030F1380423A7DB849>I<B600F00103B512E0
-A4C601F0C83807F0006E5E017F5F6E150FA2013F5F6E151F011F94C7FC6E5D6D163E6F14
-7E6D167CA26F14FC6D5E6F13016D5E6F13036D5E811707027F5D6F130F023F5D6F131F02
-1F92C8FC815F6E143EEE807E6E147CEEC0FC6E5C16E016E16E5C16F36E5C16FF6F5BA36F
-5BA26F90C9FCA26F5AA36F5AA26F5AA26F5A433A7EB848>I<B6D8E01FB500FC90383FFF
-FCA4000101F0C7D83FFCC8EA7E006C71153C171F6E197C017F701578836E7014F8013F6F
-5E6E1801011F4B6D5CA26E18036D4B6D5CA26D6D496D495A173C6F170F6D037C6D91C7FC
-EF787F6F5F6D4B6C6C131E816D02016E5BEFE01F03F8177C027F01036E13784D7E03FCEE
-80F8023F49486C5C15FE021F010FEDC1E04D7E03FF16C36E49EDE3C0041E7F049E15F76E
-01BC6D5C04FC15FF6E95C8FC4C80A26E5F4C143F6E5F4C141FA2037F5E4C140FA26F486E
-5AA2031F5E93C812036F5E5E3A7EB863>I<007FB5D8F803B512F8A4C66C48C7D80FF0C7
-FC6D6C5D6D5E6F495A6D6D49C8FC7F6D6D137E6F5B6DEBF8016D5D6F485A6E6C485A023F
-130FDA1FFF5BEE9F806E01FFC9FC805E6E5B6E5B80826F7E153F826F7F5D4B7F92B57EA2
-DA01F97FDA03F17F03F07F913807E07FDA0FC07F021F6D7E4B7E4A486C7F027E8102FE6D
-7F4A7F49488149486D7F0107804A6E7E49488149486E7E013F81017F83B60107B61280A4
-41397DB848>I<EB3FFE0003B512E0000F14F8391FF00FFE003FEB03FF6D6C7F6E7FA26F
-7EA26C5A6C5AEA0380C8FCA2EC3FFF010FB5FC137F3901FFF87F00071380380FFE00EA3F
-F85B485A12FF5BA415FF6D5A127F263FF00713F83B1FFC1FBFFFC0390FFFFE1F0003EBF8
-0F39003FE0032A257DA42E>97 D<13FFB5FCA412077EAF4AB47E020F13F0023F13FC9138
-FE03FFDAF00013804AEB7FC00280EB3FE091C713F0EE1FF8A217FC160FA217FEAA17FCA3
-EE1FF8A217F06E133F6EEB7FE06E14C0903AFDF001FF80903AF8FC07FE009039F03FFFF8
-D9E00F13E0D9C00390C7FC2F3A7EB935>I<903801FFC0010F13FC017F13FFD9FF801380
-2603FE0013C048485AEA0FF8121F13F0123F6E13804848EB7F00151C92C7FC12FFA9127F
-A27F123FED01E06C7E15036C6CEB07C06C6C14806C6C131FC69038C07E006DB45A010F13
-F00101138023257DA42A>I<EE7F80ED7FFFA4150381AF903801FF81010F13F1013F13FD
-9038FFC07F0003EB001FD807FC1307000F8048487F5B123FA2485AA312FFAA127FA27F12
-3FA26C6C5B000F5C6C6C5B6C6C4913C02701FF80FD13FE39007FFFF9011F13E101011301
-2F3A7DB935>I<903803FF80011F13F0017F13FC3901FF83FE3A03FE007F804848133F48
-4814C0001FEC1FE05B003FEC0FF0A2485A16F8150712FFA290B6FCA301E0C8FCA4127FA3
-6C7E1678121F6C6C14F86D14F000071403D801FFEB0FE06C9038C07FC06DB51200010F13
-FC010113E025257DA42C>I<EC1FF0903801FFFC010713FF90391FF87F8090383FE0FFD9
-FFC113C0A2481381A24813016E1380A2ED3E0092C7FCA8B6FCA4000390C8FCB3ABB512FE
-A4223A7DB91D>I<161FD907FEEBFFC090387FFFE348B6EAEFE02607FE07138F260FF801
-131F48486C138F003F15CF4990387FC7C0EEC000007F81A6003F5DA26D13FF001F5D6C6C
-4890C7FC3907FE07FE48B512F86D13E0261E07FEC8FC90CAFCA2123E123F7F6C7E90B512
-F8EDFF8016E06C15F86C816C815A001F81393FC0000F48C8138048157F5A163FA36C157F
-6C16006D5C6C6C495AD81FF0EB07FCD807FEEB3FF00001B612C06C6C91C7FC010713F02B
-377DA530>I<13FFB5FCA412077EAFED7FC0913803FFF8020F13FE91381F03FFDA3C0113
-8014784A7E4A14C05CA25CA291C7FCB3A3B5D8FC3F13FFA4303A7DB935>I<EA01F0EA07
-FC487EA2487EA56C5AA26C5AEA01F0C8FCA913FF127FA412077EB3A9B512F8A4153B7DBA
-1B>I<141FEC7FC0ECFFE0A24913F0A56D13E0A2EC7FC0EC1F0091C7FCA9EC0FF0EB0FFF
-A4EB007F143FB3B0121FEA3F80EA7FC0EAFFE0EC7FE0A215C014FF6C481380903883FE00
-6CB45A000F13F0000113801C4B86BA1D>I<13FFB5FCA412077EAF92380FFFE0A4923803
-FC0016F0ED0FE0ED1F804BC7FC157E5DEC03F8EC07E04A5A141FEC7FE04A7E8181A2ECCF
-FEEC0FFF496C7F806E7F6E7F82157F6F7E6F7E82150F82B5D8F83F13F8A42D3A7EB932>
-I<13FFB5FCA412077EB3B3ACB512FCA4163A7DB91B>I<01FED97FE0EB0FFC00FF902601
-FFFC90383FFF80020701FF90B512E0DA1F81903983F03FF0DA3C00903887801F000749DA
-CF007F00034914DE6D48D97FFC6D7E4A5CA24A5CA291C75BB3A3B5D8FC1FB50083B512F0
-A44C257DA451>I<01FEEB7FC000FF903803FFF8020F13FE91381F03FFDA3C0113800007
-13780003497E6D4814C05CA25CA291C7FCB3A3B5D8FC3F13FFA430257DA435>I<903801
-FFC0010F13F8017F13FFD9FF807F3A03FE003FE048486D7E48486D7E48486D7EA2003F81
-491303007F81A300FF1680A9007F1600A3003F5D6D1307001F5DA26C6C495A6C6C495A6C
-6C495A6C6C6CB45A6C6CB5C7FC011F13FC010113C029257DA430>I<9039FF01FF80B500
-0F13F0023F13FC9138FE07FFDAF00113800003496C13C00280EB7FE091C713F0EE3FF8A2
-EE1FFCA3EE0FFEAA17FC161FA217F8163F17F06E137F6E14E06EEBFFC0DAF00313809139
-FC07FE0091383FFFF8020F13E0020390C7FC91C9FCACB512FCA42F357EA435>I<9038FE
-03F000FFEB0FFEEC3FFF91387C7F809138F8FFC000075B6C6C5A5CA29138807F80ED3F00
-150C92C7FC91C8FCB3A2B512FEA422257EA427>114 D<90383FF0383903FFFEF8000F13
-FF381FC00F383F0003007E1301007C130012FC15787E7E6D130013FCEBFFE06C13FCECFF
-806C14C06C14F06C14F81203C614FC131F9038007FFE140700F0130114007E157E7E157C
-6C14FC6C14F8EB80019038F007F090B512C000F8140038E01FF81F257DA426>I<130FA5
-5BA45BA25B5BA25A1207001FEBFFE0B6FCA3000390C7FCB21578A815F86CEB80F014816C
-EBC3E090383FFFC06D1380903803FE001D357EB425>I<01FFEC3FC0B5EB3FFFA4000714
-016C80B3A35DA25DA26C5C6E4813E06CD9C03E13FF90387FFFFC011F13F0010313803025
-7DA435>I<B539F001FFF8A4000390C7EA1F00161E6E133E6C153C6E137C6C15786E13F8
-017F5CECF001013F5C14F8011F495AA2ECFC07010F5CECFE0F010791C7FC6E5A6D131E15
-BE6D13BC15FC6D5BA36E5AA26E5AA26E5AA26E5AA22D257EA432>I<B500F1B538803FFF
-A43D07FE000FF80003E06C6C010715C082028015076C6E6C148015076C01C0ED0F00826E
-485C017FED801E5D90273FF01E7F5B17C0DAF83E147C011F90393C3FE078037C14F8903B
-0FFC781FF0F0A29139FEF00FF10107EDF9E002FF14FB6D496CB45AA24B7E6D5EA26D496C
-90C7FCA292C7FC6E5CA2023E147C023C143C40257EA445>I<B539F01FFFF0A400039039
-8003F8006C01C013E06C1407D97FE05B6D6C485A6E48C7FC90381FFC3E010F5B903807FE
-FC6D6C5A5D6D5B6D5B6E7E6E7E814A7EA24A7E903801F3FFD903E37FD907C17FEB0FC049
-486C7E4A6C7E013E80496D7E49130F00016E7EB590383FFFF8A42D257EA432>I<B539F0
-01FFF8A4000390C7EA1F00161E6E133E6C153C6E137C6C15786E13F8017F5CECF001013F
-5C14F8011F495AA2ECFC07010F5CECFE0F010791C7FC6E5A6D131E15BE6D13BC15FC6D5B
-A36E5AA26E5AA26E5AA26E5AA292C8FCA25C141E003F133E387F803C38FFC07C147814F8
-EBC1F0EBC3E06C485A387D1F80D83FFFC9FCEA1FFCEA07F02D357EA432>I
-E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fe ecbx1440 14.4 35
-/Fe 35 122 df<DC7FFEECFFC0031FB5D8801F13F092B6D8E07F13FC020703F9B57E021F
-D9C007B5EAC1FF91277FFE000102071380DAFFF8010713FC010301E049494813C0495B49
-494913F04990C7FC19E0495A741380017F17C04A6E6E130071EC00FC98C7FCAEBB12FEA5
-26007FFCC7000701C0C8FCB3B3A7007FB5D8FC07B612F0A552547DD34D>27
-D<151E153E15FE1403140F147FEB07FF0003B5FCB6FCA3EBF87FEAFC00C7FCB3B3B3A600
-7FB712FCA52E4E76CD42>49 D<EC1FFE49B512F0010F14FC013FECFF804915E02701FF80
-3F7F2703FC000713FCD807F001017F48486D7FD81F806E138048C87E7013C0D87FE016E0
-01F8806D16F000FF817F7013F8A56C5AA26C5A6C5AEA0380C914F05EA218E05E18C05E18
-804C13005F4C5A4C5A5F4B5B4B5B4B5B94C7FCED0FFC4B5A4B5AED7FC04B5A4A90C8FCEC
-03FC4A5A4A4814F84A5A4A5A4AC8FC02FEEC01F0495A495A495A5CD90F80140349C8FC01
-3E1507017FB7FC90B812E05A5A5A5A5A5A5AB9FC18C0A4354E7ACD42>I<913807FFC002
-7F13FC0103B67E010F15E090261FF80313F890267FC0007F01FEC7EA3FFE48488148486E
-138013FE486C6C6D13C0804817E080A66C5B18C06C5B6C90C75AD80038168090C8FC4C13
-00A24C5A5F4C5A4B5B4B13C0030F5BDB7FFEC7FC91387FFFF816C016FCEEFF80DA000313
-E09238007FF8EE3FFE707E70138018C07013E018F07013F8A218FC82A218FEA3EA03C0EA
-0FF0EA3FFC487EA2B5FCA218FCA25E18F8A26C4816F0495C4916E0D83FE04A13C06C485C
-D80FF04A1380D807FE91387FFE003B03FFE003FFFC6C90B65A6C6C15E0010F92C7FC0101
-14FCD9001F1380374F7BCD42>I<17FC1601A216031607160FA2161F163F167FA216FF5D
-5DA25D5D5D167F153E157E15FC15F8EC01F01403EC07E015C0EC0F80141FEC3F00143E5C
-14FC495A5C495A1307495A5C49C7FC5B137E137C5B1201485A5B485A120F485A90C8FC12
-3E127E5ABA1280A5C901FCC7FCAF021FB71280A5394F7CCE42>I<486C150601F0153E01
-FEEC01FED9FFF0133F91B65A5F5F5F5F5F94C7FC16FC5E16E093C8FC15FC01F0138091CA
-FCAC913807FF80023F13F891B512FE01F36E7E9026FFFC0113E09139E0007FF891C76C7E
-496E7E01F86E7E5B7013804916C0C9FC18E08218F0A418F8A31203EA0FE0EA3FF8487EA2
-12FF7FA218F0A25B5E6C4816E05B01C016C06CC85A18806C6C4A13007FD80FF04A5A6C6C
-ECFFFCD803FE4913F02701FFE00F5B6C6CB612806D92C7FC010F14F8010114C09026003F
-FCC8FC354F7ACD42>I<ED07FE92B512C0020314F0021F14FC91397FFC01FE9139FFE000
-7F01030180EB3F804990C7121F4948EC7FC0494814FF4948010313E0495A49485B5A485B
-A2485BA2486F13C091C7FC4803001300177E94C7FC5AA25B127FA2ED3FF04AB5FC020714
-C000FF4914F091391F807FF891393E001FFE02786D7E4A6D13807013C06D5A4A6D13E018
-F05C7013F8A291C813FCA44916FEA3127FA6123FA37F6C17FCA36C17F85E7E6E15F06C17
-E06C6D5B6E15C06C4B13806D6C491300D93FFC495A6DB4EBFFFC010790B512F06D5D0100
-1580021F01FCC7FC020313C0374F7BCD42>I<B912FEF0FFF019FE737E1AE0D8000F01C0
-C7001F7F06037F727F726C7E867313807313C0A27313E0A37313F0A94F13E0A34F13C01B
-80614F1300624F5A06035B4E13E0063F5B92B8C7FC19F8A2F1FF8003C0C7001F13E00601
-13F89538007FFE737E070F13C01BE07313F0851BF87313FCA27313FEA31BFFA91BFEA261
-1BFCA2614F13F81BF0614F13E0077F13C04EB51280060FEBFE00BB5A1AF01AC04FC7FC19
-C050527BD15D>66 D<932603FFF01407047F01FF140F0307B600E0131F033F03F8133F92
-B700FE137F02039126C003FF13FF020F01F8C7EA3FC1023F01C0EC0FE391B5C80003B5FC
-4901FC814949814901E082011F498249498292CA7E4948834948835A4A83485B4885A248
-49187FA2485B1B3FA2485B1B1FA25AA21B0091CDFCA2B5FCAE7EA280A36C1A1FA36C7FA2
-1B3F6C7F1B3E6C7F1B7E6C6D187C6C1AFC6E18F86C19016D6CEF03F06D7E6FEE07E06D6D
-EE0FC001076DEE1F806D01F8EE3F006D6D16FE6D01FF4B5A023F01C0EC07F8020F01FCEC
-3FF00203903AFFC001FFC0020091B6C7FC033F15FC030715F0DB007F1480040301F0C8FC
-505479D25F>I<BAFC19F819FF1AE01AF8D8000701F0C7001F13FE06017FDE003F13C007
-0F7F07037F737F737F747E747E747F86747F8886888688A2747FA3881B7FA288A51D80AF
-1D00A564A21BFF64A3505BA2505BA2505BA2505B505B99C7FC505A1A7F4F485A4F13F007
-0F5B073F5B4EB55A061F49C8FCBB12F81AE097C9FC19F896CAFC59527CD165>I<BB12FC
-A5D8000701F0C7000F7F1800191F190F19071903190119001A7E1A7F86A386A51B80DD03
-E0130FA497C7FCA31707A3170F171F173FEE01FF92B6FCA5EDF001EE003F171F170F1707
-A31703A794CAFCB3A2B812F0A549527CD153>70 D<B8D88007B712FCA5D8000701F0C900
-3FEB8000B3AE92BAFCA503F0C9123FB3B1B8D88007B712FCA55E527CD167>72
-D<B81280A5D8000701F0C7FCB3B3B3B2B81280A529527DD130>I<B812E0A5D8000F01E0
-CAFCB3B3A91AF8A419011AF0A51903A31907A2190F1AE0191FA2193F197F19FF60180760
-187F0503B5FCBB12C0A545527CD14F>76 D<B912E018FF19F019FE737ED8000701F0C714
-E0060F7F060313FC06007F737E737F8587737FA28785A287A863A261636361634F90C8FC
-4F5A4F5A06035B060F13E095B5128092B748C9FC19F019C019F09226F0000713FC050013
-FF063F7F727F727F727F727FA2727FA28486A886A71D707513F8A2851C017301C013F0A2
-73EBE003B86C6D9038F007E0739038FC1FC0070190B51280736C1400080F5BCE13F85D53
-7CD162>82 D<DA0FFE141C91B500F0133C010702FC137C011F02FF13FC017F15C19026FF
-F00113E148903980001FFB4890C7EA07FFD807FC14014848804848153F171F4848150FA2
-007F1607491503A2170112FFA217007FA26D167CA27F7F6D93C7FC6C7E14C014F8ECFF80
-6C14F8EDFFC06C15FC6CEDFF8017F06C16FC6C826C707E6C836D82011F8201078213016D
-6C81020781EC007F030380ED003F040314801600173F837113C0838312F883A3837EA319
-807EA26C5E19007F6D4B5A7F6D4B5A01FC4B5A6D151FD9FFC04A5AD97FF8ECFFE028FE1F
-FF80075B010790B6C7FCD8FC0115FC486C6C14F048010F14C0489026007FFCC8FC3A5479
-D249>I<B700FE4AB612F0A5D8000F01E0CA387FC000091FC7FCB3B3B26D611B3E811B7E
-6D197CA26D6D17FC636D6D1601027F4D5A6F4C5A023F170F6E6C4C5A6E6D4B5A6E01E003
-FFC8FC6E01F8EC03FE020001FEEC1FFC923B7FFFE001FFF8031F90B612E0030716800300
-4BC9FC041F14F0040091CAFC5C537CD165>85 D<EC3FFE0107B512E0011F14FC017F14FF
-2701FFC00F13C02703FE00037F486C01007F6E6D7E486D80707EA2707EA3707F6C5B6C90
-C7FC6C5AC9FCA60307B5FC0203B6FC147F0103B7FC011FEBF00F017F1300EBFFFC000313
-F04813C0485B4890C7FC5A5B485AF081F012FF5BA35EA26D5C127F6D5C003F03F713C36D
-D901E314E06CD9C00714FF00079026F01F8114C06C90B5C61480C602FC6D1300011F01F0
-EB3FFC01010180EB07F03C387CB642>97 D<EB3FF8B5FCA51203C6FCB3A4EE7FF00307B5
-FC031F14C0037F14F0913AF9FF007FFCDAFFF8EB1FFF03E001077F03806D7F92C76C7F4A
-6E7F5C4A6F7E85183F85A38584A31A80AD1A00A36061A261187F616E15FF616E4A5B6E4A
-5B6F495BDACFE04990C7FCDA87F0EB3FFE913A01FE01FFF8496CB65A49013F14C0490107
-49C8FC90C813E041547DD249>I<913803FFE0023F13FE91B67E010315E0010F9038003F
-F8D93FFCEB07FC4948497E4948131F4849497E485B485BA24890C7FC5A5B003F6F5A705A
-705A007F92C8FC5BA312FFAD127F7FA3123F7F6CEE0F80A26C6D141F18006C6D5C6C6D14
-3E6C6D147E6C6D5C6D6C495A6DB4EB07F0010F9038C01FE06D90B5128001014AC7FCD900
-3F13F80203138031387CB63A>I<943803FF80040FB5FCA5EE003F170FB3A4913803FF80
-023F13F849B512FE0107ECFF8F011F9038C03FEF90273FFE0007B5FCD97FF8130149487F
-484980484980484980488291C8FC5A5B123FA2127F5BA312FFAD127FA37F123FA3121F7F
-6C5E6C6D5C5F6C6D91B5FC6C6D5B6C6D4914E0D97FFCD90FEFEBFF80D91FFFEB7F8F0107
-90B5120F010114FC6D6C13E00207010049C7FC41547CD249>I<913807FF80027F13F849
-B512FE01076E7E011F010313E0903A3FFC007FF0D97FF06D7E49486D7E4849130F48496D
-7E48824890C77E1880485A82003F17C0A3485A18E082A212FFA290B8FCA401FCCAFCA612
-7FA37F123FA2EF03E06C7E17076C17C06C6D140F18806C6D141F6C6DEC3F006C6D147ED9
-7FFC495AD91FFFEB07F86D9038E03FF0010390B512C001005D023F01FCC7FC020113E033
-387CB63C>I<DA1FFE14FE49B539E007FF80010FDAFC1F13C0013FDAFF7F13E090267FF8
-07EBFF072701FFE001EBF07F48497E484990387FF83F91C7003F14C048EEFC1F489338FE
-070049021F90C7FCA2003F82A9001F5EA26D143F6C5E6C5E6E137F6C6D495A6C6D485B6C
-D9F80713804890B6C8FCD803EF14FC01C114E02707C01FFEC9FC49CBFCA2487EA37FA27F
-13FC90B612FE6CEDFFF017FCEFFF806C8318F06C836C837F48B87E1207D80FFCC700037F
-4848EC003F4848150F48486F138083485A83A56D5D007F18006D5D003F5F6C6C4B5A01FE
-153FD807FFED7FF06C01C049485AC601FC011F1380013FB648C7FC010F15F8010115C0D9
-000F01F8C8FC3B4F7CB542>103 D<EB3FF8B5FCA51203C6FCB3A4EE1FFC93B57E030314
-E0030F14F892391FC07FFC92397E003FFE03F86D7EECF9F04B6D7FECFBC0ECFF8092C76C
-7FA25CA25CA45CB3ACB6D8F807B612C0A542537CD249>I<133FEBFFC0487F487FA2487F
-A66C5BA26C5B6C5B013FC7FC90C8FCAEEB1FF8B5FCA512017EB3B3A6B612F0A51C547CD3
-24>I<EB3FF8B5FCA51203C6FCB3A50407B512F0A59339007FF000EF3FC04D5A4DC7FCEE
-01FC4C5AEE0FF04C5A4C5A4CC8FC16FEED03FC4B5A4B5A4B5A4B7E4B7EECF9FF02FB7F91
-B57EA28203BF7F031F7F14FE4A6C7FDAF0077F6F7FA26F7F6F7F167F83707F707FA2707F
-707F707FA2707F707F84B6D8F00F14FEA53F537DD245>107 D<EB3FF8B5FCA51203C6FC
-B3B3B3B1B612F8A51D537CD224>I<D93FF0D91FF84AB47EB591B56C010F13F8030302E0
-013F13FE030F6E90B6FCDB3F809027F803F80F7F922A7E007FFC07E0077F000302F89028
-3FFE0F80037FC6D9F1F0011F49487EDAF3E0DAFF3E814B153CDAF7805D92C76C496D7F14
-FF4A5EA24A5EA34A5EB3ADB6D8F80FB66CB612F8A565367BB56E>I<D93FF0EB1FFCB591
-B57E030314E0030F14F892391FC07FFC92397E003FFE000302F86D7EC6EBF1F04B6D7FEC
-F3C0ECF78092C76C7F14FF5CA25CA45CB3ACB6D8F807B612C0A542367CB549>I<913801
-FFC0023F13FE91B67E010315E0010F018013F8903A3FFC001FFED97FF0EB07FF49486D7F
-48496D7F48496D7F91C8127F4883488349153F001F83A2003F8349151FA2007F83A400FF
-1880AC007F1800A3003F5F6D153FA2001F5FA26C6C4B5AA26C6D4A5A6C5F6C6D495B6C6D
-495B6D6C4990C7FCD93FFCEB1FFE6DB46CB45A010790B512F0010115C0D9003F49C8FC02
-0313E039387CB642>I<90393FF001FCB590380FFF804B13E0037F13F09238FE1FF89138
-F1F83F00019138F07FFC6CEBF3E015C0ECF780A2ECFF00EE3FF84AEB1FF0EE0FE093C7FC
-5CA45CB3ABB612FEA52E367DB535>114 D<903903FFC00E011FEBFC1E90B6127E000315
-FE3907FE003FD80FF0130F4848130348481301491300127F90C8127EA248153EA27FA27F
-01F091C7FC13FCEBFF806C13FEECFFF06C14FE6F7E6C15E06C816C15FC6C81C681133F01
-0F15801301D9000F14C0EC003F030713E0150100F880167F6C153FA2161F7EA217C07E6D
-143F17807F6DEC7F0001F85C6DEB03FE9039FF801FFC486CB512F0D8F81F14C0D8F00791
-C7FC39E0007FF02B387CB634>I<147CA614FCA41301A31303A21307A2130F131F133F13
-7F13FF1203000F90B512FEB7FCA426007FFCC8FCB3A9EE0F80ABEE1F006D7EA2011F143E
-806D6D5A6DEBC1F86DEBFFF001005C023F1380DA03FEC7FC294D7ECB33>I<D93FF89138
-01FFC0B50207B5FCA50003ED001FC61607B3AE5FA35FA25F137F5F6D6C14F7DC01E713F0
-6D6CD907C7EBFFC0903A0FFF801F876D90B51207010114FC6D6C13F0020701C091C7FC42
-377CB549>I<B600E090381FFFFCA5000101F8C7000113006CEE007C6E15FC017F5E6E14
-01013F5E8017036D6D5C17076D5E6F130F6D5E6F131F6D93C7FC815F6D6D133E177E6D15
-7C6F13FC027F5C811601DA3FFF5B16036E5C16876E5C16CF6E5C16EF16FF6E91C8FCA26E
-5BA26E5BA26F5AA36F5AA26F5AA26F5AA35E151F93C9FC5D153E157ED81FC0137C487E48
-6C13FC486C5B14015D4A5A14074A5A6C48485A4948CAFC495A383F81FC6CB45A6C5B0003
-13C0C648CBFC3E4D7DB445>121 D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Ff ecrm1000 10 81
-/Ff 81 123 df<B81280A2290280962A>21 D<DA0FF813FC91397FFF07FF903B01F807DF
-83C0903A07E001FF0F903B1F8007FE1FE090393F000FFC137E16F85B9338F00780484801
-0790C7FC1503ACB812F8A32801F80003F0C7FCB3AB486C497E267FFFE0B512F0A3333B7F
-BA30>27 D<EC0FF8EC7FFE903901F80780903907E001C090391F8000E090383F0007017E
-497EA25BA2485A6F5AED018092C8FCA9ED03F0B7FCA33901F8000F1503B3AA486C497E26
-7FFFE0B512C0A32A3B7FBA2E>I<EC0FFC91387FFF70903901F803F0903807E00790381F
-800FEB3F00137EA25B150748481303ADB7FCA33901F80003B3AB486C497E267FFFE0B512
-C0A32A3B7FBA2E>I<DA0FF0EB1FF0DA7FFEEBFFFC903B01F80F83F00F903C07E001CFC0
-0380903C1F8000FF0001C090273F0007FE130F017E4948497EA2495CA248485C03076E5A
-03030203C7FC95C8FCA9F007E0BAFCA33C01F80003F0001F1807B3AA486C496C497E267F
-FFE0B500C1B51280A3413B7FBA45>I<007C137C00FE13FEEAFF01A3EAFE00A7007E13FC
-007C137CA8003C137800381338A700181330171E77BA2A>34 D<121C127FEAFF80A213C0
-A3127F121C1200A412011380A2120313005A1206120E5A5A5A12600A1979B917>39
-D<146014E0EB01C0EB0380EB0700130E131E5B5BA25B485AA2485AA212075B120F90C7FC
-A25A121EA2123EA35AA65AB2127CA67EA3121EA2121F7EA27F12077F1203A26C7EA26C7E
-1378A27F7F130E7FEB0380EB01C0EB00E01460135278BD20>I<12C07E12707E7E7E120F
-6C7E6C7EA26C7E6C7EA21378A2137C133C133E131EA2131F7FA21480A3EB07C0A6EB03E0
-B2EB07C0A6EB0F80A31400A25B131EA2133E133C137C1378A25BA2485A485AA2485A48C7
-FC120E5A5A5A5A5A13527CBD20>I<EB0380497EA7397803803C00FC147E00FE14FE397F
-8383FC393FC387F8390FE38FE03903FBBF803900FFFE00EB3FF8EB0FE0A2EB3FF8EBFFFE
-3903FBBF80390FE38FE0393FC387F8397F8383FC39FE0380FE00FC147E0078143C390007
-C000A76D5A1F247BBD2A>I<121C127FEAFF80A213C0A3127F121C1200A412011380A212
-0313005A1206120E5A5A5A12600A19798817>44 D<B512FCA516057F941C>I<121C127F
-EAFF80A5EA7F00121C0909798817>I<1506A2150E150CA2151C151815381530A2157015
-60A215E015C0A214011580A2140315005C1406A2140E140CA2141C1418A214381430A214
-70146014E05CA213015CA2130391C7FCA25B1306A2130E130C131C1318A213381330A213
-701360A213E05BA212015B120390C8FCA25A1206A2120E120CA2121C1218A21238123012
-701260A212E05AA21F537BBD2A>I<EB03F8EB1FFF90387E0FC09038F803E03901E000F0
-484813780007147C48487FA248C77EA2481580A3007EEC0FC0A500FE15E0B3007E15C0A4
-007F141F6C1580A36C1500A26C6C133EA26C6C5B6C6C5BEBF0013900F803E090387E0FC0
-D91FFFC7FCEB03F823397DB62A>I<EB01C013031307131F13FFB5FCA2131F1200B3B3A7
-497E007FB512F0A31C3779B62A>I<EB0FF0EB7FFE48B57E3903E03FE0390F000FF0001E
-6D7E001C6D7E486D7E5A6E7E126012FE6CEC7F807FA56CC7FC121CC8FCEDFF00A25D1401
-5D14035D4A5A4A5A5D4A5A4AC7FC147E5C495A14E0495A495A49C8FC011EEB01805B5B49
-130348481400485A485A90C75A48B6FC5A5A485CB6FCA321377CB62A>I<EB07F8EB3FFF
-90B512C03901F80FF03903C007F848486C7E390E0001FEEA0F80391FE000FF7FA56C5A6C
-5AC7485AA25D14035D4A5A5DEC0F80027FC7FCEB1FFCECFF809038000FE06E7EEC01FC81
-6E7EED7F80A216C0A2153F16E0A2121EEA7F80A2487EA316C0157F491480007EC7FC0070
-ECFF006C495A121E390F8003F83907F00FF00001B512C06C6C90C7FCEB0FF823397DB62A
->I<1538A2157815F8A2140114031407A2140F141F141B14331473146314C313011483EB
-030313071306130C131C131813301370136013C01201EA038013005A120E120C5A123812
-305A12E0B712F8A3C73803F800AA4A7E0103B512F8A325387EB72A>I<0006140CD80780
-133C9038F003F890B5FC5D5D158092C7FC14FC38067FE090C9FCAAEB07F8EB1FFE903878
-0F809038E007E03907C003F0496C7E130000066D7E81C8FC8181A21680A4121C127F5A7F
-A390C713005D12FC00605C12704A5A6C5C6C1303001E495A6C6C485A3907E03F800001B5
-C7FC38007FFCEB1FE021397CB62A>I<EC3FC0903801FFF0010713FC90380FE03E90383F
-800790387E001F49EB3F804848137F485A12075B000FEC3F0049131E001F91C7FC5B123F
-A3127F90C9FCEB01FC903807FF8039FF1E07E090383801F0496C7E01607F01E0137E497F
-16805BED1FC0A390C713E0A57EA47F123F16C0A2001FEC3F807F000F15006D5B000714FE
-6C6C5B6C6C485A3900FE07F090387FFFC0011F90C7FCEB03FC23397DB62A>I<12301238
-123E003FB612E0A316C05A168016000070C712060060140E5D5D00E014304814705D5DC7
-12014A5A4AC7FC1406140E5CA25C1478147014F05C1301A213035C1307A2130FA3131F5C
-A2133FA5137FA96DC8FC131E233A7BB72A>I<EB03F8EB1FFF017F13C09038FC07F03901
-E001F83903C0007C4848133C90C7123E48141E000E141F001E80A3121FA26D5B6D131E7F
-D80FF85B6D137C01FF13786C6D5A6CEBE3E0ECF780C601FFC7FC6D5A6D6C7E010F13E001
-3F7F01F97F3901E07FFE48486C7E380F800F48486C1380001E010113C0487F007C143F00
-78EC1FE0150F00F81407481403A21501A36C15C0A200781403007C15806C14076CEC0F00
-6C6C131ED807E0137C3903F803F0C6B55A013F1380D907FCC7FC23397DB62A>I<EB03F8
-EB1FFF017F13C03901FC07E048486C7E3907E001F8000F6D7E4848137E5B003F80A248C7
-1380A25AED1FC0A516E0A56C143FA36C7E157F121F6C6C13FF6C6C13DF000313013901F0
-039F3900FC0F1FD93FFC13C0EB07F090C7FCA2153F1680A216005D120F486C137E486C5B
-A24A5A4A5A49485A381F000F001CEB1F80260F807FC7FC3807FFFE000113F838003FC023
-397DB62A>I<121C127FEAFF80A5EA7F00121CC7FCB2121C127FEAFF80A5EA7F00121C09
-2479A317>I<121C127FEAFF80A5EA7F00121CC7FCB2121C127FEAFF80A213C0A3127F12
-1C1200A412011380A2120313005A1206120E5A5A5A12600A3479A317>I<007FB812F8B9
-12FCCCFCB0B912FC6C17F836147B9E41>61 D<EC03FF021F13E09138FC00FCD901E0131E
-D90780EB0780011EC7EA01E00138EC00704981498148488148488190C97E48D901FC1480
-000ED907FFEB01C0000C90391F03C000001C90267E00E013E000184901701360263801F8
-6D13700030496D13300103EC0FE0267007E00107133800601718495AA200E0171C484848
-150CAA6C6C7E1260A26D6C151C00701718263003F0130F0101141F00386D013F13382618
-00FC01771330001C017E9038E3F070000C90261F03C113E0000E903A07FF00FFC06CD901
-FCEB3F006C90CAFC7F6C7E6C7E13706D167C011EED03FCD90780EC1FF0D901E0ECFF80D9
-00FC90383FFC00021FB51280020301E0C7FC363C7BBA41>64 D<1538A3157CA315FEA34A
-7EA34A6C7EA202077FEC063FA2020E7FEC0C1FA2021C7FEC180FA202387FEC3007A20270
-7FEC6003A202C07F1501A2D901807F81A249C77F167FA20106810107B6FCA24981010CC7
-121FA2496E7EA3496E7EA3496E7EA213E0707E1201486C81D80FFC02071380B56C90B512
-FEA3373C7DBB3E>I<B712E016FC16FF0001903980007FC06C90C7EA1FE0707E707E707E
-A2707EA283A75F16035F4C5A4C5A4C5A4C5AEEFF8091B500FCC7FCA291C7EA7F80EE1FE0
-EE07F0707E707E83707EA21880177F18C0A7188017FFA24C13005F16034C5AEE1FF8486D
-EB7FF0B812C094C7FC16F832397DB83B>I<913A01FF800180020FEBE003027F13F8903A
-01FF807E07903A03FC000F0FD90FF0EB039F4948EB01DFD93F80EB00FF49C8127F01FE15
-3F12014848151F4848150FA248481507A2485A1703123F5B007F1601A35B00FF93C7FCAD
-127F6DED0180A3123F7F001F160318006C7E5F6C7E17066C6C150E6C6C5D00001618017F
-15386D6C5CD91FE05C6D6CEB03C0D903FCEB0F80902701FF803FC7FC9039007FFFFC020F
-13F002011380313D7BBA3C>I<B712C016F816FE000190398001FF806C90C7EA3FE0EE0F
-F0EE03F8707E707E177FA2EF3F8018C0171F18E0170F18F0A3EF07F8A418FCAC18F8A4EF
-0FF0A218E0A2171F18C0EF3F80A2EF7F0017FE4C5A4C5AEE0FF0EE3FE0486DEBFF80B8C7
-FC16F816C036397DB83F>I<B812FEA3000190388000076C90C8FC173F838383A383A318
-80170116C0A394C7FCA31501A21503150F91B5FCA3EC000F15031501A21500A21860A318
-E093C712C0A41701A3EF0380A21707A2170F173F177F486D903807FF00B9FCA333397EB8
-38>I<B812F8A30001903880001F6C90C71201EE00FC177C173C171CA2170CA4170E1706
-A2ED0180A21700A41503A21507151F91B5FCA3EC001F15071503A21501A692C8FCAD4813
-C0B612C0A32F397DB836>I<DBFF8013C0020FEBF001023F13FC9139FF803F03903A03FC
-000787D90FF0EB03CF4948EB00EF4948147F4948143F49C8121F485A4848150F48481507
-A248481503A2485A1701123F5B007F1600A448481600AB93B6FCA26C7E9338007FE0EF3F
-C0A2123F7F121FA26C7EA26C7EA26C7E6C7E6C6C157F6D7E6D6C14FF6D6C14EFD90FF8EB
-03C7D903FEEB0783903A00FFC03F0191393FFFFC00020F01F0130002001380383D7CBA41
->I<B648B512FEA30001902680000313006C90C76C5AB3A491B6FCA391C71201B3A6486D
-497EB648B512FEA337397DB83E>I<B612C0A3C6EBC0006D5AB3B3AD497EB612C0A31A39
-7EB81E>I<013FB512E0A39039001FFC00EC07F8B3B3A3123FEA7F80EAFFC0A44A5A1380
-D87F005B0070131F6C5C6C495A6C49C7FC380781FC3801FFF038007F80233B7DB82B>I<
-B649B5FCA3000101809038007FF06C90C8EA3F80053EC7FC173C17385F5F4C5A4C5A4CC8
-FC160E5E5E5E5E4B5AED0780030EC9FC5D153E157E15FF5C4A7F4A6C7E140E4A6C7E4A6C
-7E14704A6C7E4A6C7E14804A6C7E6F7EA26F7F707EA2707E707EA2707EA2707E707EA270
-7E707F8484486D497FB6011FEBFF80A339397DB841>I<B612E0A3000101C0C8FC6C90C9
-FCB3AD1718A517381730A31770A317F0A216011603160FEE1FE0486D13FFB8FCA32D397D
-B834>I<B5933807FFF86E5DA20001F0FC002600DFC0ED1BF8A2D9CFE01533A3D9C7F015
-63A3D9C3F815C3A2D9C1FCEC0183A3D9C0FEEC0303A2027F1406A36E6C130CA36E6C1318
-A26E6C1330A36E6C1360A26E6C13C0A3913901FC0180A3913900FE0300A2ED7F06A3ED3F
-8CA2ED1FD8A3ED0FF0A3486C6D5A487ED80FFC6D48497EB500C00203B512F8A2ED018045
-397DB84C>I<B5913807FFFE8080C69238007FE06EEC1F80D9DFF0EC0F001706EBCFF8EB
-C7FCA2EBC3FEEBC1FFA201C07F6E7EA26E7E6E7E81140F6E7E8114036E7E168080ED7FC0
-16E0153FED1FF0ED0FF8A2ED07FCED03FEA2ED01FF6F1386A2EE7FC6EE3FE6A2EE1FF6EE
-0FFEA216071603A216011600A2177E486C153E487ED80FFC151EB500C0140EA217063739
-7DB83E>I<EC03FF021F13E09138FE01FC903901F8007ED907E0EB1F8049486D7ED93F80
-EB07F049C76C7E01FE6E7E48486E7E49157E0003167F4848ED3F80A24848ED1FC0A2001F
-17E049150F003F17F0A3007F17F8491507A300FF17FCAC007F17F86D150FA3003F17F0A2
-6C6CED1FE0A36C6CED3FC0000717806D157F000317006C6C15FEA26C6C4A5A017F4A5A6D
-6C495A6D6C495AD907E0EB1F80D903F8017FC7FC903900FE01FC91381FFFE0020390C8FC
-363D7BBA41>I<B712C016FC16FF0001D9800013C06C90C7EA1FE0707EEE03F883707EA2
-707EA21880A71800A24C5AA24C5A5FEE0FF04C5AEEFF8091B548C7FC16F091CAFCB3A548
-7FB6FCA331397EB838>I<EC03FF021F13E09138FE01FC903901F8007ED907E0EB1F8049
-486D7ED93F80EB07F049C76C7E01FE6E7E48486E7EA24848157F0007178049153F000F17
-C049151F001F17E0A24848ED0FF0A3007F17F8A2491507A200FF17FCAC007F17F8A26D15
-0FA2003F17F0A26C6CED1FE0A36C6CED3FC00007027C14804AB4FC3C03F80383807F003B
-01FC0701C0FEEC0E002600FE0CEBE1FC017FEC63F8D93F8CEB77F0D91FCCEB3FE0D907EE
-14806DB449C7FC0100D981FC130CEC1FFF0203131C91C7001E131C161F183CEF807CEFC0
-F8EE0FFFA318F08218E07013C07013809338007E00364B7BBA41>I<B612FEEDFFE016F8
-000190388007FE6C90C76C7EEE3FC0707E707E707EA2707EA283A65FA24C5AA24C5A4C5A
-EE3F8004FFC8FCED07FC91B512E05E9138000FF0ED03F8ED00FE82707E707EA2161F83A5
-83A6F00180A217F8160F1803486D01071400B66D6C5A04011306933800FE0ECAEA3FFCEF
-07F0393B7DB83D>I<D90FF813C090383FFE0190B512813903F807E33907E000F7484813
-7F4848133F48C7121F003E140F007E1407A2007C140312FC1501A36C1400A37E6D14006C
-7E7F13F86CB47E6C13F8ECFF806C14E06C14F86C14FEC680013F1480010714C0EB007F02
-0713E0EC007FED3FF0151F150FED07F8A200C01403A21501A37EA216F07E15036C15E06C
-14076C15C06C140F6DEB1F80D8FBF0EB3F00D8F0FE13FE39E03FFFF8010F13E0D8C00190
-C7FC253D7CBA2E>I<003FB812E0A3D9C003EB001F273E0001FE130348EE01F000781600
-00701770A300601730A400E01738481718A4C71600B3B0913807FF80011FB612E0A33539
-7DB83C>I<B6903807FFFEA3000101809038007FE06C90C8EA1F80EF0F001706B3B2170E
-6D150C80171C133F17186D6C14385F6D6C14F06D6C5C6D6C495A6D6CEB07806D6C49C7FC
-91387F807E91381FFFF8020713E09138007F80373B7DB83E>I<B500FC91387FFF80A300
-03018091380FFC006C90C8EA07E0715A6C705A6E1403017F93C7FCA280013F1506A26E14
-0E011F150C80010F5DA28001075DA26E147001031560A26D6C5CA2806D4A5AA2ED800302
-7F91C8FCA291383FC006A215E0021F5BA2EDF01C020F1318A26E6C5AA215FC02035BA2ED
-FEE002015BA26E6C5AA36FC9FCA3153EA2151CA3393B7EB83E>I<B5D8FC07B5D8F001B5
-FCA30007902780001FFEC7EA1FF86C48C7D80FF8EC07E000010307ED03C01B807F6C6F6C
-1500A26E5F017F6E6C1406A280013F4A6C5CA280011F4A6D5BEE067FA26D6C010E6D5BEE
-0C3FA26D6C011C6D5BEE181FA26D6C6F5BEE300FA26D6C6F485AEE6007A26D6C4CC7FC93
-38C003FCA203805D913B7F818001FE06A203C1150EDA3FC3C7EAFF0CA203E3151CDA1FE6
-EC7F98A215F6DA0FFCEC3FF0A302075E4B141FA202035E4B140FA202015E4B1407A20200
-93C8FC4B80503B7EB855>I<007FB590383FFFFCA3C601F801071380D97FE0D903FCC7FC
-013FEC01F06D6C5C5F6D6C5C6D6C13034CC8FC6D6C1306160E6D6C5B6DEB801816389138
-7FC0306E6C5A16E06E6C5A91380FF18015FB6EB4C9FC5D14036E7EA26E7F6F7EA24B7E15
-DF9138019FF09138038FF8150F91380607FC91380E03FE140C4A6C7EEC38000230804A6D
-7E14E04A6D7E49486D7E130391C76C7E01066E7E130E010C6E7E011C1401013C8101FE82
-2607FF80010713E0B500E0013FEBFF80A339397EB83E>I<B500FE91383FFFE0A3000301
-E0913807FE00C649EC03F0017F6F5A606D6C5D6D6C140395C7FC6D6C1406A26D6C5C6D6C
-141C17186D6C143817306D6D5B6E6C13E05F91383FE0015F91381FF003DA0FF890C8FC16
-06913807FC0E160C913803FE1C913801FF185E6E13B016E0157F6F5AB3A24B7E023FB512
-C0A33B397FB83E>I<003FB7FCA39039FC0001FE01C0130349495A003EC7FC003C4A5A5E
-0038141F00784A5A12704B5A5E006014FF4A90C7FCA24A5A5DC712074A5AA24A5A5D143F
-4A5AA24A5A92C8FC5B495AA2495A5C130F4948EB0180A2495A5C137F495A16034890C7FC
-5B1203485AEE0700485A495C001F5D48485C5E4848495A49130FB8FCA329397BB833>I<
-007FB81280B912C0A26C17803204797041>95 D<EB1FE0EBFFFC3803E03F3907000F8039
-0F8007E0486C6C7E13E06E7EA26E7E6C5A6C5AC8FCA4147FEB07FFEB3FE0EBFE00EA03F8
-EA0FF0EA1FC0123F485A90C7FC160C12FEA31401A26C13036CEB077C903980063E18383F
-C01E3A0FE0781FF03A03FFF00FE03A007F8007C026277DA52A>97
-D<EA03F012FFA3120F1203B0EC1FE0EC7FF89038F1E03E9039F3801F809039F7000FC001
-FEEB07E049EB03F049EB01F85BED00FCA216FEA2167E167FAA167E16FEA216FC15016D14
-F8ED03F07F01EEEB07E001C6EB0FC09039C7801F00903881E07E903800FFF8C7EA1FC028
-3B7EB92E>I<EB03FC90381FFF8090387E03E03901F80070484813F83907E001FC380FC0
-03A2EA1F80123F90380001F848EB00F01500A2127E12FEAA127E127FA26C14067F001F14
-0E6D130C000F141C6C6C13386C6C13706C6C13E039007C07C090381FFF00EB07F81F277D
-A525>I<ED0FC0EC03FFA3EC003F150FB0EB03F8EB1FFF90387E078F9038F801EF3903F0
-007F4848133F4848131FA24848130F123F90C7FC5AA2127E12FEAA127E127FA27EA26C6C
-131FA26C6C133F6C6C137F6C6CEBEFF03A01F801CFFF39007C078F90381FFE0FD907F813
-C0283B7DB92E>I<EB07F8EB1FFF90387C0FC03901F803E03903F001F0D807E013F8380F
-C0004848137CA248C7127E153E5A153F127E12FEA3B7FCA248C8FCA5127EA2127FA26C14
-037F001F14076C6C13060007140E6D131CD801F013386C6C137090387E03E090381FFF80
-903803FC0020277EA525>I<147E903803FF8090380FC1E0EB1F8790383F0FF0137EA213
-FCA23901F803C091C7FCADB512FCA3D801F8C7FCB3AB487E387FFFF8A31C3B7FBA19>I<
-ED03F090390FF00FF890393FFC3C3C9039F81F707C3901F00FE03903E007C03A07C003E0
-10000FECF000A248486C7EA86C6C485AA200075C6C6C485A6D485A6D48C7FC38073FFC38
-060FF0000EC9FCA4120FA213C06CB512C015F86C14FE6CECFF804815C03A0F80007FE048
-C7EA0FF0003E140348140116F8481400A56C1401007C15F06CEC03E0003F1407D80F80EB
-0F80D807E0EB3F003901FC01FC39007FFFF0010790C7FC26387EA52A>I<EA03F012FFA3
-120F1203B0EC0FF0EC3FFCECF03F9039F1C01F809039F3800FC0EBF70013FE496D7EA25B
-A35BB3A3486C497EB500C1B51280A3293A7EB92E>I<EA0380EA0FE0487EA56C5AEA0380
-C8FCAAEA03F012FFA312071203B3AA487EB512C0A312387EB717>I<EB01C0EB07F0EB0F
-F8A5EB07F0EB01C090C7FCAAEB01F813FFA313071301B3B3A2123C127E00FF13F01303A2
-14E038FE07C0127C383C0F00EA0FFEEA03F8154984B719>I<EA03F012FFA3120F1203B1
-913801FFFCA39138007FC01600157C15705D4A5A4A5A4AC7FC141E1438147814FC13F1EB
-F3FEEBF73F01FE7FEBF81F496C7E8114076E7E6E7E811400157E157F811680ED1FC0486C
-EB3FF0B500C0B5FCA3283A7EB92C>I<EA03F012FFA3120F1203B3B3AD487EB512C0A312
-3A7EB917>I<2703F00FF0EB1FE000FFD93FFCEB7FF8913AF03F01E07E903BF1C01F8380
-3F3D0FF3800FC7001F802603F70013CE01FE14DC49D907F8EB0FC0A2495CA3495CB3A348
-6C496CEB1FE0B500C1B50083B5FCA340257EA445>I<3903F00FF000FFEB3FFCECF03F90
-39F1C01F803A0FF3800FC03803F70013FE496D7EA25BA35BB3A3486C497EB500C1B51280
-A329257EA42E>I<EB03FE90380FFF8090383E03E09038F800F84848137C48487F48487F
-4848EB0F80001F15C090C712074815E0A2007EEC03F0A400FE15F8A9007E15F0A2007F14
-076C15E0A26C6CEB0FC0000F15806D131F6C6CEB3F006C6C137EC66C13F890387E03F090
-381FFFC0D903FEC7FC25277EA52A>I<3903F01FE000FFEB7FF89038F1E07E9039F3801F
-803A07F7000FC0D803FEEB07E049EB03F04914F849130116FC150016FEA3167FAA16FEA3
-ED01FCA26DEB03F816F06D13076DEB0FE001F614C09039F7803F009038F1E07E9038F0FF
-F8EC1FC091C8FCAB487EB512C0A328357EA42E>I<D903F813C090381FFE0190387E0781
-9038FC01C33903F000E3000714774848133749133F001F141F485A150F48C7FCA312FEAA
-127FA37E6D131F121F6D133F120F6C6C137F6C6C13EF3901F801CF39007E078F90381FFE
-0FEB07F890C7FCABED1FE00203B5FCA328357DA42C>I<3807E01F00FFEB7FC09038E1E3
-E09038E387F0380FE707EA03E613EE9038EC03E09038FC0080491300A45BB3A2487EB512
-F0A31C257EA421>I<EBFF03000313E7380F80FF381E003F487F487F00707F12F0A2807E
-A27EB490C7FCEA7FE013FF6C13E06C13F86C7F00037FC67F01071380EB007F141F00C0EB
-0FC01407A26C1303A37E15806C13077EEC0F00B4131E38F3C07C38E1FFF038C03F801A27
-7DA521>I<1318A51338A31378A313F8120112031207001FB5FCB6FCA2D801F8C7FCB215
-C0A93800FC011580EB7C03017E13006D5AEB0FFEEB01F81A347FB220>I<D803F0EB07E0
-00FFEB01FFA3000FEB001F00031407B3A4150FA3151F12016D133F0000EC77F86D9038E7
-FF8090383F03C790381FFF87903A03FC07E00029267EA42E>I<B538803FFEA33A0FF800
-0FF06C48EB07E00003EC03C06D148000011500A26C6C1306A26D130E017E130CA26D5BA2
-EC8038011F1330A26D6C5AA214E001075BA2903803F180A3D901FBC7FCA214FF6D5AA214
-7CA31438A227257EA32C>I<B53A1FFFE03FFEA3260FF8009038000FF86C48017EEB03E0
-18C00003023EEB0180A26C6C013FEB0300A36C6CEC8006156FA2017E9038EFC00C15C717
-1CD93F01EBE01815830281EBF038D91F831430150102C3EBF87090260FC6001360A2D907
-E66D5A02EC137CA2D903FCEB7F804A133FA2010192C7FC4A7FA20100141E4A130E026013
-0C37257EA33C>I<B538807FFFA33A03FE003FF00001EC1F80000092C7FC017E131C6D13
-186D6C5AECC070010F5B6D6C5AECF180EB03FB6DB4C8FC6D5AA2147F804A7E8114CF9038
-01C7E090380383F090380703F8EB0601496C7E011C137E49137F01787F496D7E486C8000
-0FEC3FF0D8FFFE90B51280A329247FA32C>I<B538803FFEA33A0FF8000FF06C48EB07C0
-0003EC03806C7E16007F00001406A2017E5BA2137F6D5BA26D6C5AA2ECC070010F1360A2
-6D6C5AA214F101035BA2D901FBC7FCA214FF6D5AA2147CA31438A21430A214701460A25C
-A2EA7C0100FE5B130391C8FC1306EAFC0EEA701C6C5AEA1FF0EA0FC027357EA32C>I<00
-3FB512FCA2EB8003D83E0013F8003CEB07F00038EB0FE012300070EB1FC0EC3F80006013
-7F150014FE495AA2C6485A495AA2495A495A495AA290387F000613FEA2485A485A000714
-0E5B4848130C4848131CA24848133C48C7127C48EB03FC90B5FCA21F247EA325>I
-E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fg ecss2074 20.74 10
-/Fg 10 116 df<EAFFC0B3B3B3B3B3B390B912FCA83E7570F456>76
-D<D8FFC0F03FF0B3B3B3B3AD6C6CF07FE0A46C6CF0FFC0A36D5F001F1A80A26C6C4D1300
-A26C6C4D5A6D170F6C616E161F6C6D4C5A6C6D4C5A6E16FF6D6C4B5B6D6C4B5B6D6C4B5B
-6D6C6C021F90C7FC6D01E0EC7FFE6D01F849485A6D9026FF801F5B6D91B65A6E5E021F16
-8002074BC8FC020115F86E6C14E0030F91C9FC030013F04C7770F46D>85
-D<91380FFF8049B512F0010F14FC017F14FF48B712C0000782001F824882DAE0007F49C7
-EA3FFE01F8140FD81FC06E7E90C86C1380121E00186F13C0001081CAFCEF7FE0A318F017
-3FAD93B5FC157F0207B6FC143F49B7FC1307011F153F017FEBF80090B512804801F8C7FC
-4813C04890C8FCEA0FFC485A485A5B485A5BA248C9FCA5177FA26D15FFA26C6C5C6D5C6D
-140F6C6C5C01FF91B5FC6CEBE00791B612BF6CEDFE3F16FC6C15F06C15C06CECFE006C6C
-13F0D91FFCC9FC344C77CA4C>97 D<EAFFC0B3B3ADED0FFC92B57E020714E0021F80027F
-14FC91B67E01C38101C7829026CFFE0080D9DFF0131FD9FFC001037F4A6D7F49C86C7E49
-153F496F7E170F496F7E5B717E4981A2711380A2187FA219C0183FA419E0181FAD183F19
-C0A3187FA2198018FFA24D1300A25F6D5E17076D4B5A6D151F4D5A6D4B5A6D15FF6D0203
-5B6E495BD9DFE0013F5B9026CFFC01B5C7FC01C7B65A01C35D01C15D01C05D023F14C002
-0F5C020301FCC8FCC8EA3FE03B7C72FA52>I<ED3FFF4AB512F8020F14FF023F15C04A15
-F049B712FC4916FF49178049EBE0004990C7120FD93FFC02011300D97FF06E7E4948151F
-0280814890C912034894C7FC5B485A5B120F5B121F5B123F5BA3485AA548CCFCAD6C7EA4
-7F123FA27F121F7FA26C7EA26C6C17806D1601000317036C6C160F6E151F6C01E0ED7FC0
-6D6CEC01FFD93FFC14076DB4143F6DD9E003B512806D90B6EAFE006D5E6D16F06D6C5D6E
-1580020F02FCC7FC020114E09126003FFCC8FC3A4C78CA47>I<DB1FE04AB4FC912601FF
-FE143F02079026FF8003B5FC4AECC01F023F02F0B6FC4A02FB158091BAFC49EBE01F49D9
-000302FCC7FC49486D01F8C8FC02F89038007F8049486E7E49486E7E4A140F013F824A14
-07A249C86C7EA401FE6F7EAA017F4B5AA46D6C4A5AA26E140F011F5E6E141F6D6C4A5A6D
-6C4A5A02FEEB01FF496C4990C9FC499038E01FFE92B55A495D02BF5C020F14C0496C5CD9
-7E0149CAFC9138001FE001FE90CCFCA67FA27F8080EB3FF091B612FE6DEDFFF818FF6D17
-C019F0013F17FC498390BA7E48854801E0C71203480180DA001F7F4848C900037F484816
-0049EF3FF84848171F49717E127F4917078648481703A76D1707007F616D170F003F616D
-171FD81FFCEF7FF06C6C4D5A6D5E6C01C003075B6C01F8033F5BC601FF4AB448C7FC6D01
-F0011F5B6D90B75A010F17E00103178001004CC8FC021F15F002031580DA000F01E0C9FC
-496D7CC950>103 D<EAFFE0ABC7FCB3A9EA7FE0B3B3B3B30B6F74EE25>105
-D<EAFFC0B3B3B3B3B3B3AF0A7B73FA25>108 D<ED1FF826FFC001B57E020714E0021F14
-F8027F8091B67E01C18101C316809038C7FE00D9CFF0011F13C0D9DFE0010713E0D9FF80
-130191C8FC18F049157F5B173F4916F8A249151FA35BA45BB3B3AC354A72C952>110
-D<91380FFFC091B512FE0107ECFFC0011F15F8017F15FE90B812804817C05A489038F000
-3F4890C70003138049EC007FD81FF8151F491507003F16014992C7FCA2485AA77FA26C7E
-7F7F6CB4FC6C13C014F86CEBFF806C14FC6CECFFE06C15FC6D14FF6D15C0010F81010315
-F8010081020F80DA007F7F03071480DB003F13C0160F040313E01600EF7FF0173FA2EF1F
-F8A2170FA7EF1FF0A20070163F127C007FEE7FE001C015FF01F0020313C0B5020F138002
-F0137F91B712006C5E001F5E000716F0C65E011F1580010302FCC7FCD9000F13C0354C7C
-CA3D>115 D E
-%EndDVIPSBitmapFont
-end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%BeginPaperSize: Letter
-letter
-%%EndPaperSize
-
-%%EndSetup
-%%Page: 1 1
-1 0 bop 0 201 a Fg(Using)54 b(Libical)p 0 315 3900 24
-v 0 428 a Ff(Eric)28 b(Busb)r(o)r(om)f(\(eric@soft)n(w)n
-(arestudio.org\))1948 b(Jan)n(uary)26 b(2001)0 1072 y
-Fe(Con)l(ten)l(ts)0 1312 y Fd(1)77 b(In)m(tro)s(duction)3201
-b(2)125 1468 y Ff(1.1)83 b(The)28 b(libical)f(pro)5 b(ject)67
-b(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)
-f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134 b(3)125 1625 y(1.2)83
-b(License)22 b(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)
-f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h
-(.)134 b(3)125 1781 y(1.3)83 b(Example)28 b(Co)r(de)78
-b(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)
-f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134 b(3)0 2021
-y Fd(2)77 b(Building)30 b(the)h(Library)2865 b(3)0 2260
-y(3)77 b(Structure)3330 b(3)125 2417 y Ff(3.1)83 b(Core)27
-b(iCal)g(classes)62 b(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134
-b(4)315 2573 y(3.1.1)94 b(Prop)r(erties)34 b(.)42 b(.)f(.)h(.)g(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)
-h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f
-(.)h(.)134 b(4)315 2730 y(3.1.2)94 b(Comp)r(onen)n(ts)84
-b(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)
-h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g
-(.)f(.)h(.)f(.)h(.)f(.)h(.)134 b(5)315 2886 y(3.1.3)94
-b(V)-7 b(alues)108 b(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134
-b(5)315 3043 y(3.1.4)94 b(P)n(arameters)61 b(.)41 b(.)h(.)g(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)
-f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h
-(.)134 b(5)125 3199 y(3.2)83 b(Other)27 b(elemen)n(ts)h(of)f(libical)42
-b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f
-(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)
-f(.)h(.)f(.)h(.)134 b(5)315 3356 y(3.2.1)94 b(En)n(umerations)27
-b(and)g(t)n(yp)r(es)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)
-g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f
-(.)h(.)f(.)h(.)f(.)h(.)134 b(5)315 3512 y(3.2.2)94 b(The)28
-b(parser)78 b(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)
-h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134 b(5)315
-3669 y(3.2.3)94 b(Error)26 b(ob)5 b(jects)57 b(.)42 b(.)g(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)
-f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h
-(.)134 b(5)315 3825 y(3.2.4)94 b(Memory)27 b(Managemen)n(t)65
-b(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)
-h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f
-(.)h(.)134 b(5)315 3981 y(3.2.5)94 b(Storage)26 b(classes)64
-b(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)
-g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f
-(.)h(.)f(.)h(.)f(.)h(.)134 b(5)0 4221 y Fd(4)77 b(Di\033erences)30
-b(F)-8 b(rom)31 b(RF)m(Cs)2750 b(6)125 4377 y Ff(4.1)83
-b(Pseudo)28 b(Comp)r(onen)n(ts)62 b(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134
-b(6)125 4534 y(4.2)83 b(Com)n(bined)28 b(V)-7 b(alues)108
-b(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)
-f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134 b(6)125 4690 y(4.3)83
-b(Multi-V)-7 b(alued)28 b(Prop)r(erties)54 b(.)41 b(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134
-b(6)0 4930 y Fd(5)77 b(Using)31 b(libical)3208 b(7)125
-5086 y Ff(5.1)83 b(Creating)27 b(Comp)r(onen)n(ts)73
-b(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)
-g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f
-(.)h(.)f(.)h(.)f(.)h(.)134 b(7)315 5243 y(5.1.1)94 b(Constructor)26
-b(In)n(terfaces)48 b(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h
-(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)
-f(.)h(.)f(.)h(.)f(.)h(.)134 b(7)315 5399 y(5.1.2)94 b(v)-5
-b(aargs)26 b(Constructors)70 b(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h
-(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134 b(8)p eop
-%%Page: 2 2
-2 1 bop 0 -167 3900 5 v 0 -200 a Fd(1.)73 b(In)m(tro)s(duction)3184
-b Ff(2)315 162 y(5.1.3)94 b(P)n(arsing)26 b(T)-7 b(ext)28
-b(Files)68 b(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h
-(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)
-f(.)h(.)f(.)h(.)f(.)h(.)134 b(8)125 318 y(5.2)83 b(A)n(ccessing)27
-b(Comp)r(onen)n(ts)105 b(.)41 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h
-(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)93 b(10)315 475
-y(5.2.1)h(Finding)28 b(Comp)r(onen)n(ts)99 b(.)42 b(.)f(.)h(.)f(.)h(.)g
-(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)93 b(10)315
-631 y(5.2.2)h(Iterating)27 b(Through)f(Comp)r(onen)n(ts)45
-b(.)d(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)93
-b(10)315 788 y(5.2.3)h(Using)27 b(Comp)r(onen)n(t)h(Iterators)59
-b(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)
-g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)93
-b(11)315 944 y(5.2.4)h(Remo)n(ving)27 b(Comp)r(onen)n(ts)83
-b(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)
-f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h
-(.)93 b(12)315 1101 y(5.2.5)h(W)-7 b(orking)27 b(with)h(prop)r(erties)e
-(and)i(parameters)e(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)93
-b(12)315 1257 y(5.2.6)h(W)-7 b(orking)27 b(with)h(v)-5
-b(alues)52 b(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g
-(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)
-h(.)f(.)h(.)f(.)h(.)93 b(13)315 1413 y(5.2.7)h(Chec)n(king)27
-b(Comp)r(onen)n(t)g(V)-7 b(alidit)n(y)25 b(.)42 b(.)g(.)f(.)h(.)f(.)h
-(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)93 b(14)315 1570 y(5.2.8)h(Con)n(v)n
-(erting)26 b(Comp)r(onen)n(ts)h(to)g(T)-7 b(ext)74 b(.)41
-b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)93 b(14)125
-1726 y(5.3)83 b(Time)33 b(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)
-g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f
-(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)
-f(.)h(.)f(.)h(.)93 b(15)315 1883 y(5.3.1)h(Time)28 b(structure)56
-b(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)
-g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f
-(.)h(.)f(.)h(.)f(.)h(.)93 b(15)315 2039 y(5.3.2)h(Creating)26
-b(time)j(structures)j(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)
-g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f
-(.)h(.)f(.)h(.)f(.)h(.)93 b(15)315 2196 y(5.3.3)h(Time)28
-b(manipulating)f(routines)38 b(.)j(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g
-(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)
-h(.)f(.)h(.)f(.)h(.)93 b(15)125 2352 y(5.4)83 b(Storing)27
-b(Ob)5 b(jects)39 b(.)i(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)93
-b(17)315 2509 y(5.4.1)h(Creating)26 b(a)i(new)f(set)48
-b(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)
-h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f
-(.)h(.)f(.)h(.)93 b(17)315 2665 y(5.4.2)h(A)n(dding,)28
-b(Finding)f(and)h(Remo)n(ving)e(Comp)r(onen)n(ts)76 b(.)41
-b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h
-(.)f(.)h(.)f(.)h(.)93 b(18)315 2822 y(5.4.3)h(Other)27
-b(routines)70 b(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f
-(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)93 b(19)125 2978
-y(5.5)83 b(Memory)27 b(Managemen)n(t)73 b(.)42 b(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)93
-b(19)125 3135 y(5.6)83 b(Error)27 b(Handling)56 b(.)41
-b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h
-(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)93 b(20)315 3291 y(5.6.1)h(Return)28
-b(v)-5 b(alues)34 b(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f
-(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)93 b(20)315
-3448 y(5.6.2)h(icalerrno)28 b(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h
-(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)93
-b(20)315 3604 y(5.6.3)h(X-LIC-ERR)n(OR)27 b(and)g(X-LIC-INV)-9
-b(ALID-COMPONENT)70 b(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)
-f(.)h(.)f(.)h(.)f(.)h(.)93 b(20)125 3760 y(5.7)83 b(Naming)28
-b(Standard)h(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f
-(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)93 b(21)0
-4000 y Fd(6)77 b(Hac)m(ks)32 b(and)g(Bugs)3009 b(22)0
-4338 y Fe(1)131 b(In)l(tro)t(duction)0 4577 y Ff(Libical)23
-b(is)f(an)h(Op)r(en)g(Source)f(implemen)n(tation)h(of)g(the)g
-(iCalendar)f(proto)r(cols)f(and)i(proto)r(col)e(data)i(units.)35
-b(The)23 b(iCalendar)0 4691 y(sp)r(eci\034cation)29 b(describ)r(es)f
-(ho)n(w)h(calendar)f(clien)n(ts)h(can)f(comm)n(unicate)h(with)h
-(calendar)d(serv)n(ers)g(so)i(users)f(can)h(store)f(their)0
-4804 y(calendar)e(data)h(and)h(arrange)d(meetings)i(with)h(other)f
-(users.)0 4961 y(Libical)g(implemen)n(ts)h(RF)n(C2445,)e(RF)n(C2446)f
-(and)j(some)f(of)g(RF)n(C2447)f(and)h(the)h(CAP)g(draft.)0
-5117 y(This)k(do)r(cumen)n(tation)g(assumes)g(that)g(y)n(ou)g(are)f
-(familiar)h(with)h(the)f(iCalendar)f(standards)g(RF)n(C2445)g(and)h(RF)
-n(C2446.)0 5231 y(these)c(sp)r(eci\034cations)e(are)h(online)g(on)h
-(the)g(CALSCH)g(w)n(ebpage)e(at:)p eop
-%%Page: 3 3
-3 2 bop 0 -167 3900 5 v 0 -200 a Fd(2.)73 b(Building)31
-b(the)g(Library)2847 b Ff(3)0 162 y Fc(http://www.imc.o)o(rg)o(/ie)o
-(tf)o(-c)o(ale)o(nd)o(ar)o(/)0 453 y Fb(1.1)112 b(The)38
-b(libical)c(pro)6 b(ject)0 663 y Ff(This)29 b(co)r(de)g(is)g(under)g
-(activ)n(e)f(dev)n(elopmen)n(t.)40 b(If)30 b(y)n(ou)e(w)n(ould)h(lik)n
-(e)f(to)h(con)n(tribute)g(to)g(the)g(pro)5 b(ject,)29
-b(y)n(ou)f(can)h(con)n(tact)f(me,)0 777 y(Eric)g(Busb)r(o)r(om,)f(at)g
-(eric@soft)n(w)n(arestudio.org.)33 b(The)27 b(pro)5 b(ject)27
-b(has)g(a)g(w)n(ebpage)g(at)0 1016 y Fc(http://softwares)o(tu)o(dio)o
-(.o)o(rg)o(/li)o(bi)o(ca)o(l/i)o(nd)o(ex)o(.ht)o(ml)0
-1256 y Ff(and)g(a)h(mailing)f(list)g(that)h(y)n(ou)f(can)g(join)h(b)n
-(y)f(sending)g(the)h(follo)n(wing)f(mail:)0 1495 y Fc(To:)42
-b(minimalist@softwa)o(re)o(st)o(udi)o(o.)o(or)o(g)0 1609
-y(Subject:)e(subscribe)g(libical)0 1900 y Fb(1.2)112
-b(License)0 2111 y Ff(The)60 b(co)r(de)f(and)h(data\034les)f(in)h(this)
-g(distribution)g(are)e(licensed)i(under)g(the)g(Mozilla)f(Public)h
-(License.)133 b(See)0 2224 y(h)n(ttp://www.mozilla.org/NPL/MPL-1.0.h)n
-(tml)37 b(for)j(a)h(cop)n(y)f(of)g(the)i(license.)76
-b(Alternately)-7 b(,)44 b(y)n(ou)c(ma)n(y)g(use)g(libical)0
-2338 y(under)32 b(the)g(terms)g(of)g(the)g(GNU)h(Library)d(General)h
-(Public)i(License.)50 b(See)32 b(h)n(ttp://www.fsf.org/cop)n
-(yleft/lesser.h)n(tml)0 2451 y(for)27 b(a)g(cop)n(y)g(of)g(the)h(LGPL.)
-0 2608 y(This)j(dual)g(license)f(ensures)h(that)g(the)g(library)f(can)g
-(b)r(e)i(incorp)r(orated)d(in)n(to)i(b)r(oth)g(proprietary)e(co)r(de)i
-(and)f(GPL'd)i(pro-)0 2721 y(grams,)23 b(and)h(will)h(b)r(ene\034t)g
-(from)f(impro)n(v)n(emen)n(ts)e(made)i(b)n(y)g(programmers)e(in)i(b)r
-(oth)h(realms.)34 b(I)25 b(will)f(only)g(accept)g(c)n(hanges)0
-2835 y(in)n(to)j(m)n(y)h(v)n(ersion)e(of)h(the)h(library)e(if)i(they)g
-(are)f(similarly)f(dual-licensed.)0 3126 y Fb(1.3)112
-b(Example)37 b(Co)s(de)0 3336 y Ff(A)h(lot)f(of)h(the)g(do)r(cumen)n
-(tation)f(for)g(this)h(library)e(is)i(in)g(the)g(form)f(of)g(example)g
-(co)r(de.)67 b(These)37 b(examples)g(are)g(in)h(the)0
-3450 y("examples")26 b(directory)g(of)i(the)g(distribution.)36
-b(Also)28 b(lo)r(ok)e(in)i("src/test")e(for)h(additional)g(annotated)g
-(examples.)0 3788 y Fe(2)131 b(Building)46 b(the)e(Library)0
-4027 y Ff(Libical)33 b(uses)h(auto)r(conf)f(to)h(generate)e(mak)n
-(e\034les.)55 b(It)34 b(should)g(built)g(with)g(no)g(adjustmen)n(ts)g
-(on)f(Lin)n(ux,)j(F)-7 b(reeBSD)33 b(and)0 4141 y(Solaris)22
-b(under)i(gcc.)34 b(Some)24 b(v)n(ersion)e(ha)n(v)n(e)g(b)r(een)i
-(successfully)f(b)r(een)h(build)g(on)f(MacOS,)g(Solaris,)g(UnixW)-7
-b(are,)24 b(And)g(T)-7 b(ru64)0 4254 y(UNIX)28 b(without)g(gcc,)f(but)i
-(y)n(ou)d(ma)n(y)h(run)h(in)n(to)f(problems)g(with)h(a)f(particular)f
-(later)h(v)n(ersion.)0 4411 y(F)-7 b(or)27 b(a)g(more)g(complete)g
-(guide)h(to)f(building)h(the)g(library)-7 b(,)26 b(see)h(the)h(README)i
-(\034le)e(in)f(the)h(distribution.)0 4749 y Fe(3)131
-b(Structure)0 4988 y Ff(The)28 b(iCal)f(calendar)f(mo)r(del)i(is)f
-(based)g(on)h(four)f(t)n(yp)r(es)g(of)h(ob)5 b(jects:)36
-b(comp)r(onen)n(ts,)27 b(prop)r(erties,)g(v)-5 b(alues)27
-b(and)g(parameters.)0 5144 y(Prop)r(erties)32 b(are)f(the)i(fundamen)n
-(tal)f(unit)i(of)e(information)g(in)g(iCal,)i(and)e(they)g(w)n(ork)f(a)
-h(bit)h(lik)n(e)f(a)g(hash)g(en)n(try)-7 b(,)34 b(with)e(a)0
-5258 y(constan)n(t)21 b(k)n(ey)h(and)g(a)f(v)-5 b(ariable)21
-b(v)-5 b(alue.)35 b(Prop)r(erties)21 b(ma)n(y)h(also)f(ha)n(v)n(e)g(mo)
-r(di\034ers,)h(called)g(parameters.)33 b(In)22 b(the)h(iCal)f(con)n
-(ten)n(t)0 5371 y(line)p eop
-%%Page: 4 4
-4 3 bop 0 -167 3900 5 v 0 -200 a Fd(3.)73 b(Structure)3313
-b Ff(4)0 162 y Fc(ORGANIZER;ROLE=C)o(HA)o(IR:)o(MA)o(IL)o(TO:)o(mr)o
-(bi)o(g@h)o(os)o(t.)o(com)0 401 y Ff(The)34 b(prop)r(ert)n(y)f(name)h
-(is)g("OR)n(GANIZER,")g(the)g(v)-5 b(alue)34 b(of)h(the)f(prop)r(ert)n
-(y)f(is)h("mrbig@host.com")e(and)i(the)g("R)n(OLE")0
-515 y(parameter)26 b(sp)r(eci\034es)h(that)h(Mr)g(Big)f(is)g(the)h(c)n
-(hair)e(of)i(the)g(meetings)f(asso)r(ciated)f(with)i(this)g(prop)r(ert)
-n(y)-7 b(.)0 671 y(Comp)r(onen)n(ts)26 b(are)f(groups)g(of)h(prop)r
-(erties)f(that)i(represen)n(t)e(the)i(core)e(ob)5 b(jects)26
-b(of)g(a)g(calendar)f(system,)h(suc)n(h)g(as)g(ev)n(en)n(ts)f(or)0
-785 y(timezones.)36 b(Comp)r(onen)n(ts)27 b(are)g(delimited)h(b)n(y)g
-("BEGIN")f(and)g("END")h(tags.)0 941 y(When)g(a)f(comp)r(onen)n(t)g(is)
-h(sen)n(t)f(across)f(a)h(net)n(w)n(ork,)f(if)i(it)g(is)g(un-encrypted,)
-f(it)h(will)g(lo)r(ok)f(something)g(lik)n(e:)0 1181 y
-Fc(BEGIN:VCALENDAR)0 1294 y(METHOD:REQUEST)0 1408 y(PRODID:)41
-b(-//hacksw/handc)o(al)o(//N)o(ON)o(SG)o(ML)c(v1.0//EN)0
-1521 y(BEGIN:VEVENT)0 1635 y(DTSTAMP:19980309)o(T2)o(310)o(00)o(Z)0
-1749 y(UID:guid-1.host1)o(.c)o(om)0 1862 y(ORGANIZER;ROLE=C)o(HA)o(IR:)
-o(MA)o(IL)o(TO:)o(mr)o(bi)o(g@h)o(os)o(t.)o(com)0 1976
-y(ATTENDEE;RSVP=TR)o(UE)o(;RO)o(LE)o(=R)o(EQ-)o(PA)o(RT)o(ICI)o(PA)o
-(NT)o(;CU)o(TY)o(PE)o(=GR)o(OU)o(P:)87 2089 y(MAILTO:employee-)o(A@h)o
-(os)o(t.)o(com)0 2203 y(DESCRIPTION:Proj)o(ec)o(t)h(XYZ)k(Review)f
-(Meeting)0 2317 y(CATEGORIES:MEETI)o(NG)0 2430 y(CLASS:PUBLIC)0
-2544 y(CREATED:19980309)o(T1)o(300)o(00)o(Z)0 2657 y(SUMMARY:XYZ)e
-(Project)i(Review)0 2771 y(DTSTART;TZID=US-)o(Ea)o(ste)o(rn)o(:1)o(998)
-o(03)o(12)o(T08)o(30)o(00)0 2884 y(DTEND;TZID=US-Ea)o(st)o(ern)o(:1)o
-(99)o(803)o(12)o(T0)o(930)o(00)0 2998 y(LOCATION:1CP)d(Conference)i
-(Room)i(4350)0 3112 y(END:VEVENT)0 3225 y(END:VCALENDAR)0
-3465 y Ff(Note)28 b(that)h(comp)r(onen)n(ts)f(can)g(b)r(e)h(nested;)g
-(this)g(example)e(has)h(b)r(oth)h(a)f(V)n(CALEND)n(AR)i(and)e(a)g
-(VEVENT)i(comp)r(onen)n(t,)0 3578 y(one)d(nested)h(inside)f(the)h
-(other.)0 3870 y Fb(3.1)112 b(Core)37 b(iCal)f(classes)0
-4080 y Ff(Libical)25 b(is)h(an)g(ob)5 b(ject-based,)25
-b(data-orien)n(ted)f(library)-7 b(.)34 b(Nearly)25 b(all)h(of)g(the)g
-(routines)f(in)h(the)g(library)e(are)h(asso)r(ciated)g(with)0
-4193 y(an)e(opaque)g(data)f(t)n(yp)r(es)i(and)f(p)r(erform)g(some)g(op)
-r(eration)f(on)h(that)h(data)e(t)n(yp)r(e.)36 b(Although)24
-b(the)f(library)f(do)r(es)h(not)h(actually)0 4307 y(ha)n(v)n(e)32
-b(classes,)h(w)n(e)g(will)g(use)g(those)g(terms)f(since)h(the)h(b)r
-(eha)n(vior)d(of)i(these)g(asso)r(ciations)e(of)j(data)e(and)h
-(routines)f(is)h(v)n(ery)0 4420 y(similar)27 b(to)g(a)g(class.)0
-4693 y Fd(3.1.1)94 b(Prop)s(erties)0 4903 y Ff(Prop)r(erties)23
-b(are)g(represen)n(ted)f(with)j(the)f(icalprop)r(ert)n(y)e(class)h(and)
-g(its)h(man)n(y)f("deriv)n(ed")f(classes)g(with)j(on)e("deriv)n(ed")f
-(class)0 5017 y(p)r(er)35 b(prop)r(ert)n(y)g(t)n(yp)r(e)g(in)h(RF)n
-(C2445.)59 b(Again,)37 b(there)e(is)h(no)f(actual)g(inheritance)g
-(relations,)h(but)g(there)g(are)e(clusters)h(of)0 5130
-y(routines)27 b(that)h(mak)n(e)e(this)i(term)g(useful.)37
-b(A)28 b(prop)r(ert)n(y)e(is)i(a)f(con)n(tainer)f(for)h(a)g(single)g(v)
--5 b(alue)28 b(and)f(a)g(set)h(of)f(parameters.)p eop
-%%Page: 5 5
-5 4 bop 0 -167 3900 5 v 0 -200 a Fd(3.)73 b(Structure)3313
-b Ff(5)0 162 y Fd(3.1.2)94 b(Comp)s(onen)m(ts)0 372 y
-Ff(In)29 b(libical,)f(comp)r(onen)n(ts)g(are)g(represen)n(ted)f(with)i
-(the)g(icalcomp)r(onen)n(t)e(class.)39 b(Icalcomp)r(onen)n(t)27
-b(is)i(a)f(con)n(tainer)f(for)h(a)g(set)0 485 y(of)g(other)e(comp)r
-(onen)n(ts)h(and)h(prop)r(erties.)0 758 y Fd(3.1.3)94
-b(V)-8 b(alues)0 968 y Ff(V)h(alues)29 b(are)g(represen)n(ted)f(in)i(a)
-f(similar)f(w)n(a)n(y)g(to)i(prop)r(erties;)f(a)g(base)g(class)g(and)g
-(man)n(y)g("deriv)n(ed)f(")h(classes.)41 b(A)30 b(v)-5
-b(alue)29 b(is)0 1082 y(essen)n(tially)d(a)i(abstract)e(handle)i(on)f
-(a)g(single)g(fundamen)n(tal)h(t)n(yp)r(e,)f(a)h(structure)f(or)f(a)h
-(union.)0 1354 y Fd(3.1.4)94 b(P)m(arameters)0 1564 y
-Ff(P)n(arameters)26 b(are)g(represetned)h(in)h(a)f(similar)g(w)n(a)n(y)
-f(to)i(prop)r(erties,)e(except)i(that)g(they)f(con)n(tain)g(only)g(one)
-g(v)-5 b(alue)0 1856 y Fb(3.2)112 b(Other)37 b(elemen)m(ts)g(of)g
-(libical)0 2066 y Ff(In)26 b(addition)f(to)h(the)g(core)e(iCal)h
-(classes,)g(libical)g(has)g(man)n(y)g(other)g(t)n(yp)r(es,)h
-(structures,)g(classes)e(that)i(aid)f(in)h(creating)e(and)0
-2179 y(using)j(iCal)g(comp)r(onen)n(ts.)0 2452 y Fd(3.2.1)94
-b(En)m(umerations)30 b(and)i(t)m(yp)s(es)0 2662 y Ff(Libical)h(is)f
-(strongly)g(t)n(yp)r(ed,)i(so)r(o)e(ev)n(ery)g(comp)r(onen)n(t,)i(prop)
-r(ert)n(y)-7 b(,)33 b(parameter,)g(and)f(v)-5 b(alue)33
-b(t)n(yp)r(e)g(has)g(an)f(en)n(umeration,)0 2776 y(and)27
-b(some)g(ha)n(v)n(e)g(an)g(asso)r(ciated)f(structure)h(or)g(union.)0
-3048 y Fd(3.2.2)94 b(The)32 b(parser)0 3258 y Ff(The)20
-b(libical)f(parser)f(o\033ers)h(a)g(v)-5 b(ariet)n(y)19
-b(of)h(w)n(a)n(ys)e(to)h(con)n(v)n(ert)f(RF)n(C2445)g(text)i(in)n(to)g
-(a)f(libical)g(iinsteral)g(comp)r(onen)n(t)h(structure.)0
-3372 y(the)28 b(parser)e(can)h(parse)f(blo)r(c)n(ks)h(of)h(text)g(as)f
-(a)g(string,)g(or)f(it)i(can)g(parse)e(lin-b)n(y-line.)0
-3645 y Fd(3.2.3)94 b(Error)32 b(ob)5 b(jects)0 3855 y
-Ff(Libical)27 b(has)g(a)g(substan)n(tial)g(error)f(rep)r(orting)g
-(system)i(for)f(b)r(oth)h(programming)d(errors)g(and)j(comp)r(onen)n(t)
-f(usage)f(errors.)0 4127 y Fd(3.2.4)94 b(Memory)30 b(Managemen)m(t)0
-4337 y Ff(Since)38 b(man)n(y)g(of)h(libicals)e(in)n(terfaces)h(return)g
-(strings,)i(the)e(library)f(has)h(its)h(o)n(wn)e(memory)h(managemen)n
-(t)f(system)h(to)0 4451 y(elimiate)28 b(the)g(need)f(to)h(free)f(ev)n
-(ery)f(string)h(returned)g(from)g(the)h(libraru.)0 4724
-y Fd(3.2.5)94 b(Storage)32 b(classes)0 4934 y Ff(The)c(library)e(also)g
-(o\033ers)h(sev)n(eral)f(classes)g(to)h(store)g(comp)r(onen)n(ts)g(to)g
-(\035ies,)h(memory)f(or)f(databases.)p eop
-%%Page: 6 6
-6 5 bop 0 -167 3900 5 v 0 -200 a Fd(4.)73 b(Di\033erences)31
-b(F)-8 b(rom)31 b(RF)m(Cs)2732 b Ff(6)0 162 y Fe(4)131
-b(Di\033erences)44 b(F)-11 b(rom)43 b(RF)l(Cs)0 400 y
-Ff(Libical)c(has)f(b)r(een)h(designed)g(to)f(follo)n(w)h(the)g
-(standards)e(as)i(closely)f(as)g(p)r(ossible,)j(so)e(that)g(the)g(k)n
-(ey)f(ob)5 b(jects)39 b(in)g(the)0 514 y(standards)32
-b(are)g(also)g(k)n(ey)g(ob)5 b(jects)33 b(in)g(the)h(library)-7
-b(.)52 b(Ho)n(w)n(ev)n(er,)32 b(there)h(are)f(a)h(few)g(areas)f(where)g
-(the)i(sp)r(eci\034cations)e(are)0 628 y(\(arguably\))e(irregular,)h
-(and)g(follo)n(wing)g(them)h(exactly)f(w)n(ould)g(result)h(in)g(an)f
-(unfriendly)h(in)n(terface.)49 b(These)31 b(deviations)0
-741 y(mak)n(e)c(libical)g(easier)f(to)i(use)f(b)n(y)h(main)n(taining)e
-(a)h(self-similar)g(in)n(terface.)0 1033 y Fb(4.1)112
-b(Pseudo)38 b(Comp)s(onen)m(ts)0 1243 y Ff(Libical)29
-b(de\034nes)g(comp)r(onen)n(ts)g(for)g(groups)f(of)h(prop)r(erties)f
-(that)i(lo)r(ok)f(and)g(act)g(lik)n(e)g(comp)r(onen)n(ts,)g(but)h(are)e
-(not)i(de\034ned)0 1356 y(as)e(comp)r(onen)n(ts)h(in)g(the)g(sp)r
-(eci\034cation.)41 b(XD)n(A)-7 b(YLIGHT)30 b(and)f(XST)-7
-b(AND)n(ARD)30 b(are)e(notable)h(examples.)40 b(These)29
-b(pseudo)0 1470 y(comp)r(onen)n(ts)d(group)f(prop)r(erties)g(within)i
-(the)g(VTIMEZONE)g(comp)r(onen)n(ts.)36 b(F)-7 b(or)25
-b(instanace,)h(the)h(timezone)f(prop)r(erties)0 1583
-y(asso)r(ciated)f(with)i(da)n(yligh)n(t)e(sa)n(vings)g(time)i(starts)e
-(with)i("BEGIN:D)n(A)-7 b(YLIGHT")27 b(and)f(ends)h(with)f("END:D)n(A)
--7 b(YLIGHT,)0 1697 y(just)32 b(lik)n(e)g(other)f(comp)r(onen)n(ts,)h
-(but)g(is)g(not)g(de\034ned)g(as)f(a)g(comp)r(onen)n(t)g(in)h(RF)n
-(C2445.)48 b(\()32 b(See)f(RF)n(C2445,)g(page)g(61)g(\))h(In)0
-1811 y(Libical,this)d(grouping)e(is)i(represen)n(ted)e(b)n(y)i(the)g
-(XD)n(A)-7 b(YLIGHT)30 b(comp)r(onen)n(t.)41 b(Standard)28
-b(iCAL)h(comp)r(onen)n(ts)f(all)h(start)0 1924 y(with)f(the)g(letter)g
-("V,")f(while)g(pseudo)g(comp)r(onen)n(ts)g(start)g(with"X.")0
-2081 y(There)22 b(are)g(also)g(pseudo)h(comp)r(onen)n(ts)f(that)h(are)f
-(conceptually)g(deriv)n(ed)g(classes)g(of)h(V)-9 b(ALARM.)23
-b(RF)n(C2446)e(de\034nes)i(what)0 2194 y(prop)r(erties)g(ma)n(y)h(b)r
-(e)g(included)h(in)f(eac)n(h)g(comp)r(onen)n(t,)g(and)g(for)g(V)-9
-b(ALARM,)25 b(the)f(set)g(of)h(prop)r(erties)e(it)h(ma)n(y)g(ha)n(v)n
-(e)f(dep)r(ends)0 2308 y(on)k(the)h(v)-5 b(alue)28 b(of)f(the)h(A)n
-(CTION)f(prop)r(ert)n(y)-7 b(.)0 2464 y(F)g(or)19 b(instance,)j(if)e(a)
-g(V)-9 b(ALARM)20 b(comp)r(onen)n(t)g(has)f(an)h(A)n(CTION)g(prop)r
-(ert)n(y)e(with)j(the)f(v)-5 b(alue)20 b(of)g("A)n(UDIO,")f(the)h(comp)
-r(onen)n(t)0 2578 y(m)n(ust)h(also)g(ha)n(v)n(e)f(an)h("A)-7
-b(TT)g(A)n(CH")21 b(prop)r(ert)n(y)-7 b(.)34 b(Ho)n(w)n(ev)n(er,)20
-b(if)i(the)g(A)n(CTION)f(v)-5 b(alue)21 b(is)g("DISPLA)-7
-b(Y,")22 b(the)g(comp)r(onen)n(t)f(m)n(ust)0 2691 y(ha)n(v)n(e)26
-b(a)i(DESCRIPTION)g(prop)r(ert)n(y)-7 b(.)0 2848 y(T)g(o)28
-b(handle)g(these)g(v)-5 b(arious,)27 b(complex)h(restrictions,)f
-(libical)h(has)g(pseudo)g(comp)r(onen)n(ts)f(for)h(eac)n(h)f(t)n(yp)r
-(e)i(of)f(alarm:)37 b(XA)n(U-)0 2961 y(DIO)n(ALARM,)28
-b(XDISPLA)-7 b(Y)g(ALARM,)30 b(XEMAILALARM)f(and)f(XPR)n(OCEDUREALARM.)
-0 3253 y Fb(4.2)112 b(Com)m(bined)37 b(V)-9 b(alues)0
-3463 y Ff(Man)n(y)34 b(v)-5 b(alues)34 b(can)g(tak)n(e)g(more)g(than)g
-(one)h(t)n(yp)r(e.)58 b(TRIGGER,)35 b(for)f(instance,)i(can)e(ha)n(v)n
-(e)g(a)g(v)-5 b(alue)34 b(t)n(yp)r(e)h(of)g(with)g(DU-)0
-3577 y(RA)-7 b(TION)32 b(or)f(of)h(D)n(A)-7 b(TE-TIME.)33
-b(These)f(m)n(ultiple)g(t)n(yp)r(es)g(mak)n(e)f(it)i(di\036cult)g(to)e
-(create)g(routines)h(to)f(return)h(the)g(v)-5 b(alue)0
-3690 y(asso)r(ciated)26 b(with)i(a)f(prop)r(ert)n(y)-7
-b(.)0 3847 y(It)29 b(is)g(natural)f(to)h(ha)n(v)n(e)f(in)n(terfaces)g
-(that)h(w)n(ould)f(return)h(the)g(v)-5 b(alue)29 b(of)f(a)h(prop)r(ert)
-n(y)-7 b(,)28 b(but)i(it)f(is)g(cum)n(b)r(ersome)f(for)g(a)h(single)0
-3960 y(routine)j(to)g(return)g(m)n(ultiple)h(t)n(yp)r(es.)51
-b(So,)33 b(in)g(libical,)g(prop)r(erties)e(that)i(can)f(ha)n(v)n(e)f(m)
-n(ultiple)i(t)n(yp)r(es)f(are)f(giv)n(en)h(a)g(single)0
-4074 y(t)n(yp)r(e)26 b(that)g(is)g(the)g(union)g(of)g(their)g(RF)n
-(C2445)e(t)n(yp)r(es.)36 b(F)-7 b(or)26 b(instance,)g(in)g(libical,)g
-(the)g(v)-5 b(alue)26 b(of)g(the)g(TRIGGER)h(prop)r(ert)n(y)0
-4187 y(resolv)n(es)e(to)j(struct)f(icaltriggert)n(yp)r(e.)35
-b(This)28 b(t)n(yp)r(e)f(is)h(a)f(union)h(of)f(a)g(DURA)-7
-b(TION)29 b(and)e(a)g(D)n(A)-7 b(TE-TIME.)0 4479 y Fb(4.3)112
-b(Multi-V)-9 b(alued)36 b(Prop)s(erties)0 4689 y Ff(Some)31
-b(prop)r(erties,)h(suc)n(h)f(as)g(CA)-7 b(TEGORIES)33
-b(ha)n(v)n(e)d(only)h(one)g(v)-5 b(alue)32 b(t)n(yp)r(e,)h(but)f(eac)n
-(h)e(CA)-7 b(TEGORIES)33 b(prop)r(ert)n(y)d(can)0 4803
-y(ha)n(v)n(e)24 b(m)n(ultiple)h(v)-5 b(alue)25 b(instances.)35
-b(This)25 b(also)f(results)g(in)h(a)g(cum)n(b)r(ersome)f(in)n(terface)g
-(\025)g(CA)-7 b(TEGORIES)26 b(accessors)d(w)n(ould)0
-4916 y(ha)n(v)n(e)k(to)i(return)f(a)g(list)g(while)h(all)f(other)g
-(accessors)e(returned)i(a)g(single)g(v)-5 b(alue.)39
-b(In)29 b(libical,)g(all)f(prop)r(erties)f(ha)n(v)n(e)h(a)g(single)0
-5030 y(v)-5 b(alue,)35 b(and)e(m)n(ulti-v)-5 b(alued)33
-b(prop)r(erties)f(are)h(brok)n(en)f(do)n(wn)g(in)n(to)h(m)n(ultiple)h
-(single)f(v)-5 b(alued)33 b(prop)r(erties)g(during)f(parsing.)0
-5143 y(That)c(is,)f(an)g(input)i(line)e(lik)n(e,)0 5383
-y Fc(CATEGORIES:)39 b(work,)i(home)p eop
-%%Page: 7 7
-7 6 bop 0 -167 3900 5 v 0 -200 a Fd(5.)73 b(Using)32
-b(libical)3190 b Ff(7)0 162 y(b)r(ecomes)27 b(in)h(libical's)f(in)n
-(ternal)g(represen)n(tation)0 401 y Fc(CATEGORIES:)39
-b(work)0 515 y(CATEGORIES:)g(home)0 754 y Ff(Oddly)-7
-b(,)34 b(RF)n(C2445)d(allo)n(ws)g(some)h(m)n(ulti-v)-5
-b(alued)33 b(prop)r(erties)f(\()h(lik)n(e)g(FREEBUSY)h(\))f(to)g(exist)
-g(as)f(b)r(oth)h(a)f(m)n(ulti-v)-5 b(alues)0 868 y(prop)r(ert)n(y)24
-b(and)h(as)f(m)n(ultiple)h(single)g(v)-5 b(alue)24 b(prop)r(erties,)h
-(while)g(others)f(\()i(lik)n(e)e(CA)-7 b(TEGORIES)26
-b(\))f(can)g(only)g(exist)f(as)h(single)0 981 y(m)n(ulti-v)-5
-b(alued)32 b(prop)r(erties.)48 b(This)31 b(mak)n(es)g(the)h(in)n
-(ternal)f(represen)n(tation)e(for)i(CA)-7 b(TEGORIES)33
-b(illegal.)48 b(Ho)n(w)n(ev)n(er)30 b(when)0 1095 y(y)n(ou)d(con)n(v)n
-(ert)f(a)h(comp)r(onen)n(t)g(to)h(a)f(string,)g(the)h(library)e(will)i
-(collect)f(all)g(of)h(the)g(CA)-7 b(TEGORIES)28 b(prop)r(erties)f(in)n
-(to)g(one.)0 1433 y Fe(5)131 b(Using)44 b(libical)0 1691
-y Fb(5.1)112 b(Creating)37 b(Comp)s(onen)m(ts)0 1901
-y Ff(There)e(are)g(three)h(w)n(a)n(ys)e(to)i(create)e(comp)r(onen)n(ts)
-i(in)g(Libical:)53 b(creating)34 b(individual)i(ob)5
-b(jects)35 b(and)h(assem)n(bling)e(them,)0 2015 y(building)28
-b(en)n(tire)f(ob)5 b(jects)27 b(in)h(massiv)n(e)e(v)-5
-b(aargs)26 b(calls,)h(and)g(parsing)f(a)h(text)h(\034le)g(con)n
-(taining)e(iCalendar)h(data.)0 2287 y Fd(5.1.1)94 b(Constructor)32
-b(In)m(terfaces)0 2497 y Ff(Using)e(constructor)f(in)n(terfaces,)i(y)n
-(ou)f(create)f(eac)n(h)h(of)h(the)g(ob)5 b(jects)30 b(separately)f(and)
-i(then)g(assem)n(ble)e(them)i(in)g(to)g(com-)0 2611 y(p)r(onen)n(ts:)0
-2850 y Fc(icalcomponent)38 b(*event;)0 2964 y(icalproperty)g(*prop;)0
-3077 y(icalparameter)g(*param;)0 3191 y(struct)j(icaltimetype)e(atime;)
-0 3305 y(event)i(=)j(icalcomponent_n)o(ew)o(\(IC)o(AL)o(_V)o(EVE)o(NT)o
-(_C)o(OMP)o(ON)o(EN)o(T\);)0 3418 y(prop)e(=)h(icalproperty_new)o(_d)o
-(tst)o(am)o(p\()o(ati)o(me)o(\))37 b(;)0 3532 y(icalcomponent_ad)o(d_)o
-(pro)o(pe)o(rt)o(y\(e)o(ve)o(nt)o(,)h(prop\);)0 3645
-y(prop)k(=)h(icalproperty_new)o(_u)o(id\()o('')o(gu)o(id-)o(1.)o(ho)o
-(st1)o(.c)o(om)o(''\))37 b(\);)0 3759 y(icalcomponent_ad)o(d_)o(pro)o
-(pe)o(rt)o(y\(e)o(ve)o(nt)o(,pr)o(op)o(\);)0 3872 y(prop=icalpropert)o
-(y_)o(new)o(_o)o(rg)o(ani)o(ze)o(r\()o(''m)o(rb)o(ig)o(@ho)o(st)o(.c)o
-(om')o('\))o(;)0 3986 y(param)k(=)j(icalparameter_n)o(ew)o(_ro)o(le)o
-(\(I)o(CAL)o(_R)o(OL)o(E_C)o(HA)o(IR)o(\))0 4100 y(icalproperty_add)o
-(_p)o(ara)o(me)o(te)o(r\(p)o(ro)o(p,)37 b(param\);)0
-4213 y(icalcomponent_ad)o(d_)o(pro)o(pe)o(rt)o(y\(e)o(ve)o(nt)o(,pr)o
-(op)o(\);)0 4453 y Ff(Notice)e(that)g(libical)g(uses)f(a)h(semi-ob)5
-b(ject-orien)n(ted)32 b(st)n(yle)j(of)g(in)n(terface.)58
-b(Most)34 b(things)h(y)n(ou)f(w)n(ork)f(with)j(are)e(ob)5
-b(jects,)0 4566 y(that)28 b(are)e(instan)n(tiated)h(with)h(a)f
-(constructor)f(that)i(has)f("new")g(in)g(the)h(name.)37
-b(Also)27 b(note)g(that,)h(other)f(than)g(the)h(ob)5
-b(ject)0 4680 y(reference,)30 b(most)g(structure)f(data)h(is)g(passed)f
-(in)h(to)g(libical)g(routines)f(b)n(y)h(v)-5 b(alue.)44
-b(Libical)30 b(has)g(some)f(complex)h(but)g(v)n(ery)0
-4793 y(regular)c(memory)g(handling)i(rules.)36 b(These)27
-b(are)g(detailed)g(in)h(section)f(5.5)g(\(\).)0 4950
-y(If)33 b(an)n(y)e(of)h(the)h(constructors)d(fail,)k(they)f(will)f
-(return)g(0.)50 b(If)33 b(y)n(ou)f(try)g(to)g(insert)g(0)f(in)n(to)h(a)
-g(prop)r(ert)n(y)f(or)h(comp)r(onen)n(t,)h(or)0 5063
-y(use)j(a)g(zero-v)-5 b(alued)34 b(ob)5 b(ject)36 b(reference,)h
-(libical)f(will)h(either)f(silen)n(tly)f(ignore)g(the)i(error)d(or)h
-(will)h(ab)r(ort)g(with)g(an)g(error)0 5177 y(message.)61
-b(This)36 b(b)r(eha)n(vior)e(is)i(con)n(trolled)f(b)n(y)g(a)h(compile)g
-(time)g(\035ag)f(\(ICAL_ERR)n(ORS_ARE_F)-9 b(A)i(T)g(AL\),)37
-b(and)f(will)0 5291 y(ab)r(ort)27 b(b)n(y)g(default.)p
-eop
-%%Page: 8 8
-8 7 bop 0 -167 3900 5 v 0 -200 a Fd(5.)73 b(Using)32
-b(libical)3190 b Ff(8)0 162 y Fd(5.1.2)94 b(v)-5 b(aargs)32
-b(Constructors)0 372 y Ff(There)24 b(is)g(another)g(w)n(a)n(y)f(to)i
-(create)e(complex)h(comp)r(onen)n(ts,)h(whic)n(h)f(is)h(arguably)d
-(more)i(elegan)n(t,)g(if)h(y)n(ou)f(are)g(not)g(horri\034ed)0
-485 y(b)n(y)k(v)-5 b(arargs.)35 b(The)28 b(v)-5 b(arargs)26
-b(constructor)g(in)n(terface)i(allo)n(ws)e(y)n(ou)i(to)f(create)h(in)n
-(tricate)f(comp)r(onen)n(ts)g(in)i(a)e(single)h(blo)r(c)n(k)f(of)0
-599 y(co)r(de.)37 b(Here)27 b(is)g(the)h(previous)f(examples)f(in)i
-(the)g(v)-5 b(aargs)26 b(st)n(yle.)174 830 y Fc(calendar)40
-b(=)349 943 y(icalcomponent_v)o(an)o(ew\()523 1057 y(ICAL_VCALENDAR_C)o
-(OM)o(PO)o(NEN)o(T,)523 1171 y(icalproperty_new)o(_v)o(er)o(sio)o(n\()o
-('')o(2.0)o('')o(\),)523 1284 y(icalproperty_new)o(_p)o(ro)o(did)o(\()
-741 1398 y(''-//RDU)g(Software//NONSGM)o(L)d(HandCal//EN''\),)523
-1511 y(icalcomponent_va)o(ne)o(w\()697 1625 y(ICAL_VEVENT_COMP)o(ONE)o
-(NT)o(,)697 1738 y(icalproperty_new)o(_dt)o(st)o(am)o(p\(a)o(ti)o(me)o
-(\),)697 1852 y(icalproperty_new)o(_ui)o(d\()o('')o(gui)o(d-)o(1.)o
-(hos)o(t1)o(.co)o(m')o('\))o(,)697 1966 y(icalproperty_van)o(ew_)o(or)o
-(ga)o(niz)o(er)o(\()872 2079 y(''mrbig@host.co)o(m')o('\))o(,)872
-2193 y(icalparameter_n)o(ew)o(_r)o(ole)o(\(I)o(CA)o(L_R)o(OL)o(E_C)o
-(HA)o(IR)o(\),)872 2306 y(0)872 2420 y(\),)697 2533 y(icalproperty_van)
-o(ew_)o(at)o(te)o(nde)o(e\()872 2647 y(''employee-A@ho)o(st)o(.c)o(om')
-o(',)872 2761 y(icalparameter_n)o(ew)o(_r)o(ole)o(\()1046
-2874 y(ICAL_ROLE_REQPA)o(RTI)o(CI)o(PA)o(NT\))o(,)872
-2988 y(icalparameter_n)o(ew)o(_r)o(svp)o(\(1)o(\),)872
-3101 y(icalparameter_n)o(ew)o(_c)o(uty)o(pe)o(\(I)o(CAL)o(_C)o(UTY)o
-(PE)o(_G)o(ROU)o(P\))o(,)872 3215 y(0)872 3328 y(\),)697
-3442 y(icalproperty_new)o(_lo)o(ca)o(ti)o(on\()828 3556
-y(1CP)42 b(Conference)e(Room)h(4350\),)697 3669 y(0)697
-3783 y(\),)523 3896 y(0)523 4010 y(\);)0 4241 y Ff(This)30
-b(form)f(is)h(similar)f(to)h(the)g(constructor)f(form)g(,)i(except)f
-(that)g(the)g(constructors)e(ha)n(v)n(e)h("v)-5 b(anew")29
-b(instead)g(of)h("new")0 4354 y(in)38 b(the)f(name.)66
-b(The)37 b(argumen)n(ts)f(are)h(similar)f(to)r(o,)k(except)d(that)g
-(the)h(comp)r(onen)n(t)f(constructor)f(can)h(ha)n(v)n(e)f(a)h(list)g
-(of)0 4468 y(prop)r(erties,)26 b(and)i(the)f(prop)r(ert)n(y)g
-(constructor)e(can)i(ha)n(v)n(e)g(a)g(list)g(of)h(parameters.)35
-b(Be)27 b(sure)f(to)i(terminate)f(ev)n(ery)f(list)i(with)0
-4582 y(a)f('0',)h(or)e(y)n(our)g(co)r(de)i(will)g(crash,)e(if)i(y)n(ou)
-f(are)g(luc)n(ky)-7 b(.)0 4853 y Fd(5.1.3)94 b(P)m(arsing)32
-b(T)-8 b(ext)32 b(Files)0 5063 y Ff(The)g(\034nal)g(w)n(a)n(y)f(to)h
-(create)f(comp)r(onen)n(ts)h(will)g(probably)f(b)r(e)h(the)h(most)f
-(common;)i(y)n(ou)d(can)h(create)f(comp)r(onen)n(ts)g(from)0
-5176 y(RF)n(C2445)26 b(complian)n(t)h(text.)37 b(If)28
-b(y)n(ou)f(ha)n(v)n(e)f(the)i(string)f(in)h(memory)-7
-b(,)26 b(use)0 5407 y Fc(icalcomponent*)38 b(icalparser_pars)o(e_)o
-(str)o(in)o(g\()o(cha)o(r*)f(str\);)p eop
-%%Page: 9 9
-9 8 bop 0 -167 3900 5 v 0 -200 a Fd(5.)73 b(Using)32
-b(libical)3190 b Ff(9)0 162 y(If)38 b(the)g(string)f(con)n(tains)f
-(only)h(one)h(comp)r(onen)n(t,)h(the)f(parser)e(will)i(return)f(the)h
-(comp)r(onen)n(t)f(in)h(libical)f(form.)67 b(If)38 b(the)0
-275 y(string)45 b(con)n(tains)g(m)n(ultiple)h(comp)r(onen)n(ts,)k(the)c
-(m)n(ultiple)g(comp)r(onen)n(ts)f(will)h(b)r(e)g(returned)f(as)g(the)h
-(c)n(hildren)g(of)f(an)0 389 y(ICAL_XR)n(OOT_COMPONENT)26
-b(comp)r(onen)n(t.)0 545 y(P)n(arsing)h(a)h(whole)g(string)f(ma)n(y)h
-(seem)g(w)n(asteful)f(if)i(y)n(ou)f(w)n(an)n(t)f(to)h(pull)h(a)f(large)
-e(comp)r(onen)n(t)i(o\033)h(of)f(the)g(net)n(w)n(ork)f(or)g(from)0
-659 y(a)g(\034le;)h(y)n(ou)f(ma)n(y)g(prefer)g(to)g(parse)f(the)i(comp)
-r(onen)n(t)g(line)f(b)n(y)h(line.)37 b(This)27 b(is)h(p)r(ossible)f(to)
-r(o)g(b)n(y)g(using:)0 898 y Fc(icalparser*)39 b(icalparser_new\(\))o
-(;)0 1012 y(void)j(icalparser_free\()o(ic)o(al)o(par)o(se)o(r*)37
-b(parser\);)0 1125 y(icalparser_get_l)o(in)o(e\(p)o(ar)o(se)o(r,r)o(ea)
-o(d_)o(str)o(ea)o(m\))o(;)0 1239 y(icalparser_add_l)o(in)o(e\(p)o(ar)o
-(se)o(r,l)o(in)o(e\))o(;)0 1353 y(icalparser_set_g)o(en)o(_da)o(ta)o
-(\(p)o(ars)o(er)o(,s)o(tre)o(am)o(\))0 1592 y Ff(These)21
-b(routines)f(will)i(construct)f(a)f(parser)g(ob)5 b(ject)21
-b(to)g(whic)n(h)g(y)n(ou)g(can)g(add)g(lines)g(of)g(input)h(and)f
-(retriev)n(e)f(an)n(y)h(comp)r(onen)n(ts)0 1705 y(that)32
-b(the)g(parser)f(creates)f(from)i(the)g(input.)51 b(These)31
-b(routines)g(w)n(ork)g(b)n(y)g(sp)r(eci\034ng)h(an)g(adaptor)e(routine)
-h(to)h(get)g(string)0 1819 y(data)27 b(from)g(a)g(source.)36
-b(F)-7 b(or)27 b(an)g(example:)0 2058 y Fc(char*)41 b
-(read_stream\(char)c(*s,)43 b(size_t)e(size,)g(void)h(*d\))87
-2286 y(char)g(*c)h(=)g(fgets\(s,size,)38 b(\(FILE*\)d\);)87
-2399 y(return)j(c;)0 2626 y(main\(\))87 2740 y(char*)h(line;)87
-2853 y(icalcomponent)c(*c;)87 2967 y(icalparser)h(*parser)i(=)i
-(icalparser_new\(\))o(;)87 3081 y(FILE*)f(stream)f(=)i
-(fopen\(argv1,r\);)87 3194 y(icalparser_set_g)o(en_)o(da)o(ta)o(\(pa)o
-(rs)o(er)o(,st)o(re)o(am)o(\);)87 3308 y(do)174 3421
-y(line)f(=)h(icalparser_get_li)o(ne)o(\(p)o(ars)o(er)o(,r)o(ead)o(_s)o
-(tr)o(eam)o(\);)174 3535 y(c)g(=)h(icalparser_add_)o(li)o(ne\()o(pa)o
-(rs)o(er,)o(li)o(ne)o(\);)174 3648 y(if)f(\(c)g(!=)f(0\))218
-3762 y(printf\(s,icalcom)o(po)o(ne)o(nt_)o(as)o(_i)o(cal)o(_s)o(tr)o
-(ing)o(\(c)o(\)\))o(;)218 3876 y(icalparser_claim)o(\(p)o(ar)o(ser)o
-(\);)218 3989 y(printf\(n--------)o(--)o(--)o(---)o(n\))o(;)218
-4103 y(icalcomponent_fr)o(ee)o(\(c)o(\);)131 4330 y(while)f(\()i(line)f
-(!=)h(0\);)0 4569 y Ff(The)48 b(parser)f(ob)5 b(ject)48
-b(parameterizes)f(the)i(routine)f(used)g(to)g(get)h(input)g(lines)f
-(with)h(icalparser_set_gen_data\(\))0 4683 y
-(andicalparser_get_line\(\).)81 b(In)44 b(this)f(example,)k(the)d
-(routine)f(read_stream\(\))e(will)j(fetc)n(h)g(the)f(next)h(line)g
-(from)e(a)0 4796 y(stream,)51 b(with)d(the)f(stream)g(passed)f(in)h(as)
-g(the)g(v)n(oid*)f(parameter)f(d.)96 b(The)47 b(parser)f(calls)g
-(read_stream\(\))f(from)0 4910 y(icalparser_get_line\(\),)e(but)g(it)g
-(also)e(needs)h(to)h(kno)n(w)e(what)h(stream)g(to)g(use.)81
-b(This)42 b(is)h(set)f(b)n(y)g(the)h(call)f(to)g(ical-)0
-5024 y(parser_set_gen_data\(\).)64 b(By)37 b(using)g(a)h(di\033eren)n
-(t)f(routine)h(for)f(read_stream)e(or)i(passing)g(in)h(di\033eren)n(t)f
-(data)h(with)0 5137 y(icalparser_set_gen_data,)23 b(y)n(ou)k(can)g
-(connect)g(to)h(an)n(y)e(data)i(source.)0 5294 y(Using)g(the)h(same)e
-(mec)n(hanism,)h(other)g(implemen)n(tations)g(could)g(read)f(from)h
-(memory)g(bu\033ers,)g(so)r(c)n(k)n(ets)f(or)g(other)h(in)n(ter-)0
-5407 y(faces.)p eop
-%%Page: 10 10
-10 9 bop 0 -167 3900 5 v 0 -200 a Fd(5.)73 b(Using)32
-b(libical)3149 b Ff(10)0 162 y(Since)28 b(the)g(example)f(co)r(de)g(is)
-h(a)f(v)n(ery)f(common)h(w)n(a)n(y)f(to)i(use)f(the)h(parser,)e(there)i
-(is)f(a)g(con)n(v)n(enience)f(routine;)0 401 y Fc(icalcomponent*)38
-b(icalparser_pars)o(e\()o(ica)o(lp)o(ar)o(ser)f(*parser,)654
-515 y(char*)k(\(*line_gen_func\))o(\(c)o(har)c(*s,)42
-b(size_t)f(size,)85 b(void*)42 b(d\)\))0 754 y Ff(T)-7
-b(o)36 b(use)h(this)g(routine,)i(y)n(ou)d(still)h(m)n(ust)g(construct)f
-(the)h(parser)f(ob)5 b(ject)36 b(and)h(pass)f(in)h(a)f(reference)g(to)h
-(a)f(line)h(reading)0 868 y(routine.)50 b(If)33 b(the)f(parser)f(can)h
-(create)f(a)h(single)f(comp)r(onen)n(t)h(from)g(the)g(input,)i(it)f
-(will)f(return)g(a)g(p)r(oin)n(ter)g(to)g(the)g(newly)0
-981 y(constructed)h(comp)r(onen)n(t.)54 b(If)34 b(the)g(parser)e(can)h
-(construct)f(m)n(ultiple)i(comp)r(onen)n(ts)f(from)g(the)h(input,)i(it)
-e(will)g(return)e(a)0 1095 y(reference)c(to)h(an)g(XR)n(OOT)g(comp)r
-(onen)n(t)g(\()h(of)f(t)n(yp)r(e)g(ICAL_XR)n(OOT_COMPONENT.\))g(This)g
-(XR)n(OOT)f(comp)r(onen)n(t)0 1209 y(will)g(hold)f(all)h(of)f(the)h
-(comp)r(onen)n(ts)f(constructed)g(from)g(the)h(input)g(as)f(c)n
-(hildren.)0 1500 y Fb(5.2)112 b(A)m(ccessing)37 b(Comp)s(onen)m(ts)0
-1710 y Ff(Giv)n(en)30 b(a)g(reference)f(to)i(a)e(comp)r(onen)n(t,)i(y)n
-(ou)f(probably)f(will)h(w)n(an)n(t)g(to)g(access)f(the)i(prop)r
-(erties,)f(parameters)e(and)j(v)-5 b(alues)0 1824 y(inside.)56
-b(Libical)34 b(in)n(terfaces)f(let)i(y)n(ou)e(\034nd)i(sub-comp)r(onen)
-n(t,)g(add)e(and)h(remo)n(v)n(e)f(sub-comp)r(onen)n(ts,)i(and)e(do)h
-(the)h(same)0 1937 y(three)27 b(op)r(erations)g(on)g(prop)r(erties.)0
-2210 y Fd(5.2.1)94 b(Finding)30 b(Comp)s(onen)m(ts)0
-2420 y Ff(T)-7 b(o)27 b(\034nd)h(a)f(sub-comp)r(onen)n(t)g(of)h(a)f
-(comp)r(onen)n(t,)g(use:)0 2659 y Fc(icalcomponent*)38
-b(icalcomponent_g)o(et)o(_fi)o(rs)o(t_)o(com)o(po)o(ne)o(nt\()1525
-2773 y(icalcomponent*)g(component,)1525 2887 y(icalcomponent_ki)o(nd)f
-(kind\);)0 3126 y Ff(This)27 b(routine)g(will)h(return)f(a)g(reference)
-g(to)g(the)h(\034rst)f(comp)r(onen)n(t)g(of)h(the)f(t)n(yp)r(e)h
-('kind.')37 b(The)28 b(k)n(ey)e(kind)i(v)-5 b(alues,)27
-b(listed)h(in)0 3240 y(icalen)n(ums.h)f(are:)0 3479 y
-Fc(ICAL_ANY_COMPONE)o(NT)0 3593 y(ICAL_VEVENT_COMP)o(ON)o(ENT)0
-3706 y(ICAL_VTODO_COMPO)o(NE)o(NT)0 3820 y(ICAL_VJOURNAL_CO)o(MP)o(ONE)
-o(NT)0 3933 y(ICAL_VCALENDAR_C)o(OM)o(PON)o(EN)o(T)0
-4047 y(ICAL_VFREEBUSY_C)o(OM)o(PON)o(EN)o(T)0 4161 y(ICAL_VALARM_COMP)o
-(ON)o(ENT)0 4400 y Ff(These)g(are)g(only)g(the)h(most)f(common)g(comp)r
-(onen)n(ts;)g(there)h(are)e(man)n(y)h(more)g(listed)h(in)g(icalen)n
-(ums.h.)0 4557 y(As)h(y)n(ou)f(migh)n(t)h(guess,)g(if)g(there)g(is)g
-(more)f(than)h(one)f(sub)r(comp)r(onen)n(t)h(of)g(the)h(t)n(yp)r(e)f(y)
-n(ou)f(ha)n(v)n(e)g(c)n(hosen,)g(this)h(routine)g(will)0
-4670 y(return)e(only)g(the)h(\034rst.)37 b(to)27 b(get)h(at)f(the)h
-(others,)f(y)n(ou)f(need)i(to)g(iterate)f(through)f(the)i(comp)r(onen)n
-(t.)0 4943 y Fd(5.2.2)94 b(Iterating)32 b(Through)g(Comp)s(onen)m(ts)0
-5153 y Ff(Iteration)27 b(requires)f(a)h(second)g(routine)g(to)h(get)f
-(the)h(next)g(sub)r(comp)r(onen)n(t)f(after)g(the)h(\034rst:)p
-eop
-%%Page: 11 11
-11 10 bop 0 -167 3900 5 v 0 -200 a Fd(5.)73 b(Using)32
-b(libical)3149 b Ff(11)0 162 y Fc(icalcomponent*)38 b(icalcomponent_g)o
-(et)o(_ne)o(xt)o(_c)o(omp)o(on)o(en)o(t\()654 275 y(icalcomponent*)f
-(component,)654 389 y(icalcomponent_k)o(in)o(d)h(kind\);)0
-610 y Ff(With)25 b(the)g('\034rst')f(and)g('next')h(routines,)g(y)n(ou)
-e(can)h(create)g(a)g(for)f(lo)r(op)h(to)h(iterate)f(through)f(all)h(of)
-h(a)f(comp)r(onen)n(ts)g(sub)r(com-)0 723 y(p)r(onen)n(ts)87
-944 y Fc(for\(c)42 b(=)h(icalcomponent_g)o(et_)o(fi)o(rs)o(t_c)o(om)o
-(po)o(nen)o(t\()o(co)o(mp,)o(IC)o(AL_)o(AN)o(Y_)o(COM)o(PO)o(NE)o(NT\))
-o(;)392 1058 y(c)g(!=)g(0;)44 1171 y(c)g(=)g(icalcomponent_ge)o(t_)o
-(ne)o(xt_)o(co)o(mp)o(one)o(nt)o(\(c)o(omp)o(,I)o(CA)o(L_A)o(NY)o(_CO)o
-(MP)o(ON)o(ENT)o(\)\))261 1398 y(do_something\(c\);)0
-1619 y Ff(This)32 b(co)r(de)f(bit)h(wil)g(iterate)g(through)f(all)g(of)
-h(the)g(sub)r(comp)r(onen)n(ts)f(in)h('comp')g(but)g(y)n(ou)f(can)g
-(select)h(a)f(sp)r(eci\034c)h(t)n(yp)r(e)g(of)0 1733
-y(comp)r(onen)n(t)27 b(b)n(y)h(c)n(hanging)e(ICAL_ANY_COMPONENT)i(to)f
-(another)g(comp)r(onen)n(t)g(t)n(yp)r(e.)0 2002 y Fd(5.2.3)94
-b(Using)31 b(Comp)s(onen)m(t)f(Iterators)0 2212 y Ff(The)h(iteration)f
-(mo)r(del)h(in)h(the)f(previous)f(section)g(requires)g(the)h(comp)r
-(onen)n(t)g(to)g(k)n(eep)f(the)i(state)f(of)g(the)g(iteration.)46
-b(So,)0 2326 y(y)n(ou)32 b(could)g(not)h(use)f(this)h(mo)r(del)g(to)f
-(p)r(erform)g(a)g(sorting)f(op)r(erations,)i(since)f(y)n(ou'd)g(need)h
-(t)n(w)n(o)f(iterators)f(and)h(there)g(is)0 2440 y(only)26
-b(space)h(for)f(one.)36 b(If)27 b(y)n(ou)f(ev)n(er)g(call)h(icalcomp)r
-(onen)n(t_get_\034rst_comp)r(onen)n(t\(\))d(when)j(an)f(iteration)h(is)
-f(in)h(progress,)0 2553 y(the)h(p)r(oin)n(ter)f(will)h(b)r(e)g(reset)f
-(to)g(the)h(b)r(eginning.)0 2710 y(T)-7 b(o)28 b(solv)n(e)g(this)h
-(problem,)g(there)f(are)g(also)g(external)f(iterators)h(for)g(comp)r
-(onen)n(ts.)40 b(The)28 b(routines)g(asso)r(ciated)g(with)h(these)0
-2823 y(external)e(iterators)f(are:)0 3044 y Fc(icalcompiter)38
-b(icalcomponent_beg)o(in)o(_co)o(mp)o(on)o(ent)o(\(i)o(ca)o(lco)o(mp)o
-(one)o(nt)o(*)f(component,)j(icalcomponent_k)o(ind)d(kind\);)0
-3158 y(icalcompiter)h(icalcomponent_end)o(_c)o(omp)o(on)o(en)o(t\(i)o
-(ca)o(lc)o(omp)o(on)o(ent)o(*)f(component,)j(icalcomponent_k)o(in)o(d)e
-(kind\);)0 3271 y(icalcomponent*)g(icalcompiter_ne)o(xt)o(\(ic)o(al)o
-(co)o(mpi)o(te)o(r*)f(i\);)0 3385 y(icalcomponent*)h(icalcompiter_pr)o
-(io)o(r\(i)o(ca)o(lc)o(omp)o(it)o(er)o(*)g(i\);)0 3498
-y(icalcomponent*)g(icalcompiter_de)o(re)o(f\(i)o(ca)o(lc)o(omp)o(it)o
-(er)o(*)g(i\);)0 3719 y Ff(The)27 b(_b)r(egin_\(\))g(and)g(_end_\(\))g
-(routines)g(return)g(a)g(new)g(iterator)f(that)h(p)r(oin)n(ts)g(to)h
-(the)f(b)r(eginning)g(and)g(ending)h(of)f(the)0 3833
-y(list)36 b(of)f(sub)r(comp)r(onen)n(t)h(for)f(the)h(giv)n(en)f(comp)r
-(onen)n(t,)i(and)e(the)h(kind)g(argumen)n(t)e(w)n(orks)g(lik)n(e)h(the)
-h(kind)g(argumen)n(t)f(for)0 3946 y(in)n(ternal)27 b(iterators.)0
-4103 y(After)f(creating)e(an)h(iterators,)g(use)g(_next_\(\))g(and)h
-(_prior_\(\))e(to)h(step)h(forw)n(ard)d(and)j(bac)n(kw)n(ard)d(through)
-i(the)h(list)f(and)0 4216 y(get)30 b(the)g(comp)r(onen)n(t)g(that)g
-(the)g(iterator)e(p)r(oin)n(ts)i(to,)h(and)e(use)h(_deref\(\))g(to)g
-(return)f(the)h(comp)r(onen)n(t)g(that)g(the)g(iterator)0
-4330 y(p)r(oin)n(ts)c(to)g(without)h(mo)n(ving)e(the)i(iterator.)35
-b(All)27 b(routines)f(will)g(return)g(0)g(when)g(they)h(mo)n(v)n(e)e
-(to)h(p)r(oin)n(t)h(o\033)f(the)h(end)f(of)h(the)0 4444
-y(list.)0 4600 y(Here)g(is)h(an)f(example)g(of)h(a)f(lo)r(op)g(using)g
-(these)h(routines:)0 4821 y Fc(for\()131 4934 y(i)43
-b(=)g(icalcomponent_be)o(gi)o(n_c)o(om)o(po)o(nen)o(t\()o(im)o(pl-)o
-(cl)o(us)o(ter)o(,I)o(CAL)o(_A)o(NY)o(_CO)o(MP)o(ON)o(ENT)o(\);)131
-5048 y(icalcompiter_de)o(ref)o(\(i)o(\)!)o(=)38 b(0;)131
-5162 y(icalcompiter_ne)o(xt\()o(i\))0 5275 y(\))261 5389
-y(icalcomponent)h(*this)i(=)i(icalcompiter_der)o(ef)o(\(i\))o(;)p
-eop
-%%Page: 12 12
-12 11 bop 0 -167 3900 5 v 0 -200 a Fd(5.)73 b(Using)32
-b(libical)3149 b Ff(12)0 162 y Fd(5.2.4)94 b(Remo)m(ving)29
-b(Comp)s(onen)m(ts)0 372 y Ff(Remo)n(ving)40 b(an)h(elemen)n(t)g(from)g
-(a)g(list)g(while)h(iterating)e(through)h(the)g(list)h(with)f(the)h(in)
-n(ternal)e(iterators)g(can)h(cause)0 485 y(problems,)20
-b(since)e(y)n(ou)g(will)h(probably)e(b)r(e)i(remo)n(ving)e(the)i
-(elemen)n(t)g(that)g(the)g(in)n(ternal)f(iterator)f(p)r(oin)n(ts)h(to.)
-34 b(The)19 b(_remo)n(v)n(e\(\))0 599 y(routine)24 b(will)g(k)n(eep)f
-(the)i(iterator)d(v)-5 b(alid)24 b(b)n(y)g(mo)n(ving)f(it)h(to)g(the)h
-(next)f(comp)r(onen)n(t,)g(but)h(in)f(a)g(normal)f(lo)r(op,)h(this)g
-(will)g(result)0 712 y(in)k(t)n(w)n(o)f(adv)-5 b(ances)26
-b(p)r(er)i(iteration,)e(and)i(y)n(ou)f(will)g(remo)n(v)n(e)f(only)h(ev)
-n(ery)f(other)h(comp)r(onen)n(t.)37 b(T)-7 b(o)27 b(a)n(v)n(oid)f(the)i
-(problem,)f(y)n(ou)0 826 y(will)h(need)f(to)h(step)g(the)g(iterator)e
-(ahead)h(of)g(the)h(elemen)n(t)g(y)n(ou)e(are)h(going)f(to)i(remo)n(v)n
-(e,)e(lik)n(e)h(this:)0 1066 y Fc(for\(c)41 b(=)j(icalcomponent_g)o(et)
-o(_fi)o(rs)o(t_)o(com)o(po)o(ne)o(nt\()o(pa)o(re)o(nt_)o(co)o(mp,)o(IC)
-o(AL)o(_AN)o(Y_)o(CO)o(MPO)o(NE)o(NT)o(\);)305 1179 y(c)f(!=)g(0;)305
-1293 y(c)g(=)g(next)174 1520 y(next)f(=)h(icalcomponent_get)o(_n)o(ex)o
-(t_c)o(om)o(po)o(nen)o(t\()o(pa)o(ren)o(t_)o(com)o(p,)o(IC)o(AL_)o(AN)o
-(Y_)o(COM)o(PO)o(NE)o(NT\))o(;)174 1633 y(icalcomponent_rem)o(ov)o(e_)o
-(com)o(po)o(ne)o(nt\()o(pa)o(re)o(nt_)o(co)o(mp)o(,c\))o(;)0
-1873 y Ff(Another)32 b(w)n(a)n(y)e(to)i(remo)n(v)n(e)e(comp)r(onen)n
-(ts)i(is)g(to)f(rely)h(on)f(the)i(side)f(e\033ect)g(of)g(icalcomp)r
-(onen)n(t_remo)n(v)n(e_comp)r(onen)n(t:)42 b(if)0 1986
-y(comp)r(onen)n(t)28 b(iterator)g(in)h(the)g(paren)n(t)f(comp)r(onen)n
-(t)h(is)f(p)r(oin)n(ting)h(to)g(the)g(c)n(hild)g(that)g(will)g(b)r(e)g
-(remo)n(v)n(ed,)f(it)h(will)g(mo)n(v)n(e)f(the)0 2100
-y(iterator)e(to)i(the)g(comp)r(onen)n(t)f(after)g(the)h(c)n(hild.)37
-b(The)27 b(follo)n(wing)g(co)r(de)g(will)h(exploit)f(this)h(b)r(eha)n
-(vior:)0 2340 y Fc(icalcomponent_ge)o(t_)o(fir)o(st)o(_c)o(omp)o(on)o
-(en)o(t\(p)o(ar)o(en)o(t_c)o(om)o(p,)o(ICA)o(L_)o(VEV)o(EN)o(T_)o(COM)o
-(PO)o(NE)o(NT\))o(;)0 2453 y(while\(\(c=icalcom)o(po)o(nen)o(t_)o(ge)o
-(t_c)o(ur)o(re)o(nt_)o(co)o(mp)o(one)o(nt)o(\(c)o(\)\))37
-b(!=)43 b(0)g(\))131 2567 y(if\(icalcomponen)o(t_i)o(sa)o(\(c)o(\))38
-b(==)k(ICAL_VEVENT_COMP)o(ONE)o(NT)o(\))261 2680 y(icalcomponent_rem)o
-(ov)o(e_c)o(om)o(po)o(nen)o(t\()o(pa)o(ren)o(t_)o(co)o(mp,)o(in)o(ner)o
-(\);)174 2794 y(else)261 2907 y(icalcomponent_get)o(_n)o(ext)o(_c)o(om)
-o(pon)o(en)o(t\()o(par)o(en)o(t_)o(com)o(p,)o(ICA)o(L_)o(VE)o(VEN)o(T_)
-o(CO)o(MPO)o(NE)o(NT)o(\);)0 3294 y Fd(5.2.5)94 b(W)-8
-b(orking)31 b(with)g(prop)s(erties)g(and)h(parameters)0
-3504 y Ff(Finding,)g(iterating)f(and)g(remo)n(ving)e(prop)r(erties)h(w)
-n(orks)g(the)h(same)g(as)f(it)i(do)r(es)e(for)h(comp)r(onen)n(ts,)g
-(using)g(the)h(prop)r(ert)n(y-)0 3617 y(sp)r(eci\034c)c(or)e
-(parameter-sp)r(eci\034c)g(in)n(terfaces:)0 3857 y Fc(icalproperty*)38
-b(icalcomponent_ge)o(t_)o(fir)o(st)o(_p)o(rop)o(er)o(ty)o(\()218
-3970 y(icalcomponent*)g(component,)218 4084 y(icalproperty_kin)o(d)f
-(kind\);)0 4197 y(icalproperty*)h(icalcomponent_ge)o(t_)o(nex)o(t_)o
-(pr)o(ope)o(rt)o(y\()218 4311 y(icalcomponent*)g(component,)218
-4425 y(icalproperty_kin)o(d)f(kind\);)0 4538 y(void)42
-b(icalcomponent_ad)o(d_)o(pr)o(ope)o(rt)o(y\()218 4652
-y(icalcomponent*)c(component,)218 4765 y(icalproperty*)g(property\);)0
-4879 y(void)k(icalcomponent_re)o(mo)o(ve)o(_pr)o(op)o(er)o(ty\()218
-4992 y(icalcomponent*)c(component,)218 5106 y(icalproperty*)g
-(property\);)0 5346 y Ff(F)-7 b(or)27 b(parameters:)p
-eop
-%%Page: 13 13
-13 12 bop 0 -167 3900 5 v 0 -200 a Fd(5.)73 b(Using)32
-b(libical)3149 b Ff(13)0 162 y Fc(icalparameter*)38 b(icalproperty_ge)o
-(t_)o(fir)o(st)o(_p)o(ara)o(me)o(te)o(r\()218 275 y(icalproperty*)g
-(prop,)218 389 y(icalparameter_ki)o(nd)f(kind\);)0 502
-y(icalparameter*)h(icalproperty_ge)o(t_)o(nex)o(t_)o(pa)o(ram)o(et)o
-(er)o(\()218 616 y(icalproperty*)g(prop,)218 730 y(icalparameter_ki)o
-(nd)f(kind\);)0 843 y(void)42 b(icalproperty_add)o(_p)o(ar)o(ame)o(te)o
-(r\()218 957 y(icalproperty*)c(prop,)218 1070 y(icalparameter*)g
-(parameter\);)0 1184 y(void)k(icalproperty_rem)o(ov)o(e_)o(par)o(am)o
-(et)o(er\()218 1297 y(icalproperty*)c(prop,)218 1411
-y(icalparameter_ki)o(nd)f(kind\);)0 1650 y Ff(Note)30
-b(that)g(since)f(there)h(should)f(b)r(e)i(only)e(one)g(parameter)f(of)i
-(eac)n(h)f(t)n(yp)r(e)h(in)g(a)f(prop)r(ert)n(y)-7 b(,)30
-b(y)n(ou)f(will)h(rarely)e(need)i(to)f(use)0 1764 y
-(icalparameter_get_nect_paameter.)0 2037 y Fd(5.2.6)94
-b(W)-8 b(orking)31 b(with)g(v)-5 b(alues)0 2247 y Ff(V)e(alues)33
-b(are)g(t)n(ypically)g(part)h(of)f(a)h(prop)r(ert)n(y)-7
-b(,)34 b(although)f(they)h(can)f(exist)h(on)f(their)h(o)n(wn.)55
-b(Y)-7 b(ou)34 b(can)f(manipulate)h(them)0 2360 y(either)27
-b(as)g(part)g(of)h(the)g(prop)r(ert)n(y)e(or)h(indep)r(enden)n(tly)-7
-b(.)0 2517 y(The)36 b(most)f(common)g(w)n(a)n(y)f(to)h(w)n(ork)f(with)i
-(v)-5 b(alues)35 b(to)h(is)f(to)g(manipulate)h(them)g(from)f(they)h
-(prop)r(erties)e(that)i(con)n(tain)0 2630 y(them.)46
-b(This)31 b(in)n(v)n(olv)n(es)d(few)n(er)i(routine)g(calls)g(and)h(in)n
-(termediate)f(v)-5 b(ariables)29 b(than)h(w)n(orking)f(with)i(them)g
-(indep)r(enden)n(tly)-7 b(,)0 2744 y(and)27 b(it)h(is)g(t)n(yp)r
-(e-safe.)0 2900 y(F)-7 b(or)26 b(eac)n(h)g(prop)r(ert)n(y)-7
-b(,)26 b(there)h(are)f(a)g(_get_)g(and)h(a)f(_set_)g(routine)h(that)g
-(access)e(the)j(in)n(ternal)e(v)-5 b(alue.)36 b(F)-7
-b(or)26 b(instanace,)h(for)0 3014 y(the)h(UID)g(prop)r(ert)n(y)-7
-b(,)27 b(the)h(routines)f(are:)0 3253 y Fc(void)42 b(icalproperty_set)o
-(_u)o(id)o(\(ic)o(al)o(pr)o(ope)o(rt)o(y*)37 b(prop,)k(const)h(char*)f
-(v\))0 3367 y(const)g(char*)h(icalproperty_get)o(_u)o(id)o(\(ic)o(al)o
-(pr)o(ope)o(rt)o(y*)37 b(prop\))0 3607 y Ff(F)-7 b(or)19
-b(m)n(ulti-v)-5 b(alued)20 b(prop)r(erties,)h(lik)n(e)f(A)-7
-b(TT)g(A)n(CH,)20 b(the)h(v)-5 b(alue)20 b(t)n(yp)r(e)g(is)g(usually)f
-(a)h(struct)g(or)f(union)h(that)g(holds)g(b)r(oth)g(p)r(ossible)0
-3720 y(t)n(yp)r(es.)0 3877 y(If)28 b(y)n(ou)f(w)n(an)n(t)g(to)g(w)n
-(ork)f(with)i(the)g(underlying)f(v)-5 b(alue)28 b(ob)5
-b(ject,)27 b(y)n(ou)g(can)g(get)g(and)h(set)f(it)h(with:)0
-4116 y Fc(icalvalue*)39 b(icalproperty_get_)o(va)o(lu)o(e)f
-(\(icalproperty*)f(prop\))0 4230 y(void)42 b(icalproperty_set)o(_v)o
-(al)o(ue\()o(ic)o(al)o(pro)o(pe)o(rt)o(y*)37 b(prop,)42
-b(icalvalue*)d(value\);)0 4469 y Ff(Icalprop)r(ert)n(y_get_v)-5
-b(alue\(\))36 b(will)i(return)g(a)g(reference)f(that)h(y)n(ou)g(can)g
-(manipulate)g(with)h(other)e(icalv)-5 b(alue)38 b(routines.)0
-4583 y(Most)30 b(of)h(the)g(time,)g(y)n(ou)f(will)h(ha)n(v)n(e)e(to)i
-(kno)n(w)e(what)i(the)g(t)n(yp)r(e)f(of)h(the)g(v)-5
-b(alue)30 b(is.)46 b(F)-7 b(or)30 b(instance,)g(if)i(y)n(ou)d(kno)n(w)h
-(that)h(the)0 4696 y(v)-5 b(alue)27 b(is)h(a)f(D)n(A)-7
-b(TETIME)29 b(t)n(yp)r(e,)f(y)n(ou)f(can)g(manipulate)g(it)h(with:)0
-4936 y Fc(struct)41 b(icaltimetype)e(icalvalue_get_d)o(at)o(et)o(ime)o
-(\(i)o(ca)o(lva)o(lu)o(e*)e(value\);)0 5049 y(void)42
-b(icalvalue_set_da)o(te)o(ti)o(me\()o(ic)o(al)o(val)o(ue)o(*)37
-b(value,)k(struct)h(icaltimetype)c(v\);)0 5289 y Ff(When)21
-b(w)n(orking)e(with)i(an)f(extension)g(prop)r(ert)n(y)f(or)h(v)-5
-b(alue)20 b(\(and)h(X-PR)n(OPER)-7 b(TY)21 b(or)f(a)g(prop)r(ert)n(y)f
-(that)i(has)f(the)h(parameter)0 5402 y(V)-9 b(ALUE=x-name)27
-b(\))h(the)g(v)-5 b(alue)28 b(t)n(yp)r(e)f(is)h(alw)n(a)n(ys)d(a)j
-(string.)36 b(T)-7 b(o)27 b(get)g(and)h(set)f(the)h(v)-5
-b(alue,)28 b(use:)p eop
-%%Page: 14 14
-14 13 bop 0 -167 3900 5 v 0 -200 a Fd(5.)73 b(Using)32
-b(libical)3149 b Ff(14)0 162 y Fc(void)42 b(icalproperty_set)o(_x)o
-(\(i)o(cal)o(pr)o(op)o(ert)o(y*)37 b(prop,)k(char*)h(v\);)0
-275 y(char*)f(icalproperty_get_)o(x\()o(ica)o(lp)o(ro)o(per)o(ty)o(*)c
-(prop\);)0 515 y Ff(All)26 b(X)g(prop)r(erties)f(ha)n(v)n(e)f(the)i(t)n
-(yp)r(e)g(of)g(ICAL_X_PR)n(OPER)-7 b(TY,)26 b(so)f(y)n(ou)g(will)h
-(need)g(these)g(routines)f(to)g(get)h(and)f(set)h(the)0
-628 y(name)h(of)h(the)g(prop)r(ert)n(y:)0 868 y Fc(char*)41
-b(icalproperty_get_)o(x_)o(nam)o(e\()o(ic)o(alp)o(ro)o(pe)o(rty)o(*)c
-(prop\))0 981 y(void)42 b(icalproperty_set)o(_x)o(_n)o(ame)o(\(i)o(ca)o
-(lpr)o(op)o(er)o(ty*)37 b(prop,)k(char*)h(name\);)0 1254
-y Fd(5.2.7)94 b(Chec)m(king)32 b(Comp)s(onen)m(t)d(V)-8
-b(alidit)m(y)0 1464 y Ff(RF)n(C)25 b(2446)e(de\034nes)j(rules)e(for)h
-(what)g(prop)r(erties)f(m)n(ust)h(exist)g(in)h(a)e(comp)r(onen)n(t)h
-(to)g(b)r(e)h(used)f(for)f(transferring)g(sc)n(heduling)0
-1578 y(data.)58 b(Most)35 b(of)g(these)g(rules)f(relate)g(to)h(the)g
-(existence)f(of)h(prop)r(erties)f(relativ)n(e)g(to)h(the)g(METHOD)h
-(prop)r(ert)n(y)-7 b(,)35 b(whic)n(h)0 1691 y(declares)22
-b(what)h(op)r(eration)f(a)h(remote)g(receiv)n(er)f(should)h(use)g(to)g
-(pro)r(cess)f(a)h(comp)r(onen)n(t.)35 b(F)-7 b(or)23
-b(instance,)h(if)g(the)f(METHOD)0 1805 y(is)36 b(REQUEST)h(and)e(the)i
-(comp)r(onen)n(t)e(is)h(a)f(VEVENT,)j(the)e(sender)f(is)h(probably)f
-(asking)f(the)j(receiv)n(er)d(to)h(join)h(in)g(a)0 1918
-y(meeting.)g(In)25 b(this)g(case,)g(RF)n(C2446)d(sa)n(ys)i(that)h(the)g
-(comp)r(onen)n(t)g(m)n(ust)g(sp)r(ecify)g(a)f(start)g(time)i(\(DTST)-7
-b(AR)g(T\))26 b(and)f(list)g(the)0 2032 y(receiv)n(er)h(as)h(an)g
-(attendee)h(\(A)-7 b(TTENDEE\).)0 2188 y(Libical)27 b(can)g(c)n(hec)n
-(k)g(these)h(restrictions)e(with)i(the)g(routine:)0 2428
-y Fc(int)42 b(icalrestriction_c)o(he)o(ck)o(\(ic)o(al)o(co)o(mpo)o(ne)o
-(nt)o(*)c(comp\);)0 2667 y Ff(This)19 b(routine)f(returns)g(0)h(if)g
-(the)g(comp)r(onen)n(t)g(do)r(es)f(not)h(pass)f(RF)n(C2446)f
-(restrictions,)i(or)f(if)h(the)g(comp)r(onen)n(t)g(is)g(malformed.)0
-2781 y(The)38 b(comp)r(onen)n(t)g(y)n(ou)f(pass)g(in)h
-Fa(must)45 b Ff(b)r(e)38 b(a)g(V)n(CALEND)n(AR,)h(with)g(one)e(or)g
-(more)h(c)n(hildren,)i(lik)n(e)d(the)i(examples)e(in)0
-2895 y(RF)n(C2446.)0 3051 y(When)28 b(this)f(routine)g(runs,)f(it)i
-(will)f(insert)g(new)g(prop)r(erties)f(in)n(to)h(the)h(comp)r(onen)n(t)
-e(to)h(indicate)h(an)n(y)e(errors)f(it)i(\034nds.)37
-b(See)0 3165 y(section)27 b(6.5.3,)f(X-LIC-ERR)n(OR)i(for)f(more)f
-(information)h(ab)r(out)h(these)f(error)f(prop)r(erties.)0
-3437 y Fd(5.2.8)94 b(Con)m(v)m(erting)32 b(Comp)s(onen)m(ts)d(to)j(T)-8
-b(ext)0 3647 y Ff(T)h(o)19 b(create)g(an)h(RF)n(C2445)e(complian)n(t)h
-(text)h(represen)n(tation)e(of)i(an)f(ob)5 b(ject,)21
-b(use)f(one)f(of)h(the)g(*_as_ical_string\(\))d(routines:)0
-3887 y Fc(char*)41 b(icalcomponent_as_)o(ic)o(al_)o(st)o(ri)o(ng)c
-(\(icalcomponent*)g(component\))0 4000 y(char*)k(icalproperty_as_i)o
-(ca)o(l_s)o(tr)o(in)o(g)d(\(icalproperty*)f(property\))0
-4114 y(char*)k(icalparameter_as_)o(ic)o(al_)o(st)o(ri)o(ng)c
-(\(icalparameter*)g(parameter\))0 4227 y(char*)k(icalvalue_as_ical)o
-(_s)o(tri)o(ng)c(\(icalvalue*)i(value\))0 4467 y Ff(In)32
-b(most)h(cases,)f(y)n(ou)f(will)i(only)f(use)g(icalcomp)r(onen)n
-(t_as_ical_string)c(\(\),)34 b(since)e(it)h(will)f(cascade)f(and)h(con)
-n(v)n(ert)f(all)h(of)0 4581 y(the)c(parameters,)e(prop)r(erties)g(and)i
-(v)-5 b(alues)27 b(that)h(are)e(attac)n(hed)h(to)h(the)g(ro)r(ot)e
-(comp)r(onen)n(t.)0 4737 y(Icalprop)r(ert)n(y_as_ical_string\(\))37
-b(will)k(terminate)g(eac)n(h)g(line)g(with)h(the)f(RF)n(C2445)f(sp)r
-(eci\034ed)h(line)h(terminator)e("n")0 4851 y(Ho)n(w)n(ev)n(er,)27
-b(if)h(y)n(ou)g(compile)g(with)h(the)f(sym)n(b)r(ol)g
-(ICAL_UNIX_NEWLINE)i(unde\034ned,)f(\()g(it)g(is)f(de\034ned)h(b)n(y)f
-(default\))h(it)0 4964 y(will)f(terminate)f(lines)h(with)g("nr")0
-5121 y(Remem)n(b)r(er)35 b(that)h(the)f(string)g(returned)f(b)n(y)h
-(these)h(routines)e(is)h(o)n(wned)g(b)n(y)g(the)h(library)-7
-b(,)36 b(and)f(will)g(ev)n(en)n(tually)f(b)r(e)i(re-)0
-5234 y(written.)h(Y)-7 b(ou)28 b(should)f(cop)n(y)g(it)h(if)g(y)n(ou)e
-(w)n(an)n(t)h(to)h(preserv)n(e)e(it.)p eop
-%%Page: 15 15
-15 14 bop 0 -167 3900 5 v 0 -200 a Fd(5.)73 b(Using)32
-b(libical)3149 b Ff(15)0 162 y Fb(5.3)112 b(Time)0 372
-y Fd(5.3.1)94 b(Time)30 b(structure)0 582 y Ff(LIbical)d(de\034nes)g
-(it's)g(o)n(wn)f(time)i(structure)e(for)h(storing)f(all)h(dates)f(and)h
-(times.)37 b(It)28 b(w)n(ould)e(ha)n(v)n(e)g(b)r(een)i(nice)f(to)g
-(re-use)f(the)0 695 y(C)j(library's)e Fa(struct)j(tm,)h
-Ff(but)e(that)h(structure)e(do)r(es)g(not)h(di\033eren)n(tiate)g(b)r
-(et)n(w)n(een)g(dates)f(and)h(times,)g(and)g(b)r(et)n(w)n(een)g(lo)r
-(cal)0 809 y(time)f(and)f(UTC.)h(The)g(libical)f(structure)g(is:)0
-1031 y Fc(struct)41 b(icaltimetype)87 1144 y(int)h(year;)87
-1258 y(int)g(month;)87 1371 y(int)g(day;)87 1485 y(int)g(hour;)87
-1599 y(int)g(minute;)87 1712 y(int)g(second;)87 1826
-y(int)g(is_utc;)f(/*)i(1-)g(time)e(is)i(in)g(UTC)f(timezone)e(*/)87
-1939 y(int)i(is_date;)f(/*)h(1)i(-)f(interpret)c(this)j(as)h(date.)e
-(*/)i(;)0 2161 y Ff(The)35 b(y)n(ear,)h(mon)n(th,)g(da)n(y)-7
-b(,)37 b(hour,)f(min)n(ute)f(and)g(second)g(\034elds)g(ho)n(w)f(the)h
-(brok)n(en-out)f(time)h(v)-5 b(alues.)59 b(The)35 b(is_utc)g(\034eld)0
-2275 y(distinguishes)30 b(b)r(et)n(w)n(een)h(times)g(UTC)g(and)g(a)f
-(lo)r(cal)g(time)i(zone.)45 b(The)31 b(is_date)f(\034eld)h(indicates)g
-(if)g(the)g(in)n(tra-da)n(y)e(\034elds)0 2388 y(hold)e(v)-5
-b(alid)28 b(data.)0 2658 y Fd(5.3.2)94 b(Creating)31
-b(time)f(structures)0 2868 y Ff(There)d(are)g(sev)n(eral)e(w)n(a)n(ys)h
-(to)i(create)e(a)i(new)f(icaltimet)n(yp)r(e)h(structure:)0
-3089 y Fc(struct)41 b(icaltimetype)e(icaltime_from_s)o(tr)o(in)o(g\(c)o
-(on)o(st)e(char*)42 b(str\);)0 3203 y(struct)f(icaltimetype)e
-(icaltime_from_t)o(im)o(et)o(\(ti)o(me)o(_t)e(v,)43 b(int)f(is_date\);)
-0 3317 y(struct)f(icaltimetype)e(icaltime_from_i)o(nt)o(\(i)o(nt)e(v,)
-43 b(int)f(is_date,)e(int)j(is_utc\);)0 3538 y Ff(Icaltime_from_string)
-25 b(tak)n(es)i(an)n(y)g(RF)n(C2445)e(complian)n(t)i(time)h(string:)0
-3760 y Fc(struct)41 b(icaltimetype)e(tt)j(=)h(icaltime_from_str)o(in)o
-(g\()o(199)o(70)o(101)o(T1)o(03)o(000)o(\);)0 3982 y
-Ff(Icaltime_from_timet)22 b(tak)n(es)g(a)h(timet)g(v)-5
-b(alue,)24 b(represen)n(ting)e(seconds)g(past)g(the)i(POSIX)f(ep)r(o)r
-(c)n(h,)h(and)f(a)f(\035ag)g(to)h(indicate)0 4095 y(if)k(the)f(time)g
-(is)g(a)g(date.)36 b(Dates)26 b(ha)n(v)n(e)f(an)h(iden)n(tical)f
-(structure)h(to)g(a)f(time,)i(but)g(they)f(time)h(p)r(ortion)e(\()i
-(hours,)e(min)n(uts)h(and)0 4209 y(seconds)d(\))i(is)g(alw)n(a)n(ys)d
-(00:00:00.)33 b(Dates)24 b(act)h(di\033eren)n(tly)f(in)h(sorting)e(an)h
-(comparision,)f(and)i(they)f(ha)n(v)n(e)f(a)h(di\033eren)n(t)h(string)0
-4322 y(represen)n(tation)h(in)i(RF)n(C2445.)0 4479 y(The)20
-b(icaltime_from_in)n(t)e(is)h(lik)n(e)g(icaltime_from_timet,)i(but)f
-(with)g(an)f(arbitrary)f(ep)r(o)r(c)n(h.)34 b(This)19
-b(routine)g(w)n(as)g(a)g(mistak)n(e)0 4592 y(and)27 b(is)h(deprecated.)
-0 4862 y Fd(5.3.3)94 b(Time)30 b(manipulating)f(routines)0
-5072 y Ff(The)f(n)n(ull)f(time)h(v)-5 b(alue)28 b(is)f(used)h(to)f
-(indicate)h(that)g(the)g(data)f(in)g(the)h(structure)f(is)h(not)f(a)h
-(v)-5 b(alid)27 b(time.)0 5294 y Fc(struct)41 b(icaltimetype)e
-(icaltime_null_t)o(im)o(e\()o(voi)o(d\))o(;)0 5407 y(int)j
-(icaltime_is_null_)o(ti)o(me)o(\(st)o(ru)o(ct)37 b(icaltimetype)h(t\);)
-p eop
-%%Page: 16 16
-16 15 bop 0 -167 3900 5 v 0 -200 a Fd(5.)73 b(Using)32
-b(libical)3149 b Ff(16)0 162 y(It)33 b(is)g(sensible)g(for)g(the)g
-(brok)n(en-out)f(time)h(\034elds)g(to)g(con)n(tain)g(v)-5
-b(alues)32 b(that)i(are)e(not)h(p)r(ermitted)h(in)f(an)g(ISO)g
-(complian)n(t)0 275 y(time)g(string.)53 b(F)-7 b(or)32
-b(instance,)i(the)g(seconds)e(\034eld)h(can)g(hold)g(v)-5
-b(alues)32 b(greater)f(than)j(59,)f(and)g(the)g(hours)f(\034eld)i(can)e
-(hold)0 389 y(v)-5 b(alues)29 b(larger)e(than)j(24.)41
-b(The)29 b(excessiv)n(e)f(v)-5 b(alues)29 b(will)g(b)r(e)h(rolled)e(o)n
-(v)n(er)g(in)n(to)h(the)g(next)h(larger)d(\034eld)j(when)f(the)h
-(structure)0 502 y(is)d(normalized.)0 712 y Fc(struct)41
-b(icaltimetype)e(icaltime_normal)o(iz)o(e\()o(str)o(uc)o(t)e
-(icaltimetype)i(t\);)0 921 y Ff(Normalizing)26 b(allo)n(ws)g(y)n(ou)h
-(to)h(do)f(arithmetic)g(op)r(erations)g(on)g(time)h(v)-5
-b(alues.)0 1130 y Fc(struct)41 b(icaltimetype)e(tt)j(=)h
-(icaltime_from_str)o(in)o(g\()o("19)o(97)o(010)o(1T)o(10)o(300)o(0")o
-(\);)0 1244 y(tt.days)e(+=3)0 1357 y(tt.second)f(+=)i(70;)0
-1471 y(tt)h(=)g(icaltime_normali)o(ze)o(\(t)o(t\);)0
-1680 y Ff(There)27 b(are)g(sev)n(eral)e(routines)i(to)h(get)f(the)h(da)
-n(y)f(of)g(the)h(w)n(eek)f(or)g(mon)n(th,)g(etc,)h(from)f(a)h(time)g
-(structure.)0 1889 y Fc(short)41 b(icaltime_day_of_y)o(ea)o(r\(s)o(tr)o
-(uc)o(t)d(icaltimetype)g(t\);)0 2003 y(struct)j(icaltimetype)e
-(icaltime_from_d)o(ay)o(_o)o(f_y)o(ea)o(r\()o(sho)o(rt)e(doy,)42
-b(short)f(year\);)0 2117 y(short)g(icaltime_day_of_w)o(ee)o(k\(s)o(tr)o
-(uc)o(t)d(icaltimetype)g(t\);)0 2230 y(short)j(icaltime_start_do)o(y_)o
-(of_)o(we)o(ek)o(\(st)o(ru)o(ct)c(icaltimetype)i(t\);)0
-2344 y(short)i(icaltime_week_num)o(be)o(r\(s)o(ho)o(rt)c(day_of_month,)
-h(short)k(month,)f(short)g(year\);)0 2457 y(struct)g(icaltimetype)e
-(icaltime_from_w)o(ee)o(k_)o(num)o(be)o(r\()o(sho)o(rt)e(week_number,)h
-(short)k(year\);)0 2571 y(short)f(icaltime_days_in_)o(mo)o(nth)o(\(s)o
-(ho)o(rt)c(month,short)i(year\);)0 2780 y Ff(T)-7 b(w)n(o)37
-b(routines)g(con)n(v)n(ert)g(time)h(structures)f(to)h(and)f(from)h(the)
-g(n)n(um)n(b)r(er)g(of)f(seconds)g(since)h(the)g(POSIX)g(ep)r(o)r(c)n
-(h.)68 b(The)0 2894 y(is_date)27 b(\034eld)h(indicates)f(whether)g(or)g
-(not)h(the)g(hour,)e(min)n(ute)i(and)g(second)f(\034elds)g(should)h(b)r
-(e)g(used)f(in)h(the)g(con)n(v)n(ersion.)0 3103 y Fc(struct)41
-b(icaltimetype)e(icaltime_from_t)o(im)o(et)o(\(ti)o(me)o(_t)e(v,)43
-b(int)f(is_date\);)0 3217 y(time_t)f(icaltime_as_time)o(t\()o(str)o(uc)
-o(t)c(icaltimetype\);)0 3426 y Ff(The)28 b(compare)e(routine)h(w)n
-(orks)f(exactly)h(lik)n(e)g(strcmp,)g(but)h(on)g(time)g(structures.)0
-3635 y Fc(int)42 b(icaltime_compare\()o(st)o(ru)o(ct)37
-b(icaltimetype)i(a,struct)h(icaltimetype)e(b\);)0 3844
-y Ff(The)d(follo)n(wing)e(routines)h(con)n(v)n(ert)g(b)r(et)n(w)n(een)g
-(UTC)h(and)g(a)f(named)h(timezone.)58 b(The)35 b(tzid)g(\034eld)g(m)n
-(ust)g(b)r(e)g(a)f(timezone)0 3958 y(name)27 b(from)h(the)f(Olsen)h
-(database,)e(suc)n(h)h(as)g("America/Los_Angeles.")0
-4114 y(The)h(utc_o\033set)f(routine)g(returns)g(the)h(o\033set)f(of)h
-(the)g(named)f(time)h(zone)f(from)h(UTC,)f(in)h(seconds.)0
-4271 y(The)f(tt)g(parameter)e(in)i(the)g(follo)n(wing)e(routines)h
-(indicates)h(the)g(date)f(on)h(whic)n(h)f(the)h(con)n(v)n(ersion)d
-(should)j(b)r(e)g(made.)36 b(The)0 4384 y(tt)23 b(parameter)e(is)h
-(necessary)f(b)r(ecause)h(timezones)g(ha)n(v)n(e)f(man)n(y)g
-(di\033eren)n(t)i(rules)f(for)g(when)g(da)n(yligh)n(t)f(sa)n(vings)g
-(time)i(is)f(used,)0 4498 y(and)27 b(these)h(rules)f(can)g(c)n(hange)f
-(o)n(v)n(er)g(time.)37 b(So,)27 b(for)g(a)g(single)g(timezone)g(one)g
-(y)n(ear)f(ma)n(y)h(ha)n(v)n(e)f(da)n(yligh)n(t)h(sa)n(vings)e(time)j
-(on)0 4612 y(Marc)n(h)f(15,)f(but)j(for)e(other)g(y)n(ears)f(Marc)n(h)g
-(15)h(ma)n(y)g(b)r(e)h(standard)f(time,)h(and)f(some)g(y)n(ears)f(ma)n
-(y)h(ha)n(v)n(e)g(standard)f(time)i(all)0 4725 y(y)n(ear.)0
-4934 y Fc(int)42 b(icaltime_utc_offs)o(et)o(\(s)o(tru)o(ct)37
-b(icaltimetype)h(tt,)43 b(char*)e(tzid\);)0 5048 y(int)h
-(icaltime_local_ut)o(c_)o(of)o(fse)o(t\()o(\);)0 5162
-y(struct)f(icaltimetype)e(icaltime_as_utc)o(\(s)o(tr)o(uct)e
-(icaltimetype)h(tt,char*)i(tzid\);)0 5275 y(struct)h(icaltimetype)e
-(icaltime_as_zon)o(e\()o(st)o(ruc)o(t)e(icaltimetype)i(tt,char*)h
-(tzid\);)0 5389 y(struct)h(icaltimetype)e(icaltime_as_loc)o(al)o(\(s)o
-(tru)o(ct)e(icaltimetype)h(tt\);)p eop
-%%Page: 17 17
-17 16 bop 0 -167 3900 5 v 0 -200 a Fd(5.)73 b(Using)32
-b(libical)3149 b Ff(17)0 162 y Fb(5.4)112 b(Storing)37
-b(Ob)6 b(jects)0 372 y Ff(The)31 b(libical)f(distribution)h(includes)g
-(a)f(separate)f(library)-7 b(,)30 b(libicalss,)h(that)g(allo)n(ws)e(y)n
-(ou)h(to)g(store)g(iCal)g(comp)r(onen)n(t)h(data)0 485
-y(to)f(disk)g(in)h(a)f(v)-5 b(ariet)n(y)29 b(of)i(w)n(a)n(ys.)43
-b(This)30 b(library)f(also)h(includes)g(co)r(de)g(to)g(implemen)n(t)h
-(the)g(CSTP)g(proto)r(col)e(of)h(CAP)h(and)0 599 y(has)c(some)g
-(routines)g(for)g(deciphering)g(incomming)g(messages.)0
-755 y(The)f(\034le)h(storage)e(routines)g(are)h(organized)e(in)j(an)f
-(inheritance)g(heirarc)n(h)n(y)f(that)h(is)h(ro)r(oted)e(in)i(icalset,)
-f(with)h(the)g(deriv)n(ed)0 869 y(class)k(ical\034leset)g(and)h
-(icaldirset.)48 b(Ical\034leset)32 b(stores)e(comp)r(onen)n(ts)h(to)h
-(a)g(\034le,)h(while)f(icaldirset)e(stores)h(comp)r(onen)n(ts)g(to)0
-983 y(m)n(ultiple)c(\034les,)f(one)g(p)r(er)g(mon)n(th)g(based)g(on)g
-(DTST)-7 b(AMP)g(.)28 b(Other)e(storages)e(classess,)h(for)g(storage)g
-(to)h(a)g(heap)g(or)f(a)h(m)n(ysql)0 1096 y(database)g(are)h(planned)g
-(for)g(the)h(future.)0 1253 y(All)g(of)g(the)g(icalset)f(deriv)n(ed)f
-(classes)h(ha)n(v)n(e)f(the)i(same)f(in)n(terface:)0
-1579 y Fc(icaldirset*)39 b(icaldirset_new\(c)o(on)o(st)e(char*)k
-(path\);)0 1693 y(void)h(icaldirset_free\()o(ic)o(al)o(dir)o(se)o(t*)37
-b(store\);)0 1806 y(const)k(char*)h(icaldirset_path\()o(ic)o(al)o(dir)o
-(se)o(t*)37 b(store\);)0 1920 y(void)42 b(icaldirset_mark\()o(ic)o(al)o
-(dir)o(se)o(t*)37 b(store\);)0 2033 y(icalerrorenum)h(icaldirset_commi)
-o(t\()o(ica)o(ld)o(ir)o(set)o(*)f(store\);)0 2147 y(icalerrorenum)h
-(icaldirset_add_c)o(om)o(pon)o(en)o(t\()o(ica)o(ld)o(ir)o(set)o(*)f
-(store,)k(icalcomponent*)d(comp\);)0 2260 y(icalerrorenum)g
-(icaldirset_remov)o(e_)o(com)o(po)o(ne)o(nt\()o(ic)o(al)o(dir)o(se)o
-(t*)f(store,)k(icalcomponent*)d(comp\);)0 2374 y(int)k
-(icaldirset_count_)o(co)o(mp)o(one)o(nt)o(s\()o(ica)o(ld)o(ir)o(set)o
-(*)37 b(store,)k(icalcomponent_kin)o(d)c(kind\);)0 2488
-y(icalerrorenum)h(icaldirset_selec)o(t\()o(ica)o(ld)o(ir)o(set)o(*)f
-(store,)k(icalcomponent*)d(gauge\);)0 2601 y(void)k(icaldirset_clear)o
-(\(i)o(ca)o(ldi)o(rs)o(et)o(*)c(store\);)0 2715 y(icalcomponent*)g
-(icaldirset_fetc)o(h\()o(ica)o(ld)o(ir)o(set)o(*)f(store,)k(const)h
-(char*)f(uid\);)0 2828 y(int)h(icaldirset_has_ui)o(d\()o(ic)o(ald)o(ir)
-o(se)o(t*)37 b(store,)k(const)h(char*)f(uid\);)0 2942
-y(icalcomponent*)d(icaldirset_fetc)o(h_)o(mat)o(ch)o(\(i)o(cal)o(di)o
-(rs)o(et*)f(set,)42 b(icalcomponent)c(*c\);)0 3055 y(icalerrorenum)g
-(icaldirset_modif)o(y\()o(ica)o(ld)o(ir)o(set)o(*)f(store,)k
-(icalcomponent)d(*oldc,)j(icalcomponent)e(*newc\);)0
-3169 y(icalcomponent*)f(icaldirset_get_)o(cu)o(rre)o(nt)o(_c)o(omp)o
-(on)o(en)o(t\(i)o(ca)o(ldi)o(rs)o(et)o(*)g(store\);)0
-3283 y(icalcomponent*)g(icaldirset_get_)o(fi)o(rst)o(_c)o(om)o(pon)o
-(en)o(t\()o(ica)o(ld)o(irs)o(et)o(*)f(store\);)0 3396
-y(icalcomponent*)h(icaldirset_get_)o(ne)o(xt_)o(co)o(mp)o(one)o(nt)o
-(\(i)o(cal)o(di)o(rse)o(t*)f(store\);)0 3664 y Fd(5.4.1)94
-b(Creating)31 b(a)h(new)g(set)0 3874 y Ff(Y)-7 b(ou)28
-b(can)f(create)f(a)i(new)f(set)h(from)f(either)g(the)h(base)f(class)g
-(or)g(the)g(direv)n(ed)g(class.)36 b(F)-7 b(rom)27 b(the)h(base)f
-(class)g(use)g(one)g(of:)0 4087 y Fc(icalset*)40 b(icalset_new_file)o
-(\(co)o(ns)o(t)d(char*)42 b(path\);)0 4201 y(icalset*)e
-(icalset_new_dir\()o(con)o(st)d(char*)k(path\);)0 4314
-y(icalset*)f(icalset_new_heap)o(\(vo)o(id)o(\);)0 4428
-y(icalset*)g(icalset_new_mysq)o(l\(c)o(on)o(st)d(char*)k(path\);)0
-4641 y Ff(Y)-7 b(ou)28 b(can)f(also)f(create)h(a)g(new)h(set)f(based)g
-(on)h(the)f(deriv)n(ed)g(class,)g(F)-7 b(or)27 b(instance,)g(with)h
-(ical\034leset:)0 4854 y Fc(icalfileset*)38 b(icalfileset_new\(c)o(on)o
-(st)f(char*)42 b(path\);)0 4967 y(icalfileset*)c(icalfileset_new_o)o
-(pe)o(n\(c)o(on)o(st)f(char*)k(path,)h(int)g(flags,)f(mode_t)g(mode\);)
-0 5180 y Ff(Icaset_new_\034le)33 b(is)h(iden)n(tical)g(to)g
-(ical\034leset_new.)55 b(BOth)34 b(routines)g(will)g(op)r(en)g(an)g
-(existing)g(\034le)g(for)g(readinga)e(and)0 5294 y(writing,)24
-b(or)e(create)g(a)h(new)g(\034le)g(if)h(it)f(do)r(es)g(not)g(exist.)35
-b(Ical\034lset_new_op)r(en)22 b(tak)n(es)g(the)h(same)g(argumen)n(ts)f
-(as)g(the)i(op)r(en\(\))0 5407 y(system)j(routine)g(and)h(b)r(eha)n(v)n
-(es)e(in)i(the)g(same)f(w)n(a)n(y)-7 b(.)p eop
-%%Page: 18 18
-18 17 bop 0 -167 3900 5 v 0 -200 a Fd(5.)73 b(Using)32
-b(libical)3149 b Ff(18)0 162 y(The)29 b(icalset)g(and)g(ical\034lset)g
-(ob)5 b(jects)29 b(are)f(somewhat)h(in)n(terc)n(hangable)e(\025)i(y)n
-(ou)f(can)h(use)g(an)g(ical\034leset*)g(as)f(an)h(argumen)n(t)0
-275 y(to)e(an)n(y)g(of)h(the)g(icalset)f(routines.)0
-432 y(The)d(follo)n(wing)f(examples)h(will)g(all)g(use)g(ical\034leset)
-g(routines;)g(using)g(the)h(other)e(icalset)h(deriv)n(ed)f(classess)g
-(will)h(b)r(e)h(similar.)0 704 y Fd(5.4.2)94 b(A)m(dding,)31
-b(Finding)g(and)h(Remo)m(ving)d(Comp)s(onen)m(ts)0 914
-y Ff(T)-7 b(o)27 b(add)h(comp)r(onen)n(ts)f(to)g(a)g(set,)h(use:)0
-1154 y Fc(icalerrorenum)38 b(icalfileset_add_)o(co)o(mpo)o(ne)o(nt)o
-(\(ic)o(al)o(fi)o(les)o(et)o(*)g(cluster,)i(icalcomponent*)d(child\);)0
-1393 y Ff(The)k(\034leset)h(k)n(eeps)e(an)h(inmemory)g(cop)n(y)f(of)h
-(the)h(comp)r(onen)n(ts,)i(and)d(this)g(set)h(m)n(ust)f(b)r(e)g
-(written)h(bac)n(k)e(to)h(the)h(\034le)0 1507 y(o)r(cassionally)-7
-b(.)35 b(There)27 b(are)f(t)n(w)n(o)h(routines)g(to)g(manage)g(this:)0
-1746 y Fc(void)42 b(icalfileset_mark)o(\(i)o(ca)o(lfi)o(le)o(se)o(t*)37
-b(cluster\);)0 1860 y(icalerrorenum)h(icalfileset_comm)o(it)o(\(ic)o
-(al)o(fi)o(les)o(et)o(*)f(cluster\);)0 2099 y Ff(Ical\034leset_mark)d
-(indicates)i(that)h(the)g(in-memory)e(comp)r(onen)n(ts)h(ha)n(v)n(e)f
-(c)n(hanged.)62 b(Calling)36 b(the)h(_add_comp)r(onen)n(t)0
-2212 y(routine)32 b(will)h(call)f(_mark)f(automatically)-7
-b(,)33 b(but)g(y)n(ou)f(ma)n(y)g(need)h(to)f(call)h(it)g(y)n(ourself)e
-(if)i(y)n(ou)f(ha)n(v)n(e)f(made)i(a)f(c)n(hange)f(to)0
-2326 y(an)g(existing)h(comp)r(onen)n(t.)49 b(The)32 b(_commit)f
-(routine)g(writes)h(the)g(data)f(base)g(to)h(disk,)g(but)h(only)e(if)h
-(it)g(is)g(mark)n(ed.)48 b(The)0 2440 y(_commit)27 b(routine)g(is)h
-(called)f(automatically)f(when)i(the)g(ical\034leset)f(is)h(freed.)0
-2596 y(T)-7 b(o)27 b(iterate)g(through)g(the)h(comp)r(onen)n(ts)f(in)h
-(a)f(set,)h(use:)0 2835 y Fc(icalcomponent*)38 b(icalfileset_get)o(_f)o
-(irs)o(t_)o(co)o(mpo)o(ne)o(nt)o(\(ic)o(al)o(fil)o(es)o(et)o(*)g
-(cluster\);)0 2949 y(icalcomponent*)g(icalfileset_get)o(_n)o(ext)o(_c)o
-(om)o(pon)o(en)o(t\()o(ica)o(lf)o(ile)o(se)o(t*)f(cluster\);)0
-3063 y(icalcomponent*)h(icalfileset_get)o(_c)o(urr)o(en)o(t_)o(com)o
-(po)o(ne)o(nt)f(\(icalfileset*)h(cluster\);)0 3302 y
-Ff(These)25 b(routines)g(w)n(ork)g(lik)n(e)g(the)h(corresp)r(onding)e
-(routines)h(from)g(icalcomp)r(onen)n(t,)g(except)h(that)g(their)f
-(output)i(is)e(\034ltered)0 3415 y(through)j(a)h(gauge.)39
-b(A)29 b(gauge)f(is)h(a)f(test)h(for)g(the)g(prop)r(erties)f(within)h
-(a)g(comp)r(onen)n(ts;)g(only)f(comp)r(onen)n(ts)g(that)i(pass)e(the)0
-3529 y(test)g(are)e(returned.)37 b(A)28 b(gauge)e(can)h(b)r(e)h
-(constructed)f(from)g(a)g(MINSQL)h(string)f(with:)0 3768
-y Fc(icalgauge*)39 b(icalgauge_new_fro)o(m_)o(sq)o(l\(c)o(ha)o(r*)e
-(sql\);)0 4008 y Ff(Then,)28 b(y)n(ou)f(can)g(add)g(the)h(gauge)e(to)i
-(the)g(set)f(with)h(:)0 4247 y Fc(icalerrorenum)38 b(icalfileset_sele)o
-(ct)o(\(ic)o(al)o(fi)o(les)o(et)o(*)f(store,)42 b(icalgauge*)d
-(gauge\);)0 4486 y Ff(Here)27 b(is)h(an)f(example)g(that)h(puts)g(all)f
-(of)h(these)f(routines)g(together:)0 4726 y Fc(void)42
-b(test_fileset\(\))174 4953 y(icalfileset)d(*fs;)174
-5066 y(icalcomponent)f(*c;)174 5180 y(int)43 b(i;)174
-5294 y(char)f(*path)g(=)h(test_fileset.ic)o(s;)174 5407
-y(icalgauge)84 b(*g)42 b(=)i(icalgauge_new_f)o(ro)o(m_)o(sql)o(\()p
-eop
-%%Page: 19 19
-19 18 bop 0 -167 3900 5 v 0 -200 a Fd(5.)73 b(Using)32
-b(libical)3149 b Ff(19)349 162 y Fc(SELECT)41 b(*)i(FROM)f(VEVENT)f
-(WHERE)g(DTSTART)84 b('20000103T120000Z)o(')37 b(AND)43
-b(DTSTART)d(=)j('20000106T120000Z)o('\))o(;)174 389 y(fs)g(=)g
-(icalfileset_new\()o(pat)o(h\))o(;)174 616 y(for)g(\(i)f(=)h(0;)g(i!=)g
-(10;)f(i++\))349 730 y(c)h(=)g(make_component\(i)o(\);)37
-b(/*)43 b(Make)e(a)j(new)e(component)e(where)h(DTSTART)g(has)h(month)f
-(of)i(i)g(*/)349 843 y(icalfileset_add)o(_c)o(omp)o(on)o(en)o(t\(f)o
-(s,)o(c\))o(;)174 1184 y(icalfileset_commi)o(t\()o(fs)o(\);)37
-b(/*)43 b(Write)e(to)i(disk)f(*/)174 1411 y(icalfileset_selec)o(t\()o
-(fs)o(,g\))o(;)37 b(/*)43 b(Set)f(the)h(gauge)e(to)i(filter)e
-(components)e(*/)174 1638 y(for)k(\(c)f(=)h(icalfileset_get_f)o(ir)o
-(st_)o(co)o(mp)o(one)o(nt)o(\(f)o(s\);)392 1752 y(c)g(!=)g(0;)392
-1865 y(c)g(=)g(icalfileset_get_n)o(ex)o(t_c)o(om)o(po)o(nen)o(t\()o(fs)
-o(\)\))349 1979 y(struct)e(icaltimetype)d(t)43 b(=)g(icalcomponent_get)
-o(_d)o(tst)o(ar)o(t\()o(c\);)349 2206 y(printf\(sn,icalt)o(im)o(e_a)o
-(s_)o(ct)o(ime)o(\(t)o(\)\))o(;)174 2433 y(icalfileset_free\()o(fs)o
-(\);)0 2706 y Fd(5.4.3)94 b(Other)31 b(routines)0 2916
-y Ff(There)c(are)g(sev)n(eral)e(other)i(routines)g(in)h(the)g(icalset)f
-(in)n(terface,)g(but)h(they)g(not)f(fully)h(implemen)n(ted)h(y)n(et.)0
-3207 y Fb(5.5)112 b(Memory)37 b(Managemen)m(t)0 3417
-y Ff(Libical)25 b(relies)f(hea)n(vily)g(on)h(dynamic)g(allo)r(cation)f
-(for)h(b)r(oth)h(the)f(core)f(ob)5 b(jects)25 b(and)g(for)f(the)i
-(strings)e(used)h(to)g(hold)g(v)-5 b(alues.)0 3531 y(Some)34
-b(of)f(this)h(memory)f(the)h(library)f(caller)g(o)n(wns)g(and)g(m)n
-(ust)h(free,)h(and)f(some)f(of)h(the)g(memory)f(is)h(managed)e(b)n(y)i
-(the)0 3645 y(library)-7 b(.)36 b(Here)27 b(is)g(a)g(summary)g(of)h
-(the)g(memory)e(rules.)0 3884 y Fd(1\))208 4031 y Ff(If)40
-b(the)h(function)g(name)g(has)f(new)g(in)h(it,)j(the)d(caller)e(gets)h
-(con)n(trol)f(of)i(the)g(memory)-7 b(.)75 b(\()40 b(suc)n(h)h(as)e
-(icalcomp)r(o-)208 4144 y(nen)n(t_new\(\),)27 b(or)g(icalprop)r(ert)n
-(y_new_clone\(\))e(\))0 4324 y Fd(2\))208 4471 y Ff(If)j(y)n(ou)g(got)g
-(the)h(memory)f(from)g(a)g(routine)g(with)h(new)f(in)h(it,)g(y)n(ou)f
-(m)n(ust)h(call)f(the)h(corresp)r(onding)d(*_free)i(routine)208
-4585 y(to)f(free)g(the)h(memory)-7 b(.)36 b(\()28 b(Use)g(icalcomp)r
-(onen)n(t_free\(\))e(to)i(free)f(ob)5 b(jects)27 b(created)g(with)h
-(icalcomp)r(onen)n(t_new\(\)\))0 4765 y Fd(3\))208 4912
-y Ff(If)j(the)h(function)f(name)g(has)g(add)g(in)g(it,)i(the)f(caller)e
-(is)h(transferring)e(con)n(trol)h(of)h(the)h(memory)e(to)h(the)h
-(routine.)47 b(\()208 5025 y(icalprop)r(ert)n(y_add_parameter\(\))23
-b(\))0 5205 y Fd(4\))p eop
-%%Page: 20 20
-20 19 bop 0 -167 3900 5 v 0 -200 a Fd(5.)73 b(Using)32
-b(libical)3149 b Ff(20)208 162 y(If)34 b(the)g(function)g(name)g(has)f
-(remo)n(v)n(e)f(in)i(it,)i(the)e(caller)f(passes)f(in)i(a)g(p)r(oin)n
-(ter)f(to)g(an)h(ob)5 b(ject)33 b(and)h(after)f(the)h(call)208
-275 y(returns,)e(the)h(caller)e(o)n(wns)g(the)h(ob)5
-b(ject.)50 b(So,)33 b(b)r(efore)f(y)n(ou)f(call)h(icalcomp)r(onen)n
-(t_remo)n(v)n(e_prop)r(ert)n(y\(comp,fo)r(o\),)208 389
-y(y)n(ou)26 b(do)i(not)f(o)n(wn)g(fo)r(o)g(and)h(after)f(the)h(call)f
-(returns,)g(y)n(ou)g(do.)0 561 y Fd(5\))208 703 y Ff(If)d(the)g
-(routine)f(returns)g(a)g(string,)h(libical)g(o)n(wns)f(the)h(memory)f
-(and)g(will)h(put)g(it)h(on)e(a)g(ring)g(bu\033er)h(to)g(reclaim)f
-(later.)208 817 y(F)-7 b(or)32 b(example,)i(icalcomp)r(onen)n
-(t_as_ical_string\(\).)50 b(Y)-7 b(ou'd)33 b(b)r(etter)g(strdup\(\))h
-(it)g(if)f(y)n(ou)f(w)n(an)n(t)h(to)g(k)n(eep)f(it,)j(and)208
-931 y(y)n(ou)26 b(don't)i(ha)n(v)n(e)e(to)i(delete)g(it.)0
-1219 y Fb(5.6)112 b(Error)36 b(Handling)0 1429 y Ff(Libical)25
-b(has)g(sev)n(eral)e(error)h(handling)h(mec)n(hanisms)f(for)h(the)h(v)
--5 b(arious)24 b(t)n(yp)r(es)h(of)g(programming,)f(seman)n(tic)h(and)g
-(syn)n(tactic)0 1542 y(errors)g(y)n(ou)i(ma)n(y)g(encoun)n(ter.)0
-1811 y Fd(5.6.1)94 b(Return)31 b(v)-5 b(alues)0 2022
-y Ff(Man)n(y)29 b(library)f(routines)g(signal)h(errors)e(through)h
-(their)h(return)g(v)-5 b(alues.)42 b(All)30 b(routines)e(that)i(return)
-f(a)f(p)r(oin)n(ter,)i(suc)n(h)f(as)0 2135 y(icalcomp)r(onen)n
-(t_new\(\),)36 b(will)f(return)f(0)g(\()h(zero)f(\))h(on)f(a)g(fatal)h
-(error.)56 b(Some)35 b(routines)f(will)g(return)h(a)f(v)-5
-b(alue)34 b(of)h(en)n(um)0 2249 y(icalerroren)n(um.)0
-2518 y Fd(5.6.2)94 b(icalerrno)0 2728 y Ff(Most)24 b(routines)f(will)i
-(set)f(the)g(global)f(error)f(v)-5 b(alue)24 b(icalerrno)f(on)h
-(errors.)33 b(This)24 b(v)-5 b(ariable)23 b(is)h(an)g(en)n(umeration;)g
-(p)r(ermissible)0 2841 y(v)-5 b(alues)35 b(can)f(b)r(e)h(found)h(in)f
-(libical/icalerror.h.)56 b(If)35 b(the)g(routine)g(returns)f(an)h(en)n
-(um)g(icalerroren)n(um,)f(then)h(the)h(return)0 2955
-y(v)-5 b(alue)27 b(will)h(b)r(e)f(the)h(same)f(as)f(icalerrno.)35
-b(Y)-7 b(ou)27 b(can)g(use)g(icalerror_strerror\(\))c(to)k(get)g(a)g
-(string)f(that)i(describ)r(es)e(the)i(error)0 3224 y
-Fd(5.6.3)94 b(X-LIC-ERR)m(OR)30 b(and)j(X-LIC-INV)-11
-b(ALID-COMPONENT)0 3434 y Ff(The)38 b(library)f(handles)g(seman)n(tic)g
-(and)h(syn)n(tactic)f(errors)f(in)i(comp)r(onen)n(ts)g(b)n(y)f
-(inserting)g(errors)f(prop)r(erties)h(in)n(to)h(the)0
-3548 y(comp)r(onen)n(ts.)k(If)30 b(the)g(parser)d(cannot)i(parse)g
-(incoming)g(text)g(\()h(a)f(syn)n(tactic)g(error)e(\))j(or)f(if)h(the)g
-(icalrestriction_c)n(hec)n(k\(\))0 3661 y(routine)h(indicates)g(that)h
-(the)f(comp)r(onen)n(t)g(do)r(es)g(not)h(meet)f(the)h(requiremen)n(ts)e
-(of)h(RF)n(C2446)f(\()h(a)g(seman)n(tic)g(error\))f(the)0
-3775 y(library)i(will)h(insert)g(prop)r(erties)f(of)h(the)h(t)n(yp)r(e)
-f(X-LIC-ERR)n(OR)g(to)g(describ)r(e)g(the)g(error.)52
-b(Here)33 b(is)g(an)g(example)g(of)g(the)0 3889 y(error)26
-b(prop)r(ert)n(y:)0 4108 y Fc(X-LIC-ERROR;X-LI)o(C-)o(ERR)o(OR)o(TY)o
-(PE=)o(IN)o(VA)o(LID)o(_I)o(TI)o(P)38 b(:Failed)i(iTIP)i(restrictions)d
-(for)j(property)e(DTSTART.)0 4221 y(Expected)g(1)j(instances)d(of)j
-(the)f(property)e(and)j(got)f(0)0 4441 y Ff(This)35 b(error)f(resulted)
-h(from)g(a)g(call)g(to)h(icalrestriction_c)n(hec)n(k\(\),)f(whic)n(h)g
-(disco)n(v)n(ered)e(that)j(the)g(comp)r(onen)n(t)f(do)r(es)g(not)0
-4554 y(ha)n(v)n(e)26 b(a)i(DTST)-7 b(AR)g(T)28 b(prop)r(ert)n(y)-7
-b(,)27 b(as)g(required)f(b)n(y)h(RF)n(C2445.)0 4711 y(There)g(are)g(a)g
-(few)h(routines)e(to)i(manipulate)f(error)f(prop)r(erties:)0
-4867 y(The)35 b(follo)n(wing)g(data)g(is)g(supp)r(osed)g(to)g(b)r(e)h
-(in)g(a)f(table.)60 b(It)36 b(lo)r(oks)e(OK)h(in)h(LyX,)f(but)h(do)r
-(es)f(not)g(format)g(prop)r(ertly)g(in)0 4981 y(output.)0
-5137 y(Routine)28 b(Purp)r(ose)f(v)n(oid)g(icalrestriction_c)n(hec)n
-(k\(\))e(Chec)n(k)i(a)g(comp)r(onen)n(t)g(against)g(RF)n(C2446)e(and)j
-(insert)0 5294 y(error)g(prop)r(erties)g(to)i(indicate)f(non)g
-(compliance)g(in)n(t)h(icalcomp)r(onen)n(t_coun)n(t_errors\(\))c
-(Return)j(the)h(n)n(um)n(b)r(er)g(of)f(error)0 5407 y(prop)r(erties)p
-eop
-%%Page: 21 21
-21 20 bop 0 -167 3900 5 v 0 -200 a Fd(5.)73 b(Using)32
-b(libical)3149 b Ff(21)0 162 y(in)28 b(a)f(comp)r(onen)n(t)g(v)n(oid)g
-(icalcomp)r(onen)n(t_strip_errors\(\))d(Remo)n(v)n(e)i(all)i(error)d
-(prop)r(erties)i(in)h(as)0 318 y(comp)r(onen)n(t)f(v)n(oid)g(icalcomp)r
-(onen)n(t_con)n(v)n(ert_errors\(\))c(Con)n(v)n(ert)j(some)h(error)e
-(prop)r(erties)i(in)n(to)0 475 y(REQUESTS-ST)-7 b(A)g(TUS)29
-b(proprties)e(to)g(indicate)h(the)g(inabilit)n(y)f(to)0
-631 y(pro)r(cess)f(the)i(comp)r(onen)n(t)g(as)e(an)i(iTIP)g(request.)0
-788 y(The)g(t)n(yp)r(es)f(of)h(errors)d(are)i(listed)g(in)h
-(icalerror.h.)35 b(They)27 b(are:)0 1027 y Fc(ICAL_XLICERRORTY)o(PE)o
-(_CO)o(MP)o(ON)o(ENT)o(PA)o(RS)o(EER)o(RO)o(R)0 1141
-y(ICAL_XLICERRORTY)o(PE)o(_PA)o(RA)o(ME)o(TER)o(VA)o(LU)o(EPA)o(RS)o
-(EE)o(RRO)o(R)0 1254 y(ICAL_XLICERRORTY)o(PE)o(_PA)o(RA)o(ME)o(TER)o
-(NA)o(ME)o(PAR)o(SE)o(ER)o(ROR)0 1368 y(ICAL_XLICERRORTY)o(PE)o(_PR)o
-(OP)o(ER)o(TYP)o(AR)o(SE)o(ERR)o(OR)0 1481 y(ICAL_XLICERRORTY)o(PE)o
-(_VA)o(LU)o(EP)o(ARS)o(EE)o(RR)o(OR)0 1595 y(ICAL_XLICERRORTY)o(PE)o
-(_UN)o(KV)o(CA)o(LPR)o(OP)0 1709 y(ICAL_XLICERRORTY)o(PE)o(_IN)o(VA)o
-(LI)o(DIT)o(IP)0 1948 y Ff(The)46 b(libical)f(parser)f(will)i(generate)
-e(the)i(error)d(that)j(end)g(in)g(P)-7 b(ARSEERR)n(OR)47
-b(when)e(it)h(encoun)n(ters)f(garbage)e(in)0 2062 y(the)d(input)g
-(steam.)72 b(ICAL_XLICERR)n(OR)-7 b(TYPE_INV)e(ALIDITIP)42
-b(is)d(inserted)g(b)n(y)g(icalrestriction_c)n(hec)n(k\(\),)h(and)0
-2175 y(ICAL_XLICERR)n(OR)-7 b(TYPE_UNKV)n(CALPR)n(OP)21
-b(is)e(generated)f(b)n(y)i(icalv)n(cal_con)n(v)n(ert\(\))c(when)k(it)g
-(encoun)n(ters)f(a)g(vCal)0 2289 y(prop)r(ert)n(y)26
-b(that)i(it)g(cannot)f(con)n(v)n(ert)f(or)h(do)r(es)g(not)h(kno)n(w)f
-(ab)r(out.)0 2445 y(Icalcomp)r(onen)n(t_con)n(v)n(ert_errors\(\))33
-b(con)n(v)n(erts)k(some)g(of)i(the)f(error)f(prop)r(erties)g(in)h(a)g
-(comp)r(onen)n(t)g(in)n(to)g(REQUEST-)0 2559 y(ST)-7
-b(A)g(TUS)29 b(prop)r(erties)e(that)h(indicate)g(a)g(failure.)38
-b(As)28 b(of)g(libical)g(v)n(ersion0.18,)e(this)i(routine)g(only)f(con)
-n(v)n(ert)g(*P)-7 b(ARSEER-)0 2672 y(R)n(OR)29 b(errors)d(and)j(it)h
-(alw)n(a)n(ys)d(generates)h(a)g(3.x)h(\()g(failure)g(\))g(co)r(de.)42
-b(This)29 b(mak)n(es)f(it)h(more)f(of)h(a)g(go)r(o)r(d)g(idea)f(than)h
-(a)g(really)0 2786 y(useful)f(bit)g(of)g(co)r(de.)0 3077
-y Fb(5.7)112 b(Naming)36 b(Standard)0 3288 y Ff(Structures)26
-b(that)i(y)n(ou)e(access)f(with)j(the)f("struct")f(k)n(eyw)n(ord,)f
-(suc)n(h)h(as)h("struct)f(icaltimet)n(yp)r(e")g(are)g(things)h(that)g
-(y)n(ou)f(are)0 3401 y(allo)n(w)n(ed)g(to)i(see)f(inside)g(and)h(p)r
-(ok)n(e)f(at.)0 3558 y(Structures)33 b(that)h(y)n(ou)e(access)g(though)
-i(a)f(t)n(yp)r(edef,)i(suc)n(h)e(as)g("icalcomp)r(onen)n(t")e(are)i
-(things)g(where)g(all)g(of)h(the)f(data)g(is)0 3671 y(hidden.)0
-3828 y(Comp)r(onen)n(t)28 b(names)g(that)h(start)f(with)h("V")f(are)f
-(part)h(of)h(RF)n(C)f(2445)f(or)g(another)h(iCal)g(standard.)38
-b(Comp)r(onen)n(t)29 b(names)0 3941 y(that)h(start)f(with)i("X")e(are)g
-(also)g(part)g(of)h(the)g(sp)r(ec,)g(but)h(they)f(are)f(not)h(actually)
-f(comp)r(onen)n(ts)g(in)h(the)g(sp)r(ec.)44 b(Ho)n(w)n(ev)n(er,)0
-4055 y(they)34 b(lo)r(ok)f(and)g(act)h(lik)n(e)f(comp)r(onen)n(ts,)h
-(so)f(they)h(are)f(comp)r(onen)n(ts)g(in)h(libical.)55
-b(Names)33 b(that)h(start)f(with)h("XLIC")f(or)0 4168
-y("X-LIC")26 b(are)h(not)h(part)f(of)g(an)n(y)g(iCal)g(sp)r(ec.)37
-b(They)27 b(are)g(used)h(in)n(ternally)e(b)n(y)i(libical.)0
-4325 y(En)n(ums)34 b(that)h(iden)n(tify)f(a)g(comp)r(onen)n(t,)h(prop)r
-(ert)n(y)-7 b(,)35 b(v)-5 b(alue)33 b(or)h(parameter)e(end)i(with)h
-("_COMPONENT,")e("_PR)n(OP-)0 4438 y(ER)-7 b(TY,")28
-b("_V)-9 b(ALUE,")27 b(or)g("_P)-7 b(ARAMETER"s)0 4595
-y(En)n(ums)31 b(that)f(iden)n(tify)h(a)f(parameter)f(v)-5
-b(alue)30 b(ha)n(v)n(e)f(the)i(name)f(of)h(the)f(parameter)f(as)h(the)h
-(second)e(w)n(ord.)45 b(F)-7 b(or)29 b(instance:)0 4708
-y(ICAL_R)n(OLE_REQP)-7 b(AR)g(TICIP)g(ANT)29 b(or)d(ICAL_P)-7
-b(AR)g(TST)g(A)g(T_A)n(CCEPTED.)0 4865 y(The)28 b(en)n(ums)f(for)g(the)
-h(parts)f(of)g(a)g(recurarance)e(rule)j(and)f(request)g(statuses)g(are)
-f(irregular.)p eop
-%%Page: 22 22
-22 21 bop 0 -167 3900 5 v 0 -200 a Fd(6.)73 b(Hac)m(ks)33
-b(and)f(Bugs)2997 b Ff(22)0 162 y Fe(6)131 b(Hac)l(ks)45
-b(and)e(Bugs)0 400 y Ff(There)24 b(are)f(a)g(lot)h(of)g(hac)n(ks)f(in)i
-(the)f(library)f(\025)h(bits)g(of)g(co)r(de)g(that)g(I)g(am)g(not)g
-(proud)g(of)g(and)g(should)g(probably)f(b)r(e)h(c)n(hanged.)0
-514 y(These)j(are)g(mark)n(ed)f(with)i(the)g(commen)n(t)g(string)e("HA)
-n(CK.")p eop
-%%Trailer
-end
-userdict /end-hook known{end-hook}if
-%%EOF
diff --git a/libkcal/libical/doc/UsingLibical.txt b/libkcal/libical/doc/UsingLibical.txt
deleted file mode 100644
index 6b203d43..00000000
--- a/libkcal/libical/doc/UsingLibical.txt
+++ /dev/null
@@ -1,1384 +0,0 @@
-
-
-Using Libical
-
-Eric Busboom (eric@softwarestudio.org)
-
-January 2001
-
-
-
-1 Introduction 
-
-Libical is an Open Source implementation of the iCalendar protocols
-and protocol data units. The iCalendar specification describes how
-calendar clients can communicate with calendar servers so users can
-store their calendar data and arrange meetings with other users. 
-
-Libical implements RFC2445, RFC2446 and some of RFC2447 and the CAP
-draft. 
-
-This documentation assumes that you are familiar with the iCalendar
-standards RFC2445 and RFC2446. these specifications are online on
-the CALSCH webpage at:
-
-http://www.imc.org/ietf-calendar/
-
-1.1 The libical project
-
-This code is under active development. If you would like to contribute
-to the project, you can contact me, Eric Busboom, at eric@softwarestudio.org.
-The project has a webpage at
-
-http://softwarestudio.org/libical/index.html 
-
-and a mailing list that you can join by sending the following mail:
-
-To: minimalist@softwarestudio.org 
-
-Subject: subscribe libical 
-
-1.2 License
-
-The code and datafiles in this distribution are licensed under the
-Mozilla Public License. See http://www.mozilla.org/NPL/MPL-1.0.html
-for a copy of the license. Alternately, you may use libical under
-the terms of the GNU Library General Public License. See http://www.fsf.org/copyleft/lesser.html
-for a copy of the LGPL.
-
-This dual license ensures that the library can be incorporated into
-both proprietary code and GPL'd programs, and will benefit from improvements
-made by programmers in both realms. I will only accept changes into
-my version of the library if they are similarly dual-licensed.
-
-1.3 Example Code
-
-A lot of the documentation for this library is in the form of example
-code. These examples are in the "examples" directory of the distribution.
-Also look in "src/test" for additional annotated examples. 
-
-2 Building the Library
-
-Libical uses autoconf to generate makefiles. It should built with no
-adjustments on Linux, FreeBSD and Solaris under gcc. Some version
-have been successfully been build on MacOS, Solaris, UnixWare, And
-Tru64 UNIX without gcc, but you may run into problems with a particular
-later version. 
-
-For a more complete guide to building the library, see the README file
-in the distribution. 
-
-3 Structure 
-
-The iCal calendar model is based on four types of objects: components,
-properties, values and parameters. 
-
-Properties are the fundamental unit of information in iCal, and they
-work a bit like a hash entry, with a constant key and a variable value.
-Properties may also have modifiers, called parameters. In the iCal
-content line
-
-ORGANIZER;ROLE=CHAIR:MAILTO:mrbig@host.com
-
-The property name is "ORGANIZER," the value of the property is "mrbig@host.com"
-and the "ROLE" parameter specifies that Mr Big is the chair of the
-meetings associated with this property. 
-
-Components are groups of properties that represent the core objects
-of a calendar system, such as events or timezones. Components are
-delimited by "BEGIN" and "END" tags. 
-
-When a component is sent across a network, if it is un-encrypted, it
-will look something like:
-
-BEGIN:VCALENDAR
-
-METHOD:REQUEST
-
-PRODID: -//hacksw/handcal//NONSGML v1.0//EN
-
-BEGIN:VEVENT 
-
-DTSTAMP:19980309T231000Z 
-
-UID:guid-1.host1.com 
-
-ORGANIZER;ROLE=CHAIR:MAILTO:mrbig@host.com 
-
-ATTENDEE;RSVP=TRUE;ROLE=REQ-PARTICIPANT;CUTYPE=GROUP: 
-
-  MAILTO:employee-A@host.com 
-
-DESCRIPTION:Project XYZ Review Meeting 
-
-CATEGORIES:MEETING 
-
-CLASS:PUBLIC 
-
-CREATED:19980309T130000Z 
-
-SUMMARY:XYZ Project Review 
-
-DTSTART;TZID=US-Eastern:19980312T083000 
-
-DTEND;TZID=US-Eastern:19980312T093000 
-
-LOCATION:1CP Conference Room 4350 
-
-END:VEVENT 
-
-END:VCALENDAR
-
-Note that components can be nested; this example has both a VCALENDAR
-and a VEVENT component, one nested inside the other. 
-
-3.1 Core iCal classes
-
-Libical is an object-based, data-oriented library. Nearly all of the
-routines in the library are associated with an opaque data types and
-perform some operation on that data type. Although the library does
-not actually have classes, we will use those terms since the behavior
-of these associations of data and routines is very similar to a class. 
-
-3.1.1 Properties
-
-Properties are represented with the icalproperty class and its many
-"derived" classes with on "derived" class per property type in RFC2445.
-Again, there is no actual inheritance relations, but there are clusters
-of routines that make this term useful. A property is a container
-for a single value and a set of parameters. 
-
-3.1.2 Components 
-
-In libical, components are represented with the icalcomponent class.
-Icalcomponent is a container for a set of other components and properties.
-
-3.1.3 Values 
-
-Values are represented in a similar way to properties; a base class
-and many "derived " classes. A value is essentially a abstract handle
-on a single fundamental type, a structure or a union. 
-
-3.1.4 Parameters 
-
-Parameters are represetned in a similar way to properties, except that
-they contain only one value
-
-3.2 Other elements of libical
-
-In addition to the core iCal classes, libical has many other types,
-structures, classes that aid in creating and using iCal components. 
-
-3.2.1 Enumerations and types
-
-Libical is strongly typed, soo every component, property, parameter,
-and value type has an enumeration, and some have an associated structure
-or union. 
-
-3.2.2 The parser
-
-The libical parser offers a variety of ways to convert RFC2445 text
-into a libical iinsteral component structure. the parser can parse
-blocks of text as a string, or it can parse lin-by-line.
-
-3.2.3 Error objects
-
-Libical has a substantial error reporting system for both programming
-errors and component usage errors. 
-
-3.2.4 Memory Management
-
-Since many of libicals interfaces return strings, the library has its
-own memory management system to elimiate the need to free every string
-returned from the libraru. 
-
-3.2.5 Storage classes
-
-The library also offers several classes to store components to flies,
-memory or databases. 
-
-4 Differences From RFCs 
-
-Libical has been designed to follow the standards as closely as possible,
-so that the key objects in the standards are also key objects in the
-library. However, there are a few areas where the specifications are
-(arguably) irregular, and following them exactly would result in an
-unfriendly interface. These deviations make libical easier to use
-by maintaining a self-similar interface. 
-
-4.1 Pseudo Components 
-
-Libical defines components for groups of properties that look and act
-like components, but are not defined as components in the specification.
-XDAYLIGHT and XSTANDARD are notable examples. These pseudo components
-group properties within the VTIMEZONE components. For instanace, the
-timezone properties associated with daylight savings time starts with
-"BEGIN:DAYLIGHT" and ends with "END:DAYLIGHT, just like other components,
-but is not defined as a component in RFC2445. ( See RFC2445, page
-61 ) In Libical,this grouping is represented by the XDAYLIGHT component.
-Standard iCAL components all start with the letter "V," while pseudo
-components start with"X."
-
-There are also pseudo components that are conceptually derived classes
-of VALARM. RFC2446 defines what properties may be included in each
-component, and for VALARM, the set of properties it may have depends
-on the value of the ACTION property. 
-
-For instance, if a VALARM component has an ACTION property with the
-value of "AUDIO," the component must also have an "ATTACH" property.
-However, if the ACTION value is "DISPLAY," the component must have
-a DESCRIPTION property. 
-
-To handle these various, complex restrictions, libical has pseudo components
-for each type of alarm: XAUDIOALARM, XDISPLAYALARM, XEMAILALARM and
-XPROCEDUREALARM. 
-
-4.2 Combined Values 
-
-Many values can take more than one type. TRIGGER, for instance, can
-have a value type of with DURATION or of DATE-TIME. These multiple
-types make it difficult to create routines to return the value associated
-with a property. 
-
-It is natural to have interfaces that would return the value of a property,
-but it is cumbersome for a single routine to return multiple types.
-So, in libical, properties that can have multiple types are given
-a single type that is the union of their RFC2445 types. For instance,
-in libical, the value of the TRIGGER property resolves to struct icaltriggertype.
-This type is a union of a DURATION and a DATE-TIME. 
-
-4.3 Multi-Valued Properties
-
-Some properties, such as CATEGORIES have only one value type, but each
-CATEGORIES property can have multiple value instances. This also results
-in a cumbersome interface -- CATEGORIES accessors would have to return
-a list while all other accessors returned a single value. In libical,
-all properties have a single value, and multi-valued properties are
-broken down into multiple single valued properties during parsing.
-That is, an input line like, 
-
-CATEGORIES: work, home
-
-becomes in libical's internal representation
-
-CATEGORIES: work
-
-CATEGORIES: home
-
-Oddly, RFC2445 allows some multi-valued properties ( like FREEBUSY
-) to exist as both a multi-values property and as multiple single
-value properties, while others ( like CATEGORIES ) can only exist
-as single multi-valued properties. This makes the internal representation
-for CATEGORIES illegal. However when you convert a component to a
-string, the library will collect all of the CATEGORIES properties
-into one. 
-
-5 Using libical
-
-5.1 Creating Components 
-
-There are three ways to create components in Libical: creating individual
-objects and assembling them, building entire objects in massive vaargs
-calls, and parsing a text file containing iCalendar data. 
-
-5.1.1 Constructor Interfaces 
-
-Using constructor interfaces, you create each of the objects separately
-and then assemble them in to components: 
-
-icalcomponent *event;
-
-icalproperty *prop;
-
-icalparameter *param;
-
-struct icaltimetype atime;
-
-event = icalcomponent_new(ICAL_VEVENT_COMPONENT);
-
-prop = icalproperty_new_dtstamp(atime) ;
-
-icalcomponent_add_property(event, prop);
-
-prop = icalproperty_new_uid(''guid-1.host1.com'') );
-
-icalcomponent_add_property(event,prop);
-
-prop=icalproperty_new_organizer(''mrbig@host.com''); 
-
-param = icalparameter_new_role(ICAL_ROLE_CHAIR) 
-
-icalproperty_add_parameter(prop, param);
-
-icalcomponent_add_property(event,prop);
-
-Notice that libical uses a semi-object-oriented style of interface.
-Most things you work with are objects, that are instantiated with
-a constructor that has "new" in the name. Also note that, other than
-the object reference, most structure data is passed in to libical
-routines by value. Libical has some complex but very regular memory
-handling rules. These are detailed in section [sec:memory].
-
-If any of the constructors fail, they will return 0. If you try to
-insert 0 into a property or component, or use a zero-valued object
-reference, libical will either silently ignore the error or will abort
-with an error message. This behavior is controlled by a compile time
-flag (ICAL_ERRORS_ARE_FATAL), and will abort by default. 
-
-5.1.2 vaargs Constructors 
-
-There is another way to create complex components, which is arguably
-more elegant, if you are not horrified by varargs. The varargs constructor
-interface allows you to create intricate components in a single block
-of code. Here is the previous examples in the vaargs style. 
-
-    calendar = 
-
-        icalcomponent_vanew(
-
-            ICAL_VCALENDAR_COMPONENT,
-
-            icalproperty_new_version(''2.0''),
-
-            icalproperty_new_prodid(
-
-                 ''-//RDU Software//NONSGML HandCal//EN''),
-
-            icalcomponent_vanew(
-
-                ICAL_VEVENT_COMPONENT,
-
-                icalproperty_new_dtstamp(atime),
-
-                icalproperty_new_uid(''guid-1.host1.com''),
-
-                icalproperty_vanew_organizer(
-
-                    ''mrbig@host.com''),
-
-                    icalparameter_new_role(ICAL_ROLE_CHAIR),
-
-                    0
-
-                    ),
-
-                icalproperty_vanew_attendee(
-
-                    ''employee-A@host.com'',
-
-                    icalparameter_new_role(
-
-                        ICAL_ROLE_REQPARTICIPANT),
-
-                    icalparameter_new_rsvp(1),
-
-                    icalparameter_new_cutype(ICAL_CUTYPE_GROUP),
-
-                    0
-
-                    ),
-
-                icalproperty_new_location(
-
-                   "1CP Conference Room 4350"),
-
-                0
-
-                ),
-
-            0
-
-            );
-
-This form is similar to the constructor form , except that the constructors
-have "vanew" instead of "new" in the name. The arguments are similar
-too, except that the component constructor can have a list of properties,
-and the property constructor can have a list of parameters. Be sure
-to terminate every list with a '0', or your code will crash, if you
-are lucky. 
-
-5.1.3 Parsing Text Files 
-
-The final way to create components will probably be the most common;
-you can create components from RFC2445 compliant text. If you have
-the string in memory, use
-
-icalcomponent* icalparser_parse_string(char* str);
-
-If the string contains only one component, the parser will return the
-component in libical form. If the string contains multiple components,
-the multiple components will be returned as the children of an ICAL_XROOT_COMPONENT
-component. 
-
-Parsing a whole string may seem wasteful if you want to pull a large
-component off of the network or from a file; you may prefer to parse
-the component line by line. This is possible too by using:
-
-icalparser* icalparser_new(); 
-
-void icalparser_free(icalparser* parser);
-
-icalparser_get_line(parser,read_stream);
-
-icalparser_add_line(parser,line);
-
-icalparser_set_gen_data(parser,stream)
-
-These routines will construct a parser object to which you can add
-lines of input and retrieve any components that the parser creates
-from the input. These routines work by specifing an adaptor routine
-to get string data from a source. For an example:
-
-char* read_stream(char *s, size_t size, void *d) 
-
-{ 
-
-  char *c = fgets(s,size, (FILE*)d);
-
-  return c;
-
-}
-
-main() {
-
-  char* line; 
-
-  icalcomponent *c; 
-
-  icalparser *parser = icalparser_new();
-
-  FILE* stream = fopen(argv[1],"r");
-
-  icalparser_set_gen_data(parser,stream);
-
-  do{ 
-
-    line = icalparser_get_line(parser,read_stream); 
-
-    c = icalparser_add_line(parser,line);
-
-    if (c != 0){ 
-
-     printf("%s",icalcomponent_as_ical_string(c));     
-
-     icalparser_claim(parser); 
-
-     printf("\n---------------\n"); 
-
-     icalcomponent_free(c); 
-
-   }
-
-  } while ( line != 0);
-
-}
-
-The parser object parameterizes the routine used to get input lines
-with icalparser_set_gen_data() and icalparser_get_line(). In this
-example, the routine read_stream() will fetch the next line from a
-stream, with the stream passed in as the void* parameter d. The parser
-calls read_stream() from icalparser_get_line(), but it also needs
-to know what stream to use. This is set by the call to icalparser_set_gen_data().
-By using a different routine for read_stream or passing in different
-data with icalparser_set_gen_data, you can connect to any data source. 
-
-Using the same mechanism, other implementations could read from memory
-buffers, sockets or other interfaces. 
-
-Since the example code is a very common way to use the parser, there
-is a convenience routine;
-
-icalcomponent* icalparser_parse(icalparser *parser, 
-
-               char* (*line_gen_func)(char *s, size_t size,  void*
-d))
-
-To use this routine, you still must construct the parser object and
-pass in a reference to a line reading routine. If the parser can create
-a single component from the input, it will return a pointer to the
-newly constructed component. If the parser can construct multiple
-components from the input, it will return a reference to an XROOT
-component ( of type ICAL_XROOT_COMPONENT.) This XROOT component will
-hold all of the components constructed from the input as children. 
-
-5.2 Accessing Components 
-
-Given a reference to a component, you probably will want to access
-the properties, parameters and values inside. Libical interfaces let
-you find sub-component, add and remove sub-components, and do the
-same three operations on properties. 
-
-5.2.1 Finding Components 
-
-To find a sub-component of a component, use: 
-
-icalcomponent* icalcomponent_get_first_component(
-
-                                   icalcomponent* component, 
-
-                                   icalcomponent_kind kind);
-
-This routine will return a reference to the first component of the
-type 'kind.' The key kind values, listed in icalenums.h are: 
-
-ICAL_ANY_COMPONENT
-
-ICAL_VEVENT_COMPONENT
-
-ICAL_VTODO_COMPONENT
-
-ICAL_VJOURNAL_COMPONENT
-
-ICAL_VCALENDAR_COMPONENT 
-
-ICAL_VFREEBUSY_COMPONENT
-
-ICAL_VALARM_COMPONENT
-
-These are only the most common components; there are many more listed
-in icalenums.h.
-
-As you might guess, if there is more than one subcomponent of the type
-you have chosen, this routine will return only the first. to get at
-the others, you need to iterate through the component. 
-
-5.2.2 Iterating Through Components
-
-Iteration requires a second routine to get the next subcomponent after
-the first:
-
-icalcomponent* icalcomponent_get_next_component(
-
-               icalcomponent* component, 
-
-               icalcomponent_kind kind);
-
-With the 'first' and 'next' routines, you can create a for loop to
-iterate through all of a components subcomponents
-
-  for(c = icalcomponent_get_first_component(comp,ICAL_ANY_COMPONENT); 
-
-         c != 0; 
-
- c = icalcomponent_get_next_component(comp,ICAL_ANY_COMPONENT))
-
-{ 
-
-      do_something(c);
-
-}
-
-This code bit wil iterate through all of the subcomponents in 'comp'
-but you can select a specific type of component by changing ICAL_ANY_COMPONENT
-to another component type.
-
-5.2.3 Using Component Iterators
-
-The iteration model in the previous section requires the component
-to keep the state of the iteration. So, you could not use this model
-to perform a sorting operations, since you'd need two iterators and
-there is only space for one. If you ever call icalcomponent_get_first_component()
-when an iteration is in progress, the pointer will be reset to the
-beginning. 
-
-To solve this problem, there are also external iterators for components.
-The routines associated with these external iterators are: 
-
-icalcompiter icalcomponent_begin_component(icalcomponent* component,
-icalcomponent_kind kind);
-
-icalcompiter icalcomponent_end_component(icalcomponent* component,
-icalcomponent_kind kind);
-
-icalcomponent* icalcompiter_next(icalcompiter* i); 
-
-icalcomponent* icalcompiter_prior(icalcompiter* i); 
-
-icalcomponent* icalcompiter_deref(icalcompiter* i);
-
-The _begin_() and _end_() routines return a new iterator that points
-to the beginning and ending of the list of subcomponent for the given
-component, and the kind argument works like the kind argument for
-internal iterators. 
-
-After creating an iterators, use _next_() and _prior_() to step forward
-and backward through the list and get the component that the iterator
-points to, and use _deref() to return the component that the iterator
-points to without moving the iterator. All routines will return 0
-when they move to point off the end of the list. 
-
-Here is an example of a loop using these routines: 
-
-for(
-
-   i = icalcomponent_begin_component(impl->cluster,ICAL_ANY_COMPONENT); 
-
-   icalcompiter_deref(&i)!= 0; 
-
-   icalcompiter_next(&i)
-
-) { 
-
-      icalcomponent *this = icalcompiter_deref(&i);
-
-}
-
-5.2.4 Removing Components 
-
-Removing an element from a list while iterating through the list with
-the internal iterators can cause problems, since you will probably
-be removing the element that the internal iterator points to. The
-_remove() routine will keep the iterator valid by moving it to the
-next component, but in a normal loop, this will result in two advances
-per iteration, and you will remove only every other component.  To
-avoid the problem, you will need to step the iterator ahead of the
-element you are going to remove, like this:
-
-for(c = icalcomponent_get_first_component(parent_comp,ICAL_ANY_COMPONENT); 
-
-       c != 0; 
-
-       c = next
-
-{     
-
-    next = icalcomponent_get_next_component(parent_comp,ICAL_ANY_COMPONENT);
-
-    icalcomponent_remove_component(parent_comp,c); 
-
-}
-
-Another way to remove components is to rely on the side effect of icalcomponent_remove_component:
-if component iterator in the parent component is pointing to the child
-that will be removed, it will move the iterator to the component after
-the child. The following code will exploit this behavior: 
-
-icalcomponent_get_first_component(parent_comp,ICAL_VEVENT_COMPONENT);
-
-while((c=icalcomponent_get_current_component(c)) != 0 ){ 
-
-   if(icalcomponent_isa(c) == ICAL_VEVENT_COMPONENT){ 
-
-      icalcomponent_remove_component(parent_comp,inner);
-
-   } else { 
-
-      icalcomponent_get_next_component(parent_comp,ICAL_VEVENT_COMPONENT); 
-
-   } 
-
-}
-
-5.2.5 Working with properties and parameters
-
-Finding, iterating and removing properties works the same as it does
-for components, using the property-specific or parameter-specific
-interfaces: 
-
-icalproperty* icalcomponent_get_first_property(
-
-     icalcomponent* component, 
-
-     icalproperty_kind kind); 
-
-icalproperty* icalcomponent_get_next_property(
-
-     icalcomponent* component, 
-
-     icalproperty_kind kind);
-
-void icalcomponent_add_property(
-
-     icalcomponent* component, 
-
-     icalproperty* property);
-
-void icalcomponent_remove_property(
-
-     icalcomponent* component, 
-
-     icalproperty* property);
-
-For parameters:
-
-icalparameter* icalproperty_get_first_parameter(
-
-     icalproperty* prop, 
-
-     icalparameter_kind kind); 
-
-icalparameter* icalproperty_get_next_parameter(
-
-     icalproperty* prop, 
-
-     icalparameter_kind kind);
-
-void icalproperty_add_parameter(
-
-     icalproperty* prop,
-
-     icalparameter* parameter);
-
-void icalproperty_remove_parameter(
-
-     icalproperty* prop, 
-
-     icalparameter_kind kind);
-
-Note that since there should be only one parameter of each type in
-a property, you will rarely need to use icalparameter_get_nect_paameter.
-
-5.2.6 Working with values
-
-Values are typically part of a property, although they can exist on
-their own. You can manipulate them either as part of the property
-or independently.
-
-The most common way to work with values to is to manipulate them from
-they properties that contain them. This involves fewer routine calls
-and intermediate variables than working with them independently, and
-it is type-safe. 
-
-For each property, there are a _get_ and a _set_ routine that access
-the internal value. For instanace, for the UID property, the routines
-are: 
-
-void icalproperty_set_uid(icalproperty* prop, const char* v)
-
-const char* icalproperty_get_uid(icalproperty* prop)
-
-For multi-valued properties, like ATTACH, the value type is usually
-a struct or union that holds both possible types. 
-
-If you want to work with the underlying value object, you can get and
-set it with:
-
-icalvalue* icalproperty_get_value (icalproperty* prop)
-
-void icalproperty_set_value(icalproperty* prop, icalvalue* value);
-
-Icalproperty_get_value() will return a reference that you can manipulate
-with other icalvalue routines. Most of the time, you will have to
-know what the type of the value is. For instance, if you know that
-the value is a DATETIME type, you can manipulate it with: 
-
-struct icaltimetype icalvalue_get_datetime(icalvalue* value); 
-
-void icalvalue_set_datetime(icalvalue* value, struct icaltimetype v);
-
-When working with an extension property or value (and X-PROPERTY or
-a property that has the parameter VALUE=x-name ) the value type is
-always a string. To get and set the value, use: 
-
-void icalproperty_set_x(icalproperty* prop, char* v); 
-
-char* icalproperty_get_x(icalproperty* prop);
-
-All X properties have the type of ICAL_X_PROPERTY, so you will need
-these routines to get and set the name of the property:
-
-char* icalproperty_get_x_name(icalproperty* prop)
-
-void icalproperty_set_x_name(icalproperty* prop, char* name);
-
-5.2.7 Checking Component Validity
-
-RFC 2446 defines rules for what properties must exist in a component
-to be used for transferring scheduling data. Most of these rules relate
-to the existence of properties relative to the METHOD property, which
-declares what operation a remote receiver should use to process a
-component. For instance, if the METHOD is REQUEST and the component
-is a VEVENT, the sender is probably asking the receiver to join in
-a meeting. In this case, RFC2446 says that the component must specify
-a start time (DTSTART) and list the receiver as an attendee (ATTENDEE). 
-
-Libical can check these restrictions with the routine:
-
-int icalrestriction_check(icalcomponent* comp);
-
-This routine returns 0 if the component does not pass RFC2446 restrictions,
-or if the component is malformed. The component you pass in must be
-a VCALENDAR, with one or more children, like the examples in RFC2446. 
-
-When this routine runs, it will insert new properties into the component
-to indicate any errors it finds. See section 6.5.3, X-LIC-ERROR for
-more information about these error properties. 
-
-5.2.8 Converting Components to Text
-
-To create an RFC2445 compliant text representation of an object, use
-one of the *_as_ical_string() routines:
-
-char* icalcomponent_as_ical_string (icalcomponent* component)
-
-char* icalproperty_as_ical_string (icalproperty* property)
-
-char* icalparameter_as_ical_string (icalparameter* parameter)
-
-char* icalvalue_as_ical_string (icalvalue* value)
-
-In most cases, you will only use icalcomponent_as_ical_string (), since
-it will cascade and convert all of the parameters, properties and
-values that are attached to the root component.
-
-Icalproperty_as_ical_string() will terminate each line with the RFC2445
-specified line terminator "\\n" However, if you compile with the symbol
-ICAL_UNIX_NEWLINE undefined, ( it is defined by default) it will terminate
-lines with "\\n\\r"
-
-Remember that the string returned by these routines is owned by the
-library, and will eventually be re-written. You should copy it if
-you want to preserve it. 
-
-5.3 Time
-
-5.3.1 Time structure
-
-LIbical defines it's own time structure for storing all dates and times.
-It would have been nice to re-use the C library's struct tm, but that
-structure does not differentiate between dates and times, and between
-local time and UTC. The libical structure is:
-
-struct icaltimetype { 
-
-  int year; 
-
-  int month; 
-
-  int day; 
-
-  int hour; 
-
-  int minute; 
-
-  int second;
-
-  int is_utc; /* 1-> time is in UTC timezone */
-
-  int is_date; /* 1 -> interpret this as date. */ }; 
-
-The year, month, day, hour, minute and second fields hold the broken-out
-time values. The is_utc field distinguishes between times in UTC and
-a local time zone. The is_date field indicates if the time should
-be interpreted only as a date. If it is a date, the hour, minute and
-second fields are assumed to be zero, regardless of their actual vaules. 
-
-5.3.2 Creating time structures
-
-There are several ways to create a new icaltimetype structure: 
-
-struct icaltimetype icaltime_from_string(const char* str);
-
-struct icaltimetype icaltime_from_timet(time_t v, int is_date);
-
-struct icaltimetype icaltime_from_int(int v, int is_date, int is_utc);
-
-Icaltime_from_string takes any RFC2445 compliant time string: 
-
-struct icaltimetype tt = icaltime_from_string("19970101T103000");
-
-Icaltime_from_timet takes a timet value, representing seconds past
-the POSIX epoch, and a flag to indicate if the time is a date. Dates
-have an identical structure to a time, but the time portion ( hours,
-minuts and seconds ) is always 00:00:00. Dates act differently in
-sorting an comparision, and they have a different string representation
-in RFC2445. 
-
-The icaltime_from_int is like icaltime_from_timet, but with an arbitrary
-epoch. This routine was a mistake and is deprecated. 
-
-5.3.3 Time manipulating routines
-
-The null time value is used to indicate that the data in the structure
-is not a valid time.
-
-struct icaltimetype icaltime_null_time(void);
-
-int icaltime_is_null_time(struct icaltimetype t);
-
-It is sensible for the broken-out time fields to contain values that
-are not permitted in an ISO compliant time string. For instance, the
-seconds field can hold values greater than 59, and the hours field
-can hold values larger than 24. The excessive values will be rolled
-over into the next larger field when the structure is normalized. 
-
-struct icaltimetype icaltime_normalize(struct icaltimetype t);
-
-Normalizing allows you to do arithmetic operations on time values. 
-
-struct icaltimetype tt = icaltime_from_string("19970101T103000");
-
-tt.days +=3 
-
-tt.second += 70;
-
-tt = icaltime_normalize(tt);
-
-There are several routines to get the day of the week or month, etc,
-from a time structure.
-
-short icaltime_day_of_year(struct icaltimetype t); 
-
-struct icaltimetype icaltime_from_day_of_year(short doy, short year);
-
-short icaltime_day_of_week(struct icaltimetype t); 
-
-short icaltime_start_doy_of_week(struct icaltimetype t);
-
-short icaltime_week_number(short day_of_month, short month, short year);
-
-struct icaltimetype icaltime_from_week_number(short week_number, short
-year);
-
-short icaltime_days_in_month(short month,short year);
-
-Two routines convert time structures to and from the number of seconds
-since the POSIX epoch. The is_date field indicates whether or not
-the hour, minute and second fields should be used in the conversion.
-
-struct icaltimetype icaltime_from_timet(time_t v, int is_date); 
-
-time_t icaltime_as_timet(struct icaltimetype);
-
-The compare routine works exactly like strcmp, but on time structures. 
-
-int icaltime_compare(struct icaltimetype a,struct icaltimetype b);
-
-The following routines convert between UTC and a named timezone. The
-tzid field must be a timezone name from the Olsen database, such as
-"America/Los_Angeles." 
-
-The utc_offset routine returns the offset of the named time zone from
-UTC, in seconds. 
-
-The tt parameter in the following routines indicates the date on which
-the conversion should be made. The tt parameter is necessary because
-timezones have many different rules for when daylight savings time
-is used, and these rules can change over time. So, for a single timezone
-one year may have daylight savings time on March 15, but for other
-years March 15 may be standard time, and some years may have standard
-time all year. 
-
-int icaltime_utc_offset(struct icaltimetype tt, char* tzid);
-
-int icaltime_local_utc_offset();
-
-struct icaltimetype icaltime_as_utc(struct icaltimetype tt,char* tzid);
-
-struct icaltimetype icaltime_as_zone(struct icaltimetype tt,char* tzid);
-
-struct icaltimetype icaltime_as_local(struct icaltimetype tt);
-
-5.4 Storing Objects
-
-The libical distribution includes a separate library, libicalss, that
-allows you to store iCal component data to disk in a variety of ways.
-This library also includes code to implement the CSTP protocol of
-CAP and has some routines for deciphering incomming messages. 
-
-The file storage routines are organized in an inheritance heirarchy
-that is rooted in icalset, with the derived class icalfileset and
-icaldirset. Icalfileset stores components to a file, while icaldirset
-stores components to multiple files, one per month based on DTSTAMP.
-Other storages classess, for storage to a heap or a mysql database
-are planned for the future. 
-
-All of the icalset derived classes have the same interface: 
-
-icaldirset* icaldirset_new(const char* path);
-
-void icaldirset_free(icaldirset* store);
-
-const char* icaldirset_path(icaldirset* store);
-
-void icaldirset_mark(icaldirset* store);
-
-icalerrorenum icaldirset_commit(icaldirset* store); 
-
-icalerrorenum icaldirset_add_component(icaldirset* store, icalcomponent*
-comp);
-
-icalerrorenum icaldirset_remove_component(icaldirset* store, icalcomponent*
-comp);
-
-int icaldirset_count_components(icaldirset* store, icalcomponent_kind
-kind);
-
-icalerrorenum icaldirset_select(icaldirset* store, icalcomponent* gauge);
-
-void icaldirset_clear(icaldirset* store);
-
-icalcomponent* icaldirset_fetch(icaldirset* store, const char* uid);
-
-int icaldirset_has_uid(icaldirset* store, const char* uid);
-
-icalcomponent* icaldirset_fetch_match(icaldirset* set, icalcomponent
-*c);
-
-icalerrorenum icaldirset_modify(icaldirset* store, icalcomponent *oldc,
-icalcomponent *newc);
-
-icalcomponent* icaldirset_get_current_component(icaldirset* store);
-
-icalcomponent* icaldirset_get_first_component(icaldirset* store);
-
-icalcomponent* icaldirset_get_next_component(icaldirset* store);
-
-5.4.1 Creating a new set
-
-You can create a new set from either the base class or the direved
-class. From the base class use one of:
-
-icalset* icalset_new_file(const char* path); 
-
-icalset* icalset_new_dir(const char* path); 
-
-icalset* icalset_new_heap(void); 
-
-icalset* icalset_new_mysql(const char* path);
-
-You can also create a new set based on the derived class, For instance,
-with icalfileset: 
-
-icalfileset* icalfileset_new(const char* path);
-
-icalfileset* icalfileset_new_open(const char* path, int flags, mode_t
-mode);
-
-Icaset_new_file is identical to icalfileset_new. BOth routines will
-open an existing file for readinga and writing, or create a new file
-if it does not exist. Icalfilset_new_open takes the same arguments
-as the open() system routine and behaves in the same way. 
-
-The icalset and icalfilset objects are somewhat interchangable -- you
-can use an icalfileset* as an argument to any of the icalset routines.
-
-The following examples will all use icalfileset routines; using the
-other icalset derived classess will be similar. 
-
-5.4.2 Adding, Finding and Removing Components 
-
-To add components to a set, use: 
-
-icalerrorenum icalfileset_add_component(icalfileset* cluster, icalcomponent*
-child);
-
-The fileset keeps an inmemory copy of the components, and this set
-must be written back to the file ocassionally. There are two routines
-to manage this: 
-
-void icalfileset_mark(icalfileset* cluster); 
-
-icalerrorenum icalfileset_commit(icalfileset* cluster);
-
-Icalfileset_mark indicates that the in-memory components have changed.
-Calling the _add_component routine will call _mark automatically,
-but you may need to call it yourself if you have made a change to
-an existing component. The _commit routine writes the data base to
-disk, but only if it is marked. The _commit routine is called automatically
-when the icalfileset is freed. 
-
-To iterate through the components in a set, use: 
-
-icalcomponent* icalfileset_get_first_component(icalfileset* cluster); 
-
-icalcomponent* icalfileset_get_next_component(icalfileset* cluster);
-
-icalcomponent* icalfileset_get_current_component (icalfileset* cluster);  
-
-These routines work like the corresponding routines from icalcomponent,
-except that their output is filtered through a gauge. A gauge is a
-test for the properties within a components; only components that
-pass the test are returned. A gauge can be constructed from a MINSQL
-string with:
-
-icalgauge* icalgauge_new_from_sql(char* sql);
-
-Then, you can add the gauge to the set with : 
-
-icalerrorenum icalfileset_select(icalfileset* store, icalgauge* gauge);
-
-Here is an example that puts all of these routines together: 
-
-void test_fileset()
-
-{
-
-    icalfileset *fs;
-
-    icalcomponent *c;
-
-    int i;
-
-    char *path = "test_fileset.ics";
-
-    icalgauge  *g = icalgauge_new_from_sql(
-
-        "SELECT * FROM VEVENT WHERE DTSTART > '20000103T120000Z' AND
-DTSTART <= '20000106T120000Z'");
-
- 
-
-    fs = icalfileset_new(path);
-
-  
-
-    for (i = 0; i!= 10; i++){
-
-        c = make_component(i); /* Make a new component where DTSTART
-has month of i */
-
-        icalfileset_add_component(fs,c);
-
-    }
-
-    icalfileset_commit(fs); /* Write to disk */
-
-    icalfileset_select(fs,g); /* Set the gauge to filter components
-*/
-
- 
-
-    for (c = icalfileset_get_first_component(fs);
-
-         c != 0;
-
-         c = icalfileset_get_next_component(fs)){
-
-        struct icaltimetype t = icalcomponent_get_dtstart(c);
-
- 
-
-        printf("%s\n",icaltime_as_ctime(t));
-
-    }
-
-    icalfileset_free(fs);
-
-}
-
-5.4.3 Other routines
-
-There are several other routines in the icalset interface, but they
-not fully implemented yet. 
-
-5.5 <sec:memory>Memory Management 
-
-Libical relies heavily on dynamic allocation for both the core objects
-and for the strings used to hold values. Some of this memory the library
-caller owns and must free, and some of the memory is managed by the
-library. Here is a summary of the memory rules. 
-
-1) If the function name has "new" in it, the caller gets control
-  of the memory. ( such as icalcomponent_new(), or icalproperty_new_clone()
-  ) 
-
-2) If you got the memory from a routine with new in it, you must
-  call the corresponding *_free routine to free the memory. ( Use
-  icalcomponent_free() to free objects created with icalcomponent_new()) 
-
-3) If the function name has "add" in it, the caller is transferring
-  control of the memory to the routine. ( icalproperty_add_parameter() )
-
-4) If the function name has "remove" in it, the caller passes in
-  a pointer to an object and after the call returns, the caller owns
-  the object. So, before you call icalcomponent_remove_property(comp,foo),
-  you do not own "foo" and after the call returns, you do. 
-
-5) If the routine returns a string, libical owns the memory and will
-  put it on a ring buffer to reclaim later. For example, icalcomponent_as_ical_string().
-  You'd better strdup() it if you want to keep it, and you don't have
-  to delete it. 
-
-5.6 Error Handling
-
-Libical has several error handling mechanisms for the various types
-of programming, semantic and syntactic errors you may encounter.
-
-5.6.1 Return values
-
-Many library routines signal errors through their return values. All
-routines that return a pointer, such as icalcomponent_new(), will
-return 0 ( zero ) on a fatal error. Some routines will return a value
-of enum icalerrorenum. 
-
-5.6.2 icalerrno
-
-Most routines will set the global error value icalerrno on errors.
-This variable is an enumeration; permissible values can be found in
-libical/icalerror.h. If the routine returns an enum icalerrorenum,
-then the return value will be the same as icalerrno. You can use icalerror_strerror()
-to get a string that describes the error. The enumerations are:
-
-* ICAL_BADARG_ERROR -- One of the argument to a routine was bad. Typically
-  for a null pointer. 
-
-* ICAL_NEWFAILED_ERROR -- A new() or malloc() failed
-
-* ICAL_MALFORMEDDATA_ERROR -- An input string was not in the correct
-  format
-
-* ICAL_PARSE_ERROR -- The parser failed to parse an incomming component
-
-* ICAL_INTERNAL_ERROR -- Largely equivalent to an assert
-
-* ICAL_FILE_ERROR -- A file operation failed. Check errno for more
-  detail.
-
-* ICAL_ALLOCATION_ERROR -- ?
-
-* ICAL_USAGE_ERROR -- ?
-
-* ICAL_NO_ERROR -- No error
-
-* ICAL_MULTIPLEINCLUSION_ERROR -- ?
-
-* ICAL_TIMEDOUT_ERROR -- For CSTP and acquiring locks
-
-* ICAL_UNKNOWN_ERROR -- ?
-
-5.6.3 X-LIC-ERROR and X-LIC-INVALID-COMPONENT
-
-The library handles semantic and syntactic errors in components by
-inserting errors properties into the components. If the parser cannot
-parse incoming text ( a syntactic error ) or if the icalrestriction_check()
-routine indicates that the component does not meet the requirements
-of RFC2446 ( a semantic error) the library will insert properties
-of the type X-LIC-ERROR to describe the error. Here is an example
-of the error property: 
-
-X-LIC-ERROR;X-LIC-ERRORTYPE=INVALID_ITIP :Failed iTIP restrictions
-for property DTSTART. 
-
-Expected 1 instances of the property and got 0 
-
-This error resulted from a call to icalrestriction_check(), which discovered
-that the component does not have a DTSTART property, as required by
-RFC2445. 
-
-There are a few routines to manipulate error properties:
-
-[ The following data is supposed to be in a table. It looks OK in LyX,
-but does not format propertly in output. ]
-
-+-------------------------------------+---------------------------------------------------------+
-| Routine                             | Purpose                                                 |
-+-------------------------------------+---------------------------------------------------------+
-| void icalrestriction_check()        | Check a component against RFC2446 and insert            |
-+-------------------------------------+---------------------------------------------------------+
-|                                     | error properties to indicate non compliance             |
-+-------------------------------------+---------------------------------------------------------+
-| int icalcomponent_count_errors()    | Return the number of error properties                   |
-+-------------------------------------+---------------------------------------------------------+
-|                                     | in a component                                          |
-+-------------------------------------+---------------------------------------------------------+
-| void icalcomponent_strip_errors()   | Remove all error properties in as                       |
-+-------------------------------------+---------------------------------------------------------+
-|                                     | component                                               |
-+-------------------------------------+---------------------------------------------------------+
-| void icalcomponent_convert_errors() | Convert some error properties into                      |
-+-------------------------------------+---------------------------------------------------------+
-|                                     | REQUESTS-STATUS proprties to indicate the inability to  |
-+-------------------------------------+---------------------------------------------------------+
-|                                     | process the component as an iTIP request.               |
-+-------------------------------------+---------------------------------------------------------+
-
-
-The types of errors are listed in icalerror.h. They are:
-
-ICAL_XLICERRORTYPE_COMPONENTPARSEERROR
-
-ICAL_XLICERRORTYPE_PARAMETERVALUEPARSEERROR
-
-ICAL_XLICERRORTYPE_PARAMETERNAMEPARSEERROR 
-
-ICAL_XLICERRORTYPE_PROPERTYPARSEERROR
-
-ICAL_XLICERRORTYPE_VALUEPARSEERROR
-
-ICAL_XLICERRORTYPE_UNKVCALPROP
-
-ICAL_XLICERRORTYPE_INVALIDITIP
-
-The libical parser will generate the error that end in PARSEERROR when
-it encounters garbage in the input steam. ICAL_XLICERRORTYPE_INVALIDITIP
-is inserted by icalrestriction_check(), and ICAL_XLICERRORTYPE_UNKVCALPROP
-is generated by icalvcal_convert() when it encounters a vCal property
-that it cannot convert or does not know about. 
-
-Icalcomponent_convert_errors() converts some of the error properties
-in a component into REQUEST-STATUS properties that indicate a failure.
-As of libical version0.18, this routine only convert *PARSEERROR errors
-and it always generates a 3.x ( failure ) code. This makes it more
-of a good idea than a really useful bit of code. 
-
-5.6.4 ICAL_ERRORS_ARE_FATAL and icalerror_errors_are_fatal
-
-If the global variable icalerror_errors_are_fatal is set to 1, then
-any error condition will cause the program to abort. The abort occurs
-in icalerror_set_errno(), and is done with an assert(0) if NDEBUG
-is undefined, and with icalerror_crash_here if NDEBUG is defined.
-The default value of icalerror_errors_are_fatal is 1 when ICAL_ERRORS_ARE_FATAL
-is defined, and 0 otherwise. Since ICAL_ERRORS_ARE_FATAL is defined
-by default, icalerror_errors_are_fatal is also defined by default. 
-
-5.7 Naming Standard
-
-Structures that you access with the "struct" keyword, such as "struct
-icaltimetype" are things that you are allowed to see inside and poke
-at. 
-
-Structures that you access though a typedef, such as "icalcomponent"
-are things where all of the data is hidden. 
-
-Component names that start with "V" are part of RFC 2445 or another
-iCal standard. Component names that start with "X" are also part of
-the spec, but they are not actually components in the spec. However,
-they look and act like components, so they are components in libical.
-Names that start with "XLIC" or "X-LIC" are not part of any iCal spec.
-They are used internally by libical. 
-
-Enums that identify a component, property, value or parameter end with
-"_COMPONENT," "_PROPERTY," "_VALUE," or "_PARAMETER"s
-
-Enums that identify a parameter value have the name of the parameter
-as the second word. For instance: ICAL_ROLE_REQPARTICIPANT or ICAL_PARTSTAT_ACCEPTED.
-
-The enums for the parts of a recurarance rule and request statuses
-are irregular. 
-
-6 Hacks and Bugs
-
-There are a lot of hacks in the library -- bits of code that I am not
-proud of and should probably be changed. These are marked with the
-comment string "HACK."
-
-7 Library Reference
-
-7.1 Manipulating struct icaltimetype
-
-7.1.1 Struct icaltimetype
-
-struct icaltimetype
-
-{
-
-       int year;
-
-        int month;
-
-        int day;
-
-        int hour;
-
-        int minute;
-
-        int second;
-
-         int is_utc; 
-
-        int is_date;
-
-        const char* zone;
-
-};
diff --git a/libkcal/libical/examples/Makefile.am b/libkcal/libical/examples/Makefile.am
deleted file mode 100644
index 95076dba..00000000
--- a/libkcal/libical/examples/Makefile.am
+++ /dev/null
@@ -1,16 +0,0 @@
-
-noinst_PROGRAMS = doesnothing
-
-doesnothing_LDADD = ../src/libical/libical.la ../src/libicalss/libicalss.la ../src/libicalvcal/libicalvcal.la
-
-#LIBS = @PTHREAD_LIBS@
-
-INCLUDES = -I. -I../src/libical -I../src/libicalss -I../src/libicalvcal 
-
-doesnothing_SOURCES = \
-	access_components.c \
-	access_properties_and_parameters.c \
-	errors.c \
-	main.c \
-	parse_text.c 
-
diff --git a/libkcal/libical/examples/access_components.c b/libkcal/libical/examples/access_components.c
deleted file mode 100644
index dc92b64a..00000000
--- a/libkcal/libical/examples/access_components.c
+++ /dev/null
@@ -1,318 +0,0 @@
-/* Access_component.c */
-
-#include "ical.h"
-
-#include <assert.h>
-#include <string.h> /* for strdup */
-#include <stdlib.h> /* for malloc */
-#include <stdio.h> /* for printf */
-#include <time.h> /* for time() */
-
-void do_something(icalcomponent *c);
-
-/* Creating iCal Components 
-
-   There are two ways to create new component in libical. You can
-   build the component from primitive parts, or you can create it
-   from a string.
-
-   There are two variations of the API for building the component from
-   primitive parts. In the first variation, you add each parameter and
-   value to a property, and then add each property to a
-   component. This results in a long series of function calls. This
-   style is show in create_new_component()
-
-   The second variation uses vargs lists to nest many primitive part
-   constructors, resulting in a compact, neatly formated way to create
-   components. This style is shown in create_new_component_with_va_args()
-
-  
-   
-*/
-   
-icalcomponent* create_new_component()
-{
-
-    /* variable definitions */
-    icalcomponent* calendar;
-    icalcomponent* event;
-    struct icaltimetype atime = icaltime_from_timet( time(0),0);
-    struct icalperiodtype rtime;
-    icalproperty* property;
-
-    /* Define a time type that will use as data later. */
-    rtime.start = icaltime_from_timet( time(0),0);
-    rtime.end = icaltime_from_timet( time(0),0);
-    rtime.end.hour++;
-
-    /* Create calendar and add properties */
-
-    calendar = icalcomponent_new(ICAL_VCALENDAR_COMPONENT);
-    
-    /* Nearly every libical function call has the same general
-       form. The first part of the name defines the 'class' for the
-       function, and the first argument will be a pointer to a struct
-       of that class. So, icalcomponent_ functions will all take
-       icalcomponent* as their first argument. */
-
-    /* The next call creates a new proeprty and immediately adds it to the 
-       'calendar' component. */ 
-
-    icalcomponent_add_property(
-	calendar,
-	icalproperty_new_version("2.0")
-	);
-
-    
-    /* Here is the short version of the memory rules: 
-
-         If the routine name has "new" in it: 
-	     Caller owns the returned memory. 
-             If you pass in a string, the routine takes the memory. 	 
-
-         If the routine name has "add" in it:
-	     The routine takes control of the component, property, 
-	     parameter or value memory.
-
-         If the routine returns a string ( "get" and "as_ical_string" )
-	     The library owns the returned memory. 
-
-	  There are more rules, so refer to the documentation for more 
-	  details. 
-
-    */
-
-    icalcomponent_add_property(
-	calendar,
-	icalproperty_new_prodid("-//RDU Software//NONSGML HandCal//EN")
-	);
-    
-    /* Add an event */
-
-    event = icalcomponent_new(ICAL_VEVENT_COMPONENT);
-
-    icalcomponent_add_property(
-	event,
-	icalproperty_new_dtstamp(atime)
-	);
-
-    /* In the previous call, atime is a struct, and it is passed in by value. 
-       This is how all compound types of values are handled. */
-
-    icalcomponent_add_property(
-	event,
-	icalproperty_new_uid("guid-1.host1.com")
-	);
-
-    /* add a property that has parameters */
-    property = icalproperty_new_organizer("mailto:mrbig@host.com");
-    
-    icalproperty_add_parameter(
-	property,
-	icalparameter_new_role(ICAL_ROLE_CHAIR)
-	);
-
-    icalcomponent_add_property(event,property);
-
-    /* In this style of component creation, you need to use an extra
-       call to add parameters to properties, but the form of this
-       operation is the same as adding a property to a component */
-
-    /* add another property that has parameters */
-    property = icalproperty_new_attendee("mailto:employee-A@host.com");
-    
-    icalproperty_add_parameter(
-	property,
-	icalparameter_new_role(ICAL_ROLE_REQPARTICIPANT)
-	);
-
-    icalproperty_add_parameter(
-	property,
-	icalparameter_new_rsvp(1)
-	);
-
-    icalproperty_add_parameter(
-	property,
-	icalparameter_new_cutype(ICAL_CUTYPE_GROUP)
-	);
-
-    icalcomponent_add_property(event,property);
-
-
-    /* more properties */
-
-    icalcomponent_add_property(
-	event,
-	icalproperty_new_description("Project XYZ Review Meeting")
-	);
-
-    icalcomponent_add_property(
-	event,
-	icalproperty_new_categories("MEETING")
-	);
-
-    icalcomponent_add_property(
-	event,
-	icalproperty_new_class(ICAL_CLASS_PUBLIC)
-	);
-    
-    icalcomponent_add_property(
-	event,
-	icalproperty_new_created(atime)
-	);
-
-    icalcomponent_add_property(
-	event,
-	icalproperty_new_summary("XYZ Project Review")
-	);
-
-    property = icalproperty_new_dtstart(atime);
-    
-    icalproperty_add_parameter(
-	property,
-	icalparameter_new_tzid("US-Eastern")
-	);
-
-    icalcomponent_add_property(event,property);
-
-
-    property = icalproperty_new_dtend(atime);
-    
-    icalproperty_add_parameter(
-	property,
-	icalparameter_new_tzid("US-Eastern")
-	);
-
-    icalcomponent_add_property(event,property);
-
-    icalcomponent_add_property(
-	event,
-	icalproperty_new_location("1CP Conference Room 4350")
-	);
-
-    icalcomponent_add_component(calendar,event);
-
-    return calendar;
-}
-
-
-/* Now, create the same component as in the previous routine, but use
-the constructor style. */
-
-icalcomponent* create_new_component_with_va_args()
-{
-
-    /* This is a similar set up to the last routine */
-    icalcomponent* calendar;
-    struct icaltimetype atime = icaltime_from_timet( time(0),0);
-    struct icalperiodtype rtime;
-    
-    rtime.start = icaltime_from_timet( time(0),0);
-    rtime.end = icaltime_from_timet( time(0),0);
-    rtime.end.hour++;
-
-    /* Some of these routines are the same as those in the previous
-       routine, but we've also added several 'vanew' routines. These
-       'vanew' routines take a list of properties, parameters or
-       values and add each of them to the parent property or
-       component. */
-
-    calendar = 
-	icalcomponent_vanew(
-	    ICAL_VCALENDAR_COMPONENT,
-	    icalproperty_new_version("2.0"),
-	    icalproperty_new_prodid("-//RDU Software//NONSGML HandCal//EN"),
-	    icalcomponent_vanew(
-		ICAL_VEVENT_COMPONENT,
-		icalproperty_new_dtstamp(atime),
-		icalproperty_new_uid("guid-1.host1.com"),
-		icalproperty_vanew_organizer(
-		    "mailto:mrbig@host.com",
-		    icalparameter_new_role(ICAL_ROLE_CHAIR),
-		    0
-		    ),
-		icalproperty_vanew_attendee(
-		    "mailto:employee-A@host.com",
-		    icalparameter_new_role(ICAL_ROLE_REQPARTICIPANT),
-		    icalparameter_new_rsvp(1),
-		    icalparameter_new_cutype(ICAL_CUTYPE_GROUP),
-		    0
-		    ),
-		icalproperty_new_description("Project XYZ Review Meeting"),
-
-		icalproperty_new_categories("MEETING"),
-		icalproperty_new_class(ICAL_CLASS_PUBLIC),
-		icalproperty_new_created(atime),
-		icalproperty_new_summary("XYZ Project Review"),
-		icalproperty_vanew_dtstart(
-		    atime,
-		    icalparameter_new_tzid("US-Eastern"),
-		    0
-		    ),
-		icalproperty_vanew_dtend(
-		    atime,
-		    icalparameter_new_tzid("US-Eastern"),
-		    0
-		    ),
-		icalproperty_new_location("1CP Conference Room 4350"),
-		0
-		),
-	    0
-	    );
-
-   
-    /* Note that properties with no parameters can use the regular
-       'new' constructor, while those with parameters use the 'vanew'
-       constructor. And, be sure that the last argument in the 'vanew'
-       call is a zero. Without, your program will probably crash. */
-
-    return calendar;
-}
-
-
-void find_sub_components(icalcomponent* comp)
-{
-    icalcomponent *c;
-    
-    /* The second parameter to icalcomponent_get_first_component
-       indicates the type of component to search for. This will
-       iterate through all sub-components */
-    for(c = icalcomponent_get_first_component(comp,ICAL_ANY_COMPONENT);
-	c != 0;
-	c = icalcomponent_get_next_component(comp,ICAL_ANY_COMPONENT)){
-
-	do_something(c);
-    }
-
-    /* This will iterate only though VEVENT sub-components */
-
-    for(c = icalcomponent_get_first_component(comp,ICAL_VEVENT_COMPONENT);
-	c != 0;
-	c = icalcomponent_get_next_component(comp,ICAL_VEVENT_COMPONENT)){
-
-	do_something(c);
-    }
-
-}
-
-/* Ical components only have one internal iterator, so removing the
-   object that the iterator points to can cause problems. Here is the
-   right way to remove components */
-
-void remove_vevent_sub_components(icalcomponent* comp){
-    
-    icalcomponent *c, *next;
-
-    for( c = icalcomponent_get_first_component(comp,ICAL_VEVENT_COMPONENT);
-	 c != 0;
-	 c = next)
-    {
-	next  = icalcomponent_get_next_component(comp,ICAL_VEVENT_COMPONENT);
-
-	icalcomponent_remove_component(comp,c);
-
-	do_something(c);
-    }
-
-}
-
diff --git a/libkcal/libical/examples/access_properties_and_parameters.c b/libkcal/libical/examples/access_properties_and_parameters.c
deleted file mode 100644
index ba3d7fcc..00000000
--- a/libkcal/libical/examples/access_properties_and_parameters.c
+++ /dev/null
@@ -1,144 +0,0 @@
-/* access_properties_and_parameters.c */
-
-#include "ical.h"
-#include <string.h>
-
-/* Get a particular parameter out of a component. This routine will
-   return a list of strings of all attendees who are required. Note
-   that this routine assumes that the component that we pass in is a
-   VEVENT.  */
-   
-void get_required_attendees(icalcomponent* event)
-{
-    icalproperty* p;
-    icalparameter* parameter;
-    
-    assert(event != 0);
-    assert(icalcomponent_isa(event) == ICAL_VEVENT_COMPONENT);
-    
-    /* This loop iterates over all of the ATTENDEE properties in the
-       event */
-    
-    /* The iteration routines save their state in the event
-       struct, so the are not thread safe unless you lock the whole
-       component. */
-    
-    for(
-	p = icalcomponent_get_first_property(event,ICAL_ATTENDEE_PROPERTY);
-	p != 0;
-	p = icalcomponent_get_next_property(event,ICAL_ATTENDEE_PROPERTY)
-	) {
-	
-	/* Get the first ROLE parameter in the property. There should
-           only be one, so we won't bother to iterate over them. But,
-           you can iterate over parameters just like with properties */
-
-	parameter = icalproperty_get_first_parameter(p,ICAL_ROLE_PARAMETER);
-
-	/* If the parameter indicates the participant is required, get
-           the attendees name and stick a copy of it into the output
-           array */
-
-	if ( icalparameter_get_role(parameter) == ICAL_ROLE_REQPARTICIPANT) 
-	{
-	    /* Remember, the caller does not own this string, so you
-               should strdup it if you want to change it. */
-	    const char *attendee = icalproperty_get_attendee(p);
-	}
-    }
-
-}
-
-/* Here is a similar example. If an attendee has a PARTSTAT of
-   NEEDSACTION or has no PARTSTAT parameter, change it to
-   TENTATIVE. */
-   
-void update_attendees(icalcomponent* event)
-{
-    icalproperty* p;
-    icalparameter* parameter;
-
-    assert(event != 0);
-        assert(icalcomponent_isa(event) == ICAL_VEVENT_COMPONENT);
-    
-    for(
-	p = icalcomponent_get_first_property(event,ICAL_ATTENDEE_PROPERTY);
-	p != 0;
-	p = icalcomponent_get_next_property(event,ICAL_ATTENDEE_PROPERTY)
-	) {
-	
-	parameter = icalproperty_get_first_parameter(p,ICAL_PARTSTAT_PARAMETER);
-
-	if (parameter == 0) {
-
-	    /* There was no PARTSTAT parameter, so add one.  */
-	    icalproperty_add_parameter(
-		p,
-		icalparameter_new_partstat(ICAL_PARTSTAT_TENTATIVE)
-		);
-
-	} else if (icalparameter_get_partstat(parameter) == ICAL_PARTSTAT_NEEDSACTION) {
-	    /* Remove the NEEDSACTION parameter and replace it with
-               TENTATIVE */
-	    
-	    icalproperty_remove_parameter(p,ICAL_PARTSTAT_PARAMETER);
-	    
-	    /* Don't forget to free it */
-	    icalparameter_free(parameter);
-
-	    /* Add a new one */
-	    icalproperty_add_parameter(
-		p,
-		icalparameter_new_partstat(ICAL_PARTSTAT_TENTATIVE)
-		);
-	}
-
-    }
-}
-
-/* Here are some examples of manipulating properties */
-
-void test_properties()
-{
-    icalproperty *prop;
-    icalparameter *param;
-    icalvalue *value;
-
-    icalproperty *clone;
-
-    /* Create a new property */
-    prop = icalproperty_vanew_comment(
-	"Another Comment",
-	icalparameter_new_cn("A Common Name 1"),
-	icalparameter_new_cn("A Common Name 2"),
-	icalparameter_new_cn("A Common Name 3"),
-       	icalparameter_new_cn("A Common Name 4"),
-	0); 
-
-    /* Iterate through all of the parameters in the property */
-    for(param = icalproperty_get_first_parameter(prop,ICAL_ANY_PARAMETER);
-	param != 0; 
-	param = icalproperty_get_next_parameter(prop,ICAL_ANY_PARAMETER)) {
-						
-	printf("Prop parameter: %s\n",icalparameter_get_cn(param));
-    }    
-
-    /* Get a string representation of the property's value */
-    printf("Prop value: %s\n",icalproperty_get_comment(prop));
-
-    /* Spit out the property in its RFC 2445 representation */
-    printf("As iCAL string:\n %s\n",icalproperty_as_ical_string(prop));
-    
-    /* Make a copy of the property. Caller owns the memory */
-    clone = icalproperty_new_clone(prop);
-
-    /* Get a reference to the value within the clone property */
-    value = icalproperty_get_value(clone);
-
-    printf("Value: %s",icalvalue_as_ical_string(value));
-
-    /* Free the original and the clone */
-    icalproperty_free(clone);
-    icalproperty_free(prop);
-
-}
diff --git a/libkcal/libical/examples/errors.c b/libkcal/libical/examples/errors.c
deleted file mode 100644
index 86d963bd..00000000
--- a/libkcal/libical/examples/errors.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/* errors.c */
-
-#include "ical.h"
-#include <stdio.h>
-
-void program_errors()
-{
-    /*Most routines will set icalerrno on errors. This is an
-      enumeration defined in icalerror.h */
-    
-    icalcomponent *c; 
-
-    icalerror_clear_errno();
-
-    c = icalcomponent_new(ICAL_VEVENT_COMPONENT);
-
-    if (icalerrno != ICAL_NO_ERROR){
-
-	fprintf(stderr,"Horrible libical error: %s\n",
-		icalerror_strerror(icalerrno));
-		
-    }
-
-}
-
-void component_errors(icalcomponent *comp)
-{
-    int errors;
-    icalproperty *p;
-
-    /* presume that we just got this component from the parser */
-
-    errors = icalcomponent_count_errors(comp);
-
-    printf("This component has %d parsing errors\n", errors);
-
-    /* Print out all of the parsing errors. This is not strictly
-       correct, because it does not descend into any sub-components,
-       as icalcomponent_count_errors() does. */
-
-    for(p = icalcomponent_get_first_property(comp,ICAL_XLICERROR_PROPERTY);
-	p != 0;
-	p = icalcomponent_get_next_property(comp,ICAL_XLICERROR_PROPERTY))
-    {
-	
-	printf("-- The error is %s:\n",icalproperty_get_xlicerror(p));
-    }
-
-
-
-    /* Check the component for iTIP compilance, and add more
-       X-LIC-ERROR properties if it is non-compilant. */
-    icalrestriction_check(comp);
-    
-
-    /* Count the new errors.  */
-    if(errors != icalcomponent_count_errors(comp)){
-       printf(" -- The component also has iTIP restriction errors \n");	
-    }
-
-    /* Since there are iTIP restriction errors, it may be impossible
-       to process this component as an iTIP request. In this case, the
-       X-LIC-ERROR proeprties should be expressed as REQUEST-STATUS
-       properties in the reply. This following routine makes this
-       conversion */
-
-
-    icalcomponent_convert_errors(comp);
-
-}
diff --git a/libkcal/libical/examples/main.c b/libkcal/libical/examples/main.c
deleted file mode 100644
index 1be2de5c..00000000
--- a/libkcal/libical/examples/main.c
+++ /dev/null
@@ -1,12 +0,0 @@
-/* This is just to make the code in the example directory link properly. */
-#include "ical.h"
-
-int main()
-{
-
-    return 1;
-}
-
-
-void do_something(icalcomponent* comp){
-}
diff --git a/libkcal/libical/examples/parse_text.c b/libkcal/libical/examples/parse_text.c
deleted file mode 100644
index b7eba43b..00000000
--- a/libkcal/libical/examples/parse_text.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/* parse_text.c
-   
- */
-#include <stdio.h>
-#include <errno.h>
-#include <stdio.h>
-#include <string.h>
-#include "ical.h"
-
-#include <stdlib.h>
-
-/* The icalparser_get_line routine will create a single *content* line
-out of one or more input lines. The content line is all of the
-properties and values for a single property, and it can span several
-input lines. So, icalparser_get_line will need to be able to get more
-data on its own. Read_string is a routine that does this. You can
-write your own version of read stream to get data from other types of
-files, sockets, etc. */
-
-char* read_stream(char *s, size_t size, void *d)
-{
-  char *c = fgets(s,size, (FILE*)d);
-
-  return c;
-
-}
-
-void parse_text(int argc, char* argv[])
-{
-
-    char* line; 
-    FILE* stream;
-    icalcomponent *c; 
-
-    /* Create a new parser object */
-    icalparser *parser = icalparser_new();
-
-    stream = fopen(argv[1],"r");
-
-    assert(stream != 0);
-
-    /* Tell the parser what input routie it should use. */
-    icalparser_set_gen_data(parser,stream);
-
-    do{
-    
-	/* Get a single content line by making one or more calls to
-           read_stream()*/
-	line = icalparser_get_line(parser,read_stream);
-
-	/* Now, add that line into the parser object. If that line
-           completes a component, c will be non-zero */
-	c = icalparser_add_line(parser,line);
-
-
-	if (c != 0){
-	    printf("%s",icalcomponent_as_ical_string(c));
-
-	    printf("\n---------------\n");
-
-	    icalcomponent_free(c);
-	}
-
-    } while ( line != 0);
-
-
-    icalparser_free(parser);
-}
diff --git a/libkcal/libical/scripts/Makefile.am b/libkcal/libical/scripts/Makefile.am
deleted file mode 100644
index 47ce3e6e..00000000
--- a/libkcal/libical/scripts/Makefile.am
+++ /dev/null
@@ -1,9 +0,0 @@
-EXTRA_DIST = \
-mkderivedcomponents.pl \
-mkderivedparameters.pl \
-mkderivedproperties.pl \
-mkderivedvalues.pl \
-mkparameterrestrictions.pl \
-mkrestrictionrecords.pl \
-mkrestrictiontable.pl \
-readvaluesfile.pl
diff --git a/libkcal/libical/scripts/mkderivedcomponents.pl b/libkcal/libical/scripts/mkderivedcomponents.pl
deleted file mode 100755
index 31743c3b..00000000
--- a/libkcal/libical/scripts/mkderivedcomponents.pl
+++ /dev/null
@@ -1,170 +0,0 @@
-#!/usr/bin/env perl
-
-use Getopt::Std;
-getopts('chspi:');
-
-
-# ARG 0 is components.txt
-open(PV,"$ARGV[0]") || die "Can't open components  file $ARGV[0]:$!";
-
-my @components;
-
-while (<PV>){
-
-  s/#.*//;
-
-  chop;
-
-  push(@components,$_);
-
-}
-
-close PV;
-
-# Write the file inline by copying everything before a demarcation
-# line, and putting the generated data after the demarcation
-
-if ($opt_i) {
-
-  open(IN,$opt_i) || die "Can't open input file \"$opt_i\"";
-
-  while(<IN>){
-
-    if (/Do not edit/){
-      last;
-    }
-
-    print;
-
-  }    
-
-  if($opt_i){
-    print "# Everything below this line is machine generated. Do not edit. \n";
-  } else {
-    print "/* Everything below this line is machine generated. Do not edit. */\n";
-  }
-
-}
-
-if ($opt_c or $opt_h and !$opt_i){
-
-print <<EOM;
-/* -*- Mode: C -*-
-  ======================================================================
-  FILE: icalderivedproperties.{c,h}
-  CREATOR: eric 09 May 1999
-  
-  \044Id:\044
-    
-  (C) COPYRIGHT 1999 Eric Busboom 
-  http://www.softwarestudio.org
-
-  The contents of this file are subject to the Mozilla Public License
-  Version 1.0 (the "License"); you may not use this file except in
-  compliance with the License. You may obtain a copy of the License at
-  http://www.mozilla.org/MPL/
- 
-  Software distributed under the License is distributed on an "AS IS"
-  basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
-  the License for the specific language governing rights and
-  limitations under the License.
- 
-
- ======================================================================*/
-
-/*
- * THIS FILE IS MACHINE GENERATED DO NOT EDIT
- */
-
-#include <stdarg.h> /* for va_arg functions */
-
-EOM
-
-}
-
-if ($opt_p and !$opt_i){
-
-print <<EOM;
-
-EOM
-
-}
-
-
-foreach $comp (@components) {
-
-  next if !$comp;
-
-  my $ucf = join("",map {ucfirst(lc($_));}  split(/-/,$comp));
-  my $lc = lc($ucf);
-  my $uc = uc($lc);
-
-  if($opt_c) { # Make C source
- print<<EOM;
-
-/* $comp */
-
-icalcomponent* icalcomponent_new_${lc}()
-{
-   return (icalcomponent*)icalcomponent_new_impl(ICAL_${uc}_COMPONENT);
-}
-
-icalcomponent* icalcomponent_vanew_${lc}(...)
-{
-   va_list args;
-   struct icalcomponent_impl *impl = icalcomponent_new_impl(ICAL_${uc}_component);  
-
-   va_start(args,v);
-   icalcomponent_add_properties(impl, args);
-   va_end(args);
-
-   return (icalcomponent*)impl;
-}
- 
-EOM
-
-
-  } elsif ($opt_h) { # Make a C header
- print<<EOM;
-
-/* $comp */
-icalcomponent* icalcomponent_new_${lc}();
-icalcomponent* icalcomponent_vanew_${lc}(...);
-EOM
-  
-} elsif ($opt_s) { # Make something for a switch statement
-
-print <<EOM;
-case ICAL_${uc}_PROPERTY:
-EOM
-
-} elsif ($opt_p) { # make perl source 
-
-print <<EOM;
-
-# $comp 
-package Net::ICal::Component::${ucf};
-\@ISA=qw(Net::ICal::Component);
-
-sub new
-{
-   my \$package = shift;
-   my \$c = Net::ICal::icalcomponent_new(\$Net::ICal::ICAL_${uc}_COMPONENT);
-
-   my \$self = Net::ICal::Component::new_from_ref(\$c);
-   Net::ICal::Component::_add_elements(\$self,\\\@_);
-
-   # Self is blessed in new_from_ref
-
-   return \$self; 
-
-}
-EOM
-
-}
-
-
-
-}
-
-   
diff --git a/libkcal/libical/scripts/mkderivedparameters.pl b/libkcal/libical/scripts/mkderivedparameters.pl
deleted file mode 100755
index 9e8f92cd..00000000
--- a/libkcal/libical/scripts/mkderivedparameters.pl
+++ /dev/null
@@ -1,332 +0,0 @@
-#!/usr/bin/env perl
-
-require "readvaluesfile.pl";
-
-use Getopt::Std;
-getopts('chspi:');
-
-%no_xname = (RELATED=>1,RANGE=>1,RSVP=>1,XLICERRORTYPE=>1,XLICCOMPARETYPE=>1);
-
-%params = read_parameters_file($ARGV[0]);
-
-
-# Write the file inline by copying everything before a demarcation
-# line, and putting the generated data after the demarcation
-
-if ($opt_i) {
-
-  open(IN,$opt_i) || die "Can't open input file $opt_i";
-
-  while(<IN>){
-    if (/<insert_code_here>/){
-      insert_code();
-    } else {
-      print;
-   }
-
-  }    
-
-  if($opt_p){
-     print "# Everything below this line is machine generated. Do not edit. \n";
-  } else {
-    print "/* Everything below this line is machine generated. Do not edit. */\n";
-  }
-
-}
-
-sub insert_code
-{
-
-# Write parameter enumerations and datatypes
-
-if($opt_h){
-  print "typedef enum icalparameter_kind {\n    ICAL_ANY_PARAMETER = 0,\n";
-  foreach $param (sort keys %params) {
-    
-    next if !$param;
-    
-    next if $param eq 'NO' or $param eq 'ANY';
-
-    my $uc = join("",map {uc($_);}  split(/-/,$param));
-
-    my @enums = @{$params{$param}->{'enums'}};
-        
-    print "    ICAL_${uc}_PARAMETER, \n";
-    
-  }  
-  print "    ICAL_NO_PARAMETER\n} icalparameter_kind;\n\n";
-
-  # Now create enumerations for parameter values
-  $idx = 20000;
-  
-  print "#define ICALPARAMETER_FIRST_ENUM $idx\n\n";
-  
-  foreach $param (sort keys %params) {
-    
-    next if !$param;
-    
-    next if $param eq 'NO' or $prop eq 'ANY';
-
-    my $type = $params{$param}->{"C"};
-    my $ucv = join("",map {uc(lc($_));}  split(/-/,$param));    
-    my @enums = @{$params{$param}->{'enums'}};
-
-    if(@enums){
-
-      print "typedef enum $type {\n";
-      my $first = 1;
-
-      unshift(@enums,"X");
-
-      push(@enums,"NONE");
-
-      foreach $e (@enums) {
-	if (!$first){
-	  print ",\n";
-	} else {
-	  $first = 0;
-	}
-	
-	my $uce = join("",map {uc(lc($_));}  split(/-/,$e));    
-	
-	print "    ICAL_${ucv}_${uce} = $idx";
-	
-	$idx++;
-      }
-      $c_type =~ s/enum //;
-
-      print "\n} $type;\n\n";
-    }
-  }
-
-  print "#define ICALPARAMETER_LAST_ENUM $idx\n\n";
-
-}
-
-if ($opt_c){
-
-  
-  # Create the icalparameter_value to icalvalue_kind conversion table
-  my $count = 0;
-  my $out;
-
-  foreach $enum (@{$params{'VALUE'}->{'enums'}}){
-    next if $enum eq 'NO' or $enum eq 'ERROR';
-    $uc = join("",map {uc(lc($_));}  split(/-/,$enum));    
-    $out.="    {ICAL_VALUE_${uc},ICAL_${uc}_VALUE},\n";
-    $count++;
-  }
-
-  $count+=2;
-  print "struct icalparameter_value_kind_map value_kind_map[$count] = {\n";
-  print $out;
-  print "    {ICAL_VALUE_X,ICAL_X_VALUE},\n";
-  print "    {ICAL_VALUE_NONE,ICAL_NO_VALUE}\n};\n\n";
-  
-  #Create the parameter Name map
-
-  $out="";
-  $count=0;
-  foreach $param (sort keys %params) {
-    
-    next if !$param;
-    
-    next if $param eq 'NO' or $prop eq 'ANY';
-
-    my $lc = join("",map {lc($_);}  split(/-/,$param));    
-    my $uc = join("",map {uc(lc($_));}  split(/-/,$param));    
-
-    $count++;
-    $out.="    {ICAL_${uc}_PARAMETER,\"$param\"},\n";
-
-  }
-  $count+=1;
-  print "struct icalparameter_kind_map parameter_map[$count] = { \n";
-  print $out;
-  print "    { ICAL_NO_PARAMETER, \"\"}\n};\n\n";
-  
-  # Create the parameter value map
-  $out ="";
-  $count=0;
-  foreach $param (sort keys %params) {
-    
-    next if !$param;
-    
-    next if $param eq 'NO' or $prop eq 'ANY';
-
-    my $type = $params{$param}->{"C"};
-    my $uc = join("",map {uc(lc($_));}  split(/-/,$param));    
-    my @enums = @{$params{$param}->{'enums'}};
-
-    if(@enums){
-
-      foreach $e (@enums){
-	my $uce = join("",map {uc(lc($_));}  split(/-/,$e));    
-
-	$count++;
-	$out.="    {ICAL_${uc}_PARAMETER,ICAL_${uc}_${uce},\"$e\"},\n";
-      }
-
-    }
-  }
-
-  $count+=3;
-  print "struct icalparameter_map icalparameter_map[] = {\n";
-  print "{ICAL_ANY_PARAMETER,0,\"\"},\n";
-  print $out;
-  print "    {ICAL_NO_PARAMETER,0,\"\"}};\n\n";
-
-}
-
-foreach $param  (keys %params){
-
-  my $type = $params{$param}->{'C'};
-
-  my $ucf = join("",map {ucfirst(lc($_));}  split(/-/,$param));
-  
-  my $lc = lc($ucf);
-  my $uc = uc($lc);
- 
-  my $charorenum;
-  my $set_code;
-  my $pointer_check;
-  my $pointer_check_v;
-  my $xrange;
-
-  if ($type=~/char/ ) {
-
-     $charorenum = "    icalerror_check_arg_rz( (param!=0), \"param\");\n    return param->string;";
-    
-     $set_code = "((struct icalparameter_impl*)param)->string = icalmemory_strdup(v);";
-
-     $pointer_check = "icalerror_check_arg_rz( (v!=0),\"v\");"; 
-     $pointer_check_v = "icalerror_check_arg_rv( (v!=0),\"v\");"; 
-
-  } else {
-
-    $xrange ="     if (param->string != 0){\n        return ICAL_${uc}_X;\n        }\n" if !exists $no_xname{$uc};
-    
-    $charorenum= "icalerror_check_arg( (param!=0), \"param\");\n$xrange\nreturn ($type)(param->data);";
-     
-    $pointer_check = "icalerror_check_arg_rz(v >= ICAL_${uc}_X,\"v\");\n    icalerror_check_arg_rz(v < ICAL_${uc}_NONE,\"v\");";
-
-    $pointer_check_v = "icalerror_check_arg_rv(v >= ICAL_${uc}_X,\"v\");\n    icalerror_check_arg_rv(v < ICAL_${uc}_NONE,\"v\");";
-
-     $set_code = "((struct icalparameter_impl*)param)->data = (int)v;";
-
-   }
-  
-  
-  
-  if ($opt_c) {
-    
-  print <<EOM;
-/* $param */
-icalparameter* icalparameter_new_${lc}($type v)
-{
-   struct icalparameter_impl *impl;
-   icalerror_clear_errno();
-   $pointer_check
-   impl = icalparameter_new_impl(ICAL_${uc}_PARAMETER);
-   if (impl == 0) {
-      return 0;
-   }
-
-   icalparameter_set_${lc}((icalparameter*) impl,v);
-   if (icalerrno != ICAL_NO_ERROR) {
-      icalparameter_free((icalparameter*) impl);
-      return 0;
-   }
-
-   return (icalparameter*) impl;
-}
-
-${type} icalparameter_get_${lc}(const icalparameter* param)
-{
-   icalerror_clear_errno();
-$charorenum
-}
-
-void icalparameter_set_${lc}(icalparameter* param, ${type} v)
-{
-   $pointer_check_v
-   icalerror_check_arg_rv( (param!=0), "param");
-   icalerror_clear_errno();
-   
-   $set_code
-}
-
-EOM
-
-  } elsif( $opt_h) {
-
-  print <<EOM;
-/* $param */
-icalparameter* icalparameter_new_${lc}($type v);
-${type} icalparameter_get_${lc}(const icalparameter* value);
-void icalparameter_set_${lc}(icalparameter* value, ${type} v);
-
-EOM
-
-}
-
-if ($opt_p) {
-    
-  print <<EOM;
-
-# $param 
-
-package Net::ICal::Parameter::${ucf};
-\@ISA=qw(Net::ICal::Parameter);
-
-sub new
-{
-   my \$self = [];
-   my \$package = shift;
-   my \$value = shift;
-
-   bless \$self, \$package;
-
-   my \$p;
-
-   if (\$value) {
-      \$p = Net::ICal::icalparameter_new_from_string(\$Net::ICal::ICAL_${uc}_PARAMETER,\$value);
-   } else {
-      \$p = Net::ICal::icalparameter_new(\$Net::ICal::ICAL_${uc}_PARAMETER);
-   }
-
-   \$self->[0] = \$p;
-
-   return \$self;
-}
-
-sub get
-{
-   my \$self = shift;
-   my \$impl = \$self->_impl();
-
-   return Net::ICal::icalparameter_as_ical_string(\$impl);
-
-}
-
-sub set
-{
-   # This is hard to implement, so I've punted for now. 
-   die "Set is not implemented";
-}
-
-EOM
-
-}
-
-}
-
-if ($opt_h){
-
-print <<EOM;
-#endif /*ICALPARAMETER_H*/
-
-EOM
-}
-
-}
diff --git a/libkcal/libical/scripts/mkderivedproperties.pl b/libkcal/libical/scripts/mkderivedproperties.pl
deleted file mode 100755
index 4eafb192..00000000
--- a/libkcal/libical/scripts/mkderivedproperties.pl
+++ /dev/null
@@ -1,258 +0,0 @@
-#!/usr/bin/env perl
-
-require "readvaluesfile.pl";
-
-use Getopt::Std;
-getopts('chspmi:');
-
-# ARG 0 is properties.csv
-%propmap  = read_properties_file($ARGV[0]);
-
-# ARG 1 is value-types.txt
-%valuemap  = read_values_file($ARGV[1]);
-
-
-$include_vanew = 1;
-
-# Write the file inline by copying everything before a demarcation
-# line, and putting the generated data after the demarcation
-
-if ($opt_i) {
-
-  open(IN,$opt_i) || die "Can't open input file $opt_i";
-
-  while(<IN>){
-
-    if (/<insert_code_here>/){
-      insert_code();
-    } else {
-      print;
-   }
- 
-  }    
- 
-}
-
-sub fudge_data {
-  my $prop = shift;
-
-  my $value = $propmap{$prop}->{'lic_value'};
-
-  if (!$value){
-    die "Can't find value for property \"$prop\"\n";
-  }
-  my $ucf = join("",map {ucfirst(lc($_));}  split(/-/,$prop));
-  my $lc = lc($ucf);
-  my $uc = uc($lc);
-
-  my $ucfvalue = join("",map {ucfirst(lc($_));}  split(/-/,$value));
-  my $lcvalue = lc($ucfvalue);
-  my $ucvalue = uc($lcvalue);
-
-  my $type = $valuemap{$value}->{C}->[1];
-
-  return ($uc,$lc,$lcvalue,$ucvalue,$type);
-
-}  
-
-sub insert_code {
-
-# Create the property map data
-if($opt_c){
-
-
-  my @props = sort keys %propmap;
-  my $count = scalar(@props);
-  
-
-  print "struct icalproperty_map property_map[$count] = {\n";
-  
-  foreach $prop (@props) {
-    
-    next if !$prop;
-    
-    next if $prop eq 'NO';
-    
-    my ($uc,$lc,$lcvalue,$ucvalue,$type) = fudge_data($prop);
-    
-    print "{ICAL_${uc}_PROPERTY,\"$prop\",ICAL_${ucvalue}_VALUE},\n";
-    
-  }
-  
-  $prop = "NO";
-  
-  my ($uc,$lc,$lcvalue,$ucvalue,$type) = fudge_data($prop);
-  
-  print "{ICAL_${uc}_PROPERTY,\"\",ICAL_NO_VALUE}};\n\n";
-
-  $idx = 10000;
-  $count = 1;
-  my $out = "";
-
-  foreach $value (sort keys %valuemap) {
-    
-    next if !$value;    
-    next if $value eq 'NO' or $prop eq 'ANY';
-
-    my $ucv = join("",map {uc(lc($_));}  split(/-/,$value));    
-    my @enums = @{$valuemap{$value}->{'enums'}};
-
-    if(@enums){
-
-      my ($c_autogen,$c_type) = @{$valuemap{$value}->{'C'}};
-      
-      unshift(@enums,"X");
-      push(@enums,"NONE");
-
-      foreach $e (@enums) {
-
-	my $uce = join("",map {uc(lc($_));}  split(/-/,$e));
-	
-	if($e ne "X" and $e ne "NONE"){
-	  $str = $e;
-	} else {
-	  $str = "";
-	}
-
-	$out.="    {ICAL_${ucv}_PROPERTY,ICAL_${ucv}_${uce},\"$str\" }, /*$idx*/\n";
-
-	$idx++;
-	$count++;
-      }
-      
-    }
-  }
-
-  $count++;
-  print "struct icalproperty_enum_map enum_map[$count] = {\n";
-  print $out;
-  print "    {ICAL_NO_PROPERTY,0,\"\"}\n};\n\n";
-  
-
-
-}
-
-
-if($opt_h){
-
-  # Create the property enumerations list
-  print "typedef enum icalproperty_kind {\n    ICAL_ANY_PROPERTY = 0,\n";
-  foreach $prop (sort keys %propmap) {
-    
-    next if !$prop;
-    
-    next if $prop eq 'NO' or $prop eq 'ANY';
-    
-    my ($uc,$lc,$lcvalue,$ucvalue,$type) = fudge_data($prop);
-    
-    print "    ICAL_${uc}_PROPERTY, \n";
-    
-  }  
-  print "    ICAL_NO_PROPERTY\n} icalproperty_kind;\n\n";
-
-
-}
-
-
-foreach $prop (sort keys %propmap) {
-
-  next if !$prop;
-
-  next if $prop eq 'NO' or $prop eq 'ANY';
-
-  my ($uc,$lc,$lcvalue,$ucvalue,$type) = fudge_data($prop);
-
-  
-  my $pointer_check;
-  if ($type =~ /\*/){
-    $pointer_check = "icalerror_check_arg_rz( (v!=0),\"v\");\n" if $type =~ /\*/;
-  } elsif ( $type eq "void" ){
-    $pointer_check = "icalerror_check_arg_rv( (v!=0),\"v\");\n" if $type =~ /\*/;
-
-  }    
-
-  my $set_pointer_check = "icalerror_check_arg_rv( (v!=0),\"v\");\n" if $type =~ /\*/;
-
-  if($opt_c) { # Generate C source
-
-   if ($include_vanew) {
-     print<<EOM;
-icalproperty* icalproperty_vanew_${lc}($type v, ...){
-   va_list args;
-   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_${uc}_PROPERTY);   $pointer_check
-   icalproperty_set_${lc}((icalproperty*)impl,v);
-   va_start(args,v);
-   icalproperty_add_parameters(impl, args);
-   va_end(args);
-   return (icalproperty*)impl;
-}
-EOM
-}
-	print<<EOM;
-
-/* $prop */
-icalproperty* icalproperty_new_${lc}($type v) {
-   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_${uc}_PROPERTY);   $pointer_check
-   icalproperty_set_${lc}((icalproperty*)impl,v);
-   return (icalproperty*)impl;
-}
-
-EOM
-    # Allow DTSTART, DTEND, DUE, EXDATE and RECURRENCE-ID to take DATE values.
-    if ($lc eq "dtstart" || $lc eq "dtend" || $lc eq "due" || $lc eq "exdate"
-	|| $lc eq "recurrenceid") {
-	print<<EOM;
-void icalproperty_set_${lc}(icalproperty* prop, $type v){
-    icalvalue *value;
-    $set_pointer_check
-    icalerror_check_arg_rv( (prop!=0),"prop");
-    if (v.is_date)
-        value = icalvalue_new_date(v);
-    else
-        value = icalvalue_new_datetime(v);
-    icalproperty_set_value(prop,value);
-}
-EOM
-    } else {
-
-	print<<EOM;
-void icalproperty_set_${lc}(icalproperty* prop, $type v){
-    $set_pointer_check
-    icalerror_check_arg_rv( (prop!=0),"prop");
-    icalproperty_set_value(prop,icalvalue_new_${lcvalue}(v));
-}
-EOM
-	}
-	print<<EOM;
-$type icalproperty_get_${lc}(const icalproperty* prop){
-    icalerror_check_arg( (prop!=0),"prop");
-    return icalvalue_get_${lcvalue}(icalproperty_get_value(prop));
-}
-EOM
-  } elsif ($opt_h) { # Generate C Header file
-
-
- print "\
-/* $prop */\
-icalproperty* icalproperty_new_${lc}($type v);\
-void icalproperty_set_${lc}(icalproperty* prop, $type v);\
-$type icalproperty_get_${lc}(const icalproperty* prop);";
-  
-
-if ($include_vanew){
-  print "icalproperty* icalproperty_vanew_${lc}($type v, ...);\n";
-}
-
-} 
-
-
-} # This brace terminates the main loop
-
-
-
-if ($opt_h){
-
-print "\n\n#endif /*ICALPROPERTY_H*/\n"
-}
-
-}
diff --git a/libkcal/libical/scripts/mkderivedvalues.pl b/libkcal/libical/scripts/mkderivedvalues.pl
deleted file mode 100755
index fef659c3..00000000
--- a/libkcal/libical/scripts/mkderivedvalues.pl
+++ /dev/null
@@ -1,236 +0,0 @@
-#!/usr/bin/perl 
-
-use lib '.';
-
-require 'readvaluesfile.pl';
-
-use Getopt::Std;
-getopts('chi:');
-
- #Options
- # c -> generate c code file
- # h-> generate header file   
-
- # Open with value-types.txt
-
-my %h = read_values_file($ARGV[0]);
-
-
- # Write the file inline by copying everything before a demarcation
- # line, and putting the generated data after the demarcation
-
-if ($opt_i) {
-  
-  open(IN,$opt_i) || die "Can't open input file $opt_i";
-  
-  while(<IN>){
-    if (/<insert_code_here>/){
-      insert_code();
-    } else {
-      print;
-   }
-
-
-  }
-}
-
-sub insert_code
-{
- # Map type names to the value in the icalvalue_impl data union */
-
-%union_map = (
-	      BOOLEAN => 'int',
-	      CALADDRESS=>'string',
-	      DATE=>'time',
-	      DATETIME=>'time',
-	      DATETIMEDATE=>'time',
-	      DATETIMEPERIOD=>'period',
-	      DURATION=>'duration',
-	      INTEGER=>'int',
-	      TEXT=>'string',
-	      URI=>'string',
-	      UTCOFFSET=>'int',
-	      QUERY=>'string',
-	      BINARY=>'string',
-	      X=>'string'
-	     );
-
-
-if($opt_h){
-
-  # First print out the value enumerations
-  $idx = 5000;
-  print "typedef enum icalvalue_kind {\n";
-  print "   ICAL_ANY_VALUE=$idx,\n";
-
-  foreach $value  (keys %h) {
-    
-    $idx++;
-    my $ucv = join("",map {uc(lc($_));}  split(/-/,$value));
-    
-    next if $value eq "NO";
-    
-    print "    ICAL_${ucv}_VALUE=$idx,\n";
-  }
-  
-  $idx++;
-  print "   ICAL_NO_VALUE=$idx\n} icalvalue_kind ;\n\n";
-  
-  # Now create enumerations for property values
-  $idx = 10000;
-  
-  print "#define ICALPROPERTY_FIRST_ENUM $idx\n\n";
-  
-  foreach $value (sort keys %h) {
-    
-    next if !$value;
-    
-    next if $value eq 'NO' or $prop eq 'ANY';
-
-    my $ucv = join("",map {uc(lc($_));}  split(/-/,$value));    
-    my @enums = @{$h{$value}->{'enums'}};
-
-    if(@enums){
-
-      my ($c_autogen,$c_type) = @{$h{$value}->{'C'}};
-      print "typedef $c_type {\n";
-      my $first = 1;
-
-      unshift(@enums,"X");
-
-      push(@enums,"NONE");
-
-      foreach $e (@enums) {
-	if (!$first){
-	  print ",\n";
-	} else {
-	  $first = 0;
-	}
-	
-	my $uce = join("",map {uc(lc($_));}  split(/-/,$e));    
-	
-	print "    ICAL_${ucv}_${uce} = $idx";
-	
-	$idx++;
-      }  
-
-      $c_type =~ s/enum //;
-
-      print "\n} $c_type;\n\n";
-    }
-  }
-
-  print "#define ICALPROPERTY_LAST_ENUM $idx\n\n";
-
-}
-
-
-if($opt_c){
-
-  # print out the value to string map
-
-  my $count = scalar(keys %h) + 1;
-  print "struct icalvalue_kind_map value_map[$count]={\n"; 
-
-  foreach $value  (keys %h) {
-
-    $idx++;
-    my $ucv = join("",map {uc(lc($_));}  split(/-/,$value));
-    
-    next if $value eq "NO";
-    
-    print "    {ICAL_${ucv}_VALUE,\"$value\"},\n";
-  }
-
-    
-  print "    {ICAL_NO_VALUE,\"\"}\n};";
-
-}
-
-
-foreach $value  (keys %h) {
-
-  my $autogen = $h{$value}->{C}->[0];
-  my $type = $h{$value}->{C}->[1];
-
-  my $ucf = join("",map {ucfirst(lc($_));}  split(/-/,$value));
-  
-  my $lc = lc($ucf);
-  my $uc = uc($lc);
-  
-  my $pointer_check = "icalerror_check_arg_rz( (v!=0),\"v\");\n" if $type =~ /\*/;
-  my $pointer_check_rv = "icalerror_check_arg_rv( (v!=0),\"v\");\n" if $type =~ /\*/;
-  
-  my $assign;
-  
-  if ($type =~ /char/){
-    $assign = "icalmemory_strdup(v);\n\n    if (impl->data.v_string == 0){\n      errno = ENOMEM;\n    }\n";
-  } else {
-    $assign = "v;";
-  }
-  
-  my $union_data;
-  
-  if(@{$h{$value}->{'enums'}}){
-    $union_data = 'enum';
-
-  } elsif (exists $union_map{$uc} ){
-    $union_data=$union_map{$uc};
-  } else {
-    $union_data = $lc;
-  }
-  
-  if ($opt_c && $autogen) {
-    
-    print "\n\n\
-icalvalue* icalvalue_new_${lc} ($type v){\
-   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_${uc}_VALUE);\
-   $pointer_check\
-   icalvalue_set_${lc}((icalvalue*)impl,v);\
-   return (icalvalue*)impl;\
-}\
-void icalvalue_set_${lc}(icalvalue* value, $type v) {\
-    struct icalvalue_impl* impl; \
-    icalerror_check_arg_rv( (value!=0),\"value\");\
-    $pointer_check_rv\
-    icalerror_check_value_type(value, ICAL_${uc}_VALUE);\
-    impl = (struct icalvalue_impl*)value;\n";
-    
-    if( $union_data eq 'string') {
-      
-      print "    if(impl->data.v_${union_data}!=0) {free((void*)impl->data.v_${union_data});}\n";
-    }
-    
-
-    print "\n\
-    impl->data.v_$union_data = $assign \n\
-    icalvalue_reset_kind(impl);\n}\n";
-
-    print "$type\ icalvalue_get_${lc}(const icalvalue* value)\ {\n";
-    if ($type =~ m/(\*|int|float)$/) {
-      print "    icalerror_check_arg_rz( (value!=0),\"value\");\n";
-    } else {
-      print "    icalerror_check_arg( (value!=0),\"value\");\n";
-    }
-    print "    icalerror_check_value_type(value, ICAL_${uc}_VALUE);\
-    return ((struct icalvalue_impl*)value)->data.v_${union_data};\n}\n";
-
-    
-  } elsif($opt_h && $autogen) {
-    
-    print "\n /* $value */ \
-icalvalue* icalvalue_new_${lc}($type v); \
-$type icalvalue_get_${lc}(const icalvalue* value); \
-void icalvalue_set_${lc}(icalvalue* value, ${type} v);\n\n";
-
-  } 
-
-}
-  
-  
-if ($opt_h){
-    print "#endif /*ICALVALUE_H*/\n";
-  }
-  
-
-}
diff --git a/libkcal/libical/scripts/mkparameterrestrictions.pl b/libkcal/libical/scripts/mkparameterrestrictions.pl
deleted file mode 100755
index 2c57eb4c..00000000
--- a/libkcal/libical/scripts/mkparameterrestrictions.pl
+++ /dev/null
@@ -1,85 +0,0 @@
-#!/usr/bin/perl 
-
-# Version: 1.0
-# Script last updated: 30May1999 GMD
-# Change log:
-# <none>
-
-
-# usually open params-in-prop.txt
-open(F,"$ARGV[0]") || die "Can't open restriction file $ARGV[0]:$!";
-
-print <<EOM;
-/*
-  ======================================================================
-  File: parameterrestrictions.c
-    
- (C) COPYRIGHT 1999 Graham Davison
- mailto:g.m.davison\@computer.org
-
- The contents of this file are subject to the Mozilla Public License
- Version 1.0 (the "License"); you may not use this file except in
- compliance with the License. You may obtain a copy of the License at
- http://www.mozilla.org/MPL/
- 
- Software distributed under the License is distributed on an "AS IS"
- basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
- the License for the specific language governing rights and
- limitations under the License.
- 
-
- ======================================================================*/
-
-/*
- * THIS FILE IS MACHINE GENERATED DO NOT EDIT
- */
-
-
-int icalrestriction_is_parameter_allowed(icalproperty_kind prop,icalparameter_kind param)
-{
-	switch (prop)
-	{
-EOM
-
-while(<F>)
-{
-	chop;
-	
-	# split line by whitespace
-	my @v = split(/\s+/,$_);
-	# property is first item on line
-	my $prop = shift @v;
-	my $prop_name = $prop;
-	if (substr($prop,0,1) eq "X") { $prop = "X"; }
-	$prop = join("",split(/-/,$prop));
-	
-print <<EOM;
-
-		/* ${prop_name} */
-		case ICAL_${prop}_PROPERTY:
-			switch (param)
-			{
-EOM
-
-	foreach $param (@v)
-	{
-		$param = join("",split(/-/,$param));
-		print "\t\t\t\tcase ICAL_${param}_PARAMETER:\n";
-	}
-	
-print <<EOM;
-					return 1;
-				default:
-					return 0;
-			}
-			
-EOM
-
-}
-
-print <<EOM;
-	}
-	
-	return 0;
-}	
-EOM
diff --git a/libkcal/libical/scripts/mkrestrictionrecords.pl b/libkcal/libical/scripts/mkrestrictionrecords.pl
deleted file mode 100755
index dd28d777..00000000
--- a/libkcal/libical/scripts/mkrestrictionrecords.pl
+++ /dev/null
@@ -1,109 +0,0 @@
-#!/usr/bin/env perl
-
-# Version: 1.0
-# Script last updated: 30May1999 GMD
-# Change log:
-# <none>
-
-# usually open restrictions.csv
-open(F,"$ARGV[0]") || die "Can't open restriction file $ARGV[0]:$!";
-
-print <<EOM;
-/*
-  ======================================================================
-  File: restrictionrecords.c
-    
- (C) COPYRIGHT 1999 Graham Davison
- mailto:g.m.davison\@computer.org
-
- The contents of this file are subject to the Mozilla Public License
- Version 1.0 (the "License"); you may not use this file except in
- compliance with the License. You may obtain a copy of the License at
- http://www.mozilla.org/MPL/
- 
- Software distributed under the License is distributed on an "AS IS"
- basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
- the License for the specific language governing rights and
- limitations under the License.
- 
-
- ======================================================================*/
-
-
-/*
- * THIS FILE IS MACHINE GENERATED DO NOT EDIT
- */
-
-
-typedef struct icalrestriction_record {
-	icalproperty_method method;
-	icalcomponent_kind component;
-	icalproperty_kind property;
-	icalcomponent_kind subcomponent;
-	icalrestriction_kind restriction;
-} icalrestriction_record;
-
-
-icalrestriction_record icalrestriction_records[] = 
-{
-EOM
-
-my $last_method = "";
-my $last_component = "";
-my $last_property = "";
-my $need_header = 0;
-
-while(<F>)
-{
-	chop;
-	
-	# split line at commas
-	my ($method,$component,$property,$subcomponent,$restriction)=split(/\,/,$_);
-	
-	#
-	#put in code to generate comments here!
-	#
-	if ($method ne $last_method)
-	{
-		$need_header = 1;
-		$last_method = $method;
-	}
-	if ($component ne $last_component)
-	{
-		$need_header = 1;
-		$last_component = $component;
-	}
-	
-	if ($need_header)
-	{
-		print "\n\t/* METHOD: ${method}, COMPONENT: ${component} */\n";
-		$need_header = 0;
-	}
-	
-	foreach $item ($component,$property,$subcomponent,$restriction)
-	{
-		# handle special cases.
-		if ($item eq "NONE")
-			{ $item = "NO"; }
-		else { if (substr($item,0,1) eq "X")
-			{ $item = "X"; }}
-		
-		# strip out dashes
-		$item = join("",split(/-/,$item));
-	}
-	# strip leading V from component names
-	$component =~ s/^(V?)(\w+?)((SAVINGS)?)((TIME)?)$/$2/;
-	$subcomponent =~ s/^V(\w+)/$1/;
-
-	print "\t\{ICAL_METHOD_${method},ICAL_${component}_COMPONENT,";
-	print "ICAL_${property}_PROPERTY,ICAL_${subcomponent}_COMPONENT,";
-	print "ICAL_RESTRICTION_${restriction}\},\n";
-	
-}
-
-print <<EOM;
-	
-	/* END */
-	{ICAL_METHOD_NONE,ICAL_NO_COMPONENT,ICAL_NO_PROPERTY,ICAL_NO_COMPONENT,ICAL_RESTRICTION_NONE}
-};
-EOM
diff --git a/libkcal/libical/scripts/mkrestrictiontable.pl b/libkcal/libical/scripts/mkrestrictiontable.pl
deleted file mode 100755
index 0e4e65c0..00000000
--- a/libkcal/libical/scripts/mkrestrictiontable.pl
+++ /dev/null
@@ -1,98 +0,0 @@
-#!/usr/bin/env perl
-
-use Getopt::Std;
-getopts('i:');
-
-# the argument should be the path to the restriction datafile, usually
-# design-data/restrictions.csv        
-open(F,"$ARGV[0]") || die "Can't open restriction data file $ARGV[0]:$!";
-
-# Write the file inline by copying everything before a demarcation
-# line, and putting the generated data after the demarcation
-
-if ($opt_i) {
-
-  open(IN,$opt_i) || die "Can't open input file $opt_i";
-
-  while(<IN>){
-
-    if (/Do not edit/){
-      last;
-    }
-
-    print;
-
-  }    
-
-  print "/* Everything below this line is machine generated. Do not edit. */\n";
-
-
-  close IN;
-}
-
-# First build the property restriction table 
-print "icalrestriction_property_record icalrestriction_property_records[] = {\n";
-
-while(<F>)
-{
-
-  chop;
-
-  s/\#.*$//;
-
-  my($method,$targetcomp,$prop,$subcomp,$restr,$sub) = split(/,/,$_);
-
-  next if !$method;
-  
-  if(!$sub) {
-    $sub = "0";
-  } else {
-    $sub = "icalrestriction_".$sub;
-  }
-
-  if($prop ne "NONE"){
-    print("    \{ICAL_METHOD_${method},ICAL_${targetcomp}_COMPONENT,ICAL_${prop}_PROPERTY,ICAL_RESTRICTION_${restr},$sub},\n");
-  }
-
-}
-
-
-# Print the terminating line 
-print "    {ICAL_METHOD_NONE,ICAL_NO_COMPONENT,ICAL_NO_PROPERTY,ICAL_RESTRICTION_NONE, 0}\n";
-
-print "};\n";
-
-print "icalrestriction_component_record icalrestriction_component_records[] = {\n";
-
-
-# Go back through the entire file and build the component restriction table
-close(F);  
-open(F,"$ARGV[0]") || die "Can't open restriction data file $ARGV[0]:$!";
-
-while(<F>)
-{
-
-  chop;
-
-  s/\#.*$//;
-
-  my($method,$targetcomp,$prop,$subcomp,$restr,$sub) = split(/,/,$_);
-
-  next if !$method;
-  
-  if(!$sub) {
-    $sub = "0";
-  } else {
-    $sub = "icalrestriction_".$sub;
-  }
-
-
-    if($subcomp ne "NONE"){
-      print("    \{ICAL_METHOD_${method},ICAL_${targetcomp}_COMPONENT,ICAL_${subcomp}_COMPONENT,ICAL_RESTRICTION_${restr},$sub\},\n");
-    }
-
-}
-
-# print the terminating line 
-print "    {ICAL_METHOD_NONE,ICAL_NO_COMPONENT,ICAL_NO_COMPONENT,ICAL_RESTRICTION_NONE, 0}\n";
-print "};\n";
diff --git a/libkcal/libical/scripts/readvaluesfile.pl b/libkcal/libical/scripts/readvaluesfile.pl
deleted file mode 100644
index d5e2d36f..00000000
--- a/libkcal/libical/scripts/readvaluesfile.pl
+++ /dev/null
@@ -1,130 +0,0 @@
-
-
-sub read_values_file {
-  
-  my $path = shift;
-  my %h;
-
-  open(F,$path) || die "Can't open values file $path";
-
-  while(<F>){
-    
-    chop; 
- 
-    s/#.*$//g;
-    s/\"//g;
-   
-    next if ! $_;
-
-    @column = split(/,/,$_);
-    
-    my $value_name = $column[0];
-
-    my $c_type_str =  $column[1];
-    my $c_autogen = ($c_type_str =~ /\(a\)/);
-
-    my $c_type = $c_type_str;
-    $c_type =~ s/\(.\)//;
-
-    my $python_type =  $column[2];
-    my $components = $column[3];
-    my $enum_values = $column[4];
-
-    my @components;
-    if($components ne "unitary"){
-      @components = split(/;/,$components);
-    } else {
-      @components = ();
-    }
-
-    my @enums;
-    if($enum_values) {
-      @enums  = split(/;/,$enum_values);
-
-    } else {
-      @enums = ();
-    }
-
-    $h{$value_name} = { C => [$c_autogen,$c_type],
-			perl => $perl_type,
-			python => $python_type,
-			components=>[@components],
-			enums=>[@enums]
-		      };
-  }
-
-  return %h;
-}
-
-sub read_properties_file {
-  
-  my $path = shift;
-  my %h;
-
-  open(F,$path) || die "Can't open properties file $path";
-
-  while(<F>){
-    
-    chop; 
- 
-    s/#.*$//g;
-    s/\"//g;
-   
-    next if ! $_;
-
-    @column = split(/,/,$_);
-    
-    my $property_name = $column[0];
-
-    my $lic_value = $column[1];
-    my $default_value = $column[2];
-    
-    $h{$property_name} = { lic_value => $lic_value,
-			   default_value => $default_value
-			 };
-  }
-
-  return %h;
-}
-
-sub read_parameters_file {
-  
-  my $path = shift;
-  my %h;
-
-  open(F,$path) || die "Can't open parameters file $path";
-
-  while(<F>){
-    
-    chop; 
- 
-    s/#.*$//g;
-    s/\"//g;
-   
-    next if ! $_;
-
-    @column = split(/\,/,$_);
-  
-    my $parameter_name = $column[0];
-
-    my $data_type = $column[1];
-    my $enum_string = $column[2];
-
-    my @enums;
-    if($enum_string){
-      @enums =  split(/;/,$enum_string);
-    }
-    
-    $h{$parameter_name} = { C => $data_type,
-			   enums => [@enums]
-			 };
-  }
-
-  close(F);
-
-  return %h;
-}
-
-
-
-1;
diff --git a/libkcal/libical/src/Makefile.am b/libkcal/libical/src/Makefile.am
deleted file mode 100644
index ef640803..00000000
--- a/libkcal/libical/src/Makefile.am
+++ /dev/null
@@ -1 +0,0 @@
-SUBDIRS = libical libicalss
diff --git a/libkcal/libical/src/libical/Makefile.am b/libkcal/libical/src/libical/Makefile.am
deleted file mode 100644
index e0d51321..00000000
--- a/libkcal/libical/src/libical/Makefile.am
+++ /dev/null
@@ -1,232 +0,0 @@
-#======================================================================
-#  FILE: Makefile.am
-#  CREATOR: eric 
-#  
-#
-#
-# (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of either: 
-#
-#    The LGPL as published by the Free Software Foundation, version
-#    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-#
-#  Or:
-#
-#    The Mozilla Public License Version 1.0. You may obtain a copy of
-#    the License at http://www.mozilla.org/MPL/
-#
-#  The original code is icalcomponent.c
-#
-#======================================================================
-
-
-DESIGNDATA = $(srcdir)/../../design-data
-ICALSCRIPTS = $(srcdir)/../../scripts
-
-noinst_LTLIBRARIES = libical.la
-
-AM_CPPFLAGS = -DPACKAGE_DATA_DIR=\""$(kde_datadir)/libical"\"
-
-AM_YFLAGS = -d -v -t -pical_yy
-AM_LFLAGS = -Pical_yy -olex.yy.c
-
-INCLUDES =                     \
-       -I$(top_builddir)/libkcal/libical       \
-       -I$(top_srcdir)/libkcal/libical/src     \
-       -I$(top_builddir)/libkcal/libical/src   \
-       -I$(srcdir)
-
-libical_la_LDFLAGS = -no-undefined
-
-# Order is important!
-libical_la_SOURCES =		\
-	caldate.c		\
-	icalarray.c		\
-	icalattach.c		\
-	icalderivedparameter.c	\
-	icalrecur.c		\
-	icalrestriction.c	\
-	icalcomponent.c		\
-	icalenums.c		\
-	icalerror.c		\
-	icalmemory.c		\
-	icalmime.c		\
-	icalparameter.c		\
-	icalparser.c		\
-	icalderivedproperty.c	\
-	icalproperty.c		\
-	icaltime.c		\
-	icalduration.c		\
-	icalperiod.c		\
-	icaltimezone.c		\
-	icaltypes.c		\
-	icalvalue.c		\
-	icalderivedvalue.c	\
-	pvl.c			\
-	sspm.c			\
-	vsnprintf.c
-
-
-noinst_HEADERS = ical.h		\
-	astime.h		\
-	icalarray.h		\
-	icalattach.h		\
-	icalattachimpl.h	\
-	icalderivedparameter.h	\
-	icalrecur.h		\
-	icalcomponent.h		\
-	icalenums.h		\
-	icalerror.h		\
-	icalmemory.h		\
-	icalmime.h		\
-	icalparameter.h		\
-	icalparameterimpl.h	\
-	icalparser.h		\
-	icalderivedproperty.h	\
-	icalproperty.h		\
-	icaltime.h		\
-	icalduration.h		\
-	icalperiod.h		\
-	icaltimezone.h		\
-	icaltypes.h		\
-	icalvalue.h		\
-	icalvalueimpl.h		\
-	icalderivedvalue.h	\
-	pvl.h			\
-	sspm.h
-
-# ORDERING OF HEADERS IS SIGNIFICANT. Don't change this ordering. It
-# is required to make the combined header ical.h properly
-COMBINEDHEADERS =                       \
-	$(srcdir)/icalversion.h         \
-	$(srcdir)/icaltime.h		\
-	$(srcdir)/icalduration.h	\
-	$(srcdir)/icalperiod.h		\
-	$(srcdir)/icalenums.h		\
-	$(srcdir)/icaltypes.h		\
-	$(srcdir)/icalrecur.h		\
-	$(srcdir)/icalattach.h		\
-	icalderivedvalue.h		\
-	icalderivedparameter.h		\
-	$(srcdir)/icalvalue.h		\
-	$(srcdir)/icalparameter.h	\
-	icalderivedproperty.h		\
-	$(srcdir)/icalproperty.h	\
-	$(srcdir)/pvl.h			\
-	$(srcdir)/icalarray.h		\
-	$(srcdir)/icalcomponent.h	\
-	$(srcdir)/icaltimezone.h	\
-	$(srcdir)/icalparser.h		\
-	$(srcdir)/icalmemory.h		\
-	$(srcdir)/icalerror.h		\
-	$(srcdir)/icalrestriction.h	\
-	$(srcdir)/sspm.h		\
-	$(srcdir)/icalmime.h
-
-ical.h: $(COMBINEDHEADERS)
-	echo '#ifdef __cplusplus'	  >  ical.h
-	echo 'extern "C" {'		  >> ical.h
-	echo '#endif'			  >> ical.h
-	cat $(COMBINEDHEADERS)				\
-	| egrep -v "#include.*\"ical"			\
-	| egrep -v "#include.*\"config"			\
-	| egrep -v "#include.*\"pvl\.h\""		\
-	| egrep -v '\$$(Id|Locker): .+\$$'>> ical.h
-	echo '#ifdef __cplusplus'	  >> ical.h
-	echo '}'			  >> ical.h
-	echo '#endif'			  >> ical.h
-
-# parameters
-
-PARAMETERDEPS =	\
-	$(ICALSCRIPTS)/mkderivedparameters.pl \
-	$(DESIGNDATA)/parameters.csv	\
-	icalderivedparameter.c.in \
-	icalderivedparameter.h.in
-
-icalderivedparameter.h: $(PARAMETERDEPS) 
-	$(PERL) -I $(ICALSCRIPTS) $(ICALSCRIPTS)/mkderivedparameters.pl -i $(srcdir)/icalderivedparameter.h.in -h $(DESIGNDATA)/parameters.csv > icalderivedparameter.h  || rm -f icalderivedparameter.h
-
-
-icalderivedparameter.c: $(PARAMETERDEPS) icalparameter.h
-	$(PERL) -I $(ICALSCRIPTS) $(ICALSCRIPTS)/mkderivedparameters.pl -i $(srcdir)/icalderivedparameter.c.in -c $(DESIGNDATA)/parameters.csv > icalderivedparameter.c || rm -f icalderivedparameter.c
-
-
-# properties
-
-PROPERTYDEPS =					\
-	$(ICALSCRIPTS)/mkderivedproperties.pl	\
-	$(DESIGNDATA)/properties.csv		\
-	$(DESIGNDATA)/value-types.csv		\
-	icalderivedproperty.c.in		\
-	icalderivedproperty.h.in
-
-
-icalderivedproperty.h: $(PROPERTYDEPS)
-	$(PERL)  -I$(ICALSCRIPTS) $(ICALSCRIPTS)/mkderivedproperties.pl \
-		-i $(srcdir)/icalderivedproperty.h.in -h $(DESIGNDATA)/properties.csv\
-		${DESIGNDATA}/value-types.csv > icalderivedproperty.h  || rm -f icalderivedproperty.h
-
-icalderivedproperty.c: $(PROPERTYDEPS) icalproperty.h 
-	$(PERL)  -I$(ICALSCRIPTS) $(ICALSCRIPTS)/mkderivedproperties.pl \
-		-i $(srcdir)/icalderivedproperty.c.in -c $(DESIGNDATA)/properties.csv \
-		${DESIGNDATA}/value-types.csv > icalderivedproperty.c || rm -f icalderivedproperty.c
-
-# restrictions
-
-RESTRICTIONDEPS =				\
-	$(ICALSCRIPTS)/mkrestrictiontable.pl	\
-	$(DESIGNDATA)/restrictions.csv		\
-	icalrestriction.c.in
-
-icalrestriction.c: $(RESTRICTIONDEPS)
-	$(PERL) $(ICALSCRIPTS)/mkrestrictiontable.pl  -i $(srcdir)/icalrestriction.c.in \
-		$(DESIGNDATA)/restrictions.csv > icalrestriction.c || rm -f icalrestriction.c
-
-# values
-
-VALUEDEPS =					\
-	$(ICALSCRIPTS)/mkderivedvalues.pl  	\
-	$(DESIGNDATA)/value-types.csv		\
-	icalderivedvalue.c.in				\
-	icalderivedvalue.h.in
-
-icalderivedvalue.h: $(VALUEDEPS)
-	$(PERL) -I$(ICALSCRIPTS)  $(ICALSCRIPTS)/mkderivedvalues.pl \
-	         -i $(srcdir)/icalderivedvalue.h.in -h $(DESIGNDATA)/value-types.csv > icalderivedvalue.h || rm -f icalderivedvalue.h
-
-icalderivedvalue.c: $(VALUEDEPS) icalderivedvalue.h
-	$(PERL)  -I$(ICALSCRIPTS) $(ICALSCRIPTS)/mkderivedvalues.pl \
-		-i $(srcdir)/icalderivedvalue.c.in -c $(DESIGNDATA)/value-types.csv > icalderivedvalue.c || rm -f icalderivedvalue.c
-
-# housekeeping
-CLEANFILES = y.output  \
-	icalderivedvalue.h icalderivedproperty.h icalderivedparameter.h ical.h \
-	icalderivedvalue.c icalderivedproperty.c icalderivedparameter.c \
-	icalrestriction.c
-
-EXTRA_DIST =			\
-	icalderivedparameter.c.in \
-	icalderivedparameter.h.in \
-	icalderivedproperty.c.in \
-	icalderivedproperty.h.in \
-	icalrestriction.c.in	\
-	icalderivedvalue.c.in	\
-	icalderivedvalue.h.in	\
-	icalversion.h.in	
-
-
-icalcomponent.lo: icalderivedvalue.h icalderivedproperty.h icalderivedparameter.h
-icalderivedparameter.lo: icalderivedvalue.h icalderivedproperty.h icalderivedparameter.h
-icalderivedproperty.lo: icalderivedvalue.h icalderivedproperty.h icalderivedparameter.h
-icalderivedvalue.lo: icalderivedvalue.h icalderivedproperty.h icalderivedparameter.h
-icalduration.lo: icalderivedvalue.h icalderivedproperty.h icalderivedparameter.h
-icalmime.lo: icalderivedvalue.h icalderivedproperty.h icalderivedparameter.h
-icalparameter.lo: icalderivedvalue.h icalderivedproperty.h icalderivedparameter.h
-icalparser.lo: icalderivedvalue.h icalderivedproperty.h icalderivedparameter.h
-icalproperty.lo: icalderivedvalue.h icalderivedproperty.h icalderivedparameter.h
-icalrestriction.lo: icalderivedvalue.h icalderivedproperty.h icalderivedparameter.h
-icaltime.lo: icalderivedvalue.h icalderivedproperty.h icalderivedparameter.h
-icalvalue.lo: icalderivedvalue.h icalderivedproperty.h icalderivedparameter.h
diff --git a/libkcal/libical/src/libical/astime.h b/libkcal/libical/src/libical/astime.h
deleted file mode 100644
index 6962c060..00000000
--- a/libkcal/libical/src/libical/astime.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- *	Copyright (c) 1986-2000, Hiram Clawson 
- *	All rights reserved.
- *
- *	Redistribution and use in source and binary forms, with or
- *	without modification, are permitted provided that the following
- *	conditions are met:
- *
- *		Redistributions of source code must retain the above
- *		copyright notice, this list of conditions and the
- *		following disclaimer.
- *
- *		Redistributions in binary form must reproduce the
- *		above copyright notice, this list of conditions and
- *		the following disclaimer in the documentation and/or
- *		other materials provided with the distribution.
- *
- *		Neither name of The Museum of Hiram nor the names of
- *		its contributors may be used to endorse or promote products
- *		derived from this software without specific prior
- *		written permission. 
- *
- *	THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *	CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *	INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *	MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- *	IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- *	INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- *	(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- *	OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *	HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- *	STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- *	IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- *	THE POSSIBILITY OF SUCH DAMAGE. 
- */
-
-/**
- *	@file astime.h
- *      @brief contains definitions of structures used for time calculations.
- */
-
-#ifndef	_astime_h_
-#define _astime_h_
-
-typedef struct ut_instant {
-	double	j_date; /**< julian decimal date, 0 = 01 Jan 4713 BC 12 HR UT */
-	long year;      /**< year, valid range [-4,713, +2,147,483,647] */
-	int	month;	/**<	[1-12]	*/
-	int	day;	/**<	[1-31]	*/
-	int	i_hour;	/**<	[0-23]	*/
-	int	i_minute;	/**<	[0-59]	*/
-	int	i_second;	/**<	[0-59]	*/
-	double	d_hour;		/**< [0.0-23.9999] includes minute and second */
-	double	d_minute;	/**<	[0.0-59.9999] includes second	*/
-	double	d_second;	/**<	[0.0-59.9999]	*/
-	int	weekday;	/**<	[0-6]	*/
-	int	day_of_year;	/**<	[1-366]	*/
-} UTinstant, * UTinstantPtr;
-
-/*	Functions in caldate.c	*/
-
-long caldat( UTinstantPtr );	/** converts julian date to year,mo,da */
-double juldat( UTinstantPtr );	/** returns julian day from year,mo,da */
-
-#endif	/*	_astime_h_	*/
diff --git a/libkcal/libical/src/libical/caldate.c b/libkcal/libical/src/libical/caldate.c
deleted file mode 100644
index f5554f66..00000000
--- a/libkcal/libical/src/libical/caldate.c
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- *	Copyright (c) 1986-2000, Hiram Clawson 
- *	All rights reserved.
- *
- *	Redistribution and use in source and binary forms, with or
- *	without modification, are permitted provided that the following
- *	conditions are met:
- *
- *		Redistributions of source code must retain the above
- *		copyright notice, this list of conditions and the
- *		following disclaimer.
- *
- *		Redistributions in binary form must reproduce the
- *		above copyright notice, this list of conditions and
- *		the following disclaimer in the documentation and/or
- *		other materials provided with the distribution.
- *
- *		Neither name of The Museum of Hiram nor the names of
- *		its contributors may be used to endorse or promote products
- *		derived from this software without specific prior
- *		written permission. 
- *
- *	THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *	CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *	INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *	MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- *	IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- *	INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- *	(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- *	OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *	HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- *	STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- *	IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- *	THE POSSIBILITY OF SUCH DAMAGE. 
- */
-
-#include "astime.h"	/*	time structures	*/
-
-/**
- *	caldat computes the day of the week, the day of the year
- *	the gregorian (or julian) calendar date and the universal
- *	time from the julian decimal date.
- *	for astronomical purposes, The Gregorian calendar reform occurred
- *	on 15 Oct. 1582.  This is 05 Oct 1582 by the julian calendar.
-
- *	Input:	a ut_instant structure pointer, where the j_date element
- *		has been set. ( = 0 for 01 Jan 4713 B.C. 12 HR UT )
- *
- *	output:  will set all the other elements of the structure.
- *		As a convienence, the function will also return the year.
- *
- *	Reference: Astronomial formulae for calculators, meeus, p 23
- *	from fortran program by F. Espenak - April 1982 Page 277,
- *	50 Year canon of solar eclipses: 1986-2035
- *
- */
-
-long caldat( date )
-struct ut_instant * date;
-{
-	double frac;
-	long jd;
-	long ka;
-	long kb;
-	long kc;
-	long kd;
-	long ke;
-	long ialp;
-
-	jd = (long) (date->j_date + 0.5);	/* integer julian date */
-	frac = date->j_date + 0.5 - (double) jd + 1.0e-10; /* day fraction */
-	ka = (long) jd;
-	if ( jd >= 2299161L )
-	{
-		ialp = ( (double) jd - 1867216.25 ) / ( 36524.25 );
-		ka = jd + 1L + ialp - ( ialp >> 2 );
-	}
-	kb = ka + 1524L;
-	kc =  ( (double) kb - 122.1 ) / 365.25;
-	kd = (double) kc * 365.25;
-	ke = (double) ( kb - kd ) / 30.6001;
-	date->day = kb - kd - ((long) ( (double) ke * 30.6001 ));
-	if ( ke > 13L )
-		date->month = ke - 13L;
-	else
-		date->month = ke - 1L;
-	if ( (date->month == 2) && (date->day > 28) )
-		date->day = 29;
-	if ( (date->month == 2) && (date->day == 29) && (ke == 3L) )
-		date->year = kc - 4716L;
-	else if ( date->month > 2 )
-		date->year = kc - 4716L;
-	else
-		date->year = kc - 4715L;
-	date->i_hour = date->d_hour = frac * 24.0;	/* hour */
-	date->i_minute = date->d_minute =
-		( date->d_hour - (double) date->i_hour ) * 60.0; /* minute */
-	date->i_second = date->d_second =
-		( date->d_minute - (double) date->i_minute ) * 60.0;/* second */
-	date->weekday = (jd + 1L) % 7L;	/* day of week */
-	if ( date->year == ((date->year >> 2) << 2) )
-		date->day_of_year =
-			( ( 275 * date->month ) / 9)
-			- ((date->month + 9) / 12)
-			+ date->day - 30;
-	else
-		date->day_of_year =
-			( ( 275 * date->month ) / 9)
-			- (((date->month + 9) / 12) << 1)
-			+ date->day - 30;
-	return( date->year );
-}
-
-/**
- *	juldat computes the julian decimal date (j_date) from
- *	the gregorian (or Julian) calendar date.
- *	for astronomical purposes, The Gregorian calendar reform occurred
- *	on 15 Oct. 1582.  This is 05 Oct 1582 by the julian calendar.
- *	Input:  a ut_instant structure pointer where Day, Month, Year and
- *		i_hour, i_minute, d_second have been set for the date
- *		in question.
- *
- *	Output: the j_date and weekday elements of the structure will be set.
- *		Also, the return value of the function will be the j_date too.
- *
- *	Reference: Astronomial formulae for calculators, meeus, p 23
- *	from fortran program by F. Espenak - April 1982 Page 276,
- *	50 Year canon of solar eclipses: 1986-2035
- */
-
-double juldat( date )
-struct ut_instant * date;
-{
-	double frac, gyr;
-	long iy0, im0;
-	long ia, ib;
-	long jd;
-
-	/* decimal day fraction	*/
-	frac = (( double)date->i_hour/ 24.0)
-		+ ((double) date->i_minute / 1440.0)
-		+ (date->d_second / 86400.0);
-	/* convert date to format YYYY.MMDDdd	*/
-	gyr = (double) date->year
-		+ (0.01 * (double) date->month)
-		+ (0.0001 * (double) date->day)
-		+ (0.0001 * frac) + 1.0e-9;
-	/* conversion factors */
-	if ( date->month <= 2 )
-	{
-		iy0 = date->year - 1L;
-		im0 = date->month + 12;
-	}
-	else
-	{
-		iy0 = date->year;
-		im0 = date->month;
-	}
-	ia = iy0 / 100L;
-	ib = 2L - ia + (ia >> 2);
-	/* calculate julian date	*/
-	if ( date->year < 0L )
-		jd = (long) ((365.25 * (double) iy0) - 0.75)
-			+ (long) (30.6001 * (im0 + 1L) )
-			+ (long) date->day + 1720994L;
-	else
-		jd = (long) (365.25 * (double) iy0)
-			+ (long) (30.6001 * (double) (im0 + 1L))
-			+ (long) date->day + 1720994L;
-	if ( gyr >= 1582.1015 )	/* on or after 15 October 1582	*/
-		jd += ib;
-	date->j_date = (double) jd + frac + 0.5;
-	jd = (long) (date->j_date + 0.5);
-	date->weekday = (jd + 1L) % 7L;
-	return( date->j_date );
-}	/*	end of	double juldat( date )	*/
diff --git a/libkcal/libical/src/libical/icalarray.c b/libkcal/libical/src/libical/icalarray.c
deleted file mode 100644
index 05e764c7..00000000
--- a/libkcal/libical/src/libical/icalarray.c
+++ /dev/null
@@ -1,161 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*-
-  ======================================================================
-  FILE: icalarray.c
-  CREATOR: Damon Chaplin 07 March 2001
-  
-    
- (C) COPYRIGHT 2001, Ximian, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-
- ======================================================================*/
-
-/** @file icalarray.c
- *
- *  @brief An array of arbitrarily-sized elements which grows
- *  dynamically as elements are added. 
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <stdlib.h>
-#include <string.h>
-
-#include "icalarray.h"
-#include "icalerror.h"
-
-
-static void icalarray_expand		(icalarray	*array,
-					 int		 space_needed);
-
-/** @brief Constructor
- */
-
-icalarray*
-icalarray_new			(int		 element_size,
-				 int		 increment_size)
-{
-    icalarray *array;
-
-    array = (icalarray*) malloc (sizeof (icalarray));
-    if (!array) {
-	icalerror_set_errno(ICAL_NEWFAILED_ERROR);
-	return NULL;
-    }
-
-    array->element_size = element_size;
-    array->increment_size = increment_size;
-    array->num_elements = 0;
-    array->space_allocated = 0;
-    array->data = NULL;
-
-    return array;
-}
-
-/** @brief Destructor
- */
-
-void
-icalarray_free			(icalarray	*array)
-{
-    if (array->data)
-	free (array->data);
-    free (array);
-}
-
-
-void
-icalarray_append		(icalarray	*array,
-				 const void		*element)
-{
-    if (array->num_elements >= array->space_allocated)
-	icalarray_expand (array, 1);
-
-    memcpy ((char *)(array->data) + ( array->num_elements * array->element_size ), element,
-	    array->element_size);
-    array->num_elements++;
-}
-
-
-void*
-icalarray_element_at		(icalarray	*array,
-				 int		 position)
-{
-    assert (position >= 0);
-    assert ((unsigned int)position < array->num_elements);
-
-    return (char *)(array->data) + (position * array->element_size);
-}
-
-
-void
-icalarray_remove_element_at	(icalarray	*array,
-				 int		 position)
-{
-    void *dest;
-    int elements_to_move;
-
-    assert (position >= 0);
-    assert ((unsigned int)position < array->num_elements);
-
-    dest = (char *)array->data + (position * array->element_size);
-    elements_to_move = array->num_elements - position - 1;
-
-    if (elements_to_move > 0)
-	memmove (dest, (char *)dest + array->element_size,
-		 elements_to_move * array->element_size);
-
-    array->num_elements--;
-}
-
-
-void
-icalarray_sort			(icalarray	*array,
-				 int	       (*compare) (const void *,
-							   const void *))
-{
-    qsort (array->data, array->num_elements, array->element_size, compare);
-}
-
-
-static void
-icalarray_expand		(icalarray	*array,
-				 int		 space_needed)
-{
-    int new_space_allocated;
-    void *new_data;
-
-    new_space_allocated = array->space_allocated + array->increment_size;
-
-    if ((unsigned int)space_needed > array->increment_size)
-	new_space_allocated += space_needed;
-
-	/*
-    new_data = realloc (array->data,
-			new_space_allocated * array->element_size);
-	*/
-	new_data = malloc(new_space_allocated * array->element_size);
-
-    if (new_data) {
-	memcpy(new_data,array->data,array->element_size*array->space_allocated);
-	free(array->data);
-	array->data = new_data;
-	array->space_allocated = new_space_allocated;
-    } else {
-	icalerror_set_errno(ICAL_ALLOCATION_ERROR);
-    }
-}
-
-
diff --git a/libkcal/libical/src/libical/icalarray.h b/libkcal/libical/src/libical/icalarray.h
deleted file mode 100644
index 16d39034..00000000
--- a/libkcal/libical/src/libical/icalarray.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
-/*======================================================================
- FILE: icalarray.h
- CREATOR: Damon Chaplin 07 March 2001
-
-
-
- (C) COPYRIGHT 2001, Ximian, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-
-======================================================================*/
-
-
-#ifndef ICALARRAY_H
-#define ICALARRAY_H
-
-/** @file icalarray.h 
- *
- *  @brief An array of arbitrarily-sized elements which grows
- *  dynamically as elements are added. 
- */
-
-typedef struct _icalarray icalarray;
-struct _icalarray {
-    unsigned int	 element_size;
-    unsigned int	 increment_size;
-    unsigned int	 num_elements;
-    unsigned int	 space_allocated;
-    void		*data;
-};
-
-
-
-icalarray *icalarray_new		(int		 element_size,
-					 int		 increment_size);
-void	   icalarray_free		(icalarray	*array);
-
-void	   icalarray_append		(icalarray	*array,
-					 const void		*element);
-void	   icalarray_remove_element_at	(icalarray	*array,
-					 int		 position);
-
-void	  *icalarray_element_at		(icalarray	*array,
-					 int		 position);
-
-void	   icalarray_sort		(icalarray	*array,
-					 int	       (*compare) (const void *, const void *));
-
-
-#endif /* ICALARRAY_H */
diff --git a/libkcal/libical/src/libical/icalattach.c b/libkcal/libical/src/libical/icalattach.c
deleted file mode 100644
index 23cdbeef..00000000
--- a/libkcal/libical/src/libical/icalattach.c
+++ /dev/null
@@ -1,137 +0,0 @@
-/* -*- Mode: C -*-
-  ======================================================================
-  FILE: icalattach.c
-  CREATOR: acampi 28 May 02
-  
-    
-
- (C) COPYRIGHT 2000, Andrea Campi <a.campi@inet.it>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-  The original code is icaltypes.c
-
- ======================================================================*/
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "icaltypes.h"
-#include "icalerror.h"
-#include "icalmemory.h"
-#include "icalattachimpl.h"
-#include <stdlib.h> /* for malloc and abs() */
-#include <errno.h> /* for errno */
-#include <string.h> /* for icalmemory_strdup */
-#include <assert.h>
-
-icalattach *
-icalattach_new_from_url (const char *url)
-{
-    icalattach *attach;
-    char *url_copy;
-
-    icalerror_check_arg_rz ((url != NULL), "url");
-
-    if ((attach = malloc (sizeof (icalattach))) == NULL) {
-	errno = ENOMEM;
-	return NULL;
-    }
-
-    if ((url_copy = strdup (url)) == NULL) {
-	free (attach);
-	errno = ENOMEM;
-	return NULL;
-    }
-
-    attach->refcount = 1;
-    attach->is_url = 1;
-    attach->u.url.url = url_copy;
-
-    return attach;
-}
-
-icalattach *
-icalattach_new_from_data (unsigned char *data, icalattach_free_fn_t free_fn,
-			  void *free_fn_data)
-{
-    icalattach *attach;
-
-    icalerror_check_arg_rz ((data != NULL), "data");
-
-    if ((attach = malloc (sizeof (icalattach))) == NULL) {
-	errno = ENOMEM;
-	return NULL;
-    }
-
-    attach->refcount = 1;
-    attach->is_url = 0;
-    attach->u.data.data = data;
-    attach->u.data.free_fn = free_fn;
-    attach->u.data.free_fn_data = free_fn_data;
-
-    return attach;
-}
-
-void
-icalattach_ref (icalattach *attach)
-{
-    icalerror_check_arg_rv ((attach != NULL), "attach");
-    icalerror_check_arg_rv ((attach->refcount > 0), "attach->refcount > 0");
-
-    attach->refcount++;
-}
-
-void
-icalattach_unref (icalattach *attach)
-{
-    icalerror_check_arg_rv ((attach != NULL), "attach");
-    icalerror_check_arg_rv ((attach->refcount > 0), "attach->refcount > 0");
-
-    attach->refcount--;
-
-    if (attach->refcount != 0)
-	return;
-
-    if (attach->is_url)
-	free (attach->u.url.url);
-    else if (attach->u.data.free_fn)
-	(* attach->u.data.free_fn) (attach->u.data.data, attach->u.data.free_fn_data);
-
-    free (attach);
-}
-
-int
-icalattach_get_is_url (icalattach *attach)
-{
-    icalerror_check_arg_rz ((attach != NULL), "attach");
-
-    return attach->is_url ? 1 : 0;
-}
-
-const char *
-icalattach_get_url (icalattach *attach)
-{
-    icalerror_check_arg_rz ((attach != NULL), "attach");
-    icalerror_check_arg_rz ((attach->is_url), "attach->is_url");
-
-    return attach->u.url.url;
-}
-
-unsigned char *
-icalattach_get_data (icalattach *attach)
-{
-    icalerror_check_arg_rz ((attach != NULL), "attach");
-    icalerror_check_arg_rz ((!attach->is_url), "!attach->is_url");
-
-    return attach->u.data.data;
-}
diff --git a/libkcal/libical/src/libical/icalattach.h b/libkcal/libical/src/libical/icalattach.h
deleted file mode 100644
index 4189d4bb..00000000
--- a/libkcal/libical/src/libical/icalattach.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* -*- Mode: C -*- */
-/*======================================================================
- FILE: icalattach.h
- CREATOR: acampi 28 May 02
-
-
- (C) COPYRIGHT 2002, Andrea Campi <a.campi@inet.it>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-  The original code is icalattach.h
-
-======================================================================*/
-
-#ifndef ICALATTACH_H
-#define ICALATTACH_H
-
-
-typedef struct icalattach_impl icalattach;
-
-typedef void (* icalattach_free_fn_t) (unsigned char *data, void *user_data);
-
-icalattach *icalattach_new_from_url (const char *url);
-icalattach *icalattach_new_from_data (unsigned char *data,
-	icalattach_free_fn_t free_fn, void *free_fn_data);
-
-void icalattach_ref (icalattach *attach);
-void icalattach_unref (icalattach *attach);
-
-int icalattach_get_is_url (icalattach *attach);
-const char *icalattach_get_url (icalattach *attach);
-unsigned char *icalattach_get_data (icalattach *attach);
-
-struct icalattachtype* icalattachtype_new(void);
-void  icalattachtype_add_reference(struct icalattachtype* v);
-void icalattachtype_free(struct icalattachtype* v);
-
-void icalattachtype_set_url(struct icalattachtype* v, char* url);
-char* icalattachtype_get_url(struct icalattachtype* v);
-
-void icalattachtype_set_base64(struct icalattachtype* v, char* base64,
-				int owns);
-char* icalattachtype_get_base64(struct icalattachtype* v);
-
-void icalattachtype_set_binary(struct icalattachtype* v, char* binary,
-				int owns);
-void* icalattachtype_get_binary(struct icalattachtype* v);
-
-
-
-#endif /* !ICALATTACH_H */
diff --git a/libkcal/libical/src/libical/icalattachimpl.h b/libkcal/libical/src/libical/icalattachimpl.h
deleted file mode 100644
index 08c22fd8..00000000
--- a/libkcal/libical/src/libical/icalattachimpl.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/* -*- Mode: C -*- */
-/*======================================================================
-  FILE: icalattachimpl.h
-  CREATOR: acampi 28 May 02
-  
-
-
- (C) COPYRIGHT 2000, Andrea Campi <a.campi@inet.it>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-  The original code is icalattachimpl.h
-
-
-======================================================================*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef ICALATTACHIMPL_H
-#define ICALATTACHIMPL_H
-
-#include "icalattach.h"
-
-/* Private structure for ATTACH values */
-struct icalattach_impl {
-	/* Reference count */
-	int refcount;
-
-	union {
-		/* URL attachment data */
-		struct {
-			char *url;
-		} url;
-
-		/* Inline data */
-		struct {
-			unsigned char *data;
-			icalattach_free_fn_t free_fn;
-			void *free_fn_data;
-		} data;
-	} u;
-
-	/* TRUE if URL, FALSE if inline data */
-	unsigned int is_url : 1;
-};
-
-#endif
diff --git a/libkcal/libical/src/libical/icalcomponent.c b/libkcal/libical/src/libical/icalcomponent.c
deleted file mode 100644
index bab0e72a..00000000
--- a/libkcal/libical/src/libical/icalcomponent.c
+++ /dev/null
@@ -1,2598 +0,0 @@
-/*======================================================================
-  FILE: icalcomponent.c
-  CREATOR: eric 28 April 1999
-  
-
- (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
-     http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-  The original code is icalcomponent.c
-
-======================================================================*/
-
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "icalcomponent.h"
-#include "pvl.h" /* "Pointer-to-void list" */
-#include "icalerror.h"
-#include "icalmemory.h"
-#include "icalenums.h"
-#include "icaltime.h"
-#include "icalarray.h"
-#include "icaltimezone.h"
-#include "icalduration.h"
-#include "icalperiod.h"
-#include "icalparser.h"
-#include "icalrestriction.h"
-
-#include <stdlib.h>  /* for malloc */
-#include <stdarg.h> /* for va_list, etc */
-#include <errno.h>
-#include <assert.h>
-#include <stdio.h> /* for fprintf */
-#include <string.h> /* for strdup */
-#include <limits.h> /* for INT_MAX */
-
-struct icalcomponent_impl 
-{
-	char id[5];
-	icalcomponent_kind kind;
-	char* x_name;
-	pvl_list properties;
-	pvl_elem property_iterator;
-	pvl_list components;
-	pvl_elem component_iterator;
-	icalcomponent* parent;
-
-	/** An array of icaltimezone structs. We use this so we can do fast
-	   lookup of timezones using binary searches. timezones_sorted is
-	   set to 0 whenever we add a timezone, so we remember to sort the
-	   array before doing a binary search. */
-	icalarray* timezones;
-	int timezones_sorted;
-};
-
-/* icalproperty functions that only components get to use */
-void icalproperty_set_parent(icalproperty* property,
-			     icalcomponent* component);
-icalcomponent* icalproperty_get_parent(icalproperty* property);
-void icalcomponent_add_children(icalcomponent *impl,va_list args);
-static icalcomponent* icalcomponent_new_impl (icalcomponent_kind kind);
-
-static void icalcomponent_merge_vtimezone (icalcomponent *comp,
-					   icalcomponent *vtimezone,
-					   icalarray *tzids_to_rename);
-static void icalcomponent_handle_conflicting_vtimezones (icalcomponent *comp,
-							 icalcomponent *vtimezone,
-							 icalproperty *tzid_prop,
-							 const char *tzid,
-							 icalarray *tzids_to_rename);
-static unsigned int icalcomponent_get_tzid_prefix_len (const char *tzid);
-static void icalcomponent_rename_tzids(icalcomponent* comp,
-				       icalarray* rename_table);
-static void icalcomponent_rename_tzids_callback(icalparameter *param,
-						void *data);
-static int icalcomponent_compare_vtimezones (icalcomponent	*vtimezone1,
-					     icalcomponent	*vtimezone2);
-static int icalcomponent_compare_timezone_fn	(const void	*elem1,
-						 const void	*elem2);
-
-
-void icalcomponent_add_children(icalcomponent *impl, va_list args)
-{
-    void* vp;
-    
-    while((vp = va_arg(args, void*)) != 0) {
-
-	assert (icalcomponent_isa_component(vp) != 0 ||
-		icalproperty_isa_property(vp) != 0 ) ;
-
-	if (icalcomponent_isa_component(vp) != 0 ){
-	  icalcomponent_add_component(impl, (icalcomponent*)vp);
-
-	} else if (icalproperty_isa_property(vp) != 0 ){
-	    icalcomponent_add_property(impl, (icalproperty*)vp);
-	}
-    }    
-}
-
-static icalcomponent*
-icalcomponent_new_impl (icalcomponent_kind kind)
-{
-    icalcomponent* comp;
-
-    if (!icalcomponent_kind_is_valid(kind))
-	return NULL;
-
-    if ( ( comp = (icalcomponent*) malloc(sizeof(icalcomponent))) == 0) {
-	icalerror_set_errno(ICAL_NEWFAILED_ERROR);
-	return 0;
-    }
-    
-    strcpy(comp->id,"comp");
-
-    comp->kind = kind;
-    comp->properties = pvl_newlist();
-    comp->property_iterator = 0;
-    comp->components = pvl_newlist();
-    comp->component_iterator = 0;
-    comp->x_name = 0;
-    comp->parent = 0;
-    comp->timezones = NULL;
-    comp->timezones_sorted = 1;
-
-    return comp;
-}
-
-/** @brief Constructor
- */
-icalcomponent*
-icalcomponent_new (icalcomponent_kind kind)
-{
-   return icalcomponent_new_impl(kind);
-}
-
-/** @brief Constructor
- */
-icalcomponent*
-icalcomponent_vanew (icalcomponent_kind kind, ...)
-{
-   va_list args;
-
-   icalcomponent *impl = icalcomponent_new_impl(kind);
-
-    if (impl == 0){
-	return 0;
-    }
-
-   va_start(args,kind);
-   icalcomponent_add_children(impl, args);
-   va_end(args);
-
-   return impl;
-}
-
-/** @brief Constructor
- */
-icalcomponent* icalcomponent_new_from_string(char* str)
-{
-    return icalparser_parse_string(str);
-}
-
-/** @brief Constructor
- */
-icalcomponent* icalcomponent_new_clone(icalcomponent* old)
-{
-    icalcomponent *new;
-    icalproperty *p;
-    icalcomponent *c;
-    pvl_elem itr;
-
-    icalerror_check_arg_rz( (old!=0), "component");
-
-    new = icalcomponent_new_impl(old->kind);
-
-    if (new == 0){
-	return 0;
-    }
-
-    
-    for( itr = pvl_head(old->properties);
-	 itr != 0;
-	 itr = pvl_next(itr))
-    {	
-	p = (icalproperty*)pvl_data(itr);
-	icalcomponent_add_property(new,icalproperty_new_clone(p));
-    }
-   
-   
-    for( itr = pvl_head(old->components);
-	 itr != 0;
-	 itr = pvl_next(itr))
-    {	
-	c = (icalcomponent*)pvl_data(itr);
-	icalcomponent_add_component(new,icalcomponent_new_clone(c));
-    }
-
-   return new;
-
-}
-
-/*** @brief Destructor
- */
-void
-icalcomponent_free (icalcomponent* c)
-{
-    icalproperty* prop;
-    icalcomponent* comp;
-
-    icalerror_check_arg_rv( (c!=0), "component");
-
-#ifdef ICAL_FREE_ON_LIST_IS_ERROR
-    icalerror_assert( (c->parent ==0),"Tried to free a component that is still attached to a parent component");
-#else
-    if(c->parent != 0){
-	return;
-    }
-#endif
-
-    if(c != 0 ){
-       
-		if ( c->properties != 0 )
-		{
-		   while( (prop=pvl_pop(c->properties)) != 0){
-		   assert(prop != 0);
-			   icalproperty_set_parent(prop,0);
-		   icalproperty_free(prop);
-		   }
-	        pvl_free(c->properties);
-		}
-      
-
-       while( (comp=pvl_data(pvl_head(c->components))) != 0){
-	   assert(comp!=0);
-	   icalcomponent_remove_component(c,comp);
-	   icalcomponent_free(comp);
-       }
-       
-       pvl_free(c->components);
-
-	if (c->x_name != 0) {
-	    free(c->x_name);
-	}
-
-	if (c->timezones)
-	    icaltimezone_array_free (c->timezones);
-
-	c->kind = ICAL_NO_COMPONENT;
-	c->properties = 0;
-	c->property_iterator = 0;
-	c->components = 0;
-	c->component_iterator = 0;
-	c->x_name = 0;	
-	c->id[0] = 'X';
-	c->timezones = NULL;
-
-	free(c);
-    }
-}
-
-char*
-icalcomponent_as_ical_string (icalcomponent* impl)
-{
-   char* buf, *out_buf;
-   const char* tmp_buf;
-   size_t buf_size = 1024;
-   char* buf_ptr = 0;
-    pvl_elem itr;
-
-/* RFC 2445 explicitly says that the newline is *ALWAYS* a \r\n (CRLF)!!!! */
-char newline[] = "\r\n";
-/* WIN32 automatically adds the \r, Anybody else need it?
-#ifdef ICAL_UNIX_NEWLINE    
-    char newline[] = "\n";
-#else
-    char newline[] = "\r\n";
-#endif
-*/
-   
-   icalcomponent *c;
-   icalproperty *p;
-   icalcomponent_kind kind = icalcomponent_isa(impl);
-
-   const char* kind_string;
-
-   buf = icalmemory_new_buffer(buf_size);
-   buf_ptr = buf; 
-
-   icalerror_check_arg_rz( (impl!=0), "component");
-   icalerror_check_arg_rz( (kind!=ICAL_NO_COMPONENT), "component kind is ICAL_NO_COMPONENT");
-   
-   kind_string  = icalcomponent_kind_to_string(kind);
-
-   icalerror_check_arg_rz( (kind_string!=0),"Unknown kind of component");
-
-   icalmemory_append_string(&buf, &buf_ptr, &buf_size, "BEGIN:");
-   icalmemory_append_string(&buf, &buf_ptr, &buf_size, kind_string);
-   icalmemory_append_string(&buf, &buf_ptr, &buf_size, newline);
-   
-
-
-   for( itr = pvl_head(impl->properties);
-	 itr != 0;
-	 itr = pvl_next(itr))
-    {	
-	p = (icalproperty*)pvl_data(itr);
-	
-	icalerror_assert((p!=0),"Got a null property");
-	tmp_buf = icalproperty_as_ical_string(p);
-	
-	icalmemory_append_string(&buf, &buf_ptr, &buf_size, tmp_buf);
-    }
-   
-   
-   for( itr = pvl_head(impl->components);
-	itr != 0;
-	itr = pvl_next(itr))
-   {	
-       c = (icalcomponent*)pvl_data(itr);
-       
-       tmp_buf = icalcomponent_as_ical_string(c);
-       
-       icalmemory_append_string(&buf, &buf_ptr, &buf_size, tmp_buf);
-       
-   }
-   
-   icalmemory_append_string(&buf, &buf_ptr, &buf_size, "END:");
-   icalmemory_append_string(&buf, &buf_ptr, &buf_size, 
-			    icalcomponent_kind_to_string(kind));
-   icalmemory_append_string(&buf, &buf_ptr, &buf_size, newline);
-   icalmemory_append_string(&buf, &buf_ptr, &buf_size, newline);
-
-   out_buf = icalmemory_tmp_copy(buf);
-   free(buf);
-
-   return out_buf;
-}
-
-
-int
-icalcomponent_is_valid (icalcomponent* component)
-{
-    if ( (strcmp(component->id,"comp") == 0) &&
-	 component->kind != ICAL_NO_COMPONENT){
-	return 1;
-    } else {
-	return 0;
-    }
-
-}
-
-
-icalcomponent_kind
-icalcomponent_isa (const icalcomponent* component)
-{
-   icalerror_check_arg_rx( (component!=0), "component", ICAL_NO_COMPONENT);
-
-   if(component != 0)
-   {
-       return component->kind;
-   }
-
-   return ICAL_NO_COMPONENT;
-}
-
-
-int
-icalcomponent_isa_component (void* component)
-{
-    icalcomponent *impl = component;
-
-    icalerror_check_arg_rz( (component!=0), "component");
-
-    if (strcmp(impl->id,"comp") == 0) {
-	return 1;
-    } else {
-	return 0;
-    }
-
-}
-
-void
-icalcomponent_add_property (icalcomponent* component, icalproperty* property)
-{
-    icalerror_check_arg_rv( (component!=0), "component");
-    icalerror_check_arg_rv( (property!=0), "property");
-
-    icalerror_assert( (!icalproperty_get_parent(property)),"The property has already been added to a component. Remove the property with icalcomponent_remove_property before calling icalcomponent_add_property");
-
-    icalproperty_set_parent(property,component);
-
-    pvl_push(component->properties,property);
-}
-
-
-void
-icalcomponent_remove_property (icalcomponent* component, icalproperty* property)
-{
-    pvl_elem itr, next_itr;
-
-    icalerror_check_arg_rv( (component!=0), "component");
-    icalerror_check_arg_rv( (property!=0), "property");
-    
-    icalerror_assert( (icalproperty_get_parent(property)),"The property is not a member of a component");
-
-    
-    for( itr = pvl_head(component->properties);
-	 itr != 0;
-	 itr = next_itr)
-    {
-	next_itr = pvl_next(itr);
-	
-	if( pvl_data(itr) == (void*)property ){
-
-	   if (component->property_iterator == itr){
-	       component->property_iterator = pvl_next(itr);
-	   }
-
-	   pvl_remove( component->properties, itr); 
-	  icalproperty_set_parent(property,0);
-	}
-    }	
-}
-
-int
-icalcomponent_count_properties (icalcomponent* component, 
-				icalproperty_kind kind)
-{
-    int count=0;
-    pvl_elem itr;
-
-    icalerror_check_arg_rz( (component!=0), "component");
-
-    for( itr = pvl_head(component->properties);
-	 itr != 0;
-	 itr = pvl_next(itr))
-    {	
-	if(kind == icalproperty_isa((icalproperty*)pvl_data(itr)) ||
-	    kind == ICAL_ANY_PROPERTY){
-	    count++;
-	}
-    }
-
-
-    return count;
-
-}
-
-icalproperty* icalcomponent_get_current_property (icalcomponent* component)
-{
-   icalerror_check_arg_rz( (component!=0),"component");
-
-   if ((component->property_iterator==0)){
-       return 0;
-   }
-
-   return (icalproperty*) pvl_data(component->property_iterator);
-}
-
-icalproperty*
-icalcomponent_get_first_property (icalcomponent* c, icalproperty_kind kind)
-{
-   icalerror_check_arg_rz( (c!=0),"component");
-  
-   for( c->property_iterator = pvl_head(c->properties);
-	c->property_iterator != 0;
-	c->property_iterator = pvl_next(c->property_iterator)) {
-	    
-       icalproperty *p =  (icalproperty*) pvl_data(c->property_iterator);
-	
-	   if (icalproperty_isa(p) == kind || kind == ICAL_ANY_PROPERTY) {
-	       
-	       return p;
-	   }
-   }
-   return 0;
-}
-
-icalproperty*
-icalcomponent_get_next_property (icalcomponent* c, icalproperty_kind kind)
-{
-   icalerror_check_arg_rz( (c!=0),"component");
-
-   if (c->property_iterator == 0){
-       return 0;
-   }
-
-   for( c->property_iterator = pvl_next(c->property_iterator);
-	c->property_iterator != 0;
-	c->property_iterator = pvl_next(c->property_iterator)) {
-	    
-       icalproperty *p =  (icalproperty*) pvl_data(c->property_iterator);
-	   
-       if (icalproperty_isa(p) == kind || kind == ICAL_ANY_PROPERTY) {
-	   
-	   return p;
-       }
-   }
-
-   return 0;
-}
-
-
-icalproperty**
-icalcomponent_get_properties (icalcomponent* component, icalproperty_kind kind);
-
-
-void
-icalcomponent_add_component (icalcomponent* parent, icalcomponent* child)
-{
-    icalerror_check_arg_rv( (parent!=0), "parent");
-    icalerror_check_arg_rv( (child!=0), "child");
-    
-    if (child->parent !=0) {
-        icalerror_set_errno(ICAL_USAGE_ERROR);
-    }
-
-    child->parent = parent;
-
-    pvl_push(parent->components,child);
-
-    /* If the new component is a VTIMEZONE, add it to our array. */
-    if (child->kind == ICAL_VTIMEZONE_COMPONENT) {
-	/* FIXME: Currently we are also creating this array when loading in
-	   a builtin VTIMEZONE, when we don't need it. */
-	if (!parent->timezones)
-	    parent->timezones = icaltimezone_array_new ();
-
-	icaltimezone_array_append_from_vtimezone (parent->timezones, child);
-
-	/* Flag that we need to sort it before doing any binary searches. */
-	parent->timezones_sorted = 0;
-    }
-}
-
-
-void
-icalcomponent_remove_component (icalcomponent* parent, icalcomponent* child)
-{
-   pvl_elem itr, next_itr;
-
-   icalerror_check_arg_rv( (parent!=0), "parent");
-   icalerror_check_arg_rv( (child!=0), "child");
-   
-    /* If the component is a VTIMEZONE, remove it from our array as well. */
-    if (child->kind == ICAL_VTIMEZONE_COMPONENT) {
-	icaltimezone *zone;
-	int i, num_elements;
-
-	num_elements = parent->timezones ? parent->timezones->num_elements : 0;
-        for (i = 0; i < num_elements; i++) {
-	    zone = icalarray_element_at (parent->timezones, i);
-	    if (icaltimezone_get_component (zone) == child) {
-		icaltimezone_free (zone, 0);
-	        icalarray_remove_element_at (parent->timezones, i);
-		break;
-	    }
-	}
-    }
-
-   for( itr = pvl_head(parent->components);
-	itr != 0;
-	itr = next_itr)
-   {
-       next_itr = pvl_next(itr);
-       
-       if( pvl_data(itr) == (void*)child ){
-
-	   if (parent->component_iterator == itr){
-	       /* Don't let the current iterator become invalid */
-
-	       /* HACK. The semantics for this are troubling. */
-	       parent->component_iterator = 
-		   pvl_next(parent->component_iterator);
-	          
-	   }
-	   pvl_remove( parent->components, itr); 
-	   child->parent = 0;
-	   break;
-       }
-   }	
-}
-
-
-int
-icalcomponent_count_components (icalcomponent* component, 
-				icalcomponent_kind kind)
-{
-    int count=0;
-    pvl_elem itr;
-
-    icalerror_check_arg_rz( (component!=0), "component");
-
-    for( itr = pvl_head(component->components);
-	 itr != 0;
-	 itr = pvl_next(itr))
-    {
-	if(kind == icalcomponent_isa((icalcomponent*)pvl_data(itr)) ||
-	    kind == ICAL_ANY_COMPONENT){
-	    count++;
-	}
-    }
-
-    return count;
-}
-
-icalcomponent*
-icalcomponent_get_current_component(icalcomponent* component)
-{
-   icalerror_check_arg_rz( (component!=0),"component");
-
-   if (component->component_iterator == 0){
-       return 0;
-   }
-
-   return (icalcomponent*) pvl_data(component->component_iterator);
-}
-
-icalcomponent*
-icalcomponent_get_first_component (icalcomponent* c, 
-				   icalcomponent_kind kind)
-{
-   icalerror_check_arg_rz( (c!=0),"component");
-  
-   for( c->component_iterator = pvl_head(c->components);
-	c->component_iterator != 0;
-	c->component_iterator = pvl_next(c->component_iterator)) {
-	    
-       icalcomponent *p =  (icalcomponent*) pvl_data(c->component_iterator);
-	
-	   if (icalcomponent_isa(p) == kind || kind == ICAL_ANY_COMPONENT) {
-	       
-	       return p;
-	   }
-   }
-
-   return 0;
-}
-
-
-icalcomponent*
-icalcomponent_get_next_component (icalcomponent* c, icalcomponent_kind kind)
-{
-   icalerror_check_arg_rz( (c!=0),"component");
-  
-   if (c->component_iterator == 0){
-       return 0;
-   }
-
-   for( c->component_iterator = pvl_next(c->component_iterator);
-	c->component_iterator != 0;
-	c->component_iterator = pvl_next(c->component_iterator)) {
-	    
-       icalcomponent *p =  (icalcomponent*) pvl_data(c->component_iterator);
-	
-	   if (icalcomponent_isa(p) == kind || kind == ICAL_ANY_COMPONENT) {
-	       
-	       return p;
-	   }
-   }
-
-   return 0;
-}
-
-icalcomponent* icalcomponent_get_first_real_component(icalcomponent *c)
-{
-    icalcomponent *comp;
-
-    for(comp = icalcomponent_get_first_component(c,ICAL_ANY_COMPONENT);
-	comp != 0;
-	comp = icalcomponent_get_next_component(c,ICAL_ANY_COMPONENT)){
-
-	icalcomponent_kind kind = icalcomponent_isa(comp);
-
-	if(kind == ICAL_VEVENT_COMPONENT ||
-	   kind == ICAL_VTODO_COMPONENT ||
-	   kind == ICAL_VJOURNAL_COMPONENT ||
-	   kind == ICAL_VFREEBUSY_COMPONENT ||
-	   kind == ICAL_VQUERY_COMPONENT ||
-	   kind == ICAL_VAGENDA_COMPONENT){
-	    return comp;
-	}
-    }
-    return 0;
-}
-
-
-/**	@brief Get the timespan covered by this component, in UTC
- *	(deprecated)
- *
- *      see icalcomponent_foreach_recurrence() for a better way to
- *      extract spans from an component.
- *
- *	This method can be called on either a VCALENDAR or any real
- *	component. If the VCALENDAR contains no real component, but
- *	contains a VTIMEZONE, we return that span instead.
- *	This might not be a desirable behavior; we keep it for now
- *	for backward compatibility, but it might be deprecated at a
- *	future time.
- *
- *	FIXME this API needs to be clarified. DTEND is defined as the
- *	first available time after the end of this event, so the span
- *	should actually end 1 second before DTEND.
- */
-
-icaltime_span icalcomponent_get_span(icalcomponent* comp)
-{
-    icalcomponent *inner;
-    icalcomponent_kind kind;
-    icaltime_span span;
-    struct icaltimetype start, end;
-
-    span.start = 0;
-    span.end = 0;
-    span.is_busy= 1;
-
-    /* initial Error checking */
-    if (comp == NULL) {
-	return span;
-    }
-
-    /* FIXME this might go away */
-    kind  = icalcomponent_isa(comp);
-    if(kind == ICAL_VCALENDAR_COMPONENT){
-	inner = icalcomponent_get_first_real_component(comp);
-
-	/* Maybe there is a VTIMEZONE in there */
-	if (inner == 0){
-	    inner = icalcomponent_get_first_component(comp,
-			       ICAL_VTIMEZONE_COMPONENT);
-	}
-
-    } else {
-	inner = comp;
-    }
-
-    if (inner == 0){
-	icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-	/*icalerror_warn("icalcomponent_get_span: no component specified, or empty VCALENDAR component");*/
-	return span; 
-    }
-    
-    kind  = icalcomponent_isa(inner);
-
-    if( !( kind == ICAL_VEVENT_COMPONENT ||
-	   kind == ICAL_VJOURNAL_COMPONENT ||
-	   kind == ICAL_VTODO_COMPONENT ||	   
-	   kind == ICAL_VFREEBUSY_COMPONENT )) {
-	icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-	/*icalerror_warn("icalcomponent_get_span: no component specified, or empty VCALENDAR component");*/
-	return span; 
-	
-    }
-
-    /* Get to work. starting with DTSTART */
-    start = icalcomponent_get_dtstart(comp);
-    if (icaltime_is_null_time(start)) {
-	return span;
-    }
-    span.start = icaltime_as_timet_with_zone(start,
-	icaltimezone_get_utc_timezone());
-
-    /* The end time could be specified as either a DTEND or a DURATION */
-    /* icalcomponent_get_dtend takes care of these cases. */
-    end = icalcomponent_get_dtend(comp);
-    if (icaltime_is_null_time(end)) {
-	if (!icaltime_is_date(start)) {
-	    /* If dtstart is a DATE-TIME and there is no DTEND nor DURATION
-	       it takes no time */
-	    span.start = 0;
-	    return span;
-	} else {
-	    end = start;
-	}
-    }
-
-    span.end = icaltime_as_timet_with_zone(end,
-	icaltimezone_get_utc_timezone());
-    if (icaltime_is_date(start)) {
-	/* Until the end of the day*/
-	span.end += 60*60*24 - 1;
-    }
-
-    return span;
-
-}
-
-/**
- * Decide if this recurrance is acceptable
- * 
- * @param comp       A valid icalcomponent.
- * @param dtstart    The base dtstart value for this component.
- * @param recurtime  The time to test against.
- *
- * @return true if the recurrence value is excluded, false otherwise.
- *
- * This function decides if a specific recurrence value is
- * excluded by EXRULE or EXDATE properties.
- *
- * It's not the most efficient code.  You might get better performance
- * if you assume that recurtime is always increasing for each
- * call. Then you could:
- *
- *   - sort the EXDATE values
- *   - save the state of each EXRULE iterator for the next call.
- * 
- * In this case though you don't need to worry how you call this
- * function.  It will always return the correct result.
- */
-
-int icalproperty_recurrence_is_excluded(icalcomponent *comp,
-				       struct icaltimetype *dtstart,
-				       struct icaltimetype *recurtime) {
-  icalproperty *exdate, *exrule;
-
-  if (comp == NULL || 
-      dtstart == NULL || 
-      recurtime == NULL ||
-      icaltime_is_null_time(*recurtime))
-    /* BAD DATA */
-    return 1;	
-
-  /** first test against the exdate values **/
-  for (exdate = icalcomponent_get_first_property(comp,ICAL_EXDATE_PROPERTY);
-       exdate != NULL;
-       exdate = icalcomponent_get_next_property(comp,ICAL_EXDATE_PROPERTY)) {
-	 
-    struct icaltimetype exdatetime = icalproperty_get_exdate(exdate);
-
-    if (icaltime_compare(*recurtime, exdatetime) == 0) {
-      /** MATCHED **/
-      return 1;
-    }
-  }
-
-  /** Now test against the EXRULEs **/
-  for (exrule = icalcomponent_get_first_property(comp,ICAL_EXRULE_PROPERTY);
-       exrule != NULL;
-       exrule = icalcomponent_get_next_property(comp,ICAL_EXRULE_PROPERTY)) {
-	 
-    struct icalrecurrencetype recur = icalproperty_get_exrule(exrule);
-    icalrecur_iterator *exrule_itr  = icalrecur_iterator_new(recur, *dtstart);
-    struct icaltimetype exrule_time;
-
-    while (1) {
-      int result;
-      exrule_time = icalrecur_iterator_next(exrule_itr);
-
-      if (icaltime_is_null_time(exrule_time))
-	break;
-
-      result = icaltime_compare(*recurtime, exrule_time);
-      if (result == 0) {
-	icalrecur_iterator_free(exrule_itr);
-	return 1; /** MATCH **/
-      }
-      if (result == 1)
-	break;    /** exrule_time > recurtime **/
-    }
-
-    icalrecur_iterator_free(exrule_itr);
-  }
-
-  return 0;  /** no matches **/
-}
-
-/**
- * @brief Return the busy status based on the TRANSP property.
- *
- * @param comp   A valid icalcomponent.
- *
- * @return 1 if the event is a busy item, 0 if it is not.
- */
-
-static int icalcomponent_is_busy(icalcomponent *comp) {
-  icalproperty *transp;
-  enum icalproperty_status status;
-  int ret = 1;
-
-  /** @todo check access control here, converting busy->free if the
-     permissions do not allow access... */
-
-  /* Is this a busy time?  Check the TRANSP property */
-  transp = icalcomponent_get_first_property(comp, ICAL_TRANSP_PROPERTY);
-  
-  if (transp) {
-    icalvalue *transp_val = icalproperty_get_value(transp);
-
-    switch (icalvalue_get_transp(transp_val)) {
-    case ICAL_TRANSP_OPAQUE:
-    case ICAL_TRANSP_OPAQUENOCONFLICT:
-    case ICAL_TRANSP_NONE:
-      ret = 1;
-      break;
-    case ICAL_TRANSP_TRANSPARENT:
-    case ICAL_TRANSP_TRANSPARENTNOCONFLICT:
-      ret = 0;
-      break;
-    default:
-      ret = 0;
-      break;
-    }
-  }
-  status = icalcomponent_get_status(comp);
-  if (ret && status) {
-     switch (status) {
-     case ICAL_STATUS_CANCELLED:
-     case ICAL_STATUS_TENTATIVE:
-        ret = 0;
-	break;
-    default:
-	break;
-    }
-  }
-  return(ret);
-}
-
-
-
-
-/**
- * @brief cycle through all recurrances of an event
- *
- * @param comp           A valid VEVENT component
- * @param start          Ignore timespans before this
- * @param end            Ignore timespans after this
- * @param callback       Function called for each timespan within the range
- * @param callback_data  Pointer passed back to the callback function
- *
- * This function will call the specified callback function for once
- * for the base value of DTSTART, and foreach recurring date/time
- * value.
- *
- * It will filter out events that are specified as an EXDATE or an EXRULE.
- *
- * @todo We do not filter out duplicate RRULES/RDATES
- * @todo We do not handle RDATEs with explicit periods
- */
-
-void icalcomponent_foreach_recurrence(icalcomponent* comp,
-				      struct icaltimetype start,
-				      struct icaltimetype end,
-			void (*callback)(icalcomponent *comp, 
-                                         struct icaltime_span *span, 
-                                         void *data),
-				void *callback_data)
-{
-  struct icaltimetype dtstart, dtend;
-  icaltime_span recurspan, basespan, limit_span;
-  time_t limit_start, limit_end;
-  int dtduration;
-  icalproperty *rrule, *rdate;
-  struct icaldurationtype dur;
-  pvl_elem property_iterator;	/* for saving the iterator */
-  
-  if (comp == NULL || callback == NULL)
-    return;
-  
-  dtstart = icalcomponent_get_dtstart(comp);
-  
-  if (icaltime_is_null_time(dtstart))
-    return;			
-
-
-  /* The end time could be specified as either a DTEND or a DURATION */
-  /* icalcomponent_get_dtend takes care of these cases. */
-  dtend = icalcomponent_get_dtend(comp);
-
-  /* Now set up the base span for this item, corresponding to the 
-     base DTSTART and DTEND */
-  basespan = icaltime_span_new(dtstart, dtend, 1);
-
-  basespan.is_busy = icalcomponent_is_busy(comp);
-
-
-  /** Calculate the ceiling and floor values.. **/
-  limit_start = icaltime_as_timet_with_zone(start, icaltimezone_get_utc_timezone());
-  if (!icaltime_is_null_time(end))
-    limit_end   = icaltime_as_timet_with_zone(end, icaltimezone_get_utc_timezone());
-  else
-    limit_end   = INT_MAX;  /* max 32 bit time_t */
-
-  limit_span.start = limit_start;
-  limit_span.end   = limit_end;
-
-
-  /* Do the callback for the initial DTSTART entry */
-
-  if (!icalproperty_recurrence_is_excluded(comp, &dtstart, &dtstart)) {
-    /** call callback action **/
-    if (icaltime_span_overlaps(&basespan, &limit_span))
-    (*callback) (comp, &basespan, callback_data);
-  }
-
-  recurspan = basespan;
-  dtduration = basespan.end - basespan.start;
-  
-  /* Now cycle through the rrule entries */
-  for (rrule = icalcomponent_get_first_property(comp,ICAL_RRULE_PROPERTY);
-       rrule != NULL;
-       rrule = icalcomponent_get_next_property(comp,ICAL_RRULE_PROPERTY)) {
-
-    struct icalrecurrencetype recur = icalproperty_get_rrule(rrule);
-    icalrecur_iterator *rrule_itr  = icalrecur_iterator_new(recur, dtstart);
-    struct icaltimetype rrule_time = icalrecur_iterator_next(rrule_itr);
-    /** note that icalrecur_iterator_next always returns dtstart
-	the first time.. **/
-    
-    while (1) {
-      rrule_time = icalrecur_iterator_next(rrule_itr);
-
-      if (icaltime_is_null_time(rrule_time)) 
-	break;
-
-      dur = icaltime_subtract(rrule_time, dtstart);
-
-      recurspan.start = basespan.start + icaldurationtype_as_int(dur);
-      recurspan.end   = recurspan.start + dtduration;
-
-      /** save the iterator ICK! **/
-      property_iterator = comp->property_iterator;
-
-      if (!icalproperty_recurrence_is_excluded(comp, &dtstart, &rrule_time)) {
-	/** call callback action **/
-	if (icaltime_span_overlaps(&recurspan, &limit_span))
-	(*callback) (comp, &recurspan, callback_data);
-      }
-      comp->property_iterator = property_iterator;
-    } /* end of iteration over a specific RRULE */
-
-    icalrecur_iterator_free(rrule_itr);
-  } /* end of RRULE loop */
-
-
-  /** Now process RDATE entries **/
-  for (rdate = icalcomponent_get_first_property(comp,ICAL_RDATE_PROPERTY);
-       rdate != NULL;
-       rdate = icalcomponent_get_next_property(comp,ICAL_RDATE_PROPERTY)) {
-
-    struct icaldatetimeperiodtype rdate_period = icalproperty_get_rdate(rdate);
-
-    /** RDATES can specify raw datetimes, periods, or dates.
-	we only support raw datetimes for now.. 
-
-        @todo Add support for other types **/
-    
-    if (icaltime_is_null_time(rdate_period.time)) 
-      continue;
-
-    dur = icaltime_subtract(rdate_period.time, dtstart);
-
-    recurspan.start = basespan.start + icaldurationtype_as_int(dur);
-    recurspan.end   = recurspan.start + dtduration;
-
-    /** save the iterator ICK! **/
-    property_iterator = comp->property_iterator;
-
-    if (!icalproperty_recurrence_is_excluded(comp, &dtstart, &rdate_period.time)) {
-      /** call callback action **/
-      (*callback) (comp, &recurspan, callback_data);
-    }
-    comp->property_iterator = property_iterator;
-  }
-}
-
-
-
-int icalcomponent_check_restrictions(icalcomponent* comp){
-    icalerror_check_arg_rz(comp!=0,"comp");
-    return icalrestriction_check(comp);
-}
-
-/** @brief returns the number of errors encountered parsing the data
- *
- * This function counts the number times the X-LIC-ERROR occurs
- * in the data structure.
- */
-
-int icalcomponent_count_errors(icalcomponent* component)
-{
-    int errors = 0;
-    icalproperty *p;
-    icalcomponent *c;
-    pvl_elem itr;
-
-    for( itr = pvl_head(component->properties);
-	 itr != 0;
-	 itr = pvl_next(itr))
-    {	
-	p = (icalproperty*)pvl_data(itr);
-	
-	if(icalproperty_isa(p) == ICAL_XLICERROR_PROPERTY)
-	{
-	    errors++;
-	}
-    }
-
-
-    for( itr = pvl_head(component->components);
-	 itr != 0;
-	 itr = pvl_next(itr))
-    {	
-	c = (icalcomponent*)pvl_data(itr);
-	
-	errors += icalcomponent_count_errors(c);
-	
-    }
-
-    return errors;
-}
-
-
-void icalcomponent_strip_errors(icalcomponent* component)
-{
-    icalproperty *p;
-    icalcomponent *c;
-    pvl_elem itr, next_itr;
-
-   for( itr = pvl_head(component->properties);
-	 itr != 0;
-	 itr = next_itr)
-    {	
-	p = (icalproperty*)pvl_data(itr);
-	next_itr = pvl_next(itr);
-
-	if(icalproperty_isa(p) == ICAL_XLICERROR_PROPERTY)
-	{
-	    icalcomponent_remove_property(component,p);
-	}
-    }
-    
-    for( itr = pvl_head(component->components);
-	 itr != 0;
-	 itr = pvl_next(itr))
-    {	
-	c = (icalcomponent*)pvl_data(itr);
-	icalcomponent_strip_errors(c);
-    }
-}
-
-/* Hack. This will change the state of the iterators */
-void icalcomponent_convert_errors(icalcomponent* component)
-{
-    icalproperty *p, *next_p;
-    icalcomponent *c;
-
-    for(p = icalcomponent_get_first_property(component,ICAL_ANY_PROPERTY);
-	p != 0;
-	p = next_p){
-	
-	next_p = icalcomponent_get_next_property(component,ICAL_ANY_PROPERTY);
-
-	if(icalproperty_isa(p) == ICAL_XLICERROR_PROPERTY)
-	{
-	    struct icalreqstattype rst;
-	    icalparameter *param  = icalproperty_get_first_parameter
-		(p,ICAL_XLICERRORTYPE_PARAMETER);
-
-	    rst.code = ICAL_UNKNOWN_STATUS;
-	    rst.desc = 0;
-
-	    switch(icalparameter_get_xlicerrortype(param)){
-
-		case  ICAL_XLICERRORTYPE_PARAMETERNAMEPARSEERROR: {
-		    rst.code = ICAL_3_2_INVPARAM_STATUS;
-		    break;
-		}
-		case  ICAL_XLICERRORTYPE_PARAMETERVALUEPARSEERROR: {
-		    rst.code = ICAL_3_3_INVPARAMVAL_STATUS;
-		    break;
-		}
-		case  ICAL_XLICERRORTYPE_PROPERTYPARSEERROR: {		    
-		    rst.code = ICAL_3_0_INVPROPNAME_STATUS;
-		    break;
-		}
-		case  ICAL_XLICERRORTYPE_VALUEPARSEERROR: {
-		    rst.code = ICAL_3_1_INVPROPVAL_STATUS;
-		    break;
-		}
-		case  ICAL_XLICERRORTYPE_COMPONENTPARSEERROR: {
-		    rst.code = ICAL_3_4_INVCOMP_STATUS;
-		    break;
-		}
-
-		default: {
-		    break;
-		}
-	    }
-	    if (rst.code != ICAL_UNKNOWN_STATUS){
-		
-		rst.debug = icalproperty_get_xlicerror(p);
-		icalcomponent_add_property(component,
-					   icalproperty_new_requeststatus(rst));
-		
-		icalcomponent_remove_property(component,p);
-	    }
-	}
-    }
-
-    for(c = icalcomponent_get_first_component(component,ICAL_ANY_COMPONENT);
-	c != 0;
-	c = icalcomponent_get_next_component(component,ICAL_ANY_COMPONENT)){
-	
-	icalcomponent_convert_errors(c);
-    }
-}
-
-
-icalcomponent* icalcomponent_get_parent(icalcomponent* component)
-{
-   return component->parent;
-}
-
-void icalcomponent_set_parent(icalcomponent* component, icalcomponent* parent)
-{
-   component->parent = parent;
-}
-
-icalcompiter icalcompiter_null = {ICAL_NO_COMPONENT,0};
-
-
-struct icalcomponent_kind_map {
-	icalcomponent_kind kind;
-	char name[20];
-};
-
-  
-
-static struct icalcomponent_kind_map component_map[] = 
-{
-    { ICAL_VEVENT_COMPONENT, "VEVENT" },
-    { ICAL_VTODO_COMPONENT, "VTODO" },
-    { ICAL_VJOURNAL_COMPONENT, "VJOURNAL" },
-    { ICAL_VCALENDAR_COMPONENT, "VCALENDAR" },
-    { ICAL_VAGENDA_COMPONENT, "VAGENDA" },
-    { ICAL_VFREEBUSY_COMPONENT, "VFREEBUSY" },
-    { ICAL_VTIMEZONE_COMPONENT, "VTIMEZONE" },
-    { ICAL_VALARM_COMPONENT, "VALARM" },
-    { ICAL_XSTANDARD_COMPONENT, "STANDARD" }, /*These are part of RFC2445 */
-    { ICAL_XDAYLIGHT_COMPONENT, "DAYLIGHT" }, /*but are not really components*/
-    { ICAL_X_COMPONENT, "X" },
-    { ICAL_VSCHEDULE_COMPONENT, "SCHEDULE" },
-
-    /* CAP components */
-    { ICAL_VQUERY_COMPONENT, "VQUERY" },  
-    { ICAL_VCAR_COMPONENT, "VCAR" },  
-    { ICAL_VCOMMAND_COMPONENT, "VCOMMAND" },  
-
-    /* libical private components */
-    { ICAL_XLICINVALID_COMPONENT, "X-LIC-UNKNOWN" },  
-    { ICAL_XLICMIMEPART_COMPONENT, "X-LIC-MIME-PART" },  
-    { ICAL_ANY_COMPONENT, "ANY" },  
-    { ICAL_XROOT_COMPONENT, "XROOT" },  
-
-    /* End of list */
-    { ICAL_NO_COMPONENT, "" },
-};
-
-
-int icalcomponent_kind_is_valid(const icalcomponent_kind kind)
-{
-    int i = 0;
-    do {
-      if (component_map[i].kind == kind)
-	return 1;
-    } while (component_map[i++].kind != ICAL_NO_COMPONENT);
-
-    return 0;
-}
-
-const char* icalcomponent_kind_to_string(icalcomponent_kind kind)
-{
-    int i;
-
-    for (i=0; component_map[i].kind != ICAL_NO_COMPONENT; i++) {
-	if (component_map[i].kind == kind) {
-	    return component_map[i].name;
-	}
-    }
-
-    return 0;
-
-}
-
-icalcomponent_kind icalcomponent_string_to_kind(const char* string)
-{
-    int i;
-
-    if (string ==0 ) { 
-	return ICAL_NO_COMPONENT;
-    }
-
-    for (i=0; component_map[i].kind  != ICAL_NO_COMPONENT; i++) {
-	if (strcasecmp(component_map[i].name, string) == 0) {
-	    return component_map[i].kind;
-	}
-    }
-
-    return ICAL_NO_COMPONENT;
-}
-
-
-
-icalcompiter 
-icalcomponent_begin_component(icalcomponent* component,icalcomponent_kind kind)
-{
-    icalcompiter itr;
-    pvl_elem i;
-
-    itr.kind = kind;
-    itr.iter = NULL;
-
-    icalerror_check_arg_re(component!=0,"component",icalcompiter_null);
-
-    for( i = pvl_head(component->components); i != 0; i = pvl_next(i)) {
-	
-	icalcomponent *c =  (icalcomponent*) pvl_data(i);
-	
-	if (icalcomponent_isa(c) == kind || kind == ICAL_ANY_COMPONENT) {
-	    
-	    itr.iter = i;
-
-	    return itr;
-	}
-    }
-
-    return icalcompiter_null;
-}
-
-icalcompiter
-icalcomponent_end_component(icalcomponent* component,icalcomponent_kind kind)
-{
-    icalcompiter itr; 
-    pvl_elem i;
-
-    itr.kind = kind;
-
-    icalerror_check_arg_re(component!=0,"component",icalcompiter_null);
-
-    for( i = pvl_tail(component->components); i != 0; i = pvl_prior(i)) {
-	
-	icalcomponent *c =  (icalcomponent*) pvl_data(i);
-	
-	if (icalcomponent_isa(c) == kind || kind == ICAL_ANY_COMPONENT) {
-	    
-	    itr.iter = pvl_next(i);
-
-	    return itr;
-	}
-    }
-
-    return icalcompiter_null;;
-}
-
-
-icalcomponent* icalcompiter_next(icalcompiter* i)
-{
-   if (i->iter == 0){
-       return 0;
-   }
-
-   icalerror_check_arg_rz( (i!=0),"i");
-
-   for( i->iter = pvl_next(i->iter);
-	i->iter != 0;
-	i->iter = pvl_next(i->iter)) {
-	    
-       icalcomponent *c =  (icalcomponent*) pvl_data(i->iter);
-	
-	   if (icalcomponent_isa(c) == i->kind 
-	       || i->kind == ICAL_ANY_COMPONENT) {
-	       
-	       return icalcompiter_deref(i);;
-	   }
-   }
-
-   return 0;
-
-}
-
-icalcomponent* icalcompiter_prior(icalcompiter* i)
-{
-   if (i->iter == 0){
-       return 0;
-   }
-
-   for( i->iter = pvl_prior(i->iter);
-	i->iter != 0;
-	i->iter = pvl_prior(i->iter)) {
-	    
-       icalcomponent *c =  (icalcomponent*) pvl_data(i->iter);
-	
-	   if (icalcomponent_isa(c) == i->kind 
-	       || i->kind == ICAL_ANY_COMPONENT) {
-	       
-	       return icalcompiter_deref(i);;
-	   }
-   }
-
-   return 0;
-
-}
-icalcomponent* icalcompiter_deref(icalcompiter* i)
-{
-    if(i->iter ==0){
-	return 0;
-    }
-
-    return pvl_data(i->iter);
-}
-
-icalcomponent* icalcomponent_get_inner(icalcomponent* comp)
-{
-    if (icalcomponent_isa(comp) == ICAL_VCALENDAR_COMPONENT){
-	return icalcomponent_get_first_real_component(comp);
-    } else {
-	return comp;
-    }
-}
-
-/** @brief sets the METHOD property to the given method
- */
-
-void icalcomponent_set_method(icalcomponent* comp, icalproperty_method method)
-{
-    icalproperty *prop 
-	= icalcomponent_get_first_property(comp, ICAL_METHOD_PROPERTY);
-
-
-    if (prop == 0){
-	prop = icalproperty_new_method(method);
-	icalcomponent_add_property(comp, prop);
-    }
-    
-    icalproperty_set_method(prop,method);
-
-}
-
-/** @brief returns the METHOD property 
- */
-
-icalproperty_method icalcomponent_get_method(icalcomponent* comp)
-{
-    icalproperty *prop 
-	= icalcomponent_get_first_property(comp,ICAL_METHOD_PROPERTY);
-
-    if (prop == 0){
-	return ICAL_METHOD_NONE;
-    }
-    
-    return icalproperty_get_method(prop);
-}
-
-#define ICALSETUPSET(p_kind) \
-    icalcomponent *inner; \
-    icalproperty *prop; \
-    icalerror_check_arg_rv(comp!=0,"comp");\
-    inner = icalcomponent_get_inner(comp); \
-    if(inner == 0){\
-        icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);\
-        return;\
-    }\
-    prop = icalcomponent_get_first_property(inner, p_kind);
- 
-
-/**	@brief Set DTSTART property to given icaltime
- *
- *	This method respects the icaltime type (DATE vs DATE-TIME) and
- *	timezone (or lack thereof).
- */
-void icalcomponent_set_dtstart(icalcomponent* comp, struct icaltimetype v)
-{
-    const char *tzid;
-    ICALSETUPSET(ICAL_DTSTART_PROPERTY);
-
-    if (prop == 0){
-	prop = icalproperty_new_dtstart(v);
-	icalcomponent_add_property(inner, prop);
-    } else {
-        icalproperty_remove_parameter_by_kind(prop, ICAL_TZID_PARAMETER);
-    }
-    
-    icalproperty_set_dtstart(prop,v);
-
-    if ((tzid = icaltime_get_tzid(v)) != NULL && !icaltime_is_utc(v)) {
-	icalproperty_add_parameter(prop, icalparameter_new_tzid(tzid));
-    }
-}
-
-/**	@brief Get a DATE or DATE-TIME property as an icaltime
- *
- *	If the property is a DATE-TIME with a timezone parameter and a
- *	corresponding VTIMEZONE is present in the component, the
- *	returned component will already be in the correct timezone;
- *	otherwise the caller is responsible for converting it.
- *
- *	FIXME this is useless until we can flag the failure
- */
-static struct icaltimetype
-icalcomponent_get_datetime(icalcomponent *comp, icalproperty *prop) {
-
-    icalparameter      *param;
-    struct icaltimetype	ret;
-
-    ret = icalvalue_get_datetime(icalproperty_get_value(prop));
-
-    if ((param = icalproperty_get_first_parameter(prop, ICAL_TZID_PARAMETER))
-	!= NULL) {
-	const char     *tzid = icalparameter_get_tzid(param);
-	icaltimezone   *tz;
-
-	if ((tz = icalcomponent_get_timezone(comp, tzid)) != NULL) {
-	    icaltime_set_timezone(&ret, tz);
-	}
-    }
-
-    return ret;
-}
-
-/**	@brief Get DTSTART property as an icaltime
- *
- *	If DTSTART is a DATE-TIME with a timezone parameter and a
- *	corresponding VTIMEZONE is present in the component, the
- *	returned component will already be in the correct timezone;
- *	otherwise the caller is responsible for converting it.
- *
- *	FIXME this is useless until we can flag the failure
- */
-struct icaltimetype icalcomponent_get_dtstart(icalcomponent* comp)
-{
-    icalcomponent *inner = icalcomponent_get_inner(comp); 
-    icalproperty *prop;
-
-    prop = icalcomponent_get_first_property(inner,ICAL_DTSTART_PROPERTY);
-    if (prop == 0){
-	return icaltime_null_time();
-    }
-
-    return icalcomponent_get_datetime(comp, prop);
-}
-
-/**	@brief Get DTEND property as an icaltime
- *
- *	If a DTEND property is not present but a DURATION is, we use
- *	that to determine the proper end.
- *
- *	If DTSTART is a DATE-TIME with a timezone parameter and a
- *	corresponding VTIMEZONE is present in the component, the
- *	returned component will already be in the correct timezone;
- *	otherwise the caller is responsible for converting it.
- *
- *	FIXME this is useless until we can flag the failure
- */
-struct icaltimetype icalcomponent_get_dtend(icalcomponent* comp)
-{
-    icalcomponent *inner = icalcomponent_get_inner(comp); 
-    icalproperty *end_prop 
-	= icalcomponent_get_first_property(inner,ICAL_DTEND_PROPERTY);
-    icalproperty *dur_prop 
-	= icalcomponent_get_first_property(inner, ICAL_DURATION_PROPERTY);
-    struct icaltimetype	ret = icaltime_null_time();
-
-    if ( end_prop != 0) {
-	ret = icalcomponent_get_datetime(comp, end_prop);
-    } else if ( dur_prop != 0) { 
-
-	struct icaltimetype start = 
-	    icalcomponent_get_dtstart(inner);
-	struct icaldurationtype duration = 
-	    icalproperty_get_duration(dur_prop);
-
-	struct icaltimetype end = icaltime_add(start,duration);
-
-	ret = end;
-    }
-
-    return ret;
-}
-
-/**	@brief Set DTEND property to given icaltime
- *
- *	This method respects the icaltime type (DATE vs DATE-TIME) and
- *	timezone (or lack thereof).
- *
- *	This also checks that a DURATION property isn't already there,
- *	and returns an error if it is. It's the caller's responsibility
- *	to remove it.
- */
-void icalcomponent_set_dtend(icalcomponent* comp, struct icaltimetype v)
-{
-    const char *tzid;
-    ICALSETUPSET(ICAL_DTEND_PROPERTY);
-
-    if (icalcomponent_get_first_property(inner,ICAL_DURATION_PROPERTY)
-	!= NULL) {
-	icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-	return;
-    }
-
-    if (prop == 0) {
-	prop = icalproperty_new_dtend(v);
-	icalcomponent_add_property(inner, prop);
-    } else {
-        icalproperty_remove_parameter_by_kind(prop, ICAL_TZID_PARAMETER);
-    }
-
-    icalproperty_set_dtend(prop,v);
-
-    if ((tzid = icaltime_get_tzid(v)) != NULL && !icaltime_is_utc(v)) {
-	icalproperty_add_parameter(prop, icalparameter_new_tzid(tzid));
-    }
-}
-
-/**	@brief Set DURATION property to given icalduration
- *
- *	This method respects the icaltime type (DATE vs DATE-TIME) and
- *	timezone (or lack thereof).
- *
- *	This also checks that a DTEND property isn't already there,
- *	and returns an error if it is. It's the caller's responsibility
- *	to remove it.
- */
-void icalcomponent_set_duration(icalcomponent* comp, 
-				struct icaldurationtype v)
-{
-    ICALSETUPSET(ICAL_DURATION_PROPERTY);
-
-    if (icalcomponent_get_first_property(inner,ICAL_DTEND_PROPERTY) != NULL) {
-	icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-	return;
-    }
-
-    if (prop == 0) {
-	prop = icalproperty_new_duration(v);
-	icalcomponent_add_property(inner, prop);
-    } else {
-	icalproperty_set_duration(prop,v);
-    }
-}
-
-/**	@brief Get DURATION property as an icalduration
- *
- *	If a DURATION property is not present but a DTEND is, we use
- *	that to determine the proper end.
- */
-struct icaldurationtype icalcomponent_get_duration(icalcomponent* comp)
-{
-    icalcomponent *inner = icalcomponent_get_inner(comp); 
-
-    icalproperty *end_prop 
-	= icalcomponent_get_first_property(inner,ICAL_DTEND_PROPERTY);
-
-    icalproperty *dur_prop 
-	= icalcomponent_get_first_property(inner,ICAL_DURATION_PROPERTY);
-
-    struct icaldurationtype ret = icaldurationtype_null_duration();
-
-    if ( dur_prop != 0 && end_prop == 0) { 
-	ret = icalproperty_get_duration(dur_prop);
-
-    } else if ( end_prop != 0 && dur_prop == 0) {
-	/**
-	 * FIXME
-	 * We assume DTSTART and DTEND are not in different time zones.
-	 * Does the standard actually guarantee this?
-	 */
-	struct icaltimetype start = 
-	    icalcomponent_get_dtstart(inner);
-	struct icaltimetype end = 
-	    icalcomponent_get_dtend(inner);
-
-	ret = icaltime_subtract(end, start);
-    } else {
-	/* Error, both duration and dtend have been specified */
-	icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-    }
-    return ret;
-}
-
-void icalcomponent_set_dtstamp(icalcomponent* comp, struct icaltimetype v)
-{
-
-    ICALSETUPSET(ICAL_DTSTAMP_PROPERTY);
-
-    if (prop == 0){
-	prop = icalproperty_new_dtstamp(v);
-	icalcomponent_add_property(inner, prop);
-    }
-    
-    icalproperty_set_dtstamp(prop,v);
-
-}
-
-
-struct icaltimetype icalcomponent_get_dtstamp(icalcomponent* comp)
-{
-    icalcomponent *inner = icalcomponent_get_inner(comp); 
-    icalproperty *prop 
-	= icalcomponent_get_first_property(inner,ICAL_DTSTAMP_PROPERTY);
-
-    if (prop == 0){
-	return icaltime_null_time();
-    }
-    
-    return icalproperty_get_dtstamp(prop);
-}
-
-
-void icalcomponent_set_summary(icalcomponent* comp, const char* v)
-{
-    ICALSETUPSET(ICAL_SUMMARY_PROPERTY)
- 
-    if (prop == 0){
-	prop = icalproperty_new_summary(v);
-	icalcomponent_add_property(inner, prop);
-    }
-    
-    icalproperty_set_summary(prop,v);
-}
-
-
-const char* icalcomponent_get_summary(icalcomponent* comp)
-{
-    icalcomponent *inner;
-    icalproperty *prop;
-    icalerror_check_arg_rz(comp!=0,"comp");
-
-    inner = icalcomponent_get_inner(comp); 
-
-    if(inner == 0){
-        icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-        return 0;
-    }
-
-    prop= icalcomponent_get_first_property(inner,ICAL_SUMMARY_PROPERTY);
-
-    if (prop == 0){
-	return 0;
-    }
-    
-    return icalproperty_get_summary(prop);
-
-}
-
-void icalcomponent_set_comment(icalcomponent* comp, const char* v)
-{
-    ICALSETUPSET(ICAL_COMMENT_PROPERTY);
-
-    if (prop == 0){
-	prop = icalproperty_new_comment(v);
-	icalcomponent_add_property(inner, prop);
-    }
-
-    icalproperty_set_summary(prop,v);
-
-}
-const char* icalcomponent_get_comment(icalcomponent* comp){
-    icalcomponent *inner;
-    icalproperty *prop;
-    icalerror_check_arg_rz(comp!=0,"comp");
-
-    inner = icalcomponent_get_inner(comp); 
-
-    if(inner == 0){
-        icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-        return 0;
-    }
-
-    prop= icalcomponent_get_first_property(inner,ICAL_COMMENT_PROPERTY);
-
-    if (prop == 0){
-	return 0;
-    }
-    
-    return icalproperty_get_comment(prop);
-}
-
-void icalcomponent_set_uid(icalcomponent* comp, const char* v)
-{
-    ICALSETUPSET(ICAL_UID_PROPERTY);
-
-    if (prop == 0){
-	prop = icalproperty_new_uid(v);
-	icalcomponent_add_property(inner, prop);
-    }
-
-    icalproperty_set_summary(prop,v);
-
-}
-const char* icalcomponent_get_uid(icalcomponent* comp){
-    icalcomponent *inner;
-    icalproperty *prop;
-    icalerror_check_arg_rz(comp!=0,"comp");
-
-    inner = icalcomponent_get_inner(comp); 
-
-    if(inner == 0){
-        icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-        return 0;
-    }
-
-    prop= icalcomponent_get_first_property(inner,ICAL_UID_PROPERTY);
-
-    if (prop == 0){
-	return 0;
-    }
-    
-    return icalproperty_get_uid(prop);
-}
-
-void icalcomponent_set_recurrenceid(icalcomponent* comp, struct icaltimetype v)
-{
-    ICALSETUPSET(ICAL_RECURRENCEID_PROPERTY);
-
-    if (prop == 0){
-        prop = icalproperty_new_recurrenceid(v);
-        icalcomponent_add_property(inner, prop);
-    }
-
-    icalproperty_set_recurrenceid(prop,v);
-}
-struct icaltimetype icalcomponent_get_recurrenceid(icalcomponent* comp)
-{
-    icalcomponent *inner;
-    icalproperty *prop;
-    if (comp == 0) {
-	icalerror_set_errno(ICAL_BADARG_ERROR);
-        return icaltime_null_time();
-    }
-
-    inner = icalcomponent_get_inner(comp); 
-
-    if(inner == 0){
-        icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-        return icaltime_null_time();
-    }
-
-    prop= icalcomponent_get_first_property(inner, ICAL_RECURRENCEID_PROPERTY);
-
-    if (prop == 0){
-        return icaltime_null_time();
-    }
-
-    return icalproperty_get_recurrenceid(prop);
-}
-
-void icalcomponent_set_description(icalcomponent* comp, const char* v)
-{
-    ICALSETUPSET(ICAL_DESCRIPTION_PROPERTY);
-
-    if (prop == 0){
-        prop = icalproperty_new_description(v);
-        icalcomponent_add_property(inner, prop);
-    }
-
-    icalproperty_set_description(prop,v);
-}
-const char* icalcomponent_get_description(icalcomponent* comp)
-{
-    icalcomponent *inner;
-    icalproperty *prop;
-    icalerror_check_arg_rz(comp!=0,"comp");
-
-    inner = icalcomponent_get_inner(comp); 
-
-    if(inner == 0){
-        icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-        return 0;
-    }
-
-    prop= icalcomponent_get_first_property(inner,ICAL_DESCRIPTION_PROPERTY);
-
-    if (prop == 0){
-        return 0;
-    }
-
-    return icalproperty_get_description(prop);
-}
-
-void icalcomponent_set_location(icalcomponent* comp, const char* v)
-{
-    ICALSETUPSET(ICAL_LOCATION_PROPERTY)
-
-    if (prop == 0){
-        prop = icalproperty_new_location(v);
-        icalcomponent_add_property(inner, prop);
-    }
-
-    icalproperty_set_location(prop,v);
-}
-const char* icalcomponent_get_location(icalcomponent* comp)
-{
-    icalcomponent *inner;
-    icalproperty *prop;
-    icalerror_check_arg_rz(comp!=0,"comp");
-
-    inner = icalcomponent_get_inner(comp); 
-
-    if(inner == 0){
-        icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-        return 0;
-    }
-
-    prop= icalcomponent_get_first_property(inner,ICAL_LOCATION_PROPERTY);
-
-    if (prop == 0){
-        return 0;
-    }
-
-    return icalproperty_get_location(prop);
-}
-
-void icalcomponent_set_sequence(icalcomponent* comp, int v)
-{
-    ICALSETUPSET(ICAL_SEQUENCE_PROPERTY);
-
-    if (prop == 0){
-        prop = icalproperty_new_sequence(v);
-        icalcomponent_add_property(inner, prop);
-    }
-
-    icalproperty_set_sequence(prop,v);
-
-}
-int icalcomponent_get_sequence(icalcomponent* comp){
-    icalcomponent *inner;
-    icalproperty *prop;
-    icalerror_check_arg_rz(comp!=0,"comp");
-
-    inner = icalcomponent_get_inner(comp);
-
-    if(inner == 0){
-        icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-        return 0;
-    }
-
-    prop= icalcomponent_get_first_property(inner,ICAL_SEQUENCE_PROPERTY);
-
-    if (prop == 0){
-        return 0;
-    }
-
-    return icalproperty_get_sequence(prop);
-}
-
-
-void icalcomponent_set_status(icalcomponent* comp, enum icalproperty_status v)
-{
-    ICALSETUPSET(ICAL_STATUS_PROPERTY);
-
-    if (prop == 0){
-        prop = icalproperty_new_status(v);
-        icalcomponent_add_property(inner, prop);
-    }
-
-    icalproperty_set_status(prop,v);
-
-}
-enum icalproperty_status icalcomponent_get_status(icalcomponent* comp){
-    icalcomponent *inner;
-    icalproperty *prop;
-    icalerror_check_arg_rz(comp!=0,"comp");
-
-    inner = icalcomponent_get_inner(comp);
-
-    if(inner == 0){
-        icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-        return 0;
-    }
-
-    prop= icalcomponent_get_first_property(inner,ICAL_STATUS_PROPERTY);
-
-    if (prop == 0){
-        return 0;
-    }
-
-    return icalproperty_get_status(prop);
-}
-
-icalcomponent* icalcomponent_new_vcalendar()
-{
-    return icalcomponent_new(ICAL_VCALENDAR_COMPONENT);
-}
-icalcomponent* icalcomponent_new_vevent()
-{
-    return icalcomponent_new(ICAL_VEVENT_COMPONENT);
-}
-icalcomponent* icalcomponent_new_vtodo()
-{
-    return icalcomponent_new(ICAL_VTODO_COMPONENT);
-}
-icalcomponent* icalcomponent_new_vjournal()
-{
-    return icalcomponent_new(ICAL_VJOURNAL_COMPONENT);
-}
-icalcomponent* icalcomponent_new_valarm()
-{
-    return icalcomponent_new(ICAL_VALARM_COMPONENT);
-}
-icalcomponent* icalcomponent_new_vfreebusy()
-{
-    return icalcomponent_new(ICAL_VFREEBUSY_COMPONENT);
-}
-icalcomponent* icalcomponent_new_vtimezone()
-{
-    return icalcomponent_new(ICAL_VTIMEZONE_COMPONENT);
-}
-icalcomponent* icalcomponent_new_xstandard()
-{
-    return icalcomponent_new(ICAL_XSTANDARD_COMPONENT);
-}
-icalcomponent* icalcomponent_new_xdaylight()
-{
-    return icalcomponent_new(ICAL_XDAYLIGHT_COMPONENT);
-}
-icalcomponent* icalcomponent_new_vagenda()
-{
-    return icalcomponent_new(ICAL_VAGENDA_COMPONENT);
-}
-icalcomponent* icalcomponent_new_vquery()
-{
-    return icalcomponent_new(ICAL_VQUERY_COMPONENT);
-}
-
-/*
- * Timezone stuff.
- */
-
-
-/**
- *  This takes 2 VCALENDAR components and merges the second one into the first,
- *  resolving any problems with conflicting TZIDs. comp_to_merge will no
- *  longer exist after calling this function.
- */
-void icalcomponent_merge_component(icalcomponent* comp,
-				   icalcomponent* comp_to_merge)
-{
-  icalcomponent *subcomp, *next_subcomp;
-  icalarray *tzids_to_rename;
-  unsigned int i;
-
-  /* Check that both components are VCALENDAR components. */
-  assert (icalcomponent_isa(comp) == ICAL_VCALENDAR_COMPONENT);
-  assert (icalcomponent_isa(comp_to_merge) == ICAL_VCALENDAR_COMPONENT);
-
-  /* Step through each subcomponent of comp_to_merge, looking for VTIMEZONEs.
-     For each VTIMEZONE found, check if we need to add it to comp and if we
-     need to rename it and all TZID references to it. */
-  tzids_to_rename = icalarray_new (sizeof (char*), 16);
-  subcomp = icalcomponent_get_first_component (comp_to_merge,
-					       ICAL_VTIMEZONE_COMPONENT);
-  while (subcomp) {
-    next_subcomp = icalcomponent_get_next_component (comp_to_merge,
-						     ICAL_VTIMEZONE_COMPONENT);
-    /* This will add the VTIMEZONE to comp, if necessary, and also update
-       the array of TZIDs we need to rename. */
-    icalcomponent_merge_vtimezone (comp, subcomp, tzids_to_rename);
-    /* FIXME: Handle possible NEWFAILED error. */
-
-    subcomp = next_subcomp;
-  }
-
-  /* If we need to do any renaming of TZIDs, do it now. */
-  if (tzids_to_rename->num_elements != 0) {
-    icalcomponent_rename_tzids (comp_to_merge, tzids_to_rename);
-      
-    /* Now free the tzids_to_rename array. */
-    for (i = 0; i < tzids_to_rename->num_elements; i++) {
-      free (icalarray_element_at (tzids_to_rename, i));
-    }
-    icalarray_free (tzids_to_rename);
-  }
-
-  /* Now move all the components from comp_to_merge to comp, excluding
-     VTIMEZONE components. */
-  subcomp = icalcomponent_get_first_component (comp_to_merge,
-					       ICAL_ANY_COMPONENT);
-  while (subcomp) {
-    next_subcomp = icalcomponent_get_next_component (comp_to_merge,
-						     ICAL_ANY_COMPONENT);
-    if (icalcomponent_isa(subcomp) != ICAL_VTIMEZONE_COMPONENT) {
-      icalcomponent_remove_component (comp_to_merge, subcomp);
-      icalcomponent_add_component (comp, subcomp);
-    }
-    subcomp = next_subcomp;
-  }
-
-  /* Free comp_to_merge. We have moved most of the subcomponents over to
-     comp now. */
-  icalcomponent_free (comp_to_merge);
-}
-
-
-static void icalcomponent_merge_vtimezone (icalcomponent *comp,
-					   icalcomponent *vtimezone,
-					   icalarray *tzids_to_rename)
-{
-  icalproperty *tzid_prop;
-  const char *tzid;
-  char *tzid_copy;
-  icaltimezone *existing_vtimezone;
-
-  /* Get the TZID of the VTIMEZONE. */
-  tzid_prop = icalcomponent_get_first_property (vtimezone, ICAL_TZID_PROPERTY);
-  if (!tzid_prop)
-    return;
-
-  tzid = icalproperty_get_tzid (tzid_prop);
-  if (!tzid)
-    return;
-
-  /* See if there is already a VTIMEZONE in comp with the same TZID. */
-  existing_vtimezone = icalcomponent_get_timezone (comp, tzid);
-
-  /* If there is no existing VTIMEZONE with the same TZID, we can just move
-     the VTIMEZONE to comp and return. */
-  if (!existing_vtimezone) {
-    icalcomponent_remove_component (icalcomponent_get_parent (vtimezone),
-				    vtimezone);
-    icalcomponent_add_component (comp, vtimezone);
-    return;
-  }
-
-  /* If the TZID has a '/' prefix, then we don't have to worry about the
-     clashing TZIDs, as they are supposed to be exactly the same VTIMEZONE. */
-  if (tzid[0] == '/')
-    return;
-
-  /* Now we have two VTIMEZONEs with the same TZID (which isn't a globally
-     unique one), so we compare the VTIMEZONE components to see if they are
-     the same. If they are, we don't need to do anything. We make a copy of
-     the tzid, since the parameter may get modified in these calls. */
-  tzid_copy = strdup (tzid);
-  if (!tzid_copy) {
-    icalerror_set_errno(ICAL_NEWFAILED_ERROR);
-    return;
-  }
-
-  if (!icalcomponent_compare_vtimezones (comp, vtimezone)) {
-    /* FIXME: Handle possible NEWFAILED error. */
-
-    /* Now we have two different VTIMEZONEs with the same TZID. */
-    icalcomponent_handle_conflicting_vtimezones (comp, vtimezone, tzid_prop,
-						 tzid_copy, tzids_to_rename);
-  }
-  free (tzid_copy);
-}
-
-
-static void
-icalcomponent_handle_conflicting_vtimezones (icalcomponent *comp,
-					     icalcomponent *vtimezone,
-					     icalproperty *tzid_prop,
-					     const char *tzid,
-					     icalarray *tzids_to_rename)
-{
-  int i, suffix, max_suffix = 0, num_elements;
-  unsigned int tzid_len;
-  char *tzid_copy, *new_tzid, suffix_buf[32];
-  (void)tzid_prop; /* hack to stop unused variable warning */
-
-  /* Find the length of the TZID without any trailing digits. */
-  tzid_len = icalcomponent_get_tzid_prefix_len (tzid);
-
-  /* Step through each of the VTIMEZONEs in comp. We may already have the
-     clashing VTIMEZONE in the calendar, but it may have been renamed
-     (i.e. a unique number added on the end of the TZID, e.g. 'London2').
-     So we compare the new VTIMEZONE with any VTIMEZONEs that have the
-     same prefix (e.g. 'London'). If it matches any of those, we have to
-     rename the TZIDs to that TZID, else we rename to a new TZID, using
-     the biggest numeric suffix found + 1. */
-  num_elements = comp->timezones ? comp->timezones->num_elements : 0;
-  for (i = 0; i < num_elements; i++) {
-    icaltimezone *zone;
-    const char *existing_tzid;
-    const char *existing_tzid_copy;
-    unsigned int existing_tzid_len;
-
-    zone = icalarray_element_at (comp->timezones, i);
-    existing_tzid = icaltimezone_get_tzid (zone);
-
-    /* Find the length of the TZID without any trailing digits. */
-    existing_tzid_len = icalcomponent_get_tzid_prefix_len (existing_tzid);
-
-    /* Check if we have the same prefix. */
-    if (tzid_len == existing_tzid_len
-	&& !strncmp (tzid, existing_tzid, tzid_len)) {
-      /* Compare the VTIMEZONEs. */
-      if (icalcomponent_compare_vtimezones (icaltimezone_get_component (zone),
-					    vtimezone)) {
-	/* The VTIMEZONEs match, so we can use the existing VTIMEZONE. But
-	   we have to rename TZIDs to this TZID. */
-	tzid_copy = strdup (tzid);
-	existing_tzid_copy = strdup (existing_tzid);
-	if (!tzid_copy || !existing_tzid_copy) {
-	  icalerror_set_errno(ICAL_NEWFAILED_ERROR);
-	} else {
-	  icalarray_append (tzids_to_rename, tzid_copy);
-	  icalarray_append (tzids_to_rename, existing_tzid_copy);
-	}
-	return;
-      } else {
-	/* FIXME: Handle possible NEWFAILED error. */
-
-	/* Convert the suffix to an integer and remember the maximum numeric
-	   suffix found. */
-	suffix = atoi (existing_tzid + existing_tzid_len);
-	if (max_suffix < suffix)
-	  max_suffix = suffix;
-      }
-    }
-  }
-
-  /* We didn't find a VTIMEZONE that matched, so we have to rename the TZID,
-     using the maximum numerical suffix found + 1. */
-  tzid_copy = strdup (tzid);
-  snprintf (suffix_buf, sizeof(suffix_buf), "%i", max_suffix + 1);
-  new_tzid = malloc (tzid_len + strlen (suffix_buf) + 1);
-  if (!new_tzid || !tzid_copy) {
-    icalerror_set_errno(ICAL_NEWFAILED_ERROR);
-    return;
-  }
-
-  strncpy (new_tzid, tzid, tzid_len);
-  strcpy (new_tzid + tzid_len, suffix_buf);
-  icalarray_append (tzids_to_rename, tzid_copy);
-  icalarray_append (tzids_to_rename, new_tzid);
-}
-
-
-/* Returns the length of the TZID, without any trailing digits. */
-static unsigned int icalcomponent_get_tzid_prefix_len (const char *tzid)
-{
-  int len;
-  const char *p;
-
-  len = strlen (tzid);
-  p = tzid + len - 1;
-  while (len > 0 && *p >= '0' && *p <= '9') {
-    p--;
-    len--;
-  }
-
-  return len;
-}
-
-
-/**
- * Renames all references to the given TZIDs to a new name. rename_table
- * contains pairs of strings - a current TZID, and the new TZID to rename it
- * to.
- */
-static void icalcomponent_rename_tzids(icalcomponent* comp,
-				       icalarray* rename_table)
-{
-    icalcomponent_foreach_tzid (comp, icalcomponent_rename_tzids_callback,
-				rename_table);
-}
-
-
-static void icalcomponent_rename_tzids_callback(icalparameter *param, void *data)
-{
-    icalarray *rename_table = data;
-    const char *tzid;
-    int i;
-
-    tzid = icalparameter_get_tzid (param);
-    if (!tzid)
-        return;
-
-    /* Step through the rename table to see if the current TZID matches
-       any of the ones we want to rename. */
-    for (i = 0; (unsigned int)i < rename_table->num_elements - 1; i += 2) {
-        if (!strcmp (tzid, icalarray_element_at (rename_table, i))) {
-	    icalparameter_set_tzid (param, icalarray_element_at (rename_table, i + 1));
-	    break;
-	}
-    }
-}
-
-
-/**
- * Calls the given function for each TZID parameter found in the component.
- */
-void icalcomponent_foreach_tzid(icalcomponent* comp,
-				void (*callback)(icalparameter *param, void *data),
-				void *callback_data)
-{
-    icalproperty *prop;
-    icalproperty_kind kind;
-    icalparameter *param;
-    icalcomponent *subcomp;
-
-    /* First look for any TZID parameters used in this component itself. */
-    prop = icalcomponent_get_first_property (comp, ICAL_ANY_PROPERTY);
-    while (prop) {
-      kind = icalproperty_isa (prop);
-
-      /* These are the only properties that can have a TZID. Note that
-	 COMPLETED, CREATED, DTSTAMP & LASTMODIFIED must be in UTC. */
-      if (kind == ICAL_DTSTART_PROPERTY || kind == ICAL_DTEND_PROPERTY
-	  || kind == ICAL_DUE_PROPERTY || kind == ICAL_EXDATE_PROPERTY
-	  || kind == ICAL_RDATE_PROPERTY) {
-	param = icalproperty_get_first_parameter (prop, ICAL_TZID_PARAMETER);
-	if (param)
-	    (*callback) (param, callback_data);
-      }
-
-      prop = icalcomponent_get_next_property (comp, ICAL_ANY_PROPERTY);
-    }
-
-    /* Now recursively check child components. */
-    subcomp = icalcomponent_get_first_component (comp, ICAL_ANY_COMPONENT);
-    while (subcomp) {
-        icalcomponent_foreach_tzid (subcomp, callback, callback_data);
-        subcomp = icalcomponent_get_next_component (comp, ICAL_ANY_COMPONENT);
-    }
-}
-
-
-
-/**
- *  Returns the icaltimezone from the component corresponding to the given
- *  TZID, or NULL if the component does not have a corresponding VTIMEZONE.
- */
-icaltimezone* icalcomponent_get_timezone(icalcomponent* comp, const char *tzid)
-{
-    icaltimezone *zone;
-    int lower, upper, middle, cmp;
-    const char *zone_tzid;
-
-    if (!comp->timezones)
-	return NULL;
-
-    /* Sort the array if necessary (by the TZID string). */
-    if (!comp->timezones_sorted) {
-	icalarray_sort (comp->timezones, icalcomponent_compare_timezone_fn);
-	comp->timezones_sorted = 1;
-    }
-
-    /* Do a simple binary search. */
-    lower = middle = 0;
-    upper = comp->timezones->num_elements;
-
-    while (lower < upper) {
-	middle = (lower + upper) >> 1;
-	zone = icalarray_element_at (comp->timezones, middle);
-	zone_tzid = icaltimezone_get_tzid (zone);
-	cmp = strcmp (tzid, zone_tzid);
-	if (cmp == 0)
-	    return zone;
-	else if (cmp < 0)
-	    upper = middle;
-	else
-	    lower = middle + 1;
-    }
-
-    return NULL;
-}
-
-
-/**
- * A function to compare 2 icaltimezone elements, used for qsort().
- */
-static int icalcomponent_compare_timezone_fn	(const void	*elem1,
-						 const void	*elem2)
-{
-    icaltimezone *zone1, *zone2;
-    const char *zone1_tzid, *zone2_tzid;
-
-    zone1 = (icaltimezone*) elem1;
-    zone2 = (icaltimezone*) elem2;
-
-    zone1_tzid = icaltimezone_get_tzid (zone1);
-    zone2_tzid = icaltimezone_get_tzid (zone2);
-
-    return strcmp (zone1_tzid, zone2_tzid);
-}
-
-
-/**
- * Compares 2 VTIMEZONE components to see if they match, ignoring their TZIDs.
- * It returns 1 if they match, 0 if they don't, or -1 on error.
- */
-static int icalcomponent_compare_vtimezones (icalcomponent	*vtimezone1,
-					     icalcomponent	*vtimezone2)
-{
-    icalproperty *prop1, *prop2;
-    const char *tzid1, *tzid2;
-    char *tzid2_copy, *string1, *string2;
-    int cmp;
-
-    /* Get the TZID property of the first VTIMEZONE. */
-    prop1 = icalcomponent_get_first_property (vtimezone1, ICAL_TZID_PROPERTY);
-    if (!prop1)
-	return -1;
-
-    tzid1 = icalproperty_get_tzid (prop1);
-    if (!tzid1)
-	return -1;
-
-    /* Get the TZID property of the second VTIMEZONE. */
-    prop2 = icalcomponent_get_first_property (vtimezone2, ICAL_TZID_PROPERTY);
-    if (!prop2)
-	return -1;
-
-    tzid2 = icalproperty_get_tzid (prop2);
-    if (!tzid2)
-	return -1;
-
-    /* Copy the second TZID, and set the property to the same as the first
-       TZID, since we don't care if these match of not. */
-    tzid2_copy = strdup (tzid2);
-    if (!tzid2_copy) {
-      icalerror_set_errno (ICAL_NEWFAILED_ERROR);
-      return 0;
-    }
-
-    icalproperty_set_tzid (prop2, tzid1);
-
-    /* Now convert both VTIMEZONEs to strings and compare them. */
-    string1 = icalcomponent_as_ical_string (vtimezone1);
-    if (!string1) {
-	free (tzid2_copy);
-	return -1;
-    }
-
-    string2 = icalcomponent_as_ical_string (vtimezone2);
-    if (!string2) {
-	free (string1);
-	free (tzid2_copy);
-	return -1;
-    }
-
-    cmp = strcmp (string1, string2);
-
-    free (string1);
-    free (string2);
-
-    /* Now reset the second TZID. */
-    icalproperty_set_tzid (prop2, tzid2_copy);
-    free (tzid2_copy);
-
-    return (cmp == 0) ? 1 : 0;
-}
-
-
-
-
-
-
-/** 
- * @brief set the RELCALID property of a component.
- *
- * @param comp    Valid calendar component.
- * @param v       Relcalid URL value
- */
-
-void icalcomponent_set_relcalid(icalcomponent* comp, const char* v)
-{
-  ICALSETUPSET(ICAL_RELCALID_PROPERTY);
-
-  if (prop == 0){
-    prop = icalproperty_new_relcalid(v);
-    icalcomponent_add_property(inner, prop);
-  }
-
-  icalproperty_set_relcalid(prop,v);
-
-}
-
-
-/** 
- * @brief get the RELCALID property of a component.
- *
- * @param comp    Valid calendar component.
- */
-
-const char* icalcomponent_get_relcalid(icalcomponent* comp){
-    icalcomponent *inner;
-    icalproperty *prop;
-    icalerror_check_arg_rz(comp!=0,"comp");
-
-    inner = icalcomponent_get_inner(comp);
-
-    if(inner == 0){
-        return 0;
-    }
-
-    prop= icalcomponent_get_first_property(inner,ICAL_RELCALID_PROPERTY);
-
-    if (prop == 0){
-        return 0;
-    }
-
-    return icalproperty_get_relcalid(prop);
-}
-
-
-/** @brief Return the time a TODO task is DUE.
- *
- *  @param comp Valid calendar component.
- *
- *  Uses the DUE: property if it exists, otherwise we calculate the DUE
- *  value by adding the task's duration to the DTSTART time
- */
-
-struct icaltimetype icalcomponent_get_due(icalcomponent* comp)
-{
-    icalcomponent *inner = icalcomponent_get_inner(comp);
-
-    icalproperty *due_prop
-        = icalcomponent_get_first_property(inner,ICAL_DUE_PROPERTY);
-
-    icalproperty *dur_prop
-        = icalcomponent_get_first_property(inner, ICAL_DURATION_PROPERTY);
-
-    if( due_prop == 0 && dur_prop == 0){
-        return icaltime_null_time();
-    } else if ( due_prop != 0) {
-        return icalproperty_get_due(due_prop);
-    } else if ( dur_prop != 0) {
-
-        struct icaltimetype start =
-            icalcomponent_get_dtstart(inner);
-        struct icaldurationtype duration =
-            icalproperty_get_duration(dur_prop);
-
-        struct icaltimetype due = icaltime_add(start,duration);
-
-        return due;
-
-    } else {
-        /* Error, both duration and due have been specified */
-        icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-        return icaltime_null_time();
-
-    }
-
-}
-
-/** @brief Set the due date of a VTODO task.
- *
- *  @param comp Valid VTODO component.
- *  @param v    Valid due date time.
- *
- *  - If no duration or due properties then set the DUE property.
- *  - If a DUE property is already set, then reset it to the value v.
- *  - If a DURATION property is already set, then calculate the new
- *    duration based on the supplied value of v.
- */
-
-void icalcomponent_set_due(icalcomponent* comp, struct icaltimetype v)
-{
-    icalcomponent *inner = icalcomponent_get_inner(comp);
-
-    icalproperty *due_prop
-        = icalcomponent_get_first_property(inner,ICAL_DUE_PROPERTY);
-
-    icalproperty *dur_prop
-        = icalcomponent_get_first_property(inner,ICAL_DURATION_PROPERTY);
-
-
-    if( due_prop == 0 && dur_prop == 0){
-        due_prop = icalproperty_new_due(v);
-        icalcomponent_add_property(inner,due_prop);
-    } else if ( due_prop != 0) {
-        icalproperty_set_due(due_prop,v);
-    } else if ( dur_prop != 0) {
-        struct icaltimetype start =
-            icalcomponent_get_dtstart(inner);
-
-        struct icaltimetype due =
-            icalcomponent_get_due(inner);
-
-        struct icaldurationtype dur
-            = icaltime_subtract(due,start);
-
-        icalproperty_set_duration(dur_prop,dur);
-
-    } else {
-        /* Error, both duration and due have been specified */
-        icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-    }
-}
diff --git a/libkcal/libical/src/libical/icalcomponent.h b/libkcal/libical/src/libical/icalcomponent.h
deleted file mode 100644
index ae8a5d32..00000000
--- a/libkcal/libical/src/libical/icalcomponent.h
+++ /dev/null
@@ -1,283 +0,0 @@
-/* -*- Mode: C -*- */
-/*======================================================================
- FILE: icalcomponent.h
- CREATOR: eric 20 March 1999
-
-
- (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
-     http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-  The original code is icalcomponent.h
-
-======================================================================*/
-
-#ifndef ICALCOMPONENT_H
-#define ICALCOMPONENT_H
-
-#include "icalproperty.h"
-#include "icalvalue.h"
-#include "icalenums.h" /* defines icalcomponent_kind */
-#include "pvl.h"
-
-typedef struct icalcomponent_impl icalcomponent;
-
-#ifndef ICALTIMEZONE_DEFINED
-#define ICALTIMEZONE_DEFINED
-/** @brief An opaque struct representing a timezone.  
- * We declare this here to avoid a circular dependancy. 
- */
-typedef struct _icaltimezone		icaltimezone;
-#endif
-
-
-/* This is exposed so that callers will not have to allocate and
-   deallocate iterators. Pretend that you can't see it. */
-typedef struct icalcompiter
-{
-	icalcomponent_kind kind;
-	pvl_elem iter;
-
-} icalcompiter;
-
-icalcomponent* icalcomponent_new(icalcomponent_kind kind);
-icalcomponent* icalcomponent_new_clone(icalcomponent* component);
-icalcomponent* icalcomponent_new_from_string(char* str);
-icalcomponent* icalcomponent_vanew(icalcomponent_kind kind, ...);
-void icalcomponent_free(icalcomponent* component);
-
-char* icalcomponent_as_ical_string(icalcomponent* component);
-
-int icalcomponent_is_valid(icalcomponent* component);
-
-icalcomponent_kind icalcomponent_isa(const icalcomponent* component);
-
-int icalcomponent_isa_component (void* component);
-
-/* 
- * Working with properties
- */
-
-void icalcomponent_add_property(icalcomponent* component,
-				icalproperty* property);
-
-void icalcomponent_remove_property(icalcomponent* component,
-				   icalproperty* property);
-
-int icalcomponent_count_properties(icalcomponent* component,
-				   icalproperty_kind kind);
-
-/* Iterate through the properties */
-icalproperty* icalcomponent_get_current_property(icalcomponent* component);
-
-icalproperty* icalcomponent_get_first_property(icalcomponent* component,
-					      icalproperty_kind kind);
-icalproperty* icalcomponent_get_next_property(icalcomponent* component,
-					      icalproperty_kind kind);
-
-
-/* 
- * Working with components
- */ 
-
-
-/* Return the first VEVENT, VTODO or VJOURNAL sub-component of cop, or
-   comp if it is one of those types */
-
-icalcomponent* icalcomponent_get_inner(icalcomponent* comp);
-
-
-void icalcomponent_add_component(icalcomponent* parent,
-				icalcomponent* child);
-
-void icalcomponent_remove_component(icalcomponent* parent,
-				icalcomponent* child);
-
-int icalcomponent_count_components(icalcomponent* component,
-				   icalcomponent_kind kind);
-
-/**
-   This takes 2 VCALENDAR components and merges the second one into the first,
-   resolving any problems with conflicting TZIDs. comp_to_merge will no
-   longer exist after calling this function. */
-void icalcomponent_merge_component(icalcomponent* comp,
-				   icalcomponent* comp_to_merge);
-
-
-/* Iteration Routines. There are two forms of iterators, internal and
-external. The internal ones came first, and are almost completely
-sufficient, but they fail badly when you want to construct a loop that
-removes components from the container.*/
-
-
-/* Iterate through components */
-icalcomponent* icalcomponent_get_current_component (icalcomponent* component);
-
-icalcomponent* icalcomponent_get_first_component(icalcomponent* component,
-					      icalcomponent_kind kind);
-icalcomponent* icalcomponent_get_next_component(icalcomponent* component,
-					      icalcomponent_kind kind);
-
-/* Using external iterators */
-icalcompiter icalcomponent_begin_component(icalcomponent* component,
-					   icalcomponent_kind kind);
-icalcompiter icalcomponent_end_component(icalcomponent* component,
-					 icalcomponent_kind kind);
-icalcomponent* icalcompiter_next(icalcompiter* i);
-icalcomponent* icalcompiter_prior(icalcompiter* i);
-icalcomponent* icalcompiter_deref(icalcompiter* i);
-
-
-/* Working with embedded error properties */
-
-
-/* Check the component against itip rules and insert error properties*/
-/* Working with embedded error properties */
-int icalcomponent_check_restrictions(icalcomponent* comp);
-
-/** Count embedded errors. */
-int icalcomponent_count_errors(icalcomponent* component);
-
-/** Remove all X-LIC-ERROR properties*/
-void icalcomponent_strip_errors(icalcomponent* component);
-
-/** Convert some X-LIC-ERROR properties into RETURN-STATUS properties*/
-void icalcomponent_convert_errors(icalcomponent* component);
-
-/* Internal operations. They are private, and you should not be using them. */
-icalcomponent* icalcomponent_get_parent(icalcomponent* component);
-void icalcomponent_set_parent(icalcomponent* component, 
-			      icalcomponent* parent);
-
-/* Kind conversion routines */
-
-int icalcomponent_kind_is_valid(const icalcomponent_kind kind);
-
-icalcomponent_kind icalcomponent_string_to_kind(const char* string);
-
-const char* icalcomponent_kind_to_string(icalcomponent_kind kind);
-
-
-/************* Derived class methods.  ****************************
-
-If the code was in an OO language, the remaining routines would be
-members of classes derived from icalcomponent. Don't call them on the
-wrong component subtypes. */
-
-/** For VCOMPONENT: Return a reference to the first VEVENT, VTODO or
-   VJOURNAL */
-icalcomponent* icalcomponent_get_first_real_component(icalcomponent *c);
-
-/** For VEVENT, VTODO, VJOURNAL and VTIMEZONE: report the start and end
-   times of an event in UTC */
-struct icaltime_span icalcomponent_get_span(icalcomponent* comp);
-
-/******************** Convienience routines **********************/
-
-void icalcomponent_set_dtstart(icalcomponent* comp, struct icaltimetype v);
-struct icaltimetype icalcomponent_get_dtstart(icalcomponent* comp);
-
-/* For the icalcomponent routines only, dtend and duration are tied
-   together. If you call the set routine for one and the other exists,
-   the routine will calculate the change to the other. That is, if
-   there is a DTEND and you call set_duration, the routine will modify
-   DTEND to be the sum of DTSTART and the duration. If you call a get
-   routine for one and the other exists, the routine will calculate
-   the return value. If you call a set routine and neither exists, the
-   routine will create the apcompriate comperty */
-
-
-struct icaltimetype icalcomponent_get_dtend(icalcomponent* comp);
-void icalcomponent_set_dtend(icalcomponent* comp, struct icaltimetype v);
-
-struct icaltimetype icalcomponent_get_due(icalcomponent* comp);
-void icalcomponent_set_due(icalcomponent* comp, struct icaltimetype v);
-
-void icalcomponent_set_duration(icalcomponent* comp, 
-				struct icaldurationtype v);
-struct icaldurationtype icalcomponent_get_duration(icalcomponent* comp);
-
-void icalcomponent_set_method(icalcomponent* comp, icalproperty_method method);
-icalproperty_method icalcomponent_get_method(icalcomponent* comp);
-
-struct icaltimetype icalcomponent_get_dtstamp(icalcomponent* comp);
-void icalcomponent_set_dtstamp(icalcomponent* comp, struct icaltimetype v);
-
-void icalcomponent_set_summary(icalcomponent* comp, const char* v);
-const char* icalcomponent_get_summary(icalcomponent* comp);
-
-void icalcomponent_set_comment(icalcomponent* comp, const char* v);
-const char* icalcomponent_get_comment(icalcomponent* comp);
-
-void icalcomponent_set_uid(icalcomponent* comp, const char* v);
-const char* icalcomponent_get_uid(icalcomponent* comp);
-
-void icalcomponent_set_relcalid(icalcomponent* comp, const char* v);
-const char* icalcomponent_get_relcalid(icalcomponent* comp);
-
-void icalcomponent_set_recurrenceid(icalcomponent* comp, 
-				    struct icaltimetype v);
-struct icaltimetype icalcomponent_get_recurrenceid(icalcomponent* comp);
-
-void icalcomponent_set_description(icalcomponent* comp, const char* v);
-const char* icalcomponent_get_description(icalcomponent* comp);
-
-void icalcomponent_set_location(icalcomponent* comp, const char* v);
-const char* icalcomponent_get_location(icalcomponent* comp);
-
-void icalcomponent_set_sequence(icalcomponent* comp, int v);
-int icalcomponent_get_sequence(icalcomponent* comp);
-
-void icalcomponent_set_status(icalcomponent* comp, enum icalproperty_status v);
-enum icalproperty_status icalcomponent_get_status(icalcomponent* comp);
-
-
-/** Calls the given function for each TZID parameter found in the
-    component, and any subcomponents. */
-void icalcomponent_foreach_tzid(icalcomponent* comp,
-				void (*callback)(icalparameter *param, void *data),
-				void *callback_data);
-
-/** Returns the icaltimezone in the component corresponding to the
-    TZID, or NULL if it can't be found. */
-icaltimezone* icalcomponent_get_timezone(icalcomponent* comp,
-					 const char *tzid);
-
-int icalproperty_recurrence_is_excluded(icalcomponent *comp,
-                                       struct icaltimetype *dtstart,
-                                       struct icaltimetype *recurtime); 
-
-void icalcomponent_foreach_recurrence(icalcomponent* comp,
-				      struct icaltimetype start,
-				      struct icaltimetype end,
-			void (*callback)(icalcomponent *comp, 
-                                         struct icaltime_span *span, 
-                                         void *data),
-			      void *callback_data);
-
-
-/*************** Type Specific routines ***************/
-
-icalcomponent* icalcomponent_new_vcalendar();
-icalcomponent* icalcomponent_new_vevent();
-icalcomponent* icalcomponent_new_vtodo();
-icalcomponent* icalcomponent_new_vjournal();
-icalcomponent* icalcomponent_new_valarm();
-icalcomponent* icalcomponent_new_vfreebusy();
-icalcomponent* icalcomponent_new_vtimezone();
-icalcomponent* icalcomponent_new_xstandard();
-icalcomponent* icalcomponent_new_xdaylight();
-icalcomponent* icalcomponent_new_vagenda();
-icalcomponent* icalcomponent_new_vquery();
-
-#endif /* !ICALCOMPONENT_H */
diff --git a/libkcal/libical/src/libical/icalderivedparameter.c.in b/libkcal/libical/src/libical/icalderivedparameter.c.in
deleted file mode 100644
index db112be6..00000000
--- a/libkcal/libical/src/libical/icalderivedparameter.c.in
+++ /dev/null
@@ -1,205 +0,0 @@
-/* -*- Mode: C -*-
-  ======================================================================
-  FILE: icalderivedparameters.{c,h}
-  CREATOR: eric 09 May 1999
-  
-    
-
- (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-  The original code is icalderivedparameters.{c,h}
-
-  Contributions from:
-     Graham Davison (g.m.davison@computer.org)
-
- ======================================================================*/
-/*#line 29 "icalparameter.c.in"*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-
-#include "icalparameter.h"
-#include "icalparameterimpl.h"
-
-#include "icalproperty.h"
-#include "icalerror.h"
-#include "icalmemory.h"
-
-#include <stdlib.h> /* for malloc() */
-#include <errno.h>
-#include <string.h> /* for memset() */
-
-icalvalue_kind icalparameter_value_to_value_kind(icalparameter_value value);
-
-struct icalparameter_impl* icalparameter_new_impl(icalparameter_kind kind);
-
-/* This map associates each of the parameters with the string
-   representation of the parameter's name */
-struct icalparameter_kind_map {
-    icalparameter_kind kind;
-    const char *name;
-    
-};
-
-/* This map associates the enumerations for the VALUE parameter with
-   the kinds of VALUEs. */
-
-struct icalparameter_value_kind_map {
-    icalparameter_value value; 
-    icalvalue_kind kind; 
-};
-
-/* This map associates the parameter enumerations with a specific parameter and the string representation of the enumeration */
-
-struct icalparameter_map {
-    icalparameter_kind kind;
-    int enumeration;
-    const char* str;
-};
-
-
-
-<insert_code_here>
-
-const char* icalparameter_kind_to_string(icalparameter_kind kind)
-{
-    int i;
-
-    for (i=0; parameter_map[i].kind != ICAL_NO_PARAMETER; i++) {
-	if (parameter_map[i].kind == kind) {
-	    return parameter_map[i].name;
-	}
-    }
-
-    return 0;
-
-}
-
-icalparameter_kind icalparameter_string_to_kind(const char* string)
-{
-    int i;
-
-    if (string ==0 ) { 
-	return ICAL_NO_PARAMETER;
-    }
-
-    for (i=0; parameter_map[i].kind  != ICAL_NO_PARAMETER; i++) {
-
-	if (strcasecmp(parameter_map[i].name, string) == 0) {
-	    return parameter_map[i].kind;
-	}
-    }
-
-    if(strncmp(string,"X-",2)==0){
-	return ICAL_X_PARAMETER;
-    }
-
-    return ICAL_NO_PARAMETER;
-}
-
-
-icalvalue_kind icalparameter_value_to_value_kind(icalparameter_value value)
-{
-    int i;
-
-    for (i=0; value_kind_map[i].kind  != ICAL_NO_VALUE; i++) {
-
-	if (value_kind_map[i].value == value) {
-	    return value_kind_map[i].kind;
-	}
-    }
-
-    return ICAL_NO_VALUE;
-}
-
-
-const char* icalparameter_enum_to_string(int e) 
-{
-    int i;
-
-    icalerror_check_arg_rz(e >= ICALPARAMETER_FIRST_ENUM,"e");
-    icalerror_check_arg_rz(e <= ICALPARAMETER_LAST_ENUM,"e");
-
-    for (i=0; icalparameter_map[i].kind != ICAL_NO_PARAMETER; i++){
-        if(e == icalparameter_map[i].enumeration){
-            return icalparameter_map[i].str;
-        }
-    }
-
-    return 0;
-}
-
-int icalparameter_string_to_enum(const char* str)
-{
-    int i;
-
-    icalerror_check_arg_rz(str != 0,"str");
-
-    for (i=0; icalparameter_map[i].kind != ICAL_NO_PARAMETER; i++){
-        if(strcasecmp(str,icalparameter_map[i].str) == 0) {
-            return icalparameter_map[i].enumeration;
-        }
-    }
-
-    return 0;
-}
-
-icalparameter* icalparameter_new_from_value_string(icalparameter_kind kind,const  char* val)
-{
-
-    struct icalparameter_impl* param=0;
-    int found_kind = 0;
-    int i;
-
-    icalerror_check_arg_rz((val!=0),"val");
-
-    /* Search through the parameter map to find a matching kind */
-
-    param = icalparameter_new_impl(kind);
-    if (!param)
-	return 0;
-
-    for (i=0; icalparameter_map[i].kind != ICAL_NO_PARAMETER; i++){
-        if(kind == icalparameter_map[i].kind) {
-            found_kind = 1;
-            if(strcasecmp(val,icalparameter_map[i].str) == 0) {
-
-                param->data = (int)icalparameter_map[i].enumeration;
-                return param;
-            }
-        }
-    }
-    
-    if(found_kind == 1){
-        /* The kind was in the parameter map, but the string did not
-           match, so assume that it is an alternate value, like an
-           X-value.*/
-        
-        icalparameter_set_xvalue(param, val);
-
-    } else {
- 
-        /* If the kind was not found, then it must be a string type */
-        
-        ((struct icalparameter_impl*)param)->string = icalmemory_strdup(val);
-
-    }
-
-   return param;
-}
-
-
-
-
diff --git a/libkcal/libical/src/libical/icalderivedparameter.h.in b/libkcal/libical/src/libical/icalderivedparameter.h.in
deleted file mode 100644
index 99be6ff2..00000000
--- a/libkcal/libical/src/libical/icalderivedparameter.h.in
+++ /dev/null
@@ -1,36 +0,0 @@
-/* -*- Mode: C -*- */
-/*======================================================================
-  FILE: icalparam.h
-  CREATOR: eric 20 March 1999
-
-
-
-  
-
- (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-  The original code is icalparam.h
-
-  ======================================================================*/
-
-#ifndef ICALDERIVEDPARAMETER_H
-#define ICALDERIVEDPARAMETER_H
-
-
-typedef struct icalparameter_impl icalparameter;
-
-const char* icalparameter_enum_to_string(int e);
-int icalparameter_string_to_enum(const char* str); 
-
-<insert_code_here>
diff --git a/libkcal/libical/src/libical/icalderivedproperty.c.in b/libkcal/libical/src/libical/icalderivedproperty.c.in
deleted file mode 100644
index a8bcbc04..00000000
--- a/libkcal/libical/src/libical/icalderivedproperty.c.in
+++ /dev/null
@@ -1,284 +0,0 @@
-/* -*- Mode: C -*- */
-
-/*======================================================================
-  FILE: icalderivedproperty.c
-  CREATOR: eric 15 Feb 2001
-  
-
-
- (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-  The original code is icalproperty.c
-
-======================================================================*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "icalproperty.h"
-#include "icalcomponent.h"
-#include "pvl.h"
-#include "icalenums.h"
-#include "icalerror.h"
-#include "icalmemory.h"
-#include "icalparser.h"
-
-#include <string.h> /* For icalmemory_strdup, rindex */
-#include <assert.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <stdio.h> /* for printf */
-#include <stdarg.h> /* for va_list, va_start, etc. */
-                                               
-struct icalproperty_impl*
-icalproperty_new_impl (icalproperty_kind kind);
-void icalproperty_add_parameters(struct icalproperty_impl *prop,va_list args);
-
-/* This map associates the property kinds with the string
-   representation of the property name and the kind of VALUE that the
-   property uses as a default */
-
-struct  icalproperty_map {
-	icalproperty_kind kind;
-	const char *name;
-	icalvalue_kind value;
-
-};
-
-/* This map associates the property enumerations with the king of
-   property that they are used in and the string representation of the
-   enumeration */
-
-struct icalproperty_enum_map {
-    icalproperty_kind prop;
-    int prop_enum;
-    const char* str;
-}; 
-
-
-<insert_code_here>
-
-int icalproperty_kind_is_valid(const icalproperty_kind kind)
-{
-    int i = 0;
-    do {
-      if (property_map[i].kind == kind)
-	return 1;
-    } while (property_map[i++].kind != ICAL_NO_PROPERTY);
-
-    return 0;
-}  
-
-const char* icalproperty_kind_to_string(icalproperty_kind kind)
-{
-    int i;
-
-    for (i=0; property_map[i].kind != ICAL_NO_PROPERTY; i++) {
-	if (property_map[i].kind == kind) {
-	    return property_map[i].name;
-	}
-    }
-
-    return 0;
-
-}
-
-
-icalproperty_kind icalproperty_string_to_kind(const char* string)
-{
-    int i;
-
-    if (string ==0 ) { 
-	return ICAL_NO_PROPERTY;
-    }
-
-
-    for (i=0; property_map[i].kind  != ICAL_NO_PROPERTY; i++) {
-	if (strcasecmp(property_map[i].name, string) == 0) {
-	    return property_map[i].kind;
-	}
-    }
-
-    if(strncmp(string,"X-",2)==0){
-	return ICAL_X_PROPERTY;
-    }
-
-
-    return ICAL_NO_PROPERTY;
-}
-
-
-icalproperty_kind icalproperty_value_kind_to_kind(icalvalue_kind kind)
-{
-    int i;
-
-    for (i=0; property_map[i].kind  != ICAL_NO_PROPERTY; i++) {
-	if ( property_map[i].value == kind ) {
-	    return property_map[i].kind;
-	}
-    }
-
-    return ICAL_NO_PROPERTY;
-}
-
-
-
-icalvalue_kind icalproperty_kind_to_value_kind(icalproperty_kind kind)
-{
-    int i;
-
-    for (i=0; property_map[i].kind  != ICAL_NO_PROPERTY; i++) {
-	if ( property_map[i].kind == kind ) {
-	    return property_map[i].value;
-	}
-    }
-
-    return ICAL_NO_VALUE;
-}
-
-
-const char* icalproperty_enum_to_string(int e)
-{
-    icalerror_check_arg_rz(e >= ICALPROPERTY_FIRST_ENUM,"e");
-    icalerror_check_arg_rz(e <= ICALPROPERTY_LAST_ENUM,"e");
-
-    return enum_map[e-ICALPROPERTY_FIRST_ENUM].str;
-}
-
-int icalproperty_kind_and_string_to_enum(const int kind, const char* str)
-{
-    icalproperty_kind pkind;
-    int i;
-
-    icalerror_check_arg_rz(str!=0,"str")
-
-    if ((pkind = icalproperty_value_kind_to_kind(kind)) == ICAL_NO_VALUE)
-	return 0;
-
-    while(*str == ' '){
-	str++;
-    }
-
-    for (i=ICALPROPERTY_FIRST_ENUM; i != ICALPROPERTY_LAST_ENUM; i++) {
-	if (enum_map[i-ICALPROPERTY_FIRST_ENUM].prop == pkind)
-	    break;
-    }
-    if (i == ICALPROPERTY_LAST_ENUM)
-	    return 0;
-
-    for (; i != ICALPROPERTY_LAST_ENUM; i++) {
-	if ( strcasecmp(enum_map[i-ICALPROPERTY_FIRST_ENUM].str, str) == 0) {
-	    return enum_map[i-ICALPROPERTY_FIRST_ENUM].prop_enum;
-	}
-    }
-
-    return 0;
-}
-
-/** @deprecated please use icalproperty_kind_and_string_to_enum instead */
-int icalproperty_string_to_enum(const char* str)
-{
-    int i;
-
-    icalerror_check_arg_rz(str!=0,"str")
-
-    while(*str == ' '){
-	str++;
-    }
-
-    for (i=ICALPROPERTY_FIRST_ENUM; i != ICALPROPERTY_LAST_ENUM; i++) {
-	if ( strcasecmp(enum_map[i-ICALPROPERTY_FIRST_ENUM].str, str) == 0) {
-	    return enum_map[i-ICALPROPERTY_FIRST_ENUM].prop_enum;
-	}
-    }
-
-    return 0;
-}
-
-int icalproperty_enum_belongs_to_property(icalproperty_kind kind, int e)
-{
-    int i;
-
-
-    for (i=ICALPROPERTY_FIRST_ENUM; i != ICALPROPERTY_LAST_ENUM; i++) {
-        if(enum_map[i-ICALPROPERTY_FIRST_ENUM].prop_enum == e && 
-           enum_map[i-ICALPROPERTY_FIRST_ENUM].prop == kind ){
-            return 1;
-        }
-    }
-
-    return 0;
-}
-
-
-const char* icalproperty_method_to_string(icalproperty_method method)
-{
-    icalerror_check_arg_rz(method >= ICAL_METHOD_X,"method");
-    icalerror_check_arg_rz(method <= ICAL_METHOD_NONE,"method");
-
-    return enum_map[method-ICALPROPERTY_FIRST_ENUM].str;
-}
-
-icalproperty_method icalproperty_string_to_method(const char* str)
-{
-    int i;
-
-    icalerror_check_arg_rx(str!=0,"str",ICAL_METHOD_NONE)
-
-    while(*str == ' '){
-	str++;
-    }
-
-    for (i=ICAL_METHOD_X-ICALPROPERTY_FIRST_ENUM; 
-         i != ICAL_METHOD_NONE-ICALPROPERTY_FIRST_ENUM;
-         i++) {
-	if ( strcasecmp(enum_map[i].str, str) == 0) {
-	    return (icalproperty_method)enum_map[i].prop_enum;
-	}
-    }
-
-    return ICAL_METHOD_NONE;
-}
-
-
-const char* icalenum_status_to_string(icalproperty_status status)
-{
-    icalerror_check_arg_rz(status >= ICAL_STATUS_X,"status");
-    icalerror_check_arg_rz(status <= ICAL_STATUS_NONE,"status");
-
-    return enum_map[status-ICALPROPERTY_FIRST_ENUM].str;
-}
-
-icalproperty_status icalenum_string_to_status(const char* str)
-{
-    int i;
-
-    icalerror_check_arg_rx(str!=0,"str",ICAL_STATUS_NONE)
-
-    while(*str == ' '){
-	str++;
-    }
-
-    for (i=ICAL_STATUS_X-ICALPROPERTY_FIRST_ENUM; 
-         i != ICAL_STATUS_NONE-ICALPROPERTY_FIRST_ENUM;
-         i++) {
-	if ( strcasecmp(enum_map[i].str, str) == 0) {
-	    return (icalproperty_status)enum_map[i].prop_enum;
-	}
-    }
-
-    return ICAL_STATUS_NONE;
-
-}
diff --git a/libkcal/libical/src/libical/icalderivedproperty.h.in b/libkcal/libical/src/libical/icalderivedproperty.h.in
deleted file mode 100644
index 195d27fc..00000000
--- a/libkcal/libical/src/libical/icalderivedproperty.h.in
+++ /dev/null
@@ -1,21 +0,0 @@
-/* -*- Mode: C -*-
-  ======================================================================
-  FILE: icalderivedproperties.{c,h}
-  CREATOR: eric 09 May 1999
-  
-    
- (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
- ======================================================================*/
-
-
-#ifndef ICALDERIVEDPROPERTY_H
-#define ICALDERIVEDPROPERTY_H
-
-#include <time.h>
-#include "icalparameter.h"
-#include "icalderivedvalue.h"  
-#include "icalrecur.h"
-
-typedef struct icalproperty_impl icalproperty;
-
-<insert_code_here>
diff --git a/libkcal/libical/src/libical/icalderivedvalue.c.in b/libkcal/libical/src/libical/icalderivedvalue.c.in
deleted file mode 100644
index e126867a..00000000
--- a/libkcal/libical/src/libical/icalderivedvalue.c.in
+++ /dev/null
@@ -1,336 +0,0 @@
-/* -*- Mode: C -*- */
-/*======================================================================
-  FILE: icalvalue.c
-  CREATOR: eric 02 May 1999
-  
-
-
- (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-  The original code is icalvalue.c
-
-  Contributions from:
-     Graham Davison (g.m.davison@computer.org)
-
-
-======================================================================*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "icalerror.h"
-#include "icalmemory.h"
-#include "icalparser.h"
-#include "icalenums.h"
-
-#include "icalvalueimpl.h"
-
-#include <stdlib.h> /* for malloc */
-#include <stdio.h> /* for snprintf */
-#include <string.h> /* For memset, others */
-#include <stddef.h> /* For offsetof() macro */
-#include <errno.h>
-#include <time.h> /* for mktime */
-#include <stdlib.h> /* for atoi and atof */
-#include <limits.h> /* for SHRT_MAX */         
-
-struct icalvalue_impl*  icalvalue_new_impl(icalvalue_kind kind);
-
-/* This map associates each of the value types with its string
-   representation */
-struct icalvalue_kind_map {
-	icalvalue_kind kind;
-	char name[20];
-};
-
-<insert_code_here>
-
-
-int icalvalue_kind_is_valid(const icalvalue_kind kind)
-{
-    int i = 0;
-    do {
-      if (value_map[i].kind == kind)
-	return 1;
-    } while (value_map[i++].kind != ICAL_NO_VALUE);
-
-    return 0;
-}  
-
-const char* icalvalue_kind_to_string(const icalvalue_kind kind)
-{
-    int i;
-
-    for (i=0; value_map[i].kind != ICAL_NO_VALUE; i++) {
-	if (value_map[i].kind == kind) {
-	    return value_map[i].name;
-	}
-    }
-
-    return 0;
-}
-
-icalvalue_kind icalvalue_string_to_kind(const char* str)
-{
-    int i;
-
-    for (i=0; value_map[i].kind != ICAL_NO_VALUE; i++) {
-	if (strcasecmp(value_map[i].name,str) == 0) {
-	    return value_map[i].kind;
-	}
-    }
-
-    return  value_map[i].kind;
-
-}
-
-icalvalue* icalvalue_new_x (const char* v){
-   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_X_VALUE);
-   icalerror_check_arg_rz( (v!=0),"v");
-
-   icalvalue_set_x((icalvalue*)impl,v);
-   return (icalvalue*)impl;
-}
-void icalvalue_set_x(icalvalue* impl, const char* v) {
-    icalerror_check_arg_rv( (impl!=0),"value");
-    icalerror_check_arg_rv( (v!=0),"v");
-
-    if(impl->x_value!=0) {free((void*)impl->x_value);}
-
-    impl->x_value = icalmemory_strdup(v);
-
-    if (impl->x_value == 0){
-      errno = ENOMEM;
-    }
- 
- }
-const char* icalvalue_get_x(const icalvalue* value) {
-
-    icalerror_check_arg( (value!=0),"value");
-    icalerror_check_value_type(value, ICAL_X_VALUE);
-    return value->x_value;
-}
-
-/* Recur is a special case, so it is not auto generated. */
-icalvalue*
-icalvalue_new_recur (struct icalrecurrencetype v)
-{
-   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_RECUR_VALUE);
-    
-   icalvalue_set_recur((icalvalue*)impl,v);
-
-   return (icalvalue*)impl;
-}
-
-void
-icalvalue_set_recur(icalvalue* impl, struct icalrecurrencetype v)
-{
-    icalerror_check_arg_rv( (impl!=0),"value");
-    icalerror_check_value_type(value, ICAL_RECUR_VALUE);
-
-    if (impl->data.v_recur != 0){
-	free(impl->data.v_recur);
-	impl->data.v_recur = 0;
-    }
-
-    impl->data.v_recur = malloc(sizeof(struct icalrecurrencetype));
-
-    if (impl->data.v_recur == 0){
-	icalerror_set_errno(ICAL_NEWFAILED_ERROR);
-	return;
-    } else {
-	memcpy(impl->data.v_recur, &v, sizeof(struct icalrecurrencetype));
-    }
-	       
-}
-
-struct icalrecurrencetype
-icalvalue_get_recur(const icalvalue* value)
-{
-    icalerror_check_arg( (value!=0),"value");
-    icalerror_check_value_type(value, ICAL_RECUR_VALUE);
-  
-    return *(value->data.v_recur);
-}
-
-
-
-
-icalvalue*
-icalvalue_new_trigger (struct icaltriggertype v)
-{
-   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_TRIGGER_VALUE);
- 
-   icalvalue_set_trigger((icalvalue*)impl,v);
-
-   return (icalvalue*)impl;
-}
-
-void
-icalvalue_set_trigger(icalvalue* value, struct icaltriggertype v)
-{
-    icalerror_check_arg_rv( (value!=0),"value");
-    
-   if(!icaltime_is_null_time(v.time)){
-       icalvalue_set_datetime(value,v.time);
-       value->kind = ICAL_DATETIME_VALUE;
-   } else {
-       icalvalue_set_duration(value,v.duration);
-       value->kind = ICAL_DURATION_VALUE;
-   }
-}
-
-struct icaltriggertype
-icalvalue_get_trigger(const icalvalue* impl)
-{
-    struct icaltriggertype tr;
-
-    icalerror_check_arg( (impl!=0),"value");
-    icalerror_check_arg( (impl!=0),"value");
-
-    if(impl->kind == ICAL_DATETIME_VALUE){
-	 tr.duration = icaldurationtype_from_int(0);
-	 tr.time = impl->data.v_time;
-    } else if(impl->kind == ICAL_DURATION_VALUE){
-	tr.time = icaltime_null_time();
-	tr.duration = impl->data.v_duration;
-    } else {
-	tr.duration = icaldurationtype_from_int(0);
-	tr.time = icaltime_null_time();
-	icalerror_set_errno(ICAL_BADARG_ERROR);
-    }
-
-    return tr;
-}
-
-/* DATE-TIME-PERIOD is a special case, and is not auto generated */
-
-icalvalue*
-icalvalue_new_datetimeperiod (struct icaldatetimeperiodtype v)
-{
-   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_DATETIMEPERIOD_VALUE);
-
-   icalvalue_set_datetimeperiod(impl,v);
-
-   return (icalvalue*)impl;
-}
-
-void
-icalvalue_set_datetimeperiod(icalvalue* impl, struct icaldatetimeperiodtype v)
-{
-    icalerror_check_arg_rv( (impl!=0),"value");
-    
-    icalerror_check_value_type(value, ICAL_DATETIMEPERIOD_VALUE);
-
-    if(!icaltime_is_null_time(v.time)){
-	if(!icaltime_is_valid_time(v.time)){
-	    icalerror_set_errno(ICAL_BADARG_ERROR);
-	    return;
-	}
-	impl->kind = ICAL_DATETIME_VALUE;
-	icalvalue_set_datetime(impl,v.time);
-    } else if (!icalperiodtype_is_null_period(v.period)) {
-	if(!icalperiodtype_is_valid_period(v.period)){
-	    icalerror_set_errno(ICAL_BADARG_ERROR);
-	    return;
-	}
-	impl->kind = ICAL_PERIOD_VALUE;
-	icalvalue_set_period(impl,v.period);
-    } else {
-	icalerror_set_errno(ICAL_BADARG_ERROR);
-    }
-}
-
-struct icaldatetimeperiodtype
-icalvalue_get_datetimeperiod(const icalvalue* impl)
-{
-  struct icaldatetimeperiodtype dtp;
-  
-  icalerror_check_arg( (impl!=0),"value");
-  icalerror_check_value_type(value, ICAL_DATETIMEPERIOD_VALUE);
-  
-  if( impl->kind == ICAL_DATETIME_VALUE || impl->kind == ICAL_DATE_VALUE ){
-      dtp.period = icalperiodtype_null_period();
-      dtp.time = impl->data.v_time;
-  } else if(impl->kind == ICAL_PERIOD_VALUE) {
-      dtp.period = impl->data.v_period;
-      dtp.time = icaltime_null_time();
-  } else {
-      dtp.period = icalperiodtype_null_period();
-      dtp.time = icaltime_null_time();
-      icalerror_set_errno(ICAL_BADARG_ERROR);
-  }	
-
-  return dtp;
-}
-
-
-
-icalvalue *
-icalvalue_new_attach (icalattach *attach)
-{
-    struct icalvalue_impl *impl;
-
-    icalerror_check_arg_rz ((attach != NULL), "attach");
-
-    impl = icalvalue_new_impl (ICAL_ATTACH_VALUE);
-    if (!impl) {
-	errno = ENOMEM;
-	return NULL;
-    }
-
-    icalvalue_set_attach ((icalvalue *) impl, attach);
-    return (icalvalue *) impl;
-}
-
-void
-icalvalue_set_attach (icalvalue *value, icalattach *attach)
-{
-    struct icalvalue_impl *impl;
- 
-    icalerror_check_arg_rv ((value != NULL), "value");
-    icalerror_check_value_type (value, ICAL_ATTACH_VALUE);
-    icalerror_check_arg_rv ((attach != NULL), "attach");
-  
-    impl = (struct icalvalue_impl *) value;
- 
-    icalattach_ref (attach);
-
-    if (impl->data.v_attach)
-	icalattach_unref (impl->data.v_attach);
-  
-    impl->data.v_attach = attach;
-}
-
-icalattach *
-icalvalue_get_attach (const icalvalue *value)
-{
-    icalerror_check_arg_rz ((value != NULL), "value");
-    icalerror_check_value_type (value, ICAL_ATTACH_VALUE);
-    
-    return value->data.v_attach;
-}
-
-
-
-
-
-
-
-/* The remaining interfaces are 'new', 'set' and 'get' for each of the value
-   types */
-
-
-/* Everything below this line is machine generated. Do not edit. */
diff --git a/libkcal/libical/src/libical/icalderivedvalue.h.in b/libkcal/libical/src/libical/icalderivedvalue.h.in
deleted file mode 100644
index 92c45340..00000000
--- a/libkcal/libical/src/libical/icalderivedvalue.h.in
+++ /dev/null
@@ -1,63 +0,0 @@
-/* -*- Mode: C -*- */
-/*======================================================================
-  FILE: icalvalue.h
-  CREATOR: eric 20 March 1999
-
-
-
-  
-
- (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-  The original code is icalvalue.h
-
-  ======================================================================*/
-
-#ifndef ICALDERIVEDVALUE_H
-#define ICALDERIVEDVALUE_H
-
-#include "icaltypes.h"
-#include "icalrecur.h"
-#include "icaltime.h"
-#include "icalduration.h"
-#include "icalperiod.h"
-#include "icalattach.h"
-     
-typedef struct icalvalue_impl icalvalue;
-
-
-
-void icalvalue_set_x(icalvalue* value, const char* v);
-icalvalue* icalvalue_new_x(const char* v);
-const char* icalvalue_get_x(const icalvalue* value);
-
-icalvalue* icalvalue_new_recur (struct icalrecurrencetype v);
-void icalvalue_set_recur(icalvalue* value, struct icalrecurrencetype v);
-struct icalrecurrencetype icalvalue_get_recur(const icalvalue* value);
-
-icalvalue* icalvalue_new_trigger (struct icaltriggertype v);
-void icalvalue_set_trigger(icalvalue* value, struct icaltriggertype v);
-struct icaltriggertype icalvalue_get_trigger(const icalvalue* value);
-
-icalvalue* icalvalue_new_datetimeperiod (struct icaldatetimeperiodtype v);
-void icalvalue_set_datetimeperiod(icalvalue* value, struct icaldatetimeperiodtype v);
-struct icaldatetimeperiodtype icalvalue_get_datetimeperiod(const icalvalue* value);
-
-icalvalue *icalvalue_new_attach (icalattach *attach);
-void icalvalue_set_attach (icalvalue *value, icalattach *attach);
-icalattach *icalvalue_get_attach (const icalvalue *value);
-
-void icalvalue_reset_kind(icalvalue* value);
-
-<insert_code_here>
diff --git a/libkcal/libical/src/libical/icalduration.c b/libkcal/libical/src/libical/icalduration.c
deleted file mode 100644
index 0d9856b2..00000000
--- a/libkcal/libical/src/libical/icalduration.c
+++ /dev/null
@@ -1,331 +0,0 @@
-/* -*- Mode: C -*-
-  ======================================================================
-  FILE: icaltime.c
-  CREATOR: eric 02 June 2000
-  
-    
- (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
-     http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
- The Original Code is eric. The Initial Developer of the Original
- Code is Eric Busboom
-
-
- ======================================================================*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "icalduration.h"
-
-#include <assert.h>
-#include <string.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-#include "icalerror.h"
-#include "icalmemory.h"
-#include "icalvalue.h"
-
-
-
-
-/* From Seth Alves,  <alves@hungry.com>   */
-struct icaldurationtype icaldurationtype_from_int(int t)
-{
-    struct icaldurationtype dur;
-    int used = 0;
-
-    dur = icaldurationtype_null_duration();
-
-    if(t < 0){
-	dur.is_neg = 1;
-	t = -t;
-    }
-
-    if (t % (60 * 60 * 24 * 7) == 0) {
-	dur.weeks = t / (60 * 60 * 24 * 7);
-    } else {
-	used += dur.weeks * (60 * 60 * 24 * 7);
-	dur.days = (t - used) / (60 * 60 * 24);
-	used += dur.days * (60 * 60 * 24);
-	dur.hours = (t - used) / (60 * 60);
-	used += dur.hours * (60 * 60);
-	dur.minutes = (t - used) / (60);
-	used += dur.minutes * (60);
-	dur.seconds = (t - used);
-    }
- 
-    return dur;
-}
-
-struct icaldurationtype icaldurationtype_from_string(const char* str)
-{
-
-    int i;
-    int begin_flag = 0;
-    int time_flag = 0;
-    int date_flag = 0;
-    int week_flag = 0;
-    int digits=-1;
-    int scan_size = -1;
-    int size = strlen(str);
-    char p;
-    struct icaldurationtype d;
-
-    memset(&d, 0, sizeof(struct icaldurationtype));
-
-    for(i=0;i != size;i++){
-	p = str[i];
-	
-	switch(p) 
-	    {
-	    case '-': {
-		if(i != 0 || begin_flag == 1) goto error;
-
-		d.is_neg = 1;
-		break;
-	    }
-
-	    case 'P': {
-		if (i != 0 && i !=1 ) goto error;
-		begin_flag = 1;
-		break;
-	    }
-
-	    case 'T': {
-		time_flag = 1;
-		break;
-	    }
-
-	    case '0':
-	    case '1':
-	    case '2':
-	    case '3':
-	    case '4':
-	    case '5':
-	    case '6':
-	    case '7':
-	    case '8':
-	    case '9':
-		{ 
-		    
-		    /* HACK. Skip any more digits if the l;ast one
-                       read has not been assigned */
-		    if(digits != -1){
-			break;
-		    }
-
-		    if (begin_flag == 0) goto error;
-		    /* Get all of the digits, not one at a time */
-		    scan_size = sscanf(&str[i],"%d",&digits);
-		    if(scan_size == 0) goto error;
-		    break;
-		}
-
-	    case 'H': {	
-		if (time_flag == 0||week_flag == 1||d.hours !=0||digits ==-1) 
-		    goto error;
-		d.hours = digits; digits = -1;
-		break;
-	    }
-	    case 'M': {
-		if (time_flag == 0||week_flag==1||d.minutes != 0||digits ==-1) 
-		    goto error;
-		d.minutes = digits; digits = -1;	    
-		break;
-	    }
-	    case 'S': {
-		if (time_flag == 0||week_flag==1||d.seconds!=0||digits ==-1) 
-		    goto error;
-		d.seconds = digits; digits = -1;	    
-		break;
-	    }
-	    case 'W': {
-		if (time_flag==1||date_flag==1||d.weeks!=0||digits ==-1) 
-		    goto error;
-		week_flag = 1;	
-		d.weeks = digits; digits = -1;	    
-		break;
-	    }
-	    case 'D': {
-		if (time_flag==1||week_flag==1||d.days!=0||digits ==-1) 
-		    goto error;
-		date_flag = 1;
-		d.days = digits; digits = -1;	    
-		break;
-	    }
-	    default: {
-		goto error;
-	    }
-
-	    }
-    }
-
-    return d;
-	
-
- error:
-    icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-    return icaldurationtype_bad_duration();
-}
-
-#define TMP_BUF_SIZE 1024
-static
-void append_duration_segment(char** buf, char** buf_ptr, size_t* buf_size, 
-			     const char* sep, unsigned int value) {
-
-    char temp[TMP_BUF_SIZE];
-
-    snprintf(temp,sizeof(temp),"%d",value);
-
-    icalmemory_append_string(buf, buf_ptr, buf_size, temp);
-    icalmemory_append_string(buf, buf_ptr, buf_size, sep);
-    
-}
-
-char* icaldurationtype_as_ical_string(struct icaldurationtype d) 
-{
-
-    char *buf, *output_line;
-    size_t buf_size = 256;
-    char* buf_ptr = 0;
-    int seconds;
-
-    buf = (char*)icalmemory_new_buffer(buf_size);
-    buf_ptr = buf;
-    
-
-    seconds = icaldurationtype_as_int(d);
-
-    if(seconds !=0){
-	
-	if(d.is_neg == 1){
-	    icalmemory_append_char(&buf, &buf_ptr, &buf_size, '-'); 
-	}
-
-	icalmemory_append_char(&buf, &buf_ptr, &buf_size, 'P');
-    
-	if (d.weeks != 0 ) {
-	    append_duration_segment(&buf, &buf_ptr, &buf_size, "W", d.weeks);
-	}
-	
-	if (d.days != 0 ) {
-	    append_duration_segment(&buf, &buf_ptr, &buf_size, "D", d.days);
-	}
-	
-	if (d.hours != 0 || d.minutes != 0 || d.seconds != 0) {
-	    
-	    icalmemory_append_string(&buf, &buf_ptr, &buf_size, "T");
-	    
-	    if (d.hours != 0 ) {
-		append_duration_segment(&buf, &buf_ptr, &buf_size, "H", d.hours);
-	    }
-	    if (d.minutes != 0 ) {
-		append_duration_segment(&buf, &buf_ptr, &buf_size, "M", 
-					d.minutes);
-	    }
-	    if (d.seconds != 0 ) {
-		append_duration_segment(&buf, &buf_ptr, &buf_size, "S", 
-					d.seconds);
-	    }
-	    
-	}
-    } else {
-	icalmemory_append_string(&buf, &buf_ptr, &buf_size, "PT0S");
-    }
- 
-    output_line = icalmemory_tmp_copy(buf);
-    icalmemory_free_buffer(buf);
-
-    return output_line;
-    
-}
-
-
-/* From Russel Steinthal */
-int icaldurationtype_as_int(struct icaldurationtype dur)
-{
-    return (int)( (dur.seconds +
-		   (60 * dur.minutes) +
-		   (60 * 60 * dur.hours) +
-		   (60 * 60 * 24 * dur.days) +
-		   (60 * 60 * 24 * 7 * dur.weeks))
-		  * (dur.is_neg==1? -1 : 1) ) ;
-} 
-
-struct icaldurationtype icaldurationtype_null_duration(void)
-{
-    struct icaldurationtype d;
-    
-    memset(&d,0,sizeof(struct icaldurationtype));
-    
-    return d;
-}
-
-int icaldurationtype_is_null_duration(struct icaldurationtype d)
-{
-    if(icaldurationtype_as_int(d) == 0){
-	return 1;
-    } else {
-	return 0;
-    }
-}
-
-/* in icalvalue_new_from_string_with_error, we should not call
-   icaldurationtype_is_null_duration() to see if there is an error
-   condition. Null duration is perfectly valid for an alarm.
-   We cannot depend on the caller to check icalerrno either,
-   following the philosophy of unix errno. we set the is_neg
-   to -1 to indicate that this is a bad duration.
-*/
-struct icaldurationtype icaldurationtype_bad_duration()
-{
-    struct icaldurationtype d;
-    memset(&d,0,sizeof(struct icaldurationtype));
-    d.is_neg = -1;
-    return d;
-}
-
-int icaldurationtype_is_bad_duration(struct icaldurationtype d)
-{
-    return (d.is_neg == -1);
-}
-
-
-struct icaltimetype  icaltime_add(struct icaltimetype t,
-				  struct icaldurationtype  d)
-{
-    int dt = icaldurationtype_as_int(d);
-    
-    t.second += dt;
-    
-    t = icaltime_normalize(t);
-    
-    return t;
-}
-
-struct icaldurationtype  icaltime_subtract(struct icaltimetype t1,
-					   struct icaltimetype t2)
-{
-
-    time_t t1t = icaltime_as_timet(t1);
-    time_t t2t = icaltime_as_timet(t2);
-
-    return icaldurationtype_from_int((int)(t1t-t2t));
-
-
-}
-
diff --git a/libkcal/libical/src/libical/icalduration.h b/libkcal/libical/src/libical/icalduration.h
deleted file mode 100644
index fb79dbc3..00000000
--- a/libkcal/libical/src/libical/icalduration.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/* -*- Mode: C -*- */
-/*======================================================================
- FILE: icalduration.h
- CREATOR: eric 26 Jan 2001
-
-
-
- (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
-     http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
- The Original Code is eric. The Initial Developer of the Original
- Code is Eric Busboom
-
-
-======================================================================*/
-
-#ifndef ICALDURATION_H
-#define ICALDURATION_H
-
-#include "icaltime.h"
-
-struct icaldurationtype
-{
-	int is_neg;
-	unsigned int days;
-	unsigned int weeks;
-	unsigned int hours;
-	unsigned int minutes;
-	unsigned int seconds;
-};
-
-struct icaldurationtype icaldurationtype_from_int(int t);
-struct icaldurationtype icaldurationtype_from_string(const char*);
-int icaldurationtype_as_int(struct icaldurationtype duration);
-char* icaldurationtype_as_ical_string(struct icaldurationtype d);
-struct icaldurationtype icaldurationtype_null_duration(void);
-struct icaldurationtype icaldurationtype_bad_duration(void);
-int icaldurationtype_is_null_duration(struct icaldurationtype d);
-int icaldurationtype_is_bad_duration(struct icaldurationtype d);
-
-struct icaltimetype  icaltime_add(struct icaltimetype t,
-				  struct icaldurationtype  d);
-
-struct icaldurationtype  icaltime_subtract(struct icaltimetype t1,
-					   struct icaltimetype t2);
-
-#endif /* !ICALDURATION_H */
-
-
-
diff --git a/libkcal/libical/src/libical/icalenums.c b/libkcal/libical/src/libical/icalenums.c
deleted file mode 100644
index 70d97faf..00000000
--- a/libkcal/libical/src/libical/icalenums.c
+++ /dev/null
@@ -1,166 +0,0 @@
-/* -*- Mode: C -*- */
-/*======================================================================
-  FILE: icalenum.c
-  CREATOR: eric 29 April 1999
-  
-
-
- (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
-     http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-  The original code is icalenum.c
-
-  ======================================================================*/
-
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "icalenums.h"
-
-#include <stdio.h> /* For fprintf */
-#include <stdio.h> /* For stderr */
-#include <string.h> /* For strncmp */
-#include <assert.h>
-#include "icalmemory.h"
-
-/*** @brief Allowed request status values
- */
-static struct {
-	 enum icalrequeststatus kind;
-	int major;
-	int minor;
-	const char* str;
-} request_status_map[] = {
-    {ICAL_2_0_SUCCESS_STATUS, 2,0,"Success."},
-    {ICAL_2_1_FALLBACK_STATUS, 2,1,"Success but fallback taken  on one or more property  values."},
-    {ICAL_2_2_IGPROP_STATUS, 2,2,"Success, invalid property ignored."},
-    {ICAL_2_3_IGPARAM_STATUS, 2,3,"Success, invalid property parameter ignored."},
-    {ICAL_2_4_IGXPROP_STATUS, 2,4,"Success, unknown non-standard property ignored."},
-    {ICAL_2_5_IGXPARAM_STATUS, 2,5,"Success, unknown non standard property value  ignored."},
-    {ICAL_2_6_IGCOMP_STATUS, 2,6,"Success, invalid calendar component ignored."},
-    {ICAL_2_7_FORWARD_STATUS, 2,7,"Success, request forwarded to Calendar User."},
-    {ICAL_2_8_ONEEVENT_STATUS, 2,8,"Success, repeating event ignored. Scheduled as a  single component."},
-    {ICAL_2_9_TRUNC_STATUS, 2,9,"Success, truncated end date time to date boundary."},
-    {ICAL_2_10_ONETODO_STATUS, 2,10,"Success, repeating VTODO ignored. Scheduled as a  single VTODO."},
-    {ICAL_2_11_TRUNCRRULE_STATUS, 2,11,"Success, unbounded RRULE clipped at some finite  number of instances  "},
-    {ICAL_3_0_INVPROPNAME_STATUS, 3,0,"Invalid property name."},
-    {ICAL_3_1_INVPROPVAL_STATUS, 3,1,"Invalid property value."},
-    {ICAL_3_2_INVPARAM_STATUS, 3,2,"Invalid property parameter."},
-    {ICAL_3_3_INVPARAMVAL_STATUS, 3,3,"Invalid property parameter  value."},
-    {ICAL_3_4_INVCOMP_STATUS, 3,4,"Invalid calendar component."},
-    {ICAL_3_5_INVTIME_STATUS, 3,5,"Invalid date or time."},
-    {ICAL_3_6_INVRULE_STATUS, 3,6,"Invalid rule."},
-    {ICAL_3_7_INVCU_STATUS, 3,7,"Invalid Calendar User."},
-    {ICAL_3_8_NOAUTH_STATUS, 3,8,"No authority."},
-    {ICAL_3_9_BADVERSION_STATUS, 3,9,"Unsupported version."},
-    {ICAL_3_10_TOOBIG_STATUS, 3,10,"Request entity too large."},
-    {ICAL_3_11_MISSREQCOMP_STATUS, 3,11,"Required component or property missing."},
-    {ICAL_3_12_UNKCOMP_STATUS, 3,12,"Unknown component or property found."},
-    {ICAL_3_13_BADCOMP_STATUS, 3,13,"Unsupported component or property found"},
-    {ICAL_3_14_NOCAP_STATUS, 3,14,"Unsupported capability."},
-    {ICAL_3_15_INVCOMMAND, 3,15,"Invalid command."},
-    {ICAL_4_0_BUSY_STATUS, 4,0,"Event conflict. Date/time  is busy."},
-    {ICAL_4_1_STORE_ACCESS_DENIED, 4,1,"Store Access Denied."},
-    {ICAL_4_2_STORE_FAILED, 4,2,"Store Failed."},
-    {ICAL_4_3_STORE_NOT_FOUND, 4,3,"Store not found."},
-    {ICAL_5_0_MAYBE_STATUS, 5,0,"Request MAY supported."},
-    {ICAL_5_1_UNAVAIL_STATUS, 5,1,"Service unavailable."},
-    {ICAL_5_2_NOSERVICE_STATUS, 5,2,"Invalid calendar service."},
-    {ICAL_5_3_NOSCHED_STATUS, 5,3,"No scheduling support for  user."},
-    {ICAL_6_1_CONTAINER_NOT_FOUND, 6,1,"Container not found."},
-    {ICAL_9_0_UNRECOGNIZED_COMMAND, 9,0,"An unrecognized command was received."},
-    {ICAL_UNKNOWN_STATUS, 0,0,"Error: Unknown request status"}
-};
-
-
-/*** @brief Return the descriptive text for a request status
- */
-const char* icalenum_reqstat_desc(icalrequeststatus stat)
-{
-    int i;
-
-    for (i=0; request_status_map[i].kind  != ICAL_UNKNOWN_STATUS; i++) {
-	if ( request_status_map[i].kind ==  stat) {
-	    return request_status_map[i].str;
-	}
-    }
-
-    return 0;
-}
-
-/*** @brief Return the code for a request status
- */
-char* icalenum_reqstat_code(icalrequeststatus stat)
-{
-    int i, major, minor;
-    char tmpbuf[36];
-
-    for (i=0; request_status_map[i].kind  != ICAL_UNKNOWN_STATUS; i++) {
-	if ( request_status_map[i].kind ==  stat) {
-	    major = request_status_map[i].major;
-	    minor = request_status_map[i].minor;
-	    snprintf(tmpbuf, sizeof(tmpbuf), "%i.%i", major, minor);
-	    return icalmemory_tmp_copy(tmpbuf);
-	}
-    }
-    return NULL;
-}
-
-/*** @brief Return the major number for a request status
- */
-short icalenum_reqstat_major(icalrequeststatus stat)
-{
-    int i;
-
-    for (i=0; request_status_map[i].kind  != ICAL_UNKNOWN_STATUS; i++) {
-	if ( request_status_map[i].kind ==  stat) {
-	    return request_status_map[i].major;
-	}
-    }
-    return -1;
-}
-
-/*** @brief Return the minor number for a request status
- */
-short icalenum_reqstat_minor(icalrequeststatus stat)
-{
-    int i;
-
-    for (i=0; request_status_map[i].kind  != ICAL_UNKNOWN_STATUS; i++) {
-	if ( request_status_map[i].kind ==  stat) {
-	    return request_status_map[i].minor;
-	}
-    }
-    return -1;
-}
-
-
-/*** @brief Return a request status for major/minor status numbers
- */
-icalrequeststatus icalenum_num_to_reqstat(short major, short minor)
-{
-    int i;
-
-    for (i=0; request_status_map[i].kind  != ICAL_UNKNOWN_STATUS; i++) {
-	if ( request_status_map[i].major ==  major && request_status_map[i].minor ==  minor) {
-	    return request_status_map[i].kind;
-	}
-    }
-    return 0;
-}
-
-
-
diff --git a/libkcal/libical/src/libical/icalenums.h b/libkcal/libical/src/libical/icalenums.h
deleted file mode 100644
index 971655a3..00000000
--- a/libkcal/libical/src/libical/icalenums.h
+++ /dev/null
@@ -1,166 +0,0 @@
-
-/* -*- Mode: C -*-*/
-/*======================================================================
- FILE: icalenums.h
-
- 
-
- (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
-     http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-  The original code is icalenums.h
-
-  Contributions from:
-     Graham Davison <g.m.davison@computer.org>
-
-======================================================================*/
-
-#ifndef ICALENUMS_H
-#define ICALENUMS_H
-
-
-
-/***********************************************************************
- * Component enumerations
-**********************************************************************/
-
-typedef enum icalcomponent_kind {
-    ICAL_NO_COMPONENT,
-    ICAL_ANY_COMPONENT,	/* Used to select all components*/
-    ICAL_XROOT_COMPONENT,
-    ICAL_XATTACH_COMPONENT, /* MIME attached data, returned by parser. */
-    ICAL_VEVENT_COMPONENT,
-    ICAL_VTODO_COMPONENT,
-    ICAL_VJOURNAL_COMPONENT,
-    ICAL_VCALENDAR_COMPONENT,
-    ICAL_VAGENDA_COMPONENT,
-    ICAL_VFREEBUSY_COMPONENT,
-    ICAL_VALARM_COMPONENT,
-    ICAL_XAUDIOALARM_COMPONENT,  
-    ICAL_XDISPLAYALARM_COMPONENT,
-    ICAL_XEMAILALARM_COMPONENT,
-    ICAL_XPROCEDUREALARM_COMPONENT,
-    ICAL_VTIMEZONE_COMPONENT,
-    ICAL_XSTANDARD_COMPONENT,
-    ICAL_XDAYLIGHT_COMPONENT,
-    ICAL_X_COMPONENT,
-    ICAL_VSCHEDULE_COMPONENT,
-    ICAL_VQUERY_COMPONENT,
-    ICAL_VCAR_COMPONENT,
-    ICAL_VCOMMAND_COMPONENT,
-    ICAL_XLICINVALID_COMPONENT,
-    ICAL_XLICMIMEPART_COMPONENT /* a non-stardard component that mirrors
-				structure of MIME data */
-
-} icalcomponent_kind;
-
-
-
-/***********************************************************************
- * Request Status codes
- **********************************************************************/
-
-typedef enum icalrequeststatus {
-    ICAL_UNKNOWN_STATUS,
-    ICAL_2_0_SUCCESS_STATUS,
-    ICAL_2_1_FALLBACK_STATUS,
-    ICAL_2_2_IGPROP_STATUS,
-    ICAL_2_3_IGPARAM_STATUS,
-    ICAL_2_4_IGXPROP_STATUS,
-    ICAL_2_5_IGXPARAM_STATUS,
-    ICAL_2_6_IGCOMP_STATUS,
-    ICAL_2_7_FORWARD_STATUS,
-    ICAL_2_8_ONEEVENT_STATUS,
-    ICAL_2_9_TRUNC_STATUS,
-    ICAL_2_10_ONETODO_STATUS,
-    ICAL_2_11_TRUNCRRULE_STATUS,
-    ICAL_3_0_INVPROPNAME_STATUS,
-    ICAL_3_1_INVPROPVAL_STATUS,
-    ICAL_3_2_INVPARAM_STATUS,
-    ICAL_3_3_INVPARAMVAL_STATUS,
-    ICAL_3_4_INVCOMP_STATUS,
-    ICAL_3_5_INVTIME_STATUS,
-    ICAL_3_6_INVRULE_STATUS,
-    ICAL_3_7_INVCU_STATUS,
-    ICAL_3_8_NOAUTH_STATUS,
-    ICAL_3_9_BADVERSION_STATUS,
-    ICAL_3_10_TOOBIG_STATUS,
-    ICAL_3_11_MISSREQCOMP_STATUS,
-    ICAL_3_12_UNKCOMP_STATUS,
-    ICAL_3_13_BADCOMP_STATUS,
-    ICAL_3_14_NOCAP_STATUS,
-    ICAL_3_15_INVCOMMAND,
-    ICAL_4_0_BUSY_STATUS,
-    ICAL_4_1_STORE_ACCESS_DENIED,
-    ICAL_4_2_STORE_FAILED,
-    ICAL_4_3_STORE_NOT_FOUND,
-    ICAL_5_0_MAYBE_STATUS,
-    ICAL_5_1_UNAVAIL_STATUS,
-    ICAL_5_2_NOSERVICE_STATUS,
-    ICAL_5_3_NOSCHED_STATUS,
-    ICAL_6_1_CONTAINER_NOT_FOUND,
-	ICAL_9_0_UNRECOGNIZED_COMMAND
-} icalrequeststatus;
-
-
-const char* icalenum_reqstat_desc(icalrequeststatus stat);
-short icalenum_reqstat_major(icalrequeststatus stat);
-short icalenum_reqstat_minor(icalrequeststatus stat);
-icalrequeststatus icalenum_num_to_reqstat(short major, short minor);
-char* icalenum_reqstat_code(icalrequeststatus stat);
-
-/***********************************************************************
- * Conversion functions
-**********************************************************************/
-
-
-/* Thse routines used to be in icalenums.c, but were moved into the
-   icalproperty, icalparameter, icalvalue, or icalcomponent modules. */
-
-/* const char* icalproperty_kind_to_string(icalproperty_kind kind);*/
-#define icalenum_property_kind_to_string(x) icalproperty_kind_to_string(x)
-
-/*icalproperty_kind icalproperty_string_to_kind(const char* string)*/
-#define icalenum_string_to_property_kind(x) icalproperty_string_to_kind(x)
-
-/*icalvalue_kind icalproperty_kind_to_value_kind(icalproperty_kind kind);*/
-#define icalenum_property_kind_to_value_kind(x) icalproperty_kind_to_value_kind(x)
-
-/*const char* icalenum_method_to_string(icalproperty_method);*/
-#define icalenum_method_to_string(x) icalproperty_method_to_string(x)
-
-/*icalproperty_method icalenum_string_to_method(const char* string);*/
-#define icalenum_string_to_method(x) icalproperty_string_to_method(x)
-
-/*const char* icalenum_status_to_string(icalproperty_status);*/
-#define icalenum_status_to_string(x) icalproperty_status_to_string(x)
-
-/*icalproperty_status icalenum_string_to_status(const char* string);*/
-#define icalenum_string_to_status(x) icalproperty_string_to_status(x)
-
-/*icalvalue_kind icalenum_string_to_value_kind(const char* str);*/
-#define icalenum_string_to_value_kind(x) icalvalue_string_to_kind(x)
-
-/*const char* icalenum_value_kind_to_string(icalvalue_kind kind);*/
-#define icalenum_value_kind_to_string(x) icalvalue_kind_to_string(x)
-
-/*const char* icalenum_component_kind_to_string(icalcomponent_kind kind);*/
-#define icalenum_component_kind_to_string(x) icalcomponent_kind_to_string(x)
-
-/*icalcomponent_kind icalenum_string_to_component_kind(const char* string);*/
-#define icalenum_string_to_component_kind(x) icalcomponent_string_to_kind(x)
-
-
-#endif /* !ICALENUMS_H */
-
diff --git a/libkcal/libical/src/libical/icalerror.c b/libkcal/libical/src/libical/icalerror.c
deleted file mode 100644
index 7cd44dea..00000000
--- a/libkcal/libical/src/libical/icalerror.c
+++ /dev/null
@@ -1,250 +0,0 @@
-/* -*- Mode: C -*-
-  ======================================================================
-  FILE: icalerror.c
-  CREATOR: eric 16 May 1999
-  
-    
-
- (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
-     http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-  The original code is icalerror.c
-
- ======================================================================*/
-
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <stdlib.h>		/* for malloc() */
-#include <string.h>		/* for strcmp */
-#include "icalerror.h"
-
-#ifdef HAVE_PTHREAD
-#include <pthread.h>
-
-static pthread_key_t  icalerrno_key;
-static pthread_once_t icalerrno_key_once = PTHREAD_ONCE_INIT;
-
-static void icalerrno_destroy(void* buf) {
-  free(buf);
-  pthread_setspecific(icalerrno_key, NULL);
-}
-
-static void icalerrno_key_alloc(void) {
-  pthread_key_create(&icalerrno_key, icalerrno_destroy);
-}
-
-icalerrorenum *icalerrno_return(void) {
-  icalerrorenum *_errno;
-
-  pthread_once(&icalerrno_key_once, icalerrno_key_alloc);
-  
-  _errno = (icalerrorenum*) pthread_getspecific(icalerrno_key);
-
-  if (!_errno) {
-    _errno = malloc(sizeof(icalerrorenum));
-    *_errno = ICAL_NO_ERROR;
-    pthread_setspecific(icalerrno_key, _errno);
-  }
-  return _errno;
-}
-
-#else
-
-static icalerrorenum icalerrno_storage = ICAL_NO_ERROR;
-
-icalerrorenum *icalerrno_return(void) {
-   return &icalerrno_storage;
-}
-
-#endif
-
-
-static int foo;
-
-void icalerror_stop_here(void)
-{
-    foo++; /* Keep optimizers from removing routine */
-}
-
-void icalerror_crash_here(void)
-{
-    int *p=0;
-    *p = 1;
-
-    assert( *p);
-}
-
-#ifdef ICAL_SETERROR_ISFUNC
-void icalerror_set_errno(icalerrorenum x) 
-{
-    icalerrno = x; 
-    if(icalerror_get_error_state(x)==ICAL_ERROR_FATAL || 
-       (icalerror_get_error_state(x)==ICAL_ERROR_DEFAULT && 
-        icalerror_errors_are_fatal == 1 )){ 
-        icalerror_warn(icalerror_strerror(x)); 
-        assert(0); 
-    } 
-
-}
-#endif 
-
-void icalerror_clear_errno() {
-    
-    icalerrno = ICAL_NO_ERROR;
-}
-
-#ifdef ICAL_ERRORS_ARE_FATAL
-int icalerror_errors_are_fatal = 1;
-#else
-int icalerror_errors_are_fatal = 0;
-#endif
-
-struct icalerror_state {
-    icalerrorenum error;
-    icalerrorstate state; 
-};
-
-static struct icalerror_state error_state_map[] = 
-{ 
-    { ICAL_BADARG_ERROR,ICAL_ERROR_DEFAULT},
-    { ICAL_NEWFAILED_ERROR,ICAL_ERROR_DEFAULT},
-    { ICAL_ALLOCATION_ERROR,ICAL_ERROR_DEFAULT},
-    { ICAL_MALFORMEDDATA_ERROR,ICAL_ERROR_DEFAULT}, 
-    { ICAL_PARSE_ERROR,ICAL_ERROR_DEFAULT},
-    { ICAL_INTERNAL_ERROR,ICAL_ERROR_DEFAULT}, 
-    { ICAL_FILE_ERROR,ICAL_ERROR_DEFAULT},
-    { ICAL_USAGE_ERROR,ICAL_ERROR_DEFAULT},
-    { ICAL_UNIMPLEMENTED_ERROR,ICAL_ERROR_DEFAULT},
-    { ICAL_UNKNOWN_ERROR,ICAL_ERROR_DEFAULT},
-    { ICAL_NO_ERROR,ICAL_ERROR_DEFAULT}
-
-};
-
-struct icalerror_string_map {
-    const char* str;
-    icalerrorenum error;
-    char name[160];
-};
-
-static struct icalerror_string_map string_map[] = 
-{
-    {"BADARG",ICAL_BADARG_ERROR,"BADARG: Bad argument to function"},
-    { "NEWFAILED",ICAL_NEWFAILED_ERROR,"NEWFAILED: Failed to create a new object via a *_new() routine"},
-    { "ALLOCATION",ICAL_ALLOCATION_ERROR,"ALLOCATION: Failed to allocate new memory"},
-    {"MALFORMEDDATA",ICAL_MALFORMEDDATA_ERROR,"MALFORMEDDATA: An input string was not correctly formed or a component has missing or extra properties"},
-    { "PARSE",ICAL_PARSE_ERROR,"PARSE: Failed to parse a part of an iCal component"},
-    {"INTERNAL",ICAL_INTERNAL_ERROR,"INTERNAL: Random internal error. This indicates an error in the library code, not an error in use"}, 
-    { "FILE",ICAL_FILE_ERROR,"FILE: An operation on a file failed. Check errno for more detail."},
-    { "USAGE",ICAL_USAGE_ERROR,"USAGE: Failed to propertyl sequence calls to a set of interfaces"},
-    { "UNIMPLEMENTED",ICAL_UNIMPLEMENTED_ERROR,"UNIMPLEMENTED: This feature has not been implemented"},
-    { "NO",ICAL_NO_ERROR,"NO: No error"},
-    {"UNKNOWN",ICAL_UNKNOWN_ERROR,"UNKNOWN: Unknown error type -- icalerror_strerror() was probably given bad input"}
-};
-
-
-icalerrorenum icalerror_error_from_string(const char* str){
- 
-    icalerrorenum e = ICAL_NO_ERROR;
-    int i = 0;
-
-    for( i = 0; string_map[i].error != ICAL_NO_ERROR; i++){
-        if (strcmp(string_map[i].str,str) == 0){
-            e = string_map[i].error;
-        }
-    }
-
-    return e;
-}
-
-icalerrorstate icalerror_supress(const char* error){
-
-    icalerrorenum e = icalerror_error_from_string(error);
-    icalerrorstate es;
-
-     if (e == ICAL_NO_ERROR){
-        return ICAL_ERROR_UNKNOWN;
-    }
-
-
-    es = icalerror_get_error_state(e);
-    icalerror_set_error_state(e,ICAL_ERROR_NONFATAL);
-
-    return es;
-}
-
-char* icalerror_perror()
-{
-    return icalerror_strerror(icalerrno);
-}
-
-void icalerror_restore(const char* error, icalerrorstate es){
-
-
-    icalerrorenum e = icalerror_error_from_string(error);
-
-    if (e != ICAL_NO_ERROR){
-        icalerror_set_error_state(e,es);
-    }
-
-}
-
-
-
-void icalerror_set_error_state( icalerrorenum error, 
-				icalerrorstate state)
-{
-    int i;
-
-    for(i = 0; error_state_map[i].error!= ICAL_NO_ERROR;i++){
-	if(error_state_map[i].error == error){
-	    error_state_map[i].state = state; 	
-	}
-    }
-}
-
-icalerrorstate icalerror_get_error_state( icalerrorenum error)
-{
-    int i;
-
-    for(i = 0; error_state_map[i].error!= ICAL_NO_ERROR;i++){
-	if(error_state_map[i].error == error){
-	    return error_state_map[i].state; 	
-	}
-    }
-
-    return ICAL_ERROR_UNKNOWN;	
-}
-
-
-
-
-char* icalerror_strerror(icalerrorenum e) {
-
-    int i;
-
-    for (i=0; string_map[i].error != ICAL_UNKNOWN_ERROR; i++) {
-	if (string_map[i].error == e) {
-	    return string_map[i].name;
-	}
-    }
-
-    return string_map[i].name; /* Return string for ICAL_UNKNOWN_ERROR*/
-    
-}
-
-
-
diff --git a/libkcal/libical/src/libical/icalerror.h b/libkcal/libical/src/libical/icalerror.h
deleted file mode 100644
index 0003b2f9..00000000
--- a/libkcal/libical/src/libical/icalerror.h
+++ /dev/null
@@ -1,160 +0,0 @@
-/* -*- Mode: C -*- */
-/*======================================================================
-  FILE: icalerror.h
-  CREATOR: eric 09 May 1999
-  
-
-
- (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
-     http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-  The original code is icalerror.h
-
-======================================================================*/
-
-
-#ifndef ICALERROR_H
-#define ICALERROR_H
-
-#include <assert.h>
-#include <stdio.h> /* For icalerror_warn() */
-
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#define ICAL_SETERROR_ISFUNC
-
-
-/** This routine is called before any error is triggered. It is called
-   by icalerror_set_errno, so it does not appear in all of the macros
-   below */
-void icalerror_stop_here(void);
-
-void icalerror_crash_here(void);
-
-typedef enum icalerrorenum {
-    ICAL_NO_ERROR,     /* icalerrno may not be initialized - put it first so and pray that the compiler initialize things to zero */    
-    ICAL_BADARG_ERROR,
-    ICAL_NEWFAILED_ERROR,
-    ICAL_ALLOCATION_ERROR,
-    ICAL_MALFORMEDDATA_ERROR, 
-    ICAL_PARSE_ERROR,
-    ICAL_INTERNAL_ERROR, /* Like assert --internal consist. prob */
-    ICAL_FILE_ERROR,
-    ICAL_USAGE_ERROR,
-    ICAL_UNIMPLEMENTED_ERROR,
-    ICAL_UNKNOWN_ERROR  /* Used for problems in input to icalerror_strerror()*/
-
-} icalerrorenum;
-
-icalerrorenum * icalerrno_return(void);
-#define icalerrno (*(icalerrno_return()))
-
-/** If true, libicl aborts after a call to icalerror_set_error
- *
- *  @warning NOT THREAD SAFE -- recommended that you do not change
- *           this in a multithreaded program.
- */
-extern int icalerror_errors_are_fatal;
-
-/* Warning messages */
-
-#ifdef __GNUC__ca
-#define icalerror_warn(message) {fprintf(stderr,"%s(), %s:%d: %s\n",__FUNCTION__,__FILE__,__LINE__,message);}
-#else /* __GNU_C__ */
-#define icalerror_warn(message) {fprintf(stderr,"%s:%d: %s\n",__FILE__,__LINE__,message);}
-#endif /* __GNU_C__ */
-
-
-void icalerror_clear_errno(void);
-void _icalerror_set_errno(icalerrorenum);
-
-/* Make an individual error fatal or non-fatal. */
-typedef enum icalerrorstate { 
-    ICAL_ERROR_FATAL,     /* Not fata */
-    ICAL_ERROR_NONFATAL,  /* Fatal */
-    ICAL_ERROR_DEFAULT,   /* Use the value of icalerror_errors_are_fatal*/
-    ICAL_ERROR_UNKNOWN    /* Asked state for an unknown error type */
-} icalerrorstate ;
-
-char* icalerror_strerror(icalerrorenum e);
-char* icalerror_perror();
-void icalerror_set_error_state( icalerrorenum error, icalerrorstate);
-icalerrorstate icalerror_get_error_state( icalerrorenum error);
-
-#ifndef ICAL_SETERROR_ISFUNC
-#define icalerror_set_errno(x) \
-icalerrno = x; \
-if(icalerror_get_error_state(x)==ICAL_ERROR_FATAL || \
-   (icalerror_get_error_state(x)==ICAL_ERROR_DEFAULT && \
-    icalerror_errors_are_fatal == 1 )){ \
-   icalerror_warn(icalerror_strerror(x)); \
-   assert(0); \
-} 
-#else
-void icalerror_set_errno(icalerrorenum x); 
-#endif
-
-#ifdef ICAL_ERRORS_ARE_FATAL
-#undef NDEBUG
-#endif
-
-#define icalerror_check_value_type(value,type);
-#define icalerror_check_property_type(value,type);
-#define icalerror_check_parameter_type(value,type);
-#define icalerror_check_component_type(value,type);
-
-/* Assert with a message */
-#ifdef ICAL_ERRORS_ARE_FATAL
-
-#ifdef __GNUC__
-#define icalerror_assert(test,message) if(!(test)){fprintf(stderr,"%s(), %s:%d: %s\n",__FUNCTION__,__FILE__,__LINE__,message);icalerror_stop_here(); abort();}
-#else /*__GNUC__*/
-#define icalerror_assert(test,message) if(!(test)){fprintf(stderr,"%s:%d: %s\n",__FILE__,__LINE__,message);icalerror_stop_here(); abort();}
-#endif /*__GNUC__*/
-
-#else /* ICAL_ERRORS_ARE_FATAL */
-#define icalerror_assert(test,message) 
-#endif /* ICAL_ERRORS_ARE_FATAL */
-
-/* Check & abort if check fails */
-#define icalerror_check_arg(test,arg) if(!(test)) { icalerror_set_errno(ICAL_BADARG_ERROR); }
-
-/* Check & return void if check fails*/
-#define icalerror_check_arg_rv(test,arg) if(!(test)) {icalerror_set_errno(ICAL_BADARG_ERROR); return; }
-
-/* Check & return 0 if check fails*/
-#define icalerror_check_arg_rz(test,arg) if(!(test)) { icalerror_set_errno(ICAL_BADARG_ERROR); return 0;}
-
-/* Check & return an error if check fails*/
-#define icalerror_check_arg_re(test,arg,error) if(!(test)) { icalerror_stop_here(); assert(0); return error;}
-
-/* Check & return something*/
-#define icalerror_check_arg_rx(test,arg,x) if(!(test)) { icalerror_set_errno(ICAL_BADARG_ERROR); return x;}
-
-
-
-/* String interfaces to set an error to NONFATAL and restore it to its
-   original value */
-
-icalerrorstate icalerror_supress(const char* error);
-void icalerror_restore(const char* error, icalerrorstate es);
-
-
-#endif /* !ICALERROR_H */
-
-
-
diff --git a/libkcal/libical/src/libical/icalmemory.c b/libkcal/libical/src/libical/icalmemory.c
deleted file mode 100644
index 32ab69c2..00000000
--- a/libkcal/libical/src/libical/icalmemory.c
+++ /dev/null
@@ -1,373 +0,0 @@
-/* -*- Mode: C -*-
-  ======================================================================
-  FILE: icalmemory.c
-  CREATOR: eric 30 June 1999
-  
- (C) COPYRIGHT 1999, Eric Busboom <eric@softwarestudio.org>
-     http://www.softwarestudio.org
-    
- The contents of this file are subject to the Mozilla Public License
- Version 1.0 (the "License"); you may not use this file except in
- compliance with the License. You may obtain a copy of the License at
- http://www.mozilla.org/MPL/
- 
- Software distributed under the License is distributed on an "AS IS"
- basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
- the License for the specific language governing rights and
- limitations under the License.
- 
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
- The Original Code is icalmemory.h
-
- ======================================================================*/
-
-/**
- * @file icalmemory.c
- * @brief Common memory management routines.
- *
- * libical often passes strings back to the caller. To make these
- * interfaces simple, I did not want the caller to have to pass in a
- * memory buffer, but having libical pass out newly allocated memory
- * makes it difficult to de-allocate the memory.
- * 
- * The ring buffer in this scheme makes it possible for libical to pass
- * out references to memory which the caller does not own, and be able
- * to de-allocate the memory later. The ring allows libical to have
- * several buffers active simultaneously, which is handy when creating
- * string representations of components. 
- */
-
-#define ICALMEMORY_C
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#ifdef DMALLOC
-#include "dmalloc.h"
-#endif
-
-#include "icalmemory.h"
-#include "icalerror.h"
-
-#include <stdio.h> /* for printf (debugging) */
-#include <stdlib.h> /* for malloc, realloc */
-#include <string.h> /* for memset(), strdup */
-
-#ifdef WIN32
-#include <windows.h>
-#endif
-
-#define BUFFER_RING_SIZE 2500
-#define MIN_BUFFER_SIZE 200
-
-
-/* HACK. Not threadsafe */
-
-typedef struct {
-	int pos;
-	void *ring[BUFFER_RING_SIZE];
-} buffer_ring;
-
-void icalmemory_free_tmp_buffer (void* buf);
-void icalmemory_free_ring_byval(buffer_ring *br);
-
-static buffer_ring* global_buffer_ring = 0;
-
-#ifdef HAVE_PTHREAD
-#include <pthread.h>
-
-static pthread_key_t  ring_key;
-static pthread_once_t ring_key_once = PTHREAD_ONCE_INIT;
-
-static void ring_destroy(void * buf) {
-    if (buf) icalmemory_free_ring_byval((buffer_ring *) buf);
-    pthread_setspecific(ring_key, NULL);
-}
-
-static void ring_key_alloc(void) {  
-    pthread_key_create(&ring_key, ring_destroy);
-}
-#endif
-
-
-static buffer_ring * buffer_ring_new(void) {
-	buffer_ring *br;
-	int i;
-
-	br = (buffer_ring *)malloc(sizeof(buffer_ring));
-
-	for(i=0; i<BUFFER_RING_SIZE; i++){
-	    br->ring[i]  = 0;
-	}
-	br->pos = 0;
-        return(br);
-}
-
-
-#ifdef HAVE_PTHREAD
-static buffer_ring* get_buffer_ring_pthread(void) {
-    buffer_ring *br;
-
-    pthread_once(&ring_key_once, ring_key_alloc);
-
-    br = pthread_getspecific(ring_key);
-
-    if (!br) {
-	br = buffer_ring_new();
-	pthread_setspecific(ring_key, br);
-    }
-    return(br);
-}
-#endif
-
-/* get buffer ring via a single global for a non-threaded program */
-static buffer_ring* get_buffer_ring_global(void) {
-    if (global_buffer_ring == 0) {
-	global_buffer_ring = buffer_ring_new();
-    }
-    return(global_buffer_ring);
-}
-
-static buffer_ring *get_buffer_ring(void) {
-#ifdef HAVE_PTHREAD
-	return(get_buffer_ring_pthread());
-#else
-	return get_buffer_ring_global();
-#endif
-}
-
-
-/** Add an existing buffer to the buffer ring */
-void  icalmemory_add_tmp_buffer(void* buf)
-{
-    buffer_ring *br = get_buffer_ring();
-
-
-    /* Wrap around the ring */
-    if(++(br->pos) == BUFFER_RING_SIZE){
-	br->pos = 0;
-    }
-
-    /* Free buffers as their slots are overwritten */
-    if ( br->ring[br->pos] != 0){
-	free( br->ring[br->pos]);
-    }
-
-    /* Assign the buffer to a slot */
-    br->ring[br->pos] = buf; 
-}
-
-
-/**
- * Create a new temporary buffer on the ring. Libical owns these and
- * will deallocate them. 
- */
-
-void*
-icalmemory_tmp_buffer (size_t size)
-{
-    char *buf;
-
-    if (size < MIN_BUFFER_SIZE){
-	size = MIN_BUFFER_SIZE;
-    }
-    
-    buf = (void*)malloc(size);
-
-    if( buf == 0){
-	icalerror_set_errno(ICAL_NEWFAILED_ERROR);
-	return 0;
-    }
-
-    memset(buf,0,size); 
-
-    icalmemory_add_tmp_buffer(buf);
-
-    return buf;
-}
-
-/** get rid of this buffer ring */
-void icalmemory_free_ring_byval(buffer_ring *br) {
-   int i;
-   for(i=0; i<BUFFER_RING_SIZE; i++){
-    if ( br->ring[i] != 0){
-       free( br->ring[i]);
-    }
-    }
-   free(br);
-}
-
-void icalmemory_free_ring()
-{
-   buffer_ring *br;
-   br = get_buffer_ring();
-
-   icalmemory_free_ring_byval(br);
-#ifdef HAVE_PTHREAD
-  pthread_setspecific(ring_key, 0);
-#else
-  global_buffer_ring = 0;
-#endif
-
-}
-
-
-
-/** Like strdup, but the buffer is on the ring. */
-char*
-icalmemory_tmp_copy(const char* str)
-{
-    char* b = icalmemory_tmp_buffer(strlen(str)+1);
-
-    strcpy(b,str);
-
-    return b;
-}
-    
-
-char* icalmemory_strdup(const char *s)
-{
-    return strdup(s);
-}
-
-void
-icalmemory_free_tmp_buffer (void* buf)
-{
-   if(buf == 0)
-   {
-       return;
-   }
-
-   free(buf);
-}
-
-
-/*
- * These buffer routines create memory the old fashioned way -- so the
- * caller will have to deallocate the new memory 
- */
-
-void* icalmemory_new_buffer(size_t size)
-{
-    void *b = malloc(size);
-
-    if( b == 0){
-	icalerror_set_errno(ICAL_NEWFAILED_ERROR);
-	return 0;
-    }
-
-    memset(b,0,size); 
-
-    return b;
-}
-
-void* icalmemory_resize_buffer(void* buf, size_t size)
-{
-    void *b = realloc(buf, size);
-
-    if( b == 0){
-	icalerror_set_errno(ICAL_NEWFAILED_ERROR);
-	return 0;
-    }
-
-   return b;
-}
-
-void icalmemory_free_buffer(void* buf)
-{
-    free(buf);
-}
-
-void 
-icalmemory_append_string(char** buf, char** pos, size_t* buf_size, 
-			      const char* string)
-{
-    char *new_buf;
-    char *new_pos;
-
-    size_t data_length, final_length, string_length;
-
-#ifndef ICAL_NO_INTERNAL_DEBUG
-    icalerror_check_arg_rv( (buf!=0),"buf");
-    icalerror_check_arg_rv( (*buf!=0),"*buf");
-    icalerror_check_arg_rv( (pos!=0),"pos");
-    icalerror_check_arg_rv( (*pos!=0),"*pos");
-    icalerror_check_arg_rv( (buf_size!=0),"buf_size");
-    icalerror_check_arg_rv( (*buf_size!=0),"*buf_size");
-    icalerror_check_arg_rv( (string!=0),"string");
-#endif 
-
-    string_length = strlen(string);
-    data_length = (size_t)*pos - (size_t)*buf;    
-    final_length = data_length + string_length; 
-
-    if ( final_length >= (size_t) *buf_size) {
-
-	
-	*buf_size  = (*buf_size) * 2  + final_length;
-
-	new_buf = realloc(*buf,*buf_size);
-
-	new_pos = (void*)((size_t)new_buf + data_length);
-	
-	*pos = new_pos;
-	*buf = new_buf;
-    }
-    
-    strcpy(*pos, string);
-
-    *pos += string_length;
-}
-
-
-void 
-icalmemory_append_char(char** buf, char** pos, size_t* buf_size, 
-			      char ch)
-{
-    char *new_buf;
-    char *new_pos;
-
-    size_t data_length, final_length;
-
-#ifndef ICAL_NO_INTERNAL_DEBUG
-    icalerror_check_arg_rv( (buf!=0),"buf");
-    icalerror_check_arg_rv( (*buf!=0),"*buf");
-    icalerror_check_arg_rv( (pos!=0),"pos");
-    icalerror_check_arg_rv( (*pos!=0),"*pos");
-    icalerror_check_arg_rv( (buf_size!=0),"buf_size");
-    icalerror_check_arg_rv( (*buf_size!=0),"*buf_size");
-#endif
-
-    data_length = (size_t)*pos - (size_t)*buf;
-
-    final_length = data_length + 2; 
-
-    if ( final_length > (size_t) *buf_size ) {
-
-	
-	*buf_size  = (*buf_size) * 2  + final_length +1;
-
-	new_buf = realloc(*buf,*buf_size);
-
-	new_pos = (void*)((size_t)new_buf + data_length);
-	
-	*pos = new_pos;
-	*buf = new_buf;
-    }
-
-    **pos = ch;
-    *pos += 1;
-    **pos = 0;
-}
diff --git a/libkcal/libical/src/libical/icalmemory.h b/libkcal/libical/src/libical/icalmemory.h
deleted file mode 100644
index ed07c3f1..00000000
--- a/libkcal/libical/src/libical/icalmemory.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/* -*- Mode: C -*- */
-/*======================================================================
- FILE: icalmemory.h
- CREATOR: eric 30 June 1999
-
-
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
- The Initial Developer of the Original Code is Eric Busboom
-
- (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
-     http://www.softwarestudio.org
-======================================================================*/
-
-#ifndef ICALMEMORY_H
-#define ICALMEMORY_H
-
-#ifndef WIN32
-#include <sys/types.h> /* for size_t */
-#else
-#include <stddef.h>
-#endif
-
-/* Tmp buffers are managed by ical. References can be returned to the
-   caller, although the caller will not own the memory. */
-
-void* icalmemory_tmp_buffer(size_t size);
-char* icalmemory_tmp_copy(const char* str);
-
-/** Add an externally allocated buffer to the ring. */
-void  icalmemory_add_tmp_buffer(void*);
-
-
-/** Free all memory used in the ring */
-void icalmemory_free_ring(void);
-
-/* Non-tmp buffers must be freed. These are mostly wrappers around
- * malloc, etc, but are used so the caller can change the memory
- * allocators in a future version of the library */
-
-void* icalmemory_new_buffer(size_t size);
-void* icalmemory_resize_buffer(void* buf, size_t size);
-void icalmemory_free_buffer(void* buf);
-
-/**
-   icalmemory_append_string will copy the string 'string' to the
-   buffer 'buf' starting at position 'pos', reallocing 'buf' if it is
-   too small. 'buf_size' is the size of 'buf' and will be changed if
-   'buf' is reallocated. 'pos' will point to the last byte of the new
-   string in 'buf', usually a '\0' */
-
-/* THESE ROUTINES CAN NOT BE USED ON TMP BUFFERS. Only use them on
-   normally allocated memory, or on buffers created from
-   icalmemory_new_buffer, never with buffers created by
-   icalmemory_tmp_buffer. If icalmemory_append_string has to resize a
-   buffer on the ring, the ring will loose track of it an you will
-   have memory problems. */
-
-void icalmemory_append_string(char** buf, char** pos, size_t* buf_size, 
-			      const char* string);
-
-/**  icalmemory_append_char is similar, but is appends a character instead of a string */
-void icalmemory_append_char(char** buf, char** pos, size_t* buf_size, 
-			      char ch);
-
-/** A wrapper around strdup. Partly to trap calls to strdup, partly
-    because in -ansi, gcc on Red Hat claims that strdup is undeclared */
-char* icalmemory_strdup(const char *s);
-
-#endif /* !ICALMEMORY_H */
-
-
-
diff --git a/libkcal/libical/src/libical/icalmime.c b/libkcal/libical/src/libical/icalmime.c
deleted file mode 100644
index 0a186d14..00000000
--- a/libkcal/libical/src/libical/icalmime.c
+++ /dev/null
@@ -1,393 +0,0 @@
-/* -*- Mode: C -*-*/
-/*======================================================================
- FILE: icalmime.c
- CREATOR: eric 26 July 2000
-
-
-
- (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
-     http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
- The Original Code is eric. The Initial Developer of the Original
- Code is Eric Busboom
-
-
-======================================================================*/
-
-#include "icalmime.h"
-#include "icalerror.h"
-#include "icalmemory.h"
-#include "sspm.h"
-#include "stdlib.h"
-#include <string.h> /* For strdup */
-#include <stdio.h> /* for snprintf*/
-
-#ifdef DMALLOC
-#include "dmalloc.h"
-#endif
-
-#ifdef WIN32
-#define snprintf      _snprintf
-#define strcasecmp    stricmp
-#endif
-
-/* These *_part routines are called by the MIME parser via the
-   local_action_map */
-
-struct text_part
-{
-	char* buf;
-	char* buf_pos;
-	size_t buf_size;
-};
-
-void* icalmime_text_new_part()
-{
-
-#define BUF_SIZE 2048
-
-    struct text_part* impl;
-
-    if ( ( impl = (struct text_part*)
-	   malloc(sizeof(struct text_part))) == 0) {
-	return 0;
-    }
-
-    impl->buf =  icalmemory_new_buffer(BUF_SIZE);
-    impl->buf_pos = impl->buf;
-    impl->buf_size = BUF_SIZE;
-
-    return impl;    
-}
-void icalmime_text_add_line(void *part, 
-			    struct sspm_header *header, 
-			    const char* line, size_t size)
-{
-    struct text_part* impl = (struct text_part*) part;
-    (void)header;
-    (void)size;
-
-    icalmemory_append_string(&(impl->buf),&(impl->buf_pos),
-			     &(impl->buf_size),line);
-    
-}
-
-void* icalmime_textcalendar_end_part(void* part)
-{
-
-    struct text_part* impl = (struct text_part*) part;
-    icalcomponent *c = icalparser_parse_string(impl->buf);
-
-    icalmemory_free_buffer(impl->buf);
-    free(impl);
-
-    return c;
-
-}
-
-void* icalmime_text_end_part(void* part)
-{
-    struct text_part* impl = ( struct text_part*) part;
-
-    icalmemory_add_tmp_buffer(impl->buf);
-    /* What for? free(impl); */
-
-    return impl->buf;
-}
-
-void icalmime_text_free_part(void *part)
-{
-    part = part;
-}
-
-
-/* Ignore Attachments for now */
-
-void* icalmime_attachment_new_part()
-{
-    return 0;
-}
-void icalmime_attachment_add_line(void *part, struct sspm_header *header, 
-				  const char* line, size_t size)
-{
-    (void)part;
-    (void)header;
-    (void)line;
-    (void)size;
-}
-
-void* icalmime_attachment_end_part(void* part)
-{
-    (void)part;
-    return 0;
-}
-
-void icalmime_attachment_free_part(void *part)
-{
-    (void)part;
-}
-
-
-
-
-struct sspm_action_map icalmime_local_action_map[] = 
-{
-    {SSPM_TEXT_MAJOR_TYPE,SSPM_CALENDAR_MINOR_TYPE,icalmime_text_new_part,icalmime_text_add_line,icalmime_textcalendar_end_part,icalmime_text_free_part},
-    {SSPM_TEXT_MAJOR_TYPE,SSPM_ANY_MINOR_TYPE,icalmime_text_new_part,icalmime_text_add_line,icalmime_text_end_part,icalmime_text_free_part},
-    {SSPM_TEXT_MAJOR_TYPE,SSPM_PLAIN_MINOR_TYPE,icalmime_text_new_part,icalmime_text_add_line,icalmime_text_end_part,icalmime_text_free_part},
-    {SSPM_APPLICATION_MAJOR_TYPE,SSPM_CALENDAR_MINOR_TYPE,icalmime_attachment_new_part,icalmime_attachment_add_line,icalmime_attachment_end_part,icalmime_attachment_free_part},
-    {SSPM_IMAGE_MAJOR_TYPE,SSPM_CALENDAR_MINOR_TYPE,icalmime_attachment_new_part,icalmime_attachment_add_line,icalmime_attachment_end_part,icalmime_attachment_free_part},
-    {SSPM_AUDIO_MAJOR_TYPE,SSPM_CALENDAR_MINOR_TYPE,icalmime_attachment_new_part,icalmime_attachment_add_line,icalmime_attachment_end_part,icalmime_attachment_free_part},
-    {SSPM_IMAGE_MAJOR_TYPE,SSPM_CALENDAR_MINOR_TYPE,icalmime_attachment_new_part,icalmime_attachment_add_line,icalmime_attachment_end_part,icalmime_attachment_free_part},
-   {SSPM_UNKNOWN_MAJOR_TYPE,SSPM_UNKNOWN_MINOR_TYPE,0,0,0,0}
-};
-
-#define NUM_PARTS 100 /* HACK. Hard Limit */
-
-
-
-struct sspm_part* icalmime_make_part(icalcomponent* comp)
-{
-    comp = comp;
-    return 0;
-}
-
-char* icalmime_as_mime_string(char* icalcomponent);
-
-icalcomponent* icalmime_parse(char* (*get_string)(char *s, size_t size, 
-						       void *d),
-				void *data)
-{
-    struct sspm_part *parts;
-    int i, last_level=0;
-    icalcomponent *root=0, *parent=0, *comp=0, *last = 0;
-
-    if ( (parts = (struct sspm_part *)
-	  malloc(NUM_PARTS*sizeof(struct sspm_part)))==0) {
-	icalerror_set_errno(ICAL_NEWFAILED_ERROR);
-	return 0;
-    }
-
-    memset(parts,0,sizeof(parts));
-
-    sspm_parse_mime(parts, 
-		    NUM_PARTS, /* Max parts */
-		    icalmime_local_action_map, /* Actions */ 
-		    get_string,
-		    data, /* data for get_string*/
-		    0 /* First header */);
-
-
-
-    for(i = 0; i <NUM_PARTS && parts[i].header.major != SSPM_NO_MAJOR_TYPE ; i++){
-
-#define TMPSZ 1024
-	char mimetype[TMPSZ];			       
-	const char* major = sspm_major_type_string(parts[i].header.major);
-	const char* minor = sspm_minor_type_string(parts[i].header.minor);
-
-	if(parts[i].header.minor == SSPM_UNKNOWN_MINOR_TYPE ){
-	    assert(parts[i].header.minor_text !=0);
-	    minor = parts[i].header.minor_text;
-	}
-	
-	snprintf(mimetype,sizeof(mimetype),"%s/%s",major,minor);
-
-	comp = icalcomponent_new(ICAL_XLICMIMEPART_COMPONENT);
-
-	if(comp == 0){
-	    /* HACK Handle Error */
-	    assert(0);
-	}
-
-	if(parts[i].header.error!=SSPM_NO_ERROR){
-	    const char *str="Unknown error";
-	    char temp[256];
-
-	    if(parts[i].header.error==SSPM_UNEXPECTED_BOUNDARY_ERROR){
-		str = "Got an unexpected boundary, possibly due to a MIME header for a MULTIPART part that is missing the Content-Type line";
-	    }
-
-	    if(parts[i].header.error==SSPM_WRONG_BOUNDARY_ERROR){
-		str = "Got the wrong boundary for the opening of a MULTIPART part.";
-	    }
-
-	    if(parts[i].header.error==SSPM_NO_BOUNDARY_ERROR){
-		str = "Got a multipart header that did not specify a boundary";
-	    }
-
-	    if(parts[i].header.error==SSPM_NO_HEADER_ERROR){
-		str = "Did not get a header for the part. Is there a blank\
-line between the header and the previous boundary\?";
-
-	    }
-
-	    if(parts[i].header.error_text != 0){
-		snprintf(temp,256,
-			 "%s: %s",str,parts[i].header.error_text);
-	    } else {
-		strcpy(temp,str);
-	    }
-
-	    icalcomponent_add_property
-		(comp,
-		 icalproperty_vanew_xlicerror(
-		     temp,
-		     icalparameter_new_xlicerrortype(
-			 ICAL_XLICERRORTYPE_MIMEPARSEERROR),
-		     0));  
-	}
-
-	if(parts[i].header.major != SSPM_NO_MAJOR_TYPE &&
-	   parts[i].header.major != SSPM_UNKNOWN_MAJOR_TYPE){
-
-	    icalcomponent_add_property(comp,
-		icalproperty_new_xlicmimecontenttype((char*)
-				icalmemory_strdup(mimetype)));
-
-	}
-
-	if (parts[i].header.encoding != SSPM_NO_ENCODING){
-
-	    icalcomponent_add_property(comp,
-	       icalproperty_new_xlicmimeencoding(
-		   sspm_encoding_string(parts[i].header.encoding)));
-	}
-
-	if (parts[i].header.filename != 0){
-	    icalcomponent_add_property(comp,
-	       icalproperty_new_xlicmimefilename(parts[i].header.filename));
-	}
-
-	if (parts[i].header.content_id != 0){
-	    icalcomponent_add_property(comp,
-	       icalproperty_new_xlicmimecid(parts[i].header.content_id));
-	}
-
-	if (parts[i].header.charset != 0){
-	    icalcomponent_add_property(comp,
-	       icalproperty_new_xlicmimecharset(parts[i].header.charset));
-	}
-
-	/* Add iCal components as children of the component */
-	if(parts[i].header.major == SSPM_TEXT_MAJOR_TYPE &&
-	   parts[i].header.minor == SSPM_CALENDAR_MINOR_TYPE &&
-	   parts[i].data != 0){
-
-	    icalcomponent_add_component(comp,
-					(icalcomponent*)parts[i].data);
-	    parts[i].data = 0;
-
-	} else 	if(parts[i].header.major == SSPM_TEXT_MAJOR_TYPE &&
-	   parts[i].header.minor != SSPM_CALENDAR_MINOR_TYPE &&
-	   parts[i].data != 0){
-
-	    /* Add other text components as "DESCRIPTION" properties */
-
-	    icalcomponent_add_property(comp,
-               icalproperty_new_description(
-		   (char*)icalmemory_strdup((char*)parts[i].data)));
-
-	    parts[i].data = 0;
-	}
-	
-
-	if(root!= 0 && parts[i].level == 0){
-	    /* We've already assigned the root, but there is another
-               part at the root level. This is probably a parse
-               error*/
-	    icalcomponent_free(comp);
-	    continue;
-	}
-
-	if(parts[i].level == last_level && last_level != 0){
-	    icalerror_assert(parent!=0,"No parent for adding component");
-
-	    icalcomponent_add_component(parent,comp);
-
-	} else if (parts[i].level == last_level && last_level == 0 &&
-	    root == 0) {
-
-	    root = comp;
-	    parent = comp;
-
-	} else if (parts[i].level > last_level){	    
-
-	    parent = last;
-	    icalcomponent_add_component(parent,comp);
-
-	    last_level = parts[i].level;
-
-	} else if (parts[i].level < last_level){
-
-	    parent = icalcomponent_get_parent(parent);
-	    icalcomponent_add_component(parent,comp);
-
-	    last_level = parts[i].level;
-	} else { 
-	    assert(0);
-	}
-
-	last = comp;
-	last_level = parts[i].level;
-	assert(parts[i].data == 0);
-    }
-
-    sspm_free_parts(parts,NUM_PARTS);
-    free(parts);
-
-    return root;
-}
-
-
-
-int icalmime_test(char* (*get_string)(char *s, size_t size, void *d),
-		  void *data)
-{
-    char *out;
-    struct sspm_part *parts;
-    int i;
-
-    if ( (parts = (struct sspm_part *)
-	  malloc(NUM_PARTS*sizeof(struct sspm_part)))==0) {
-	icalerror_set_errno(ICAL_NEWFAILED_ERROR);
-	return 0;
-    }
-
-    memset(parts,0,sizeof(parts));
-
-    sspm_parse_mime(parts, 
-		    NUM_PARTS, /* Max parts */
-		    icalmime_local_action_map, /* Actions */ 
-		    get_string,
-		    data, /* data for get_string*/
-		    0 /* First header */);
-
-   for(i = 0; i <NUM_PARTS && parts[i].header.major != SSPM_NO_MAJOR_TYPE ; 
-       i++){
-       if(parts[i].header.minor == SSPM_CALENDAR_MINOR_TYPE){
-	   parts[i].data = icalmemory_strdup(
-	       icalcomponent_as_ical_string((icalcomponent*)parts[i].data));
-       }
-   }
-
-    sspm_write_mime(parts,NUM_PARTS,&out,"To: bob@bob.org");
-
-    printf("%s\n",out);
-
-    return 0;
-
-}
-
-
diff --git a/libkcal/libical/src/libical/icalmime.h b/libkcal/libical/src/libical/icalmime.h
deleted file mode 100644
index 8d42dde3..00000000
--- a/libkcal/libical/src/libical/icalmime.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/* -*- Mode: C -*- */
-/*======================================================================
- FILE: icalmime.h
- CREATOR: eric 26 July 2000
-
-
-
- (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
-     http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-======================================================================*/
-
-#ifndef ICALMIME_H
-#define ICALMIME_H
-
-#include "icalcomponent.h"
-#include "icalparser.h"
-
-icalcomponent* icalmime_parse(	char* (*line_gen_func)(char *s, size_t size, 
-						       void *d),
-				void *data);
-
-/* The inverse of icalmime_parse, not implemented yet. Use sspm.h directly.  */
-char* icalmime_as_mime_string(char* component);
-
-
-
-#endif /* !ICALMIME_H */
-
-
-
diff --git a/libkcal/libical/src/libical/icalparameter.c b/libkcal/libical/src/libical/icalparameter.c
deleted file mode 100644
index 52029e31..00000000
--- a/libkcal/libical/src/libical/icalparameter.c
+++ /dev/null
@@ -1,384 +0,0 @@
-/* -*- Mode: C -*-
-  ======================================================================
-  FILE: icalderivedparameters.{c,h}
-  CREATOR: eric 09 May 1999
-  
-    
-
- (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
-     http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-  The original code is icalderivedparameters.{c,h}
-
-  Contributions from:
-     Graham Davison <g.m.davison@computer.org>
-
- ======================================================================*/
-/*#line 29 "icalparameter.c.in"*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-
-#include "icalparameter.h"
-#include "icalproperty.h"
-#include "icalerror.h"
-#include "icalmemory.h"
-#include "icalparameterimpl.h"
-
-#include <stdlib.h> /* for malloc() */
-#include <errno.h>
-#include <string.h> /* for memset() */
-
-/* In icalderivedparameter */
-icalparameter* icalparameter_new_from_value_string(icalparameter_kind kind,const  char* val);
-
-
-struct icalparameter_impl* icalparameter_new_impl(icalparameter_kind kind)
-{
-    struct icalparameter_impl* v;
-
-    if ( ( v = (struct icalparameter_impl*)
-	   malloc(sizeof(struct icalparameter_impl))) == 0) {
-	icalerror_set_errno(ICAL_NEWFAILED_ERROR);
-	return 0;
-    }
-    
-    strcpy(v->id,"para");
-
-    v->kind = kind;
-    v->size = 0;
-    v->string = 0;
-    v->x_name = 0;
-    v->parent = 0;
-    v->data = 0;
-
-    return v;
-}
-
-icalparameter*
-icalparameter_new (icalparameter_kind kind)
-{
-    struct icalparameter_impl* v = icalparameter_new_impl(kind);
-
-    return (icalparameter*) v;
-
-}
-
-void
-icalparameter_free (icalparameter* param)
-{
-
-/*  HACK. This always triggers, even when parameter is non-zero
-    icalerror_check_arg_rv((parameter==0),"parameter");*/
-
-
-#ifdef ICAL_FREE_ON_LIST_IS_ERROR
-    icalerror_assert( (param->parent ==0),"Tried to free a parameter that is still attached to a component. ");
-    
-#else
-    if(param->parent !=0){
-	return;
-    }
-#endif
-
-    
-    if (param->string != 0){
-	free ((void*)param->string);
-    }
-    
-    if (param->x_name != 0){
-	free ((void*)param->x_name);
-    }
-    
-    memset(param,0,sizeof(param));
-
-    param->parent = 0;
-    param->id[0] = 'X';
-    free(param);
-}
-
-
-
-icalparameter* 
-icalparameter_new_clone(icalparameter* old)
-{
-    struct icalparameter_impl *new;
-
-    new = icalparameter_new_impl(old->kind);
-
-    icalerror_check_arg_rz((old!=0),"param");
-
-    if (new == 0){
-	return 0;
-    }
-
-    memcpy(new,old,sizeof(struct icalparameter_impl));
-
-    if (old->string != 0){
-	new->string = icalmemory_strdup(old->string);
-	if (new->string == 0){
-	    icalparameter_free(new);
-	    return 0;
-	}
-    }
-
-    if (old->x_name != 0){
-	new->x_name = icalmemory_strdup(old->x_name);
-	if (new->x_name == 0){
-	    icalparameter_free(new);
-	    return 0;
-	}
-    }
-
-    return new;
-}
-
-icalparameter* icalparameter_new_from_string(const char *str)
-{
-    char* eq;
-    char* cpy;
-    icalparameter_kind kind;
-    icalparameter *param;
-
-    icalerror_check_arg_rz(str != 0,"str");
-
-    cpy = icalmemory_strdup(str);
-
-    if (cpy == 0){
-        icalerror_set_errno(ICAL_NEWFAILED_ERROR);
-        return 0;
-    }
-
-    eq = strchr(cpy,'=');
-
-    if(eq == 0){
-        icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-        return 0;
-    }
-
-    *eq = '\0';
-
-    eq++;
-
-    kind = icalparameter_string_to_kind(cpy);
-
-    if(kind == ICAL_NO_PARAMETER){
-        icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-        return 0;
-    }
-
-    param = icalparameter_new_from_value_string(kind,eq);
-
-    if(kind == ICAL_X_PARAMETER){
-        icalparameter_set_xname(param,cpy);
-    }
-
-    free(cpy);
-
-    return param;
-    
-}
-
-/**
- * Return a string representation of the parameter according to RFC2445.
- *
- * param	= param-name "=" param-value
- * param-name	= iana-token / x-token
- * param-value	= paramtext /quoted-string
- * paramtext	= *SAFE-SHARE
- * quoted-string= DQUOTE *QSAFE-CHARE DQUOTE
- * QSAFE-CHAR	= any character except CTLs and DQUOTE
- * SAFE-CHAR	= any character except CTLs, DQUOTE. ";", ":", ","
- */
-char*
-icalparameter_as_ical_string (icalparameter* param)
-{
-    size_t buf_size = 1024;
-    char* buf; 
-    char* buf_ptr;
-    char *out_buf;
-    const char *kind_string;
-
-    icalerror_check_arg_rz( (param!=0), "parameter");
-
-    /* Create new buffer that we can append names, parameters and a
-       value to, and reallocate as needed. Later, this buffer will be
-       copied to a icalmemory_tmp_buffer, which is managed internally
-       by libical, so it can be given to the caller without fear of
-       the caller forgetting to free it */
-
-    buf = icalmemory_new_buffer(buf_size);
-    buf_ptr = buf;
-
-    if(param->kind == ICAL_X_PARAMETER) {
-
-	icalmemory_append_string(&buf, &buf_ptr, &buf_size, 
-				 icalparameter_get_xname(param));
-
-    } else {
-
-	kind_string = icalparameter_kind_to_string(param->kind);
-	
-	if (param->kind == ICAL_NO_PARAMETER || 
-	    param->kind == ICAL_ANY_PARAMETER || 
-	    kind_string == 0)
-	{
-	    icalerror_set_errno(ICAL_BADARG_ERROR);
-	    return 0;
-	}
-	
-	
-	/* Put the parameter name into the string */
-	icalmemory_append_string(&buf, &buf_ptr, &buf_size, kind_string);
-
-    }
-
-    icalmemory_append_string(&buf, &buf_ptr, &buf_size, "=");
-
-    if(param->string !=0){
-        int qm = 0;
-
-	/* Encapsulate the property in quotes if necessary */
-	if (strpbrk(param->string, ";:,") != 0) {
-		icalmemory_append_char (&buf, &buf_ptr, &buf_size, '"');
-		qm = 1;
-	}
-        icalmemory_append_string(&buf, &buf_ptr, &buf_size, param->string); 
-	if (qm == 1) {
-		icalmemory_append_char (&buf, &buf_ptr, &buf_size, '"');
-	}
-    } else if (param->data != 0){
-        const char* str = icalparameter_enum_to_string(param->data);
-        icalmemory_append_string(&buf, &buf_ptr, &buf_size, str); 
-    } else {
-        icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-        return 0;
-    }
-
-    /* Now, copy the buffer to a tmp_buffer, which is safe to give to
-       the caller without worring about de-allocating it. */
-    
-    out_buf = icalmemory_tmp_buffer(strlen(buf)+1);
-    strcpy(out_buf, buf);
-
-    icalmemory_free_buffer(buf);
-
-    return out_buf;
-
-}
-
-
-int
-icalparameter_is_valid (icalparameter* parameter);
-
-
-icalparameter_kind
-icalparameter_isa (icalparameter* parameter)
-{
-    if(parameter == 0){
-	return ICAL_NO_PARAMETER;
-    }
-
-    return parameter->kind;
-}
-
-
-int
-icalparameter_isa_parameter (void* parameter)
-{
-    struct icalparameter_impl *impl = (struct icalparameter_impl *)parameter;
-
-    if (parameter == 0){
-	return 0;
-    }
-
-    if (strcmp(impl->id,"para") == 0) {
-	return 1;
-    } else {
-	return 0;
-    }
-}
-
-
-void
-icalparameter_set_xname (icalparameter* param, const char* v)
-{
-    icalerror_check_arg_rv( (param!=0),"param");
-    icalerror_check_arg_rv( (v!=0),"v");
-
-    if (param->x_name != 0){
-	free((void*)param->x_name);
-    }
-
-    param->x_name = icalmemory_strdup(v);
-
-    if (param->x_name == 0){
-	errno = ENOMEM;
-    }
-
-}
-
-const char*
-icalparameter_get_xname (icalparameter* param)
-{
-    icalerror_check_arg_rz( (param!=0),"param");
-
-    return param->x_name;
-}
-
-void
-icalparameter_set_xvalue (icalparameter* param, const char* v)
-{
-    icalerror_check_arg_rv( (param!=0),"param");
-    icalerror_check_arg_rv( (v!=0),"v");
-
-    if (param->string != 0){
-	free((void*)param->string);
-    }
-
-    param->string = icalmemory_strdup(v);
-
-    if (param->string == 0){
-	errno = ENOMEM;
-    }
-
-}
-
-const char*
-icalparameter_get_xvalue (icalparameter* param)
-{
-    icalerror_check_arg_rz( (param!=0),"param");
-
-    return param->string;
-}
-
-void icalparameter_set_parent(icalparameter* param,
-			     icalproperty* property)
-{
-    icalerror_check_arg_rv( (param!=0),"param");
-
-    param->parent = property;
-}
-
-icalproperty* icalparameter_get_parent(icalparameter* param)
-{
-    icalerror_check_arg_rz( (param!=0),"param");
-
-    return param->parent;
-}
-
-
-/* Everything below this line is machine generated. Do not edit. */
-/* ALTREP */
diff --git a/libkcal/libical/src/libical/icalparameter.h b/libkcal/libical/src/libical/icalparameter.h
deleted file mode 100644
index dc5d0548..00000000
--- a/libkcal/libical/src/libical/icalparameter.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/* -*- Mode: C -*- */
-/*======================================================================
-  FILE: icalparam.h
-  CREATOR: eric 20 March 1999
-
-
-
-  
-
- (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
-     http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-  The original code is icalparam.h
-
-  ======================================================================*/
-
-#ifndef ICALPARAM_H
-#define ICALPARAM_H
-
-#include "icalderivedparameter.h"
-
-/* Declared in icalderivedparameter.h */
-/*typedef struct icalparameter_impl icalparameter;*/
-
-icalparameter* icalparameter_new(icalparameter_kind kind);
-icalparameter* icalparameter_new_clone(icalparameter* p);
-
-/* Create from string of form "PARAMNAME=VALUE" */
-icalparameter* icalparameter_new_from_string(const char* value);
-
-/* Create from just the value, the part after the "=" */
-icalparameter* icalparameter_new_from_value_string(icalparameter_kind kind, const char* value);
-
-void icalparameter_free(icalparameter* parameter);
-
-char* icalparameter_as_ical_string(icalparameter* parameter);
-
-int icalparameter_is_valid(icalparameter* parameter);
-
-icalparameter_kind icalparameter_isa(icalparameter* parameter);
-
-int icalparameter_isa_parameter(void* param);
-
-/* Access the name of an X parameer */
-void icalparameter_set_xname (icalparameter* param, const char* v);
-const char* icalparameter_get_xname(icalparameter* param);
-void icalparameter_set_xvalue (icalparameter* param, const char* v);
-const char* icalparameter_get_xvalue(icalparameter* param);
-
-/* Convert enumerations */
-
-const char* icalparameter_kind_to_string(icalparameter_kind kind);
-icalparameter_kind icalparameter_string_to_kind(const char* string);
-
-
-
-#endif 
diff --git a/libkcal/libical/src/libical/icalparameterimpl.h b/libkcal/libical/src/libical/icalparameterimpl.h
deleted file mode 100644
index f2fed404..00000000
--- a/libkcal/libical/src/libical/icalparameterimpl.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/* -*- Mode: C -*-
-  ======================================================================
-  FILE: icalparameterimpl.h
-  CREATOR: eric 09 May 1999
-  
-    
-
- (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
-     http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-  The original code is icalderivedparameters.{c,h}
-
-  Contributions from:
-     Graham Davison (g.m.davison@computer.org)
-
- ======================================================================*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef ICALPARAMETER_IMPL
-#define ICALPARAMETER_IMPL
-
-#include "icalparameter.h"
-#include "icalproperty.h"
-
-struct icalparameter_impl
-{
-	icalparameter_kind kind;
-	char id[5];
-	int size;
-	const char* string;
-	const char* x_name;
-	icalproperty* parent;
-
-	int data;
-};
-
-
-#endif /*ICALPARAMETER_IMPL*/
diff --git a/libkcal/libical/src/libical/icalparser.c b/libkcal/libical/src/libical/icalparser.c
deleted file mode 100644
index 95843c96..00000000
--- a/libkcal/libical/src/libical/icalparser.c
+++ /dev/null
@@ -1,1105 +0,0 @@
-/* -*- Mode: C; tab-width: 4; c-basic-offset: 8; -*-
-  ======================================================================
-  FILE: icalparser.c
-  CREATOR: eric 04 August 1999
-  
-    
- The contents of this file are subject to the Mozilla Public License
- Version 1.0 (the "License"); you may not use this file except in
- compliance with the License. You may obtain a copy of the License at
- http://www.mozilla.org/MPL/
- 
- Software distributed under the License is distributed on an "AS IS"
- basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
- the License for the specific language governing rights and
- limitations under the License.
- 
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-  The Initial Developer of the Original Code is Eric Busboom
-
- (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
-     http://www.softwarestudio.org
- ======================================================================*/
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-
-#include "pvl.h"
-#include "icalerror.h"
-#include "icalvalue.h"
-#include "icalderivedparameter.h"
-#include "icalparameter.h"
-#include "icalproperty.h"
-#include "icalcomponent.h"
-
-#include <string.h> /* For strncpy & size_t */
-#include <stdio.h> /* For FILE and fgets and snprintf */
-#include <stdlib.h> /* for free */
-#include <ctype.h>
-
-#include "icalmemory.h"
-#include "icalparser.h"
-
-#ifdef HAVE_WCTYPE_H
-# include <wctype.h>
-/* Some systems have an imcomplete implementation on wctype (FreeBSD,
- * Darwin). Cope with that. */
-# ifndef HAVE_ISWSPACE
-#  define iswspace        isspace
-# endif
-#else
-# ifndef HAVE_ISWSPACE
-#  define iswspace        isspace
-# endif
-#endif
-
-#ifdef WIN32
-#define snprintf      _snprintf
-#define strcasecmp    stricmp
-#endif
-
-char* icalparser_get_next_char(char c, char *str, int qm);
-char* icalparser_get_next_parameter(char* line,char** end);
-char* icalparser_get_next_value(char* line, char **end, icalvalue_kind kind);
-char* icalparser_get_prop_name(char* line, char** end);
-char* icalparser_get_param_name(char* line, char **end);
-
-#define TMP_BUF_SIZE 80
-
-struct icalparser_impl 
-{
-    int buffer_full; /* flag indicates that temp is smaller that 
-                        data being read into it*/
-    int continuation_line; /* last line read was a continuation line */
-    size_t tmp_buf_size; 
-    char temp[TMP_BUF_SIZE];
-    icalcomponent *root_component;
-    int version; 
-    int level;
-    int lineno;
-    icalparser_state state;
-    pvl_list components;
-    
-    void *line_gen_data;
-
-};
-
-
-icalparser* icalparser_new(void)
-{
-    struct icalparser_impl* impl = 0;
-    if ( ( impl = (struct icalparser_impl*)
-	   malloc(sizeof(struct icalparser_impl))) == 0) {
-	icalerror_set_errno(ICAL_NEWFAILED_ERROR);
-	return 0;
-    }
-    
-    impl->root_component = 0;
-    impl->components  = pvl_newlist();  
-    impl->level = 0;
-    impl->state = ICALPARSER_SUCCESS;
-    impl->tmp_buf_size = TMP_BUF_SIZE;
-    impl->buffer_full = 0;
-	impl->continuation_line = 0;
-    impl->lineno = 0;
-    impl->continuation_line = 0;
-    memset(impl->temp,0, TMP_BUF_SIZE);
-
-    return (icalparser*)impl;
-}
-
-
-void icalparser_free(icalparser* parser)
-{
-    icalcomponent *c;
-
-    if (parser->root_component != 0){
-	icalcomponent_free(parser->root_component);
-    }
-
-    while( (c=pvl_pop(parser->components)) != 0){
-	icalcomponent_free(c);
-    }
-    
-    pvl_free(parser->components);
-    
-    free(parser);
-}
-
-void icalparser_set_gen_data(icalparser* parser, void* data)
-{
-		parser->line_gen_data  = data;
-}
-
-
-icalvalue* icalvalue_new_From_string_with_error(icalvalue_kind kind, 
-                                                char* str, 
-                                                icalproperty **error);
-
-
-
-char* icalparser_get_next_char(char c, char *str, int qm)
-{
-    int quote_mode = 0;
-    char* p;
-
-    for(p=str; *p!=0; p++){
-	    if (qm == 1) {
-				if ( quote_mode == 0 && *p=='"' && *(p-1) != '\\' ){
-						quote_mode =1;
-						continue;
-				}
-
-				if ( quote_mode == 1 && *p=='"' && *(p-1) != '\\' ){
-						quote_mode =0;
-						continue;
-				}
-	    }
-		
-		if (quote_mode == 0 &&  *p== c  && *(p-1) != '\\' ){
-				return p;
-		} 
-
-    }
-
-    return 0;
-}
-
-
-/** make a new tmp buffer out of a substring */
-static char* make_segment(char* start, char* end)
-{
-    char *buf, *tmp;
-    size_t size = (size_t)end - (size_t)start;
-    
-    buf = icalmemory_tmp_buffer(size+1);
-    
-
-    strncpy(buf,start,size);
-    *(buf+size) = 0;
-
-	tmp = (buf+size);
-	while ( *tmp == '\0' || iswspace(*tmp) )
-	{
-		*tmp = 0;
-		tmp--;
-	}
-    
-    return buf;
-}
-
-
-char* icalparser_get_prop_name(char* line, char** end)
-{
-    char* p;
-    char* v;
-    char *str;
-
-    p = icalparser_get_next_char(';',line,1); 
-    v = icalparser_get_next_char(':',line,1); 
-    if (p== 0 && v == 0) {
-	return 0;
-    }
-
-    /* There is no ';' or, it is after the ';' that marks the beginning of
-       the value */
-    if (v!=0 && ( p == 0 || p > v)){
-	str = make_segment(line,v);
-	*end = v+1;
-    } else {
-	str = make_segment(line,p);
-	*end = p+1;
-    }
-
-    return str;
-}
-
-
-char* icalparser_get_param_name(char* line, char **end)
-{
-    char* next; 
-    char *str;
-
-    next = icalparser_get_next_char('=',line,1);
-
-    if (next == 0) {
-	return 0;
-    }
-
-    str = make_segment(line,next);
-    *end = next+1;
-    if (**end == '"') {
-        *end = *end+1;
-	    next = icalparser_get_next_char('"',*end,0);
-	    if (next == 0) {
-		    return 0;
-	    }
-
-	    *end = make_segment(*end,next);
-    }
-
-    return str;
-}
-
-
-char* icalparser_get_next_paramvalue(char* line, char **end)
-{
-    char* next; 
-    char *str;
-
-    next = icalparser_get_next_char(',',line,1);
-
-    if (next == 0){
-	next = (char*)(size_t)line+(size_t)strlen(line);\
-    }
-
-    if (next == line){
-	return 0;
-    } else {
-	str = make_segment(line,next);
-	*end = next+1;
-	return str;
-    }
-}
-
-
-/**
-   A property may have multiple values, if the values are separated by
-   commas in the content line. This routine will look for the next
-   comma after line and will set the next place to start searching in
-   end. */
-
-char* icalparser_get_next_value(char* line, char **end, icalvalue_kind kind)
-{
-    
-    char* next;
-    char *p;
-    char *str;
-    size_t length = strlen(line);
-
-    p = line;
-    while(1){
-
-	next = icalparser_get_next_char(',',p,1);
-
-	/* Unforunately, RFC2445 says that for the RECUR value, COMMA
-	   can both separate digits in a list, and it can separate
-	   multiple recurrence specifications. This is not a friendly
-	   part of the spec. This weirdness tries to
-	   distinguish the two uses. it is probably a HACK*/
-      
-	if( kind == ICAL_RECUR_VALUE ) {
-	    if ( next != 0 &&
-		 (*end+length) > next+5 &&
-		 strncmp(next,"FREQ",4) == 0
-		) {
-		/* The COMMA was followed by 'FREQ', is it a real separator*/
-		/* Fall through */
-	    } else if (next != 0){
-		/* Not real, get the next COMMA */
-		p = next+1;
-		next = 0;
-		continue;
-	    } 
-	}
-	/* ignore all , for query value. select dtstart, dtend etc ... */
-	else if( kind == ICAL_QUERY_VALUE) {
-	    if ( next != 0) {
-		p = next+1;
-		continue;
-	    }
-	    else
-		break;
-	}
-
-	/* If the comma is preceded by a '\', then it is a literal and
-	   not a value separator*/  
-      
-	if ( (next!=0 && *(next-1) == '\\') ||
-	     (next!=0 && *(next-3) == '\\')
-	    ) 
-	    /*second clause for '/' is on prev line. HACK may be out of bounds */
-	{
-	    p = next+1;
-	} else {
-	    break;
-	}
-
-    }
-
-    if (next == 0){
-	next = (char*)(size_t)line+length;
-	*end = next;
-    } else {
-	*end = next+1;
-    }
-
-    if (next == line){
-	return 0;
-    } 
-	
-
-    str = make_segment(line,next);
-    return str;
-   
-}
-
-char* icalparser_get_next_parameter(char* line,char** end)
-{
-    char *next;
-    char *v;
-    char *str;
-
-    v = icalparser_get_next_char(':',line,1); 
-    next = icalparser_get_next_char(';', line,1);
-    
-    /* There is no ';' or, it is after the ':' that marks the beginning of
-       the value */
-
-    if (next == 0 || next > v) {
-	next = icalparser_get_next_char(':', line,1);
-    }
-
-    if (next != 0) {
-	str = make_segment(line,next);
-	*end = next+1;
-	return str;
-    } else {
-	*end = line;
-	return 0;
-    }
-}
-
-
-/**
- * Get a single property line, from the property name through the
- * final new line, and include any continuation lines
- */
-char* icalparser_get_line(icalparser *parser,
-                          char* (*line_gen_func)(char *s, size_t size, void *d))
-{
-    char *line;
-    char *line_p;
-    size_t buf_size = parser->tmp_buf_size;
-    
-    line_p = line = icalmemory_new_buffer(buf_size);
-    line[0] = '\0';
-   
-    /* Read lines by calling line_gen_func and putting the data into
-       parser->temp. If the line is a continuation line ( begins with a
-       space after a newline ) then append the data onto line and read
-       again. Otherwise, exit the loop. */
-
-    while(1) {
-
-        /* The first part of the loop deals with the temp buffer,
-           which was read on he last pass through the loop. The
-           routine is split like this because it has to read lone line
-           ahead to determine if a line is a continuation line. */
-
-
-	/* The tmp buffer is not clear, so transfer the data in it to the
-	   output. This may be left over from a previous call */
-	if (parser->temp[0] != '\0' ) {
-
-	    /* If the last position in the temp buffer is occupied,
-               mark the buffer as full. The means we will do another
-               read later, because the line is not finished */
-	    if (parser->temp[parser->tmp_buf_size-1] == 0 &&
-		parser->temp[parser->tmp_buf_size-2] != '\n'&& 
-                parser->temp[parser->tmp_buf_size-2] != 0 ){
-		parser->buffer_full = 1;
-	    } else {
-		parser->buffer_full = 0;
-	    }
-
-	    /* Copy the temp to the output and clear the temp buffer. */
-            if(parser->continuation_line==1){
-                /* back up the pointer to erase the continuation characters */
-                parser->continuation_line = 0;
-                line_p--;
-                
-                if ( *(line_p-1) == '\r'){
-                    line_p--;
-                }
-                
-                /* copy one space up to eliminate the leading space*/
-                icalmemory_append_string(&line,&line_p,&buf_size,
-                                         parser->temp+1);
-
-            } else {
-                icalmemory_append_string(&line,&line_p,&buf_size,parser->temp);
-            }
-
-            parser->temp[0] = '\0' ;
-	}
-	
-	parser->temp[parser->tmp_buf_size-1] = 1; /* Mark end of buffer */
-
-        /****** Here is where the routine gets string data ******************/
-	if ((*line_gen_func)(parser->temp,parser->tmp_buf_size,parser->line_gen_data)
-	    ==0){/* Get more data */
-
-	    /* If the first position is clear, it means we didn't get
-               any more data from the last call to line_ge_func*/
-	    if (parser->temp[0] == '\0'){
-
-		if(line[0] != '\0'){
-		    /* There is data in the output, so fall trhough and process it*/
-		    break;
-		} else {
-		    /* No data in output; return and signal that there
-                       is no more input*/
-		    free(line);
-		    return 0;
-		}
-	    }
-	}
-	
- 
-	/* If the output line ends in a '\n' and the temp buffer
-	   begins with a ' ', then the buffer holds a continuation
-	   line, so keep reading.  */
-
-	if  ( line_p > line+1 && *(line_p-1) == '\n'
-		  && (parser->temp[0] == ' ' || parser->temp[0] == '\t') ) {
-
-            parser->continuation_line = 1;
-
-	} else if ( parser->buffer_full == 1 ) {
-	    
-	    /* The buffer was filled on the last read, so read again */
-
-	} else {
-
-	    /* Looks like the end of this content line, so break */
-	    break;
-	}
-
-	
-    }
-
-    /* Erase the final newline and/or carriage return*/
-    if ( line_p > line+1 && *(line_p-1) == '\n') {	
-	*(line_p-1) = '\0';
-	if ( *(line_p-2) == '\r'){
-	    *(line_p-2) = '\0';
-	}
-
-    } else {
-	*(line_p) = '\0';
-    }
-
-	while ( (*line_p == '\0' || iswspace(*line_p)) && line_p > line )
-	{
-		*line_p = '\0';
-		line_p--;
-	}
-
-    return line;
-
-}
-
-static void insert_error(icalcomponent* comp, const char* text,
-		  const char* message, icalparameter_xlicerrortype type)
-{
-    char temp[1024];
-    
-    if (text == 0){
-	snprintf(temp,1024,"%s:",message);
-    } else {
-	snprintf(temp,1024,"%s: %s",message,text);
-    }	
-    
-    icalcomponent_add_property
-	(comp,
-	 icalproperty_vanew_xlicerror(
-	     temp,
-	     icalparameter_new_xlicerrortype(type),
-	     0));   
-}
-
-
-static int line_is_blank(char* line){
-    int i=0;
-
-    for(i=0; *(line+i)!=0; i++){
-	char c = *(line+i);
-
-	if(c != ' ' && c != '\n' && c != '\t'){
-	    return 0;
-	}
-    }
-    
-    return 1;
-}
-
-icalcomponent* icalparser_parse(icalparser *parser,
-				char* (*line_gen_func)(char *s, size_t size, 
-						       void* d))
-{
-
-    char* line; 
-    icalcomponent *c=0; 
-    icalcomponent *root=0;
-    icalerrorstate es = icalerror_get_error_state(ICAL_MALFORMEDDATA_ERROR);
-	int cont;
-
-    icalerror_check_arg_rz((parser !=0),"parser");
-
-    icalerror_set_error_state(ICAL_MALFORMEDDATA_ERROR,ICAL_ERROR_NONFATAL);
-
-    do{
-	    line = icalparser_get_line(parser, line_gen_func);
-
-	if ((c = icalparser_add_line(parser,line)) != 0){
-
-	    if(icalcomponent_get_parent(c) !=0){
-		/* This is bad news... assert? */
-	    }	    
-	    
-	    assert(parser->root_component == 0);
-	    assert(pvl_count(parser->components) ==0);
-
-	    if (root == 0){
-		/* Just one component */
-		root = c;
-	    } else if(icalcomponent_isa(root) != ICAL_XROOT_COMPONENT) {
-		/*Got a second component, so move the two components under
-		  an XROOT container */
-		icalcomponent *tempc = icalcomponent_new(ICAL_XROOT_COMPONENT);
-		icalcomponent_add_component(tempc, root);
-		icalcomponent_add_component(tempc, c);
-		root = tempc;
-	    } else if(icalcomponent_isa(root) == ICAL_XROOT_COMPONENT) {
-		/* Already have an XROOT container, so add the component
-		   to it*/
-		icalcomponent_add_component(root, c);
-		
-	    } else {
-		/* Badness */
-		assert(0);
-	    }
-
-	    c = 0;
-
-        }
-	cont = 0;
-	if(line != 0){
-	    free(line);
-		cont = 1;
-	}
-    } while ( cont );
-
-    icalerror_set_error_state(ICAL_MALFORMEDDATA_ERROR,es);
-
-    return root;
-
-}
-
-
-icalcomponent* icalparser_add_line(icalparser* parser,
-                                       char* line)
-{ 
-    char *str;
-    char *end;
-    int vcount = 0;
-    icalproperty *prop;
-    icalproperty_kind prop_kind;
-    icalvalue *value;
-    icalvalue_kind value_kind = ICAL_NO_VALUE;
-
-
-    icalerror_check_arg_rz((parser != 0),"parser");
-
-
-    if (line == 0)
-    {
-	parser->state = ICALPARSER_ERROR;
-	return 0;
-    }
-
-    if(line_is_blank(line) == 1){
-	return 0;
-    }
-
-    /* Begin by getting the property name at the start of the line. The
-       property name may end up being "BEGIN" or "END" in which case it
-       is not really a property, but the marker for the start or end of
-       a component */
-
-    end = 0;
-    str = icalparser_get_prop_name(line, &end);
-
-    if (str == 0 || strlen(str) == 0 ){
-	/* Could not get a property name */
-	icalcomponent *tail = pvl_data(pvl_tail(parser->components));
-
-	if (tail){
-	    insert_error(tail,line,
-			 "Got a data line, but could not find a property name or component begin tag",
-			 ICAL_XLICERRORTYPE_COMPONENTPARSEERROR);
-	}
-	tail = 0;
-	parser->state = ICALPARSER_ERROR;
-	return 0; 
-    }
-
-    /**********************************************************************
-     * Handle begin and end of components
-     **********************************************************************/								       
-    /* If the property name is BEGIN or END, we are actually
-       starting or ending a new component */
-
-
-    if(strcasecmp(str,"BEGIN") == 0){
-	icalcomponent *c;
-        icalcomponent_kind comp_kind;
-
-
-	parser->level++;
-	str = icalparser_get_next_value(end,&end, value_kind);
-	    
-
-        comp_kind = icalenum_string_to_component_kind(str);
-
-
-        if (comp_kind == ICAL_NO_COMPONENT){
-
-
-	    c = icalcomponent_new(ICAL_XLICINVALID_COMPONENT);
-	    insert_error(c,str,"Parse error in component name",
-			 ICAL_XLICERRORTYPE_COMPONENTPARSEERROR);
-        }
-
-	c  =  icalcomponent_new(comp_kind);
-
-	if (c == 0){
-	    c = icalcomponent_new(ICAL_XLICINVALID_COMPONENT);
-	    insert_error(c,str,"Parse error in component name",
-			 ICAL_XLICERRORTYPE_COMPONENTPARSEERROR);
-	}
-	    
-	pvl_push(parser->components,c);
-
-	parser->state = ICALPARSER_BEGIN_COMP;
-	return 0;
-
-    } else if (strcasecmp(str,"END") == 0 ) {
-	icalcomponent* tail;
-
-	parser->level--;
-	str = icalparser_get_next_value(end,&end, value_kind);
-
-	/* Pop last component off of list and add it to the second-to-last*/
-	parser->root_component = pvl_pop(parser->components);
-
-	tail = pvl_data(pvl_tail(parser->components));
-
-	if(tail != 0){
-	    icalcomponent_add_component(tail,parser->root_component);
-	} 
-
-	tail = 0;
-
-	/* Return the component if we are back to the 0th level */
-	if (parser->level == 0){
-	    icalcomponent *rtrn; 
-
-	    if(pvl_count(parser->components) != 0){
-	    /* There are still components on the stack -- this means
-               that one of them did not have a proper "END" */
-		pvl_push(parser->components,parser->root_component);
-		icalparser_clean(parser); /* may reset parser->root_component*/
-	    }
-
-	    assert(pvl_count(parser->components) == 0);
-
-	    parser->state = ICALPARSER_SUCCESS;
-	    rtrn = parser->root_component;
-	    parser->root_component = 0;
-	    return rtrn;
-
-	} else {
-	    parser->state = ICALPARSER_END_COMP;
-	    return 0;
-	}
-    }
-
-
-    /* There is no point in continuing if we have not seen a
-       component yet */
-
-    if(pvl_data(pvl_tail(parser->components)) == 0){
-	parser->state = ICALPARSER_ERROR;
-	return 0;
-    }
-
-
-    /**********************************************************************
-     * Handle property names
-     **********************************************************************/
-								       
-    /* At this point, the property name really is a property name,
-       (Not a component name) so make a new property and add it to
-       the component */
-
-    
-    prop_kind = icalproperty_string_to_kind(str);
-
-    prop = icalproperty_new(prop_kind);
-
-    if (prop != 0){
-	icalcomponent *tail = pvl_data(pvl_tail(parser->components));
-
-        if(prop_kind==ICAL_X_PROPERTY){
-            icalproperty_set_x_name(prop,str);
-        }
-
-	icalcomponent_add_property(tail, prop);
-
-	/* Set the value kind for the default for this type of
-	   property. This may be re-set by a VALUE parameter */
-	value_kind = icalproperty_kind_to_value_kind(icalproperty_isa(prop));
-
-    } else {
-	icalcomponent* tail = pvl_data(pvl_tail(parser->components));
-
-	insert_error(tail,str,"Parse error in property name",
-		     ICAL_XLICERRORTYPE_PROPERTYPARSEERROR);
-	    
-	tail = 0;
-	parser->state = ICALPARSER_ERROR;
-	return 0;
-    }
-
-    /**********************************************************************
-     * Handle parameter values
-     **********************************************************************/								       
-
-    /* Now, add any parameters to the last property */
-
-    while(1) {
-
-	if (*(end-1) == ':'){
-	    /* if the last separator was a ":" and the value is a
-	       URL, icalparser_get_next_parameter will find the
-	       ':' in the URL, so better break now. */
-	    break;
-	}
-
-	str = icalparser_get_next_parameter(end,&end);
-
-	if (str != 0){
-	    char* name;
-	    char* pvalue;
-        
-	    icalparameter *param = 0;
-	    icalparameter_kind kind;
-	    icalcomponent *tail = pvl_data(pvl_tail(parser->components));
-
-	    name = icalparser_get_param_name(str,&pvalue);
-
-	    if (name == 0){
-		/* 'tail' defined above */
-		insert_error(tail, str, "Cant parse parameter name",
-			     ICAL_XLICERRORTYPE_PARAMETERNAMEPARSEERROR);
-		tail = 0;
-		break;
-	    }
-
-	    kind = icalparameter_string_to_kind(name);
-
-	    if(kind == ICAL_X_PARAMETER){
-		param = icalparameter_new(ICAL_X_PARAMETER);
-		
-		if(param != 0){
-		    icalparameter_set_xname(param,name);
-		    icalparameter_set_xvalue(param,pvalue);
-		}
-
-
-	    } else if (kind != ICAL_NO_PARAMETER){
-		param = icalparameter_new_from_value_string(kind,pvalue);
-	    } else {
-		/* Error. Failed to parse the parameter*/
-		/* 'tail' defined above */
-		insert_error(tail, str, "Cant parse parameter name",
-			     ICAL_XLICERRORTYPE_PARAMETERNAMEPARSEERROR);
-		tail = 0;
-		parser->state = ICALPARSER_ERROR;
-		return 0;
-	    }
-
-	    if (param == 0){
-		/* 'tail' defined above */
-		insert_error(tail,str,"Cant parse parameter value",
-			     ICAL_XLICERRORTYPE_PARAMETERVALUEPARSEERROR);
-		    
-		tail = 0;
-		parser->state = ICALPARSER_ERROR;
-		continue;
-	    }
-
-	    /* If it is a VALUE parameter, set the kind of value*/
-	    if (icalparameter_isa(param)==ICAL_VALUE_PARAMETER){
-
-		value_kind = (icalvalue_kind)
-                    icalparameter_value_to_value_kind(
-                                icalparameter_get_value(param)
-                                );
-
-		if (value_kind == ICAL_NO_VALUE){
-
-		    /* Ooops, could not parse the value of the
-		       parameter ( it was not one of the defined
-		       values ), so reset the value_kind */
-			
-		    insert_error(
-			tail, str, 
-			"Got a VALUE parameter with an unknown type",
-			ICAL_XLICERRORTYPE_PARAMETERVALUEPARSEERROR);
-		    icalparameter_free(param);
-			
-		    value_kind = 
-			icalproperty_kind_to_value_kind(
-			    icalproperty_isa(prop));
-			
-		    icalparameter_free(param);
-		    tail = 0;
-		    parser->state = ICALPARSER_ERROR;
-		    return 0;
-		} 
-	    }
-
-	    /* Everything is OK, so add the parameter */
-	    icalproperty_add_parameter(prop,param);
-	    tail = 0;
-
-	} else { /* if ( str != 0)  */
-	    /* If we did not get a param string, go on to looking
-	       for a value */
-	    break;
-	} /* if ( str != 0)  */
-
-    } /* while(1) */	    
-	
-    /**********************************************************************
-     * Handle values
-     **********************************************************************/								       
-
-    /* Look for values. If there are ',' characters in the values,
-       then there are multiple values, so clone the current
-       parameter and add one part of the value to each clone */
-
-    vcount=0;
-    while(1) {
-	str = icalparser_get_next_value(end,&end, value_kind);
-
-	if (str != 0){
-		
-	    if (vcount > 0){
-		/* Actually, only clone after the second value */
-		icalproperty* clone = icalproperty_new_clone(prop);
-		icalcomponent* tail = pvl_data(pvl_tail(parser->components));
-		    
-		icalcomponent_add_property(tail, clone);
-		prop = clone;		    
-		tail = 0;
-	    }
-		
-	    value = icalvalue_new_from_string(value_kind, str);
-		
-	    /* Don't add properties without value */
-	    if (value == 0){
-		char temp[200]; /* HACK */
-
-		icalproperty_kind prop_kind = icalproperty_isa(prop);
-		icalcomponent* tail = pvl_data(pvl_tail(parser->components));
-
-		snprintf(temp,sizeof(temp),"Can't parse as %s value in %s property. Removing entire property",
-			icalvalue_kind_to_string(value_kind),
-			icalproperty_kind_to_string(prop_kind));
-
-		insert_error(tail, str, temp,
-			     ICAL_XLICERRORTYPE_VALUEPARSEERROR);
-
-		/* Remove the troublesome property */
-		icalcomponent_remove_property(tail,prop);
-		icalproperty_free(prop);
-		prop = 0;
-		tail = 0;
-		parser->state = ICALPARSER_ERROR;
-		return 0;
-		    
-	    } else {
-		vcount++;
-		icalproperty_set_value(prop, value);
-	    }
-
-
-	} else {
-	    if (vcount == 0){
-		char temp[200]; /* HACK */
-		
-		icalproperty_kind prop_kind = icalproperty_isa(prop);
-		icalcomponent *tail = pvl_data(pvl_tail(parser->components));
-		
-		snprintf(temp,sizeof(temp),"No value for %s property. Removing entire property",
-			icalproperty_kind_to_string(prop_kind));
-
-		insert_error(tail, str, temp,
-			     ICAL_XLICERRORTYPE_VALUEPARSEERROR);
-
-		/* Remove the troublesome property */
-		icalcomponent_remove_property(tail,prop);
-		icalproperty_free(prop);
-		prop = 0;
-		tail = 0;
-		parser->state = ICALPARSER_ERROR;
-		return 0;
-	    } else {
-
-		break;
-	    }
-	}
-    }
-	
-    /****************************************************************
-     * End of component parsing. 
-     *****************************************************************/
-
-    if (pvl_data(pvl_tail(parser->components)) == 0 &&
-	parser->level == 0){
-	/* HACK. Does this clause ever get executed? */
-	parser->state = ICALPARSER_SUCCESS;
-	assert(0);
-	return parser->root_component;
-    } else {
-	parser->state = ICALPARSER_IN_PROGRESS;
-	return 0;
-    }
-
-}
-
-icalparser_state icalparser_get_state(icalparser* parser)
-{
-    return parser->state;
-
-}
-
-icalcomponent* icalparser_clean(icalparser* parser)
-{
-    icalcomponent *tail; 
-
-    icalerror_check_arg_rz((parser != 0 ),"parser");
-
-    /* We won't get a clean exit if some components did not have an
-       "END" tag. Clear off any component that may be left in the list */
-    
-    while((tail=pvl_data(pvl_tail(parser->components))) != 0){
-
-	insert_error(tail," ",
-		     "Missing END tag for this component. Closing component at end of input.",
-		     ICAL_XLICERRORTYPE_COMPONENTPARSEERROR);
-	
-
-	parser->root_component = pvl_pop(parser->components);
-	tail=pvl_data(pvl_tail(parser->components));
-
-	if(tail != 0 && parser->root_component != NULL){
-	    if(icalcomponent_get_parent(parser->root_component)!=0){
-		icalerror_warn("icalparser_clean is trying to attach a component for the second time");
-	    } else {
-		icalcomponent_add_component(tail,parser->root_component);
-	    }
-	}
-	    
-    }
-
-    return parser->root_component;
-
-}
-
-struct slg_data {
-	const char* pos;
-	const char* str;
-};
-
-
-char* icalparser_string_line_generator(char *out, size_t buf_size, void *d)
-{
-    char *n;
-    size_t size;
-    struct slg_data* data = (struct slg_data*)d;
-
-    if(data->pos==0){
-	data->pos=data->str;
-    }
-
-    /* If the pointer is at the end of the string, we are done */
-    if (*(data->pos)==0){
-	return 0;
-    }
-
-    n = strchr(data->pos,'\n');
-    
-    if (n == 0){
-	size = strlen(data->pos);
-    } else {
-	n++; /* include newline in output */
-	size = (n-data->pos);	
-    }
-
-    if (size > buf_size-1){
-	size = buf_size-1;
-    }
-    
-
-    strncpy(out,data->pos,size);
-    
-    *(out+size) = '\0';
-    
-    data->pos += size;
-
-    return out;    
-}
-
-icalcomponent* icalparser_parse_string(const char* str)
-{
-    icalcomponent *c;
-    struct slg_data d;
-    icalparser *p;
-
-    icalerrorstate es = icalerror_get_error_state(ICAL_MALFORMEDDATA_ERROR);
-
-    d.pos = 0;
-    d.str = str;
-
-    p = icalparser_new();
-    icalparser_set_gen_data(p,&d);
-
-    icalerror_set_error_state(ICAL_MALFORMEDDATA_ERROR,ICAL_ERROR_NONFATAL);
-
-    c = icalparser_parse(p,icalparser_string_line_generator);
-
-    icalerror_set_error_state(ICAL_MALFORMEDDATA_ERROR,es);
-
-    icalparser_free(p);
-
-    return c;
-
-}
diff --git a/libkcal/libical/src/libical/icalparser.h b/libkcal/libical/src/libical/icalparser.h
deleted file mode 100644
index 914f9384..00000000
--- a/libkcal/libical/src/libical/icalparser.h
+++ /dev/null
@@ -1,96 +0,0 @@
-/* -*- Mode: C -*- */
-/*======================================================================
-  FILE: icalparser.h
-  CREATOR: eric 20 April 1999
-  
-
-
- (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
-     http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-  The original code is icalparser.h
-
-======================================================================*/
-
-
-#ifndef ICALPARSER_H
-#define ICALPARSER_H
-
-#include "icalenums.h"
-#include "icaltypes.h"
-#include"icalcomponent.h"
-
-#include <stdio.h> /* For FILE* */
-
-typedef struct icalparser_impl icalparser;
-
-
-/**
- * @file  icalparser.h
- * @brief Line-oriented parsing. 
- * 
- * Create a new parser via icalparse_new_parser, then add lines one at
- * a time with icalparse_add_line(). icalparser_add_line() will return
- * non-zero when it has finished with a component.
- */
-
-typedef enum icalparser_state {
-    ICALPARSER_ERROR,
-    ICALPARSER_SUCCESS,
-    ICALPARSER_BEGIN_COMP,
-    ICALPARSER_END_COMP,
-    ICALPARSER_IN_PROGRESS
-} icalparser_state;
-
-icalparser* icalparser_new(void);
-icalcomponent* icalparser_add_line(icalparser* parser, char* str );
-icalcomponent* icalparser_clean(icalparser* parser);
-icalparser_state icalparser_get_state(icalparser* parser);
-void icalparser_free(icalparser* parser);
-
-
-/**
- * Message oriented parsing.  icalparser_parse takes a string that
- * holds the text ( in RFC 2445 format ) and returns a pointer to an
- * icalcomponent. The caller owns the memory. line_gen_func is a
- * pointer to a function that returns one content line per invocation
- */
-
-icalcomponent* icalparser_parse(icalparser *parser,
-	char* (*line_gen_func)(char *s, size_t size, void *d));
-
-/**
-   Set the data that icalparser_parse will give to the line_gen_func
-   as the parameter 'd'
- */
-void icalparser_set_gen_data(icalparser* parser, void* data);
-
-
-icalcomponent* icalparser_parse_string(const char* str);
-
-
-/***********************************************************************
- * Parser support functions
- ***********************************************************************/
-
-/** Use the flex/bison parser to turn a string into a value type */
-icalvalue*  icalparser_parse_value(icalvalue_kind kind, 
-				   const char* str, icalcomponent** errors);
-
-/** Given a line generator function, return a single iCal content line.*/
-char* icalparser_get_line(icalparser* parser, char* (*line_gen_func)(char *s, size_t size, void *d));
-
-char* icalparser_string_line_generator(char *out, size_t buf_size, void *d);
-
-#endif /* !ICALPARSE_H */
diff --git a/libkcal/libical/src/libical/icalperiod.c b/libkcal/libical/src/libical/icalperiod.c
deleted file mode 100644
index 0429a2e6..00000000
--- a/libkcal/libical/src/libical/icalperiod.c
+++ /dev/null
@@ -1,169 +0,0 @@
-/* -*- Mode: C -*-
-  ======================================================================
-  FILE: icalperiod.c
-  CREATOR: eric 02 June 2000
-  
-    
- (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
-     http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
- The Original Code is eric. The Initial Developer of the Original
- Code is Eric Busboom
-
-
- ======================================================================*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "icalperiod.h"
-
-#include <assert.h>
-#include <string.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-#include "icalerror.h"
-#include "icalmemory.h"
-
-
-
-
-struct icalperiodtype icalperiodtype_from_string (const char* str)
-{
-    
-    struct icalperiodtype p, null_p;
-    char *s = icalmemory_strdup(str);
-    char *start, *end = s;
-    icalerrorstate es;
-
-    /* Errors are normally generated in the following code, so save
-       the error state for resoration later */
-
-    icalerrorenum e = icalerrno;
-
-    p.start = p.end = icaltime_null_time();
-    p.duration = icaldurationtype_from_int(0);
-
-    null_p = p;
-
-    if(s == 0) goto error;
-
-    start = s;
-    end = strchr(s, '/');
-
-    if(end == 0) goto error;
-
-    *end = 0;
-    end++;
-
-    p.start = icaltime_from_string(start);
-
-    if (icaltime_is_null_time(p.start)) goto error;
-
-    es = icalerror_get_error_state(ICAL_MALFORMEDDATA_ERROR);
-    icalerror_set_error_state(ICAL_MALFORMEDDATA_ERROR,ICAL_ERROR_NONFATAL);
-
-    p.end = icaltime_from_string(end);
-
-    icalerror_set_error_state(ICAL_MALFORMEDDATA_ERROR,es);
-    
-
-    if (icaltime_is_null_time(p.end)){
-
-	p.duration = icaldurationtype_from_string(end);
-
-	if(icaldurationtype_as_int(p.duration) == 0) goto error;
-    } 
-
-    icalerrno = e;
-
-    icalmemory_free_buffer(s);
-
-    return p;
-
- error:
-    icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-
-    if (s)
-	icalmemory_free_buffer (s);
-    return null_p;
-}
-
-
-const char* icalperiodtype_as_ical_string(struct icalperiodtype p)
-{
-
-    const char* start;
-    const char* end;
-
-    char *buf;
-    size_t buf_size = 40;
-    char* buf_ptr = 0;
-
-    buf = (char*)icalmemory_new_buffer(buf_size);
-    buf_ptr = buf;
-    
-
-    start = icaltime_as_ical_string(p.start);
-
-    icalmemory_append_string(&buf, &buf_ptr, &buf_size, start); 
-
-    if(!icaltime_is_null_time(p.end)){
-	end = icaltime_as_ical_string(p.end);
-    } else {
-	end = icaldurationtype_as_ical_string(p.duration);
-    }
-
-    icalmemory_append_char(&buf, &buf_ptr, &buf_size, '/'); 
-
-    icalmemory_append_string(&buf, &buf_ptr, &buf_size, end); 
-    
-	icalmemory_add_tmp_buffer(buf);
-
-    return buf;
-}
-
-
-
-struct icalperiodtype icalperiodtype_null_period(void) {
-    struct icalperiodtype p;
-    p.start = icaltime_null_time();
-    p.end = icaltime_null_time();
-    p.duration = icaldurationtype_null_duration();
-
-    return p;
-}
-int icalperiodtype_is_null_period(struct icalperiodtype p){
-    
-    if(icaltime_is_null_time(p.start) && 
-       icaltime_is_null_time(p.end) && 
-       icaldurationtype_is_null_duration(p.duration)){
-	return 1;
-    } else {
-	return 0;
-    }
-}
-
-int icalperiodtype_is_valid_period(struct icalperiodtype p){
-    if(icaltime_is_valid_time(p.start) && 
-       (icaltime_is_valid_time(p.end) || icaltime_is_null_time(p.end)) )
-	{
-	    return 1;
-	}
-
-    return 0;
-}
-
diff --git a/libkcal/libical/src/libical/icalperiod.h b/libkcal/libical/src/libical/icalperiod.h
deleted file mode 100644
index af3040d6..00000000
--- a/libkcal/libical/src/libical/icalperiod.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/* -*- Mode: C -*- */
-/*======================================================================
- FILE: icalperiod.h
- CREATOR: eric 26 Jan 2001
-
-
-
- (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
-     http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
- The Original Code is eric. The Initial Developer of the Original
- Code is Eric Busboom
-
-
-======================================================================*/
-
-#ifndef ICALPERIOD_H
-#define ICALPERIOD_H
-
-#include "icaltime.h"
-#include "icalduration.h"
-
-struct icalperiodtype 
-{
-	struct icaltimetype start; 
-	struct icaltimetype end; 
-	struct icaldurationtype duration;
-};
-
-struct icalperiodtype icalperiodtype_from_string (const char* str);
-
-const char* icalperiodtype_as_ical_string(struct icalperiodtype p);
-
-struct icalperiodtype icalperiodtype_null_period(void);
-
-int icalperiodtype_is_null_period(struct icalperiodtype p);
-
-int icalperiodtype_is_valid_period(struct icalperiodtype p);
-
-#endif /* !ICALTIME_H */
-
-
-
diff --git a/libkcal/libical/src/libical/icalproperty.c b/libkcal/libical/src/libical/icalproperty.c
deleted file mode 100644
index 67c158eb..00000000
--- a/libkcal/libical/src/libical/icalproperty.c
+++ /dev/null
@@ -1,998 +0,0 @@
-/* -*- Mode: C -*- */
-
-/*======================================================================
-  FILE: icalproperty.c
-  CREATOR: eric 28 April 1999
-  
-
-
- (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
-     http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-  The original code is icalproperty.c
-
-======================================================================*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "icalproperty.h"
-#include "icalparameter.h"
-#include "icalcomponent.h"
-#include "pvl.h"
-#include "icalenums.h"
-#include "icalerror.h"
-#include "icalmemory.h"
-#include "icalparser.h"
-
-#include <string.h> /* For icalmemory_strdup, rindex */
-#include <assert.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <stdio.h> /* for printf */
-#include <stdarg.h> /* for va_list, va_start, etc. */
-                                               
-#ifdef WIN32
-#define snprintf      _snprintf
-#define strcasecmp    stricmp
-#endif
-
-/* Private routines for icalproperty */
-void icalvalue_set_parent(icalvalue* value,
-			     icalproperty* property);
-icalproperty* icalvalue_get_parent(icalvalue* value);
-
-void icalparameter_set_parent(icalparameter* param,
-			     icalproperty* property);
-icalproperty* icalparameter_get_parent(icalparameter* value);
-
-
-void icalproperty_set_x_name(icalproperty* prop, const char* name);
-
-struct icalproperty_impl 
-{
-	char id[5];
-	icalproperty_kind kind;
-	char* x_name;
-	pvl_list parameters;
-	pvl_elem parameter_iterator;
-	icalvalue* value;
-	icalcomponent *parent;
-};
-
-void icalproperty_add_parameters(icalproperty* prop, va_list args)
-{
-    void* vp;
-
-    while((vp = va_arg(args, void*)) != 0) {
-
-	if (icalvalue_isa_value(vp) != 0 ){
-	} else if (icalparameter_isa_parameter(vp) != 0 ){
-
-	    icalproperty_add_parameter((icalproperty*)prop,
-				       (icalparameter*)vp);
-	} else {
-	    icalerror_set_errno(ICAL_BADARG_ERROR);
-	}
-
-    }
-}
-
-
-icalproperty*
-icalproperty_new_impl(icalproperty_kind kind)
-{
-    icalproperty* prop;
-
-    if (!icalproperty_kind_is_valid(kind))
-      return NULL;
-
-    if ( ( prop = (icalproperty*) malloc(sizeof(icalproperty))) == 0) {
-	icalerror_set_errno(ICAL_NEWFAILED_ERROR);
-	return 0;
-    }
-    
-    strcpy(prop->id,"prop");
-
-    prop->kind = kind;
-    prop->parameters = pvl_newlist();
-    prop->parameter_iterator = 0;
-    prop->value = 0;
-    prop->x_name = 0;
-    prop->parent = 0;
-
-    return prop;
-}
-
-
-icalproperty*
-icalproperty_new (icalproperty_kind kind)
-{
-    if (kind == ICAL_NO_PROPERTY){
-        return 0;
-    }
-
-    return (icalproperty*)icalproperty_new_impl(kind);
-}
-
-
-icalproperty*
-icalproperty_new_clone(icalproperty* old)
-{
-    icalproperty *new = icalproperty_new_impl(old->kind);
-    pvl_elem p;
-
-    icalerror_check_arg_rz((old!=0),"old");
-    icalerror_check_arg_rz((new!=0),"new");
-
-    if (old->value !=0) {
-	new->value = icalvalue_new_clone(old->value);
-    }
-
-    if (old->x_name != 0) {
-
-	new->x_name = icalmemory_strdup(old->x_name);
-	
-	if (new->x_name == 0) {
-	    icalproperty_free(new);
-	    icalerror_set_errno(ICAL_NEWFAILED_ERROR);
-	    return 0;
-	}
-    }
-
-    for(p=pvl_head(old->parameters);p != 0; p = pvl_next(p)){
-	icalparameter *param = icalparameter_new_clone(pvl_data(p));
-	
-	if (param == 0){
-	    icalproperty_free(new);
-	    icalerror_set_errno(ICAL_NEWFAILED_ERROR);
-	    return 0;
-	}
-
-	pvl_push(new->parameters,param);
-    
-    } 
-
-    return new;
-
-}
-
-icalproperty* icalproperty_new_from_string(const char* str)
-{
-
-    size_t buf_size = 1024;
-    char* buf = icalmemory_new_buffer(buf_size);
-    char* buf_ptr = buf;  
-    icalproperty *prop;
-    icalcomponent *comp;
-    int errors  = 0;
-
-    icalerror_check_arg_rz( (str!=0),"str");
-
-    /* Is this a HACK or a crafty reuse of code? */
-
-    icalmemory_append_string(&buf, &buf_ptr, &buf_size, "BEGIN:VCALENDAR\n");
-    icalmemory_append_string(&buf, &buf_ptr, &buf_size, str);
-    icalmemory_append_string(&buf, &buf_ptr, &buf_size, "\n");    
-    icalmemory_append_string(&buf, &buf_ptr, &buf_size, "END:VCALENDAR\n");
-
-    comp = icalparser_parse_string(buf);
-
-    if(comp == 0){
-        icalerror_set_errno(ICAL_PARSE_ERROR);
-        return 0;
-    }
-
-    errors = icalcomponent_count_errors(comp);
-
-    prop = icalcomponent_get_first_property(comp,ICAL_ANY_PROPERTY);
-
-    icalcomponent_remove_property(comp,prop);
-
-    icalcomponent_free(comp);
-    free(buf);
-
-    if(errors > 0){
-        icalproperty_free(prop);
-        return 0;
-    } else {
-        return prop;
-    }
-    
-}
-
-void
-icalproperty_free (icalproperty* p)
-{
-    icalparameter* param;
-    
-    icalerror_check_arg_rv((p!=0),"prop");
-
-#ifdef ICAL_FREE_ON_LIST_IS_ERROR
-    icalerror_assert( (p->parent ==0),"Tried to free a property that is still attached to a component. ");
-    
-#else
-    if(p->parent !=0){
-	return;
-    }
-#endif
-
-    if (p->value != 0){
-        icalvalue_set_parent(p->value,0);
-	icalvalue_free(p->value);
-    }
-    
-    while( (param = pvl_pop(p->parameters)) != 0){
-	icalparameter_free(param);
-    }
-    
-    pvl_free(p->parameters);
-    
-    if (p->x_name != 0) {
-	free(p->x_name);
-    }
-    
-    p->kind = ICAL_NO_PROPERTY;
-    p->parameters = 0;
-    p->parameter_iterator = 0;
-    p->value = 0;
-    p->x_name = 0;
-    p->id[0] = 'X';
-    
-    free(p);
-
-}
-
-
-/* This returns where the start of the next line should be. chars_left does
-   not include the trailing '\0'. */
-#define MAX_LINE_LEN 75
-/*#define MAX_LINE_LEN 120*/
-
-static char*
-get_next_line_start (char *line_start, int chars_left)
-{
-    char *pos;
-
-    /* If we have 74 chars or less left, we can output all of them. 
-       we return a pointer to the '\0' at the end of the string. */
-    if (chars_left < MAX_LINE_LEN) {
-        return line_start + chars_left;
-    } 
-
-    /* Now we jump to the last possible character of the line, and step back
-       trying to find a ';' ':' or ' '. If we find one, we return the character
-       after it. */
-    pos = line_start + MAX_LINE_LEN - 2;
-    while (pos > line_start) {
-        if (*pos == ';' || *pos == ':' || *pos == ' ') {
-	    return pos + 1;
-	}
-	pos--;
-    }
-    /* Now try to split on a UTF-8 boundary defined as a 7-bit
-       value or as a byte with the two high-most bits set:
-       11xxxxxx.  See http://czyborra.com/utf/ */
-
-    pos = line_start + MAX_LINE_LEN - 1;
-    while (pos > line_start) {
-        /* plain ascii */
-        if ((*pos & 128) == 0)
-            return pos;
-
-        /* utf8 escape byte */
-        if ((*pos & 192) == 192)
-            return pos;
-
-        pos--;
-    }
-
-    /* Give up, just break at 74 chars (the 75th char is the space at
-       the start of the line).  */
-
-    return line_start + MAX_LINE_LEN - 1;
-}
-
-
-/** This splits the property into lines less than 75 octects long (as
- *  specified in RFC2445). It tries to split after a ';' if it can.
- *  It returns a tmp buffer.  NOTE: I'm not sure if it matters if we
- *  split a line in the middle of a UTF-8 character. It probably won't
- *  look nice in a text editor. 
- */
-static char*
-fold_property_line (char *text)
-{
-    size_t buf_size;
-    char *buf, *buf_ptr, *line_start, *next_line_start, *out_buf;
-    int len, chars_left, first_line;
-    char ch;
-
-    /* Start with a buffer twice the size of our property line, so we almost
-       certainly won't overflow it. */
-    len = strlen (text);
-    buf_size = len * 2;
-    buf = icalmemory_new_buffer (buf_size);
-    buf_ptr = buf;
-
-    /* Step through the text, finding each line to add to the output. */
-    line_start = text;
-    chars_left = len;
-    first_line = 1;
-    for (;;) {
-        if (chars_left <= 0)
-	    break;
-
-        /* This returns the first character for the next line. */
-        next_line_start = get_next_line_start (line_start, chars_left);
-
-	/* If this isn't the first line, we need to output a newline and space
-	   first. */
-	if (!first_line) {
-	    icalmemory_append_string (&buf, &buf_ptr, &buf_size, "\r\n ");
-	}
-	first_line = 0;
-
-	/* This adds the line to our tmp buffer. We temporarily place a '\0'
-	   in text, so we can copy the line in one go. */
-	ch = *next_line_start;
-	*next_line_start = '\0';
-	icalmemory_append_string (&buf, &buf_ptr, &buf_size, line_start);
-	*next_line_start = ch;
-
-	/* Now we move on to the next line. */
-	chars_left -= (next_line_start - line_start);
-	line_start = next_line_start;
-    }
-
-    /* Copy it to a temporary buffer, and then free it. */
-    out_buf = icalmemory_tmp_buffer (strlen (buf) + 1);
-    strcpy (out_buf, buf);
-    icalmemory_free_buffer (buf);
-
-    return out_buf;
-}
-
-
-/* Determine what VALUE parameter to include. The VALUE parameters
-   are ignored in the normal parameter printing ( the block after
-   this one, so we need to do it here */
-static const char *
-icalproperty_get_value_kind(icalproperty *prop)
-{
-	const char* kind_string = 0;
-
-	icalparameter *orig_val_param
-	    = icalproperty_get_first_parameter(prop,ICAL_VALUE_PARAMETER);
-
-	icalvalue *value = icalproperty_get_value(prop);
-
-	icalvalue_kind orig_kind = ICAL_NO_VALUE;
-
-	icalvalue_kind this_kind = ICAL_NO_VALUE;
-
-	icalvalue_kind default_kind 
-	    =  icalproperty_kind_to_value_kind(prop->kind);
-
-	if(orig_val_param){
-	    orig_kind = icalparameter_value_to_value_kind( icalparameter_get_value(orig_val_param) );
-	}
-
-	if(value != 0){
-	    this_kind = icalvalue_isa(value);
-	}
-	
-    if ( orig_kind != ICAL_NO_VALUE ) {
-      kind_string = icalvalue_kind_to_string( orig_kind );
-    } else if(this_kind == default_kind &&
-	   orig_kind != ICAL_NO_VALUE){
-	    /* The kind is the default, so it does not need to be
-               included, but do it anyway, since it was explicit in
-               the property. But, use the default, not the one
-               specified in the property */
-	    
-	    kind_string = icalvalue_kind_to_string(default_kind);
-
-	} else if (this_kind != default_kind && this_kind !=  ICAL_NO_VALUE){
-	    /* Not the default, so it must be specified */
-	    kind_string = icalvalue_kind_to_string(this_kind);
-	} else {
-	    /* Don'tinclude the VALUE parameter at all */
-	}
-
-	return kind_string;
-}
-
-const char*
-icalproperty_as_ical_string (icalproperty* prop)
-{   
-    icalparameter *param;
-
-    /* Create new buffer that we can append names, parameters and a
-       value to, and reallocate as needed. Later, this buffer will be
-       copied to a icalmemory_tmp_buffer, which is managed internally
-       by libical, so it can be given to the caller without fear of
-       the caller forgetting to free it */
-
-    const char* property_name = 0; 
-    size_t buf_size = 1024;
-    char* buf = icalmemory_new_buffer(buf_size);
-    char* buf_ptr = buf;
-    icalvalue* value;
-    char *out_buf;
-    const char* kind_string = 0;
-
-    char newline[] = "\r\n";
-
-    
-    icalerror_check_arg_rz( (prop!=0),"prop");
-
-
-    /* Append property name */
-
-    if (prop->kind == ICAL_X_PROPERTY && prop->x_name != 0){
-	property_name = prop->x_name;
-    } else {
-	property_name = icalproperty_kind_to_string(prop->kind);
-    }
-
-    if (property_name == 0 ) {
-	icalerror_warn("Got a property of an unknown kind.");
-	icalmemory_free_buffer(buf);
-	return 0;
-	
-    }
-
-    icalmemory_append_string(&buf, &buf_ptr, &buf_size, property_name);
-
-    kind_string = icalproperty_get_value_kind(prop);
-    if(kind_string!=0){
-	icalmemory_append_string(&buf, &buf_ptr, &buf_size, ";VALUE=");
-	icalmemory_append_string(&buf, &buf_ptr, &buf_size, kind_string);
-    }
-
-    /* Append parameters */
-    for(param = icalproperty_get_first_parameter(prop,ICAL_ANY_PARAMETER);
-	param != 0; 
-	param = icalproperty_get_next_parameter(prop,ICAL_ANY_PARAMETER)) {
-
-	icalparameter_kind kind = icalparameter_isa(param);
-	kind_string = icalparameter_as_ical_string(param); 
-
-	if(kind==ICAL_VALUE_PARAMETER){
-	    continue;
-	}
-
-	if (kind_string == 0 ) {
-	  icalerror_warn("Got a parameter of unknown kind for the following property");
-
-	  icalerror_warn((property_name) ? property_name : "(NULL)");
-	    continue;
-	}
-
-	icalmemory_append_string(&buf, &buf_ptr, &buf_size, ";");
-    	icalmemory_append_string(&buf, &buf_ptr, &buf_size, kind_string);
-    }    
-
-    /* Append value */
-
-    icalmemory_append_string(&buf, &buf_ptr, &buf_size, ":");
-
-    value = icalproperty_get_value(prop);
-
-    if (value != 0){
-	const char *str = icalvalue_as_ical_string(value);
-	icalerror_assert((str !=0),"Could not get string representation of a value");
-	icalmemory_append_string(&buf, &buf_ptr, &buf_size, str);
-    } else {
-	icalmemory_append_string(&buf, &buf_ptr, &buf_size,"ERROR: No Value"); 
-	
-    }
-    
-    icalmemory_append_string(&buf, &buf_ptr, &buf_size, newline);
-
-    /* Now, copy the buffer to a tmp_buffer, which is safe to give to
-       the caller without worring about de-allocating it. */
-
-    /* We now use a function to fold the line properly every 75 characters. */
-    out_buf = fold_property_line (buf);
-
-    icalmemory_free_buffer(buf);
-
-    return out_buf;
-}
-
-
-
-icalproperty_kind
-icalproperty_isa (icalproperty* p)
-{
-   if(p != 0){
-       return p->kind;
-   }
-
-   return ICAL_NO_PROPERTY;
-}
-
-int
-icalproperty_isa_property (void* property)
-{
-    icalproperty *impl = (icalproperty *) property;
-
-    icalerror_check_arg_rz( (property!=0), "property");
-    if (strcmp(impl->id,"prop") == 0) {
-	return 1;
-    } else {
-	return 0;
-    }
-}
-
-
-void
-icalproperty_add_parameter (icalproperty* p,icalparameter* parameter)
-{
-   icalerror_check_arg_rv( (p!=0),"prop");
-   icalerror_check_arg_rv( (parameter!=0),"parameter");
-    
-   pvl_push(p->parameters, parameter);
-
-}
-
-void
-icalproperty_set_parameter (icalproperty* prop,icalparameter* parameter)
-{
-    icalparameter_kind kind;
-    
-    icalerror_check_arg_rv( (prop!=0),"prop");
-    icalerror_check_arg_rv( (parameter!=0),"parameter");
-
-    kind = icalparameter_isa(parameter);
-    if (kind != ICAL_X_PARAMETER)
-      icalproperty_remove_parameter_by_kind(prop,kind);
-    else
-      icalproperty_remove_parameter_by_name(prop, 
-					    icalparameter_get_xname(parameter));
-
-    icalproperty_add_parameter(prop,parameter);
-}
-
-void icalproperty_set_parameter_from_string(icalproperty* prop,
-                                            const char* name, const char* value)
-{
-
-    icalparameter_kind kind;
-    icalparameter *param;
-
-    icalerror_check_arg_rv( (prop!=0),"prop");
-    icalerror_check_arg_rv( (name!=0),"name");
-    icalerror_check_arg_rv( (value!=0),"value");
-    
-    kind = icalparameter_string_to_kind(name);
-
-    if(kind == ICAL_NO_PARAMETER){
-        icalerror_set_errno(ICAL_BADARG_ERROR);
-        return;
-    }
-    
-    param  = icalparameter_new_from_value_string(kind,value);
-
-    if (param == 0){
-        icalerror_set_errno(ICAL_BADARG_ERROR);
-        return;
-    }
-
-    if(kind == ICAL_X_PARAMETER){
-	icalparameter_set_xname(param, name);
-    }
-
-    icalproperty_set_parameter(prop,param);
-
-}
-
-const char* icalproperty_get_parameter_as_string(icalproperty* prop,
-                                                 const char* name)
-{
-    icalparameter_kind kind;
-    icalparameter *param;
-    char* str;
-    char* pv;
-
-    icalerror_check_arg_rz( (prop!=0),"prop");
-    icalerror_check_arg_rz( (name!=0),"name");
-    
-    kind = icalparameter_string_to_kind(name);
-
-    if(kind == ICAL_NO_PARAMETER){
-        /* icalenum_string_to_parameter_kind will set icalerrno */
-        return 0;
-    }
-    
-    for(param = icalproperty_get_first_parameter(prop,kind); 
-	    param != 0; 
-	    param = icalproperty_get_next_parameter(prop,kind)) {
-	    if (kind != ICAL_X_PARAMETER) {
-		    break;
-	    }
-
-	    if (strcmp(icalparameter_get_xname(param),name)==0) {
-		    break;
-	    }		
-    }
-
-    if (param == 0){
-        return 0;
-    }
-
-
-    str = icalparameter_as_ical_string(param);
-
-    pv = strchr(str,'=');
-
-    if(pv == 0){
-        icalerror_set_errno(ICAL_INTERNAL_ERROR);
-        return 0;
-    }
-
-    return pv+1;
-
-}
-
-/** @see icalproperty_remove_parameter_by_kind() 
- *
- *  @deprecated Please use icalproperty_remove_parameter_by_kind()
- *              instead.
- */
-
-void
-icalproperty_remove_parameter(icalproperty* prop, icalparameter_kind kind)
-{
-  icalproperty_remove_parameter_by_kind(prop, kind);
-}
-
-
-/** @brief Remove all parameters with the specified kind.
- *
- *  @param prop   A valid icalproperty.
- *  @param kind   The kind to remove (ex. ICAL_TZID_PARAMETER)
- *
- *  See icalproperty_remove_parameter_by_name() and
- *  icalproperty_remove_parameter_by_ref() for alternate ways of
- *  removing parameters
- */
-
-void
-icalproperty_remove_parameter_by_kind(icalproperty* prop, icalparameter_kind kind)
-{
-    pvl_elem p;     
-
-    icalerror_check_arg_rv((prop!=0),"prop");
-    
-    for(p=pvl_head(prop->parameters);p != 0; p = pvl_next(p)){
-	icalparameter* param = (icalparameter *)pvl_data (p);
-        if (icalparameter_isa(param) == kind) {
-            pvl_remove (prop->parameters, p);
-	    icalparameter_free(param);
-            break;
-        }
-    }                       
-}
-
-
-/** @brief Remove all parameters with the specified name.
- *
- *  @param prop   A valid icalproperty.
- *  @param name   The name of the parameter to remove
- *
- *  This function removes parameters with the given name.  The name
- *  corresponds to either a built-in name (TZID, etc.) or the name of
- *  an extended parameter (X-FOO)
- *
- *  See icalproperty_remove_parameter_by_kind() and
- *  icalproperty_remove_parameter_by_ref() for alternate ways of removing
- *  parameters
- */
-
-
-void
-icalproperty_remove_parameter_by_name(icalproperty* prop, const char *name)
-{
-    pvl_elem p;     
-
-    icalerror_check_arg_rv((prop!=0),"prop");
-    
-    for(p=pvl_head(prop->parameters);p != 0; p = pvl_next(p)){
-	icalparameter* param = (icalparameter *)pvl_data (p);
-	const char * kind_string;
-
-	if (icalparameter_isa(param) == ICAL_X_PARAMETER)
-	  kind_string = icalparameter_get_xname(param);
-	else
-	  kind_string = icalparameter_kind_to_string(icalparameter_isa(param));
-
-	if (!kind_string)
-	  continue;
-
-        if (0 == strcmp(kind_string, name)) {
-            pvl_remove (prop->parameters, p);
-            break;
-        }
-    }                       
-}
-
-
-/** @brief Remove the specified parameter reference from the property.
- *
- *  @param prop   A valid icalproperty.
- *  @param parameter   A reference to a specific icalparameter.
- *
- *  This function removes the specified parameter reference from the
- *  property.
- */
-
-void
-icalproperty_remove_parameter_by_ref(icalproperty* prop, icalparameter* parameter)
-{
-    pvl_elem p;
-    icalparameter_kind kind;
-    const char *name;
-
-    icalerror_check_arg_rv((prop!=0),"prop");
-    icalerror_check_arg_rv((parameter!=0),"parameter");
-
-    kind = icalparameter_isa(parameter);
-    name = icalparameter_get_xname(parameter);
-
-    /*
-     * FIXME If it's an X- parameter, also compare the names. It would be nice
-     * to have a better abstraction like icalparameter_equals()
-     */
-    for(p=pvl_head(prop->parameters);p != 0; p = pvl_next(p)){
-	icalparameter* p_param = (icalparameter *)pvl_data (p);
-	if (icalparameter_isa(p_param) == kind &&
-	    (kind != ICAL_X_PARAMETER ||
-	    !strcmp(icalparameter_get_xname(p_param), name))) {
-            pvl_remove (prop->parameters, p);
-            icalparameter_free(p_param);
-            break;
-	} 
-    }   
-}
-
-
-int
-icalproperty_count_parameters (const icalproperty* prop)
-{
-    if(prop != 0){
-	return pvl_count(prop->parameters);
-    }
-
-    icalerror_set_errno(ICAL_USAGE_ERROR);
-    return -1;
-}
-
-
-icalparameter*
-icalproperty_get_first_parameter(icalproperty* p, icalparameter_kind kind)
-{
-   icalerror_check_arg_rz( (p!=0),"prop");
-   
-   p->parameter_iterator = pvl_head(p->parameters);
-
-   if (p->parameter_iterator == 0) {
-       return 0;
-   }
-
-   for( p->parameter_iterator = pvl_head(p->parameters);
-	p->parameter_iterator !=0;
-	p->parameter_iterator = pvl_next(p->parameter_iterator)){
-
-       icalparameter *param = (icalparameter*)pvl_data(p->parameter_iterator);
-
-       if(icalparameter_isa(param) == kind || kind == ICAL_ANY_PARAMETER){
-	   return param;
-       }
-   }
-
-   return 0;
-}
-
-
-icalparameter*
-icalproperty_get_next_parameter (icalproperty* p, icalparameter_kind kind)
-{
-    icalerror_check_arg_rz( (p!=0),"prop");
-    
-    if (p->parameter_iterator == 0) {
-	return 0;
-    }
-    
-    for( p->parameter_iterator = pvl_next(p->parameter_iterator);
-	 p->parameter_iterator !=0;
-	 p->parameter_iterator = pvl_next(p->parameter_iterator)){
-	
-	icalparameter *param = (icalparameter*)pvl_data(p->parameter_iterator);
-	
-	if(icalparameter_isa(param) == kind || kind == ICAL_ANY_PARAMETER){
-	    return param;
-	}
-    }
-    
-    return 0;
-
-}
-
-void
-icalproperty_set_value (icalproperty* p, icalvalue* value)
-{
-    icalerror_check_arg_rv((p !=0),"prop");
-    icalerror_check_arg_rv((value !=0),"value");
-    
-    if (p->value != 0){
-	icalvalue_set_parent(p->value,0);
-	icalvalue_free(p->value);
-	p->value = 0;
-    }
-
-    p->value = value;
-    
-    icalvalue_set_parent(value,p);
-}
-
-
-void icalproperty_set_value_from_string(icalproperty* prop,const char* str,
-                                        const char* type)
-{
-    icalvalue *oval,*nval;
-    icalvalue_kind kind = ICAL_NO_VALUE;
-
-    icalerror_check_arg_rv( (prop!=0),"prop"); 
-    icalerror_check_arg_rv( (str!=0),"str");
-    icalerror_check_arg_rv( (type!=0),"type");
-   
-    if(strcmp(type,"NO")==0){
-        /* Get the type from the value the property already has, if it exists */
-        oval = icalproperty_get_value(prop);
-        if(oval != 0){
-            /* Use the existing value kind */
-            kind  = icalvalue_isa(oval);
-        } else {   
-            /* Use the default kind for the property */
-            kind = icalproperty_kind_to_value_kind(icalproperty_isa(prop));
-        }
-    } else {
-        /* Use the given kind string */
-        kind = icalvalue_string_to_kind(type);
-    }
-
-    if(kind == ICAL_NO_VALUE){
-        icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-        return;
-    }
-
-    nval = icalvalue_new_from_string(kind, str);
-
-    if(nval == 0){
-        /* icalvalue_new_from_string sets errno */
-        assert(icalerrno != ICAL_NO_ERROR);
-        return;
-    }
-
-    icalproperty_set_value(prop,nval);
-
-
-}
-
-icalvalue*
-icalproperty_get_value(const icalproperty* prop)
-{
-    icalerror_check_arg_rz( (prop!=0),"prop");
-    
-    return prop->value;
-}
-
-const char* icalproperty_get_value_as_string(const icalproperty* prop)
-{
-    icalvalue *value;
-    
-    icalerror_check_arg_rz( (prop!=0),"prop");
-
-    value = prop->value; 
-
-    return icalvalue_as_ical_string(value);
-}
-
-
-void icalproperty_set_x_name(icalproperty* prop, const char* name)
-{
-    icalerror_check_arg_rv( (name!=0),"name");
-    icalerror_check_arg_rv( (prop!=0),"prop");
-
-    if (prop->x_name != 0) {
-        free(prop->x_name);
-    }
-
-    prop->x_name = icalmemory_strdup(name);
-
-    if(prop->x_name == 0){
-	icalerror_set_errno(ICAL_NEWFAILED_ERROR);
-    }
-
-}
-                              
-const char* icalproperty_get_x_name(icalproperty* prop){
-    icalerror_check_arg_rz( (prop!=0),"prop");
-
-    return prop->x_name;
-}
-
-
-const char* icalproperty_get_name(const icalproperty* prop)
-{
-#ifndef NO_WARN_DEPRECATED
-	icalerror_warn("icalproperty_get_name() is DEPRECATED, please use icalproperty_get_property_name() instead.");
-#endif
-	return icalproperty_get_property_name(prop);
-}
-
-const char* icalproperty_get_property_name(const icalproperty* prop)
-{
-
-    const char* property_name = 0;
-    size_t buf_size = 256;
-    char* buf = icalmemory_new_buffer(buf_size);
-    char* buf_ptr = buf;  
-
-    icalerror_check_arg_rz( (prop!=0),"prop");
- 
-    if (prop->kind == ICAL_X_PROPERTY && prop->x_name != 0){
-        property_name = prop->x_name;
-    } else {
-        property_name = icalproperty_kind_to_string(prop->kind);
-    }
- 
-    if (property_name == 0 ) {
-        icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-        return 0;
-
-    } else {
-        /* _append_string will automatically grow the buffer if
-           property_name is longer than the initial buffer size */
-        icalmemory_append_string(&buf, &buf_ptr, &buf_size, property_name);
-    }
- 
-    /* Add the buffer to the temporary buffer ring -- the caller will
-       not have to free the memory. */
-    icalmemory_add_tmp_buffer(buf);
- 
-    return buf;
-}
-                            
-
-
-
-void icalproperty_set_parent(icalproperty* property,
-			     icalcomponent* component)
-{
-    icalerror_check_arg_rv( (property!=0),"property");
-    
-    property->parent = component;
-}
-
-icalcomponent* icalproperty_get_parent(const icalproperty* property)
-{
-    icalerror_check_arg_rz( (property!=0),"property");
-
-    return property->parent;
-}
diff --git a/libkcal/libical/src/libical/icalproperty.h b/libkcal/libical/src/libical/icalproperty.h
deleted file mode 100644
index b7db3316..00000000
--- a/libkcal/libical/src/libical/icalproperty.h
+++ /dev/null
@@ -1,133 +0,0 @@
-/* -*- Mode: C -*- */
-/*======================================================================
-  FILE: icalproperty.h
-  CREATOR: eric 20 March 1999
-
-
-
-  
-
- (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
-     http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-  The original code is icalparam.h
-
-  ======================================================================*/
-
-
-#ifndef ICALPROPERTY_H
-#define ICALPROPERTY_H
-
-#include <time.h>
-#include <stdarg.h>  /* for va_... */
-
-#include "icalderivedparameter.h"
-
-#include "icalvalue.h"  
-#include "icalrecur.h"
-
-/* Actually in icalderivedproperty.h:
-   typedef struct icalproperty_impl icalproperty; */
-
-#include "icalderivedproperty.h" /* To get icalproperty_kind enumerations */
-
-icalproperty* icalproperty_new(icalproperty_kind kind);
-
-icalproperty* icalproperty_new_clone(icalproperty * prop);
-
-icalproperty* icalproperty_new_from_string(const char* str);
-
-const char* icalproperty_as_ical_string(icalproperty* prop);
-
-void  icalproperty_free(icalproperty* prop);
-
-icalproperty_kind icalproperty_isa(icalproperty* property);
-int icalproperty_isa_property(void* property);
-
-void icalproperty_add_parameters(struct icalproperty_impl *prop,va_list args);
-void icalproperty_add_parameter(icalproperty* prop,icalparameter* parameter);
-void icalproperty_set_parameter(icalproperty* prop,icalparameter* parameter);
-void icalproperty_set_parameter_from_string(icalproperty* prop,
-                                            const char* name, const char* value);
-const char* icalproperty_get_parameter_as_string(icalproperty* prop,
-                                                 const char* name);
-
-void icalproperty_remove_parameter(icalproperty* prop,
-				   icalparameter_kind kind);
-
-void icalproperty_remove_parameter_by_kind(icalproperty* prop,
-					   icalparameter_kind kind);
-
-void icalproperty_remove_parameter_by_name(icalproperty* prop,
-					   const char *name);
-
-void icalproperty_remove_parameter_by_ref(icalproperty* prop,
-					  icalparameter *param);
-
-
-
-int icalproperty_count_parameters(const icalproperty* prop);
-
-/* Iterate through the parameters */
-icalparameter* icalproperty_get_first_parameter(icalproperty* prop,
-						icalparameter_kind kind);
-icalparameter* icalproperty_get_next_parameter(icalproperty* prop,
-						icalparameter_kind kind);
-/* Access the value of the property */
-void icalproperty_set_value(icalproperty* prop, icalvalue* value);
-void icalproperty_set_value_from_string(icalproperty* prop,const char* value, const char* kind);
-
-icalvalue* icalproperty_get_value(const icalproperty* prop);
-const char* icalproperty_get_value_as_string(const icalproperty* prop);
-
-/* Deal with X properties */
-
-void icalproperty_set_x_name(icalproperty* prop, const char* name);
-const char* icalproperty_get_x_name(icalproperty* prop);
-
-/** Return the name of the property -- the type name converted to a
- *  string, or the value of _get_x_name if the type is and X
- *  property 
- */
-const char* icalproperty_get_property_name (const icalproperty* prop);
-
-icalvalue_kind icalparameter_value_to_value_kind(icalparameter_value value);
-
-/* Convert kinds to string and get default value type */
-
-icalvalue_kind icalproperty_kind_to_value_kind(icalproperty_kind kind);
-icalproperty_kind icalproperty_value_kind_to_kind(icalvalue_kind kind);
-const char* icalproperty_kind_to_string(icalproperty_kind kind);
-icalproperty_kind icalproperty_string_to_kind(const char* string);
-
-/** Check validity of a specific icalproperty_kind **/
-int icalproperty_kind_is_valid(const icalproperty_kind kind);
-
-icalproperty_method icalproperty_string_to_method(const char* str);
-const char* icalproperty_method_to_string(icalproperty_method method);
-
-
-const char* icalproperty_enum_to_string(int e);
-int icalproperty_string_to_enum(const char* str);
-int icalproperty_kind_and_string_to_enum(const int kind, const char* str);
-
-const char* icalproperty_status_to_string(icalproperty_status);
-icalproperty_status icalproperty_string_to_status(const char* string);
-
-int icalproperty_enum_belongs_to_property(icalproperty_kind kind, int e);
-
-
-
-
-#endif /*ICALPROPERTY_H*/
diff --git a/libkcal/libical/src/libical/icalrecur.c b/libkcal/libical/src/libical/icalrecur.c
deleted file mode 100644
index acd2ccce..00000000
--- a/libkcal/libical/src/libical/icalrecur.c
+++ /dev/null
@@ -1,2400 +0,0 @@
-/* -*- Mode: C -*-
-  ======================================================================
-  FILE: icalrecur.c
-  CREATOR: eric 16 May 2000
-  
-    
-
- (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
-     http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-*/
-
-/**
-  @file icalrecur.c
-  @brief Implementation of routines for dealing with recurring time
-
-  How this code works:
-
-  Processing starts when the caller generates a new recurrence
-  iterator via icalrecur_iterator_new(). This routine copies the
-  recurrence rule into the iterator and extracts things like start and
-  end dates. Then, it checks if the rule is legal, using some logic
-  from RFC2445 and some logic that probably should be in RFC2445.
-
-  Then, icalrecur_iterator_new() re-writes some of the BY*
-  arrays. This involves ( via a call to setup_defaults() ) :
-
-  1) For BY rule parts with no data ( ie BYSECOND was not specified )
-  copy the corresponding time part from DTSTART into the BY array. (
-  So impl->by_ptrs[BY_SECOND] will then have one element if is
-  originally had none ) This only happens if the BY* rule part data
-  would expand the number of occurrences in the occurrence set. This
-  lets the code ignore DTSTART later on and still use it to get the
-  time parts that were not specified in any other way.
-  
-  2) For the by rule part that are not the same interval as the
-  frequency -- for HOURLY anything but BYHOUR, for instance -- copy the
-  first data element from the rule part into the first occurrence. For
-  example, for "INTERVAL=MONTHLY and BYHOUR=10,30", initialize the
-  first time to be returned to have an hour of 10.
-
-  Finally, for INTERVAL=YEARLY, the routine expands the rule to get
-  all of the days specified in the rule. The code will do this for
-  each new year, and this is the first expansion. This is a special
-  case for the yearly interval; no other frequency gets expanded this
-  way. The yearly interval is the most complex, so some special
-  processing is required.
-
-  After creating a new iterator, the caller will make successive calls
-  to icalrecur_iterator_next() to get the next time specified by the
-  rule. The main part of this routine is a switch on the frequency of
-  the rule. Each different frequency is handled by a different
-  routine. 
-
-  For example, next_hour handles the case of INTERVAL=HOURLY, and it
-  is called by other routines to get the next hour. First, the routine
-  tries to get the next minute part of a time with a call to
-  next_minute(). If next_minute() returns 1, it has reached the end of
-  its data, usually the last element of the BYMINUTE array. Then, if
-  there is data in the BYHOUR array, the routine changes the hour to
-  the next one in the array. If INTERVAL=HOURLY, the routine advances
-  the hour by the interval.
-
-  If the routine used the last hour in the BYHOUR array, and the
-  INTERVAL=HOURLY, then the routine calls increment_monthday() to set
-  the next month day. The increment_* routines may call higher routine
-  to increment the month or year also.
-
-  The code for INTERVAL=DAILY is handled by next_day(). First, the
-  routine tries to get the next hour part of a time with a call to
-  next_hour. If next_hour() returns 1, it has reached the end of its
-  data, usually the last element of the BYHOUR array. This means that
-  next_day() should increment the time to the next day. If FREQUENCY==DAILY,
-  the routine increments the day by the interval; otherwise, it
-  increments the day by 1.
-
-  Next_day() differs from next_hour because it does not use the BYDAY
-  array to select an appropriate day. Instead, it returns every day (
-  incrementing by 1 if the frequency is not DAILY with INTERVAL!=1)
-  Any days that are not specified in an non-empty BYDAY array are
-  filtered out later.
-
-  Generally, the flow of these routine is for a next_* call a next_*
-  routine of a lower interval ( next_day calls next_hour) and then to
-  possibly call an increment_* routine of an equal or higher
-  interval. ( next_day calls increment_monthday() )
-
-  When the call to the original next_* routine returns,
-  icalrecur_iterator_next() will check the returned data against other
-  BYrule parts to determine if is should be excluded by calling
-  check_contracting_rules. Generally, a contracting rule is any with a
-  larger time span than the interval. For instance, if
-  INTERVAL=DAILY, BYMONTH is a contracting rule part. 
-
-  Check_contracting_rules() uses icalrecur_check_rulepart() to do its
-  work. icalrecur_check_rulepart() uses expand_map[] to determine if a rule
-  is contracting, and if it is, and if the BY rule part has some data,
-  then the routine checks if the value of a component of the time is
-  part of the byrule part. For instance, for "INTERVAL=DAILY;
-  BYMONTH=6,10", icalrecur_check_rulepart() would check that the time value
-  given to it has a month of either 6 or 10.
-
-  Finally, icalrecur_iterator_next() does a few other checks on the
-  time value, and if it passes, it returns the time.
-
-  A note about the end_of_data flag. The flag indicates that the
-  routine is at the end of its data -- the last BY rule if the routine
-  is using by rules, or the last day of the week/month/year/etc if
-  not.
-
-  This flag is usually set early in a next_* routine and returned in
-  the end. The way it is used allows the next_* routine to set the
-  last time back to the first element in a BYxx rule, and then signal
-  to the higer level routine to increment the next higher level. For
-  instance. WITH FREQ=MONTHLY;BYDAY=TU,FR, After next_weekday_by_month
-  runs though both TU and FR, it sets the week day back to TU and sets
-  end_of_data to 1x. This signals next_month to increment the month.
-
-
- ======================================================================*/
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#ifdef HAVE_STDINT_H
-#include <stdint.h>
-#endif
-
-#include "icalrecur.h"
-
-#include "icalerror.h"
-#include "icalmemory.h"
-
-#include <stdlib.h> /* for malloc */
-#include <errno.h> /* for errno */
-#include <string.h> /* for strdup and strchr*/
-#include <assert.h>
-#include <stddef.h> /* For offsetof() macro */
-
-#include "pvl.h"
-
-/** This is the last year we will go up to, since 32-bit time_t values
-   only go up to the start of 2038. */
-#define MAX_TIME_T_YEAR	2037
-
-#define TEMP_MAX 1024
-
-
-#define BYDAYIDX impl->by_indices[BY_DAY]
-#define BYDAYPTR impl->by_ptrs[BY_DAY]
-
-#define BYMONIDX impl->by_indices[BY_MONTH]
-#define BYMONPTR impl->by_ptrs[BY_MONTH]
-
-#define BYMDIDX impl->by_indices[BY_MONTH_DAY]
-#define BYMDPTR impl->by_ptrs[BY_MONTH_DAY]
-
-#define BYWEEKIDX impl->by_indices[BY_WEEK_NO]
-#define BYWEEKPTR impl->by_ptrs[BY_WEEK_NO]
-
-const char* icalrecur_freq_to_string(icalrecurrencetype_frequency kind);
-icalrecurrencetype_frequency icalrecur_string_to_freq(const char* str);
-
-const char* icalrecur_weekday_to_string(icalrecurrencetype_weekday kind);
-icalrecurrencetype_weekday icalrecur_string_to_weekday(const char* str);
-
-
-/*********************** Rule parsing routines ************************/
-
-struct icalrecur_parser {
-	const char* rule;
-        char* copy;
-	char* this_clause;
-	char* next_clause;
-
-	struct icalrecurrencetype rt;
-};
-
-const char* icalrecur_first_clause(struct icalrecur_parser *parser)
-{
-    char *idx;
-    parser->this_clause = parser->copy;
-    
-    idx = strchr(parser->this_clause,';');
-
-    if (idx == 0){
-	parser->next_clause = 0;
-	return 0;
-    }
-
-    *idx = 0;
-    idx++;
-    parser->next_clause = idx;
-
-    return parser->this_clause;
-
-}
-
-const char* icalrecur_next_clause(struct icalrecur_parser *parser)
-{
-    char* idx;
-
-    parser->this_clause = parser->next_clause;
-
-    if(parser->this_clause == 0){
-	return 0;
-    }
-
-    idx = strchr(parser->this_clause,';');
-
-    if (idx == 0){
-	parser->next_clause = 0;
-    } else {
-
-	*idx = 0;
-	idx++;
-	parser->next_clause = idx;
-    }
-	
-    return parser->this_clause;
-
-}
-
-void icalrecur_clause_name_and_value(struct icalrecur_parser *parser,
-				     char** name, char** value)
-{
-    char *idx;
-
-    *name = parser->this_clause;
-
-    idx = strchr(parser->this_clause,'=');
-
-    if (idx == 0){
-	*name = 0;
-	*value = 0;
-	return;
-    }
-    
-    *idx = 0;
-    idx++;
-    *value = idx;
-}
-
-void icalrecur_add_byrules(struct icalrecur_parser *parser, short *array,
-			   int size, char* vals)
-{
-    char *t, *n;
-    int i=0;
-    int sign = 1;
-    int v;
-    (void)parser;
-
-    n = vals;
-
-    while(n != 0){
-
-	if(i == size){
-	    return;
-	}
-	
-	t = n;
-
-	n = strchr(t,',');
-
-	if(n != 0){
-	    *n = 0;
-	    n++;
-	}
-	
-	/* Get optional sign. HACK. sign is not allowed for all BYxxx
-           rule parts */
-	if( *t == '-'){
-	    sign = -1;
-	    t++;
-	} else if (*t == '+'){
-	    sign = 1;
-	    t++;
-	} else {
-	    sign = 1;
-	}
-
-	v = atoi(t) * sign ;
-
-
-	array[i++] = (short)v;
-	array[i] =  ICAL_RECURRENCE_ARRAY_MAX;
-
-    }
-
-}
-
-void icalrecur_add_bydayrules(struct icalrecur_parser *parser, const char* vals)
-{
-
-    char *t, *n;
-    int i=0;
-    int sign = 1;
-    int weekno = 0;
-    icalrecurrencetype_weekday wd;
-    short *array = parser->rt.by_day;
-    char* end;
-    char* vals_copy;
-
-    vals_copy = icalmemory_strdup(vals);
-
-    end = (char*)vals_copy+strlen(vals_copy);
-    n = vals_copy;
-
-    while(n != 0){
-	
-
-	t = n;
-
-	n = strchr(t,',');
-
-	if(n != 0){
-	    *n = 0;
-	    n++;
-	}
-	
-	/* Get optional sign. */
-	if( *t == '-'){
-	    sign = -1;
-	    t++;
-	} else if (*t == '+'){
-	    sign = 1;
-	    t++;
-	} else {
-	    sign = 1;
-	}
-
-	/* Get Optional weekno */
-	weekno = strtol(t,&t,10);
-
-	/* Outlook/Exchange generate "BYDAY=MO, FR" and "BYDAY=2 TH".
-	 * Cope with that.
-	 */
-	if (*t == ' ')
-	    t++;
-
-	wd = icalrecur_string_to_weekday(t);
-
-	array[i++] = (short)(sign* (wd + 8*weekno));
-	array[i] =  ICAL_RECURRENCE_ARRAY_MAX;
-
-    }
-
-    free(vals_copy);
-
-}
-
-
-struct icalrecurrencetype icalrecurrencetype_from_string(const char* str)
-{
-    struct icalrecur_parser parser;
-
-    memset(&parser,0,sizeof(parser));
-    icalrecurrencetype_clear(&parser.rt);
-
-    icalerror_check_arg_re(str!=0,"str",parser.rt);
-
-
-    /* Set up the parser struct */
-    parser.rule = str;
-    parser.copy = icalmemory_strdup(parser.rule);
-    parser.this_clause = parser.copy;
-
-    if(parser.copy == 0){
-	icalerror_set_errno(ICAL_NEWFAILED_ERROR);
-	return parser.rt;
-    }
-
-    /* Loop through all of the clauses */
-    for(icalrecur_first_clause(&parser); 
-	parser.this_clause != 0;
-	icalrecur_next_clause(&parser))
-    {
-	char *name, *value;
-	icalrecur_clause_name_and_value(&parser,&name,&value);
-
-	if(name == 0){
-	    icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-	    icalrecurrencetype_clear(&parser.rt);
-		free(parser.copy);
-	    return parser.rt;
-	}
-
-	if (strcasecmp(name,"FREQ") == 0){
-	    parser.rt.freq = icalrecur_string_to_freq(value);
-	} else if (strcasecmp(name,"COUNT") == 0){
-	    parser.rt.count = atoi(value);
-	} else if (strcasecmp(name,"UNTIL") == 0){
-	    parser.rt.until = icaltime_from_string(value);
-	} else if (strcasecmp(name,"INTERVAL") == 0){
-	    parser.rt.interval = (short)atoi(value);
-	} else if (strcasecmp(name,"WKST") == 0){
-	    parser.rt.week_start = icalrecur_string_to_weekday(value);
-	} else if (strcasecmp(name,"BYSECOND") == 0){
-	    icalrecur_add_byrules(&parser,parser.rt.by_second,
-				  ICAL_BY_SECOND_SIZE,value);
-	} else if (strcasecmp(name,"BYMINUTE") == 0){
-	    icalrecur_add_byrules(&parser,parser.rt.by_minute,
-				  ICAL_BY_MINUTE_SIZE,value);
-	} else if (strcasecmp(name,"BYHOUR") == 0){
-	    icalrecur_add_byrules(&parser,parser.rt.by_hour,
-				  ICAL_BY_HOUR_SIZE,value);
-	} else if (strcasecmp(name,"BYDAY") == 0){
-	    icalrecur_add_bydayrules(&parser,value);
-	} else if (strcasecmp(name,"BYMONTHDAY") == 0){
-	    icalrecur_add_byrules(&parser,parser.rt.by_month_day,
-				  ICAL_BY_MONTHDAY_SIZE,value);
-	} else if (strcasecmp(name,"BYYEARDAY") == 0){
-	    icalrecur_add_byrules(&parser,parser.rt.by_year_day,
-				  ICAL_BY_YEARDAY_SIZE,value);
-	} else if (strcasecmp(name,"BYWEEKNO") == 0){
-	    icalrecur_add_byrules(&parser,parser.rt.by_week_no,
-				  ICAL_BY_WEEKNO_SIZE,value);
-	} else if (strcasecmp(name,"BYMONTH") == 0){
-	    icalrecur_add_byrules(&parser,parser.rt.by_month,
-				  ICAL_BY_MONTH_SIZE,value);
-	} else if (strcasecmp(name,"BYSETPOS") == 0){
-	    icalrecur_add_byrules(&parser,parser.rt.by_set_pos,
-				  ICAL_BY_SETPOS_SIZE,value);
-	} else {
-	    icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-	    icalrecurrencetype_clear(&parser.rt);
-		free(parser.copy);
-	    return parser.rt;
-	}
-	
-    }
-
-    free(parser.copy);
-
-    return parser.rt;
-
-}
-
-static struct { const char* str;size_t offset; int limit;  } recurmap[] = 
-{
-    {";BYSECOND=",offsetof(struct icalrecurrencetype,by_second),60},
-    {";BYMINUTE=",offsetof(struct icalrecurrencetype,by_minute),60},
-    {";BYHOUR=",offsetof(struct icalrecurrencetype,by_hour),24},
-    {";BYDAY=",offsetof(struct icalrecurrencetype,by_day),7},
-    {";BYMONTHDAY=",offsetof(struct icalrecurrencetype,by_month_day),31},
-    {";BYYEARDAY=",offsetof(struct icalrecurrencetype,by_year_day),366},
-    {";BYWEEKNO=",offsetof(struct icalrecurrencetype,by_week_no),52},
-    {";BYMONTH=",offsetof(struct icalrecurrencetype,by_month),12},
-    {";BYSETPOS=",offsetof(struct icalrecurrencetype,by_set_pos),366},
-    {0,0,0},
-};
-
-/* A private routine in icalvalue.c */
-void print_date_to_string(char* str,  struct icaltimetype *data);
-void print_datetime_to_string(char* str,  struct icaltimetype *data);
-
-char* icalrecurrencetype_as_string(struct icalrecurrencetype *recur)
-{
-    char* str;
-    char *str_p;
-    size_t buf_sz = 200;
-    char temp[20];
-    int i,j;
-
-    if(recur->freq == ICAL_NO_RECURRENCE){
-	return 0;
-    }
-
-    str = (char*)icalmemory_tmp_buffer(buf_sz);
-    str_p = str;
-
-    icalmemory_append_string(&str,&str_p,&buf_sz,"FREQ=");
-    icalmemory_append_string(&str,&str_p,&buf_sz,
-			     icalrecur_freq_to_string(recur->freq));
-
-    if(recur->until.year != 0){
-	
-	temp[0] = 0;
-	if (recur->until.is_date)
-	    print_date_to_string(temp,&(recur->until));
-	else
-	    print_datetime_to_string(temp,&(recur->until));
-	
-	icalmemory_append_string(&str,&str_p,&buf_sz,";UNTIL=");
-	icalmemory_append_string(&str,&str_p,&buf_sz, temp);
-    }
-
-    if(recur->count != 0){
-	snprintf(temp,sizeof(temp),"%d",recur->count);
-	icalmemory_append_string(&str,&str_p,&buf_sz,";COUNT=");
-	icalmemory_append_string(&str,&str_p,&buf_sz, temp);
-    }
-
-    if(recur->interval != 1){
-	snprintf(temp,sizeof(temp),"%d",recur->interval);
-	icalmemory_append_string(&str,&str_p,&buf_sz,";INTERVAL=");
-	icalmemory_append_string(&str,&str_p,&buf_sz, temp);
-    }
-    
-    for(j =0; recurmap[j].str != 0; j++){
-	short* array = (short*)(recurmap[j].offset+ (size_t)recur);
-	int limit = recurmap[j].limit;
-
-	/* Skip unused arrays */
-	if( array[0] != ICAL_RECURRENCE_ARRAY_MAX ) {
-
-	    icalmemory_append_string(&str,&str_p,&buf_sz,recurmap[j].str);
-	    
-	    for(i=0; 
-		i< limit  && array[i] != ICAL_RECURRENCE_ARRAY_MAX;
-		i++){
-		if (j == 3) { /* BYDAY */
-		    const char *daystr = icalrecur_weekday_to_string(
-			icalrecurrencetype_day_day_of_week(array[i]));
-		    int pos;
-
-		    pos = icalrecurrencetype_day_position(array[i]);  
-		    
-		    if (pos == 0)
-			icalmemory_append_string(&str,&str_p,&buf_sz,daystr);
-		    else {
-			snprintf(temp,sizeof(temp),"%d%s",pos,daystr);
-			icalmemory_append_string(&str,&str_p,&buf_sz,temp);
-		    }                  
-		    
-		} else {
-		    snprintf(temp,sizeof(temp),"%d",array[i]);
-		    icalmemory_append_string(&str,&str_p,&buf_sz, temp);
-		}
-		
-		if( (i+1)<limit &&array[i+1] 
-		    != ICAL_RECURRENCE_ARRAY_MAX){
-		    icalmemory_append_char(&str,&str_p,&buf_sz,',');
-		}
-	    }	 
-	}
-    }
-
-    /* Monday is the default, so no need to write that out */
-    if ( recur->week_start != ICAL_MONDAY_WEEKDAY ) {
-	const char *daystr = icalrecur_weekday_to_string(
-		icalrecurrencetype_day_day_of_week( recur->week_start ));
-	icalmemory_append_string(&str,&str_p,&buf_sz,";WKST=");
-	icalmemory_append_string(&str,&str_p,&buf_sz,daystr);
-    }
-
-    return  str;
-}
-
-
-/************************* occurrence iteration routiens ******************/
-
-enum byrule {
-    NO_CONTRACTION = -1,
-    BY_SECOND = 0,
-    BY_MINUTE = 1,
-    BY_HOUR = 2,
-    BY_DAY = 3,
-    BY_MONTH_DAY = 4,
-    BY_YEAR_DAY = 5,
-    BY_WEEK_NO = 6,
-    BY_MONTH = 7,
-    BY_SET_POS
-};
-
-
-
-struct icalrecur_iterator_impl {
-	
-    struct icaltimetype dtstart; /* Hack. Make into time_t */
-    struct icaltimetype last; /* last time return from _iterator_next*/
-    int occurrence_no; /* number of step made on t iterator */
-    struct icalrecurrencetype rule;
-    
-    short days[366];
-    short days_index;
-    
-    enum byrule byrule;
-    short by_indices[9];
-    short orig_data[9]; /**< 1 if there was data in the byrule */
-    
-    
-    short *by_ptrs[9]; /**< Pointers into the by_* array elements of the rule */
-    
-};
-
-static void increment_year(icalrecur_iterator* impl, int inc);
-
-int icalrecur_iterator_sizeof_byarray(short* byarray)
-{
-    int array_itr;
-
-    for(array_itr = 0; 
-	byarray[array_itr] != ICAL_RECURRENCE_ARRAY_MAX;
-	array_itr++){
-    }
-
-    return array_itr;
-}
-
-enum expand_table {
-    UNKNOWN  = 0,
-    CONTRACT = 1,
-    EXPAND =2,
-    ILLEGAL=3
-};
-
-/** 
- * The split map indicates, for a particular interval, wether a BY_*
- * rule part expands the number of instances in the occcurrence set or
- * contracts it. 1=> contract, 2=>expand, and 3 means the pairing is
- * not allowed. 
- */
-
-struct expand_split_map_struct 
-{ 
-	icalrecurrencetype_frequency frequency;
-
-	/* Elements of the 'map' array correspond to the BYxxx rules:
-           Second,Minute,Hour,Day,Month Day,Year Day,Week No,Month*/
-
-	short map[8];
-}; 
-
-static struct expand_split_map_struct expand_map[] =
-{
-    {ICAL_SECONDLY_RECURRENCE,{1,1,1,1,1,1,1,1}},
-    {ICAL_MINUTELY_RECURRENCE,{2,1,1,1,1,1,1,1}},
-    {ICAL_HOURLY_RECURRENCE,  {2,2,1,1,1,1,1,1}},
-    {ICAL_DAILY_RECURRENCE,   {2,2,2,1,1,1,1,1}},
-    {ICAL_WEEKLY_RECURRENCE,  {2,2,2,2,3,3,1,1}},
-    {ICAL_MONTHLY_RECURRENCE, {2,2,2,2,2,3,3,1}},
-    {ICAL_YEARLY_RECURRENCE,  {2,2,2,2,2,2,2,2}},
-    {ICAL_NO_RECURRENCE,      {0,0,0,0,0,0,0,0}}
-
-};
-
-
-
-/** Check that the rule has only the two given interday byrule parts. */
-static
-int icalrecur_two_byrule(icalrecur_iterator* impl,
-			 enum byrule one,enum byrule two)
-{
-    short test_array[9];
-    enum byrule itr;
-    int passes = 0;
-
-    memset(test_array,0,sizeof(test_array));
-
-    test_array[one] = 1;
-    test_array[two] = 1;
-
-    for(itr = BY_DAY; itr != BY_SET_POS; itr++){
-
-	if( (test_array[itr] == 0  &&
-	     impl->by_ptrs[itr][0] != ICAL_RECURRENCE_ARRAY_MAX
-	    ) ||
-	    (test_array[itr] == 1  &&
-	     impl->by_ptrs[itr][0] == ICAL_RECURRENCE_ARRAY_MAX
-		) 
-	    ) {
-	    /* test failed */
-	    passes = 0;
-	}
-    }
-
-    return passes;
-
-} 
-
-/** Check that the rule has only the one given interdat byrule parts. */
-static int icalrecur_one_byrule(icalrecur_iterator* impl,enum byrule one)
-{
-    int passes = 1;
-    enum byrule itr;
-
-    for(itr = BY_DAY; itr != BY_SET_POS; itr++){
-	
-	if ((itr==one && impl->by_ptrs[itr][0] == ICAL_RECURRENCE_ARRAY_MAX) ||
-	    (itr!=one && impl->by_ptrs[itr][0] != ICAL_RECURRENCE_ARRAY_MAX)) {
-	    passes = 0;
-	}
-    }
-
-    return passes;
-} 
-
-/*static int count_byrules(icalrecur_iterator* impl)
-{
-    int count = 0;
-    enum byrule itr;
-
-    for(itr = BY_DAY; itr <= BY_SET_POS; itr++){
-	if(impl->by_ptrs[itr][0] != ICAL_RECURRENCE_ARRAY_MAX){
-	    count++;
-	}
-    }
-
-    return count;
-}*/
-
-
-static void setup_defaults(icalrecur_iterator* impl, 
-		    enum byrule byrule, icalrecurrencetype_frequency req,
-		    int deftime, int *timepart)
-{
-
-    icalrecurrencetype_frequency freq;
-    freq = impl->rule.freq;
-
-    /* Re-write the BY rule arrays with data from the DTSTART time so
-       we don't have to explicitly deal with DTSTART */
-
-    if(impl->by_ptrs[byrule][0] == ICAL_RECURRENCE_ARRAY_MAX &&
-	expand_map[freq].map[byrule] != CONTRACT){
-	impl->by_ptrs[byrule][0] = (short)deftime;
-    }
-
-    /* Initialize the first occurrence */
-    if( freq != req && expand_map[freq].map[byrule] != CONTRACT){
-	*timepart = impl->by_ptrs[byrule][0];
-    }
-
-
-}
-
-static int has_by_data(icalrecur_iterator* impl, enum byrule byrule){
-
-    return (impl->orig_data[byrule] == 1);
-}
-
-
-static int expand_year_days(icalrecur_iterator* impl, int year);
-
-
-icalrecur_iterator* icalrecur_iterator_new(struct icalrecurrencetype rule, 
-					   struct icaltimetype dtstart)
-{
-    icalrecur_iterator* impl;
-    icalrecurrencetype_frequency freq;
-
-    if ( ( impl = (icalrecur_iterator*)
-	   malloc(sizeof(icalrecur_iterator))) == 0) {
-	icalerror_set_errno(ICAL_NEWFAILED_ERROR);
-	return 0;
-    }
-
-    memset(impl,0,sizeof(icalrecur_iterator));
-
-    impl->rule = rule;
-    impl->last = dtstart;
-    impl->dtstart = dtstart;
-    impl->days_index =0;
-    impl->occurrence_no = 0;
-    freq = impl->rule.freq;
-
-    /* Set up convienience pointers to make the code simpler. Allows
-       us to iterate through all of the BY* arrays in the rule. */
-
-    impl->by_ptrs[BY_MONTH]=impl->rule.by_month;
-    impl->by_ptrs[BY_WEEK_NO]=impl->rule.by_week_no;
-    impl->by_ptrs[BY_YEAR_DAY]=impl->rule.by_year_day;
-    impl->by_ptrs[BY_MONTH_DAY]=impl->rule.by_month_day;
-    impl->by_ptrs[BY_DAY]=impl->rule.by_day;
-    impl->by_ptrs[BY_HOUR]=impl->rule.by_hour;
-    impl->by_ptrs[BY_MINUTE]=impl->rule.by_minute;
-    impl->by_ptrs[BY_SECOND]=impl->rule.by_second;
-    impl->by_ptrs[BY_SET_POS]=impl->rule.by_set_pos;
-
-    memset(impl->orig_data,0,9*sizeof(short));
-
-    /* Note which by rules had data in them when the iterator was
-       created. We can't use the actuall by_x arrays, because the
-       empty ones will be given default values later in this
-       routine. The orig_data array will be used later in has_by_data */
-
-    impl->orig_data[BY_MONTH]
-	= (short)(impl->rule.by_month[0]!=ICAL_RECURRENCE_ARRAY_MAX);
-    impl->orig_data[BY_WEEK_NO]
-      =(short)(impl->rule.by_week_no[0]!=ICAL_RECURRENCE_ARRAY_MAX);
-    impl->orig_data[BY_YEAR_DAY]
-    =(short)(impl->rule.by_year_day[0]!=ICAL_RECURRENCE_ARRAY_MAX);
-    impl->orig_data[BY_MONTH_DAY]
-    =(short)(impl->rule.by_month_day[0]!=ICAL_RECURRENCE_ARRAY_MAX);
-    impl->orig_data[BY_DAY]
-	= (short)(impl->rule.by_day[0]!=ICAL_RECURRENCE_ARRAY_MAX);
-    impl->orig_data[BY_HOUR]
-	= (short)(impl->rule.by_hour[0]!=ICAL_RECURRENCE_ARRAY_MAX);
-    impl->orig_data[BY_MINUTE]
-     = (short)(impl->rule.by_minute[0]!=ICAL_RECURRENCE_ARRAY_MAX);
-    impl->orig_data[BY_SECOND]
-     = (short)(impl->rule.by_second[0]!=ICAL_RECURRENCE_ARRAY_MAX);
-    impl->orig_data[BY_SET_POS]
-     = (short)(impl->rule.by_set_pos[0]!=ICAL_RECURRENCE_ARRAY_MAX);
-
-
-    /* Check if the recurrence rule is legal */
-
-    /* If the BYYEARDAY appears, no other date rule part may appear.   */
-
-    if(icalrecur_two_byrule(impl,BY_YEAR_DAY,BY_MONTH) ||
-       icalrecur_two_byrule(impl,BY_YEAR_DAY,BY_WEEK_NO) ||
-       icalrecur_two_byrule(impl,BY_YEAR_DAY,BY_MONTH_DAY) ||
-       icalrecur_two_byrule(impl,BY_YEAR_DAY,BY_DAY) ){
-
-	icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-
-	return 0;
-    }
-
-    /* BYWEEKNO and BYMONTH rule parts may not both appear.*/
-
-    if(icalrecur_two_byrule(impl,BY_WEEK_NO,BY_MONTH)){
-	icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-
-	icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-	return 0;
-    }
-
-    /* BYWEEKNO and BYMONTHDAY rule parts may not both appear.*/
-
-    if(icalrecur_two_byrule(impl,BY_WEEK_NO,BY_MONTH_DAY)){
-	icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-
-	icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-	return 0;
-    }
-
-
-    /*For MONTHLY recurrences (FREQ=MONTHLY) neither BYYEARDAY nor
-      BYWEEKNO may appear. */
-
-    if(freq == ICAL_MONTHLY_RECURRENCE && 
-       icalrecur_one_byrule(impl,BY_WEEK_NO)){
-	icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-	return 0;
-    }
-
-
-    /*For WEEKLY recurrences (FREQ=WEEKLY) neither BYMONTHDAY nor
-      BYYEARDAY may appear. */
-
-    if(freq == ICAL_WEEKLY_RECURRENCE && 
-       icalrecur_one_byrule(impl,BY_MONTH_DAY )) {
-	icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-	return 0;
-    }
-
-    /* BYYEARDAY may only appear in YEARLY rules */
-    if(freq != ICAL_YEARLY_RECURRENCE && 
-       icalrecur_one_byrule(impl,BY_YEAR_DAY )) {
-	icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-	return 0;
-    }
-
-    /* Rewrite some of the rules and set up defaults to make later
-       processing easier. Primarily, t involves copying an element
-       from the start time into the corresponding BY_* array when the
-       BY_* array is empty */
-
-
-    setup_defaults(impl,BY_SECOND,ICAL_SECONDLY_RECURRENCE,
-		   impl->dtstart.second,
-		   &(impl->last.second));
-
-    setup_defaults(impl,BY_MINUTE,ICAL_MINUTELY_RECURRENCE,
-		   impl->dtstart.minute,
-		   &(impl->last.minute));
-
-    setup_defaults(impl,BY_HOUR,ICAL_HOURLY_RECURRENCE,
-		   impl->dtstart.hour,
-		   &(impl->last.hour));
-
-    setup_defaults(impl,BY_MONTH_DAY,ICAL_DAILY_RECURRENCE,
-		   impl->dtstart.day,
-		   &(impl->last.day));
-
-    setup_defaults(impl,BY_MONTH,ICAL_MONTHLY_RECURRENCE,
-		   impl->dtstart.month,
-		   &(impl->last.month));
-
-
-    if(impl->rule.freq == ICAL_WEEKLY_RECURRENCE ){
-
-       if(impl->by_ptrs[BY_DAY][0] == ICAL_RECURRENCE_ARRAY_MAX){
-
-	   /* Weekly recurrences with no BY_DAY data should occur on the
-	      same day of the week as the start time . */
-	   impl->by_ptrs[BY_DAY][0] = (short)icaltime_day_of_week(impl->dtstart);
-
-       } else {
-	  /* If there is BY_DAY data, then we need to move the initial
-	     time to the start of the BY_DAY data. That is if the
-	     start time is on a Wednesday, and the rule has
-	     BYDAY=MO,WE,FR, move the initial time back to
-	     monday. Otherwise, jumping to the next week ( jumping 7
-	     days ahead ) will skip over some occurrences in the
-	     second week. */
-	  
-	  /* This is probably a HACK. There should be some more
-             general way to solve this problem */
-
-	  short dow = (short)(impl->by_ptrs[BY_DAY][0]-icaltime_day_of_week(impl->last));
-
-	  if(dow < 0) {
-	      /* initial time is after first day of BY_DAY data */
-
-	      impl->last.day += dow;
-	      impl->last = icaltime_normalize(impl->last);
-	  }
-      }
-      
-
-    }
-
-    /* For YEARLY rule, begin by setting up the year days array . The
-       YEARLY rules work by expanding one year at a time. */
-
-    if(impl->rule.freq == ICAL_YEARLY_RECURRENCE){
-        struct icaltimetype next;
-
-	for (;;) {
-            expand_year_days(impl, impl->last.year);
-	    if (impl->days[0] != ICAL_RECURRENCE_ARRAY_MAX)
-	        break; /* break when no days are expanded */
-	    increment_year(impl,impl->rule.interval);
-	}
-
-        /* Copy the first day into last. */
-	next = icaltime_from_day_of_year(impl->days[0], impl->last.year);
-    
-	impl->last.day =  next.day;
-	impl->last.month =  next.month;
-    } 
-
-
-    /* If this is a monthly interval with by day data, then we need to
-       set the last value to the appropriate day of the month */
-
-    if(impl->rule.freq == ICAL_MONTHLY_RECURRENCE &&
-       has_by_data(impl,BY_DAY)) {
-
-	int dow = icalrecurrencetype_day_day_of_week(
-	    impl->by_ptrs[BY_DAY][impl->by_indices[BY_DAY]]);  
-	int pos =  icalrecurrencetype_day_position(
-	    impl->by_ptrs[BY_DAY][impl->by_indices[BY_DAY]]);  
-	
-	int poscount = 0;
-	int days_in_month = 
-            icaltime_days_in_month(impl->last.month, impl->last.year); 
-	
-        if(pos >= 0){
-            /* Count up from the first day pf the month to find the
-               pos'th weekday of dow ( like the second monday. ) */
-
-            for(impl->last.day = 1;
-                impl->last.day <= days_in_month;
-                impl->last.day++){
-                
-                if(icaltime_day_of_week(impl->last) == dow){
-                    if(++poscount == pos || pos == 0){
-                        break;
-                    }
-                }
-            }
-        } else {
-            /* Count down from the last day pf the month to find the
-               pos'th weekday of dow ( like the second to last monday. ) */
-            pos = -pos;
-            for(impl->last.day = days_in_month;
-                impl->last.day != 0;
-                impl->last.day--){
-                
-                if(icaltime_day_of_week(impl->last) == dow){
-                    if(++poscount == pos ){
-                        break;
-                    }
-                }
-            }
-        }
-
-
-	if(impl->last.day > days_in_month || impl->last.day == 0){
-	    icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-	    return 0;
-	}
-	
-    }
-
-
-
-    return impl;
-}
-
-
-void icalrecur_iterator_free(icalrecur_iterator* i)
-{
-    icalerror_check_arg_rv((i!=0),"impl");
-    
-    free(i);
-
-}
-
-static void increment_year(icalrecur_iterator* impl, int inc)
-{
-    impl->last.year+=inc;
-}
-
-/** Increment month is different that the other incement_* routines --
-   it figures out the interval for itself, and uses BYMONTH data if
-   available. */
-static void increment_month(icalrecur_iterator* impl)
-{
-    int years;
-
-     if(has_by_data(impl,BY_MONTH) ){
-         /* Ignore the frequency and use the byrule data */
-         
-         impl->by_indices[BY_MONTH]++;
-         
-         if (impl->by_ptrs[BY_MONTH][impl->by_indices[BY_MONTH]]
-             ==ICAL_RECURRENCE_ARRAY_MAX){
-             impl->by_indices[BY_MONTH] = 0;
-
-             increment_year(impl,1);
-             
-         }
-         
-         impl->last.month = 
-             impl->by_ptrs[BY_MONTH][impl->by_indices[BY_MONTH]];
-
-     } else {
-         
-         int inc;
-
-         if(impl->rule.freq == ICAL_MONTHLY_RECURRENCE){
-            inc =  impl->rule.interval;
-         } else {
-             inc = 1;
-         }
-
-         impl->last.month+=inc;
-         
-         /* Months are offset by one */
-         impl->last.month--;
-         
-         years = impl->last.month / 12;
-         
-         impl->last.month = impl->last.month % 12;
-         
-         impl->last.month++;
-         
-         if (years != 0){
-             increment_year(impl,years);
-         }
-     }
-}
-
-static void increment_monthday(icalrecur_iterator* impl, int inc)
-{
-    int i;
-
-    for(i=0; i<inc; i++){
-	
-	int days_in_month = 
-	    icaltime_days_in_month(impl->last.month, impl->last.year);
-
-	impl->last.day++;
-	
-	if (impl->last.day > days_in_month){
-	    impl->last.day = impl->last.day-days_in_month;
-	    increment_month(impl);
-	}
-    }
-}
-
-
-static void increment_hour(icalrecur_iterator* impl, int inc)
-{
-    int days;
-
-    impl->last.hour+=inc;
-
-    days = impl->last.hour / 24;
-    impl->last.hour = impl->last.hour % 24;
-
-    if (impl->days != 0){
-	increment_monthday(impl,days);
-    }
-}
-
-static void increment_minute(icalrecur_iterator* impl, int inc)
-{
-    int hours;
-
-    impl->last.minute+=inc;
-
-    hours = impl->last.minute / 60;
-     impl->last.minute =  impl->last.minute % 60;
-
-     if (hours != 0){
-	increment_hour(impl,hours);
-    }
-
-}
-
-static void increment_second(icalrecur_iterator* impl, int inc)
-{
-    int minutes;
-
-    impl->last.second+=inc;
-    
-    minutes = impl->last.second / 60;
-    impl->last.second = impl->last.second % 60;
-    
-    if (minutes != 0)
-    {
-	increment_minute(impl, minutes);
-    }                 
-}
-
-#if 0
-#include "ical.h"
-void test_increment()
-{
-    icalrecur_iterator impl;
-
-    impl.last =  icaltime_from_string("20000101T000000Z");
-
-    printf("Orig: %s\n",icaltime_as_ctime(impl.last));
-    
-    increment_second(&impl,5);
-    printf("+ 5 sec    : %s\n",icaltime_as_ctime(impl.last));
-
-    increment_second(&impl,355);
-    printf("+ 355 sec  : %s\n",icaltime_as_ctime(impl.last));
-
-    increment_minute(&impl,5);
-    printf("+ 5 min    : %s\n",icaltime_as_ctime(impl.last));
-
-    increment_minute(&impl,360);
-    printf("+ 360 min  : %s\n",icaltime_as_ctime(impl.last));
-    increment_hour(&impl,5);
-    printf("+ 5 hours  : %s\n",icaltime_as_ctime(impl.last));
-    increment_hour(&impl,43);
-    printf("+ 43 hours : %s\n",icaltime_as_ctime(impl.last));
-    increment_monthday(&impl,3);
-    printf("+ 3 days   : %s\n",icaltime_as_ctime(impl.last));
-    increment_monthday(&impl,600);
-    printf("+ 600 days  : %s\n",icaltime_as_ctime(impl.last));
-	
-}
-
-#endif 
-
-static int next_second(icalrecur_iterator* impl)
-{
-
-  int has_by_second = (impl->by_ptrs[BY_SECOND][0]!=ICAL_RECURRENCE_ARRAY_MAX);
-  int this_frequency = (impl->rule.freq == ICAL_SECONDLY_RECURRENCE);
-
-  int end_of_data = 0;
-
-  assert(has_by_second || this_frequency);
-
-  if(  has_by_second ){
-      /* Ignore the frequency and use the byrule data */
-
-      impl->by_indices[BY_SECOND]++;
-
-      if (impl->by_ptrs[BY_SECOND][impl->by_indices[BY_SECOND]]
-	  ==ICAL_RECURRENCE_ARRAY_MAX){
-	  impl->by_indices[BY_SECOND] = 0;
-
-	  end_of_data = 1;
-      }
-
-
-      impl->last.second = 
-	  impl->by_ptrs[BY_SECOND][impl->by_indices[BY_SECOND]];
-      
-      
-  } else if( !has_by_second &&  this_frequency ){
-      /* Compute the next value from the last time and the frequency interval*/
-      increment_second(impl, impl->rule.interval);
-
-  }
-
-  /* If we have gone through all of the seconds on the BY list, then we
-     need to move to the next minute */
-
-  if(has_by_second && end_of_data && this_frequency ){
-      increment_minute(impl,1);
-  }
-
-  return end_of_data;
-
-}
-
-static int next_minute(icalrecur_iterator* impl)
-{
-
-  int has_by_minute = (impl->by_ptrs[BY_MINUTE][0]!=ICAL_RECURRENCE_ARRAY_MAX);
-  int this_frequency = (impl->rule.freq == ICAL_MINUTELY_RECURRENCE);
-
-  int end_of_data = 0;
-
-  assert(has_by_minute || this_frequency);
-
-
-  if (next_second(impl) == 0){
-      return 0;
-  }
-
-  if(  has_by_minute ){
-      /* Ignore the frequency and use the byrule data */
-
-      impl->by_indices[BY_MINUTE]++;
-      
-      if (impl->by_ptrs[BY_MINUTE][impl->by_indices[BY_MINUTE]]
-	  ==ICAL_RECURRENCE_ARRAY_MAX){
-
-	  impl->by_indices[BY_MINUTE] = 0;
-	  
-	  end_of_data = 1;
-      }
-
-      impl->last.minute = 
-	  impl->by_ptrs[BY_MINUTE][impl->by_indices[BY_MINUTE]];
-
-  } else if( !has_by_minute &&  this_frequency ){
-      /* Compute the next value from the last time and the frequency interval*/
-      increment_minute(impl,impl->rule.interval);
-  } 
-
-/* If we have gone through all of the minutes on the BY list, then we
-     need to move to the next hour */
-
-  if(has_by_minute && end_of_data && this_frequency ){
-      increment_hour(impl,1);
-  }
-
-  return end_of_data;
-}
-
-static int next_hour(icalrecur_iterator* impl)
-{
-
-  int has_by_hour = (impl->by_ptrs[BY_HOUR][0]!=ICAL_RECURRENCE_ARRAY_MAX);
-  int this_frequency = (impl->rule.freq == ICAL_HOURLY_RECURRENCE);
-
-  int end_of_data = 0;
-
-  assert(has_by_hour || this_frequency);
-
-  if (next_minute(impl) == 0){
-      return 0;
-  }
-
-  if(  has_by_hour ){
-      /* Ignore the frequency and use the byrule data */
-
-      impl->by_indices[BY_HOUR]++;
-      
-      if (impl->by_ptrs[BY_HOUR][impl->by_indices[BY_HOUR]]
-	  ==ICAL_RECURRENCE_ARRAY_MAX){
-	  impl->by_indices[BY_HOUR] = 0;
-	  
-	  end_of_data = 1;
-      }
-
-      impl->last.hour = 
-	  impl->by_ptrs[BY_HOUR][impl->by_indices[BY_HOUR]];
-
-  } else if( !has_by_hour &&  this_frequency ){
-      /* Compute the next value from the last time and the frequency interval*/
-      increment_hour(impl,impl->rule.interval);
-
-  }
-
-  /* If we have gone through all of the hours on the BY list, then we
-     need to move to the next day */
-
-  if(has_by_hour && end_of_data && this_frequency ){
-      increment_monthday(impl,1);
-  }
-
-  return end_of_data;
-
-}
-
-static int next_day(icalrecur_iterator* impl)
-{
-
-  int has_by_day = (impl->by_ptrs[BY_DAY][0]!=ICAL_RECURRENCE_ARRAY_MAX);
-  int this_frequency = (impl->rule.freq == ICAL_DAILY_RECURRENCE);
-
-  assert(has_by_day || this_frequency);
-
-  if (next_hour(impl) == 0){
-      return 0;
-  }
-
-  /* Always increment through the interval, since this routine is not
-     called by any other next_* routine, and the days that are
-     excluded will be taken care of by restriction filtering */
-
-  if(this_frequency){
-      increment_monthday(impl,impl->rule.interval);
-  } else {
-      increment_monthday(impl,1);
-  }
-
-
-  return 0;
-
-}
-
-
-/*static int next_yearday(icalrecur_iterator* impl)
-{
-
-  int has_by_yearday = (impl->by_ptrs[BY_YEAR_DAY][0]!=ICAL_RECURRENCE_ARRAY_MAX);
-
-  int end_of_data = 0;
-
-  assert(has_by_yearday );
-
-  if (next_hour(impl) == 0){
-      return 0;
-  }
-
-  impl->by_indices[BY_YEAR_DAY]++;
-  
-  if (impl->by_ptrs[BY_YEAR_DAY][impl->by_indices[BY_YEAR_DAY]]
-      ==ICAL_RECURRENCE_ARRAY_MAX){
-      impl->by_indices[BY_YEAR_DAY] = 0;
-      
-      end_of_data = 1;
-  }
-  
-  impl->last.day = 
-      impl->by_ptrs[BY_YEAR_DAY][impl->by_indices[BY_YEAR_DAY]];
-  
-  if(has_by_yearday && end_of_data){
-      increment_year(impl,1);
-  }
-
-  return end_of_data;
-
-}*/
-
-
-/* Returns the day of the month for the current month of t that is the
-   pos'th instance of the day-of-week dow */
-
-static int nth_weekday(int dow, int pos, struct icaltimetype t){
-
-    int days_in_month = icaltime_days_in_month(t.month, t.year);
-    int end_dow, start_dow;
-    int wd;
-
-    if(pos >= 0){
-        t.day = 1;
-        start_dow = icaltime_day_of_week(t);        
-        
-        if (pos != 0) {
-            pos--;
-        }
-         
-        /* find month day of first occurrence of dow -- such as the
-           month day of the first monday */
-
-        wd = dow-start_dow+1;
-
-        if (wd <= 0){
-            wd = wd + 7;
-        }
-
-        wd = wd + pos * 7;
-        
-    } else {
-        t.day = days_in_month;
-        end_dow = icaltime_day_of_week(t);
-
-        pos++;
-
-        /* find month day of last occurrence of dow -- such as the
-           month day of the last monday */
-
-        wd = (end_dow - dow);
-
-        if (wd < 0){
-            wd = wd+ 7;
-        }
-
-        wd = days_in_month - wd;
-
-        wd = wd + pos * 7;
-    }
-        
-    return wd;
-}
-
-static int is_day_in_byday(icalrecur_iterator* impl,struct icaltimetype tt){
-
-    int idx; 
-
-    for(idx = 0; BYDAYPTR[idx] != ICAL_RECURRENCE_ARRAY_MAX; idx++){
-        int dow = icalrecurrencetype_day_day_of_week(BYDAYPTR[idx]);  
-        int pos =  icalrecurrencetype_day_position(BYDAYPTR[idx]);  
-        int this_dow = icaltime_day_of_week(tt);
-        
-        if( (pos == 0 &&  dow == this_dow ) || /* Just a dow, like "TU" or "FR" */
-            (nth_weekday(dow,pos,tt) == tt.day)){ /*pos+wod: "3FR" or -1TU" */
-            return 1;
-        }
-    }
-
-    return 0;
-}
-
-static int next_month(icalrecur_iterator* impl)
-{
-    int data_valid = 1;
-    
-    int this_frequency = (impl->rule.freq == ICAL_MONTHLY_RECURRENCE);
-    
-    assert( has_by_data(impl,BY_MONTH) || this_frequency);
-  
-    /* Iterate through the occurrences within a day. If we don't get to
-       the end of the intra-day data, don't bother going to the next
-       month */
-    
-    if (next_hour(impl) == 0){
-        return data_valid; /* Signal that the data is valid */
-    }
-    
-    /* Now iterate through the occurrences within a month -- by days,
-       weeks or weekdays.  */
-
-   /* 
-    * Case 1: 
-    * Rules Like: FREQ=MONTHLY;INTERVAL=1;BYDAY=FR;BYMONTHDAY=13 
-    */
-    
-    if(has_by_data(impl,BY_DAY) && has_by_data(impl,BY_MONTH_DAY)){
-      int day, idx,j;
-      int days_in_month = icaltime_days_in_month(impl->last.month,
-                                                   impl->last.year);
-      /* Iterate through the remaining days in the month and check if
-         each day is listed in the BY_DAY array and in the BY_MONTHDAY
-         array. This seems very inneficient, but I think it is the
-         simplest way to account for both BYDAY=1FR (First friday in
-         month) and BYDAY=FR ( every friday in month ) */
-
-      for(day = impl->last.day+1; day <= days_in_month; day++){
-          for(idx = 0; BYDAYPTR[idx] != ICAL_RECURRENCE_ARRAY_MAX; idx++){
-              for(j = 0; BYMDPTR[j]!=ICAL_RECURRENCE_ARRAY_MAX; j++){
-                  int dow = 
-                      icalrecurrencetype_day_day_of_week(BYDAYPTR[idx]);  
-                  int pos =  icalrecurrencetype_day_position(BYDAYPTR[idx]);  
-                  int mday = BYMDPTR[j];
-                  int this_dow;
-                  
-                  impl->last.day = day;
-                  this_dow = icaltime_day_of_week(impl->last);
-                  
-                  if( (pos == 0 &&  dow == this_dow && mday == day) || 
-                      (nth_weekday(dow,pos,impl->last) == day && mday==day)){
-                      goto MDEND;
-                  }
-              }
-          }
-      }
-
-  MDEND:
-
-      if ( day > days_in_month){
-          impl->last.day = 1;
-          increment_month(impl);
-          data_valid = 0; /* signal that impl->last is invalid */
-      }
-
-    
-   /* 
-    * Case 2: 
-    * Rules Like: FREQ=MONTHLY;INTERVAL=1;BYDAY=FR 
-    */
-  
-  }  else if(has_by_data(impl,BY_DAY)){
-      /* For this case, the weekdays are relative to the
-         month. BYDAY=FR -> First Friday in month, etc. */
-
-      /* This code iterates through the remaining days in the month
-         and checks if each day is listed in the BY_DAY array. This
-         seems very inneficient, but I think it is the simplest way to
-         account for both BYDAY=1FR (First friday in month) and
-         BYDAY=FR ( every friday in month ) */
-
-      int day;
-      int days_in_month = icaltime_days_in_month(impl->last.month,
-                                                   impl->last.year);
-      assert( BYDAYPTR[0]!=ICAL_RECURRENCE_ARRAY_MAX);
-
-      for(day = impl->last.day+1; day <= days_in_month; day++){
-          impl->last.day = day;
-          if(is_day_in_byday(impl,impl->last)){
-              data_valid = 1;
-              break;
-          }
-      }
-
-      if ( day > days_in_month){
-          impl->last.day = 1;
-          increment_month(impl);
-
-          /* Did moving to the next month put us on a valid date? if
-             so, note that the new data is valid, if, not, mark it
-             invalid */
-
-          if(is_day_in_byday(impl,impl->last)){
-              data_valid = 1;
-          } else {
-              data_valid = 0; /* signal that impl->last is invalid */
-          }
-      }
-
-     /* 
-       * Case 3
-       * Rules Like: FREQ=MONTHLY;COUNT=10;BYMONTHDAY=-3  
-       */
-
-  } else if (has_by_data(impl,BY_MONTH_DAY)) {
-      int day;
-
-      assert( BYMDPTR[0]!=ICAL_RECURRENCE_ARRAY_MAX);
-
-      BYMDIDX++;
-          
-      /* Are we at the end of the BYDAY array? */
-      if (BYMDPTR[BYMDIDX] ==ICAL_RECURRENCE_ARRAY_MAX){
-          
-          BYMDIDX = 0; /* Reset to 0 */      
-          increment_month(impl);          
-      }
-      
-      day = BYMDPTR[BYMDIDX];
-      
-      if (day < 0) {
-          day = icaltime_days_in_month(impl->last.month, impl->last.year) + day + 1;
-      }
-      
-      impl->last.day = day;
-
-  } else {
-      increment_month(impl);
-  }
-
-  return data_valid;
-
-}
-
-static int next_weekday_by_week(icalrecur_iterator* impl)
-{
-
-  int end_of_data = 0;
-  int start_of_week, dow;
-  struct icaltimetype next;
-
-  if (next_hour(impl) == 0){
-      return 0;
-  }
-
-  if(!has_by_data(impl,BY_DAY)){
-      return 1;
-  }
-
-  /* If we get here, we need to step to tne next day */
-
-  for (;;) {
-      struct icaltimetype tt = icaltime_null_time();
-      BYDAYIDX++; /* Look at next elem in BYDAY array */
-      
-      /* Are we at the end of the BYDAY array? */
-      if (BYDAYPTR[BYDAYIDX]==ICAL_RECURRENCE_ARRAY_MAX){
-	  BYDAYIDX = 0; /* Reset to 0 */      
-	  end_of_data = 1; /* Signal that we're at the end */
-      }
-      
-      /* Add the day of week offset to to the start of this week, and use
-	 that to get the next day */
-      /* ignore position of dow ("4FR"), only use dow ("FR")*/
-      dow = icalrecurrencetype_day_day_of_week(BYDAYPTR[BYDAYIDX]); 
-      tt.year = impl->last.year;
-      tt.day = impl->last.day;
-      tt.month = impl->last.month;
-
-      start_of_week = icaltime_start_doy_of_week(tt);
-      
-      dow--; /* Set Sunday to be 0 */
-      
-      if(dow+start_of_week <1){
-          /* The selected date is in the previous year. */
-          if(!end_of_data){    
-              continue;
-          }
-      } 
- 
-      next = icaltime_from_day_of_year(start_of_week + dow,impl->last.year);
-      
-      impl->last.day =  next.day;
-      impl->last.month =  next.month;
-      impl->last.year =  next.year;
-
-      return end_of_data;
-  }
-
-}
-
-static int next_week(icalrecur_iterator* impl)
-{
-  int end_of_data = 0;
-
-  /* Increment to the next week day, if there is data at a level less than a week */
-  if (next_weekday_by_week(impl) == 0){
-      return 0; /* Have not reached end of week yet */
-  }
-
-  /* If we get here, we have incremented through the entire week, and
-     can increment to the next week */
-
-  if( has_by_data(impl,BY_WEEK_NO)){
-      /*FREQ=WEEKLY;BYWEEK=20*/
-    /* Use the Week Number byrule data */
-      int week_no;
-      struct icaltimetype t;
-      
-      impl->by_indices[BY_WEEK_NO]++;
-      
-      if (impl->by_ptrs[BY_WEEK_NO][impl->by_indices[BY_WEEK_NO]]
-	  ==ICAL_RECURRENCE_ARRAY_MAX){
-	  impl->by_indices[BY_WEEK_NO] = 0;
-	  
-	  end_of_data = 1;
-      }
-      
-      t = impl->last;
-      t.month=1; /* HACK, should be setting to the date of the first week of year*/
-      t.day=1;
-      
-      week_no = impl->by_ptrs[BY_WEEK_NO][impl->by_indices[BY_WEEK_NO]];
-      
-      impl->last.day += week_no*7;
-
-      impl->last = icaltime_normalize(impl->last);
-      
-  } else {
-      /* Jump to the next week */
-      increment_monthday(impl,7*impl->rule.interval);
-  }
-
-  if( has_by_data(impl,BY_WEEK_NO) && end_of_data){
-      increment_year(impl,1);
-  }
-
-  return end_of_data;
-  
-}
-
-/** Expand the BYDAY rule part and return a pointer to a newly allocated list of days. */
-static pvl_list expand_by_day(icalrecur_iterator* impl, int year)
-{
-    /* Try to calculate each of the occurrences. */
-    int i;
-    pvl_list days_list = pvl_newlist();
-
-    int start_dow, end_dow, end_year_day;
-    struct icaltimetype tmp = impl->last;
-    
-    tmp.year= year;
-    tmp.month = 1;
-    tmp.day = 1;
-    tmp.is_date = 1;
-    
-    /* Find the day that 1st Jan falls on, 1 (Sun) to 7 (Sat). */
-    start_dow = icaltime_day_of_week(tmp);
-    
-    /* Get the last day of the year*/
-    tmp.year= year;
-    tmp.month = 12;
-    tmp.day = 31;
-    tmp.is_date = 1;
-    
-    end_dow =  icaltime_day_of_week(tmp);
-    end_year_day = icaltime_day_of_year(tmp);
-    
-    for(i = 0; BYDAYPTR[i] != ICAL_RECURRENCE_ARRAY_MAX; i++){
-        /* This is 1 (Sun) to 7 (Sat). */
-        int dow = 
-            icalrecurrencetype_day_day_of_week(BYDAYPTR[i]);  
-        int pos =  icalrecurrencetype_day_position(BYDAYPTR[i]);
-        
-        if(pos == 0){
-            /* The day was specified without a position -- it is just
-               a bare day of the week ( BYDAY=SU) so add all of the
-               days of the year with this day-of-week*/
-            int doy, tmp_start_doy;
-                
-	    tmp_start_doy = ((dow + 7 - start_dow) % 7) + 1;
-
-            for (doy = tmp_start_doy; doy <= end_year_day; doy += 7)
-                    pvl_push(days_list,(void*)(ptrdiff_t)doy);
-            
-        } else if ( pos > 0) {
-            int first;
-            /* First occurrence of dow in year */
-            if( dow >= start_dow) {
-                first = dow - start_dow + 1;
-            } else {
-                first = dow - start_dow + 8;
-            }
-
-            /* Then just multiple the position times 7 to get the pos'th day in the year */
-            pvl_push(days_list,(void*)(first+  (pos-1) * 7));
-            
-        } else { /* pos < 0 */ 
-            int last;
-            pos = -pos;
-
-            /* last occurrence of dow in year */
-            if( dow <= end_dow) {
-                last = end_year_day - end_dow + dow;
-            } else {
-                last = end_year_day - end_dow + dow - 7;
-            }
-
-            pvl_push(days_list,(void*)(last - (pos-1) * 7));
-        }
-    }
-    return days_list;
-}
-
-
-/* For INTERVAL=YEARLY, set up the days[] array in the iterator to
-   list all of the days of the current year that are specified in this
-   rule. */
-
-static int expand_year_days(icalrecur_iterator* impl, int year)
-{
-    int j,k;
-    int days_index=0;
-    struct icaltimetype t;
-    int flags;
-
-    t = icaltime_null_date();
-
-#define HBD(x) has_by_data(impl,x)
-
-    memset(impl->days,ICAL_RECURRENCE_ARRAY_MAX_BYTE,sizeof(impl->days));
-    
-    /* The flags and the following switch statement select which code
-       to use to expand the yers days, based on which BY-rules are
-       present. */
-
-    flags = (HBD(BY_DAY) ? 1<<BY_DAY : 0) + 
-        (HBD(BY_WEEK_NO) ? 1<<BY_WEEK_NO : 0) + 
-        (HBD(BY_MONTH_DAY) ? 1<<BY_MONTH_DAY : 0) + 
-        (HBD(BY_MONTH) ? 1<<BY_MONTH : 0) + 
-        (HBD(BY_YEAR_DAY) ? 1<<BY_YEAR_DAY : 0);
-
-    
-    switch(flags) {
-        
-    case 0: {
-        /* FREQ=YEARLY; */
-        t = impl->dtstart;
-        t.year = impl->last.year;
-        
-        impl->days[days_index++] = (short)icaltime_day_of_year(t);
-  
-        break;
-    }
-    case 1<<BY_MONTH: {
-        /* FREQ=YEARLY; BYMONTH=3,11*/
-	
-        for(j=0;impl->by_ptrs[BY_MONTH][j]!=ICAL_RECURRENCE_ARRAY_MAX;j++){
-	    int month = impl->by_ptrs[BY_MONTH][j];	    
-            int doy;
-
-	    t = impl->dtstart;
-	    t.year = year;
-	    t.month = month;
-	    t.is_date = 1;
-
-	    doy = icaltime_day_of_year(t);
-	    
-            impl->days[days_index++] = (short)doy;
-
-        }
-        break;
-    }
-
-    case 1<<BY_MONTH_DAY:  {
-        /* FREQ=YEARLY; BYMONTHDAY=1,15*/
-        for(k=0;impl->by_ptrs[BY_MONTH_DAY][k]!=ICAL_RECURRENCE_ARRAY_MAX;k++)
-            {
-                int month_day = impl->by_ptrs[BY_MONTH_DAY][k];
-                int doy;
-
-                t = impl->dtstart;
-		t.day = month_day;
-		t.year = year;
-		t.is_date = 1;
-
-		doy = icaltime_day_of_year(t);
-
-		impl->days[days_index++] = (short)doy;
-
-            }
-        break;
-    }
-
-    case (1<<BY_MONTH_DAY) + (1<<BY_MONTH): {
-        /* FREQ=YEARLY; BYMONTHDAY=1,15; BYMONTH=10 */
-
-        for(j=0;impl->by_ptrs[BY_MONTH][j]!=ICAL_RECURRENCE_ARRAY_MAX;j++){
-            for(k=0;impl->by_ptrs[BY_MONTH_DAY][k]!=ICAL_RECURRENCE_ARRAY_MAX;k++)
-           {
-                int month = impl->by_ptrs[BY_MONTH][j];
-                int month_day = impl->by_ptrs[BY_MONTH_DAY][k];
-                int doy;
-
-		t.day = month_day;
-		t.month = month;
-		t.year = year;
-		t.is_date = 1;
-
-		doy = icaltime_day_of_year(t);
-
-		impl->days[days_index++] = (short)doy;
-
-            }
-        }
-
-        break;
-    }
-
-    case 1<<BY_WEEK_NO: {
-        /* FREQ=YEARLY; BYWEEKNO=20,50 */
-
-	int dow;
-
-	t.day = impl->dtstart.day;
-	t.month = impl->dtstart.month;
-	t.year = year;
-	t.is_date = 1;
-
-        dow = icaltime_day_of_week(t);
-	/* HACK Not finished */ 
-
-        icalerror_set_errno(ICAL_UNIMPLEMENTED_ERROR);
-	
-        break;
-    }
-
-    case (1<<BY_WEEK_NO) + (1<<BY_MONTH_DAY): {
-        /*FREQ=YEARLY; WEEKNO=20,50; BYMONTH= 6,11 */
-        icalerror_set_errno(ICAL_UNIMPLEMENTED_ERROR);
-        break;
-    }
-
-    case 1<<BY_DAY: {
-        /*FREQ=YEARLY; BYDAY=TH,20MO,-10FR*/
-        pvl_elem i;
-        pvl_list days = expand_by_day(impl,year);
-
-
-        for(i=pvl_head(days);i!=0;i=pvl_next(i)){
-            short day = (short)(intptr_t)pvl_data(i);
-            impl->days[days_index++] = day;
-        }
-
-        pvl_free(days);
-
-        break;
-    }
-
-    case (1<<BY_DAY)+(1<<BY_MONTH): {
-        /*FREQ=YEARLY; BYDAY=TH,20MO,-10FR; BYMONTH = 12*/
-
-
-        for(j=0;impl->by_ptrs[BY_MONTH][j]!=ICAL_RECURRENCE_ARRAY_MAX;j++){
-	    int month = impl->by_ptrs[BY_MONTH][j];
-	    int days_in_month = icaltime_days_in_month(month,year);
-	    int first_dow, last_dow, doy_offset;
-            
-	    t.year = year;
-	    t.month = month;
-	    t.day = 1;
-	    t.is_date = 1;
-              
-	    first_dow = icaltime_day_of_week(t);
-
-	    /* This holds the day offset used to calculate the day of the year
-	       from the month day. Just add the month day to this. */
-	    doy_offset = icaltime_day_of_year(t) - 1;
-
-	    t.day = days_in_month;
-	    last_dow = icaltime_day_of_week(t);
-
-	    for(k=0;impl->by_ptrs[BY_DAY][k]!=ICAL_RECURRENCE_ARRAY_MAX;k++){
-	        short day_coded = impl->by_ptrs[BY_DAY][k];
-		enum icalrecurrencetype_weekday dow =
-		  icalrecurrencetype_day_day_of_week(day_coded);
-		int pos = icalrecurrencetype_day_position(day_coded);  
-		int first_matching_day, last_matching_day, day, month_day;
-
-		/* Calculate the first day in the month with the given weekday,
-		   and the last day. */
-		first_matching_day = ((dow + 7 - first_dow) % 7) + 1;
-		last_matching_day = days_in_month - ((last_dow + 7 - dow) % 7);
-
-		if (pos == 0) {
-		    /* Add all of instances of the weekday within the month. */
-		  for (day = first_matching_day; day <= days_in_month; day += 7)
-		      impl->days[days_index++] = (short)(doy_offset + day);
-
-		} else if (pos > 0) {
-		    /* Add the nth instance of the weekday within the month. */
-		    month_day = first_matching_day + (pos - 1) * 7;
-
-		    if (month_day <= days_in_month)
-		        impl->days[days_index++] = (short)(doy_offset + month_day);
-
-		} else {
-		    /* Add the -nth instance of the weekday within the month.*/
-		    month_day = last_matching_day + (pos + 1) * 7;
-
-		    if (month_day > 0)
-		        impl->days[days_index++] = (short)(doy_offset + month_day);
-		}
-	    }
-        }
-        break;
-    }
-
-    case (1<<BY_DAY) + (1<<BY_MONTH_DAY) : {
-        /*FREQ=YEARLY; BYDAY=TH,20MO,-10FR; BYMONTHDAY=1,15*/
-
-        pvl_elem itr;
-        pvl_list days = expand_by_day(impl,year);
-
-        for(itr=pvl_head(days);itr!=0;itr=pvl_next(itr)){
-            short day = (short)(intptr_t)pvl_data(itr);
-            struct icaltimetype tt; 
-            
-            tt = icaltime_from_day_of_year(day,year);
-            
-            for(j = 0; BYMDPTR[j]!=ICAL_RECURRENCE_ARRAY_MAX; j++){
-                    int mday = BYMDPTR[j];
-                    
-                    if(tt.day == mday){
-                        impl->days[days_index++] = day;
-                    }
-            }
-            
-        }
-
-        pvl_free(days);
-       
-        break;
-    }
-
-    case (1<<BY_DAY) + (1<<BY_MONTH_DAY) + (1<<BY_MONTH): {
-        /*FREQ=YEARLY; BYDAY=TH,20MO,-10FR; BYMONTHDAY=10; MYMONTH=6,11*/
-
-        pvl_elem itr;
-        pvl_list days = expand_by_day(impl,year);
-
-        for(itr=pvl_head(days);itr!=0;itr=pvl_next(itr)){
-            short day = (short)(intptr_t)pvl_data(itr);
-            struct icaltimetype tt; 
-            int i;
-            
-            tt = icaltime_from_day_of_year(day,year);
-            
-            for(i = 0; BYMONPTR[i] != ICAL_RECURRENCE_ARRAY_MAX; i++){
-                for(j = 0; BYMDPTR[j]!=ICAL_RECURRENCE_ARRAY_MAX; j++){
-                    int mday = BYMDPTR[j];
-                    int month = BYMONPTR[i];
-                    
-                    if(tt.month == month  && tt.day == mday){
-                        impl->days[days_index++] = day;
-                    }
-                }
-            }
-
-        }
-
-        pvl_free(days);
-
-       break;
-
-    }
-
-    case (1<<BY_DAY) + (1<<BY_WEEK_NO) : {
-        /*FREQ=YEARLY; BYDAY=TH,20MO,-10FR;  WEEKNO=20,50*/
-       
-        pvl_elem itr;
-        pvl_list days = expand_by_day(impl,year);
-
-        for(itr=pvl_head(days);itr!=0;itr=pvl_next(itr)){
-            short day = (short)(intptr_t)pvl_data(itr);
-            struct icaltimetype tt; 
-            int i;
-            
-            tt = icaltime_from_day_of_year(day,year);
-            
-            for(i = 0; BYWEEKPTR[i] != ICAL_RECURRENCE_ARRAY_MAX; i++){
-                    int weekno = BYWEEKPTR[i];
-                    int this_weekno = icaltime_week_number(tt);
-                    if(weekno== this_weekno){
-                        impl->days[days_index++] = day;
-                    }
-            }
-                    
-        }
-
-        pvl_free(days);
-        break;
-    }
-
-    case (1<<BY_DAY) + (1<<BY_WEEK_NO) + (1<<BY_MONTH_DAY): {
-        /*FREQ=YEARLY; BYDAY=TH,20MO,-10FR;  WEEKNO=20,50; BYMONTHDAY=1,15*/
-        icalerror_set_errno(ICAL_UNIMPLEMENTED_ERROR);
-        break;
-    }
-
-    case 1<<BY_YEAR_DAY: {
-	for(j=0;impl->by_ptrs[BY_YEAR_DAY][j]!=ICAL_RECURRENCE_ARRAY_MAX;j++){
-	    impl->days[days_index++] = impl->by_ptrs[BY_YEAR_DAY][j];
-        }
-        break;
-    }
-
-    default: {
-        icalerror_set_errno(ICAL_UNIMPLEMENTED_ERROR);
-        break;
-    }
-
-    }
-
-    return 0;
-}                                  
-
-
-static int next_year(icalrecur_iterator* impl)
-{
-    struct icaltimetype next;
-
-    if (next_hour(impl) == 0){
-	return 0;
-    }
-
-    if (impl->days[++impl->days_index] == ICAL_RECURRENCE_ARRAY_MAX){
-	impl->days_index = 0;
-
-	for (;;) {
-	increment_year(impl,impl->rule.interval);
-        expand_year_days(impl,impl->last.year);
-	  if (impl->days[0] != ICAL_RECURRENCE_ARRAY_MAX)
-	    break;
-    }
-    }
-
-    next = icaltime_from_day_of_year(impl->days[impl->days_index], impl->last.year);
-    
-    impl->last.day =  next.day;
-    impl->last.month =  next.month;
-  
-    return 1;
-}
-
-int icalrecur_check_rulepart(icalrecur_iterator* impl,
-		      int v, enum byrule byrule)
-{
-    int itr;
-
-    if(impl->by_ptrs[byrule][0]!=ICAL_RECURRENCE_ARRAY_MAX){
-	for(itr=0; impl->by_ptrs[byrule][itr]!=ICAL_RECURRENCE_ARRAY_MAX;itr++){
-	    if(impl->by_ptrs[byrule][itr] == v){
-		return 1;
-	    }
-	}
-    } 
-
-    return 0;
-}
-
-static int check_contract_restriction(icalrecur_iterator* impl,
-		      enum byrule byrule, int v)
-{
-    int pass = 0;
-    int itr;
-    icalrecurrencetype_frequency freq = impl->rule.freq;
-
-    if(impl->by_ptrs[byrule][0]!=ICAL_RECURRENCE_ARRAY_MAX &&
-	expand_map[freq].map[byrule] == CONTRACT){
-	for(itr=0; impl->by_ptrs[byrule][itr]!=ICAL_RECURRENCE_ARRAY_MAX;itr++){
-	    if(impl->by_ptrs[byrule][itr] == v){
-		pass=1;
-		break;
-	    }
-	}
-
-	return pass;
-    } else {
-	/* This is not a contracting byrule, or it has no data, so the
-           test passes*/
-	return 1;
-    }
-}
-
-
-static int check_contracting_rules(icalrecur_iterator* impl)
-{
-
-    int day_of_week = icaltime_day_of_week(impl->last);
-    int week_no = icaltime_week_number(impl->last);
-    int year_day = icaltime_day_of_year(impl->last);
-
-    if (
-	check_contract_restriction(impl,BY_SECOND, impl->last.second) &&
-	check_contract_restriction(impl,BY_MINUTE, impl->last.minute) &&
-	check_contract_restriction(impl,BY_HOUR, impl->last.hour) &&
-	check_contract_restriction(impl,BY_DAY, day_of_week) &&
-	check_contract_restriction(impl,BY_WEEK_NO, week_no) &&
-	check_contract_restriction(impl,BY_MONTH_DAY, impl->last.day) &&
-	check_contract_restriction(impl,BY_MONTH, impl->last.month) &&
-	check_contract_restriction(impl,BY_YEAR_DAY, year_day) )
-    {
-
-	return 1;
-    } else {
-	return 0;
-    }
-}
-
-struct icaltimetype icalrecur_iterator_next(icalrecur_iterator *impl)
-{
-    int valid = 1;
-    
-    if( (impl->rule.count!=0 &&impl->occurrence_no >= impl->rule.count) ||
-       (!icaltime_is_null_time(impl->rule.until) && 
-	icaltime_compare(impl->last,impl->rule.until) > 0)) {
-	return icaltime_null_time();
-    }
-
-    if(impl->occurrence_no == 0 
-       &&  icaltime_compare(impl->last,impl->dtstart) >= 0){
-
-	impl->occurrence_no++;
-	return impl->last;
-    }
-
-    do {
-        valid = 1;
-	switch(impl->rule.freq){
-	    
-	    case ICAL_SECONDLY_RECURRENCE: {
-		next_second(impl);
-		break;
-	    }
-	    case ICAL_MINUTELY_RECURRENCE: {
-		next_minute(impl);
-		break;
-	    }
-	    case ICAL_HOURLY_RECURRENCE: {
-		next_hour(impl);
-		break;
-	    }
-	    case ICAL_DAILY_RECURRENCE: {
-		next_day(impl);
-		break;
-	    }
-	    case ICAL_WEEKLY_RECURRENCE: {
-		next_week(impl);
-		break;
-	    }
-	    case ICAL_MONTHLY_RECURRENCE: {
-		valid = next_month(impl);
-		break;
-	    }
-	    case ICAL_YEARLY_RECURRENCE:{
-		next_year(impl);
-		break;
-	    }
-	    default:{
-		icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-                return icaltime_null_time();
-	    }
-	}    
-	
-	if(impl->last.year >= 2038 ){
-	    /* HACK */
-	    return icaltime_null_time();
-	}
-	
-    } while(!check_contracting_rules(impl) 
-	    || icaltime_compare(impl->last,impl->dtstart) < 0
-            || valid == 0);
-    
-    
-/* Ignore null times and times that are after the until time */
-    if( !icaltime_is_null_time(impl->rule.until) && 
-	icaltime_compare(impl->last,impl->rule.until) > 0 ) {
-	return icaltime_null_time();
-    }
-
-    impl->occurrence_no++;
-
-    return impl->last;
-}
-
-
-/************************** Type Routines **********************/
-
-
-void icalrecurrencetype_clear(struct icalrecurrencetype *recur)
-{
-    memset(recur,ICAL_RECURRENCE_ARRAY_MAX_BYTE,
-	   sizeof(struct icalrecurrencetype));
-
-    recur->week_start = ICAL_MONDAY_WEEKDAY;
-    recur->freq = ICAL_NO_RECURRENCE;
-    recur->interval = 1;
-    memset(&(recur->until),0,sizeof(struct icaltimetype));
-    recur->count = 0;
-}
-
-/** The 'day' element of icalrecurrencetype_weekday is encoded to
- * allow representation of both the day of the week ( Monday, Tueday),
- * but also the Nth day of the week ( First tuesday of the month, last
- * thursday of the year) These routines decode the day values.
- *
- * The day's position in the period ( Nth-ness) and the numerical
- * value of the day are encoded together as: pos*7 + dow
- * 
- * A position of 0 means 'any' or 'every'
- */
-
-enum icalrecurrencetype_weekday icalrecurrencetype_day_day_of_week(short day)
-{
-    return abs(day)%8;
-}
-
-int icalrecurrencetype_day_position(short day)
-{
-    int wd, pos;
-
-    wd = icalrecurrencetype_day_day_of_week(day);
-
-    pos = (abs(day)-wd)/8 * ((day<0)?-1:1);
-
-
-    return pos;
-}
-
-
-/****************** Enumeration Routines ******************/
-
-static struct {icalrecurrencetype_weekday wd; const char * str; } 
-wd_map[] = {
-    {ICAL_SUNDAY_WEEKDAY,"SU"},
-    {ICAL_MONDAY_WEEKDAY,"MO"},
-    {ICAL_TUESDAY_WEEKDAY,"TU"},
-    {ICAL_WEDNESDAY_WEEKDAY,"WE"},
-    {ICAL_THURSDAY_WEEKDAY,"TH"},
-    {ICAL_FRIDAY_WEEKDAY,"FR"},
-    {ICAL_SATURDAY_WEEKDAY,"SA"},
-    {ICAL_NO_WEEKDAY,0}
-};
-
-const char* icalrecur_weekday_to_string(icalrecurrencetype_weekday kind)
-{
-    int i;
-
-    for (i=0; wd_map[i].wd  != ICAL_NO_WEEKDAY; i++) {
-	if ( wd_map[i].wd ==  kind) {
-	    return wd_map[i].str;
-	}
-    }
-
-    return 0;
-}
-
-icalrecurrencetype_weekday icalrecur_string_to_weekday(const char* str)
-{
-    int i;
-
-    for (i=0; wd_map[i].wd  != ICAL_NO_WEEKDAY; i++) {
-	if ( strcasecmp(str,wd_map[i].str) == 0){
-	    return wd_map[i].wd;
-	}
-    }
-
-    return ICAL_NO_WEEKDAY;
-}
-
-
-
-static struct {
-	icalrecurrencetype_frequency kind;
-	const char* str;
-} freq_map[] = {
-    {ICAL_SECONDLY_RECURRENCE,"SECONDLY"},
-    {ICAL_MINUTELY_RECURRENCE,"MINUTELY"},
-    {ICAL_HOURLY_RECURRENCE,"HOURLY"},
-    {ICAL_DAILY_RECURRENCE,"DAILY"},
-    {ICAL_WEEKLY_RECURRENCE,"WEEKLY"},
-    {ICAL_MONTHLY_RECURRENCE,"MONTHLY"},
-    {ICAL_YEARLY_RECURRENCE,"YEARLY"},
-    {ICAL_NO_RECURRENCE,0}
-};
-
-const char* icalrecur_freq_to_string(icalrecurrencetype_frequency kind)
-{
-    int i;
-
-    for (i=0; freq_map[i].kind != ICAL_NO_RECURRENCE ; i++) {
-	if ( freq_map[i].kind == kind ) {
-	    return freq_map[i].str;
-	}
-    }
-    return 0;
-}
-
-icalrecurrencetype_frequency icalrecur_string_to_freq(const char* str)
-{
-    int i;
-
-    for (i=0; freq_map[i].kind != ICAL_NO_RECURRENCE ; i++) {
-	if ( strcasecmp(str,freq_map[i].str) == 0){
-	    return freq_map[i].kind;
-	}
-    }
-    return ICAL_NO_RECURRENCE;
-}
-
-/** Fill an array with the 'count' number of occurrences generated by
- * the rrule. Note that the times are returned in UTC, but the times
- * are calculated in local time. YOu will have to convert the results
- * back into local time before using them.
- */
-
-int icalrecur_expand_recurrence(char* rule, time_t start,
-				int count, time_t* array)
-{
-    struct icalrecurrencetype recur;
-    icalrecur_iterator* ritr;
-    time_t tt;
-    struct icaltimetype icstart, next;
-    int i = 0;
-
-    memset(array, 0, count*sizeof(time_t));
-
-    icstart = icaltime_from_timet_with_zone(start,0,0);
-
-    recur = icalrecurrencetype_from_string(rule);
-
-    for(ritr = icalrecur_iterator_new(recur,icstart),
-	next = icalrecur_iterator_next(ritr);
-	!icaltime_is_null_time(next) && i < count;
-	next = icalrecur_iterator_next(ritr)){
-
-	tt = icaltime_as_timet(next);
-	
-	if (tt >= start ){
-	    array[i++] = tt;
-	}
-
-    }
-
-    icalrecur_iterator_free(ritr);
-
-    return 1;
-}
diff --git a/libkcal/libical/src/libical/icalrecur.h b/libkcal/libical/src/libical/icalrecur.h
deleted file mode 100644
index da186f86..00000000
--- a/libkcal/libical/src/libical/icalrecur.h
+++ /dev/null
@@ -1,215 +0,0 @@
-/* -*- Mode: C -*- */
-/*======================================================================
- FILE: icalrecur.h
- CREATOR: eric 20 March 2000
-
-
- (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
-     http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-*/
-
-/**
-@file icalrecur.h
-@brief Routines for dealing with recurring time
-
-How to use: 
-
-1) Get a rule and a start time from a component
-
-@code
-        icalproperty rrule;
-        struct icalrecurrencetype recur;
-        struct icaltimetype dtstart;
-
-	rrule = icalcomponent_get_first_property(comp,ICAL_RRULE_PROPERTY);
-	recur = icalproperty_get_rrule(rrule);
-	start = icalproperty_get_dtstart(dtstart);
-@endcode
-
-Or, just make them up: 
-
-@code
-        recur = icalrecurrencetype_from_string("FREQ=YEARLY;BYDAY=SU,WE");
-        dtstart = icaltime_from_string("19970101T123000")
-@endcode
-
-2) Create an iterator
-
-@code
-        icalrecur_iterator* ritr;
-        ritr = icalrecur_iterator_new(recur,start);
-@endcode
-
-3) Iterator over the occurrences
-
-@code
-        struct icaltimetype next;
-        while (next = icalrecur_iterator_next(ritr) 
-               && !icaltime_is_null_time(next){
-                Do something with next
-        }
-@endcode
-
-Note that that the time returned by icalrecur_iterator_next is in
-whatever timezone that dtstart is in.
-
-*/
-
-#ifndef ICALRECUR_H
-#define ICALRECUR_H
-
-#include <time.h>
-#include "icaltime.h"
-
-/*
- * Recurrance enumerations
- */
-
-typedef enum icalrecurrencetype_frequency
-{
-    /* These enums are used to index an array, so don't change the
-       order or the integers */
-
-    ICAL_SECONDLY_RECURRENCE=0,
-    ICAL_MINUTELY_RECURRENCE=1,
-    ICAL_HOURLY_RECURRENCE=2,
-    ICAL_DAILY_RECURRENCE=3,
-    ICAL_WEEKLY_RECURRENCE=4,
-    ICAL_MONTHLY_RECURRENCE=5,
-    ICAL_YEARLY_RECURRENCE=6,
-    ICAL_NO_RECURRENCE=7
-
-} icalrecurrencetype_frequency;
-
-typedef enum icalrecurrencetype_weekday
-{
-    ICAL_NO_WEEKDAY,
-    ICAL_SUNDAY_WEEKDAY,
-    ICAL_MONDAY_WEEKDAY,
-    ICAL_TUESDAY_WEEKDAY,
-    ICAL_WEDNESDAY_WEEKDAY,
-    ICAL_THURSDAY_WEEKDAY,
-    ICAL_FRIDAY_WEEKDAY,
-    ICAL_SATURDAY_WEEKDAY
-} icalrecurrencetype_weekday;
-
-enum {
-    ICAL_RECURRENCE_ARRAY_MAX = 0x7f7f,
-    ICAL_RECURRENCE_ARRAY_MAX_BYTE = 0x7f
-};
-
-
-
-/**
- * Recurrence type routines
- */
-
-/* See RFC 2445 Section 4.3.10, RECUR Value, for an explaination of
-   the values and fields in struct icalrecurrencetype */
-
-#define ICAL_BY_SECOND_SIZE 61
-#define ICAL_BY_MINUTE_SIZE 61
-#define ICAL_BY_HOUR_SIZE 25
-#define ICAL_BY_DAY_SIZE 364 /* 7 days * 52 weeks */
-#define ICAL_BY_MONTHDAY_SIZE 32
-#define ICAL_BY_YEARDAY_SIZE 367
-#define ICAL_BY_WEEKNO_SIZE 54
-#define ICAL_BY_MONTH_SIZE 13
-#define ICAL_BY_SETPOS_SIZE 367
-
-/** Main struct for holding digested recurrence rules */
-struct icalrecurrencetype 
-{
-	icalrecurrencetype_frequency freq;
-
-
-	/* until and count are mutually exclusive. */
-       	struct icaltimetype until; 
-	int count;
-
-	short interval;
-	
-	icalrecurrencetype_weekday week_start;
-	
-	/* The BY* parameters can each take a list of values. Here I
-	 * assume that the list of values will not be larger than the
-	 * range of the value -- that is, the client will not name a
-	 * value more than once. 
-	 
-	 * Each of the lists is terminated with the value
-	 * ICAL_RECURRENCE_ARRAY_MAX unless the the list is full.
-	 */
-
-	short by_second[ICAL_BY_SECOND_SIZE];
-	short by_minute[ICAL_BY_MINUTE_SIZE];
-	short by_hour[ICAL_BY_HOUR_SIZE];
-	short by_day[ICAL_BY_DAY_SIZE]; /* Encoded value, see below */
-	short by_month_day[ICAL_BY_MONTHDAY_SIZE];
-	short by_year_day[ ICAL_BY_YEARDAY_SIZE];
-	short by_week_no[ICAL_BY_WEEKNO_SIZE];
-	short by_month[ICAL_BY_MONTH_SIZE];
-	short by_set_pos[ICAL_BY_SETPOS_SIZE];
-};
-
-
-void icalrecurrencetype_clear(struct icalrecurrencetype *r);
-
-/**
- * Array Encoding
- *
- * The 'day' element of the by_day array is encoded to allow
- * representation of both the day of the week ( Monday, Tueday), but also
- * the Nth day of the week ( First tuesday of the month, last thursday of
- * the year) These routines decode the day values 
- */
-
-/** 1 == Monday, etc. */
-enum icalrecurrencetype_weekday icalrecurrencetype_day_day_of_week(short day);
-
-/** 0 == any of day of week. 1 == first, 2 = second, -2 == second to last, etc */
-int icalrecurrencetype_day_position(short day);
-
-
-/** Recurrance rule parser */
-
-/** Convert between strings and recurrencetype structures. */
-struct icalrecurrencetype icalrecurrencetype_from_string(const char* str);
-char* icalrecurrencetype_as_string(struct icalrecurrencetype *recur);
-
-
-/** Recurrence iteration routines */
-
-typedef struct icalrecur_iterator_impl  icalrecur_iterator;
-
-/** Create a new recurrence rule iterator */
-icalrecur_iterator* icalrecur_iterator_new(struct icalrecurrencetype rule, 
-                                           struct icaltimetype dtstart);
-
-/** Get the next occurrence from an iterator */
-struct icaltimetype icalrecur_iterator_next(icalrecur_iterator*);
-
-void icalrecur_iterator_decrement_count(icalrecur_iterator*);
-
-/** Free the iterator */
-void icalrecur_iterator_free(icalrecur_iterator*);
-
-/**
- * Fills array up with at most 'count' time_t values, each
- *  representing an occurrence time in seconds past the POSIX epoch 
- */
-int icalrecur_expand_recurrence(char* rule, time_t start, 
-				int count, time_t* array);
-
-
-#endif
diff --git a/libkcal/libical/src/libical/icalrestriction.c.in b/libkcal/libical/src/libical/icalrestriction.c.in
deleted file mode 100644
index b75e562c..00000000
--- a/libkcal/libical/src/libical/icalrestriction.c.in
+++ /dev/null
@@ -1,503 +0,0 @@
-/*  -*- Mode: C -*- */
-/*  ======================================================================
-  File: icalrestriction.c
-    
- (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
- ======================================================================*/
-/*#line 7 "icalrestriction.c.in"*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "icalrestriction.h"
-#include "icalenums.h"
-#include "icalerror.h"
-
-#include <assert.h>
-#include <stdio.h> /* For snprintf */   
-
-#define TMP_BUF_SIZE 1024
-
-#ifdef WIN32
-#define snprintf	_snprintf
-#define strcasecmp	stricmp
-#endif
-
-
-/* Define the structs for the restrictions. these data are filled out
-in machine generated code below */
-
-struct icalrestriction_property_record;
-
-typedef const char* (*restriction_func)(struct icalrestriction_property_record* rec,icalcomponent* comp,icalproperty* prop);
-
-
-typedef struct icalrestriction_property_record {
-	icalproperty_method method;
-	icalcomponent_kind component;
-	icalproperty_kind property;
-	icalrestriction_kind restriction;
-	restriction_func function;
-} icalrestriction_property_record;
-
-
-typedef struct icalrestriction_component_record {
-	icalproperty_method method;
-	icalcomponent_kind component;
-	icalcomponent_kind subcomponent;
-	icalrestriction_kind restriction;
-	restriction_func function;
-} icalrestriction_component_record;
-
-icalrestriction_property_record*
-icalrestriction_get_property_restriction(icalproperty_method method,
-					 icalcomponent_kind component,
-					 icalproperty_kind property);
-icalrestriction_component_record*
-icalrestriction_get_component_restriction(icalproperty_method method,
-					  icalcomponent_kind component,
-					  icalcomponent_kind subcomponent);
-
-icalrestriction_component_record icalrestriction_component_records[];
-icalrestriction_property_record icalrestriction_property_records[]; 
-
-icalrestriction_property_record null_prop_record =   {ICAL_METHOD_NONE,ICAL_NO_COMPONENT,ICAL_NO_PROPERTY,ICAL_RESTRICTION_UNKNOWN,0};
-icalrestriction_component_record null_comp_record =   {ICAL_METHOD_NONE,ICAL_NO_COMPONENT,ICAL_NO_COMPONENT,ICAL_RESTRICTION_UNKNOWN,0};
-
-
-/** Each row gives the result of comparing a restriction against a count.
-   The columns in each row represent 0,1,2+. '-1' indicates
-   'invalid, 'don't care' or 'needs more analysis' So, for
-   ICAL_RESTRICTION_ONE, if there is 1 of a property with that
-   restriction, it passes, but if there are 0 or 2+, it fails. */
-
-char compare_map[ICAL_RESTRICTION_UNKNOWN+1][3] = {
-    { 1, 1, 1},/*ICAL_RESTRICTION_NONE*/
-    { 1, 0, 0},/*ICAL_RESTRICTION_ZERO*/
-    { 0, 1, 0},/*ICAL_RESTRICTION_ONE*/
-    { 1, 1, 1},/*ICAL_RESTRICTION_ZEROPLUS*/
-    { 0, 1, 1},/*ICAL_RESTRICTION_ONEPLUS*/
-    { 1, 1, 0},/*ICAL_RESTRICTION_ZEROORONE*/
-    { 1, 1, 0},/*ICAL_RESTRICTION_ONEEXCLUSIVE*/
-    { 1, 1, 0},/*ICAL_RESTRICTION_ONEMUTUAL*/
-    { 1, 1, 1} /*ICAL_RESTRICTION_UNKNOWN*/
-};
-
-char restr_string_map[ICAL_RESTRICTION_UNKNOWN+1][60] = {
-    "unknown number",/*ICAL_RESTRICTION_NONE*/
-    "0",/*ICAL_RESTRICTION_ZERO*/
-    "1",/*ICAL_RESTRICTION_ONE*/
-    "zero or more",/*ICAL_RESTRICTION_ZEROPLUS*/
-    "one or more" ,/*ICAL_RESTRICTION_ONEPLUS*/
-    "zero or one",/*ICAL_RESTRICTION_ZEROORONE*/
-    "zero or one, exclusive with another property",/*ICAL_RESTRICTION_ONEEXCLUSIVE*/
-    "zero or one, mutual with another property",/*ICAL_RESTRICTION_ONEMUTUAL*/
-    "unknown number" /*ICAL_RESTRICTION_UNKNOWN*/
-};
-
-
-int
-icalrestriction_compare(icalrestriction_kind restr, int count){
-
-    /* restr is an unsigned int, ICAL_RESTRICTION_NONE == 0, so the check will always return false */
-    if ( /*restr < ICAL_RESTRICTION_NONE ||*/ restr > ICAL_RESTRICTION_UNKNOWN
-	 || count < 0){
-	return -1;
-    }
-
-    if (count > 2) {
-	count = 2;
-    }
-
-    return compare_map[restr][count];
-
-}
-
-/* Special case routines */
-
-const char* icalrestriction_may_be_draft_final_canceled(
-    icalrestriction_property_record *rec,
-    icalcomponent* comp,
-    icalproperty* prop)
-{
-    icalproperty_status stat = icalproperty_get_status(prop);
-
-    (void)rec;
-    (void)comp;
-
-    if( !( stat == ICAL_STATUS_DRAFT ||
-	   stat == ICAL_STATUS_FINAL ||
-	   stat == ICAL_STATUS_CANCELLED )){
-
-	return "Failed iTIP restrictions for STATUS property. Value must be one of DRAFT, FINAL, or CANCELED";
-
-    }
-
-    return 0;    
-}
-
-const char* icalrestriction_may_be_comp_need_process(
-    icalrestriction_property_record *rec,
-    icalcomponent* comp,
-    icalproperty* prop)
-{
-    icalproperty_status stat = icalproperty_get_status(prop);
-
-    (void)rec;
-    (void)comp;
-
-    if( !( stat == ICAL_STATUS_COMPLETED ||
-	   stat == ICAL_STATUS_NEEDSACTION ||
-	   stat == ICAL_STATUS_INPROCESS )){
-
-	return "Failed iTIP restrictions for STATUS property. Value must be one of COMPLETED, NEEDS-ACTION or IN-PROCESS";
-
-    }
-
-    return 0;    
-}
-const char* icalrestriction_may_be_tent_conf(icalrestriction_property_record *rec,
-				       icalcomponent* comp,
-				       icalproperty* prop)
-{
-    icalproperty_status stat = icalproperty_get_status(prop);
-
-    (void)rec;
-    (void)comp;
-
-    if( !( stat == ICAL_STATUS_TENTATIVE ||
-	   stat == ICAL_STATUS_CONFIRMED )){
-
-	return "Failed iTIP restrictions for STATUS property. Value must be one of TENTATIVE or CONFIRMED";
-
-    }
-
-    return 0;    
-}
-const char* icalrestriction_may_be_tent_conf_cancel(
-    icalrestriction_property_record *rec,
-    icalcomponent* comp,
-    icalproperty* prop)
-{
-    icalproperty_status stat = icalproperty_get_status(prop);
-
-    (void)rec;
-    (void)comp;
-
-    if( !( stat == ICAL_STATUS_TENTATIVE ||
-	   stat == ICAL_STATUS_CONFIRMED ||
-	   stat == ICAL_STATUS_CANCELLED )){
-
-	return "Failed iTIP restrictions for STATUS property. Value must be one of TENTATIVE, CONFIRMED or CANCELED";
-
-    }
-
-    return 0;    
-}
-
-const char* icalrestriction_must_be_cancel_if_present(
-    icalrestriction_property_record *rec,
-    icalcomponent* comp,
-    icalproperty* prop)
-{
-    /* This routine will not be called if prop == 0 */
-    icalproperty_status stat = icalproperty_get_status(prop);
-
-    (void)rec;
-    (void)comp;
-
-    if( stat != ICAL_STATUS_CANCELLED)
-    {
-	return "Failed iTIP restrictions for STATUS property. Value must be CANCELLED";
-
-    }
- 
-
-    return 0;    
-}
-
-const char* icalrestriction_must_be_canceled_no_attendee(
-    icalrestriction_property_record *rec,
-    icalcomponent* comp,
-    icalproperty* prop)
-{
-    (void)rec;
-    (void)comp;
-    (void)prop;
-
-    /* Hack. see rfc2446, 3.2.5 CANCEL for porperty STATUS. I don't
-       understand the note */
-
-    return 0;    
-}
-const char* icalrestriction_must_be_recurring(icalrestriction_property_record *rec,
-					icalcomponent* comp,
-					icalproperty* prop){
-    /* Hack */
-    (void)rec;
-    (void)comp;
-    (void)prop;
-    return 0;    
-}
-const char* icalrestriction_must_have_duration(icalrestriction_property_record *rec,
-					 icalcomponent* comp,
-					 icalproperty* prop){
-
-    (void)rec;
-    (void)prop;
-
-    if( !icalcomponent_get_first_property(comp,ICAL_DURATION_PROPERTY)){
-
-	return "Failed iTIP restrictions for DURATION property. This component must have a DURATION property";
-
-    }
-
-    return 0;    
-}
-const char* icalrestriction_must_have_repeat(icalrestriction_property_record *rec,
-				       icalcomponent* comp,
-				       icalproperty* prop){
-    (void)rec;
-    (void)prop;
-    if( !icalcomponent_get_first_property(comp,ICAL_REPEAT_PROPERTY)){
-
-	return "Failed iTIP restrictions for REPEAT property. This component must have a REPEAT property";
-
-    }
-
-    return 0;    
-}
-const char* icalrestriction_must_if_tz_ref(icalrestriction_property_record *rec,
-				     icalcomponent* comp,
-				     icalproperty* prop){
-
-    /* Hack */
-    (void)rec;
-    (void)comp;
-    (void)prop;
-    return 0;    
-}
-const char* icalrestriction_no_dtend(icalrestriction_property_record *rec,
-			       icalcomponent* comp,
-			       icalproperty* prop){
-
-    (void)rec;
-    (void)prop;
-    if( !icalcomponent_get_first_property(comp,ICAL_DTEND_PROPERTY)){
-
-	return "Failed iTIP restrictions for DTEND property. The component must not have both DURATION and DTEND";
-
-    }
-
-    return 0;    
-}
-const char* icalrestriction_no_duration(icalrestriction_property_record *rec,
-				icalcomponent* comp,
-				  icalproperty* prop){
-    (void)rec;
-    (void)comp;
-    (void)prop;
-
-    /* _no_dtend takes care of this one */
-    return 0;    
-}
-const char* icalrestriction_must_be_email(
-    icalrestriction_property_record *rec,
-    icalcomponent* comp,
-    icalproperty* prop)
-{
-    icalproperty_status stat = icalproperty_get_action(prop);
-
-    (void)rec;
-    (void)comp;
-
-    if( !( stat == ICAL_ACTION_EMAIL)){
-
-	return "Failed iTIP restrictions for ACTION property. Value must be EMAIL.";
-
-    }
-
-    return 0;    
-}
-
-int icalrestriction_check_component(icalproperty_method method,
-				    icalcomponent* comp)
-{
-    icalproperty_kind kind;
-    icalcomponent_kind comp_kind;
-    icalrestriction_kind restr;
-    icalrestriction_property_record *prop_record;
-    const char* funcr = 0;
-    icalproperty *prop;
-
-    int count;
-    int compare;
-    int valid = 1;
-
-    comp_kind = icalcomponent_isa(comp);
-
-    /* Check all of the properties in this component */
-
-    for(kind = ICAL_ANY_PROPERTY+1; kind != ICAL_NO_PROPERTY; kind++){
-	count = icalcomponent_count_properties(comp, kind);
-	
-	prop_record = icalrestriction_get_property_restriction(method, 
-							 comp_kind,
-							 kind);
-
-	restr = prop_record->restriction;
-
-	if(restr == ICAL_RESTRICTION_ONEEXCLUSIVE ||
-	    restr == ICAL_RESTRICTION_ONEMUTUAL) {
-
-	    /* First treat is as a 0/1 restriction */
-	    restr = ICAL_RESTRICTION_ZEROORONE;
-	    compare = icalrestriction_compare(restr,count);
-
-	} else {
-
-	    compare = icalrestriction_compare(restr,count);
-	}
-
-	assert(compare != -1);
-
-	if (compare == 0){
-	    char temp[TMP_BUF_SIZE];
-	    
-	    snprintf(temp, TMP_BUF_SIZE,"Failed iTIP restrictions for %s property. Expected %s instances of the property and got %d",
-		    icalenum_property_kind_to_string(kind),
-		    restr_string_map[restr], count);
-	    
-	    icalcomponent_add_property
-		(comp,
-		 icalproperty_vanew_xlicerror(
-		     temp,
-		     icalparameter_new_xlicerrortype(ICAL_XLICERRORTYPE_INVALIDITIP),
-		     0));   
-	} 
-
-
-	prop = icalcomponent_get_first_property(comp, kind);
-
-	if (prop != 0 && prop_record->function !=0  ){
-	    funcr =  prop_record->function(prop_record,comp,prop);
-	}
-
-	if(funcr !=0){
-	    icalcomponent_add_property
-		(comp,
-		 icalproperty_vanew_xlicerror(
-		     funcr,
-		     icalparameter_new_xlicerrortype(
-			 ICAL_XLICERRORTYPE_INVALIDITIP),
-		     0));   
-
-	    compare = 0;
-	}
-
-	valid = valid && compare;
-    }
-
-
-
-    return valid;
-
-
-}
-
-int icalrestriction_check(icalcomponent* outer_comp)
-{
-    icalcomponent_kind comp_kind;
-    icalproperty_method method;
-    icalcomponent* inner_comp;
-    icalproperty *method_prop;
-    int valid;
-    
-    icalerror_check_arg_rz( (outer_comp!=0), "outer comp");
-
-
-    /* Get the Method value from the outer component */
-
-    comp_kind = icalcomponent_isa(outer_comp);
-
-    if (comp_kind != ICAL_VCALENDAR_COMPONENT){
-	icalerror_set_errno(ICAL_BADARG_ERROR);
-	return 0;
-    }
-
-    method_prop = icalcomponent_get_first_property(outer_comp,
-						   ICAL_METHOD_PROPERTY);
-
-    if (method_prop == 0){
-	method = ICAL_METHOD_NONE;
-    } else {
-	method = icalproperty_get_method(method_prop);
-    }
-   
-
-    /* Check the VCALENDAR wrapper */
-    valid = icalrestriction_check_component(ICAL_METHOD_NONE,outer_comp);
-
-
-    /* Now check the inner components */
-
-    for(inner_comp= icalcomponent_get_first_component(outer_comp,
-						      ICAL_ANY_COMPONENT);
-	inner_comp != 0;
-	inner_comp= icalcomponent_get_next_component(outer_comp,
-						     ICAL_ANY_COMPONENT)){
-
-	valid = valid && icalrestriction_check_component(method,inner_comp);
-
-    }
-
-
-    return valid;
-
-}
-
-icalrestriction_property_record*
-icalrestriction_get_property_restriction(icalproperty_method method,
-					 icalcomponent_kind component,
-					 icalproperty_kind property)
-{
-    int i;
-
-    for(i = 0;
-	icalrestriction_property_records[i].restriction != ICAL_RESTRICTION_NONE;
-	i++){
-
-	if (method == icalrestriction_property_records[i].method &&
-	    component == icalrestriction_property_records[i].component &&
-	    property ==  icalrestriction_property_records[i].property ){
-	    return  &icalrestriction_property_records[i];
-	}
-    }
-	
-    return &null_prop_record;
-}
-
-
-icalrestriction_component_record*
-icalrestriction_get_component_restriction(icalproperty_method method,
-					  icalcomponent_kind component,
-					  icalcomponent_kind subcomponent)
-{
-
-    int i;
-
-    for(i = 0;
-	icalrestriction_component_records[i].restriction != ICAL_RESTRICTION_NONE;
-	i++){
-
-	if (method == icalrestriction_component_records[i].method &&
-	    component == icalrestriction_component_records[i].component &&
-	    subcomponent ==  icalrestriction_component_records[i].subcomponent ){
-	    return  &icalrestriction_component_records[i];
-	}
-    }
-	
-    return &null_comp_record;
-}
-
diff --git a/libkcal/libical/src/libical/icalrestriction.h b/libkcal/libical/src/libical/icalrestriction.h
deleted file mode 100644
index b5281215..00000000
--- a/libkcal/libical/src/libical/icalrestriction.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* -*- Mode: C -*- */
-/*======================================================================
-  FILE: icalrestriction.h
-  CREATOR: eric 24 April 1999
-  
-
-
- (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
-     http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-  The original code is icalrestriction.h
-
-  Contributions from:
-     Graham Davison (g.m.davison@computer.org)
-
-
-======================================================================*/
-
-#include "icalproperty.h"
-#include "icalcomponent.h"
-
-#ifndef ICALRESTRICTION_H
-#define ICALRESTRICTION_H
-
-/* These must stay in this order for icalrestriction_compare to work */
-typedef enum icalrestriction_kind {
-    ICAL_RESTRICTION_NONE=0,		/* 0 */
-    ICAL_RESTRICTION_ZERO,		/* 1 */
-    ICAL_RESTRICTION_ONE,		/* 2 */
-    ICAL_RESTRICTION_ZEROPLUS,		/* 3 */
-    ICAL_RESTRICTION_ONEPLUS,		/* 4 */
-    ICAL_RESTRICTION_ZEROORONE,		/* 5 */
-    ICAL_RESTRICTION_ONEEXCLUSIVE,	/* 6 */
-    ICAL_RESTRICTION_ONEMUTUAL,		/* 7 */
-    ICAL_RESTRICTION_UNKNOWN		/* 8 */
-} icalrestriction_kind;
-
-int 
-icalrestriction_compare(icalrestriction_kind restr, int count);
-
-
-int
-icalrestriction_is_parameter_allowed(icalproperty_kind property,
-                                       icalparameter_kind parameter);
-
-int icalrestriction_check(icalcomponent* comp);
-
-
-#endif /* !ICALRESTRICTION_H */
-
-
-
diff --git a/libkcal/libical/src/libical/icaltime.c b/libkcal/libical/src/libical/icaltime.c
deleted file mode 100644
index 514322a3..00000000
--- a/libkcal/libical/src/libical/icaltime.c
+++ /dev/null
@@ -1,1014 +0,0 @@
-/* -*- Mode: C -*-
-  ======================================================================
-  FILE: icaltime.c
-  CREATOR: eric 02 June 2000
-  
-    
- (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
-     http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
- The Original Code is eric. The Initial Developer of the Original
- Code is Eric Busboom
-
-
- ======================================================================*/
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "icaltime.h"
-#include <assert.h>
-#include <string.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <time.h>
-
-#include "astime.h"		/* Julian data handling routines */
-
-#include "icalerror.h"
-#include "icalmemory.h"
-
-#include "icaltimezone.h"
-#include "icalvalue.h"
-
-#ifdef WIN32
-#include <Windows.h>
-
-#define snprintf      _snprintf
-#define strcasecmp    stricmp
-#endif
-
-/*
- *  Function to convert a struct tm time specification
- *  to an ANSI time_t using the specified time zone.
- *  This is different from the standard mktime() function
- *  in that we don't want the automatic adjustments for
- *  local daylight savings time applied to the result.
- *  This function expects well-formed input.
- */
-static time_t make_time(struct tm *tm, int tzm)
-{
-  time_t tim;
-
-  static int days[] = { -1, 30, 58, 89, 119, 150, 180, 211, 242, 272, 303, 333, 364 };
-
-  /* check that year specification within range */
-
-  if (tm->tm_year < 70 || tm->tm_year > 138)
-    return((time_t) -1);
-
-  /* check that month specification within range */
-
-  if (tm->tm_mon < 0 || tm->tm_mon > 11)
-    return((time_t) -1);
-
-  /* check for upper bound of Jan 17, 2038 (to avoid possibility of
-     32-bit arithmetic overflow) */
-  
-  if (tm->tm_year == 138) {
-    if (tm->tm_mon > 0)
-      return((time_t) -1);
-    else if (tm->tm_mday > 17)
-      return((time_t) -1);
-  }
-
-  /*
-   *  calculate elapsed days since start of the epoch (midnight Jan
-   *  1st, 1970 UTC) 17 = number of leap years between 1900 and 1970
-   *  (number of leap days to subtract)
-   */
-
-  tim = (tm->tm_year - 70) * 365 + ((tm->tm_year - 1) / 4) - 17;
-
-  /* add number of days elapsed in the current year */
-
-  tim += days[tm->tm_mon];
-
-  /* check and adjust for leap years (the leap year check only valid
-     during the 32-bit era */
-
-  if ((tm->tm_year & 3) == 0 && tm->tm_mon > 1)
-    tim += 1;
-
-  /* elapsed days to current date */
-
-  tim += tm->tm_mday;
-
-
-  /* calculate elapsed hours since start of the epoch */
-
-  tim = tim * 24 + tm->tm_hour;
-
-  /* calculate elapsed minutes since start of the epoch */
-
-  tim = tim * 60 + tm->tm_min;
-  
-  /* adjust per time zone specification */
-  
-  tim -= tzm;
-  
-  /* calculate elapsed seconds since start of the epoch */
-  
-  tim = tim * 60 + tm->tm_sec;
-  
-  /* return number of seconds since start of the epoch */
-  
-  return(tim);
-}
-
-/**	@brief Constructor (deprecated).
- *
- * Convert seconds past UNIX epoch to a timetype.
- *
- * @deprecated This constructor is deprecated and shouldn't be used in
- *   new software.  Use icaltime_from_timet_with_zone(time_t, int,
- *   icaltimezone *) instead.  In the meantime, calls to this method
- *   return a floating time, which can always be converted to a local
- *   time with an appropriate call to icaltime_convert_to_zone().
- */
-
-struct icaltimetype 
-icaltime_from_timet(const time_t tm, const int is_date)
-{
-#ifndef NO_WARN_DEPRECATED
-	icalerror_warn("icaltime_from_timet() is DEPRECATED, use icaltime_from_timet_with_zone() instead");
-#endif
-
-	return icaltime_from_timet_with_zone(tm, is_date, 0);
-}
-
-
-/**	@brief Constructor.
- *
- *	@param tm The time
- *	@param is_date Boolean: 1 means we should treat tm as a DATE
- *	@param zone The timezone tm is in, NULL means to treat tm as a
- *		floating time
- *
- *	Return a new icaltime instance, initialized to the given time
- *	expressed as seconds past UNIX epoch, optionally using the given
- *	timezone.
- *
- *	If the caller specifies the is_date param as TRUE, the returned
- *	object is of DATE type, otherwise the input is meant to be of
- *	DATE-TIME type.
- *	If the zone is not specified (NULL zone param) the time is taken
- *	to be floating, that is, valid in any timezone. Note that, in
- *	addition to the uses specified in [RFC2445], this can be used
- *	when doing simple math on couples of times.
- *	If the zone is specified (UTC or otherwise), it's stored in the
- *	object and it's used as the native timezone for this object.
- *	This means that the caller can convert this time to a different
- *	target timezone with no need to store the source timezone.
- *
- */
-struct icaltimetype 
-icaltime_from_timet_with_zone(const time_t tm, const int is_date,
-	icaltimezone *zone)
-{
-    struct icaltimetype tt = icaltime_null_time();
-    struct tm t;
-    icaltimezone *utc_zone;
-
-    /* Convert the time_t to a struct tm. We can trust gmtime for this. */
-#ifdef HAVE_GMTIME_R
-    gmtime_r(&tm, &t);
-#else
-    {
-	struct tm *t_ptr = gmtime(&tm);
-	t = *t_ptr;
-    }
-#endif
-
-    tt.year   = t.tm_year + 1900;
-    tt.month  = t.tm_mon + 1;
-    tt.day    = t.tm_mday;
-
-    if (is_date) { 
-    	tt.is_date = 1;
-	return tt;
-    }
-
-    tt.hour   = t.tm_hour;
-    tt.minute = t.tm_min;
-    tt.second = t.tm_sec;
-
-    /* If it's a floating time, we don't do any conversion. */
-    if (zone == NULL) {
-	return tt;
-    }
-
-    utc_zone = icaltimezone_get_utc_timezone ();
-    tt.is_utc = (zone == utc_zone) ? 1 : 0;
-    tt.zone = zone;
-
-    return tt;
-}
-
-/**	@brief Convenience constructor.
- * 
- * Returns the current time in the given timezone, as an icaltimetype.
- */
-struct icaltimetype icaltime_current_time_with_zone(icaltimezone *zone)
-{
-    return icaltime_from_timet_with_zone (time (NULL), 0, zone);
-}
-
-/**	@brief Convenience constructor.
- * 
- * Returns the current day as an icaltimetype, with is_date set.
- */
-struct icaltimetype icaltime_today(void)
-{
-    return icaltime_from_timet_with_zone (time (NULL), 1, NULL);
-}
-
-/**	@brief	Return the time as seconds past the UNIX epoch
- */
-time_t icaltime_as_timet(const struct icaltimetype tt)
-{
-    struct tm stm;
-    time_t t;
-
-    /* If the time is the special null time, return 0. */
-    if (icaltime_is_null_time(tt)) {
-	return 0;
-    }
-
-    /* Copy the icaltimetype to a struct tm. */
-    memset (&stm, 0, sizeof (struct tm));
-
-    stm.tm_sec = tt.second;
-    stm.tm_min = tt.minute;
-    stm.tm_hour = tt.hour;
-    stm.tm_mday = tt.day;
-    stm.tm_mon = tt.month-1;
-    stm.tm_year = tt.year-1900;
-    stm.tm_isdst = -1;
-
-    t = make_time(&stm, 0);
-
-    return t;
-
-}
-
-/**	@brief	Return the time as seconds past the UNIX epoch, using the
- *	given timezone.
- *
- *	This convenience method combines a call to icaltime_convert() with
- *	a call to icaltime_as_timet().
- *	If the input timezone is null, no conversion is done; that is, the
- *	time is simply returned as time_t in its native timezone.
- */
-time_t icaltime_as_timet_with_zone(const struct icaltimetype _tt,
-	icaltimezone *zone)
-{
-    struct icaltimetype tt = _tt;
-    struct tm stm;
-    time_t t;
-
-    /* If the time is the special null time, return 0. */
-    if (icaltime_is_null_time(tt)) {
-	return 0;
-    }
-
-    if (zone != NULL) {
-	tt = icaltime_convert_to_zone(_tt, zone);
-    }
-
-    /* Copy the icaltimetype to a struct tm. */
-    memset (&stm, 0, sizeof (struct tm));
-
-    stm.tm_sec = tt.second;
-    stm.tm_min = tt.minute;
-    stm.tm_hour = tt.hour;
-    stm.tm_mday = tt.day;
-    stm.tm_mon = tt.month-1;
-    stm.tm_year = tt.year-1900;
-    stm.tm_isdst = -1;
-
-    t = make_time(&stm, 0);
-
-    return t;
-}
-
-/**
- * Return a string represention of the time, in RFC2445 format. The
- * string is owned by libical
- */
-const char* icaltime_as_ical_string(const struct icaltimetype tt)
-{
-    size_t size = 17;
-    char* buf = icalmemory_new_buffer(size);
-
-    if(tt.is_date){
-	snprintf(buf, size,"%04d%02d%02d",tt.year,tt.month,tt.day);
-    } else {
-	const char* fmt;
-	if(tt.is_utc){
-	    fmt = "%04d%02d%02dT%02d%02d%02dZ";
-	} else {
-	    fmt = "%04d%02d%02dT%02d%02d%02d";
-	}
-	snprintf(buf, size,fmt,tt.year,tt.month,tt.day,
-		 tt.hour,tt.minute,tt.second);
-    }
-    
-    icalmemory_add_tmp_buffer(buf);
-
-    return buf;
-
-}
-
-/**
- *	Reset all of the time components to be in their normal ranges. For
- *	instance, given a time with minutes=70, the minutes will be reduces
- *	to 10, and the hour incremented. This allows the caller to do
- *	arithmetic on times without worrying about overflow or
- *	underflow.
- *
- *	Implementation note: we call icaltime_adjust() with no adjustment.
- */
-struct icaltimetype icaltime_normalize(const struct icaltimetype tt)
-{
-	struct icaltimetype ret = tt;
-	icaltime_adjust(&ret, 0, 0, 0, 0);
-	return ret;
-}
-
-
-
-/**	@brief Contructor.
- * 
- * Create a time from an ISO format string.
- *
- * @todo If the given string specifies a DATE-TIME not in UTC, there
- *       is no way to know if this is a floating time or really refers to a
- *       timezone. We should probably add a new constructor:
- *       icaltime_from_string_with_zone()
- */
-struct icaltimetype icaltime_from_string(const char* str)
-{
-    struct icaltimetype tt = icaltime_null_time();
-    int size;
-
-    icalerror_check_arg_re(str!=0,"str",icaltime_null_time());
-
-    size = strlen(str);
-    
-    if(size == 15) { /* floating time */
-	tt.is_utc = 0;
-	tt.is_date = 0;
-    } else if (size == 16) { /* UTC time, ends in 'Z'*/
-	if(str[15] != 'Z')
-	    goto errorlabel;
-
-	tt.is_utc = 1;
-	tt.zone = icaltimezone_get_utc_timezone();
-	tt.is_date = 0;
-    } else if (size == 8) { /* A DATE */
-	tt.is_utc = 1;
-	tt.is_date = 1;
-    } else { /* error */
-	goto errorlabel;
-    }
-
-    if(tt.is_date == 1){
-	if (sscanf(str,"%04d%02d%02d",&tt.year,&tt.month,&tt.day) < 3)
-	    goto errorlabel;
-    } else {
-	char tsep;
-	if (sscanf(str,"%04d%02d%02d%c%02d%02d%02d",&tt.year,&tt.month,&tt.day,
-	       &tsep,&tt.hour,&tt.minute,&tt.second) < 7)
-	    goto errorlabel;
-
-	if(tsep != 'T')
-	    goto errorlabel;
-    }
-
-    return tt;    
-
-errorlabel:
-    icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-    return icaltime_null_time();
-}
-
-
-/* Returns whether the specified year is a leap year. Year is the normal year,
-   e.g. 2001. */
-int
-icaltime_is_leap_year (const int year)
-{
-
-    if (year <= 1752)
-        return (year % 4 == 0);
-    else
-        return ( (year % 4==0) && (year % 100 !=0 )) || (year % 400 == 0);
-}
-
-static int _days_in_month[] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
-
-int icaltime_days_in_month(const int month, const int year)
-{
-
-    int days = _days_in_month[month];
-
-    assert(month > 0);
-    assert(month <= 12);
-
-    if( month == 2){
-	days += icaltime_is_leap_year(year);
-    }
-
-    return days;
-}
-
-/* 1-> Sunday, 7->Saturday */
-int icaltime_day_of_week(const struct icaltimetype t){
-	UTinstant jt;
-
-	memset(&jt,0,sizeof(UTinstant));
-
-	jt.year = t.year;
-    jt.month = t.month;
-    jt.day = t.day;
-    jt.i_hour = 0;
-    jt.i_minute = 0;
-    jt.i_second = 0;
-
-	juldat(&jt);
-
-	return jt.weekday + 1;
-}
-
-/** Day of the year that the first day of the week (Sunday) is on.
- * 
- *  @todo Doesn't take into account different week start days. 
- */
-int icaltime_start_doy_of_week(const struct icaltimetype t){
-	UTinstant jt;
-
-	memset(&jt,0,sizeof(UTinstant));
-
-	jt.year = t.year;
-    jt.month = t.month;
-    jt.day = t.day;
-    jt.i_hour = 0;
-    jt.i_minute = 0;
-    jt.i_second = 0;
-
-	juldat(&jt);
-	caldat(&jt);
-
-	return jt.day_of_year - jt.weekday;
-}
-
-/** 
- * @todo Doesn't take into account the start day of the
- * week. strftime assumes that weeks start on Monday. 
- */
-int icaltime_week_number(const struct icaltimetype ictt)
-{
-	UTinstant jt;
-
-	memset(&jt,0,sizeof(UTinstant));
-
-	jt.year = ictt.year;
-    jt.month = ictt.month;
-    jt.day = ictt.day;
-    jt.i_hour = 0;
-    jt.i_minute = 0;
-    jt.i_second = 0;
-
-	juldat(&jt);
-	caldat(&jt);
-
-	return (jt.day_of_year - jt.weekday) / 7;
-}
-
-/* The first array is for non-leap years, the second for leap years*/
-static const int days_in_year[2][13] = 
-{ /* jan feb mar apr may  jun  jul  aug  sep  oct  nov  dec */
-  {  0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365 }, 
-  {  0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366 }
-};
-
-/**
- *	Returns the day of the year, counting from 1 (Jan 1st).
- */
-int icaltime_day_of_year(const struct icaltimetype t){
-  int is_leap = icaltime_is_leap_year (t.year);
-
-  return days_in_year[is_leap][t.month - 1] + t.day;
-}
-
-/**	@brief Contructor.
- *
- *	Create a new time, given a day of year and a year.
- */
-/* Jan 1 is day #1, not 0 */
-struct icaltimetype icaltime_from_day_of_year(const int _doy, const int _year)
-{
-    struct icaltimetype tt = icaltime_null_date();
-    int is_leap;
-    int month;
-    int doy = _doy;
-    int year = _year;
-
-    is_leap = icaltime_is_leap_year(year);
-
-    /* Zero and neg numbers represent days  of the previous year */
-    if(doy <1){
-        year--;
-        is_leap = icaltime_is_leap_year(year);
-        doy +=  days_in_year[is_leap][12];
-    } else if(doy > days_in_year[is_leap][12]){
-        /* Move on to the next year*/
-        is_leap = icaltime_is_leap_year(year);
-        doy -=  days_in_year[is_leap][12];
-        year++;
-    }
-
-    tt.year = year;
-
-    for (month = 11; month >= 0; month--) {
-      if (doy > days_in_year[is_leap][month]) {
-	tt.month = month + 1;
-	tt.day = doy - days_in_year[is_leap][month];
-	break;
-      }
-    }
-
-    return tt;
-}
-
-/**	@brief Constructor.
- *
- *	Return a null time, which indicates no time has been set.
- *	This time represents the beginning of the epoch.
- */
-struct icaltimetype icaltime_null_time(void)
-{
-    struct icaltimetype t;
-    memset(&t,0,sizeof(struct icaltimetype));
-
-    return t;
-}
-
-/**	@brief Constructor.
- *
- *	Return a null date, which indicates no time has been set.
- */
-struct icaltimetype icaltime_null_date(void)
-{
-    struct icaltimetype t;
-    memset(&t,0,sizeof(struct icaltimetype));
-
-    t.is_date = 1;
-
-    /*
-     * Init to -1 to match what icalyacc.y used to do.
-     * Does anything depend on this?
-     */
-    t.hour = -1;
-    t.minute = -1;
-    t.second = -1;
-
-    return t;
-}
-
-
-/**
- *	Returns false if the time is clearly invalid, but is not null. This
- *	is usually the result of creating a new time type buy not clearing
- *	it, or setting one of the flags to an illegal value.
- */
-int icaltime_is_valid_time(const struct icaltimetype t){
-    if(t.is_utc > 1 || t.is_utc < 0 ||
-       t.year < 0 || t.year > 3000 ||
-       t.is_date > 1 || t.is_date < 0){
-	return 0;
-    } else {
-	return 1;
-    }
-
-}
-
-/**	@brief Returns true if time is a DATE
- */
-int icaltime_is_date(const struct icaltimetype t) {
-
-	return t.is_date;
-}
-
-/**	@brief Returns true if time is relative to UTC zone
- *
- *	@todo  We should only check the zone
- */
-int icaltime_is_utc(const struct icaltimetype t) {
-
-	return t.is_utc;
-}
-
-/**
- *	Return true if the time is null.
- */
-int icaltime_is_null_time(const struct icaltimetype t)
-{
-    if (t.second +t.minute+t.hour+t.day+t.month+t.year == 0){
-	return 1;
-    }
-
-    return 0;
-
-}
-
-/**
- *	Return -1, 0, or 1 to indicate that a<b, a==b, or a>b.
- * 	This calls icaltime_compare function after converting them to the utc
- * 	timezone.
- */
-
-int icaltime_compare(const struct icaltimetype a_in, const struct icaltimetype b_in) 
-{
-    int retval = 0;
-    struct icaltimetype a, b;
-
-    a = icaltime_convert_to_zone(a_in, icaltimezone_get_utc_timezone());
-    b = icaltime_convert_to_zone(b_in, icaltimezone_get_utc_timezone());
-
-    if (a.year > b.year)
-	retval = 1;
-    else if (a.year < b.year)
-	retval = -1;
-
-    else if (a.month > b.month)
-	retval = 1;
-    else if (a.month < b.month)
-	retval = -1;
-
-    else if (a.day > b.day)
-	retval = 1;
-    else if (a.day < b.day)
-	retval = -1;
-
-    /* if both are dates, we are done */
-    if (a.is_date && b.is_date)
-	return retval;
-
-    /* else, if we already found a difference, we are done */
-    else if (retval != 0)
-	return retval;
-
-    /* else, if only one is a date (and we already know the date part is equal),
-       then the other is greater */
-    else if (b.is_date)
-	retval = 1;
-    else if (a.is_date)
-	retval = -1;
-
-    else if (a.hour > b.hour)
-	retval = 1;
-    else if (a.hour < b.hour)
-	retval = -1;
-
-    else if (a.minute > b.minute)
-	retval = 1;
-    else if (a.minute < b.minute)
-	retval = -1;
-
-    else if (a.second > b.second)
-	retval = 1;
-    else if (a.second < b.second)
-	retval = -1;
-
-    return retval;
-}
-
-/**
- *	like icaltime_compare, but only use the date parts.
- */
-
-int
-icaltime_compare_date_only(const struct icaltimetype a_in, const struct icaltimetype b_in)
-{
-    int retval;
-    struct icaltimetype a, b;
-
-    a = icaltime_convert_to_zone(a_in, icaltimezone_get_utc_timezone());
-    b = icaltime_convert_to_zone(b_in, icaltimezone_get_utc_timezone());
-
-    if (a.year > b.year)
-	retval = 1;
-    else if (a.year < b.year)
-	retval = -1;
-
-    else if (a.month > b.month)
-	retval = 1;
-    else if (a.month < b.month)
-	retval = -1;
-
-    else if (a.day > b.day)
-	retval = 1;
-    else if (a.day < b.day)
-	retval = -1;
-
-    else
-	retval = 0;
-
-    return retval;
-}
-
-/* These are defined in icalduration.c:
-struct icaltimetype  icaltime_add(struct icaltimetype t,
-				  struct icaldurationtype  d)
-struct icaldurationtype  icaltime_subtract(struct icaltimetype t1,
-					   struct icaltimetype t2)
-*/
-
-
-
-/**	@brief Internal, shouldn't be part of the public API
- *
- *	Adds (or subtracts) a time from a icaltimetype.
- *	NOTE: This function is exactly the same as icaltimezone_adjust_change()
- *	except for the type of the first parameter.
- */
-void
-icaltime_adjust(struct icaltimetype *tt, const int days, const int hours,
-	const int minutes, const int seconds) {
-
-    int second, minute, hour, day;
-    int minutes_overflow, hours_overflow, days_overflow, years_overflow;
-    int days_in_month;
-
-    /* Add on the seconds. */
-    second = tt->second + seconds;
-    tt->second = second % 60;
-    minutes_overflow = second / 60;
-    if (tt->second < 0) {
-	tt->second += 60;
-	minutes_overflow--;
-    }
-
-    /* Add on the minutes. */
-    minute = tt->minute + minutes + minutes_overflow;
-    tt->minute = minute % 60;
-    hours_overflow = minute / 60;
-    if (tt->minute < 0) {
-	tt->minute += 60;
-	hours_overflow--;
-    }
-
-    /* Add on the hours. */
-    hour = tt->hour + hours + hours_overflow;
-    tt->hour = hour % 24;
-    days_overflow = hour / 24;
-    if (tt->hour < 0) {
-	tt->hour += 24;
-	days_overflow--;
-    }
-
-    /* Normalize the month. We do this before handling the day since we may
-       need to know what month it is to get the number of days in it.
-       Note that months are 1 to 12, so we have to be a bit careful. */
-    if (tt->month >= 13) {
-	years_overflow = (tt->month - 1) / 12;
-	tt->year += years_overflow;
-	tt->month -= years_overflow * 12;
-    } else if (tt->month <= 0) {
-	/* 0 to -11 is -1 year out, -12 to -23 is -2 years. */
-	years_overflow = (tt->month / 12) - 1;
-	tt->year += years_overflow;
-	tt->month -= years_overflow * 12;
-    }
-
-    /* Add on the days. */
-    day = tt->day + days + days_overflow;
-    if (day > 0) {
-	for (;;) {
-	    days_in_month = icaltime_days_in_month (tt->month, tt->year);
-	    if (day <= days_in_month)
-		break;
-
-	    tt->month++;
-	    if (tt->month >= 13) {
-		tt->year++;
-		tt->month = 1;
-	    }
-
-	    day -= days_in_month;
-	}
-    } else {
-	while (day <= 0) {
-	    if (tt->month == 1) {
-		tt->year--;
-		tt->month = 12;
-	    } else {
-		tt->month--;
-	    }
-
-	    day += icaltime_days_in_month (tt->month, tt->year);
-	}
-    }
-    tt->day = day;
-}
-
-/**	@brief Convert time to a given timezone
- *
- *	Convert a time from its native timezone to a given timezone.
- *
- *	If tt is a date, the returned time is an exact
- *	copy of the input. If it's a floating time, the returned object
- *	represents the same time translated to the given timezone.
- *	Otherwise the time will be converted to the new
- *	time zone, and its native timezone set to the right timezone.
- */
-struct icaltimetype icaltime_convert_to_zone(const struct icaltimetype tt,
-	icaltimezone *zone) {
-
-	struct icaltimetype ret = tt;
-
-	/* If it's a date do nothing */
-	if (tt.is_date) {
-		return ret;
-	}
-
-	if (tt.zone == zone) {
-		return ret;
-	}
-
-	/* If it's a floating time we don't want to adjust the time */
-	if (tt.zone != NULL) {
-		icaltimezone_convert_time(&ret, tt.zone, zone);
-	}
-
-	ret.zone = zone;
-	if (zone == icaltimezone_get_utc_timezone()) {
-		ret.is_utc = 1;
-	} else {
-		ret.is_utc = 0;
-	}
-
-	return ret;
-}
-
-icaltimezone *
-icaltime_get_timezone(const struct icaltimetype t) {
-
-	return t.zone;
-}
-
-const char *
-icaltime_get_tzid(const struct icaltimetype t) {
-
-	if (t.zone != NULL) {
-		return icaltimezone_get_tzid(t.zone);
-	} else {
-		return NULL;
-	}
-}
-
-/**	@brief Set the timezone
- *
- *	Force the icaltime to be interpreted relative to another timezone.
- *	If you need to do timezone conversion, applying offset adjustments,
- *	then you should use icaltime_convert_to_timezone instead.
- */
-struct icaltimetype
-icaltime_set_timezone(struct icaltimetype *t, icaltimezone *zone) {
-
-	/* If it's a date do nothing */
-	if (t->is_date) {
-		return *t;
-	}
-
-	if (t->zone == zone) {
-		return *t;
-	}
-
-	t->zone = zone;
-	if (zone == icaltimezone_get_utc_timezone()) {
-		t->is_utc = 1;
-	} else {
-		t->is_utc = 0;
-	}
-
-	return *t;
-}
-
-
-/**
- *  @brief builds an icaltimespan given a start time, end time and busy value.
- *
- *  @param dtstart   The beginning time of the span, can be a date-time
- *                   or just a date.
- *  @param dtend     The end time of the span.
- *  @param is_busy   A boolean value, 0/1.
- *  @return          A span using the supplied values.
- *
- *  returned span contains times specified in UTC.
- */
-
-icaltime_span icaltime_span_new(struct icaltimetype dtstart,
-				       struct icaltimetype dtend,
-				       int    is_busy)
-{
-  icaltime_span span;
-
-  span.is_busy = is_busy;
-
-  span.start   = icaltime_as_timet_with_zone(dtstart,
-					     icaltimezone_get_utc_timezone());
-
-  if (icaltime_is_null_time(dtend)) {
-    if (!icaltime_is_date(dtstart)) {
-      /* If dtstart is a DATE-TIME and there is no DTEND nor DURATION
-	 it takes no time */
-      span.end = span.start;
-      return span;
-    } else {
-      dtend = dtstart;
-    }
-  }
-
-  span.end = icaltime_as_timet_with_zone(dtend, icaltimezone_get_utc_timezone());
-  
-  if (icaltime_is_date(dtstart)) {
-    /* no time specified, go until the end of the day..*/
-    span.end += 60*60*24 - 1;
-  }
-  return span;
-}
-
-
-/** @brief Returns true if the two spans overlap
- *
- *  @param s1         1st span to test
- *  @param s2         2nd span to test
- *  @return           boolean value
- *
- *  The result is calculated by testing if the start time of s1 is contained
- *  by the s2 span, or if the end time of s1 is contained by the s2 span.
- *
- *  Also returns true if the spans are equal.
- *
- *  Note, this will return false if the spans are adjacent.
- */
-
-int icaltime_span_overlaps(icaltime_span *s1, 
-			   icaltime_span *s2)
-{
-  /* s1->start in s2 */
-  if (s1->start > s2->start && s1->start < s2->end)
-    return 1;
-
-  /* s1->end in s2 */
-  if (s1->end > s2->start && s1->end < s2->end)
-    return 1;
-
-  /* s2->start in s1 */
-  if (s2->start > s1->start && s2->start < s1->end)
-    return 1;
-
-  /* s2->end in s1 */
-  if (s2->end > s1->start && s2->end < s1->end)
-    return 1;
-
-  if (s1->start == s2->start && s1->end == s2->end)
-    return 1;
-  
-  return 0;
-}
-
-/** @brief Returns true if the span is totally within the containing
- *  span
- *
- *  @param s          The span to test for.
- *  @param container  The span to test against.
- *  @return           boolean value.
- *
- */
-
-int icaltime_span_contains(icaltime_span *s,
-			   icaltime_span *container)
-{
-
-  if ((s->start >= container->start && s->start < container->end) &&
-      (s->end   <= container->end   && s->end   > container->start))
-    return 1;
-  
-  return 0;
-}
diff --git a/libkcal/libical/src/libical/icaltime.h b/libkcal/libical/src/libical/icaltime.h
deleted file mode 100644
index 5871529f..00000000
--- a/libkcal/libical/src/libical/icaltime.h
+++ /dev/null
@@ -1,271 +0,0 @@
-/* -*- Mode: C -*- */
-/*======================================================================
- FILE: icaltime.h
- CREATOR: eric 02 June 2000
-
-
-
- (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
-     http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
- The Original Code is eric. The Initial Developer of the Original
- Code is Eric Busboom
-
-
-======================================================================*/
-
-/**	@file icaltime.h
- *	@brief struct icaltimetype is a pseudo-object that abstracts time
- *	handling.
- *
- *	It can represent either a DATE or a DATE-TIME (floating, UTC or in a
- *	given timezone), and it keeps track internally of its native timezone.
- *
- *	The typical usage is to call the correct constructor specifying the
- *	desired timezone. If this is not known until a later time, the
- *	correct behavior is to specify a NULL timezone and call
- *	icaltime_convert_to_zone() at a later time.
- *
- *	There are several ways to create a new icaltimetype:
- *
- *	- icaltime_null_time()
- *	- icaltime_null_date()
- *	- icaltime_current_time_with_zone()
- *	- icaltime_today()
- *	- icaltime_from_timet_with_zone(time_t tm, int is_date,
- *		icaltimezone *zone)
- * 	- icaltime_from_string_with_zone(const char* str, icaltimezone *zone)
- *	- icaltime_from_day_of_year(int doy,  int year)
- *	- icaltime_from_week_number(int week_number, int year)
- *
- *	italtimetype objects can be converted to different formats:
- *
- *	- icaltime_as_timet(struct icaltimetype tt)
- *	- icaltime_as_timet_with_zone(struct icaltimetype tt,
- *		icaltimezone *zone)
- *	- icaltime_as_ical_string(struct icaltimetype tt)
- *
- *	Accessor methods include:
- *
- *	- icaltime_get_timezone(struct icaltimetype t)
- *	- icaltime_get_tzid(struct icaltimetype t)
- *	- icaltime_set_timezone(struct icaltimetype t, icaltimezone *zone)
- *	- icaltime_day_of_year(struct icaltimetype t)
- *	- icaltime_day_of_week(struct icaltimetype t)
- *	- icaltime_start_doy_of_week(struct icaltimetype t)
- *	- icaltime_week_number(struct icaltimetype t)
- *
- *	Query methods include:
- *
- *	- icaltime_is_null_time(struct icaltimetype t)
- *	- icaltime_is_valid_time(struct icaltimetype t)
- *	- icaltime_is_date(struct icaltimetype t)
- *	- icaltime_is_utc(struct icaltimetype t)
- *	- icaltime_is_floating(struct icaltimetype t)
- *
- *	Modify, compare and utility methods include:
- *
- *	- icaltime_add(struct icaltimetype t, struct icaldurationtype  d)
- *	- icaltime_subtract(struct icaltimetype t1, struct icaltimetype t2)
- *      - icaltime_compare_with_zone(struct icaltimetype a,struct icaltimetype b)
- *	- icaltime_compare(struct icaltimetype a,struct icaltimetype b)
- *	- icaltime_compare_date_only(struct icaltimetype a,
- *		struct icaltimetype b)
- *	- icaltime_adjust(struct icaltimetype *tt, int days, int hours,
- *		int minutes, int seconds);
- *	- icaltime_normalize(struct icaltimetype t);
- *	- icaltime_convert_to_zone(const struct icaltimetype tt,
- *		icaltimezone *zone);
- */
-
-#ifndef ICALTIME_H
-#define ICALTIME_H
-
-#include <time.h>
-/* An opaque struct representing a timezone. We declare this here to avoid
-   a circular dependancy. */
-#ifndef ICALTIMEZONE_DEFINED
-#define ICALTIMEZONE_DEFINED
-typedef struct _icaltimezone		icaltimezone;
-#endif
-
-/** icaltime_span is returned by icalcomponent_get_span() */
-struct icaltime_span {
-	time_t start;   /**< in UTC */
-	time_t end;     /**< in UTC */
-	int is_busy;    /**< 1->busy time, 0-> free time */
-};
-
-typedef struct icaltime_span icaltime_span;
-
-/*
- *	FIXME
- *
- *	is_utc is redundant, and might be considered a minor optimization.
- *	It might be deprecated, so you should use icaltime_is_utc() instead.
- */
-struct icaltimetype
-{
-	int year;	/**< Actual year, e.g. 2001. */
-	int month;	/**< 1 (Jan) to 12 (Dec). */
-	int day;
-	int hour;
-	int minute;
-	int second;
-
-	int is_utc;     /**< 1-> time is in UTC timezone */
-
-	int is_date;    /**< 1 -> interpret this as date. */
-   
-	int is_daylight; /**< 1 -> time is in daylight savings time. */
-   
-	icaltimezone *zone;	/**< timezone */
-};	
-
-typedef struct icaltimetype icaltimetype;
-
-/** Return a null time, which indicates no time has been set. 
-    This time represent the beginning of the epoch */
-struct icaltimetype icaltime_null_time(void);
-
-/** Return a null date */
-struct icaltimetype icaltime_null_date(void);
-
-/** Returns the current time in the given timezone, as an icaltimetype. */
-struct icaltimetype icaltime_current_time_with_zone(icaltimezone *zone);
-
-/** Returns the current day as an icaltimetype, with is_date set. */
-struct icaltimetype icaltime_today(void);
-
-/** Convert seconds past UNIX epoch to a timetype*/
-struct icaltimetype icaltime_from_timet(const time_t v, const int is_date);
-
-/** Convert seconds past UNIX epoch to a timetype, using timezones. */
-struct icaltimetype icaltime_from_timet_with_zone(const time_t tm,
-	const int is_date, icaltimezone *zone);
-
-/** create a time from an ISO format string */
-struct icaltimetype icaltime_from_string(const char* str);
-
-/** create a time from an ISO format string */
-struct icaltimetype icaltime_from_string_with_zone(const char* str,
-	icaltimezone *zone);
-
-/** Create a new time, given a day of year and a year. */
-struct icaltimetype icaltime_from_day_of_year(const int doy,
-	const int year);
-
-/**	@brief Contructor (TODO).
- * Create a new time from a weeknumber and a year. */
-struct icaltimetype icaltime_from_week_number(const int week_number,
-	const int year);
-
-/** Return the time as seconds past the UNIX epoch */
-time_t icaltime_as_timet(const struct icaltimetype);
-
-/** Return the time as seconds past the UNIX epoch, using timezones. */
-time_t icaltime_as_timet_with_zone(const struct icaltimetype tt,
-	icaltimezone *zone);
-
-/** Return a string represention of the time, in RFC2445 format. The
-   string is owned by libical */
-const char* icaltime_as_ical_string(const struct icaltimetype tt);
-
-/** @brief Return the timezone */
-icaltimezone *icaltime_get_timezone(const struct icaltimetype t);
-
-/** @brief Return the tzid, or NULL for a floating time */
-const char *icaltime_get_tzid(const struct icaltimetype t);
-
-/** @brief Set the timezone */
-struct icaltimetype icaltime_set_timezone(struct icaltimetype *t,
-	icaltimezone *zone);
-
-/** Return the day of the year of the given time */
-int icaltime_day_of_year(const struct icaltimetype t);
-
-/** Return the day of the week of the given time. Sunday is 1 */
-int icaltime_day_of_week(const struct icaltimetype t);
-
-/** Return the day of the year for the Sunday of the week that the
-   given time is within. */
-int icaltime_start_doy_of_week(const struct icaltimetype t);
-
-/** Return the week number for the week the given time is within */
-int icaltime_week_number(const struct icaltimetype t);
-
-/** Return true of the time is null. */
-int icaltime_is_null_time(const struct icaltimetype t);
-
-/** Returns false if the time is clearly invalid, but is not null. This
-   is usually the result of creating a new time type buy not clearing
-   it, or setting one of the flags to an illegal value. */
-int icaltime_is_valid_time(const struct icaltimetype t);
-
-/** @brief Returns true if time is of DATE type, false if DATE-TIME */
-int icaltime_is_date(const struct icaltimetype t);
-
-/** @brief Returns true if time is relative to UTC zone */
-int icaltime_is_utc(const struct icaltimetype t);
-
-/** @brief Returns true if time is a floating time */
-int icaltime_is_floating(const struct icaltimetype t);
-
-/** Return -1, 0, or 1 to indicate that a<b, a==b or a>b */
-int icaltime_compare_with_zone(const struct icaltimetype a,
-        const struct icaltimetype b);
-
-/** Return -1, 0, or 1 to indicate that a<b, a==b or a>b */
-int icaltime_compare(const struct icaltimetype a,
-	const struct icaltimetype b);
-
-/** like icaltime_compare, but only use the date parts. */
-int icaltime_compare_date_only(const struct icaltimetype a,
-	const struct icaltimetype b);
-
-/** Adds or subtracts a number of days, hours, minutes and seconds. */
-void  icaltime_adjust(struct icaltimetype *tt, const int days,
-	const int hours, const int minutes, const int seconds);
-
-/** Normalize the icaltime, so that all fields are within the normal range. */
-struct icaltimetype icaltime_normalize(const struct icaltimetype t);
-
-/** convert tt, of timezone tzid, into a utc time. Does nothing if the
-   time is already UTC.  */
-struct icaltimetype icaltime_convert_to_zone(const struct icaltimetype tt,
-	icaltimezone *zone);
-
-/** Return the number of days in the given month */
-int icaltime_days_in_month(const int month, const int year);
-
-
-/** @brief calculate an icaltimespan given a start and end time. */
-struct icaltime_span icaltime_span_new(struct icaltimetype dtstart,
-				       struct icaltimetype dtend,
-				       int is_busy);
-
-/** @brief Returns true if the two spans overlap **/
-int icaltime_span_overlaps(icaltime_span *s1, 
-			   icaltime_span *s2);
-
-/** @brief Returns true if the span is totally within the containing
- *  span 
- */
-int icaltime_span_contains(icaltime_span *s,
-			   icaltime_span *container);
-
-
-#endif /* !ICALTIME_H */
-
-
diff --git a/libkcal/libical/src/libical/icaltimezone.c b/libkcal/libical/src/libical/icaltimezone.c
deleted file mode 100644
index fab228ef..00000000
--- a/libkcal/libical/src/libical/icaltimezone.c
+++ /dev/null
@@ -1,1670 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
-/*======================================================================
- FILE: icaltimezone.c
- CREATOR: Damon Chaplin 15 March 2001
-
-
- (C) COPYRIGHT 2001, Damon Chaplin
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-
-======================================================================*/
-
-/** @file icaltimezone.c
- *  @brief implementation of timezone handling routines
- **/
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include "icalproperty.h"
-#include "icalarray.h"
-#include "icalerror.h"
-#include "icalparser.h"
-#include "icaltimezone.h"
-
-#ifdef WIN32
-#define snprintf _snprintf
-#define PACKAGE_DATA_DIR "/Projects/libical"
-#endif
-
-/** This is the toplevel directory where the timezone data is installed in. */
-#define ZONEINFO_DIRECTORY	PACKAGE_DATA_DIR "/zoneinfo"
-
-/** The prefix we use to uniquely identify TZIDs. */
-#define TZID_PREFIX		"/softwarestudio.org/"
-#define TZID_PREFIX_LEN		20
-
-/** This is the filename of the file containing the city names and
-    coordinates of all the builtin timezones. */
-#define ZONES_TAB_FILENAME	"zones.tab"
-
-/** This is the number of years of extra coverage we do when expanding
-    the timezone changes. */
-#define ICALTIMEZONE_EXTRA_COVERAGE	5
-
-/** This is the maximum year we will expand to. time_t values only go up to
-    somewhere around 2037. */
-#define ICALTIMEZONE_MAX_YEAR		2035
-
-struct _icaltimezone {
-    char		*tzid;
-    /**< The unique ID of this timezone,
-       e.g. "/softwarestudio.org/Olson_20010601_1/Africa/Banjul".
-       This should only be used to identify a VTIMEZONE. It is not
-       meant to be displayed to the user in any form. */
-
-    char		*location;
-    /**< The location for the timezone, e.g. "Africa/Accra" for the
-       Olson database. We look for this in the "LOCATION" or
-       "X-LIC-LOCATION" properties of the VTIMEZONE component. It
-       isn't a standard property yet. This will be NULL if no location
-       is found in the VTIMEZONE. */
-
-    char		*tznames;
-    /**< This will be set to a combination of the TZNAME properties
-       from the last STANDARD and DAYLIGHT components in the
-       VTIMEZONE, e.g. "EST/EDT".  If they both use the same TZNAME,
-       or only one type of component is found, then only one TZNAME
-       will appear, e.g. "AZOT". If no TZNAME is found this will be
-       NULL. */
-
-    double		 latitude;
-    double		 longitude;
-    /**< The coordinates of the city, in degrees. */
-
-    icalcomponent	*component;
-    /**< The toplevel VTIMEZONE component loaded from the .ics file for this
-         timezone. If we need to regenerate the changes data we need this. */
-
-    icaltimezone	*builtin_timezone;
-    /**< If this is not NULL it points to the builtin icaltimezone
-       that the above TZID refers to. This icaltimezone should be used
-       instead when accessing the timezone changes data, so that the
-       expanded timezone changes data is shared between calendar
-       components. */
-
-    int			 end_year;
-    /**< This is the last year for which we have expanded the data to.
-       If we need to calculate a date past this we need to expand the
-       timezone component data from scratch. */
-
-    icalarray		*changes;
-    /**< A dynamically-allocated array of time zone changes, sorted by the
-       time of the change in local time. So we can do fast binary-searches
-       to convert from local time to UTC. */
-};
-
-typedef struct _icaltimezonechange	icaltimezonechange;
-
-struct _icaltimezonechange {
-    int		 utc_offset;
-    /**< The offset to add to UTC to get local time, in seconds. */
-
-    int		 prev_utc_offset;
-    /**< The offset to add to UTC, before this change, in seconds. */
-
-    int		 year;		/**< Actual year, e.g. 2001. */
-    int		 month;		/**< 1 (Jan) to 12 (Dec). */
-    int		 day;
-    int		 hour;
-    int		 minute;
-    int		 second;
-    /**< The time that the change came into effect, in UTC.
-       Note that the prev_utc_offset applies to this local time,
-       since we haven't changed to the new offset yet. */
-
-    int		 is_daylight;
-    /**< Whether this is STANDARD or DAYLIGHT time. */
-};
-
-
-/** An array of icaltimezones for the builtin timezones. */
-static icalarray *builtin_timezones = NULL;
-
-/** This is the special UTC timezone, which isn't in builtin_timezones. */
-static icaltimezone utc_timezone = { 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-
-static char* zone_files_directory = NULL;
-
-static void  icaltimezone_reset			(icaltimezone *zone);
-static char* icaltimezone_get_location_from_vtimezone (icalcomponent *component);
-static char* icaltimezone_get_tznames_from_vtimezone (icalcomponent *component);
-static void  icaltimezone_expand_changes	(icaltimezone	*zone,
-						 int		 end_year);
-static void  icaltimezone_expand_vtimezone	(icalcomponent	*comp,
-						 int		 end_year,
-						 icalarray	*changes);
-static int   icaltimezone_compare_change_fn	(const void	*elem1,
-						 const void	*elem2);
-
-static int   icaltimezone_find_nearby_change	(icaltimezone *zone,
-						 icaltimezonechange *change);
-
-static void  icaltimezone_adjust_change		(icaltimezonechange *tt,
-						 int		 days,
-						 int		 hours,
-						 int		 minutes,
-						 int		 seconds);
-
-static void  icaltimezone_init			(icaltimezone *zone);
-
-/** Gets the TZID, LOCATION/X-LIC-LOCATION, and TZNAME properties from the
-   VTIMEZONE component and places them in the icaltimezone. It returns 1 on
-   success, or 0 if the TZID can't be found. */
-static int   icaltimezone_get_vtimezone_properties (icaltimezone *zone,
-						    icalcomponent *component);
-
-
-static void  icaltimezone_load_builtin_timezone	(icaltimezone *zone);
-
-static void  icaltimezone_ensure_coverage	(icaltimezone *zone,
-						 int		 end_year);
-
-
-static void  icaltimezone_init_builtin_timezones(void);
-
-static void  icaltimezone_parse_zone_tab	(void);
-
-static char* icaltimezone_load_get_line_fn	(char		*s,
-						 size_t		 size,
-						 void		*data);
-
-static void  format_utc_offset			(int		 utc_offset,
-						 char		*buffer);
-
-static const char* get_zone_directory(void);
-
-
-/** Creates a new icaltimezone. */
-icaltimezone*
-icaltimezone_new			(void)
-{
-    icaltimezone *zone;
-
-    zone = (icaltimezone*) malloc (sizeof (icaltimezone));
-    if (!zone) {
-	icalerror_set_errno (ICAL_NEWFAILED_ERROR);
-	return NULL;
-    }
-
-    icaltimezone_init (zone);
-
-    return zone;
-}
-
-
-/** Frees all memory used for the icaltimezone. */
-void
-icaltimezone_free			(icaltimezone *zone,
-					 int	       free_struct)
-{
-    icaltimezone_reset (zone);
-    if (free_struct)
-	free ((void *)zone);
-}
-
-
-/** Resets the icaltimezone to the initial state, freeing most of the fields. */
-static void
-icaltimezone_reset			(icaltimezone *zone)
-{
-    if (zone->tzid)
-		free (zone->tzid);
-    if (zone->location)
-		free (zone->location);
-    if (zone->tznames)
-		free (zone->tznames);
-    if (zone->component)
-		icalcomponent_free (zone->component);
-    if (zone->changes)
-		icalarray_free (zone->changes);
-	
-    icaltimezone_init (zone);
-}
-
-
-/** Initializes an icaltimezone. */
-static void
-icaltimezone_init			(icaltimezone *zone)
-{
-    zone->tzid = NULL;
-    zone->location = NULL;
-    zone->tznames = NULL;
-    zone->latitude = 0.0;
-    zone->longitude = 0.0;
-    zone->component = NULL;
-    zone->builtin_timezone = NULL;
-    zone->end_year = 0;
-    zone->changes = NULL;
-}
-
-
-/** Gets the TZID, LOCATION/X-LIC-LOCATION and TZNAME properties of
-   the VTIMEZONE component and stores them in the icaltimezone.  It
-   returns 1 on success, or 0 if the TZID can't be found.  Note that
-   it expects the zone to be initialized or reset - it doesn't free
-   any old values. */
-static int
-icaltimezone_get_vtimezone_properties	(icaltimezone *zone,
-					 icalcomponent	*component)
-{
-    icalproperty *prop;
-    const char *tzid;
- 
-    prop = icalcomponent_get_first_property (component, ICAL_TZID_PROPERTY);
-    if (!prop)
-	return 0;
-
-    /* A VTIMEZONE MUST have a TZID, or a lot of our code won't work. */
-    tzid = icalproperty_get_tzid (prop);
-    if (!tzid)
-	return 0;
-
-    zone->tzid = strdup (tzid);
-    zone->component = component;
-	if ( zone->location != 0 ) free ( zone->location );
-    zone->location = icaltimezone_get_location_from_vtimezone (component);
-    zone->tznames = icaltimezone_get_tznames_from_vtimezone (component);
-
-    return 1;
-}
-
-/** Gets the LOCATION or X-LIC-LOCATION property from a VTIMEZONE. */
-static char*
-icaltimezone_get_location_from_vtimezone (icalcomponent *component)
-{
-    icalproperty *prop;
-    const char *location;
-    const char *name;
-
-    prop = icalcomponent_get_first_property (component,
-					     ICAL_LOCATION_PROPERTY);
-    if (prop) {
-	location = icalproperty_get_location (prop);
-	if (location)
-	    return strdup (location);
-    }
-
-    prop = icalcomponent_get_first_property (component, ICAL_X_PROPERTY);
-    while (prop) {
-	name = icalproperty_get_x_name (prop);
-	if (name && !strcasecmp (name, "X-LIC-LOCATION")) {
-	    location = icalproperty_get_x (prop);
-	    if (location)
-		return strdup (location);
-	}
-	prop = icalcomponent_get_next_property (component,
-						ICAL_X_PROPERTY);
-    }
-
-    return NULL;
-}
-
-
-/** Gets the TZNAMEs used for the last STANDARD & DAYLIGHT components
-   in a VTIMEZONE. If both STANDARD and DAYLIGHT components use the
-   same TZNAME, it returns that. If they use different TZNAMEs, it
-   formats them like "EST/EDT". The returned string should be freed by
-   the caller. */
-static char*
-icaltimezone_get_tznames_from_vtimezone (icalcomponent *component)
-{
-    icalcomponent *comp;
-    icalcomponent_kind type;
-    icalproperty *prop;
-    struct icaltimetype dtstart;
-    struct icaldatetimeperiodtype rdate;
-    const char *current_tzname;
-    const char *standard_tzname = NULL, *daylight_tzname = NULL;
-    struct icaltimetype standard_max_date, daylight_max_date;
-    struct icaltimetype current_max_date;
-
-    standard_max_date = icaltime_null_time();
-    daylight_max_date = icaltime_null_time();
-
-    /* Step through the STANDARD & DAYLIGHT subcomponents. */
-    comp = icalcomponent_get_first_component (component, ICAL_ANY_COMPONENT);
-    while (comp) {
-	type = icalcomponent_isa (comp);
-	if (type == ICAL_XSTANDARD_COMPONENT
-	    || type == ICAL_XDAYLIGHT_COMPONENT) {
-	    current_max_date = icaltime_null_time ();
-	    current_tzname = NULL;
-
-	    /* Step through the properties. We want to find the TZNAME, and
-	       the largest DTSTART or RDATE. */
-	    prop = icalcomponent_get_first_property (comp, ICAL_ANY_PROPERTY);
-	    while (prop) {
-		switch (icalproperty_isa (prop)) {
-		case ICAL_TZNAME_PROPERTY:
-		    current_tzname = icalproperty_get_tzname (prop);
-		    break;
-
-		case ICAL_DTSTART_PROPERTY:
-		    dtstart = icalproperty_get_dtstart (prop);
-		    if (icaltime_compare (dtstart, current_max_date) > 0)
-			current_max_date = dtstart;
-
-		    break;
-
-		case ICAL_RDATE_PROPERTY:
-		    rdate = icalproperty_get_rdate (prop);
-		    if (icaltime_compare (rdate.time, current_max_date) > 0)
-			current_max_date = rdate.time;
-
-		    break;
-
-		default:
-		    break;
-		}
-
-		prop = icalcomponent_get_next_property (comp,
-							ICAL_ANY_PROPERTY);
-	    }
-
-	    if (current_tzname) {
-		if (type == ICAL_XSTANDARD_COMPONENT) {
-		    if (!standard_tzname
-			|| icaltime_compare (current_max_date,
-					     standard_max_date) > 0) {
-			standard_max_date = current_max_date;
-			standard_tzname = current_tzname;
-		    }
-		} else {
-		    if (!daylight_tzname
-			|| icaltime_compare (current_max_date,
-					     daylight_max_date) > 0) {
-			daylight_max_date = current_max_date;
-			daylight_tzname = current_tzname;
-		    }
-		}
-	    }
-	}
-
-        comp = icalcomponent_get_next_component (component,
-						 ICAL_ANY_COMPONENT);
-    }
-
-    /* Outlook (2000) places "Standard Time" and "Daylight Time" in the TZNAME
-       strings, which is totally useless. So we return NULL in that case. */
-    if (standard_tzname && !strcmp (standard_tzname, "Standard Time"))
-	return NULL;
-
-    /* If both standard and daylight TZNAMEs were found, if they are the same
-       we return just one, else we format them like "EST/EDT". */
-    if (standard_tzname && daylight_tzname) {
-	unsigned int standard_len, daylight_len;
-	char *tznames;
-
-	if (!strcmp (standard_tzname, daylight_tzname))
-	    return strdup (standard_tzname);
-
-	standard_len = strlen (standard_tzname);
-	daylight_len = strlen (daylight_tzname);
-	tznames = malloc (standard_len + daylight_len + 2);
-	strcpy (tznames, standard_tzname);
-	tznames[standard_len] = '/';
-	strcpy (tznames + standard_len + 1, daylight_tzname);
-	return tznames;
-    } else {
-	const char *tznames;
-
-	/* If either of the TZNAMEs was found just return that, else NULL. */
-	tznames = standard_tzname ? standard_tzname : daylight_tzname;
-	return tznames ? strdup (tznames) : NULL;
-    }
-}
-
-
-static void
-icaltimezone_ensure_coverage		(icaltimezone *zone,
-					 int		 end_year)
-{
-    /* When we expand timezone changes we always expand at least up to this
-       year, plus ICALTIMEZONE_EXTRA_COVERAGE. */
-    static int icaltimezone_minimum_expansion_year = -1;
-
-    int changes_end_year;
-
-    if (!zone->component)
-	icaltimezone_load_builtin_timezone (zone);
-
-    if (icaltimezone_minimum_expansion_year == -1) {
-	struct icaltimetype today = icaltime_today();
-	icaltimezone_minimum_expansion_year = today.year;
-    }
-
-    changes_end_year = end_year;
-    if (changes_end_year < icaltimezone_minimum_expansion_year)
-	changes_end_year = icaltimezone_minimum_expansion_year;
-
-    changes_end_year += ICALTIMEZONE_EXTRA_COVERAGE;
-
-    if (changes_end_year > ICALTIMEZONE_MAX_YEAR)
-	changes_end_year = ICALTIMEZONE_MAX_YEAR;
-
-    if (!zone->changes || zone->end_year < end_year)
-	icaltimezone_expand_changes (zone, changes_end_year);
-}
-
-
-static void
-icaltimezone_expand_changes		(icaltimezone *zone,
-					 int		 end_year)
-{
-    icalarray *changes;
-    icalcomponent *comp;
-
-#if 0
-    printf ("\nExpanding changes for: %s to year: %i\n", zone->tzid, end_year);
-#endif
-
-    changes = icalarray_new (sizeof (icaltimezonechange), 32);
-    if (!changes)
-	return;
-
-    /* Scan the STANDARD and DAYLIGHT subcomponents. */
-    comp = icalcomponent_get_first_component (zone->component,
-					      ICAL_ANY_COMPONENT);
-    while (comp) {
-	icaltimezone_expand_vtimezone (comp, end_year, changes);
-	comp = icalcomponent_get_next_component (zone->component,
-						 ICAL_ANY_COMPONENT);
-    }
-
-    /* Sort the changes. We may have duplicates but I don't think it will
-       matter. */
-    icalarray_sort (changes, icaltimezone_compare_change_fn);
-
-    if (zone->changes)
-	icalarray_free (zone->changes);
-
-    zone->changes = changes;
-    zone->end_year = end_year;
-}
-
-
-static void
-icaltimezone_expand_vtimezone		(icalcomponent	*comp,
-					 int		 end_year,
-					 icalarray	*changes)
-{
-    icaltimezonechange change;
-    icalproperty *prop;
-    struct icaltimetype dtstart, occ;
-    struct icalrecurrencetype rrule;
-    icalrecur_iterator* rrule_iterator;
-    struct icaldatetimeperiodtype rdate;
-    int found_dtstart = 0, found_tzoffsetto = 0, found_tzoffsetfrom = 0;
-    int has_recurrence = 0;
-
-    /* First we check if it is a STANDARD or DAYLIGHT component, and
-       just return if it isn't. */
-    if (icalcomponent_isa (comp) == ICAL_XSTANDARD_COMPONENT)
-	change.is_daylight = 0;
-    else if (icalcomponent_isa (comp) == ICAL_XDAYLIGHT_COMPONENT)
-	change.is_daylight = 1;
-    else 
-	return;
-
-    /* Step through each of the properties to find the DTSTART,
-       TZOFFSETFROM and TZOFFSETTO. We can't expand recurrences here
-       since we need these properties before we can do that. */
-    prop = icalcomponent_get_first_property (comp, ICAL_ANY_PROPERTY);
-    while (prop) {
-	switch (icalproperty_isa (prop)) {
-	case ICAL_DTSTART_PROPERTY:
-	    dtstart = icalproperty_get_dtstart (prop);
-	    found_dtstart = 1;
-	    break;
-	case ICAL_TZOFFSETTO_PROPERTY:
-	    change.utc_offset = icalproperty_get_tzoffsetto (prop);
-	    /*printf ("Found TZOFFSETTO: %i\n", change.utc_offset);*/
-	    found_tzoffsetto = 1;
-	    break;
-	case ICAL_TZOFFSETFROM_PROPERTY:
-	    change.prev_utc_offset = icalproperty_get_tzoffsetfrom (prop);
-	    /*printf ("Found TZOFFSETFROM: %i\n", change.prev_utc_offset);*/
-	    found_tzoffsetfrom = 1;
-	    break;
-	case ICAL_RDATE_PROPERTY:
-	case ICAL_RRULE_PROPERTY:
-	    has_recurrence = 1;
-	    break;
-	default:
-	    /* Just ignore any other properties. */
-	    break;
-	}
-
-	prop = icalcomponent_get_next_property (comp, ICAL_ANY_PROPERTY);
-    }
-
-    /* If we didn't find a DTSTART, TZOFFSETTO and TZOFFSETFROM we have to
-       ignore the component. FIXME: Add an error property? */
-    if (!found_dtstart || !found_tzoffsetto || !found_tzoffsetfrom)
-	return;
-
-#if 0
-    printf ("\n Expanding component DTSTART (Y/M/D): %i/%i/%i %i:%02i:%02i\n",
-	    dtstart.year, dtstart.month, dtstart.day,
-	    dtstart.hour, dtstart.minute, dtstart.second);
-#endif
-
-    /* If the STANDARD/DAYLIGHT component has no recurrence data, we just add
-       a single change for the DTSTART. */
-    if (!has_recurrence) {
-	change.year   = dtstart.year;
-	change.month  = dtstart.month;
-	change.day    = dtstart.day;
-	change.hour   = dtstart.hour;
-	change.minute = dtstart.minute;
-	change.second = dtstart.second;
-
-	/* Convert to UTC. */
-	icaltimezone_adjust_change (&change, 0, 0, 0, -change.prev_utc_offset);
-
-#if 0
-	printf ("  Appending single DTSTART (Y/M/D): %i/%02i/%02i %i:%02i:%02i\n",
-		change.year, change.month, change.day,
-		change.hour, change.minute, change.second);
-#endif
-
-	/* Add the change to the array. */
-	icalarray_append (changes, &change);
-	return;
-    }
-
-    /* The component has recurrence data, so we expand that now. */
-    prop = icalcomponent_get_first_property (comp, ICAL_ANY_PROPERTY);
-    while (prop) {
-#if 0
-	printf ("Expanding property...\n");
-#endif
-	switch (icalproperty_isa (prop)) {
-	case ICAL_RDATE_PROPERTY:
-	    rdate = icalproperty_get_rdate (prop);
-	    change.year   = rdate.time.year;
-	    change.month  = rdate.time.month;
-	    change.day    = rdate.time.day;
-	    /* RDATEs with a DATE value inherit the time from
-	       the DTSTART. */
-	    if (icaltime_is_date(rdate.time)) {
-		change.hour   = dtstart.hour;
-		change.minute = dtstart.minute;
-		change.second = dtstart.second;
-	    } else {
-		change.hour   = rdate.time.hour;
-		change.minute = rdate.time.minute;
-		change.second = rdate.time.second;
-
-		/* The spec was a bit vague about whether RDATEs were in local
-		   time or UTC so we support both to be safe. So if it is in
-		   UTC we have to add the UTC offset to get a local time. */
-		if (!icaltime_is_utc(rdate.time))
-		    icaltimezone_adjust_change (&change, 0, 0, 0,
-						-change.prev_utc_offset);
-	    }
-
-#if 0
-	    printf ("  Appending RDATE element (Y/M/D): %i/%02i/%02i %i:%02i:%02i\n",
-		    change.year, change.month, change.day,
-		    change.hour, change.minute, change.second);
-#endif
-
-	    icalarray_append (changes, &change);
-	    break;
-	case ICAL_RRULE_PROPERTY:
-	    rrule = icalproperty_get_rrule (prop);
-
-	    /* If the rrule UNTIL value is set and is in UTC, we convert it to
-	       a local time, since the recurrence code has no way to convert
-	       it itself. */
-	    if (!icaltime_is_null_time (rrule.until) && rrule.until.is_utc) {
-#if 0
-		printf ("  Found RRULE UNTIL in UTC.\n");
-#endif
-
-		/* To convert from UTC to a local time, we use the TZOFFSETFROM
-		   since that is the offset from UTC that will be in effect
-		   when each of the RRULE occurrences happens. */
-		icaltime_adjust (&rrule.until, 0, 0, 0,
-				 change.prev_utc_offset);
-		rrule.until.is_utc = 0;
-	    }
-
-	    rrule_iterator = icalrecur_iterator_new (rrule, dtstart);
-	    for (;;) {
-		occ = icalrecur_iterator_next (rrule_iterator);
-		if (occ.year > end_year || icaltime_is_null_time (occ))
-		    break;
-
-		change.year   = occ.year;
-		change.month  = occ.month;
-		change.day    = occ.day;
-		change.hour   = occ.hour;
-		change.minute = occ.minute;
-		change.second = occ.second;
-
-#if 0
-		printf ("  Appending RRULE element (Y/M/D): %i/%02i/%02i %i:%02i:%02i\n",
-			change.year, change.month, change.day,
-			change.hour, change.minute, change.second);
-#endif
-
-		icaltimezone_adjust_change (&change, 0, 0, 0,
-					    -change.prev_utc_offset);
-
-		icalarray_append (changes, &change);
-	    }
-
-	    icalrecur_iterator_free (rrule_iterator);
-	    break;
-	default:
-	    break;
-	}
-
-	prop = icalcomponent_get_next_property (comp, ICAL_ANY_PROPERTY);
-    }
-}
-
-
-/** A function to compare 2 icaltimezonechange elements, used for qsort(). */
-static int
-icaltimezone_compare_change_fn		(const void	*elem1,
-					 const void	*elem2)
-{
-    icaltimezonechange *change1, *change2;
-    int retval;
-
-    change1 = (icaltimezonechange *)elem1;
-    change2 = (icaltimezonechange *)elem2;
-
-    if (change1->year < change2->year)
-	retval = -1;
-    else if (change1->year > change2->year)
-	retval = 1;
-
-    else if (change1->month < change2->month)
-	retval = -1;
-    else if (change1->month > change2->month)
-	retval = 1;
-
-    else if (change1->day < change2->day)
-	retval = -1;
-    else if (change1->day > change2->day)
-	retval = 1;
-
-    else if (change1->hour < change2->hour)
-	retval = -1;
-    else if (change1->hour > change2->hour)
-	retval = 1;
-
-    else if (change1->minute < change2->minute)
-	retval = -1;
-    else if (change1->minute > change2->minute)
-	retval = 1;
-
-    else if (change1->second < change2->second)
-	retval = -1;
-    else if (change1->second > change2->second)
-	retval = 1;
-
-    else
-	retval = 0;
-
-    return retval;
-}
-
-
-
-void
-icaltimezone_convert_time		(struct icaltimetype *tt,
-					 icaltimezone *from_zone,
-					 icaltimezone *to_zone)
-{
-    int utc_offset, is_daylight;
-
-    /* If the time is a DATE value or both timezones are the same, or we are
-       converting a floating time, we don't need to do anything. */
-    if (icaltime_is_date(*tt) || from_zone == to_zone || from_zone == NULL)
-	return;
-
-    /* Convert the time to UTC by getting the UTC offset and subtracting it. */
-    utc_offset = icaltimezone_get_utc_offset (from_zone, tt, NULL);
-    icaltime_adjust (tt, 0, 0, 0, -utc_offset);
-
-    /* Now we convert the time to the new timezone by getting the UTC offset
-       of our UTC time and adding it. */       
-    utc_offset = icaltimezone_get_utc_offset_of_utc_time (to_zone, tt,
-							  &is_daylight);
-    tt->is_daylight = is_daylight;
-    icaltime_adjust (tt, 0, 0, 0, utc_offset);
-}
-
-
-
-
-/** @deprecated This API wasn't updated when we changed icaltimetype to contain its own
-    timezone. Also, this takes a pointer instead of the struct. */
-/* Calculates the UTC offset of a given local time in the given
-   timezone.  It is the number of seconds to add to UTC to get local
-   time.  The is_daylight flag is set to 1 if the time is in
-   daylight-savings time. */
-int
-icaltimezone_get_utc_offset		(icaltimezone	*zone,
-					 struct icaltimetype	*tt,
-					 int		*is_daylight)
-{
-    icaltimezonechange *zone_change, *prev_zone_change, tt_change, tmp_change;
-    int change_num, step, utc_offset_change, cmp;
-    int change_num_to_use;
-    int want_daylight;
-
-    if (tt == NULL)
-	return 0;
-
-    if (is_daylight)
-	*is_daylight = 0;
-
-    /* For local times and UTC return 0. */
-    if (zone == NULL || zone == &utc_timezone)
-	return 0;
-
-    /* Use the builtin icaltimezone if possible. */
-    if (zone->builtin_timezone)
-	zone = zone->builtin_timezone;
-
-    /* Make sure the changes array is expanded up to the given time. */
-    icaltimezone_ensure_coverage (zone, tt->year);
-
-    if (!zone->changes || zone->changes->num_elements == 0)
-	return 0;
-
-    /* Copy the time parts of the icaltimetype to an icaltimezonechange so we
-       can use our comparison function on it. */
-    tt_change.year   = tt->year;
-    tt_change.month  = tt->month;
-    tt_change.day    = tt->day;
-    tt_change.hour   = tt->hour;
-    tt_change.minute = tt->minute;
-    tt_change.second = tt->second;
-
-    /* This should find a change close to the time, either the change before
-       it or the change after it. */
-    change_num = icaltimezone_find_nearby_change (zone, &tt_change);
-
-    /* Sanity check. */
-    icalerror_assert (change_num >= 0,
-		      "Negative timezone change index");
-    icalerror_assert (change_num < zone->changes->num_elements,
-		      "Timezone change index out of bounds");
-
-    /* Now move backwards or forwards to find the timezone change that applies
-       to tt. It should only have to do 1 or 2 steps. */
-    zone_change = icalarray_element_at (zone->changes, change_num);
-    step = 1;
-    change_num_to_use = -1;
-    for (;;) {
-	/* Copy the change, so we can adjust it. */
-	tmp_change = *zone_change;
-
-	/* If the clock is going backward, check if it is in the region of time
-	   that is used twice. If it is, use the change with the daylight
-	   setting which matches tt, or use standard if we don't know. */
-	if (tmp_change.utc_offset < tmp_change.prev_utc_offset) {
-	    /* If the time change is at 2:00AM local time and the clock is
-	       going back to 1:00AM we adjust the change to 1:00AM. We may
-	       have the wrong change but we'll figure that out later. */
-	    icaltimezone_adjust_change (&tmp_change, 0, 0, 0,
-					tmp_change.utc_offset);
-	} else {
-	    icaltimezone_adjust_change (&tmp_change, 0, 0, 0,
-					tmp_change.prev_utc_offset);
-	}
-
-	cmp = icaltimezone_compare_change_fn (&tt_change, &tmp_change);
-
-	/* If the given time is on or after this change, then this change may
-	   apply, but we continue as a later change may be the right one.
-	   If the given time is before this change, then if we have already
-	   found a change which applies we can use that, else we need to step
-	   backwards. */
-	if (cmp >= 0)
-	    change_num_to_use = change_num;
-	else
-	    step = -1;
-
-	/* If we are stepping backwards through the changes and we have found
-	   a change that applies, then we know this is the change to use so
-	   we exit the loop. */
-	if (step == -1 && change_num_to_use != -1)
-	    break;
-
-	change_num += step;
-
-	/* If we go past the start of the changes array, then we have no data
-	   for this time so we return a UTC offset of 0. */
-	if (change_num < 0)
-	    return 0;
-
-	if ((unsigned int)change_num >= zone->changes->num_elements)
-	    break;
-
-	zone_change = icalarray_element_at (zone->changes, change_num);
-    }
-
-    /* If we didn't find a change to use, then we have a bug! */
-    icalerror_assert (change_num_to_use != -1,
-		      "No applicable timezone change found");
-
-    /* Now we just need to check if the time is in the overlapped region of
-       time when clocks go back. */
-    zone_change = icalarray_element_at (zone->changes, change_num_to_use);
-
-    utc_offset_change = zone_change->utc_offset - zone_change->prev_utc_offset;
-    if (utc_offset_change < 0 && change_num_to_use > 0) {
-	tmp_change = *zone_change;
-	icaltimezone_adjust_change (&tmp_change, 0, 0, 0,
-				    tmp_change.prev_utc_offset);
-
-	if (icaltimezone_compare_change_fn (&tt_change, &tmp_change) < 0) {
-	    /* The time is in the overlapped region, so we may need to use
-	       either the current zone_change or the previous one. If the
-	       time has the is_daylight field set we use the matching change,
-	       else we use the change with standard time. */
-	    prev_zone_change = icalarray_element_at (zone->changes,
-						     change_num_to_use - 1);
-
-	    /* I was going to add an is_daylight flag to struct icaltimetype,
-	       but iCalendar doesn't let us distinguish between standard and
-	       daylight time anyway, so there's no point. So we just use the
-	       standard time instead. */
-	    want_daylight = (tt->is_daylight == 1) ? 1 : 0;
-
-#if 0
-	    if (zone_change->is_daylight == prev_zone_change->is_daylight)
-		printf (" **** Same is_daylight setting\n");
-#endif
-
-	    if (zone_change->is_daylight != want_daylight
-		&& prev_zone_change->is_daylight == want_daylight)
-		zone_change = prev_zone_change;
-	}
-    }
-
-    /* Now we know exactly which timezone change applies to the time, so
-       we can return the UTC offset and whether it is a daylight time. */
-    if (is_daylight)
-	*is_daylight = zone_change->is_daylight;
-    return zone_change->utc_offset;
-}
-
-
-/** @deprecated This API wasn't updated when we changed icaltimetype to contain its own
-    timezone. Also, this takes a pointer instead of the struct. */
-/** Calculates the UTC offset of a given UTC time in the given
-   timezone.  It is the number of seconds to add to UTC to get local
-   time.  The is_daylight flag is set to 1 if the time is in
-   daylight-savings time. */
-int
-icaltimezone_get_utc_offset_of_utc_time	(icaltimezone	*zone,
-					 struct icaltimetype	*tt,
-					 int		*is_daylight)
-{
-    icaltimezonechange *zone_change, tt_change, tmp_change;
-    int change_num, step, change_num_to_use;
-
-    if (is_daylight)
-	*is_daylight = 0;
-
-    /* For local times and UTC return 0. */
-    if (zone == NULL || zone == &utc_timezone)
-	return 0;
-
-    /* Use the builtin icaltimezone if possible. */
-    if (zone->builtin_timezone)
-	zone = zone->builtin_timezone;
-
-    /* Make sure the changes array is expanded up to the given time. */
-    icaltimezone_ensure_coverage (zone, tt->year);
-
-    if (!zone->changes || zone->changes->num_elements == 0)
-	return 0;
-
-    /* Copy the time parts of the icaltimetype to an icaltimezonechange so we
-       can use our comparison function on it. */
-    tt_change.year   = tt->year;
-    tt_change.month  = tt->month;
-    tt_change.day    = tt->day;
-    tt_change.hour   = tt->hour;
-    tt_change.minute = tt->minute;
-    tt_change.second = tt->second;
-
-    /* This should find a change close to the time, either the change before
-       it or the change after it. */
-    change_num = icaltimezone_find_nearby_change (zone, &tt_change);
-
-    /* Sanity check. */
-    icalerror_assert (change_num >= 0,
-		      "Negative timezone change index");
-    icalerror_assert (change_num < zone->changes->num_elements,
-		      "Timezone change index out of bounds");
-
-    /* Now move backwards or forwards to find the timezone change that applies
-       to tt. It should only have to do 1 or 2 steps. */
-    zone_change = icalarray_element_at (zone->changes, change_num);
-    step = 1;
-    change_num_to_use = -1;
-    for (;;) {
-	/* Copy the change and adjust it to UTC. */
-	tmp_change = *zone_change;
-
-	/* If the given time is on or after this change, then this change may
-	   apply, but we continue as a later change may be the right one.
-	   If the given time is before this change, then if we have already
-	   found a change which applies we can use that, else we need to step
-	   backwards. */
-	if (icaltimezone_compare_change_fn (&tt_change, &tmp_change) >= 0)
-	    change_num_to_use = change_num;
-	else
-	    step = -1;
-
-	/* If we are stepping backwards through the changes and we have found
-	   a change that applies, then we know this is the change to use so
-	   we exit the loop. */
-	if (step == -1 && change_num_to_use != -1)
-	    break;
-
-	change_num += step;
-
-	/* If we go past the start of the changes array, then we have no data
-	   for this time so we return a UTC offset of 0. */
-	if (change_num < 0)
-	    return 0;
-
-	if ((unsigned int)change_num >= zone->changes->num_elements)
-	    break;
-
-	zone_change = icalarray_element_at (zone->changes, change_num);
-    }
-
-    /* If we didn't find a change to use, then we have a bug! */
-    icalerror_assert (change_num_to_use != -1,
-		      "No applicable timezone change found");
-
-    /* Now we know exactly which timezone change applies to the time, so
-       we can return the UTC offset and whether it is a daylight time. */
-    zone_change = icalarray_element_at (zone->changes, change_num_to_use);
-    if (is_daylight)
-	*is_daylight = zone_change->is_daylight;
-
-    return zone_change->utc_offset;
-}
-
-
-/** Returns the index of a timezone change which is close to the time
-   given in change. */
-static int
-icaltimezone_find_nearby_change		(icaltimezone	*zone,
-					 icaltimezonechange	*change)
-{
-    icaltimezonechange *zone_change;
-    int lower, upper, middle, cmp;
-					 
-    /* Do a simple binary search. */
-    lower = middle = 0;
-    upper = zone->changes->num_elements;
-
-    while (lower < upper) {
-	middle = (lower + upper) / 2;
-	zone_change = icalarray_element_at (zone->changes, middle);
-	cmp = icaltimezone_compare_change_fn (change, zone_change);
-	if (cmp == 0)
-	    break;
-	else if (cmp < 0)
-	    upper = middle;
-	else
-	    lower = middle + 1;
-    }
-
-    return middle;
-}
-
-
-
-
-/** Adds (or subtracts) a time from a icaltimezonechange.  NOTE: This
-   function is exactly the same as icaltime_adjust() except for the
-   type of the first parameter. */
-static void
-icaltimezone_adjust_change		(icaltimezonechange *tt,
-					 int		 days,
-					 int		 hours,
-					 int		 minutes,
-					 int		 seconds)
-{
-    int second, minute, hour, day;
-    int minutes_overflow, hours_overflow, days_overflow;
-    int days_in_month;
-
-    /* Add on the seconds. */
-    second = tt->second + seconds;
-    tt->second = second % 60;
-    minutes_overflow = second / 60;
-    if (tt->second < 0) {
-	tt->second += 60;
-	minutes_overflow--;
-    }
-
-    /* Add on the minutes. */
-    minute = tt->minute + minutes + minutes_overflow;
-    tt->minute = minute % 60;
-    hours_overflow = minute / 60;
-    if (tt->minute < 0) {
-	tt->minute += 60;
-	hours_overflow--;
-    }
-
-    /* Add on the hours. */
-    hour = tt->hour + hours + hours_overflow;
-    tt->hour = hour % 24;
-    days_overflow = hour / 24;
-    if (tt->hour < 0) {
-	tt->hour += 24;
-	days_overflow--;
-    }
-
-    /* Add on the days. */
-    day = tt->day + days + days_overflow;
-    if (day > 0) {
-	for (;;) {
-	    days_in_month = icaltime_days_in_month (tt->month, tt->year);
-	    if (day <= days_in_month)
-		break;
-
-	    tt->month++;
-	    if (tt->month >= 13) {
-		tt->year++;
-		tt->month = 1;
-	    }
-
-	    day -= days_in_month;
-	}
-    } else {
-	while (day <= 0) {
-	    if (tt->month == 1) {
-		tt->year--;
-		tt->month = 12;
-	    } else {
-		tt->month--;
-	    }
-
-	    day += icaltime_days_in_month (tt->month, tt->year);
-	}
-    }
-    tt->day = day;
-}
-
-
-const char*
-icaltimezone_get_tzid			(icaltimezone *zone)
-{
-    /* If this is a floating time, without a timezone, return NULL. */
-    if (!zone)
-	return NULL;
-
-    if (!zone->tzid)
-	icaltimezone_load_builtin_timezone (zone);
-
-    return zone->tzid;
-}
-
-
-const char*
-icaltimezone_get_location		(icaltimezone *zone)
-{
-    /* If this is a floating time, without a timezone, return NULL. */
-    if (!zone)
-	return NULL;
-
-    /* Note that for builtin timezones this comes from zones.tab so we don't
-       need to check the timezone is loaded here. */
-    return zone->location;
-}
-
-
-const char*
-icaltimezone_get_tznames		(icaltimezone *zone)
-{
-    /* If this is a floating time, without a timezone, return NULL. */
-    if (!zone)
-	return NULL;
-
-    if (!zone->component)
-	icaltimezone_load_builtin_timezone (zone);
-
-    return zone->tznames;
-}
-
-
-/** Returns the latitude of a builtin timezone. */
-double
-icaltimezone_get_latitude		(icaltimezone *zone)
-{
-    /* If this is a floating time, without a timezone, return 0. */
-    if (!zone)
-	return 0.0;
-
-    /* Note that for builtin timezones this comes from zones.tab so we don't
-       need to check the timezone is loaded here. */
-    return zone->latitude;
-}
-
-
-/** Returns the longitude of a builtin timezone. */
-double
-icaltimezone_get_longitude		(icaltimezone *zone)
-{
-    /* If this is a floating time, without a timezone, return 0. */
-    if (!zone)
-	return 0.0;
-
-    /* Note that for builtin timezones this comes from zones.tab so we don't
-       need to check the timezone is loaded here. */
-    return zone->longitude;
-}
-
-
-/** Returns the VTIMEZONE component of a timezone. */
-icalcomponent*
-icaltimezone_get_component		(icaltimezone *zone)
-{
-    /* If this is a floating time, without a timezone, return NULL. */
-    if (!zone)
-	return NULL;
-
-    if (!zone->component)
-	icaltimezone_load_builtin_timezone (zone);
-
-    return zone->component;
-}
-
-
-/** Sets the VTIMEZONE component of an icaltimezone, initializing the
-   tzid, location & tzname fields. It returns 1 on success or 0 on
-   failure, i.e.  no TZID was found. */
-int
-icaltimezone_set_component		(icaltimezone *zone,
-					 icalcomponent	*comp)
-{
-    icaltimezone_reset (zone);
-    return icaltimezone_get_vtimezone_properties (zone, comp);
-}
-
-
-icalarray*
-icaltimezone_array_new			(void)
-{
-    return icalarray_new (sizeof (icaltimezone), 16);
-}
-
-
-void
-icaltimezone_array_append_from_vtimezone (icalarray	*timezones,
-					  icalcomponent	*child)
-{
-    icaltimezone zone;
-
-    icaltimezone_init (&zone);
-    if (icaltimezone_get_vtimezone_properties (&zone, child))
-	icalarray_append (timezones, &zone);
-}
-
-
-void
-icaltimezone_array_free			(icalarray	*timezones)
-{
-    icaltimezone *zone;
-    int i;
-
-	if ( timezones )
-	{
-	    for (i = 0; (unsigned int)i < timezones->num_elements; i++) {
-		zone = icalarray_element_at (timezones, i);
-		icaltimezone_free (zone, 0);
-		}
-
-		icalarray_free (timezones);
-	}
-}
-
-
-/*
- * BUILTIN TIMEZONE HANDLING
- */
-
-
-/** Returns an icalarray of icaltimezone structs, one for each builtin
-   timezone.  This will load and parse the zones.tab file to get the
-   timezone names and their coordinates. It will not load the
-   VTIMEZONE data for any timezones. */
-icalarray*
-icaltimezone_get_builtin_timezones	(void)
-{
-    if (!builtin_timezones)
-	icaltimezone_init_builtin_timezones ();
-
-    return builtin_timezones;
-}
-
-/** Release builtin timezone memory */
-void
-icaltimezone_free_builtin_timezones(void)
-{
-	icaltimezone_array_free(builtin_timezones);
-}
-
-
-/** Returns a single builtin timezone, given its Olson city name. */
-icaltimezone*
-icaltimezone_get_builtin_timezone	(const char *location)
-{
-    icaltimezone *zone;
-    int lower, upper, middle, cmp;
-    const char *zone_location;
-
-    if (!location || !location[0])
-	return NULL;
-
-    if (!strcmp (location, "UTC"))
-	return &utc_timezone;
-
-    if (!builtin_timezones)
-	icaltimezone_init_builtin_timezones ();
-
-    /* Do a simple binary search. */
-    lower = middle = 0;
-    upper = builtin_timezones->num_elements;
-
-    while (lower < upper) {
-	middle = (lower + upper) / 2;
-	zone = icalarray_element_at (builtin_timezones, middle);
-	zone_location = icaltimezone_get_location (zone);
-	cmp = strcmp (location, zone_location);
-	if (cmp == 0)
-	    return zone;
-	else if (cmp < 0)
-	    upper = middle;
-	else
-	    lower = middle + 1;
-    }
-
-    return NULL;
-}
-
-
-/** Returns a single builtin timezone, given its TZID. */
-icaltimezone*
-icaltimezone_get_builtin_timezone_from_tzid (const char *tzid)
-{
-    int num_slashes = 0;
-    const char *p, *zone_tzid;
-    icaltimezone *zone;
-
-    if (!tzid || !tzid[0])
-	return NULL;
-
-    /* Check that the TZID starts with our unique prefix. */
-    if (strncmp (tzid, TZID_PREFIX, TZID_PREFIX_LEN))
-	return NULL;
-
-    /* Get the location, which is after the 3rd '/' character. */
-    p = tzid;
-    for (p = tzid; *p; p++) {
-	if (*p == '/') {
-	    num_slashes++;
-	    if (num_slashes == 3)
-		break;
-	}
-    }
-
-    if (num_slashes != 3)
-	return NULL;
-
-    p++;
-
-    /* Now we can use the function to get the builtin timezone from the
-       location string. */
-    zone = icaltimezone_get_builtin_timezone (p);
-    if (!zone)
-	return NULL;
-
-    /* Check that the builtin TZID matches exactly. We don't want to return
-       a different version of the VTIMEZONE. */
-    zone_tzid = icaltimezone_get_tzid (zone);
-    if (!strcmp (zone_tzid, tzid))
-	return zone;
-    else
-	return NULL;
-}
-
-
-/** Returns the special UTC timezone. */
-icaltimezone*
-icaltimezone_get_utc_timezone		(void)
-{
-    if (!builtin_timezones)
-	icaltimezone_init_builtin_timezones ();
-
-    return &utc_timezone;
-}
-
-
-
-/** This initializes the builtin timezone data, i.e. the
-   builtin_timezones array and the special UTC timezone. It should be
-   called before any code that uses the timezone functions. */
-static void
-icaltimezone_init_builtin_timezones	(void)
-{
-    /* Initialize the special UTC timezone. */
-    utc_timezone.tzid = (char *)"UTC";
-
-    icaltimezone_parse_zone_tab ();
-}
-
-
-/** This parses the zones.tab file containing the names and locations
-   of the builtin timezones. It creates the builtin_timezones array
-   which is an icalarray of icaltimezone structs. It only fills in the
-   location, latitude and longtude fields; the rest are left
-   blank. The VTIMEZONE component is loaded later if it is needed. The
-   timezones in the zones.tab file are sorted by their name, which is
-   useful for binary searches. */
-static void
-icaltimezone_parse_zone_tab		(void)
-{
-    char *filename;
-    FILE *fp;
-    char buf[1024];  /* Used to store each line of zones.tab as it is read. */
-    char location[1024]; /* Stores the city name when parsing buf. */
-    unsigned int filename_len;
-    int latitude_degrees, latitude_minutes, latitude_seconds;
-    int longitude_degrees, longitude_minutes, longitude_seconds;
-    icaltimezone zone;
-
-    icalerror_assert (builtin_timezones == NULL,
-		      "Parsing zones.tab file multiple times");
-
-    builtin_timezones = icalarray_new (sizeof (icaltimezone), 32);
-
-    filename_len = strlen (get_zone_directory()) + strlen (ZONES_TAB_FILENAME)
-	+ 2;
-
-    filename = (char*) malloc (filename_len);
-    if (!filename) {
-	icalerror_set_errno(ICAL_NEWFAILED_ERROR);
-	return;
-    }
-
-    snprintf (filename, filename_len, "%s/%s", get_zone_directory(),
-	      ZONES_TAB_FILENAME);
-
-    fp = fopen (filename, "r");
-    free (filename);
-    if (!fp) {
-	icalerror_set_errno(ICAL_FILE_ERROR);
-	return;
-    }
-
-    while (fgets (buf, sizeof(buf), fp)) {
-	if (*buf == '#') continue;
-
-	/* The format of each line is: "latitude longitude location". */
-	if (sscanf (buf, "%4d%2d%2d %4d%2d%2d %s",
-		    &latitude_degrees, &latitude_minutes,
-		    &latitude_seconds,
-		    &longitude_degrees, &longitude_minutes,
-		    &longitude_seconds,
-		    location) != 7) {
-	    fprintf (stderr, "Invalid timezone description line: %s\n", buf);
-	    continue;
-	}
-
-	icaltimezone_init (&zone);
-	zone.location = strdup (location);
-
-	if (latitude_degrees >= 0)
-	    zone.latitude = (double) latitude_degrees
-		+ (double) latitude_minutes / 60
-		+ (double) latitude_seconds / 3600;
-	else
-	    zone.latitude = (double) latitude_degrees
-		- (double) latitude_minutes / 60
-		- (double) latitude_seconds / 3600;
-
-	if (longitude_degrees >= 0)
-	    zone.longitude = (double) longitude_degrees
-		+ (double) longitude_minutes / 60
-		+ (double) longitude_seconds / 3600;
-	else
-	    zone.longitude = (double) longitude_degrees
-		- (double) longitude_minutes / 60
-		- (double) longitude_seconds / 3600;
-
-	icalarray_append (builtin_timezones, &zone);
-
-#if 0
-	printf ("Found zone: %s %f %f\n",
-		location, zone.latitude, zone.longitude);
-#endif
-    }
-
-    fclose (fp);
-}
-
-
-/** Loads the builtin VTIMEZONE data for the given timezone. */
-static void
-icaltimezone_load_builtin_timezone	(icaltimezone *zone)
-{
-    char *filename;
-    unsigned int filename_len;
-    FILE *fp;
-    icalparser *parser;
-    icalcomponent *comp, *subcomp;
-
-	    /* If the location isn't set, it isn't a builtin timezone. */
-    if (!zone->location || !zone->location[0])
-	return;
-
-    filename_len = strlen (get_zone_directory()) + strlen (zone->location) + 6;
-
-    filename = (char*) malloc (filename_len);
-    if (!filename) {
-	icalerror_set_errno(ICAL_NEWFAILED_ERROR);
-	return;
-    }
-
-    snprintf (filename, filename_len, "%s/%s.ics", get_zone_directory(),
-	      zone->location);
-
-    fp = fopen (filename, "r");
-    free (filename);
-    if (!fp) {
-	icalerror_set_errno(ICAL_FILE_ERROR);
-	return;
-    }
-
-	
-	/* ##### B.# Sun, 11 Nov 2001 04:04:29 +1100 
-	this is where the MALFORMEDDATA error is being set, after the call to 'icalparser_parse'
-	fprintf(stderr, "** WARNING ** %s: %d %s\n", __FILE__, __LINE__, icalerror_strerror(icalerrno));
-	*/
-
-    parser = icalparser_new ();
-	icalparser_set_gen_data (parser, fp);
-	comp = icalparser_parse (parser, icaltimezone_load_get_line_fn);
-    icalparser_free (parser);
-	fclose (fp);
-
-	
-	
-    /* Find the VTIMEZONE component inside the VCALENDAR. There should be 1. */
-    subcomp = icalcomponent_get_first_component (comp,
-						 ICAL_VTIMEZONE_COMPONENT);
-    if (!subcomp) {
-	icalerror_set_errno(ICAL_PARSE_ERROR);
-	return;
-    }
-
-    icaltimezone_get_vtimezone_properties (zone, subcomp);
-
-	icalcomponent_remove_component(comp,subcomp);
-
-	icalcomponent_free(comp);
-
-}
-
-
-/** Callback used from icalparser_parse() */
-static char *
-icaltimezone_load_get_line_fn		(char		*s,
-					 size_t		 size,
-					 void		*data)
-{
-    return fgets (s, (int)size, (FILE*) data);
-}
-
-
-
-
-/*
- * DEBUGGING
- */
-
-/**
- * This outputs a list of timezone changes for the given timezone to the
- * given file, up to the maximum year given. We compare this output with the
- * output from 'vzic --dump-changes' to make sure that we are consistent.
- * (vzic is the Olson timezone database to VTIMEZONE converter.)
- * 
- * The output format is:
- *
- *	Zone-Name [tab] Date [tab] Time [tab] UTC-Offset
- *
- * The Date and Time fields specify the time change in UTC.
- *
- * The UTC Offset is for local (wall-clock) time. It is the amount of time
- * to add to UTC to get local time.
- */
-int
-icaltimezone_dump_changes		(icaltimezone *zone,
-					 int		 max_year,
-					 FILE		*fp)
-{
-    static const char *months[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun",
-			      "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
-    icaltimezonechange *zone_change;
-    int change_num;
-    char buffer[8];
-
-    /* Make sure the changes array is expanded up to the given time. */
-    icaltimezone_ensure_coverage (zone, max_year);
-
-#if 0
-    printf ("Num changes: %i\n", zone->changes->num_elements);
-#endif
-
-    change_num = 0;
-    for (change_num = 0; (unsigned int)change_num < zone->changes->num_elements; change_num++) {
-	zone_change = icalarray_element_at (zone->changes, change_num);
-
-	if (zone_change->year > max_year)
-	    break;
-
-	fprintf (fp, "%s\t%2i %s %04i\t%2i:%02i:%02i",
-		zone->location,
-		zone_change->day, months[zone_change->month - 1],
-		zone_change->year,
-		zone_change->hour, zone_change->minute, zone_change->second);
-
-	/* Wall Clock Time offset from UTC. */
-	format_utc_offset (zone_change->utc_offset, buffer);
-	fprintf (fp, "\t%s", buffer);
-
-	fprintf (fp, "\n");
-    }
-	return 1;
-}
-
-
-/** This formats a UTC offset as "+HHMM" or "+HHMMSS".
-   buffer should have space for 8 characters. */
-static void
-format_utc_offset			(int		 utc_offset,
-					 char		*buffer)
-{
-  const char *sign = "+";
-  int hours, minutes, seconds;
-
-  if (utc_offset < 0) {
-    utc_offset = -utc_offset;
-    sign = "-";
-  }
-
-  hours = utc_offset / 3600;
-  minutes = (utc_offset % 3600) / 60;
-  seconds = utc_offset % 60;
-
-  /* Sanity check. Standard timezone offsets shouldn't be much more than 12
-     hours, and daylight saving shouldn't change it by more than a few hours.
-     (The maximum offset is 15 hours 56 minutes at present.) */
-  if (hours < 0 || hours >= 24 || minutes < 0 || minutes >= 60
-      || seconds < 0 || seconds >= 60) {
-    fprintf (stderr, "Warning: Strange timezone offset: H:%i M:%i S:%i\n",
-	     hours, minutes, seconds);
-  }
-
-  if (seconds == 0)
-    snprintf (buffer, sizeof(buffer), "%s%02i%02i", sign, hours, minutes);
-  else
-    snprintf (buffer, sizeof(buffer), "%s%02i%02i%02i", sign, hours, minutes, seconds);
-}
-
-static const char* get_zone_directory(void)
-{
-	return zone_files_directory == NULL ? ZONEINFO_DIRECTORY : zone_files_directory;
-}
-
-void set_zone_directory(char *path)
-{
-	zone_files_directory = malloc(strlen(path)+1);
-	if ( zone_files_directory != NULL )
-	{
-		strcpy(zone_files_directory,path);
-	}
-}
-
-void free_zone_directory(void)
-{
-	if ( zone_files_directory != NULL )
-	{
-		free(zone_files_directory);
-	}
-}
diff --git a/libkcal/libical/src/libical/icaltimezone.h b/libkcal/libical/src/libical/icaltimezone.h
deleted file mode 100644
index 1a97d391..00000000
--- a/libkcal/libical/src/libical/icaltimezone.h
+++ /dev/null
@@ -1,165 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
-/*======================================================================
- FILE: icaltimezone.h
- CREATOR: Damon Chaplin 15 March 2001
-
-
-
- (C) COPYRIGHT 2001, Damon Chaplin
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-
-======================================================================*/
-/**
- * @file icaltimezone.h
- * @brief timezone handling routines
- */
-
-#ifndef ICALTIMEZONE_H
-#define ICALTIMEZONE_H
-
-#include <stdio.h> /* For FILE* */
-#include "icaltime.h"
-#include "icalarray.h"
-#include "icalcomponent.h"
-
-
-#ifndef ICALTIMEZONE_DEFINED
-#define ICALTIMEZONE_DEFINED
-/** @brief An opaque struct representing a timezone.  
- * We declare this here to avoid a circular dependancy. 
- */
-typedef struct _icaltimezone		icaltimezone;
-#endif
-
-/**
- * @par Creating/Destroying individual icaltimezones.
- */
-
-/** Creates a new icaltimezone. */
-icaltimezone *icaltimezone_new			(void);
-
-/** Frees all memory used for the icaltimezone. Set free_struct to free the
-   icaltimezone struct as well. */
-void icaltimezone_free				(icaltimezone *zone,
-						 int free_struct);
-
-
-/**
- * @par Accessing timezones.
- */
-
-/** Free any builtin timezone information **/
-void icaltimezone_free_builtin_timezones(void);
-
-/** Returns the array of builtin icaltimezones. */
-icalarray* icaltimezone_get_builtin_timezones	(void);
-
-/** Returns a single builtin timezone, given its Olson city name. */
-icaltimezone* icaltimezone_get_builtin_timezone (const char *location);
-
-/** Returns a single builtin timezone, given its TZID. */
-icaltimezone* icaltimezone_get_builtin_timezone_from_tzid (const char *tzid);
-
-/** Returns the UTC timezone. */
-icaltimezone* icaltimezone_get_utc_timezone	(void);
-
-/** Returns the TZID of a timezone. */
-const char*	icaltimezone_get_tzid			(icaltimezone *zone);
-
-/** Returns the city name of a timezone. */
-const char*	icaltimezone_get_location		(icaltimezone *zone);
-
-/** Returns the TZNAME properties used in the latest STANDARD and DAYLIGHT
-   components. If they are the same it will return just one, e.g. "LMT".
-   If they are different it will format them like "EST/EDT". Note that this
-   may also return NULL. */
-const char*	icaltimezone_get_tznames		(icaltimezone *zone);
-
-/** Returns the latitude of a builtin timezone. */
-double	icaltimezone_get_latitude		(icaltimezone *zone);
-
-/** Returns the longitude of a builtin timezone. */
-double	icaltimezone_get_longitude		(icaltimezone *zone);
-
-/** Returns the VTIMEZONE component of a timezone. */
-icalcomponent*	icaltimezone_get_component	(icaltimezone *zone);
-
-/** Sets the VTIMEZONE component of an icaltimezone, initializing the tzid,
-   location & tzname fields. It returns 1 on success or 0 on failure, i.e.
-   no TZID was found. */
-int	icaltimezone_set_component		(icaltimezone *zone,
-						 icalcomponent	*comp);
-
-/**
- * @par Converting times between timezones.
- */
-
-void	icaltimezone_convert_time		(struct icaltimetype *tt,
-						 icaltimezone *from_zone,
-						 icaltimezone *to_zone);
-
-
-/**
- * @par Getting offsets from UTC.
- */
-
-/** Calculates the UTC offset of a given local time in the given
-   timezone.  It is the number of seconds to add to UTC to get local
-   time.  The is_daylight flag is set to 1 if the time is in
-   daylight-savings time. */
-int icaltimezone_get_utc_offset	(icaltimezone *zone,
-				 struct icaltimetype *tt,
-				 int		*is_daylight);
-
-/** Calculates the UTC offset of a given UTC time in the given
-   timezone.  It is the number of seconds to add to UTC to get local
-   time.  The is_daylight flag is set to 1 if the time is in
-   daylight-savings time. */
-int	icaltimezone_get_utc_offset_of_utc_time	(icaltimezone *zone,
-						 struct icaltimetype *tt,
-						 int		*is_daylight);
-
-
-
-/*
- * Handling arrays of timezones. Mainly for internal use.
- */
-icalarray*  icaltimezone_array_new		(void);
-
-void	    icaltimezone_array_append_from_vtimezone (icalarray	    *timezones,
-						      icalcomponent *child);
-void	    icaltimezone_array_free		(icalarray	*timezones);
-
-
-/*
- * @par Handling the default location the timezone files
- */
-
-/** Set the directory to look for the zonefiles */
-void set_zone_directory(char *path);
-
-/** Free memory dedicated to the zonefile directory */
-void free_zone_directory(void);
-
-/*
- * @par Debugging Output.
- */
-
-/** Dumps information about changes in the timezone up to and including
-   max_year. */
-int	icaltimezone_dump_changes		(icaltimezone *zone,
-						 int		 max_year,
-						 FILE		*fp);
-
-#endif /* ICALTIMEZONE_H */
diff --git a/libkcal/libical/src/libical/icaltypes.c b/libkcal/libical/src/libical/icaltypes.c
deleted file mode 100644
index 6797e04d..00000000
--- a/libkcal/libical/src/libical/icaltypes.c
+++ /dev/null
@@ -1,190 +0,0 @@
-/* -*- Mode: C -*-
-  ======================================================================
-  FILE: icaltypes.c
-  CREATOR: eric 16 May 1999
-  
-    
-
- (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
-     http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-  The original code is icaltypes.c
-
- ======================================================================*/
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "icaltypes.h"
-#include "icalerror.h"
-#include "icalmemory.h"
-#include <stdlib.h> /* for malloc and abs() */
-#include <errno.h> /* for errno */
-#include <string.h> /* for icalmemory_strdup */
-#include <assert.h>
-
-#ifdef WIN32
-#define snprintf      _snprintf
-#define strcasecmp    stricmp
-#endif
-
-#define TEMP_MAX 1024
-
-
-int icaltriggertype_is_null_trigger(struct icaltriggertype tr)
-{
-    if(icaltime_is_null_time(tr.time) && 
-       icaldurationtype_is_null_duration(tr.duration)){
-        return 1;
-    }
-
-    return 0;
-}
-    
-int icaltriggertype_is_bad_trigger(struct icaltriggertype tr)
-{
-    if(icaldurationtype_is_bad_duration(tr.duration)){
-        return 1;
-    }
-
-    return 0;
-}
-
-struct icaltriggertype icaltriggertype_from_int(const int reltime)
-{
-    struct icaltriggertype tr;
-
-    tr.time	= icaltime_null_time();
-    tr.duration = icaldurationtype_from_int(reltime);
-
-    return tr;
-}
-
-struct icaltriggertype icaltriggertype_from_string(const char* str)
-{
-
-    
-    struct icaltriggertype tr, null_tr;
-    icalerrorstate es = ICAL_ERROR_UNKNOWN;
-    icalerrorenum e;
-
-    tr.time= icaltime_null_time();
-    tr.duration = icaldurationtype_from_int(0);
-
-    null_tr = tr;
-
-
-    /* Suppress errors so a failure in icaltime_from_string() does not cause an abort */
-    es = icalerror_get_error_state(ICAL_MALFORMEDDATA_ERROR);
-    if(str == 0) goto error;
-    icalerror_set_error_state(ICAL_MALFORMEDDATA_ERROR,ICAL_ERROR_NONFATAL);
-    e = icalerrno;
-    icalerror_set_errno(ICAL_NO_ERROR);
-
-    tr.time = icaltime_from_string(str);
-
-    if (icaltime_is_null_time(tr.time)){
-
-	tr.duration = icaldurationtype_from_string(str);
-
-        if (icaldurationtype_is_bad_duration(tr.duration)) goto error;
-    } 
-
-    icalerror_set_error_state(ICAL_MALFORMEDDATA_ERROR,es);
-    icalerror_set_errno(e);
-    return tr;
-
- error:
-    icalerror_set_error_state(ICAL_MALFORMEDDATA_ERROR,es);
-    icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-    return tr;
-
-}
-
-
-struct icalreqstattype icalreqstattype_from_string(const char* str)
-{
-  const char *p1,*p2;
-  struct icalreqstattype stat;
-  short major=0, minor=0;
-
-  icalerror_check_arg((str != 0),"str");
-
-  stat.code = ICAL_UNKNOWN_STATUS;
-  stat.debug = 0; 
-   stat.desc = 0;
-
-  /* Get the status numbers */
-
-  sscanf(str, "%hd.%hd",&major, &minor);
-
-  if (major <= 0 || minor < 0){
-    icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-    return stat;
-  }
-
-  stat.code = icalenum_num_to_reqstat(major, minor);
-
-  if (stat.code == ICAL_UNKNOWN_STATUS){
-    icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-    return stat;
-  }
-  
-
-  p1 = strchr(str,';');
-
-  if (p1 == 0){
-/*    icalerror_set_errno(ICAL_BADARG_ERROR);*/
-    return stat;
-  }
-
-  /* Just ignore the second clause; it will be taken from inside the library 
-   */
-
-
-
-  p2 = strchr(p1+1,';');
-  if (p2 != 0 && *p2 != 0){
-    stat.debug = p2+1;
-  } 
-
-  return stat;
-  
-}
-
-const char* icalreqstattype_as_string(struct icalreqstattype stat)
-{
-  char *temp;
-
-  temp = (char*)icalmemory_tmp_buffer(TEMP_MAX);
-
-  icalerror_check_arg_rz((stat.code != ICAL_UNKNOWN_STATUS),"Status");
-  
-  if (stat.desc == 0){
-    stat.desc = icalenum_reqstat_desc(stat.code);
-  }
-  
-  if(stat.debug != 0){
-    snprintf(temp,TEMP_MAX,"%d.%d;%s;%s", icalenum_reqstat_major(stat.code),
-             icalenum_reqstat_minor(stat.code),
-             stat.desc, stat.debug);
-    
-  } else {
-    snprintf(temp,TEMP_MAX,"%d.%d;%s", icalenum_reqstat_major(stat.code),
-             icalenum_reqstat_minor(stat.code),
-             stat.desc);
-  }
-
-  return temp;
-}
diff --git a/libkcal/libical/src/libical/icaltypes.h b/libkcal/libical/src/libical/icaltypes.h
deleted file mode 100644
index a89069d5..00000000
--- a/libkcal/libical/src/libical/icaltypes.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/* -*- Mode: C -*- */
-/*======================================================================
- FILE: icaltypes.h
- CREATOR: eric 20 March 1999
-
-
- (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
-     http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-  The original code is icaltypes.h
-
-======================================================================*/
-
-#ifndef ICALTYPES_H
-#define ICALTYPES_H
-
-#include <time.h>
-#include "icalenums.h"
-#include "icaltime.h"
-#include "icalduration.h"
-#include "icalperiod.h"
-
-
-struct icalgeotype 
-{
-	float lat;
-	float lon;
-};
-
-
-struct icaldatetimeperiodtype 
-{
-	struct icaltimetype time;
-	struct icalperiodtype period;
-};
-
-
-struct icaltriggertype 
-{
-	struct icaltimetype time; 
-	struct icaldurationtype duration;
-};
-
-struct icaltriggertype icaltriggertype_from_int(const int reltime);
-struct icaltriggertype icaltriggertype_from_string(const char* str);
-
-int icaltriggertype_is_null_trigger(struct icaltriggertype tr);
-int icaltriggertype_is_bad_trigger(struct icaltriggertype tr);
-
-/* struct icalreqstattype. This struct contains two string pointers,
-but don't try to free either of them. The "desc" string is a pointer
-to a static table inside the library.  Don't try to free it. The
-"debug" string is a pointer into the string that the called passed
-into to icalreqstattype_from_string. Don't try to free it either, and
-don't use it after the original string has been freed.
-
-BTW, you would get that original string from
-*icalproperty_get_requeststatus() or icalvalue_get_text(), when
-operating on a the value of a request_status property. */
-
-struct icalreqstattype {
-
-	icalrequeststatus code;
-	const char* desc;
-	const char* debug;
-};
-
-struct icalreqstattype icalreqstattype_from_string(const char* str);
-const char* icalreqstattype_as_string(struct icalreqstattype);
-
-
-
-struct icaltimezonephase {
-    const char* tzname;
-    int is_stdandard; /* 1 = standard tme, 0 = daylight savings time */
-    struct icaltimetype dtstart;
-    int offsetto;
-    int tzoffsetfrom;
-    const char* comment;
-    struct icaldatetimeperiodtype rdate;
-    const char* rrule;    
-};
-
-
-struct icaltimezonetype {
-    const char* tzid;
-    struct icaltimetype last_mod;
-    const char* tzurl;
-    
-    /* Array of phases. The end of the array is a phase with tzname == 0 */
-    struct icaltimezonephase *phases;
-};
-
-void icaltimezonetype_free(struct icaltimezonetype tzt);
-
-
-#endif /* !ICALTYPES_H */
diff --git a/libkcal/libical/src/libical/icalvalue.c b/libkcal/libical/src/libical/icalvalue.c
deleted file mode 100644
index 4166d56a..00000000
--- a/libkcal/libical/src/libical/icalvalue.c
+++ /dev/null
@@ -1,1326 +0,0 @@
-/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/* vi:set ts=4 sts=4 sw=4 expandtab : */
-/*======================================================================
-  FILE: icalvalue.c
-  CREATOR: eric 02 May 1999
-  
-
-
- (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
-     http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-  The original code is icalvalue.c
-
-  Contributions from:
-     Graham Davison <g.m.davison@computer.org>
-
-
-======================================================================*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "icalerror.h"
-#include "icalmemory.h"
-#include "icalparser.h"
-#include "icalenums.h"
-#include "icalvalueimpl.h"
-
-#include <stdlib.h> /* for malloc */
-#include <stdio.h> /* for snprintf */
-#include <string.h> /* For memset, others */
-#include <stddef.h> /* For offsetof() macro */
-#include <errno.h>
-#include <time.h> /* for mktime */
-#include <stdlib.h> /* for atoi and atof */
-#include <limits.h> /* for SHRT_MAX */         
-
-#ifdef WIN32
-#define snprintf      _snprintf
-#define strcasecmp    stricmp
-#endif
-
-#ifdef _MAC_OS_
-#include "icalmemory_strdup.h"
-#endif
-
-#define TMP_BUF_SIZE 1024
-
-void print_datetime_to_string(char* str,  const struct icaltimetype *data);
-void print_date_to_string(char* str,  const struct icaltimetype *data);
-void print_time_to_string(char* str,  const struct icaltimetype *data);
-
-
-struct icalvalue_impl*  icalvalue_new_impl(icalvalue_kind kind){
-
-    struct icalvalue_impl* v;
-
-    if (!icalvalue_kind_is_valid(kind))
-      return NULL;
-
-    if ( ( v = (struct icalvalue_impl*)
-	   malloc(sizeof(struct icalvalue_impl))) == 0) {
-	icalerror_set_errno(ICAL_NEWFAILED_ERROR);
-	return 0;
-    }
-    
-    strcpy(v->id,"val");
-    
-    v->kind = kind;
-    v->size = 0;
-    v->parent = 0;
-    v->x_value = 0;
-    memset(&(v->data),0,sizeof(v->data));
-    
-    return v;
-
-}
-
-
-
-icalvalue*
-icalvalue_new (icalvalue_kind kind)
-{
-    return (icalvalue*)icalvalue_new_impl(kind);
-}
-
-icalvalue* icalvalue_new_clone(const icalvalue* old) {
-    struct icalvalue_impl* new;
-
-    new = icalvalue_new_impl(old->kind);
-
-    if (new == 0){
-	return 0;
-    }
-
-    strcpy(new->id, old->id);
-    new->kind = old->kind;
-    new->size = old->size;
-
-    switch (new->kind){
-	case ICAL_ATTACH_VALUE: 
-	case ICAL_BINARY_VALUE: 
-	{
-	    /* Hmm.  We just ref the attach value, which may not be the right
-	     * thing to do.  We cannot quite copy the data, anyways, since we
-	     * don't know how long it is.
-	     */
-	    new->data.v_attach = old->data.v_attach;
-	    if (new->data.v_attach)
-		icalattach_ref (new->data.v_attach);
-
-	    break;
-	}
-	case ICAL_QUERY_VALUE:
-	case ICAL_STRING_VALUE:
-	case ICAL_TEXT_VALUE:
-	case ICAL_CALADDRESS_VALUE:
-	case ICAL_URI_VALUE:
-	{
-	    if (old->data.v_string != 0) { 
-		new->data.v_string=icalmemory_strdup(old->data.v_string);
-
-		if ( new->data.v_string == 0 ) {
-		    return 0;
-		}		    
-
-	    }
-	    break;
-	}
-	case ICAL_RECUR_VALUE:
-	{
-	    if(old->data.v_recur != 0){
-		new->data.v_recur = malloc(sizeof(struct icalrecurrencetype));
-
-		if(new->data.v_recur == 0){
-		    return 0;
-		}
-
-		memcpy(	new->data.v_recur, old->data.v_recur,
-			sizeof(struct icalrecurrencetype));	
-	    }
-	    break;
-	}
-
-	case ICAL_X_VALUE: 
-	{
-	    if (old->x_value != 0) {
-		new->x_value=icalmemory_strdup(old->x_value);
-
-		if (new->x_value == 0) {
-		    return 0;
-		}
-	    }
-
-	    break;
-	}
-
-	default:
-	{
-	    /* all of the other types are stored as values, not
-               pointers, so we can just copy the whole structure. */
-
-	    new->data = old->data;
-	}
-    }
-
-    return new;
-}
-
-static char* icalmemory_strdup_and_dequote(const char* str)
-{
-    const char* p;
-    char* out = (char*)malloc(sizeof(char) * strlen(str) +1);
-    char* pout;
-
-    if (out == 0){
-	return 0;
-    }
-
-    pout = out;
-
-    for (p = str; *p!=0; p++){
-	
-	if( *p == '\\')
-	{
-	    p++;
-	    switch(*p){
-		case 0:
-		{
-		    *pout = '\0';
-		    break;
-
-		}
-		case 'n':
-		case 'N':
-		{
-		    *pout = '\n';
-		    break;
-		}
-		case 't':
-		case 'T':
-		{
-		    *pout = '\t';
-		    break;
-		}
-		case 'r':
-		case 'R':
-		{
-		    *pout = '\r';
-		    break;
-		}
-		case 'b':
-		case 'B':
-		{
-		    *pout = '\b';
-		    break;
-		}
-		case 'f':
-		case 'F':
-		{
-		    *pout = '\f';
-		    break;
-		}
-		case ';':
-		case ',':
-		case '"':
-		case '\\':
-		{
-		    *pout = *p;
-		    break;
-		}
-		default:
-		{
-		    *pout = ' ';
-		}		
-	    }
-	} else {
-	    *pout = *p;
-	}
-
-	pout++;
-	
-    }
-
-    *pout = '\0';
-
-    return out;
-}
-
-/*
- * FIXME
- *
- * This is a bad API, as it forces callers to specify their own X type.
- * This function should take care of this by itself.
- */
-static
-icalvalue* icalvalue_new_enum(icalvalue_kind kind, int x_type, const char* str)
-{
-    int e = icalproperty_kind_and_string_to_enum(kind, str);
-    struct icalvalue_impl *value; 
-
-    if(e != 0 && icalproperty_enum_belongs_to_property(
-                   icalproperty_value_kind_to_kind(kind),e)) {
-        
-        value = icalvalue_new_impl(kind);
-        value->data.v_enum = e;
-    } else {
-        /* Make it an X value */
-        value = icalvalue_new_impl(kind);
-        value->data.v_enum = x_type;
-        icalvalue_set_x(value,str);
-    }
-
-    return value;
-}
-
-
-icalvalue* icalvalue_new_from_string_with_error(icalvalue_kind kind,const char* str,icalproperty** error)
-{
-
-    struct icalvalue_impl *value = 0;
-
-    icalerror_check_arg_rz(str!=0,"str");
-
-    if (error != 0){
-	*error = 0;
-    }
-
-    switch (kind){
-	
-    case ICAL_ATTACH_VALUE:
-	{
-	    icalattach *attach;
-
-	    attach = icalattach_new_from_url (str);
-	    if (!attach)
-		break;
-
-	    value = icalvalue_new_attach (attach);
-	    icalattach_unref (attach);
-	    break;
-	}
-
-    case ICAL_BINARY_VALUE:
-    {
-        icalattach *attach;
-        attach = icalattach_new_from_data (str, 0, 0);
-        if ( !attach )
-          break;
-        value = icalvalue_new_attach (attach);
-        icalattach_unref (attach);
-        break;
-    }
-    case ICAL_BOOLEAN_VALUE:
-        {
-            /* HACK */
-            value = 0;
-            
-	    if (error != 0){
-		char temp[TMP_BUF_SIZE];
-		snprintf(temp,sizeof(temp),"%s Values are not implemented",
-                        icalvalue_kind_to_string(kind)); 
-		*error = icalproperty_vanew_xlicerror( 
-                                   temp, 
-                                   icalparameter_new_xlicerrortype( 
-                                        ICAL_XLICERRORTYPE_VALUEPARSEERROR), 
-                                   0); 
-	    }
-	    break;
-	}
-        
-
-    case ICAL_TRANSP_VALUE:
-        value = icalvalue_new_enum(kind, (int)ICAL_TRANSP_X,str);
-        break;
-    case ICAL_METHOD_VALUE:
-        value = icalvalue_new_enum(kind, (int)ICAL_METHOD_X,str);
-        break;
-    case ICAL_STATUS_VALUE:
-        value = icalvalue_new_enum(kind, (int)ICAL_STATUS_X,str);
-        break;
-    case ICAL_ACTION_VALUE:
-        value = icalvalue_new_enum(kind, (int)ICAL_ACTION_X,str);
-        break;
-
-    case ICAL_QUERY_VALUE:
-	    value = icalvalue_new_query(str);
-	    break;
-
-    case ICAL_CLASS_VALUE:
-        value = icalvalue_new_enum(kind, (int)ICAL_CLASS_X,str);
-        break;
-
-
-    case ICAL_INTEGER_VALUE:
-	    value = icalvalue_new_integer(atoi(str));
-	    break;
-
-    case ICAL_FLOAT_VALUE:
-	    value = icalvalue_new_float((float)atof(str));
-	    break;
-
-    case ICAL_UTCOFFSET_VALUE:
-	{
-            int t,utcoffset, hours, minutes, seconds;
-            /* treat the UTCOFSET string a a decimal number, disassemble its digits
-               and reconstruct it as sections */
-            t = strtol(str,0,10);
-            /* add phantom seconds field */
-            if(abs(t)<9999){t *= 100; }
-            hours = (t/10000);
-            minutes = (t-hours*10000)/100;
-            seconds = (t-hours*10000-minutes*100);
-            utcoffset = hours*3600+minutes*60+seconds;
-
-	    value = icalvalue_new_utcoffset(utcoffset);
-
-	    break;
-	}
-        
-    case ICAL_TEXT_VALUE:
-	{
-	    char* dequoted_str = icalmemory_strdup_and_dequote(str);
-	    value = icalvalue_new_text(dequoted_str);
-	    free(dequoted_str);
-	    break;
-	}
-        
-    case ICAL_STRING_VALUE:
-	    value = icalvalue_new_string(str);
-	    break;
-        
-    case ICAL_CALADDRESS_VALUE:
-	    value = icalvalue_new_caladdress(str);
-	    break;
-        
-    case ICAL_URI_VALUE:
-	    value = icalvalue_new_uri(str);
-	    break;
-        
-    case ICAL_GEO_VALUE:
-	    value = 0;
-	    /* HACK */
-            
-	    if (error != 0){
-		char temp[TMP_BUF_SIZE];
-		strcpy(temp,"GEO Values are not implemented");
-		*error = icalproperty_vanew_xlicerror( 
-		    temp, 
-		    icalparameter_new_xlicerrortype( 
-			ICAL_XLICERRORTYPE_VALUEPARSEERROR), 
-		    0); 
-	    }
-
-	    /*icalerror_warn("Parsing GEO properties is unimplmeneted");*/
-
-	    break;
-        
-    case ICAL_RECUR_VALUE:
-	{
-	    struct icalrecurrencetype rt;
-	    rt = icalrecurrencetype_from_string(str);
-            if(rt.freq != ICAL_NO_RECURRENCE){
-                value = icalvalue_new_recur(rt);
-            }
-	    break;
-	}
-        
-    case ICAL_DATE_VALUE:
-    case ICAL_DATETIME_VALUE:
-	{
-	    struct icaltimetype tt;
-      
-	    tt = icaltime_from_string(str);
-            if(!icaltime_is_null_time(tt)){
-                value = icalvalue_new_impl(kind);
-                value->data.v_time = tt;
-
-                icalvalue_reset_kind(value);
-            }
-	    break;
-	}
-        
-    case ICAL_DATETIMEPERIOD_VALUE:
-	{
-	    struct icaltimetype tt;
-            struct icalperiodtype p;
-            tt = icaltime_from_string(str);
-
-            if(!icaltime_is_null_time(tt)){
-                value = icalvalue_new_datetime(tt);		
-		break;
-            }  
-	    
-            p = icalperiodtype_from_string(str);	    
-	    if (!icalperiodtype_is_null_period(p)){
-                value = icalvalue_new_period(p);
-            }            
-
-            break;
-	}
-        
-    case ICAL_DURATION_VALUE:
-	{
-            struct icaldurationtype dur = icaldurationtype_from_string(str);
-            
-            if (!icaldurationtype_is_bad_duration(dur)) {    /* failed to parse */
-                value = icalvalue_new_duration(dur);
-            }
-            
-	    break;
-	}
-        
-    case ICAL_PERIOD_VALUE:
-	{
-            struct icalperiodtype p;
-            p = icalperiodtype_from_string(str);  
-            
-            if(!icalperiodtype_is_null_period(p)){
-                value = icalvalue_new_period(p);
-            }
-            break; 
-	}
-	
-    case ICAL_TRIGGER_VALUE:
-	{
-	    struct icaltriggertype tr = icaltriggertype_from_string(str);
-            if (!icaltriggertype_is_bad_trigger(tr)) {
-                value = icalvalue_new_trigger(tr);
-            }
-	    break;
-	}
-        
-    case ICAL_REQUESTSTATUS_VALUE:
-        {
-            struct icalreqstattype rst = icalreqstattype_from_string(str);
-            if(rst.code != ICAL_UNKNOWN_STATUS){
-                value = icalvalue_new_requeststatus(rst);
-            }
-            break;
-
-        }
-
-    case ICAL_X_VALUE:
-        {
-            char* dequoted_str = icalmemory_strdup_and_dequote(str);
-            value = icalvalue_new_x(dequoted_str);
-            free(dequoted_str);
-        }
-        break;
-
-    default:
-        {
-            if (error != 0 ){
-		char temp[TMP_BUF_SIZE];
-                
-                snprintf(temp,TMP_BUF_SIZE,"Unknown type for \'%s\'",str);
-			    
-		*error = icalproperty_vanew_xlicerror( 
-		    temp, 
-		    icalparameter_new_xlicerrortype( 
-			ICAL_XLICERRORTYPE_VALUEPARSEERROR), 
-		    0); 
-	    }
-
-	    icalerror_warn("icalvalue_new_from_string got an unknown value type");
-            value=0;
-	}
-    }
-
-
-    if (error != 0 && *error == 0 && value == 0){
-	char temp[TMP_BUF_SIZE];
-	
-        snprintf(temp,TMP_BUF_SIZE,"Failed to parse value: \'%s\'",str);
-	
-	*error = icalproperty_vanew_xlicerror( 
-	    temp, 
-	    icalparameter_new_xlicerrortype( 
-		ICAL_XLICERRORTYPE_VALUEPARSEERROR), 
-	    0); 
-    }
-
-
-    return value;
-
-}
-
-icalvalue* icalvalue_new_from_string(icalvalue_kind kind,const char* str)
-{
-    return icalvalue_new_from_string_with_error(kind,str,(icalproperty**)0);
-}
-
-
-
-void
-icalvalue_free (icalvalue* v)
-{
-    icalerror_check_arg_rv((v != 0),"value");
-
-#ifdef ICAL_FREE_ON_LIST_IS_ERROR
-    icalerror_assert( (v->parent ==0),"This value is still attached to a property");
-    
-#else
-    if(v->parent !=0){
-	return;
-    }
-#endif
-
-    if(v->x_value != 0){
-        free(v->x_value);
-    }
-
-    switch (v->kind){
-	case ICAL_BINARY_VALUE: 
-	case ICAL_ATTACH_VALUE: {
-	    if (v->data.v_attach) {
-		icalattach_unref (v->data.v_attach);
-		v->data.v_attach = NULL;
-	    }
-
-	    break;
-	}
-	case ICAL_TEXT_VALUE:
-	case ICAL_CALADDRESS_VALUE:
-	case ICAL_URI_VALUE:
-	case ICAL_QUERY_VALUE:
-	{
-	    if (v->data.v_string != 0) { 
-		free((void*)v->data.v_string);
-		v->data.v_string = 0;
-	    }
-	    break;
-	}
-	case ICAL_RECUR_VALUE:
-	{
-	    if(v->data.v_recur != 0){
-		free((void*)v->data.v_recur);
-		v->data.v_recur = 0;
-	    }
-	    break;
-	}
-
-	default:
-	{
-	    /* Nothing to do */
-	}
-    }
-
-    v->kind = ICAL_NO_VALUE;
-    v->size = 0;
-    v->parent = 0;
-    memset(&(v->data),0,sizeof(v->data));
-    v->id[0] = 'X';
-    free(v);
-}
-
-int
-icalvalue_is_valid (const icalvalue* value)
-{
-    if(value == 0){
-	return 0;
-    }
-    
-    return 1;
-}
-
-static char* icalvalue_binary_as_ical_string(const icalvalue* value) {
-
-    const char* data;
-    char* str;
-    icalerror_check_arg_rz( (value!=0),"value");
-
-    data = icalvalue_get_binary(value);
-
-    str = (char*)icalmemory_tmp_buffer(60);
-    strcpy(str,"icalvalue_binary_as_ical_string is not implemented yet");
-
-    return str;
-}
-
-
-#define MAX_INT_DIGITS 12 /* Enough for 2^32 + sign*/ 
-    
-static char* icalvalue_int_as_ical_string(const icalvalue* value) {
-    int data;
-    char* str = (char*)icalmemory_tmp_buffer(MAX_INT_DIGITS); 
-
-    icalerror_check_arg_rz( (value!=0),"value");
-
-    data = icalvalue_get_integer(value);
-	
-    snprintf(str,MAX_INT_DIGITS,"%d",data);
-
-    return str;
-}
-
-static char* icalvalue_utcoffset_as_ical_string(const icalvalue* value)
-{    
-    int data,h,m,s;
-    char sign;
-    char* str = (char*)icalmemory_tmp_buffer(9);
-
-    icalerror_check_arg_rz( (value!=0),"value");
-
-    data = icalvalue_get_utcoffset(value);
-
-    if (abs(data) == data){
-	sign = '+';
-    } else {
-	sign = '-';
-    }
-
-    h = data/3600;
-    m = (data - (h*3600))/ 60;
-    s = (data - (h*3600) - (m*60));
-
-    if (s > 0)
-    snprintf(str,9,"%c%02d%02d%02d",sign,abs(h),abs(m),abs(s));
-    else
-    snprintf(str,9,"%c%02d%02d",sign,abs(h),abs(m));
-
-    return str;
-}
-
-static char* icalvalue_string_as_ical_string(const icalvalue* value) {
-
-    const char* data;
-    char* str = 0;
-    icalerror_check_arg_rz( (value!=0),"value");
-    data = value->data.v_string;
-
-    str = (char*)icalmemory_tmp_buffer(strlen(data)+1);   
-
-    strcpy(str,data);
-
-    return str;
-}
-
-
-static char* icalvalue_recur_as_ical_string(const icalvalue* value) 
-{
-    struct icalrecurrencetype *recur = value->data.v_recur;
-
-    return icalrecurrencetype_as_string(recur);
-}
-
- /* @todo This is not RFC2445 compliant.
- * The RFC only allows:
- * TSAFE-CHAR = %x20-21 / %x23-2B / %x2D-39 / %x3C-5B / %x5D-7E / NON-US-ASCII
- * As such, \t\r\b\f are not allowed, not even escaped
- */
-
-static char* icalvalue_text_as_ical_string(const icalvalue* value) {
-    char *str;
-    char *str_p;
-    char *rtrn;
-    const char *p;
-    size_t buf_sz;
-
-    buf_sz = strlen(value->data.v_string)+1;
-
-    str_p = str = (char*)icalmemory_new_buffer(buf_sz);
-
-    if (str_p == 0){
-      return 0;
-    }
-
-    for(p=value->data.v_string; *p!=0; p++){
-
-	switch(*p){
-	    case '\n': {
-		icalmemory_append_string(&str,&str_p,&buf_sz,"\\n");
-		break;
-	    }
-
-	    case '\t': {
-		icalmemory_append_string(&str,&str_p,&buf_sz,"\\t");
-		break;
-	    }
-	    case '\r': {
-		icalmemory_append_string(&str,&str_p,&buf_sz,"\\r");
-		break;
-	    }
-	    case '\b': {
-		icalmemory_append_string(&str,&str_p,&buf_sz,"\\b");
-		break;
-	    }
-	    case '\f': {
-		icalmemory_append_string(&str,&str_p,&buf_sz,"\\f");
-		break;
-	    }
-
-	    case ';':
-	    case ',':
-	    case '"':
-	    case '\\':{
-		icalmemory_append_char(&str,&str_p,&buf_sz,'\\');
-		icalmemory_append_char(&str,&str_p,&buf_sz,*p);
-		break;
-	    }
-
-	    default: {
-		icalmemory_append_char(&str,&str_p,&buf_sz,*p);
-	    }
-	}
-    }
-
-    /* Assume the last character is not a '\0' and add one. We could
-       check *str_p != 0, but that would be an uninitialized memory
-       read. */
-
-
-    icalmemory_append_char(&str,&str_p,&buf_sz,'\0');
-
-    rtrn = icalmemory_tmp_copy(str);
-
-    icalmemory_free_buffer(str);
-
-    return rtrn;
-}
-
-
-static char* 
-icalvalue_attach_as_ical_string(const icalvalue* value) 
-{
-    icalattach *a;
-    char * str;
-
-    icalerror_check_arg_rz( (value!=0),"value");
-
-    a = icalvalue_get_attach(value);
-
-    if (icalattach_get_is_url (a)) {
-	const char *url;
-
-	url = icalattach_get_url (a);
-	str = icalmemory_tmp_buffer (strlen (url) + 1);
-	strcpy (str, url);
-	return str;
-    } else {
-/* 	return icalvalue_binary_as_ical_string (value);*/
-      const char *data = 0;
-      data = (const char*)icalattach_get_data(a);
-      str = icalmemory_tmp_buffer (strlen (data) + 1);
-      strcpy (str, data);
-      return str;
-}
-}
-
-
-static char* icalvalue_duration_as_ical_string(const icalvalue* value) {
-
-    struct icaldurationtype data;
-
-    icalerror_check_arg_rz( (value!=0),"value");
-    data = icalvalue_get_duration(value);
-
-    return icaldurationtype_as_ical_string(data);
-}
-
-void print_time_to_string(char* str, const struct icaltimetype *data)
-{
-    char temp[20];
-
-    if (icaltime_is_utc(*data)){
-    snprintf(temp,sizeof(temp),"%02d%02d%02dZ",data->hour,data->minute,data->second);
-    } else {
-    snprintf(temp,sizeof(temp),"%02d%02d%02d",data->hour,data->minute,data->second);
-    }   
-
-    strcat(str,temp);
-}
-
- 
-void print_date_to_string(char* str,  const struct icaltimetype *data)
-{
-    char temp[20];
-
-    snprintf(temp,sizeof(temp),"%04d%02d%02d",data->year,data->month,data->day);
-
-    strcat(str,temp);
-}
-
-static char* icalvalue_date_as_ical_string(const icalvalue* value) {
-
-    struct icaltimetype data;
-    char* str;
-    icalerror_check_arg_rz( (value!=0),"value");
-    data = icalvalue_get_date(value);
-
-    str = (char*)icalmemory_tmp_buffer(9);
- 
-    str[0] = 0;
-    print_date_to_string(str,&data);
-   
-    return str;
-}
-
-void print_datetime_to_string(char* str,  const struct icaltimetype *data)
-{
-    print_date_to_string(str,data);
-    if ( !data->is_date ) {
-        strcat(str,"T");
-        print_time_to_string(str,data);
-    }
-}
-
-static const char* icalvalue_datetime_as_ical_string(const icalvalue* value) {
-    
-    struct icaltimetype data;
-    char* str;
-    icalvalue_kind kind = icalvalue_isa(value);    
-
-    icalerror_check_arg_rz( (value!=0),"value");
-
-
-    if( !(kind == ICAL_DATE_VALUE || kind == ICAL_DATETIME_VALUE ))
-	{
-	    icalerror_set_errno(ICAL_BADARG_ERROR);
-	    return 0;
-	}
-
-    data = icalvalue_get_datetime(value);
-
-    str = (char*)icalmemory_tmp_buffer(20);
- 
-    str[0] = 0;
-
-    print_datetime_to_string(str,&data);
-   
-    return str;
-
-}
-
-static char* icalvalue_float_as_ical_string(const icalvalue* value) {
-
-    float data;
-    char* str;
-    icalerror_check_arg_rz( (value!=0),"value");
-    data = icalvalue_get_float(value);
-
-    str = (char*)icalmemory_tmp_buffer(40);
-
-    snprintf(str,40,"%f",data);
-
-    return str;
-}
-
-static char* icalvalue_geo_as_ical_string(const icalvalue* value) {
-
-    struct icalgeotype data;
-    char* str;
-    icalerror_check_arg_rz( (value!=0),"value");
-
-    data = icalvalue_get_geo(value);
-
-    str = (char*)icalmemory_tmp_buffer(80);
-
-    snprintf(str,80,"%f;%f",data.lat,data.lon);
-
-    return str;
-}
-
-static const char* icalvalue_datetimeperiod_as_ical_string(const icalvalue* value) {
-    struct icaldatetimeperiodtype dtp = icalvalue_get_datetimeperiod(value);
-
-    icalerror_check_arg_rz( (value!=0),"value");
-
-    if(!icaltime_is_null_time(dtp.time)){
-	return icaltime_as_ical_string(dtp.time);
-    } else {
-	return icalperiodtype_as_ical_string(dtp.period);
-    }
-}
-
-static const char* icalvalue_period_as_ical_string(const icalvalue* value) {
-    struct icalperiodtype data;
-    icalerror_check_arg_rz( (value!=0),"value");
-    data = icalvalue_get_period(value);
-
-    return icalperiodtype_as_ical_string(data);
-
-}
-
-static const char* icalvalue_trigger_as_ical_string(const icalvalue* value) {
-
-    struct icaltriggertype data;
-
-    icalerror_check_arg_rz( (value!=0),"value");
-    data = icalvalue_get_trigger(value);
-
-    if(!icaltime_is_null_time(data.time)){
-	return icaltime_as_ical_string(data.time);
-    } else {
-	return icaldurationtype_as_ical_string(data.duration);
-    }   
-
-}
-
-const char*
-icalvalue_as_ical_string(const icalvalue* value)
-{
-    if(value == 0){
-	return 0;
-    }
-
-    switch (value->kind){
-
-    case ICAL_ATTACH_VALUE:
-        return icalvalue_attach_as_ical_string(value);
-        
-    case ICAL_BINARY_VALUE:
-        return icalvalue_binary_as_ical_string(value);
-        
-    case ICAL_BOOLEAN_VALUE:
-    case ICAL_INTEGER_VALUE:
-        return icalvalue_int_as_ical_string(value);                  
-        
-    case ICAL_UTCOFFSET_VALUE:
-        return icalvalue_utcoffset_as_ical_string(value);                  
-        
-    case ICAL_TEXT_VALUE:
-        return icalvalue_text_as_ical_string(value);
-        
-    case ICAL_QUERY_VALUE:
-        return icalvalue_string_as_ical_string(value);
-        
-    case ICAL_STRING_VALUE:
-    case ICAL_URI_VALUE:
-    case ICAL_CALADDRESS_VALUE:
-        return icalvalue_string_as_ical_string(value);
-        
-    case ICAL_DATE_VALUE:
-        return icalvalue_date_as_ical_string(value);
-    case ICAL_DATETIME_VALUE:
-        return icalvalue_datetime_as_ical_string(value);
-    case ICAL_DURATION_VALUE:
-        return icalvalue_duration_as_ical_string(value);
-        
-    case ICAL_PERIOD_VALUE:
-        return icalvalue_period_as_ical_string(value);
-    case ICAL_DATETIMEPERIOD_VALUE:
-        return icalvalue_datetimeperiod_as_ical_string(value);
-        
-    case ICAL_FLOAT_VALUE:
-        return icalvalue_float_as_ical_string(value);
-        
-    case ICAL_GEO_VALUE:
-        return icalvalue_geo_as_ical_string(value);
-        
-    case ICAL_RECUR_VALUE:
-        return icalvalue_recur_as_ical_string(value);
-        
-    case ICAL_TRIGGER_VALUE:
-        return icalvalue_trigger_as_ical_string(value);
-
-    case ICAL_REQUESTSTATUS_VALUE:
-        return icalreqstattype_as_string(value->data.v_requeststatus);
-        
-    case ICAL_ACTION_VALUE:
-    case ICAL_METHOD_VALUE:
-    case ICAL_STATUS_VALUE:
-    case ICAL_TRANSP_VALUE:
-    case ICAL_CLASS_VALUE:
-        if(value->x_value !=0){
-            return icalmemory_tmp_copy(value->x_value);
-        }
-
-        return icalproperty_enum_to_string(value->data.v_enum);
-        
-    case ICAL_X_VALUE: 
-	if (value->x_value != 0)
-            return icalmemory_tmp_copy(value->x_value);
-
-    /* FALLTHRU */
-
-    case ICAL_NO_VALUE:
-    default:
-	{
-	    return 0;
-	}
-    }
-}
-
-
-icalvalue_kind
-icalvalue_isa (const icalvalue* value)
-{
-    if(value == 0){
-	return ICAL_NO_VALUE;
-    }
-
-    return value->kind;
-}
-
-
-int
-icalvalue_isa_value (void* value)
-{
-    struct icalvalue_impl *impl = (struct icalvalue_impl *)value;
-
-    icalerror_check_arg_rz( (value!=0), "value");
-
-    if (strcmp(impl->id,"val") == 0) {
-	return 1;
-    } else {
-	return 0;
-    }
-}
-
-
-static int icalvalue_is_time(const icalvalue* a) {
-    icalvalue_kind kind = icalvalue_isa(a);
-
-    if(kind == ICAL_DATETIME_VALUE ||
-       kind == ICAL_DATE_VALUE ){
-	return 1;
-    }
-
-    return 0;
-
-}
-
-/*
- * In case of error, this function returns 0. This is partly bogus, as 0 is
- * not part of the returned enum.
- * FIXME We should probably add an error value to the enum.
- */
-icalparameter_xliccomparetype
-icalvalue_compare(const icalvalue* a, const icalvalue *b)
-{
-
-    icalerror_check_arg_rz( (a!=0), "a");
-    icalerror_check_arg_rz( (b!=0), "b");
-
-    /* Not the same type; they can only be unequal */
-    if( ! (icalvalue_is_time(a) && icalvalue_is_time(b)) &&
-	icalvalue_isa(a) != icalvalue_isa(b)){
-	return ICAL_XLICCOMPARETYPE_NOTEQUAL;
-    }
-
-    switch (icalvalue_isa(a)){
-
-	case ICAL_ATTACH_VALUE:
-	{
-	    if (icalattach_get_is_url(a->data.v_attach) &&
-	        icalattach_get_is_url(b->data.v_attach)) {
-		if (strcasecmp(icalattach_get_url(a->data.v_attach),
-			       icalattach_get_url(b->data.v_attach)) == 0)
-		    return ICAL_XLICCOMPARETYPE_EQUAL;
-		else
-		    return ICAL_XLICCOMPARETYPE_NOTEQUAL;
-	    }
-	    else {
-	        if (a->data.v_attach == b->data.v_attach)
-		    return ICAL_XLICCOMPARETYPE_EQUAL;
-	        else
-		    return ICAL_XLICCOMPARETYPE_NOTEQUAL;
-	    }
-	}
-        case ICAL_BINARY_VALUE:
-	{
-	    if (a->data.v_attach == b->data.v_attach)
-		return ICAL_XLICCOMPARETYPE_EQUAL;
-	    else
-		return ICAL_XLICCOMPARETYPE_NOTEQUAL;
-	}
-
-	case ICAL_BOOLEAN_VALUE:
-	{
-	    if (icalvalue_get_boolean(a) == icalvalue_get_boolean(b)){
-		return ICAL_XLICCOMPARETYPE_EQUAL;
-	    } else {
-		return ICAL_XLICCOMPARETYPE_NOTEQUAL;
-	    }
-	}
-
-	case ICAL_FLOAT_VALUE:
-	{
-	    if (a->data.v_float > b->data.v_float){
-		return ICAL_XLICCOMPARETYPE_GREATER;
-	    } else if (a->data.v_float < b->data.v_float){
-		return ICAL_XLICCOMPARETYPE_LESS;
-	    } else {
-		return ICAL_XLICCOMPARETYPE_EQUAL;
-	    }
-	}
-
-	case ICAL_INTEGER_VALUE:
-	case ICAL_UTCOFFSET_VALUE:
-	{
-	    if (a->data.v_int > b->data.v_int){
-		return ICAL_XLICCOMPARETYPE_GREATER;
-	    } else if (a->data.v_int < b->data.v_int){
-		return ICAL_XLICCOMPARETYPE_LESS;
-	    } else {
-		return ICAL_XLICCOMPARETYPE_EQUAL;
-	    }
-	}
-
-	case ICAL_DURATION_VALUE: 
-	{
-	    int dur_a = icaldurationtype_as_int(a->data.v_duration);
-	    int dur_b = icaldurationtype_as_int(b->data.v_duration);
-
-	    if (dur_a > dur_b){
-		return ICAL_XLICCOMPARETYPE_GREATER;
-	    } else if (dur_a < dur_b){
-		return ICAL_XLICCOMPARETYPE_LESS;
-	    } else {
-		return ICAL_XLICCOMPARETYPE_EQUAL;
-	    }
-	}	    
-
-
-	case ICAL_TEXT_VALUE:
-	case ICAL_URI_VALUE:
-	case ICAL_CALADDRESS_VALUE:
-	case ICAL_TRIGGER_VALUE:
-	case ICAL_DATE_VALUE:
-	case ICAL_DATETIME_VALUE:
-	case ICAL_DATETIMEPERIOD_VALUE:
-	case ICAL_QUERY_VALUE:
-	case ICAL_RECUR_VALUE:
-	{
-	    int r;
-
-	    r =  strcmp(icalvalue_as_ical_string(a),
-			  icalvalue_as_ical_string(b));
-
-	    if (r > 0) { 	
-		return ICAL_XLICCOMPARETYPE_GREATER;
-	    } else if (r < 0){
-		return ICAL_XLICCOMPARETYPE_LESS;
-	    } else {
-		return ICAL_XLICCOMPARETYPE_EQUAL;
-	    }
-
-		
-	}
-
-	case ICAL_METHOD_VALUE:
-	{
-	    if (icalvalue_get_method(a) == icalvalue_get_method(b)){
-		return ICAL_XLICCOMPARETYPE_EQUAL;
-	    } else {
-		return ICAL_XLICCOMPARETYPE_NOTEQUAL;
-	    }
-
-	}
-
-	case ICAL_STATUS_VALUE:
-	{
-	    if (icalvalue_get_status(a) == icalvalue_get_status(b)){
-		return ICAL_XLICCOMPARETYPE_EQUAL;
-	    } else {
-		return ICAL_XLICCOMPARETYPE_NOTEQUAL;
-	    }
-
-	}
-
-	case ICAL_TRANSP_VALUE:
-	{
-	    if (icalvalue_get_transp(a) == icalvalue_get_transp(b)){
-		return ICAL_XLICCOMPARETYPE_EQUAL;
-	    } else {
-		return ICAL_XLICCOMPARETYPE_NOTEQUAL;
-	    }
-	}
-
-	case ICAL_ACTION_VALUE:
-        {
-	    if (icalvalue_get_action(a) == icalvalue_get_action(b)){
-		return ICAL_XLICCOMPARETYPE_EQUAL;
-	    } else {
-		return ICAL_XLICCOMPARETYPE_NOTEQUAL;
-	    }
-        }
-
-	case ICAL_PERIOD_VALUE:
-	case ICAL_GEO_VALUE:
-	case ICAL_NO_VALUE:
-	default:
-	{
-	    icalerror_warn("Comparison not implemented for value type");
-	    return 0;
-	}
-    }   
-
-}
-
-/** Examine the value and possibly change the kind to agree with the
- *  value 
- */
-
-void icalvalue_reset_kind(icalvalue* value)
-{
-    if( (value->kind==ICAL_DATETIME_VALUE || value->kind==ICAL_DATE_VALUE )&&
-        !icaltime_is_null_time(value->data.v_time) ) {
-        
-        if(icaltime_is_date(value->data.v_time)){
-            value->kind = ICAL_DATE_VALUE;
-        } else {
-            value->kind = ICAL_DATETIME_VALUE;
-        }
-    }
-       
-}
-
-void icalvalue_set_parent(icalvalue* value,
-			     icalproperty* property)
-{
-    value->parent = property;
-}
-
-icalproperty* icalvalue_get_parent(icalvalue* value)
-{
-    return value->parent;
-}
-
-
-int icalvalue_encode_ical_string(const char *szText, char *szEncText, int nMaxBufferLen)
-{
-    char   *ptr;
-    icalvalue *value = 0;
-
-    if ((szText == 0) || (szEncText == 0))
-        return 0;
-   
-    value = icalvalue_new_from_string(ICAL_STRING_VALUE, szText);
-    
-    if (value == 0)
-        return 0;
-    
-    ptr = icalvalue_text_as_ical_string(value);
-    if (ptr == 0)
-        return 0;
-    
-    if ((int)strlen(ptr) >= nMaxBufferLen)
-        {
-            icalvalue_free (value);
-            return 0;
-        }
-
-    strcpy(szEncText, ptr);
-
-    icalvalue_free ((icalvalue*)value);
-
-    return 1;
-}
-
-/* The remaining interfaces are 'new', 'set' and 'get' for each of the value
-   types */
diff --git a/libkcal/libical/src/libical/icalvalue.h b/libkcal/libical/src/libical/icalvalue.h
deleted file mode 100644
index 96b97043..00000000
--- a/libkcal/libical/src/libical/icalvalue.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/* -*- Mode: C -*- */
-/*======================================================================
-  FILE: icalvalue.h
-  CREATOR: eric 20 March 1999
-
-
-
- (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
-     http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-  The original code is icalvalue.h
-
-  ======================================================================*/
-
-#ifndef ICALVALUE_H
-#define ICALVALUE_H
-
-#include <time.h>
-#include "icalenums.h"
-#include "icaltypes.h"
-#include "icalrecur.h"
-#include "icalduration.h"
-#include "icalperiod.h"
-#include "icalderivedproperty.h" /* For icalproperty_method, etc. */
-#include "icalderivedparameter.h"
-#include "icalderivedvalue.h"
-                          
-/* Defined in icalderivedvalue.h */
-/*typedef struct icalvalue_impl icalvalue;*/
-
-icalvalue* icalvalue_new(icalvalue_kind kind);
-
-icalvalue* icalvalue_new_clone(const icalvalue* value);
-
-icalvalue* icalvalue_new_from_string(icalvalue_kind kind, const char* str);
-
-void icalvalue_free(icalvalue* value);
-
-int icalvalue_is_valid(const icalvalue* value);
-
-const char* icalvalue_as_ical_string(const icalvalue* value);
-
-icalvalue_kind icalvalue_isa(const icalvalue* value);
-
-int icalvalue_isa_value(void*);
-
-icalparameter_xliccomparetype icalvalue_compare(const icalvalue* a, const icalvalue *b);
-
-
-/* Special, non autogenerated value accessors */
-
-icalvalue* icalvalue_new_recur (struct icalrecurrencetype v);
-void icalvalue_set_recur(icalvalue* value, struct icalrecurrencetype v);
-struct icalrecurrencetype icalvalue_get_recur(const icalvalue* value);
-
-icalvalue* icalvalue_new_trigger (struct icaltriggertype v);
-void icalvalue_set_trigger(icalvalue* value, struct icaltriggertype v);
-struct icaltriggertype icalvalue_get_trigger(const icalvalue* value);
-
-icalvalue* icalvalue_new_datetimeperiod (struct icaldatetimeperiodtype v);
-void icalvalue_set_datetimeperiod(icalvalue* value, 
-				  struct icaldatetimeperiodtype v);
-struct icaldatetimeperiodtype icalvalue_get_datetimeperiod(const icalvalue* value);
-
-/* Convert enumerations */
-
-icalvalue_kind icalvalue_string_to_kind(const char* str);
-const char* icalvalue_kind_to_string(const icalvalue_kind kind);
-
-/** Check validity of a specific icalvalue_kind **/
-int icalvalue_kind_is_valid(const icalvalue_kind kind);
-
-/** Encode a character string in ical format, esacpe certain characters, etc. */
-int icalvalue_encode_ical_string(const char *szText, char *szEncText, int MaxBufferLen);
-
-#endif /*ICALVALUE_H*/
diff --git a/libkcal/libical/src/libical/icalvalueimpl.h b/libkcal/libical/src/libical/icalvalueimpl.h
deleted file mode 100644
index 545c8fa7..00000000
--- a/libkcal/libical/src/libical/icalvalueimpl.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/* -*- Mode: C -*- */
-/*======================================================================
-  FILE: icalvalue.c
-  CREATOR: eric 02 May 1999
-  
-
-
- (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
-     http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-  The original code is icalvalue.c
-
-  Contributions from:
-     Graham Davison (g.m.davison@computer.org)
-
-
-======================================================================*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef ICALVALUEIMPL_H
-#define ICALVALUEIMPL_H
-
-#include "icalenums.h"
-#include "icalproperty.h"
-#include "icalderivedvalue.h"
-
-
-struct icalvalue_impl {
-    icalvalue_kind kind; /*this is the kind that is visible from the outside*/
-
-    char id[5];
-    int size;
-    icalproperty* parent;
-    char* x_value;
-
-    union data {
-	icalattach *v_attach;		
-	/* void *v_binary; */ /* use v_attach */
-	const char *v_string;
-	/*char *v_text;*/
-	/*char *v_caladdress;*/
-	/*char *v_uri;*/
-	float v_float;
-	int v_int;
-	/*int v_boolean;*/
-	/*int v_integer;*/
-	struct icaldurationtype v_duration;
-	/*int v_utcoffset;*/
-	
-	struct icalperiodtype v_period;
-	/*struct icalperiodtype v_datetimeperiod;*/
-	struct icalgeotype v_geo;
-	/*time_t v_time;*/
-	struct icaltimetype v_time;
-	/*struct icaltimetype v_date;*/
-	/*struct icaltimetype v_datetime;*/
-	/*struct icaltimetype v_datetimedate;*/
-	
-        struct icalreqstattype v_requeststatus;
-
-	/* struct icalrecurrencetype was once included
-	   directly ( not referenced ) in this union, but it
-	   contributes 2000 bytes to every value, so now it is
-	   a reference*/
-	
-	struct icalrecurrencetype *v_recur;
-	struct icaltriggertype v_trigger;
-
-        int v_enum;
-        /* v_enum takes care of several enumerated types including: 
-	icalproperty_method v_method;
-	icalproperty_status v_status;
-        icalproperty_action v_action;
-        icalproperty_class v_class;
-	icalproperty_transp v_transp;
-        */
-
-    } data;
-};
-
-#endif
diff --git a/libkcal/libical/src/libical/icalversion.h b/libkcal/libical/src/libical/icalversion.h
deleted file mode 100644
index c4b1d15e..00000000
--- a/libkcal/libical/src/libical/icalversion.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#ifndef ICAL_VERSION_H
-#define ICAL_VERSION_H
-
-#define ICAL_PACKAGE "libical"
-#define ICAL_VERSION "0.24"
-
-#endif
diff --git a/libkcal/libical/src/libical/icalversion.h.in b/libkcal/libical/src/libical/icalversion.h.in
deleted file mode 100644
index 5d213693..00000000
--- a/libkcal/libical/src/libical/icalversion.h.in
+++ /dev/null
@@ -1,7 +0,0 @@
-#ifndef ICAL_VERSION_H
-#define ICAL_VERSION_H
-
-#define ICAL_PACKAGE "@PACKAGE@"
-#define ICAL_VERSION "@VERSION@"
-
-#endif
diff --git a/libkcal/libical/src/libical/pvl.c b/libkcal/libical/src/libical/pvl.c
deleted file mode 100644
index d663eaab..00000000
--- a/libkcal/libical/src/libical/pvl.c
+++ /dev/null
@@ -1,585 +0,0 @@
-/*======================================================================
- FILE: pvl.c
- CREATOR: eric November, 1995
-
-
- (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
-     http://www.softwarestudio.org
-======================================================================*/
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "pvl.h"
-#include <errno.h>
-#include <assert.h>
-#include <stdlib.h>
-
-/**
-  struct pvl_list_t
-
-  The list structure. This is the hanlde for the entire list 
-
-  This type is also private. Use pvl_list instead 
-
-  */
-
-typedef struct pvl_list_t
-{
-	int MAGIC;		        /**< Magic Identifier */
-	struct pvl_elem_t *head;	/**< Head of list */
-	struct pvl_elem_t *tail;	/**< Tail of list */
-	int count;			/**< Number of items in the list */
-	struct pvl_elem_t *p;		/**< Pointer used for iterators */
-} pvl_list_t;
-
-
-
-
-/**
- * This global is incremented for each call to pvl_new_element(); it gives each
- * list a unique identifer 
- */
-
-int pvl_elem_count = 0;
-int pvl_list_count = 0;
-
-
-/**
- * @brief Creates a new list, clears the pointers and assigns a magic number
- * 
- * @return  Pointer to the new list, 0 if there is no available memory. 
- */
-
-pvl_list 
-pvl_newlist()
-{
-    struct pvl_list_t *L;
-
-    if ( ( L = (struct pvl_list_t*)malloc(sizeof(struct pvl_list_t))) == 0)
-    {
-	errno = ENOMEM;
-	return 0;
-    }
-
-    L->MAGIC = pvl_list_count;
-    pvl_list_count++;
-    L->head = 0;
-    L->tail = 0;
-    L->count = 0;
-    L->p = 0;
-
-    return L;
-}
-
-void
-pvl_free(pvl_list l)
-{
-   struct pvl_list_t *L = (struct pvl_list_t *)l;
-
-   pvl_clear(l);
-
-   free(L);
-}
-
-/**
- * @brief Creates a new list element, assigns a magic number, and assigns 
- * the next and previous pointers. 
- * 
- * Passing in the next and previous points may seem odd, but it allos the user
- * to set them while keeping the internal data hidden. In nearly all cases, 
- * the user is the pvl library itself. 
- *
- * @param d	The data item to be stored in the list
- * @param next  Pointer value to assign to the member "next"
- * @param prior Pointer value to assign to the member "prior"
- *
- * @return A pointer to the new element, 0 if there is no memory available. 
- */
-
-pvl_elem 
-pvl_new_element(void *d, pvl_elem next, pvl_elem prior)
-{
-    struct pvl_elem_t *E;
-
-    if ( ( E = (struct pvl_elem_t*)malloc(sizeof(struct pvl_elem_t))) == 0)
-    {
-	errno = ENOMEM;
-	return 0;
-    }
-
-    E->MAGIC = pvl_elem_count++;
-    E->d = d;
-    E->next = next;
-    E->prior = prior;
-
-    return (pvl_elem)E;
-}
-
-/**
- * @brief Add a new element to the from of the list
- *
- * @param L	The list to add the item to 
- * @param d	Pointer to the item to add
- */
-
-void 
-pvl_unshift(pvl_list L,void *d)
-{
-    struct pvl_elem_t *E = pvl_new_element(d,L->head,0);
-
-    if (E->next != 0)
-    {
-	/* Link the head node to it */
-	E->next->prior = E;
-    }
-
-    /* move the head */
-    L->head = E;
-
-    /* maybe move the tail */
-  
-    if (L->tail == 0)
-    {
-	L->tail = E;
-    }
-
-    L->count++;
-}
-
-/**
- * @brief Remove an element from the front of the list 
- *
- * @param L	The list to operate on
- *
- * @return the entry on the front of the list 
- */
-
-void* 
-pvl_shift(pvl_list L)
-{
-    if (L->head == 0)
-    {
-	return 0;
-    }
-
-    return pvl_remove(L,(void*)L->head);
-
-}
-
-/**
- * @brief Add a new item to the tail of the list
- *
- * @param L	The list to operate on
- * @param d	Pointer to the item to add
- *
- */
-
-void 
-pvl_push(pvl_list L,void *d)
-{
-    struct pvl_elem_t *E = pvl_new_element(d,0,L->tail);
-
-    /* These are done in pvl_new_element
-       E->next = 0;
-       E->prior = L->tail;
-    */
-
-    if (L->tail != 0) 
-    {
-	L->tail->next = E;
-    }
-
-    if (L->head == 0) 
-    {
-	L->head = E;
-    }
-  
-    L->tail = E;
-
-    L->count++;
-
-}
-
-/**
- * @brief Remove an element from the tail of the list 
- *
- * @param L	The list to operate on
- */
-
-void* 
-pvl_pop(pvl_list L)
-{
-    if ( L->tail == 0)
-    {
-	return 0;
-    }
-
-    return pvl_remove(L,(void*) L->tail);;
-
-}
-
-
-/**
- * Add a new item to a list that is ordered by a comparison function. 
- * This routine assumes that the list is properly ordered. 
- *
- * @param L	The list to operate on
- * @param f	Pointer to a comparison function
- * @param d     Pointer to data to pass to the comparison function
- */
-
-void 
-pvl_insert_ordered(pvl_list L,pvl_comparef f,void *d)
-{
-    struct pvl_elem_t *P;
-
-    L->count++;
-
-    /* Empty list, add to head */
-
-    if(L->head == 0)
-    {
-	pvl_unshift(L,d);
-	return;
-    }
-
-    /* smaller than head, add to head */
-
-    if ( ((*f)(d,L->head->d)) <= 0)
-    { 
-	pvl_unshift(L,d);
-	return;
-    }
-
-    /* larger than tail, add to tail */
-    if ( (*f)(d,L->tail->d) >= 0)
-    { 
-	pvl_push(L,d);
-	return;
-    }
-
-
-    /* Search for the first element that is smaller, and add before it */
-    
-    for (P=L->head; P != 0; P = P->next)
-    {
-	if ( (*f)(P->d,d) >= 0)
-	{
-	    pvl_insert_before(L,P,d);
-	    return;
-	}
-    }
-
-    /* badness, choke */
-#ifndef lint
-    assert(0);
-#endif
-}
-
-/**
- * @brief Add a new item after the referenced element. 
- * @param L	The list to operate on 
- * @param P	The list element to add the item after
- * @param d	Pointer to the item to add. 
- */
-
-void 
-pvl_insert_after(pvl_list L,pvl_elem P,void *d)
-{
-    struct pvl_elem_t *E = 0;
-
-    L->count++;
-
-    if (P == 0)
-    {
-	pvl_unshift(L,d);
-	return;
-    }
-
-    if ( P == L->tail)
-    {
-	E = pvl_new_element(d,0,P);
-	L->tail = E;
-	E->prior->next = E;
-    }
-    else
-    {
-	E = pvl_new_element(d,P->next,P);
-	E->next->prior  = E;
-	E->prior->next = E;
-    }
-}
-
-/**
- * @brief Add an item after a referenced item
- *
- * @param L	The list to operate on
- * @param P	The list element to add the item before
- * @param d	Pointer to the data to be added. 
- */
-
-void 
-pvl_insert_before(pvl_list L,pvl_elem P,void *d)
-{
-    struct pvl_elem_t *E = 0;
-
-    L->count++;
-
-    if (P == 0)
-    {
-	pvl_unshift(L,d);
-	return;
-    }
-
-    if ( P == L->head)
-    {
-	E = pvl_new_element(d,P,0);
-	E->next->prior = E;
-	L->head = E;
-    }
-    else
-    {
-	E = pvl_new_element(d,P,P->prior);
-	E->prior->next = E;
-	E->next->prior = E;
-    }
-}
-
-/**
- * @brief Remove the referenced item from the list.
- *
- * This routine will free the element, but not the data item that the
- * element contains. 
- *
- * @param L	The list to operate on
- * @param E	The element to remove. 
- */
-
-void* 
-pvl_remove(pvl_list L,pvl_elem E)
-{
-    void* data;
-
-    if (E == L->head)
-    {
-	if (E->next != 0)
-	{
-	    E->next->prior = 0;
-	    L->head = E->next;
-	} else {
-	    /* E Also points to tail -> only one element in list */
-	    L->tail = 0;
-	    L->head = 0;
-	}
-    }
-    else if (E == L->tail)
-    {
-	if (E->prior != 0)
-	{
-	    E->prior->next = 0;
-	    L->tail = E->prior;
-	} else {
-	    /* E points to the head, so it was the last element */
-	    /* This case should be taken care of in the previous clause */
-	    L->head = 0;
-	    L->tail = 0;
-	}
-    }
-    else
-    {
-	E->prior->next = E->next;
-	E->next->prior = E->prior;
-    }
-
-
-    L->count--;
-
-    data = E->d; 
-
-    E->prior = 0;
-    E->next = 0;
-    E->d = 0;
-
-    free(E);
-
-    return data;
-
-}
-
-/**
- * @brief Return a pointer to data that satisfies a function.
- *
- * This routine will interate through the entire list and call the
- * find function for each item. It will break and return a pointer to the
- * data that causes the find function to return 1.
- *
- * @param l	The list to operate on
- * @param f	Pointer to the find function
- * @param v	Pointer to constant data to pass into the function
- * 
- * @return Pointer to the element that the find function found. 
- */
-
-pvl_elem
-pvl_find(pvl_list l,pvl_findf f,void* v)
-{
-    pvl_elem e;
-    
-    for (e=pvl_head(l); e!= 0; e = pvl_next(e))
-    {
-	if ( (*f)(((struct pvl_elem_t *)e)->d,v) == 1)
-	{
-	    /* Save this elem for a call to find_next */
-	    ((struct pvl_list_t *)l)->p = e;
-	    return e;
-	}
-    }
-    
-    return 0;
-
-}
-
-/**
- * @brief Like pvl_find(), but continues the search where the last find() or
- * find_next() left off.
- *
- * @param l	The list to operate on
- * @param f	Pointer to the find function
- * @param v	Pointer to constant data to pass into the function
- * 
- * @return Pointer to the element that the find function found. 
- */
-
-pvl_elem
-pvl_find_next(pvl_list l,pvl_findf f,void* v)
-{
-    
-    pvl_elem e;
-    
-    for (e=pvl_head(l); e!= 0; e = pvl_next(e))
-    {
-	if ( (*f)(((struct pvl_elem_t *)e)->d,v) == 1)
-	{
-	    /* Save this elem for a call to find_next */
-	    ((struct pvl_list_t *)l)->p = e;
-	    return e;
-	}
-    }
-
-    return 0;
-
-}
-
-/**
- * @brief Remove the all the elements in the list. The does not free
- * the data items the elements hold.
- */
-
-void 
-pvl_clear(pvl_list l)
-{
-    pvl_elem e = pvl_head(l);
-    pvl_elem next;
-
-    if (e == 0) {
-	return;
-    }
-
-    while(e != 0)
-    {
-	next = pvl_next(e);
-	pvl_remove(l,e);
-	e = next;
-    }
-}
-
-
-/**
- * @brief Returns the number of items in the list. 
- */
-
-int 
-pvl_count(pvl_list L)
-{
-    return L->count;
-}
-
-
-/**
- * @brief Returns a pointer to the given element 
- */
-
-pvl_elem 
-pvl_next(pvl_elem E)
-{
-    if (E == 0){
-	return 0;
-    }
-
-    return (pvl_elem)E->next;
-}
-
-
-/**
- * @brief Returns a pointer to the element previous to the element given. 
- */
-
-pvl_elem 
-pvl_prior(pvl_elem E)
-{
-    return (pvl_elem)E->prior;
-}
-
-
-/**
- * @brief Returns a pointer to the first item in the list. 
- */
-
-pvl_elem 
-pvl_head(pvl_list L )
-{
-    return (pvl_elem)L->head;
-}
-
-/**
- * @brief Returns a pointer to the last item in the list. 
- */
-pvl_elem 
-pvl_tail(pvl_list L)
-{
-    return (pvl_elem)L->tail;
-}
-
-#ifndef PVL_USE_MACROS
-void* 
-pvl_data(pvl_elem E)
-{
-    if ( E == 0){
-	return 0;
-    }
-
-    return E->d;
-}
-#endif
-
-/**
- * @brief Call a function for every item in the list. 
- *
- * @param l	The list to operate on
- * @param f	Pointer to the function to call
- * @param v	Data to pass to the function on every iteration
- */
-
-void 
-pvl_apply(pvl_list l,pvl_applyf f, void *v)
-{
-    pvl_elem e;
-
-    for (e=pvl_head(l); e!= 0; e = pvl_next(e))
-    {
-	(*f)(((struct pvl_elem_t *)e)->d,v);
-    }
-
-}
diff --git a/libkcal/libical/src/libical/pvl.h b/libkcal/libical/src/libical/pvl.h
deleted file mode 100644
index cb306ae6..00000000
--- a/libkcal/libical/src/libical/pvl.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/*======================================================================
- FILE: pvl.h
- CREATOR: eric November, 1995
-
-
- (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
-     http://www.softwarestudio.org
-======================================================================*/
-
-
-#ifndef __PVL_H__
-#define __PVL_H__
-
-typedef struct pvl_list_t* pvl_list;
-typedef struct pvl_elem_t* pvl_elem;
-
-/**
- * This type is private. Always use pvl_elem instead. The struct would
- * not even appear in this header except to make code in the USE_MACROS
- * blocks work
- */
-
-typedef struct pvl_elem_t
-{
-	int MAGIC;			/**< Magic Identifier */
-	void *d;			/**< Pointer to data user is storing */
-	struct pvl_elem_t *next;	/**< Next element */
-	struct pvl_elem_t *prior;	/**< Prior element */
-} pvl_elem_t;
-
-
-
-/**
- * This global is incremented for each call to pvl_new_element(); it gives each
- * list a unique identifer
- */
-
-extern int  pvl_elem_count;
-extern int  pvl_list_count;
-
-/* Create new lists or elements */
-pvl_elem pvl_new_element(void* d, pvl_elem next,pvl_elem prior);
-pvl_list pvl_newlist(void);
-void pvl_free(pvl_list);
-
-/* Add, remove, or get the head of the list */
-void pvl_unshift(pvl_list l,void *d);
-void* pvl_shift(pvl_list l);
-pvl_elem pvl_head(pvl_list);
-
-/* Add, remove or get the tail of the list */
-void pvl_push(pvl_list l,void *d);
-void* pvl_pop(pvl_list l);
-pvl_elem pvl_tail(pvl_list);
-
-/* Insert elements in random places */
-typedef int (*pvl_comparef)(void* a, void* b); /* a, b are of the data type*/
-void pvl_insert_ordered(pvl_list l,pvl_comparef f,void *d);
-void pvl_insert_after(pvl_list l,pvl_elem e,void *d);
-void pvl_insert_before(pvl_list l,pvl_elem e,void *d);
-
-/* Remove an element, or clear the entire list */
-void* pvl_remove(pvl_list,pvl_elem); /* Remove element, return data */
-void pvl_clear(pvl_list); /* Remove all elements, de-allocate all data */
-
-int pvl_count(pvl_list);
-
-/* Navagate the list */
-pvl_elem pvl_next(pvl_elem e);
-pvl_elem pvl_prior(pvl_elem e);
-
-/* get the data in the list */
-#ifndef PVL_USE_MACROS
-void* pvl_data(pvl_elem);
-#else
-#define pvl_data(x) x==0 ? 0 : ((struct pvl_elem_t *)x)->d;
-#endif
-
-
-/* Find an element for which a function returns true */
-typedef int (*pvl_findf)(void* a, void* b); /*a is list elem, b is other data*/
-pvl_elem pvl_find(pvl_list l,pvl_findf f,void* v);
-pvl_elem pvl_find_next(pvl_list l,pvl_findf f,void* v);
-
-/**
- * Pass each element in the list to a function
- * a is list elem, b is other data
- */
-typedef void (*pvl_applyf)(void* a, void* b);
-void pvl_apply(pvl_list l,pvl_applyf f, void *v);
-
-
-#endif /* __PVL_H__ */
-
-
-
-
-
diff --git a/libkcal/libical/src/libical/sspm.c b/libkcal/libical/src/libical/sspm.c
deleted file mode 100644
index 61237cb3..00000000
--- a/libkcal/libical/src/libical/sspm.c
+++ /dev/null
@@ -1,1630 +0,0 @@
-/* -*- Mode: C -*-
-  ======================================================================
-  FILE: sspm.c Parse Mime
-  CREATOR: eric 25 June 2000
-  
-    
- The contents of this file are subject to the Mozilla Public License
- Version 1.0 (the "License"); you may not use this file except in
- compliance with the License. You may obtain a copy of the License at
- http://www.mozilla.org/MPL/
- 
- Software distributed under the License is distributed on an "AS IS"
- basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
- the License for the specific language governing rights and
- limitations under the License.
- 
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-  The Initial Developer of the Original Code is Eric Busboom
-
- (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
-     http://www.softwarestudio.org
- ======================================================================*/
-
-#include <stdio.h>
-#include <string.h>
-#include "sspm.h"
-#include <assert.h>
-#include <ctype.h> /* for tolower */
-#include <stdlib.h>   /* for malloc, free */
-#include <string.h> /* for strcasecmp */
-
-#ifdef DMALLOC
-#include "dmalloc.h"
-#endif
-
-#ifdef WIN32
-#define snprintf      _snprintf
-#define strcasecmp    stricmp
-#endif
-
-#define TMP_BUF_SIZE 1024
-
-
-enum mime_state {
-    UNKNOWN_STATE,
-    IN_HEADER,
-    END_OF_HEADER,
-    IN_BODY,
-    OPENING_PART,
-    END_OF_PART,
-    TERMINAL_END_OF_PART,
-    END_OF_INPUT
-};
-
-struct mime_impl{
-	struct sspm_part *parts; 
-	size_t max_parts;
-	int part_no;
-	int level;
-	struct sspm_action_map *actions;
-	char* (*get_string)(char *s, size_t size, void* data);
-	void* get_string_data;
-	char temp[TMP_BUF_SIZE];
-	enum mime_state state;
-};
-
-void sspm_free_header(struct sspm_header *header);
-void* sspm_make_multipart_part(struct mime_impl *impl,struct sspm_header *header);
-void sspm_read_header(struct mime_impl *impl,struct sspm_header *header);
-
-char* sspm_strdup(const char* str){
-
-    char* s;
-
-    s = strdup(str);
-
-    return s;
-}
-
-
-static struct  major_content_type_map 
-{
-    enum sspm_major_type type;
-    const char* str;
-
-} major_content_type_map[]  =
-{
-    {SSPM_MULTIPART_MAJOR_TYPE,"multipart" },
-    {SSPM_TEXT_MAJOR_TYPE,"text" },
-    {SSPM_TEXT_MAJOR_TYPE,"text" },
-    {SSPM_IMAGE_MAJOR_TYPE,"image" },
-    {SSPM_AUDIO_MAJOR_TYPE,"audio" },
-    {SSPM_VIDEO_MAJOR_TYPE,"video" },
-    {SSPM_APPLICATION_MAJOR_TYPE,"application" },
-    {SSPM_MULTIPART_MAJOR_TYPE,"multipart" },
-    {SSPM_MESSAGE_MAJOR_TYPE,"message" },
-    {SSPM_UNKNOWN_MAJOR_TYPE,"" },
-};
-
-static struct  minor_content_type_map 
-{
-    enum sspm_minor_type type;
-    const char* str;
-
-} minor_content_type_map[]  = 
-{
-    {SSPM_ANY_MINOR_TYPE,"*" },
-    {SSPM_PLAIN_MINOR_TYPE,"plain" },
-    {SSPM_RFC822_MINOR_TYPE,"rfc822" },
-    {SSPM_DIGEST_MINOR_TYPE,"digest" },
-    {SSPM_CALENDAR_MINOR_TYPE,"calendar" },
-    {SSPM_MIXED_MINOR_TYPE,"mixed" },
-    {SSPM_RELATED_MINOR_TYPE,"related" },
-    {SSPM_ALTERNATIVE_MINOR_TYPE,"alternative" },
-    {SSPM_PARALLEL_MINOR_TYPE,  "parallel" },  
-    {SSPM_UNKNOWN_MINOR_TYPE,"" } 
-};
-
-
-
-struct encoding_map {
-    enum sspm_encoding encoding;
-    const char* str;
-} sspm_encoding_map[] = 
-{
-    {SSPM_NO_ENCODING,""},
-    {SSPM_QUOTED_PRINTABLE_ENCODING,"quoted-printable"},
-    {SSPM_8BIT_ENCODING,"8bit"},
-    {SSPM_7BIT_ENCODING,"7bit"},
-    {SSPM_BINARY_ENCODING,"binary"},
-    {SSPM_BASE64_ENCODING,"base64"},
-    {SSPM_UNKNOWN_ENCODING,""}
-
-};
-
-
-char* sspm_get_parameter(const char* line, const char* parameter)
-{
-    char *p,*s,*q;
-    static char name[1024];
-    
-    /* Find where the parameter name is in the line */
-    p = strstr(line,parameter);
-
-    if( p == 0){
-	return 0;
-    }
-
-    /* skip over the parameter name, the '=' and any blank spaces */
-
-    p+=strlen(parameter);
-
-    while(*p==' ' || *p == '='){
-	p++;
-    }
-
-    /*now find the next semicolon*/
-
-    s = strchr(p,';');
-
-    /* Strip of leading quote */
-    q = strchr(p,'\"');
-
-    if(q !=0){
-	p = q+1;
-    }
-
-    if(s != 0){
-	strncpy(name,p,(size_t)s-(size_t)p);
-    } else {
-	strcpy(name,p);
-    }
-
-    /* Strip off trailing quote, if it exists */
-
-    q = strrchr(name,'\"');
-
-    if (q != 0){
-	*q='\0';
-    }
-    
-    return name;
-}
-
-char* sspm_property_name(const char* line)
-{
-    static char name[1024];
-    char *c = strchr(line,':');
-
-    if(c != 0){
-	strncpy(name,line,(size_t)c-(size_t)line);
-	name[(size_t)c-(size_t)line] = '\0';
-	return name;
-    } else {
-	return 0;
-    }
-}
-
-char* sspm_value(char* line)
-{
-    static char value[1024];
-
-    char *c,*s, *p;
-
-    /* Find the first colon and the next semicolon */
-
-    value[0] = 0;
-    c = strchr(line,':');
-    if (!c)
-      return value;
-    s = strchr(c,';');
-
-    /* Skip the colon */
-    c++;
-
-    if (s == 0){
-	s = c+strlen(line);
-    }
-
-    for(p=value; c != s; c++){
-	if(*c!=' ' && *c!='\n'){
-	    *(p++) = *c;
-	}
-    }
-
-    *p='\0';
-
-    return value;
-
-}
-
-static const char *mime_headers[] = {
-    "Content-Type",
-    "Content-Transfer-Encoding",
-    "Content-Disposition",
-    "Content-Id",
-    "Mime-Version",
-    0 
-};
-
-
-void* sspm_default_new_part()
-{
-    return 0;
-}
-void sspm_default_add_line(void *part, struct sspm_header *header, 
-			   const char* line, size_t size)
-{
-    (void)part;
-    (void)header;
-    (void)line;
-    (void)size;
-}
-
-void* sspm_default_end_part(void* part)
-{
-    (void)part;
-    return 0;
-}
-
-void sspm_default_free_part(void *part)
-{
-    (void)part;
-}
-
-
-
-struct sspm_action_map sspm_action_map[] = 
-{
-    {SSPM_UNKNOWN_MAJOR_TYPE,SSPM_UNKNOWN_MINOR_TYPE,sspm_default_new_part,sspm_default_add_line,sspm_default_end_part,sspm_default_free_part},
-};
-
-int sspm_is_mime_header(char *line)
-{
-    char *name = sspm_property_name(line);
-    int i;
-
-    if(name == 0){ 
-	return 0;
-    }
-
-    for(i = 0; mime_headers[i] != 0; i++){
-	if(strcasecmp(name, mime_headers[i]) == 0)
-	    return 1;
-    }
-    
-    return 0;
-}
-
-int sspm_is_mail_header(char* line)
-{
-    char *name = sspm_property_name(line);
-
-    if (name != 0){
-	return 1;
-    }
-
-    return 0;
-
-}
-
-int sspm_is_blank(char* line)
-{
-    char *p;
-    char c =0;
-
-    for(p=line; *p!=0; p++){
-	if( ! (*p == ' '|| *p == '\t' || *p=='\n') ){
-	    c++;
-	}
-    }
-
-    if (c==0){
-	return 1;
-    }
-
-    return 0;
-    
-}
-
-int sspm_is_continuation_line(char* line)
-{
-    if (line[0] == ' '|| line[0] == '\t' ) {
-	return 1;
-    }
-
-    return 0;
-}
-
-int sspm_is_mime_boundary(char *line)
-{
-    if( line[0] == '-' && line[1] == '-') {
-	return 1;
-    } 
-
-    return 0;
-}
-
-int sspm_is_mime_terminating_boundary(char *line)
-{
-
-
-    if (sspm_is_mime_boundary(line) &&
-	strstr(line,"--\n")){
-	return 1;
-    } 
-
-    return 0;
-}
-
-enum line_type {
-    EMPTY,
-    BLANK,
-    MIME_HEADER,
-    MAIL_HEADER,
-    HEADER_CONTINUATION,
-    BOUNDARY,
-    TERMINATING_BOUNDARY,
-    UNKNOWN_TYPE
-};
-
-
-static enum line_type get_line_type(char* line){
-
-    if (line == 0){
-	return EMPTY;
-    } else if(sspm_is_blank(line)){
-	return BLANK;
-    } else if (sspm_is_mime_header(line)){
-	return MIME_HEADER;
-    } else if (sspm_is_mail_header(line)){
-	return MAIL_HEADER;
-    } else if (sspm_is_continuation_line(line)){
-	return HEADER_CONTINUATION;
-    } else if (sspm_is_mime_terminating_boundary(line)){
-	return TERMINATING_BOUNDARY;
-    } else if (sspm_is_mime_boundary(line)) {
-	return BOUNDARY;
-    } else {
-	return UNKNOWN_TYPE;
-    }
-
-
-}
-
-
-static struct sspm_action_map get_action(struct mime_impl *impl,
-				  enum sspm_major_type major,
-				  enum sspm_minor_type minor)
-{
-    int i;
-
-    /* Read caller suppled action map */
-
-    if (impl->actions != 0){
-	for(i=0; impl->actions[i].major != SSPM_UNKNOWN_MAJOR_TYPE; i++){
-	    if((major == impl->actions[i].major &&
-	       minor == impl->actions[i].minor) ||
-	       (major == impl->actions[i].major &&
-		minor == SSPM_ANY_MINOR_TYPE)){
-		return impl->actions[i];
-	    }
-	}
-    }
-
-    /* Else, read default action map */
-
-    for(i=0; sspm_action_map[i].major != SSPM_UNKNOWN_MAJOR_TYPE; i++){
-	    if((major == sspm_action_map[i].major &&
-	       minor == sspm_action_map[i].minor) ||
-	       (major == sspm_action_map[i].major &&
-		minor == SSPM_ANY_MINOR_TYPE)){
-	    break;
-	}
-    }
-    
-    return sspm_action_map[i];
-}
-
-
-char* sspm_lowercase(char* str)
-{
-    char* p = 0;
-    char* new = sspm_strdup(str);
-
-    if(str ==0){
-	return 0;
-    }
-
-    for(p = new; *p!=0; p++){
-	*p = tolower(*p);
-    }
-
-    return new;
-}
-
-enum sspm_major_type sspm_find_major_content_type(char* type)
-{
-    int i;
-
-    char* ltype = sspm_lowercase(type);
-
-    for (i=0; major_content_type_map[i].type !=  SSPM_UNKNOWN_MINOR_TYPE; i++){
-	if(strncmp(ltype, major_content_type_map[i].str,
-		   strlen(major_content_type_map[i].str))==0){
-	    free(ltype);
-	    return major_content_type_map[i].type;
-	}
-    }
-    free(ltype);
-    return major_content_type_map[i].type; /* Should return SSPM_UNKNOWN_MINOR_TYPE */
-}
-
-enum sspm_minor_type sspm_find_minor_content_type(char* type)
-{
-    int i;
-    char* ltype = sspm_lowercase(type);
-
-    char *p = strchr(ltype,'/');
-
-    if (p==0){
-	return SSPM_UNKNOWN_MINOR_TYPE; 
-    }
-
-    p++; /* Skip the '/' */
-
-    for (i=0; minor_content_type_map[i].type !=  SSPM_UNKNOWN_MINOR_TYPE; i++){
-	if(strncmp(p, minor_content_type_map[i].str,
-		   strlen(minor_content_type_map[i].str))==0){
-	    free(ltype);
-	    return minor_content_type_map[i].type;
-	}
-    }
-    
-    free(ltype);
-    return minor_content_type_map[i].type; /* Should return SSPM_UNKNOWN_MINOR_TYPE */
-}
-
-const char* sspm_major_type_string(enum sspm_major_type type)
-{
-    int i;
-
-    for (i=0; major_content_type_map[i].type !=  SSPM_UNKNOWN_MINOR_TYPE; 
-	 i++){
-
-	if(type == major_content_type_map[i].type){
-	    return major_content_type_map[i].str;
-	}
-    }
-    
-    return major_content_type_map[i].str; /* Should return SSPM_UNKNOWN_MINOR_TYPE */
-}
-
-const char* sspm_minor_type_string(enum sspm_minor_type type)
-{
-    int i;
-    for (i=0; minor_content_type_map[i].type !=  SSPM_UNKNOWN_MINOR_TYPE; 
-	 i++){
-	if(type == minor_content_type_map[i].type){
-	    return minor_content_type_map[i].str;
-	}
-    }
-    
-    return minor_content_type_map[i].str; /* Should return SSPM_UNKNOWN_MINOR_TYPE */
-}
-
-
-const char* sspm_encoding_string(enum sspm_encoding type)
-{
-    int i;
-    for (i=0; sspm_encoding_map[i].encoding !=  SSPM_UNKNOWN_ENCODING; 
-	 i++){
-	if(type == sspm_encoding_map[i].encoding){
-	    return sspm_encoding_map[i].str;
-	}
-    }
-    
-    return sspm_encoding_map[i].str; /* Should return SSPM_UNKNOWN_MINOR_TYPE */
-}
-
-/* Interpret a header line and add its data to the header
-   structure. */
-void sspm_build_header(struct sspm_header *header, char* line)
-{
-    char *prop;
-    char *val;
-    
-    val = sspm_strdup(sspm_value(line));
-    prop = sspm_strdup(sspm_property_name(line));
-
-    if(strcasecmp(prop,"Content-Type") == 0){
-	
-	/* Create a new mime_header, fill in content-type
-	   and possibly boundary */
-	
-	char* boundary= sspm_get_parameter(line,"boundary");
-	
-	header->def = 0;
-	header->major = sspm_find_major_content_type(val);
-	header->minor = sspm_find_minor_content_type(val);
-	
-	if(header->minor == SSPM_UNKNOWN_MINOR_TYPE){
-	    char *p = strchr(val,'/');
-	    
-	    if (p != 0){
-		p++; /* Skip the '/' */
-		
-		header->minor_text = sspm_strdup(p);
-	    } else {
-		/* Error, malformed content type */
-		header->minor_text = sspm_strdup("unknown");
-	    }
-	}
-	if (boundary != 0){
-	    header->boundary = sspm_strdup(boundary);
-	}
-	
-    } else if(strcasecmp(prop,"Content-Transfer-Encoding")==0){
-	char* encoding = sspm_value(line);
-	char* lencoding = sspm_lowercase(encoding);
-
-	if(strcasecmp(lencoding,"base64")==0){
-	    header->encoding = SSPM_BASE64_ENCODING;
-	} else 	if(strcasecmp(lencoding,"quoted-printable")==0){
-	    header->encoding = SSPM_QUOTED_PRINTABLE_ENCODING;
-	} else 	if(strcasecmp(lencoding,"binary")==0){
-	    header->encoding = SSPM_BINARY_ENCODING;
-	} else 	if(strcasecmp(lencoding,"7bit")==0){
-	    header->encoding = SSPM_7BIT_ENCODING;
-	} else 	if(strcasecmp(lencoding,"8bit")==0){
-	    header->encoding = SSPM_8BIT_ENCODING;
-	} else {
-	    header->encoding = SSPM_UNKNOWN_ENCODING;
-	}
-
-
-	free(lencoding);
-
-	header->def = 0;
-	
-    } else if(strcasecmp(prop,"Content-Id")==0){
-	char* cid = sspm_value(line);
-	header->content_id = sspm_strdup(cid);
-	header->def = 0;
-	
-    }
-    free(val);
-    free(prop);
-}
-
-char* sspm_get_next_line(struct mime_impl *impl)
-{
-    char* s;
-    s = impl->get_string(impl->temp,TMP_BUF_SIZE,impl->get_string_data);
-    
-    if(s == 0){
-	impl->state = END_OF_INPUT;
-    }
-    return s;
-}
-
-
-void sspm_store_part(struct mime_impl *impl, struct sspm_header header,
-		      int level, void *part, size_t size)
-{
-    
-    impl->parts[impl->part_no].header = header;
-    impl->parts[impl->part_no].level = level;
-    impl->parts[impl->part_no].data = part;  
-    impl->parts[impl->part_no].data_size = size;  
-    impl->part_no++;
-}
-
-void sspm_set_error(struct sspm_header* header, enum sspm_error error,
-		    char* message)
-{
-    header->error = error;
-
-    if(header->error_text!=0){
-	free(header->error_text);
-    }
-
-    header->def = 0;
-
-    if(message != 0){
-	header->error_text = sspm_strdup(message);  
-    } else {
-	header->error_text = 0;
-    }
-
-}
-
-void* sspm_make_part(struct mime_impl *impl,
-		     struct sspm_header *header, 
-		     struct sspm_header *parent_header,
-		     void **end_part,
-		     size_t *size)
-{
-
-    /* For a single part type, read to the boundary, if there is a
-   boundary. Otherwise, read until the end of input.  This routine
-   assumes that the caller has read the header and has left the input
-   at the first blank line */
-
-    char *line;
-    void *part;
-    int end = 0;
-
-    struct sspm_action_map action = get_action(
-	impl,
-	header->major,
-	header->minor);
-
-    *size = 0;
-    part =action.new_part();
-
-    impl->state = IN_BODY;
-
-    while(end == 0 && (line = sspm_get_next_line(impl)) != 0){
-	
-	if(sspm_is_mime_boundary(line)){
-	    
-	    /* If there is a boundary, then this must be a multipart
-               part, so there must be a parent_header. */
-	    if(parent_header == 0){
-		char* boundary;
-		end = 1;
-		*end_part = 0;
-
-		sspm_set_error(header,SSPM_UNEXPECTED_BOUNDARY_ERROR,line);
-
-		/* Read until the paired terminating boundary */
-		if((boundary = (char*)malloc(strlen(line)+5)) == 0){
-		    fprintf(stderr,"Out of memory");
-		    abort();
-		}
-		strcpy(boundary,line);
-		strcat(boundary,"--");
-		while((line = sspm_get_next_line(impl)) != 0){
-		    /*printf("Error: %s\n",line);*/
-		    if(strcmp(boundary,line)==0){
-			break;
-		    }
-		}
-		free(boundary);
-
-		break;
-	    }
-	    
-	    if(strncmp((line+2),parent_header->boundary,
-		       sizeof(parent_header->boundary)) == 0){
-		*end_part = action.end_part(part);
-
-		if(sspm_is_mime_boundary(line)){
-		    impl->state = END_OF_PART;
-		} else if ( sspm_is_mime_terminating_boundary(line)){
-		    impl->state = TERMINAL_END_OF_PART;
-		}
-		end = 1;
-	    } else {
-		/* Error, this is not the correct terminating boundary*/
-
-		/* read and discard until we get the right boundary.  */
-		    char* boundary;
-		    char msg[256];
-
-		    snprintf(msg,256,
-			     "Expected: %s--. Got: %s",
-			     parent_header->boundary,line);
-
-		    sspm_set_error(parent_header,
-		      SSPM_WRONG_BOUNDARY_ERROR,msg);
-
-		    /* Read until the paired terminating boundary */
-		    if((boundary = (char*)malloc(strlen(line)+5)) == 0){
-			fprintf(stderr,"Out of memory");
-			abort();
-		    }		 
-		    strcpy(boundary,line);
-		    strcat(boundary,"--");
-		    while((line = sspm_get_next_line(impl)) != 0){
-			if(strcmp(boundary,line)==0){
-			    break;
-			}
-		    }
-		    free(boundary);
-
-	    }	
-	} else {
-	    char* data=0;
-	    char* rtrn=0;
-	    *size = strlen(line);
-
-	    data = (char*)malloc(*size+2);
-	    assert(data != 0);
-	    if (header->encoding == SSPM_BASE64_ENCODING){
-		rtrn = decode_base64(data,line,size); 
-	    } else if(header->encoding == SSPM_QUOTED_PRINTABLE_ENCODING){
-		rtrn = decode_quoted_printable(data,line,size); 
-	    } 
-
-	    if(rtrn == 0){
-		strcpy(data,line);
-	    }
-
-	    /* add a end-of-string after the data, just in case binary
-               data from decode64 gets passed to a tring handling
-               routine in add_line  */
-	    data[*size+1]='\0';
-
-	    action.add_line(part,header,data,*size);
-
-	    free(data);
-	}
-    }
-
-    if (end == 0){
-	/* End the part if the input is exhausted */
-	*end_part = action.end_part(part);
-    }
-
-    return end_part;
-}
-
-
-void* sspm_make_multipart_subpart(struct mime_impl *impl,
-			    struct sspm_header *parent_header)
-{
-    struct sspm_header header;
-    char *line;
-    void* part;
-    size_t size;
-
-    if(parent_header->boundary == 0){
-	/* Error. Multipart headers must have a boundary*/
-	
-	sspm_set_error(parent_header,SSPM_NO_BOUNDARY_ERROR,0);
-	/* read all of the reamining lines */
-	while((line = sspm_get_next_line(impl)) != 0){
-	}  
-
-	return 0;
-    }
-
-
-    /* Step 1: Read the opening boundary */
-
-    if(get_line_type(impl->temp) != BOUNDARY){
-	while((line=sspm_get_next_line(impl)) != 0 ){
-	    if(sspm_is_mime_boundary(line)){
-
-		assert(parent_header != 0);
-
-		/* Check if it is the right boundary */
-		if(!sspm_is_mime_terminating_boundary(line) &&
-		   strncmp((line+2),parent_header->boundary, 
-			   sizeof(parent_header->boundary)) 
-		   == 0){
-		    /* The +2 in strncmp skips over the leading "--" */
-		    
-		    break;
-		} else {
-		    /* Got the wrong boundary, so read and discard
-                       until we get the right boundary.  */
-		    char* boundary;
-		    char msg[256];
-		    
-		    snprintf(msg,256,
-			     "Expected: %s. Got: %s",
-			     parent_header->boundary,line);
-
-		    sspm_set_error(parent_header,
-				   SSPM_WRONG_BOUNDARY_ERROR,msg);
-
-		    /* Read until the paired terminating boundary */
-		    if((boundary = (char*)malloc(strlen(line)+5)) == 0){
-			fprintf(stderr,"Out of memory");
-			abort();
-		    }
-		    strcpy(boundary,line);
-		    strcat(boundary,"--");
-		    while((line = sspm_get_next_line(impl)) != 0){
-			if(strcmp(boundary,line)==0){
-			    break;
-			}
-		    }
-		    free(boundary);
-		    
-		    return 0;
-		}
-	    }
-	}
-    }
-
-    /* Step 2: Get the part header */
-    sspm_read_header(impl,&header);
-
-    /* If the header is still listed as default, there was probably an
-       error */
-    if(header.def == 1 && header.error != SSPM_NO_ERROR){
-	sspm_set_error(&header,SSPM_NO_HEADER_ERROR,0);
-	return 0;
-    }
-
-    if(header.error!= SSPM_NO_ERROR){
-	sspm_store_part(impl,header,impl->level,0,0);
-	return 0;
-    }	
-
-    /* Step 3: read the body */
-    
-    if(header.major == SSPM_MULTIPART_MAJOR_TYPE){
-	struct sspm_header *child_header;
-	child_header = &(impl->parts[impl->part_no].header);
-
-	/* Store the multipart part */
-	sspm_store_part(impl,header,impl->level,0,0);
-
-	/* now get all of the sub-parts */
-	part = sspm_make_multipart_part(impl,child_header);
-
-	if(get_line_type(impl->temp) != TERMINATING_BOUNDARY){
-
-	    sspm_set_error(child_header,SSPM_NO_BOUNDARY_ERROR,impl->temp);
-	    return 0;
-	}
-	
-	sspm_get_next_line(impl); /* Step past the terminating boundary */
-
-    } else {
-	sspm_make_part(impl, &header,parent_header,&part,&size);
-
-	memset(&(impl->parts[impl->part_no]), 0, sizeof(struct sspm_part));
-
-	sspm_store_part(impl,header,impl->level,part,size);
-
-    }
-
-    return part;
-}
-
-void* sspm_make_multipart_part(struct mime_impl *impl,struct sspm_header *header)
-{
-    void *part=0;
-
-    /* Now descend a level into each of the children of this part */
-    impl->level++;
-
-    /* Now we are working on the CHILD */
-    memset(&(impl->parts[impl->part_no]), 0, sizeof(struct sspm_part));
-
-    do{
-	part = sspm_make_multipart_subpart(impl,header);
-
-	if (part==0){
-	    /* Clean up the part in progress */
-	    impl->parts[impl->part_no].header.major 
-		= SSPM_NO_MAJOR_TYPE;
-	    impl->parts[impl->part_no].header.minor 
-		= SSPM_NO_MINOR_TYPE;
-
-	}
-	
-
-    } while (get_line_type(impl->temp) != TERMINATING_BOUNDARY &&
-	impl->state != END_OF_INPUT);
-
-    impl->level--;
-
-    return 0;
-}
-
-
-void sspm_read_header(struct mime_impl *impl,struct sspm_header *header)
-{
-#define BUF_SIZE 1024
-#define MAX_HEADER_LINES 25
-
-    char *buf;
-    char header_lines[MAX_HEADER_LINES][BUF_SIZE]; /* HACK, hard limits */
-    int current_line = -1;
-    int end = 0;
-
-    memset(header_lines,0,sizeof(header_lines));
-    memset(header,0,sizeof(struct sspm_header));
-
-    /* Set up default header */
-    header->def = 1;
-    header->major = SSPM_TEXT_MAJOR_TYPE;
-    header->minor = SSPM_PLAIN_MINOR_TYPE;
-    header->error = SSPM_NO_ERROR;
-    header->error_text = 0;
-
-    /* Read all of the lines into memory */
-    while(end==0&& (buf=sspm_get_next_line(impl)) != 0){
-
-	enum line_type line_type = get_line_type(buf);
-	
-	switch(line_type){
-	    case BLANK: {
-		end = 1;
-		impl->state = END_OF_HEADER;
-		break;
-	    }
-
-	    case MAIL_HEADER:
-	    case MIME_HEADER: {	    
-		impl->state = IN_HEADER;
-		current_line++;
-		
-		assert(strlen(buf) < BUF_SIZE);
-		
-		strncpy(header_lines[current_line],buf,BUF_SIZE);
-		header_lines[current_line][BUF_SIZE-1] = '\0';
-		      
-		break;
-	    }
-	    
-	    case HEADER_CONTINUATION: {
-		char* last_line, *end;
-		char *buf_start;
-
-		if(current_line < 0){
-		    /* This is not really a continuation line, since
-                       we have not see any header line yet */
-		    sspm_set_error(header,SSPM_MALFORMED_HEADER_ERROR,buf);
-		    return;
-		}
-
-		last_line = header_lines[current_line];
-		end = (char*) ( (size_t)strlen(last_line)+
-				      (size_t)last_line);
-		
-		impl->state = IN_HEADER;
-
-		
-		/* skip over the spaces in buf start, and remove the new
-		   line at the end of the lat line */
-		if (last_line[strlen(last_line)-1] == '\n'){
-		    last_line[strlen(last_line)-1] = '\0';
-		}
-		buf_start = buf;
-		while(*buf_start == ' ' ||*buf_start == '\t' ){
-		    buf_start++;
-		}
-		
-		assert( strlen(buf_start) + strlen(last_line) < BUF_SIZE);
-		
-		strncat(last_line,buf_start, BUF_SIZE-strlen(last_line)-1);
-
-		break;
-	    }
-	    
-	    default: {
-		sspm_set_error(header,SSPM_MALFORMED_HEADER_ERROR,buf);
-		return;
-	    }
-	}
-    }
-	
-
-    for(current_line = 0;
-	current_line < MAX_HEADER_LINES && header_lines[current_line][0] != 0;
-	current_line++){
-	
-	sspm_build_header(header,header_lines[current_line]);
-    }
-
-
-}
-
-/* Root routine for parsing mime entries*/
-int sspm_parse_mime(struct sspm_part *parts, 
-		    size_t max_parts,
-		    struct sspm_action_map *actions,
-		    char* (*get_string)(char *s, size_t size, void* data),
-		    void *get_string_data,
-		    struct sspm_header *first_header
-    )
-{
-    struct mime_impl impl;
-    struct sspm_header header;
-    void *part;
-    int i;
-    (void)first_header;
-
-    /* Initialize all of the data */
-    memset(&impl,0,sizeof(struct mime_impl));
-    memset(&header,0,sizeof(struct sspm_header));
-
-    for(i = 0; i<(int)max_parts; i++){
-	parts[i].header.major = SSPM_NO_MAJOR_TYPE;
-	parts[i].header.minor = SSPM_NO_MINOR_TYPE;
-    }
-	
-    impl.parts = parts;
-    impl.max_parts = max_parts;
-    impl.part_no = 0;
-    impl.actions = actions;
-    impl.get_string = get_string;
-    impl.get_string_data = get_string_data;
-
-    /* Read the header of the message. This will be the email header,
-       unless first_header is specified. But ( HACK) that var is not
-       currently being used */
-    sspm_read_header(&impl,&header);
-
-    if(header.major == SSPM_MULTIPART_MAJOR_TYPE){
-	struct sspm_header *child_header;
-	child_header = &(impl.parts[impl.part_no].header);
-	
-	sspm_store_part(&impl,header,impl.level,0,0);
-
-	part = sspm_make_multipart_part(&impl,child_header);
-
-    } else {
-	void *part;
-	size_t size;
-	sspm_make_part(&impl, &header, 0,&part,&size);
-
-	memset(&(impl.parts[impl.part_no]), 0, sizeof(struct sspm_part));
-	
-	sspm_store_part(&impl,header,impl.level,part,size);
-    }
-
-    return 0;
-}
-
-void sspm_free_parts(struct sspm_part *parts, size_t max_parts)
-{
-     int i;
-    
-    for(i = 0; i<(int)max_parts && parts[i].header.major != SSPM_NO_MAJOR_TYPE;
-	i++){
-	sspm_free_header(&(parts[i].header));
-    }
-}
-
-void sspm_free_header(struct sspm_header *header)
-{
-    if(header->boundary!=0){
-	free(header->boundary);
-    }
-    if(header->minor_text!=0){
-	free(header->minor_text);
-    }
-    if(header->charset!=0){
-	free(header->charset);
-    }
-    if(header->filename!=0){
-	free(header->filename);
-    }
-    if(header->content_id!=0){
-	free(header->content_id);
-    }
-    if(header->error_text!=0){
-	free(header->error_text);
-    }
-}
-
-/***********************************************************************
-The remaining code is beased on code from the mimelite distribution,
-which has the following notice:
-
-| Authorship:
-|    Copyright (c) 1994 Gisle Hannemyr.
-|    Permission is granted to hack, make and distribute copies of this
-|    program as long as this copyright notice is not removed.
-|    Flames, bug reports, comments and improvements to:
-|       snail: Gisle Hannemyr, Brageveien 3A, 0452 Oslo, Norway
-|       email: Inet: gisle@oslonett.no
-
-The code is heavily modified by Eric Busboom. 
-
-***********************************************************************/
-
-char *decode_quoted_printable(char *dest, 
-				       char *src,
-				       size_t *size)
-{
-    int cc;
-    size_t i=0;
-
-    while (*src != 0 && i < *size) {
-	if (*src == '=') {
-
-	    src++; 
-	    if (!*src) {
-		break;
-	    }
-
-	    /* remove soft line breaks*/
-	    if ((*src == '\n') || (*src == '\r')){
-		src++;
-		if ((*src == '\n') || (*src == '\r')){
-		    src++;
-		}
-		continue;
-	    }
-
-	    cc  = isdigit(*src) ? (*src - '0') : (*src - 55);
-	    cc *= 0x10;
-	    src++; 
-	    if (!*src) {
-		break;
-	    }
-	    cc += isdigit(*src) ? (*src - '0') : (*src - 55);
-
-	    *dest = cc;
-
-	} else {
-	    *dest = *src;
-	}
-	
-	dest++;
-	src++;
-	i++;
-    }
-    
-    *dest = '\0';
-    
-    *size = i;
-    return(dest);
-}
-
-char *decode_base64(char *dest, 
-			     char *src,
-			     size_t *size)
-{
-    int cc = 0;
-    char buf[4] = {0,0,0,0};  
-    int p = 0;
-    int valid_data = 0;
-    size_t size_out=0;
-    
-    while (*src && p<(int)*size && (cc!=  -1)) {
-	
-	/* convert a character into the Base64 alphabet */
-	cc = *src++;
-	
-	if	((cc >= 'A') && (cc <= 'Z')) cc = cc - 'A';
-	else if ((cc >= 'a') && (cc <= 'z')) cc = cc - 'a' + 26;
-	else if ((cc >= '0') && (cc <= '9')) cc = cc - '0' + 52;
-	else if  (cc == '/')		     cc = 63;
-	else if  (cc == '+')		     cc = 62;
-	else                                 cc = -1;
-	
-	assert(cc<64);
-
-	/* If we've reached the end, fill the remaining slots in
-	   the bucket and do a final conversion */
-	if(cc== -1){
-	    if(valid_data == 0){
-		return 0;
-	    }
-
-	    while(p%4!=3){
-		p++;
-		buf[p%4] = 0;
-	    }
-	} else {
-	    buf[p%4] = cc;
-	    size_out++;
-	    valid_data = 1;
-	}
-
-	
-	/* When we have 4 base64 letters, convert them into three
-	   bytes */
-	if (p%4 == 3) {
-	    *dest++ =(buf[0]<< 2)|((buf[1] & 0x30) >> 4);
-	    *dest++ =((buf[1] & 0x0F) << 4)|((buf[2] & 0x3C) >> 2);
-	    *dest++ =((buf[2] & 0x03) << 6)|(buf[3] & 0x3F);
-
-	    memset(buf,0,4);
-	}
-
-	p++;
-
-    }
-    /* Calculate the size of the converted data*/
-   *size = ((int)(size_out/4))*3;
-    if(size_out%4 == 2) *size+=1;
-    if(size_out%4 == 3) *size+=2;
-
-    return(dest);
-}
-
-
-/***********************************************************************
-								       
- Routines to output MIME
-
-**********************************************************************/
-
-
-struct sspm_buffer {
-	char* buffer;
-	char* pos;
-	size_t buf_size;
-	int line_pos;
-};
-
-void sspm_append_string(struct sspm_buffer* buf, const char* string);
-void sspm_write_part(struct sspm_buffer *buf,struct sspm_part *part, int *part_num);
-
-void sspm_append_hex(struct sspm_buffer* buf, char ch)
-{
-    char tmp[4];
-
-    snprintf(tmp,sizeof(tmp),"=%02X",ch);
-
-    sspm_append_string(buf,tmp);
-}
-
-/* a copy of icalmemory_append_char */
-void sspm_append_char(struct sspm_buffer* buf, char ch)
-{
-    char *new_buf;
-    char *new_pos;
-
-    size_t data_length, final_length;
-
-    data_length = (size_t)buf->pos - (size_t)buf->buffer;
-
-    final_length = data_length + 2; 
-
-    if ( final_length > (size_t) buf->buf_size ) {
-	
-	buf->buf_size  = (buf->buf_size) * 2  + final_length +1;
-
-	new_buf = realloc(buf->buffer,buf->buf_size);
-
-	new_pos = (void*)((size_t)new_buf + data_length);
-	
-	buf->pos = new_pos;
-	buf->buffer = new_buf;
-    }
-
-    *(buf->pos) = ch;
-    buf->pos += 1;
-    *(buf->pos) = 0;
-}
-/* A copy of icalmemory_append_string */
-void sspm_append_string(struct sspm_buffer* buf, const char* string)
-{
-    char *new_buf;
-    char *new_pos;
-
-    size_t data_length, final_length, string_length;
-
-    string_length = strlen(string);
-    data_length = (size_t)buf->pos - (size_t)buf->buffer;    
-    final_length = data_length + string_length; 
-
-    if ( final_length >= (size_t) buf->buf_size) {
-
-	
-	buf->buf_size  = (buf->buf_size) * 2  + final_length;
-
-	new_buf = realloc(buf->buffer,buf->buf_size);
-
-	new_pos = (void*)((size_t)new_buf + data_length);
-	
-	buf->pos = new_pos;
-	buf->buffer = new_buf;
-    }
-    
-    strcpy(buf->pos, string);
-
-    buf->pos += string_length;
-}
-
-
-
-static int sspm_is_printable(char c)
-{
-    return (c >= 33) && (c <= 126) && (c != '=');
-
-} 
-                     
-
-void sspm_encode_quoted_printable(struct sspm_buffer *buf, char* data)
-{
-    char *p;
-    int lpos = 0;
-
-    for(p = data; *p != 0; p++){
-
-	if(sspm_is_printable(*p)){
-	    /* plain characters can represent themselves */
-	    /* RFC2045 Rule #2 */
-	       sspm_append_char(buf,*p);
-	       lpos++;
-	} else if ( *p == '\t' || *p == ' ' ) {
-
-	    /* For tabs and spaces, only encode if they appear at the
-               end of the line */
-	    /* RFC2045 Rule #3 */
-
-	   char n = *(p+1);
-
-	   if( n == '\n' || n == '\r'){
-	       sspm_append_hex(buf,*p);
-	       lpos += 3;
-	   } else {
-	       sspm_append_char(buf,*p);
-	       lpos++;
-	   }
-
-	} else if( *p == '\n' || *p == '\r'){
-	    sspm_append_char(buf,*p);
-
-	    lpos=0;
-
-	} else {
-	    /* All others need to be encoded */
-	    sspm_append_hex(buf,*p);
-	    lpos+=3;
-	}
-
-
-	/* Add line breaks */
-	if (lpos > 72){
-	    lpos = 0;
-	    sspm_append_string(buf,"=\n");
-	}
-    }
-}
-
-static char BaseTable[64] = {
-    'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P',
-    'Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f',
-    'g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v',
-    'w','x','y','z','0','1','2','3','4','5','6','7','8','9','+','/'
-};
-    
-void sspm_write_base64(struct sspm_buffer *buf, char* inbuf,int size )
-{
-    
-    char outbuf[4];
-    int i;
-
-    outbuf[0] = outbuf[1] = outbuf[2] = outbuf[3] = 65;
-
-    switch(size){
-	
-	case 4:
-	    outbuf[3] =   inbuf[2] & 0x3F;
-
-	case 3:
-	    outbuf[2] = ((inbuf[1] & 0x0F) << 2) | ((inbuf[2] & 0xC0) >> 6);
-
-	case 2:	
-	    outbuf[0] =  (inbuf[0] & 0xFC) >> 2;
-	    outbuf[1] = ((inbuf[0] & 0x03) << 4) | ((inbuf[1] & 0xF0) >> 4);
-	    break;
-
-	default:
-	    assert(0);
-    }
-
-    for(i = 0; i < 4; i++){
-
-	if(outbuf[i] == 65){
-	    sspm_append_char(buf,'=');
-	} else {
-	    sspm_append_char(buf,BaseTable[(int)outbuf[i]]);
-	}
-    }
-}
-             
-void sspm_encode_base64(struct sspm_buffer *buf, char* data, size_t size)
-{
-    char *p;
-    char inbuf[3];
-    int i = 0;
-    int first = 1;
-    int lpos = 0;
-    (void)size;
-
-    inbuf[0] = inbuf[1] = inbuf[2]  = 0;
-
-    for (p = data; *p !=0; p++){
-                         
-	if (i%3 == 0 && first == 0){
-
-	    sspm_write_base64(buf, inbuf, 4);
-	    lpos+=4;
-
-	    inbuf[0] = inbuf[1] = inbuf[2] = 0;
-	}
-
-	assert(lpos%4 == 0);
-
-	if (lpos == 72){
-	    sspm_append_string(buf,"\n");
-	    lpos = 0;
-	}
-
-	inbuf[i%3] = *p;
-
-	i++;
-	first = 0;
-
-    }
-
-    
-    /* If the inbuf was not exactly filled on the last byte, we need
-       to spit out the odd bytes that did get in -- either one or
-       two. This will result in an output of two bytes and '==' or
-       three bytes and '=', respectively */
-    
-    if (i%3 == 1 && first == 0){
-	    sspm_write_base64(buf, inbuf, 2);
-    } else if (i%3 == 2 && first == 0){
-	    sspm_write_base64(buf, inbuf, 3);
-    }
-
-}
-
-void sspm_write_header(struct sspm_buffer *buf,struct sspm_header *header)
-{
-    
-    int i;
-    char temp[TMP_BUF_SIZE];			       
-    const char* major; 
-    const char* minor; 
-    
-    /* Content-type */
-
-    major = sspm_major_type_string(header->major);
-    minor = sspm_minor_type_string(header->minor);
-
-    if(header->minor == SSPM_UNKNOWN_MINOR_TYPE ){
-	assert(header->minor_text !=0);
-	minor = header->minor_text;
-    }
-    
-    snprintf(temp,sizeof(temp),"Content-Type: %s/%s",major,minor);
-
-    sspm_append_string(buf,temp);
-
-    if(header->boundary != 0){
-	snprintf(temp,sizeof(temp),";boundary=\"%s\"",header->boundary);
-	sspm_append_string(buf,temp);
-    }
-    
-    /* Append any content type parameters */    
-    if(header->content_type_params != 0){
-	for(i=0; *(header->content_type_params[i])!= 0;i++){
-	    strncpy(temp,header->content_type_params[i],sizeof(temp));
-	    sspm_append_char(buf,';');
-	    sspm_append_string(buf,temp);
-	}
-    }
-    
-    sspm_append_char(buf,'\n');
-
-    /*Content-Transfer-Encoding */
-
-    if(header->encoding != SSPM_UNKNOWN_ENCODING &&
-	header->encoding != SSPM_NO_ENCODING){
-	snprintf(temp,sizeof(temp),"Content-Transfer-Encoding: %s\n",
-		sspm_encoding_string(header->encoding));
-    }
-
-    sspm_append_char(buf,'\n');
-
-}
-
-void sspm_write_multipart_part(struct sspm_buffer *buf,
-			       struct sspm_part *parts,
-			       int* part_num)
-{
-
-    int parent_level, level;
-    struct sspm_header *header = &(parts[*part_num].header);
-    /* Write the header for the multipart part */
-    sspm_write_header(buf,header);
-
-    parent_level = parts[*part_num].level;
-
-    (*part_num)++;
-
-    level = parts[*part_num].level;
-
-    while(parts[*part_num].header.major != SSPM_NO_MAJOR_TYPE &&
-	  level == parent_level+1){
-
-	assert(header->boundary);
-	sspm_append_string(buf,header->boundary);
-	sspm_append_char(buf,'\n');
-	
-	if (parts[*part_num].header.major == SSPM_MULTIPART_MAJOR_TYPE){
-	    sspm_write_multipart_part(buf,parts,part_num);
-	} else {
-	    sspm_write_part(buf, &(parts[*part_num]), part_num);
-	}	
-
-	(*part_num)++;
-	level =  parts[*part_num].level;
-    }
-   
-    sspm_append_string(buf,"\n\n--");
-    sspm_append_string(buf,header->boundary);
-    sspm_append_string(buf,"\n");
-
-    (*part_num)--; /* undo last, spurious, increment */
-}
-
-void sspm_write_part(struct sspm_buffer *buf,struct sspm_part *part,int *part_num)
-{
-    (void)part_num;
-
-    /* Write header */
-    sspm_write_header(buf,&(part->header));
-
-    /* Write part data */
-
-    if(part->data == 0){
-	return;
-    }
-
-    if(part->header.encoding == SSPM_BASE64_ENCODING) {
-	assert(part->data_size != 0);
-	sspm_encode_base64(buf,part->data,part->data_size);
-    } else if(part->header.encoding == SSPM_QUOTED_PRINTABLE_ENCODING) {
-	sspm_encode_quoted_printable(buf,part->data);
-    } else {
-	sspm_append_string(buf,part->data);
-    }
-
-    sspm_append_string(buf,"\n\n");
-}
-
-int sspm_write_mime(struct sspm_part *parts,size_t num_parts,
-		    char **output_string, const char* header)
-{
-    struct sspm_buffer buf;
-    int part_num =0;
-    (void)num_parts;
-
-    buf.buffer = malloc(4096);
-    buf.pos = buf.buffer;
-    buf.buf_size = 10;
-    buf.line_pos = 0;
-
-    /* write caller's header */
-    if(header != 0){
-	sspm_append_string(&buf,header);
-    }
-
-    if(buf.buffer[strlen(buf.buffer)-1] != '\n'){
-	sspm_append_char(&buf,'\n');
-    }
-
-    /* write mime-version header */
-    sspm_append_string(&buf,"Mime-Version: 1.0\n");
-
-    /* End of header */
-
-    /* Write body parts */
-    while(parts[part_num].header.major != SSPM_NO_MAJOR_TYPE){
-	if (parts[part_num].header.major == SSPM_MULTIPART_MAJOR_TYPE){
-	    sspm_write_multipart_part(&buf,parts,&part_num);
-	} else {
-	    sspm_write_part(&buf, &(parts[part_num]), &part_num);
-	}	
-
-	part_num++;
-    }
-
-
-    *output_string = buf.buffer;
-
-    return 0;
-}
-
diff --git a/libkcal/libical/src/libical/sspm.h b/libkcal/libical/src/libical/sspm.h
deleted file mode 100644
index 00be0821..00000000
--- a/libkcal/libical/src/libical/sspm.h
+++ /dev/null
@@ -1,144 +0,0 @@
-/* -*- Mode: C -*-
-  ======================================================================
-  FILE: sspm.h Mime Parser
-  CREATOR: eric 25 June 2000
-
-
- (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
-     http://www.softwarestudio.org
-
- The contents of this file are subject to the Mozilla Public License
- Version 1.0 (the "License"); you may not use this file except in
- compliance with the License. You may obtain a copy of the License at
- http://www.mozilla.org/MPL/
- 
- Software distributed under the License is distributed on an "AS IS"
- basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
- the License for the specific language governing rights and
- limitations under the License.
- 
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-  The Initial Developer of the Original Code is Eric Busboom
-
- (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
- ======================================================================*/
-
-#ifndef SSPM_H
-#define SSPM_H
-
-enum sspm_major_type {
-    SSPM_NO_MAJOR_TYPE,
-    SSPM_TEXT_MAJOR_TYPE,
-    SSPM_IMAGE_MAJOR_TYPE,
-    SSPM_AUDIO_MAJOR_TYPE,
-    SSPM_VIDEO_MAJOR_TYPE,
-    SSPM_APPLICATION_MAJOR_TYPE,
-    SSPM_MULTIPART_MAJOR_TYPE,
-    SSPM_MESSAGE_MAJOR_TYPE,
-    SSPM_UNKNOWN_MAJOR_TYPE
-};
-
-enum sspm_minor_type {
-    SSPM_NO_MINOR_TYPE,
-    SSPM_ANY_MINOR_TYPE,
-    SSPM_PLAIN_MINOR_TYPE,
-    SSPM_RFC822_MINOR_TYPE,
-    SSPM_DIGEST_MINOR_TYPE,
-    SSPM_CALENDAR_MINOR_TYPE,
-    SSPM_MIXED_MINOR_TYPE,
-    SSPM_RELATED_MINOR_TYPE,
-    SSPM_ALTERNATIVE_MINOR_TYPE,
-    SSPM_PARALLEL_MINOR_TYPE,
-    SSPM_UNKNOWN_MINOR_TYPE
-};
-
-enum sspm_encoding {
-    SSPM_NO_ENCODING,
-    SSPM_QUOTED_PRINTABLE_ENCODING,
-    SSPM_8BIT_ENCODING,
-    SSPM_7BIT_ENCODING,
-    SSPM_BINARY_ENCODING,
-    SSPM_BASE64_ENCODING,
-    SSPM_UNKNOWN_ENCODING
-};
-
-enum sspm_error{
-    SSPM_NO_ERROR,
-    SSPM_UNEXPECTED_BOUNDARY_ERROR,
-    SSPM_WRONG_BOUNDARY_ERROR,
-    SSPM_NO_BOUNDARY_ERROR,
-    SSPM_NO_HEADER_ERROR,
-    SSPM_MALFORMED_HEADER_ERROR
-};
-
-
-struct sspm_header
-{
-	int def;
-	char* boundary;
-	enum sspm_major_type major;
-	enum sspm_minor_type minor;
-	char *minor_text;
-	char ** content_type_params;
-	char* charset;
-	enum sspm_encoding encoding;
-	char* filename;
-	char* content_id;
-	enum sspm_error error;
-	char* error_text;
-};
-
-struct sspm_part {
-	struct sspm_header header;
-	int level;
-	size_t data_size;
-	void *data;
-};
-
-struct sspm_action_map {
-	enum sspm_major_type major;
-	enum sspm_minor_type minor;
-	void* (*new_part)();
-	void (*add_line)(void *part, struct sspm_header *header, 
-			 const char* line, size_t size);
-	void* (*end_part)(void* part);
-	void (*free_part)(void *part);
-};
-
-const char* sspm_major_type_string(enum sspm_major_type type);
-const char* sspm_minor_type_string(enum sspm_minor_type type);
-const char* sspm_encoding_string(enum sspm_encoding type);
-
-int sspm_parse_mime(struct sspm_part *parts, 
-		    size_t max_parts,
-		    struct sspm_action_map *actions,
-		    char* (*get_string)(char *s, size_t size, void* data),
-		    void *get_string_data,
-		    struct sspm_header *first_header
-    );
-
-void sspm_free_parts(struct sspm_part *parts, size_t max_parts);
-
-char *decode_quoted_printable(char *dest, 
-				       char *src,
-				       size_t *size);
-char *decode_base64(char *dest, 
-			     char *src,
-			     size_t *size);
-
-
-int sspm_write_mime(struct sspm_part *parts,size_t num_parts,
-		    char **output_string, const char* header);
-
-#endif /*SSPM_H*/
diff --git a/libkcal/libical/src/libical/vsnprintf.c b/libkcal/libical/src/libical/vsnprintf.c
deleted file mode 100644
index 982920b2..00000000
--- a/libkcal/libical/src/libical/vsnprintf.c
+++ /dev/null
@@ -1,172 +0,0 @@
-#ifndef WIN32
-#include "config.h"
-#endif
-#ifndef HAVE_SNPRINTF
-/*
- * Revision 12: http://theos.com/~deraadt/snprintf.c
- *
- * Copyright (c) 1997 Theo de Raadt
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef WIN32
-#include <sys/param.h>
-#include <sys/mman.h>
-#include <unistd.h>
-#endif
-#include <sys/types.h>
-#include <signal.h>
-#include <stdio.h>
-#include <string.h>
-#if __STDC__
-#include <stdarg.h>
-#include <stdlib.h>
-#else
-#include <varargs.h>
-#endif
-#include <setjmp.h>
-
-#ifndef roundup
-#define roundup(x, y) ((((x)+((y)-1))/(y))*(y))
-#endif
-
-static int pgsize;
-static char *curobj;
-static sigjmp_buf bail;
-
-#define EXTRABYTES	2	/* XXX: why 2? you don't want to know */
-
-static char *
-msetup(str, n)
-	char *str;
-	size_t n;
-{
-	char *e;
-
-	if (n == 0)
-		return NULL;
-	if (pgsize == 0)
-		pgsize = getpagesize();
-	curobj = (char *)malloc(n + EXTRABYTES + pgsize * 2);
-	if (curobj == NULL)
-		return NULL;
-	e = curobj + n + EXTRABYTES;
-	e = (char *)roundup((unsigned long)e, pgsize);
-	if (mprotect(e, pgsize, PROT_NONE) == -1) {
-		free(curobj);
-		curobj = NULL;
-		return NULL;
-	}
-	e = e - n - EXTRABYTES;
-	*e = '\0';
-	return (e);
-}
-
-static void
-mcatch(int i)
-{
-	siglongjmp(bail, 1);
-}
-
-static void
-mcleanup(str, n, p)
-	char *str;
-	size_t n;
-	char *p;
-{
-	strncpy(str, p, n-1);
-	str[n-1] = '\0';
-	if (mprotect((caddr_t)(p + n + EXTRABYTES), pgsize,
-	    PROT_READ|PROT_WRITE|PROT_EXEC) == -1)
-		mprotect((caddr_t)(p + n + EXTRABYTES), pgsize,
-		    PROT_READ|PROT_WRITE);
-	free(curobj);
-}
-
-int
-#if __STDC__
-vsnprintf(char *str, size_t n, char const *fmt, va_list ap)
-#else
-vsnprintf(str, n, fmt, ap)
-	char *str;
-	size_t n;
-	char *fmt;
-	char *ap;
-#endif
-{
-	struct sigaction osa, nsa;
-	char *p;
-	int ret = n + 1;	/* if we bail, indicated we overflowed */
-
-	memset(&nsa, 0, sizeof nsa);
-	nsa.sa_handler = mcatch;
-	sigemptyset(&nsa.sa_mask);
-
-	p = msetup(str, n);
-	if (p == NULL) {
-		*str = '\0';
-		return 0;
-	}
-	if (sigsetjmp(bail, 1) == 0) {
-		if (sigaction(SIGSEGV, &nsa, &osa) == -1) {
-			mcleanup(str, n, p);
-			return (0);
-		}
-		ret = vsprintf(p, fmt, ap);
-	}
-	mcleanup(str, n, p);
-	(void) sigaction(SIGSEGV, &osa, NULL);
-	return (ret);
-}
-
-int
-#if __STDC__
-snprintf(char *str, size_t n, char const *fmt, ...)
-#else
-snprintf(str, n, fmt, va_alist)
-	char *str;
-	size_t n;
-	char *fmt;
-	va_dcl
-#endif
-{
-	va_list ap;
-#if __STDC__
-	va_start(ap, fmt);
-#else
-	va_start(ap);
-#endif
-
-	return (vsnprintf(str, n, fmt, ap));
-	va_end(ap);
-}
-
-
-#else
-
-/* ANSI C forbids an empty source file... */
-
-static void vsnprintf_dummy_func() {
-   vsnprintf_dummy_func();
-}
-
-#endif
diff --git a/libkcal/libical/src/libicalss/Makefile.am b/libkcal/libical/src/libicalss/Makefile.am
deleted file mode 100644
index d2c1396b..00000000
--- a/libkcal/libical/src/libicalss/Makefile.am
+++ /dev/null
@@ -1,35 +0,0 @@
-
-noinst_LTLIBRARIES = libicalss.la
-
-AM_YFLAGS =-d -v -p ss
-AM_LFLAGS = -Pss
-LEX_OUTPUT_ROOT = lex.ss
-
-INCLUDES = -I../libical -I$(srcdir)/../libical
-
-libicalss_la_SOURCES =		\
-	icalclassify.c		\
-	icalclassify.h
-
-# We don't need icalss.h, but it needs to be built...
-libicalss_la_COMPILE_FIRST = ../libical/ical.h icalss.h
-
-COMBINEDHEADERS = \
-	$(srcdir)/icalclassify.h 
-
-icalss.h: $(COMBINEDHEADERS)
-	echo '#ifdef __cplusplus'	  >  icalss.h
-	echo 'extern "C" {'		  >> icalss.h
-	echo '#endif'			  >> icalss.h
-	cat $(COMBINEDHEADERS)				\
-	| egrep -v "#include.*\"ical"			\
-	| egrep -v "#include.*\"pvl\.h\""		\
-	| egrep -v '\$$(Id|Locker): .+\$$'>> icalss.h
-	echo '#ifdef __cplusplus'	  >> icalss.h
-	echo '}'			  >> icalss.h
-	echo '#endif'			  >> icalss.h
-
-noinst_HEADERS = icalss.h icalclassify.h 
-
-CLEANFILES = icalss.h
-
diff --git a/libkcal/libical/src/libicalss/icalclassify.c b/libkcal/libical/src/libicalss/icalclassify.c
deleted file mode 100644
index 1cc848a1..00000000
--- a/libkcal/libical/src/libicalss/icalclassify.c
+++ /dev/null
@@ -1,752 +0,0 @@
-/* -*- Mode: C -*-
-    ======================================================================
-    FILE: icalclassify.c
-    CREATOR: ebusboom 23 aug 2000
-  
-    
-    (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
-        http://www.softwarestudio.org
-    
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of either: 
-    
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-    
-    Or:
-    
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-
-    ======================================================================*/
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "ical.h"
-#include "icalclassify.h"
-#include "icalmemory.h"
-
-#include <ctype.h>   /* For tolower() */
-#include <string.h> /* for index() */
-#include <stdlib.h> /* for malloc and free */
-
-
-
-struct icalclassify_parts {
-    icalcomponent *c;
-    icalcomponent_kind inner_kind;
-    icalproperty_method method;
-    char* organizer;
-    icalparameter_partstat reply_partstat;
-    char* reply_attendee;
-    char* uid;
-    int sequence;
-    struct icaltimetype dtstamp;	
-    struct icaltimetype recurrence_id;
-}; 
-	
-
-char* icalclassify_lowercase(const char* str)
-{
-    char* p = 0;
-    char *xnew;
-
-    if(str ==0){
-	return 0;
-    }
-
-    xnew = icalmemory_strdup(str);
-    for(p = xnew; *p!=0; p++){
-	*p = tolower(*p);
-    }
-
-    return xnew;
-}
-
-
-
-icalproperty* icalclassify_find_attendee(icalcomponent *c, 
-						  const char* attendee)
-{
-    icalproperty *p;
-    icalcomponent* inner;
-    char* lattendee;
-    char* upn;
-
-    if(attendee == 0){
-        return 0;
-    }
-
-    lattendee = icalclassify_lowercase(attendee);
-    upn =  strchr(lattendee,':');
-
-    if (upn== 0){
-        upn = lattendee;
-    } else {
-        upn++; /* skip the ";"*/
-    }
-
-    inner = icalcomponent_get_first_real_component(c);
-
-    for(p  = icalcomponent_get_first_property(inner,ICAL_ATTENDEE_PROPERTY);
-	p != 0;
-	p  = icalcomponent_get_next_property(inner,ICAL_ATTENDEE_PROPERTY))
-    {
-	char* this_upn;
-	char* this_attendee
-	    = icalclassify_lowercase(icalproperty_get_attendee(p));
-	 if ( !this_attendee ) continue;
-	 this_upn = strchr(this_attendee,':');
-
-        if(this_upn == 0){
-            continue;
-        } else {
-            this_upn++;
-        }
-
-	if(strcmp(this_upn,upn)==0){
-			free(lattendee);
-			free(this_attendee);
-            return p;
-	}
-
-		free(this_attendee);
-    }
-	free(lattendee);
-
-    return 0;
-
-}
-
-void icalssutil_free_parts(struct icalclassify_parts *parts)
-{
-    if(parts == 0){
-	return;
-    }
-
-    if(parts->organizer != 0){
-	free(parts->organizer);
-    }
-
-    if(parts->uid != 0){
-	free(parts->uid);
-    }
-
-    if(parts->reply_attendee){
-	free(parts->reply_attendee);
-    }
-}
-
-void icalssutil_get_parts(icalcomponent* c,  
-			  struct icalclassify_parts* parts)
-{
-    icalproperty *p;
-    icalcomponent *inner;
-
-    memset(parts,0,sizeof(struct icalclassify_parts));
-
-    parts->method = ICAL_METHOD_NONE;
-    parts->sequence = 0;
-    parts->reply_partstat = ICAL_PARTSTAT_NONE;
-
-    if(c == 0){
-	return;
-    }
-
-    parts->c = c;
-
-    p = icalcomponent_get_first_property(c,ICAL_METHOD_PROPERTY);
-    if(p!=0){
-	parts->method = icalproperty_get_method(p);
-    }
-
-    inner = icalcomponent_get_first_real_component(c);
-
-    parts->inner_kind = icalcomponent_isa(inner);
-
-    p = icalcomponent_get_first_property(inner,ICAL_ORGANIZER_PROPERTY);
-    if(p!=0){
-      const char *p_organizer = icalproperty_get_organizer(p);
-      if (p_organizer!=0) {
-        parts->organizer = strdup(p_organizer);
-      }
-    }
-
-    p = icalcomponent_get_first_property(inner,ICAL_SEQUENCE_PROPERTY);    
-    if(p!=0){
-	parts->sequence = icalproperty_get_sequence(p);
-    }
-
-    p = icalcomponent_get_first_property(inner,ICAL_UID_PROPERTY);
-    if(p!=0){
-      const char *p_uid = icalproperty_get_uid(p);
-      if (p_uid!=0) {
-        parts->uid = strdup(p_uid);
-      }
-    }
-
-    p = icalcomponent_get_first_property(inner,ICAL_RECURRENCEID_PROPERTY);
-    if(p!=0){
-	parts->recurrence_id = icalproperty_get_recurrenceid(p);
-    }
-
-    p = icalcomponent_get_first_property(inner,ICAL_DTSTAMP_PROPERTY);
-    if(p!=0){
-	parts->dtstamp = icalproperty_get_dtstamp(p);
-    }
-
-    if(parts->method==ICAL_METHOD_REPLY){
-	icalparameter *param;
-	p  = icalcomponent_get_first_property(inner,ICAL_ATTENDEE_PROPERTY);
-
-	if(p!=0){
-	    const char *attendee = 0;
-	    param = icalproperty_get_first_parameter(p,ICAL_PARTSTAT_PARAMETER);
-	    
-	    if(param != 0){
-		parts->reply_partstat = 
-		    icalparameter_get_partstat(param);
-	    }
-	    attendee = icalproperty_get_attendee(p);
-	    if ( attendee )
-		parts->reply_attendee = strdup( attendee );
-	}
-
-    }    
-
-
-}
-
-
-int icalssutil_is_rescheduled(icalcomponent* a,icalcomponent* b)
-{
-    icalproperty *p1,*p2;
-    icalcomponent *i1,*i2;
-    int i;
-
-    icalproperty_kind kind_array[] = {
-	ICAL_DTSTART_PROPERTY,
-	ICAL_DTEND_PROPERTY,
-	ICAL_DURATION_PROPERTY,
-	ICAL_DUE_PROPERTY,
-	ICAL_RRULE_PROPERTY,
-	ICAL_RDATE_PROPERTY,
-	ICAL_EXRULE_PROPERTY,
-	ICAL_EXDATE_PROPERTY,
-	ICAL_NO_PROPERTY
-    };
-
-    i1 = icalcomponent_get_first_real_component(a);
-    i2 = icalcomponent_get_first_real_component(b);
-
-    for(i =0; kind_array[i] != ICAL_NO_PROPERTY; i++){
-	p1 = icalcomponent_get_first_property(i1,kind_array[i]);
-	p2 = icalcomponent_get_first_property(i2,kind_array[i]);
-	
-	if( (p1!=0)^(p2!=0) ){
-	    /* Return true if the property exists in one component and not
-	       the other */
-	    return 1;
-	}
-	
-	if(p1 && strcmp(icalproperty_as_ical_string(p1),
-			icalproperty_as_ical_string(p2)) != 0){
-	    return 1;
-	}
-    }
-
-    return 0;
-    
-}
-
-#define icalclassify_pre \
-    int rtrn =0; 
-
-#define icalclassify_post \
-    return rtrn;
-
-
-int icalclassify_publish_new(struct icalclassify_parts *comp, 
-				struct icalclassify_parts *match, 
-				const char* user)
-{
-    icalclassify_pre;
-    (void)user;
-
-    if(comp->method == ICAL_METHOD_PUBLISH &&
-	match == 0 && comp->inner_kind != ICAL_VFREEBUSY_COMPONENT){
-	rtrn = 1;
-    }
-	
-    icalclassify_post;
-
-}
-
-int icalclassify_publish_update(struct icalclassify_parts *comp, 
-				struct icalclassify_parts *match, 
-				const char* user)
-{
-    icalclassify_pre;
-    (void)user;
-
-    if(comp->method == ICAL_METHOD_PUBLISH &&
-	match !=0 && comp->inner_kind != ICAL_VFREEBUSY_COMPONENT){
-	rtrn = 1;
-    }
-	
-    icalclassify_post;
-
-}
-
-int icalclassify_publish_freebusy(struct icalclassify_parts *comp, 
-				struct icalclassify_parts *match, 
-				const char* user)
-{
-    icalclassify_pre;
-
-    (void)match;
-    (void)user;
-    if(comp->method == ICAL_METHOD_PUBLISH &&
-       comp->inner_kind == ICAL_VFREEBUSY_COMPONENT){
-	rtrn = 1;
-    }
-	
-    icalclassify_post;
-
-}
-
-
-int icalclassify_request_new(struct icalclassify_parts *comp, 
-				    struct icalclassify_parts *match, 
-				    const char* user)
-{
-    /* Method is  REQUEST, and there is no match */
-
-    icalclassify_pre
-    (void)user;
-
-    if(match->c==0 && comp->method == ICAL_METHOD_REQUEST){
-	rtrn = 1;
-    }
-
-    icalclassify_post
-
-}
-
-int icalclassify_request_update(
-    struct icalclassify_parts *comp,
-    struct icalclassify_parts *match, 
-    const char* user)
-{
-    /* REQUEST method, Higher SEQUENCE than match, and all
-       time-related properties are unchanged */
-    
-    icalclassify_pre
-    (void)user;
-
-    if (match != 0 &&
-	comp->sequence >= match->sequence &&
-	!icalssutil_is_rescheduled(comp->c,match->c)){
-	rtrn = 1;
-    }
-
-    icalclassify_post
-
-}
-
-int icalclassify_request_reschedule(
-    struct icalclassify_parts *comp,
-    struct icalclassify_parts *match, 
-    const char* user)
-{
-    /* REQUEST method, Higher SEQUENCE than match, and one or more
-       time-related properties are changed */
-    icalclassify_pre
-    (void)user;
-
-    if (match->c != 0 &&
-	comp->sequence > match->sequence &&
-	icalssutil_is_rescheduled(comp->c,match->c)){
-	rtrn = 1;
-    }
-
-    icalclassify_post
-
-}
-
-int icalclassify_request_delegate(
-    struct icalclassify_parts *comp,
-    struct icalclassify_parts *match, 
-    const char* user)
-{
-    icalproperty* attendee;
-    icalparameter* param;
-    icalclassify_pre;
-    (void)match;
-
-    attendee = icalclassify_find_attendee(comp->c,user);
-
-    if(attendee == 0){
-        return 0;
-    }
-
-    param = icalproperty_get_first_parameter(attendee,ICAL_DELEGATEDFROM_PARAMETER);
-	    
-    if (param != 0){
-	rtrn = 1;
-    }
-
-    icalclassify_post
-
-}
-
-int icalclassify_request_new_organizer(
-    struct icalclassify_parts *comp,
-    struct icalclassify_parts *match, 
-    const char* user)
-{
-    /*   Organizer has changed between match and component */
-    icalclassify_pre
-    icalerror_set_errno(ICAL_UNIMPLEMENTED_ERROR);
-    icalclassify_post
-    (void)comp;
-    (void)match;
-    (void)user;
-
-}
-
-int icalclassify_request_status(
-    struct icalclassify_parts *comp,
-    struct icalclassify_parts *match, 
-    const char* user)
-{
-    icalclassify_pre
-    icalerror_set_errno(ICAL_UNIMPLEMENTED_ERROR);
-    icalclassify_post
-    (void)comp;
-    (void)match;
-    (void)user;
-}
-
-int icalclassify_request_forward(
-    struct icalclassify_parts *comp,
-    struct icalclassify_parts *match, 
-    const char* user)
-{
-    icalclassify_pre
-    icalerror_set_errno(ICAL_UNIMPLEMENTED_ERROR);
-    icalclassify_post
-    (void)comp;
-    (void)match;
-    (void)user;
-}
-
-int icalclassify_request_freebusy(
-    struct icalclassify_parts *comp,
-    struct icalclassify_parts *match, 
-    const char* user)
-{
-    icalclassify_pre
-    icalerror_set_errno(ICAL_UNIMPLEMENTED_ERROR);
-    icalclassify_post
-    (void)comp;
-    (void)match;
-    (void)user;
-}
-
-int icalclassify_reply_accept(
-    struct icalclassify_parts *comp,
-    struct icalclassify_parts *match, 
-    const char* user)
-{
-    icalproperty* attendee;
-    icalclassify_pre;
-    (void)user;
-
-    attendee = icalclassify_find_attendee(match->c,comp->reply_attendee);
-
-    if(attendee != 0&&
-       comp->reply_partstat == ICAL_PARTSTAT_ACCEPTED){
-	rtrn = 1;
-    }
-
-    icalclassify_post
-}
-int icalclassify_reply_decline(
-    struct icalclassify_parts *comp,
-    struct icalclassify_parts *match, 
-    const char* user)
-{
-    icalproperty* attendee;
-    icalclassify_pre;
-    (void)user;
-
-    attendee = icalclassify_find_attendee(match->c,comp->reply_attendee);
-
-
-    if( attendee != 0 &&
-       comp->reply_partstat == ICAL_PARTSTAT_DECLINED){
-	rtrn = 1;
-    }
-    icalclassify_post
-}
-int icalclassify_reply_delegate(
-    struct icalclassify_parts *comp,
-    struct icalclassify_parts *match, 
-    const char* user)
-{
-    icalproperty* attendee;
-    icalclassify_pre;
-    (void)user;
-
-    attendee = icalclassify_find_attendee(match->c,comp->reply_attendee);
-
-    if( attendee != 0 &&
-       comp->reply_partstat == ICAL_PARTSTAT_DELEGATED){
-	rtrn = 1;
-    }
-    icalclassify_post
-}
-int icalclassify_reply_crasher_accept(
-    struct icalclassify_parts *comp,
-    struct icalclassify_parts *match, 
-    const char* user)
-{
-    icalproperty* attendee;
-    icalclassify_pre;
-    (void)user;
-
-    attendee= icalclassify_find_attendee(match->c,comp->reply_attendee);
-
-    if(attendee == 0 &&
-       comp->reply_partstat == ICAL_PARTSTAT_ACCEPTED){
-	rtrn = 1;
-    }
-    icalclassify_post
-}
-int icalclassify_reply_crasher_decline(
-    struct icalclassify_parts *comp,
-    struct icalclassify_parts *match, 
-    const char* user)
-{
-    icalproperty* attendee;
-    icalclassify_pre;
-    (void)user;
-
-
-    attendee = icalclassify_find_attendee(match->c,comp->reply_attendee);
-
-    if(attendee == 0 &&
-       comp->reply_partstat == ICAL_PARTSTAT_DECLINED){
-	rtrn = 1;
-    }
-    icalclassify_post
-}
-int icalclassify_add_instance(
-    struct icalclassify_parts *comp,
-    struct icalclassify_parts *match, 
-    const char* user)
-{
-    icalclassify_pre
-    (void)match;
-    (void)user;
-
-    if(comp->method == ICAL_METHOD_ADD){
-	rtrn = 1;
-    }
-    icalclassify_post
-}
-int icalclassify_cancel_event(
-    struct icalclassify_parts *comp,
-    struct icalclassify_parts *match, 
-    const char* user)
-{
-    icalclassify_pre
-    (void)match;
-    (void)user;
-    if(comp->method == ICAL_METHOD_CANCEL){
-	rtrn = 1;
-    }
-    icalclassify_post
-}
-int icalclassify_cancel_instance(
-    struct icalclassify_parts *comp,
-    struct icalclassify_parts *match, 
-    const char* user)
-{
-    icalclassify_pre
-    (void)match;
-    (void)user;
-    if(comp->method == ICAL_METHOD_CANCEL){
-	rtrn = 1;
-    }
-    icalclassify_post
-}
-int icalclassify_cancel_all(
-    struct icalclassify_parts *comp,
-    struct icalclassify_parts *match, 
-    const char* user)
-{
-    icalclassify_pre
-    (void)match;
-    (void)user;
-    if(comp->method == ICAL_METHOD_CANCEL){
-	rtrn = 1;
-    }
-    icalclassify_post
-}
-int icalclassify_refesh(
-    struct icalclassify_parts *comp,
-    struct icalclassify_parts *match, 
-    const char* user)
-{
-    icalclassify_pre
-    (void)match;
-    (void)user;
-    if(comp->method == ICAL_METHOD_REFRESH){
-	rtrn = 1;
-    }
-    icalclassify_post
-}
-int icalclassify_counter(
-    struct icalclassify_parts *comp,
-    struct icalclassify_parts *match, 
-    const char* user)
-{
-    icalclassify_pre
-    (void)match;
-    (void)user;
-    if(comp->method == ICAL_METHOD_COUNTER){
-	rtrn = 1;
-    }
-    icalclassify_post
-}
-int icalclassify_delinecounter(
-    struct icalclassify_parts *comp,
-    struct icalclassify_parts *match, 
-    const char* user)
-{
-    icalclassify_pre
-    (void)match;
-    (void)user;
-
-    if(comp->method == ICAL_METHOD_DECLINECOUNTER){
-	rtrn = 1;
-    }
-	
-    icalclassify_post
-}
-
-struct icalclassify_map {
-	icalproperty_method method;
-	int (*fn)(struct icalclassify_parts *comp,struct icalclassify_parts *match, const char* user);
-	icalproperty_xlicclass class;
-} icalclassify_map[] = 
-{ {ICAL_METHOD_PUBLISH,icalclassify_publish_new,ICAL_XLICCLASS_PUBLISHNEW},
- {ICAL_METHOD_PUBLISH,icalclassify_publish_update,ICAL_XLICCLASS_PUBLISHUPDATE},
- {ICAL_METHOD_PUBLISH,icalclassify_publish_freebusy,ICAL_XLICCLASS_PUBLISHFREEBUSY},
-  {ICAL_METHOD_REQUEST,icalclassify_request_delegate,ICAL_XLICCLASS_REQUESTDELEGATE},
-  {ICAL_METHOD_REQUEST,icalclassify_request_new,ICAL_XLICCLASS_REQUESTNEW},
-  {ICAL_METHOD_REQUEST,icalclassify_request_update,ICAL_XLICCLASS_REQUESTUPDATE},
-  {ICAL_METHOD_REQUEST,icalclassify_request_reschedule,ICAL_XLICCLASS_REQUESTRESCHEDULE},
-
-  {ICAL_METHOD_REQUEST,icalclassify_request_new_organizer,ICAL_XLICCLASS_REQUESTNEWORGANIZER},
-  {ICAL_METHOD_REQUEST,icalclassify_request_forward,ICAL_XLICCLASS_REQUESTFORWARD},
-  {ICAL_METHOD_REQUEST,icalclassify_request_status,ICAL_XLICCLASS_REQUESTSTATUS},
-  {ICAL_METHOD_REQUEST,icalclassify_request_freebusy,ICAL_XLICCLASS_REQUESTFREEBUSY},
-
-  {ICAL_METHOD_REPLY,icalclassify_reply_accept,ICAL_XLICCLASS_REPLYACCEPT},
-  {ICAL_METHOD_REPLY,icalclassify_reply_decline,ICAL_XLICCLASS_REPLYDECLINE},
-  {ICAL_METHOD_REPLY,icalclassify_reply_delegate,ICAL_XLICCLASS_REPLYDELEGATE},
-  {ICAL_METHOD_REPLY,icalclassify_reply_crasher_accept,ICAL_XLICCLASS_REPLYCRASHERACCEPT},
-  {ICAL_METHOD_REPLY,icalclassify_reply_crasher_decline,ICAL_XLICCLASS_REPLYCRASHERDECLINE},
-
-  {ICAL_METHOD_ADD,icalclassify_add_instance,ICAL_XLICCLASS_ADDINSTANCE},
-
-  {ICAL_METHOD_CANCEL,icalclassify_cancel_event,ICAL_XLICCLASS_CANCELEVENT},
-  {ICAL_METHOD_CANCEL,icalclassify_cancel_instance,ICAL_XLICCLASS_CANCELINSTANCE},
-  {ICAL_METHOD_CANCEL,icalclassify_cancel_all,ICAL_XLICCLASS_CANCELALL},
-
-  {ICAL_METHOD_REFRESH,icalclassify_refesh,ICAL_XLICCLASS_REFRESH},
-  {ICAL_METHOD_COUNTER,icalclassify_counter,ICAL_XLICCLASS_COUNTER},
-  {ICAL_METHOD_DECLINECOUNTER,icalclassify_delinecounter,ICAL_XLICCLASS_DECLINECOUNTER},
-  {ICAL_METHOD_NONE,0,ICAL_XLICCLASS_NONE}
-};
-
-
-icalproperty_xlicclass icalclassify(icalcomponent* c,icalcomponent* match, 
-			      const char* user)
-{
-    icalcomponent *inner;
-    icalproperty *p;
-    icalproperty_method method;
-    icalproperty_xlicclass class = ICAL_XLICCLASS_UNKNOWN;
-
-    int i;
-
-    struct icalclassify_parts comp_parts;
-    struct icalclassify_parts match_parts;
-
-    inner = icalcomponent_get_first_real_component(c);
-    
-    if (inner == 0) {
-	return ICAL_XLICCLASS_NONE;
-    }
-
-    icalssutil_get_parts(c,&comp_parts);
-    icalssutil_get_parts(match,&match_parts);
-
-    /* Determine if the incoming component is obsoleted by the match */
-    if(match != 0 && (
-	comp_parts.method == ICAL_METHOD_REQUEST
-	)){
-	assert ( ! ((comp_parts.dtstamp.is_utc==1)^
-		    (match_parts.dtstamp.is_utc==1)));
-
-	if( comp_parts.sequence<match_parts.sequence &&
-	    icaltime_compare(comp_parts.dtstamp,match_parts.dtstamp)>0)
-	{
-	    /* comp has a smaller sequence and a later DTSTAMP */
-	    class = ICAL_XLICCLASS_MISSEQUENCED;
-	    goto CLEANUP;
-	}
-
-	if( (comp_parts.sequence<match_parts.sequence )
-	     /*&&icaltime_compare(comp_parts.dtstamp,match_parts.dtstamp)<=0*/
-	     ||
-	   ( comp_parts.sequence == match_parts.sequence &&
-	     icaltime_compare(comp_parts.dtstamp,match_parts.dtstamp)<=0)){
-
-	    class = ICAL_XLICCLASS_OBSOLETE;
-	    goto CLEANUP;
-	}
-
-    }
-
-    p = icalcomponent_get_first_property(c,ICAL_METHOD_PROPERTY);
-    if (p == 0) {
-	class = ICAL_XLICCLASS_UNKNOWN;
-	goto CLEANUP;
-    }
-    method = icalproperty_get_method(p);
-
-    for (i =0; icalclassify_map[i].method != ICAL_METHOD_NONE; i++){
-	if(icalclassify_map[i].method == method){
-	    if( (*(icalclassify_map[i].fn))(&comp_parts,&match_parts,user)==1){
-		class = icalclassify_map[i].class;
-		break;
-	    }
-	}
-    }
-
-CLEANUP:
-    icalssutil_free_parts(&comp_parts); 
-    icalssutil_free_parts(&match_parts);
-
-    return class;
-
-}
-
diff --git a/libkcal/libical/src/libicalss/icalclassify.h b/libkcal/libical/src/libicalss/icalclassify.h
deleted file mode 100644
index 9132a2f5..00000000
--- a/libkcal/libical/src/libicalss/icalclassify.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* -*- Mode: C -*- */
-/*======================================================================
- FILE: icalclassify.h
- CREATOR: eric 21 Aug 2000
-
-
-
- (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
-     http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-
- =========================================================================*/
-
-#ifndef ICALCLASSIFY_H
-#define ICALCLASSIFY_H
-
-#include "ical.h"
-
-icalproperty_xlicclass icalclassify(icalcomponent* c,icalcomponent* match, 
-			      const char* user);
-
-#endif /* ICALCLASSIFY_H*/
-
-
-				    
-
-
diff --git a/libkcal/libical/tzdata/africa b/libkcal/libical/tzdata/africa
deleted file mode 100644
index 434110cc..00000000
--- a/libkcal/libical/tzdata/africa
+++ /dev/null
@@ -1,673 +0,0 @@
-# @(#)africa	8.10
-# <pre>
-
-# This data is by no means authoritative; if you think you know better,
-# go ahead and edit the file (and please send any changes to
-# tz@elsie.nci.nih.gov for general use in the future).
-
-# From Paul Eggert (2006-03-22):
-#
-# A good source for time zone historical data outside the U.S. is
-# Thomas G. Shanks and Rique Pottenger, The International Atlas (6th edition),
-# San Diego: ACS Publications, Inc. (2003).
-#
-# Gwillim Law writes that a good source
-# for recent time zone data is the International Air Transport
-# Association's Standard Schedules Information Manual (IATA SSIM),
-# published semiannually.  Law sent in several helpful summaries
-# of the IATA's data after 1990.
-#
-# Except where otherwise noted, Shanks & Pottenger is the source for
-# entries through 1990, and IATA SSIM is the source for entries afterwards.
-#
-# Another source occasionally used is Edward W. Whitman, World Time Differences,
-# Whitman Publishing Co, 2 Niagara Av, Ealing, London (undated), which
-# I found in the UCLA library.
-#
-# A reliable and entertaining source about time zones is
-# Derek Howse, Greenwich time and longitude, Philip Wilson Publishers (1997).
-#
-# Previous editions of this database used WAT, CAT, SAT, and EAT
-# for +0:00 through +3:00, respectively,
-# but Mark R V Murray reports that
-# `SAST' is the official abbreviation for +2:00 in the country of South Africa,
-# `CAT' is commonly used for +2:00 in countries north of South Africa, and
-# `WAT' is probably the best name for +1:00, as the common phrase for
-# the area that includes Nigeria is ``West Africa''.
-# He has heard of ``Western Sahara Time'' for +0:00 but can find no reference.
-#
-# To make things confusing, `WAT' seems to have been used for -1:00 long ago;
-# I'd guess that this was because people needed _some_ name for -1:00,
-# and at the time, far west Africa was the only major land area in -1:00.
-# This usage is now obsolete, as the last use of -1:00 on the African
-# mainland seems to have been 1976 in Western Sahara.
-#
-# To summarize, the following abbreviations seem to have some currency:
-#	-1:00	WAT	West Africa Time (no longer used)
-#	 0:00	GMT	Greenwich Mean Time
-#	 2:00	CAT	Central Africa Time
-#	 2:00	SAST	South Africa Standard Time
-# and Murray suggests the following abbreviation:
-#	 1:00	WAT	West Africa Time
-# I realize that this leads to `WAT' being used for both -1:00 and 1:00
-# for times before 1976, but this is the best I can think of
-# until we get more information.
-#
-# I invented the following abbreviations; corrections are welcome!
-#	 2:00	WAST	West Africa Summer Time
-#	 2:30	BEAT	British East Africa Time (no longer used)
-#	 2:44:45 BEAUT	British East Africa Unified Time (no longer used)
-#	 3:00	CAST	Central Africa Summer Time (no longer used)
-#	 3:00	SAST	South Africa Summer Time (no longer used)
-#	 3:00	EAT	East Africa Time
-#	 4:00	EAST	East Africa Summer Time (no longer used)
-
-# Algeria
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Algeria	1916	only	-	Jun	14	23:00s	1:00	S
-Rule	Algeria	1916	1919	-	Oct	Sun>=1	23:00s	0	-
-Rule	Algeria	1917	only	-	Mar	24	23:00s	1:00	S
-Rule	Algeria	1918	only	-	Mar	 9	23:00s	1:00	S
-Rule	Algeria	1919	only	-	Mar	 1	23:00s	1:00	S
-Rule	Algeria	1920	only	-	Feb	14	23:00s	1:00	S
-Rule	Algeria	1920	only	-	Oct	23	23:00s	0	-
-Rule	Algeria	1921	only	-	Mar	14	23:00s	1:00	S
-Rule	Algeria	1921	only	-	Jun	21	23:00s	0	-
-Rule	Algeria	1939	only	-	Sep	11	23:00s	1:00	S
-Rule	Algeria	1939	only	-	Nov	19	 1:00	0	-
-Rule	Algeria	1944	1945	-	Apr	Mon>=1	 2:00	1:00	S
-Rule	Algeria	1944	only	-	Oct	 8	 2:00	0	-
-Rule	Algeria	1945	only	-	Sep	16	 1:00	0	-
-Rule	Algeria	1971	only	-	Apr	25	23:00s	1:00	S
-Rule	Algeria	1971	only	-	Sep	26	23:00s	0	-
-Rule	Algeria	1977	only	-	May	 6	 0:00	1:00	S
-Rule	Algeria	1977	only	-	Oct	21	 0:00	0	-
-Rule	Algeria	1978	only	-	Mar	24	 1:00	1:00	S
-Rule	Algeria	1978	only	-	Sep	22	 3:00	0	-
-Rule	Algeria	1980	only	-	Apr	25	 0:00	1:00	S
-Rule	Algeria	1980	only	-	Oct	31	 2:00	0	-
-# Shanks & Pottenger give 0:09:20 for Paris Mean Time; go with Howse's
-# more precise 0:09:21.
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Africa/Algiers	0:12:12 -	LMT	1891 Mar 15 0:01
-			0:09:21	-	PMT	1911 Mar 11    # Paris Mean Time
-			0:00	Algeria	WE%sT	1940 Feb 25 2:00
-			1:00	Algeria	CE%sT	1946 Oct  7
-			0:00	-	WET	1956 Jan 29
-			1:00	-	CET	1963 Apr 14
-			0:00	Algeria	WE%sT	1977 Oct 21
-			1:00	Algeria	CE%sT	1979 Oct 26
-			0:00	Algeria	WE%sT	1981 May
-			1:00	-	CET
-
-# Angola
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Africa/Luanda	0:52:56	-	LMT	1892
-			0:52:04	-	AOT	1911 May 26 # Angola Time
-			1:00	-	WAT
-
-# Benin
-# Whitman says they switched to 1:00 in 1946, not 1934;
-# go with Shanks & Pottenger.
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Africa/Porto-Novo	0:10:28	-	LMT	1912
-			0:00	-	GMT	1934 Feb 26
-			1:00	-	WAT
-
-# Botswana
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Africa/Gaborone	1:43:40 -	LMT	1885
-			2:00	-	CAT	1943 Sep 19 2:00
-			2:00	1:00	CAST	1944 Mar 19 2:00
-			2:00	-	CAT
-
-# Burkina Faso
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Africa/Ouagadougou	-0:06:04 -	LMT	1912
-			 0:00	-	GMT
-
-# Burundi
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Africa/Bujumbura	1:57:28	-	LMT	1890
-			2:00	-	CAT
-
-# Cameroon
-# Whitman says they switched to 1:00 in 1920; go with Shanks & Pottenger.
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Africa/Douala	0:38:48	-	LMT	1912
-			1:00	-	WAT
-
-# Cape Verde
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Atlantic/Cape_Verde -1:34:04 -	LMT	1907			# Praia
-			-2:00	-	CVT	1942 Sep
-			-2:00	1:00	CVST	1945 Oct 15
-			-2:00	-	CVT	1975 Nov 25 2:00
-			-1:00	-	CVT
-
-# Central African Republic
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Africa/Bangui	1:14:20	-	LMT	1912
-			1:00	-	WAT
-
-# Chad
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Africa/Ndjamena	1:00:12 -	LMT	1912
-			1:00	-	WAT	1979 Oct 14
-			1:00	1:00	WAST	1980 Mar  8
-			1:00	-	WAT
-
-# Comoros
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Indian/Comoro	2:53:04 -	LMT	1911 Jul   # Moroni, Gran Comoro
-			3:00	-	EAT
-
-# Democratic Republic of Congo
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Africa/Kinshasa	1:01:12 -	LMT	1897 Nov 9
-			1:00	-	WAT
-Zone Africa/Lubumbashi	1:49:52 -	LMT	1897 Nov 9
-			2:00	-	CAT
-
-# Republic of the Congo
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Africa/Brazzaville	1:01:08 -	LMT	1912
-			1:00	-	WAT
-
-# Cote D'Ivoire
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Africa/Abidjan	-0:16:08 -	LMT	1912
-			 0:00	-	GMT
-
-# Djibouti
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Africa/Djibouti	2:52:36 -	LMT	1911 Jul
-			3:00	-	EAT
-
-###############################################################################
-
-# Egypt
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Egypt	1940	only	-	Jul	15	0:00	1:00	S
-Rule	Egypt	1940	only	-	Oct	 1	0:00	0	-
-Rule	Egypt	1941	only	-	Apr	15	0:00	1:00	S
-Rule	Egypt	1941	only	-	Sep	16	0:00	0	-
-Rule	Egypt	1942	1944	-	Apr	 1	0:00	1:00	S
-Rule	Egypt	1942	only	-	Oct	27	0:00	0	-
-Rule	Egypt	1943	1945	-	Nov	 1	0:00	0	-
-Rule	Egypt	1945	only	-	Apr	16	0:00	1:00	S
-Rule	Egypt	1957	only	-	May	10	0:00	1:00	S
-Rule	Egypt	1957	1958	-	Oct	 1	0:00	0	-
-Rule	Egypt	1958	only	-	May	 1	0:00	1:00	S
-Rule	Egypt	1959	1981	-	May	 1	1:00	1:00	S
-Rule	Egypt	1959	1965	-	Sep	30	3:00	0	-
-Rule	Egypt	1966	1994	-	Oct	 1	3:00	0	-
-Rule	Egypt	1982	only	-	Jul	25	1:00	1:00	S
-Rule	Egypt	1983	only	-	Jul	12	1:00	1:00	S
-Rule	Egypt	1984	1988	-	May	 1	1:00	1:00	S
-Rule	Egypt	1989	only	-	May	 6	1:00	1:00	S
-Rule	Egypt	1990	1994	-	May	 1	1:00	1:00	S
-# IATA (after 1990) says transitions are at 0:00.
-# Go with IATA starting in 1995, except correct 1995 entry from 09-30 to 09-29.
-Rule	Egypt	1995	max	-	Apr	lastFri	 0:00s	1:00	S
-Rule	Egypt	1995	2005	-	Sep	lastThu	23:00s	0	-
-# From Steffen Thorsen (2006-09-19):
-# The Egyptian Gazette, issue 41,090 (2006-09-18), page 1, reports:
-# Egypt will turn back clocks by one hour at the midnight of Thursday
-# after observing the daylight saving time since May.
-# http://news.gom.com.eg/gazette/pdf/2006/09/18/01.pdf
-Rule	Egypt	2006	only	-	Sep	21	23:00s	0	-
-# From Dirk Losch (2007-08-14):
-# I received a mail from an airline which says that the daylight
-# saving time in Egypt will end in the night of 2007-09-06 to 2007-09-07.
-# From Jesper Norgaard Welen (2007-08-15): [The following agree:]
-# http://www.nentjes.info/Bill/bill5.htm 
-# http://www.timeanddate.com/worldclock/city.html?n=53
-# From Steffen Thorsen (2007-09-04): The official information...:
-# http://www.sis.gov.eg/En/EgyptOnline/Miscellaneous/000002/0207000000000000001580.htm
-Rule	Egypt	2007	only	-	Sep	Thu>=1	23:00s	0	-
-# From Abdelrahman Hassan (2007-09-06):
-# Due to the Hijri (lunar Islamic calendar) year being 11 days shorter
-# than the year of the Gregorian calendar, Ramadan shifts earlier each
-# year. This year it will be observed September 13 (September is quite
-# hot in Egypt), and the idea is to make fasting easier for workers by
-# shifting business hours one hour out of daytime heat. Consequently,
-# unless discontinued, next DST may end Thursday 28 August 2008.
-# From Paul Eggert (2007-08-17):
-# For lack of better info, assume the new rule is last Thursday in August.
-Rule	Egypt	2008	max	-	Aug	lastThu	23:00s	0	-
-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Africa/Cairo	2:05:00 -	LMT	1900 Oct
-			2:00	Egypt	EE%sT
-
-# Equatorial Guinea
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Africa/Malabo	0:35:08 -	LMT	1912
-			0:00	-	GMT	1963 Dec 15
-			1:00	-	WAT
-
-# Eritrea
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Africa/Asmara	2:35:32 -	LMT	1870
-			2:35:32	-	AMT	1890	      # Asmara Mean Time
-			2:35:20	-	ADMT	1936 May 5    # Adis Dera MT
-			3:00	-	EAT
-
-# Ethiopia
-# From Paul Eggert (2006-03-22):
-# Shanks & Pottenger write that Ethiopia had six narrowly-spaced time zones
-# between 1870 and 1890, and that they merged to 38E50 (2:35:20) in 1890.
-# We'll guess that 38E50 is for Adis Dera.
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Africa/Addis_Ababa	2:34:48 -	LMT	1870
-			2:35:20	-	ADMT	1936 May 5    # Adis Dera MT
-			3:00	-	EAT
-
-# Gabon
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Africa/Libreville	0:37:48 -	LMT	1912
-			1:00	-	WAT
-
-# Gambia
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Africa/Banjul	-1:06:36 -	LMT	1912
-			-1:06:36 -	BMT	1935	# Banjul Mean Time
-			-1:00	-	WAT	1964
-			 0:00	-	GMT
-
-# Ghana
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-# Whitman says DST was observed from 1931 to ``the present'';
-# go with Shanks & Pottenger.
-Rule	Ghana	1936	1942	-	Sep	 1	0:00	0:20	GHST
-Rule	Ghana	1936	1942	-	Dec	31	0:00	0	GMT
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Africa/Accra	-0:00:52 -	LMT	1918
-			 0:00	Ghana	%s
-
-# Guinea
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Africa/Conakry	-0:54:52 -	LMT	1912
-			 0:00	-	GMT	1934 Feb 26
-			-1:00	-	WAT	1960
-			 0:00	-	GMT
-
-# Guinea-Bissau
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Africa/Bissau	-1:02:20 -	LMT	1911 May 26
-			-1:00	-	WAT	1975
-			 0:00	-	GMT
-
-# Kenya
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Africa/Nairobi	2:27:16	-	LMT	1928 Jul
-			3:00	-	EAT	1930
-			2:30	-	BEAT	1940
-			2:44:45	-	BEAUT	1960
-			3:00	-	EAT
-
-# Lesotho
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Africa/Maseru	1:50:00 -	LMT	1903 Mar
-			2:00	-	SAST	1943 Sep 19 2:00
-			2:00	1:00	SAST	1944 Mar 19 2:00
-			2:00	-	SAST
-
-# Liberia
-# From Paul Eggert (2006-03-22):
-# In 1972 Liberia was the last country to switch
-# from a UTC offset that was not a multiple of 15 or 20 minutes.
-# Howse reports that it was in honor of their president's birthday.
-# Shank & Pottenger report the date as May 1, whereas Howse reports Jan;
-# go with Shanks & Pottenger.
-# For Liberia before 1972, Shanks & Pottenger report -0:44, whereas Howse and
-# Whitman each report -0:44:30; go with the more precise figure.
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Africa/Monrovia	-0:43:08 -	LMT	1882
-			-0:43:08 -	MMT	1919 Mar # Monrovia Mean Time
-			-0:44:30 -	LRT	1972 May # Liberia Time
-			 0:00	-	GMT
-
-###############################################################################
-
-# Libya
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Libya	1951	only	-	Oct	14	2:00	1:00	S
-Rule	Libya	1952	only	-	Jan	 1	0:00	0	-
-Rule	Libya	1953	only	-	Oct	 9	2:00	1:00	S
-Rule	Libya	1954	only	-	Jan	 1	0:00	0	-
-Rule	Libya	1955	only	-	Sep	30	0:00	1:00	S
-Rule	Libya	1956	only	-	Jan	 1	0:00	0	-
-Rule	Libya	1982	1984	-	Apr	 1	0:00	1:00	S
-Rule	Libya	1982	1985	-	Oct	 1	0:00	0	-
-Rule	Libya	1985	only	-	Apr	 6	0:00	1:00	S
-Rule	Libya	1986	only	-	Apr	 4	0:00	1:00	S
-Rule	Libya	1986	only	-	Oct	 3	0:00	0	-
-Rule	Libya	1987	1989	-	Apr	 1	0:00	1:00	S
-Rule	Libya	1987	1989	-	Oct	 1	0:00	0	-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Africa/Tripoli	0:52:44 -	LMT	1920
-			1:00	Libya	CE%sT	1959
-			2:00	-	EET	1982
-			1:00	Libya	CE%sT	1990 May  4
-# The following entries are from Shanks & Pottenger;
-# the IATA SSIM data contain some obvious errors.
-			2:00	-	EET	1996 Sep 30
-			1:00	-	CET	1997 Apr  4
-			1:00	1:00	CEST	1997 Oct  4
-			2:00	-	EET
-
-# Madagascar
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Indian/Antananarivo 3:10:04 -	LMT	1911 Jul
-			3:00	-	EAT	1954 Feb 27 23:00s
-			3:00	1:00	EAST	1954 May 29 23:00s
-			3:00	-	EAT
-
-# Malawi
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Africa/Blantyre	2:20:00 -	LMT	1903 Mar
-			2:00	-	CAT
-
-# Mali
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Africa/Bamako	-0:32:00 -	LMT	1912
-			 0:00	-	GMT	1934 Feb 26
-			-1:00	-	WAT	1960 Jun 20
-			 0:00	-	GMT
-
-# Mauritania
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Africa/Nouakchott	-1:03:48 -	LMT	1912
-			 0:00	-	GMT	1934 Feb 26
-			-1:00	-	WAT	1960 Nov 28
-			 0:00	-	GMT
-
-# Mauritius
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Indian/Mauritius	3:50:00 -	LMT	1907		# Port Louis
-			4:00	-	MUT	# Mauritius Time
-# Agalega Is, Rodriguez
-# no information; probably like Indian/Mauritius
-
-# Mayotte
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Indian/Mayotte	3:00:56 -	LMT	1911 Jul	# Mamoutzou
-			3:00	-	EAT
-
-# Morocco
-# See the `europe' file for Spanish Morocco (Africa/Ceuta).
-# RULE	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Morocco	1939	only	-	Sep	12	 0:00	1:00	S
-Rule	Morocco	1939	only	-	Nov	19	 0:00	0	-
-Rule	Morocco	1940	only	-	Feb	25	 0:00	1:00	S
-Rule	Morocco	1945	only	-	Nov	18	 0:00	0	-
-Rule	Morocco	1950	only	-	Jun	11	 0:00	1:00	S
-Rule	Morocco	1950	only	-	Oct	29	 0:00	0	-
-Rule	Morocco	1967	only	-	Jun	 3	12:00	1:00	S
-Rule	Morocco	1967	only	-	Oct	 1	 0:00	0	-
-Rule	Morocco	1974	only	-	Jun	24	 0:00	1:00	S
-Rule	Morocco	1974	only	-	Sep	 1	 0:00	0	-
-Rule	Morocco	1976	1977	-	May	 1	 0:00	1:00	S
-Rule	Morocco	1976	only	-	Aug	 1	 0:00	0	-
-Rule	Morocco	1977	only	-	Sep	28	 0:00	0	-
-Rule	Morocco	1978	only	-	Jun	 1	 0:00	1:00	S
-Rule	Morocco	1978	only	-	Aug	 4	 0:00	0	-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Africa/Casablanca	-0:30:20 -	LMT	1913 Oct 26
-			 0:00	Morocco	WE%sT	1984 Mar 16
-			 1:00	-	CET	1986
-			 0:00	-	WET
-# Western Sahara
-Zone Africa/El_Aaiun	-0:52:48 -	LMT	1934 Jan
-			-1:00	-	WAT	1976 Apr 14
-			 0:00	-	WET
-
-# Mozambique
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Africa/Maputo	2:10:20 -	LMT	1903 Mar
-			2:00	-	CAT
-
-# Namibia
-# The 1994-04-03 transition is from Shanks & Pottenger.
-# Shanks & Pottenger report no DST after 1998-04; go with IATA.
-
-# From Petronella Sibeene (2007-03-30) in
-# <http://allafrica.com/stories/200703300178.html>:
-# While the entire country changes its time, Katima Mulilo and other
-# settlements in Caprivi unofficially will not because the sun there
-# rises and sets earlier compared to other regions.  Chief of
-# Forecasting Riaan van Zyl explained that the far eastern parts of
-# the country are close to 40 minutes earlier in sunrise than the rest
-# of the country.
-# 
-# From Paul Eggert (2007-03-31):
-# Apparently the Caprivi Strip informally observes Botswana time, but
-# we have no details.  In the meantime people there can use Africa/Gaborone.
-
-# RULE	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Namibia	1994	max	-	Sep	Sun>=1	2:00	1:00	S
-Rule	Namibia	1995	max	-	Apr	Sun>=1	2:00	0	-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Africa/Windhoek	1:08:24 -	LMT	1892 Feb 8
-			1:30	-	SWAT	1903 Mar	# SW Africa Time
-			2:00	-	SAST	1942 Sep 20 2:00
-			2:00	1:00	SAST	1943 Mar 21 2:00
-			2:00	-	SAST	1990 Mar 21 # independence
-			2:00	-	CAT	1994 Apr  3
-			1:00	Namibia	WA%sT
-
-# Niger
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Africa/Niamey	 0:08:28 -	LMT	1912
-			-1:00	-	WAT	1934 Feb 26
-			 0:00	-	GMT	1960
-			 1:00	-	WAT
-
-# Nigeria
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Africa/Lagos	0:13:36 -	LMT	1919 Sep
-			1:00	-	WAT
-
-# Reunion
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Indian/Reunion	3:41:52 -	LMT	1911 Jun	# Saint-Denis
-			4:00	-	RET	# Reunion Time
-#
-# Scattered Islands (Iles Eparses) administered from Reunion are as follows.
-# The following information about them is taken from
-# Iles Eparses (www.outre-mer.gouv.fr/domtom/ile.htm, 1997-07-22, in French;
-# no longer available as of 1999-08-17).
-# We have no info about their time zone histories.
-#
-# Bassas da India - uninhabited
-# Europa Island - inhabited from 1905 to 1910 by two families
-# Glorioso Is - inhabited until at least 1958
-# Juan de Nova - uninhabited
-# Tromelin - inhabited until at least 1958
-
-# Rwanda
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Africa/Kigali	2:00:16 -	LMT	1935 Jun
-			2:00	-	CAT
-
-# St Helena
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Atlantic/St_Helena	-0:22:48 -	LMT	1890		# Jamestown
-			-0:22:48 -	JMT	1951	# Jamestown Mean Time
-			 0:00	-	GMT
-# The other parts of the St Helena territory are similar:
-#	Tristan da Cunha: on GMT, say Whitman and the CIA
-#	Ascension: on GMT, says usno1995 and the CIA
-#	Gough (scientific station since 1955; sealers wintered previously):
-#		on GMT, says the CIA
-#	Inaccessible, Nightingale: no information, but probably GMT
-
-# Sao Tome and Principe
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Africa/Sao_Tome	 0:26:56 -	LMT	1884
-			-0:36:32 -	LMT	1912	# Lisbon Mean Time
-			 0:00	-	GMT
-
-# Senegal
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Africa/Dakar	-1:09:44 -	LMT	1912
-			-1:00	-	WAT	1941 Jun
-			 0:00	-	GMT
-
-# Seychelles
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Indian/Mahe	3:41:48 -	LMT	1906 Jun	# Victoria
-			4:00	-	SCT	# Seychelles Time
-# From Paul Eggert (2001-05-30):
-# Aldabra, Farquhar, and Desroches, originally dependencies of the
-# Seychelles, were transferred to the British Indian Ocean Territory
-# in 1965 and returned to Seychelles control in 1976.  We don't know
-# whether this affected their time zone, so omit this for now.
-# Possibly the islands were uninhabited.
-
-# Sierra Leone
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-# Whitman gives Mar 31 - Aug 31 for 1931 on; go with Shanks & Pottenger.
-Rule	SL	1935	1942	-	Jun	 1	0:00	0:40	SLST
-Rule	SL	1935	1942	-	Oct	 1	0:00	0	WAT
-Rule	SL	1957	1962	-	Jun	 1	0:00	1:00	SLST
-Rule	SL	1957	1962	-	Sep	 1	0:00	0	GMT
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Africa/Freetown	-0:53:00 -	LMT	1882
-			-0:53:00 -	FMT	1913 Jun # Freetown Mean Time
-			-1:00	SL	%s	1957
-			 0:00	SL	%s
-
-# Somalia
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Africa/Mogadishu	3:01:28 -	LMT	1893 Nov
-			3:00	-	EAT	1931
-			2:30	-	BEAT	1957
-			3:00	-	EAT
-
-# South Africa
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	SA	1942	1943	-	Sep	Sun>=15	2:00	1:00	-
-Rule	SA	1943	1944	-	Mar	Sun>=15	2:00	0	-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Africa/Johannesburg 1:52:00 -	LMT	1892 Feb 8
-			1:30	-	SAST	1903 Mar
-			2:00	SA	SAST
-# Marion and Prince Edward Is
-# scientific station since 1947
-# no information
-
-# Sudan
-#
-# From <a href="http://www.sunanews.net/sn13jane.html">
-# Sudan News Agency (2000-01-13)
-# </a>, also reported by Michael De Beukelaer-Dossche via Steffen Thorsen:
-# Clocks will be moved ahead for 60 minutes all over the Sudan as of noon
-# Saturday....  This was announced Thursday by Caretaker State Minister for
-# Manpower Abdul-Rahman Nur-Eddin.
-#
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Sudan	1970	only	-	May	 1	0:00	1:00	S
-Rule	Sudan	1970	1985	-	Oct	15	0:00	0	-
-Rule	Sudan	1971	only	-	Apr	30	0:00	1:00	S
-Rule	Sudan	1972	1985	-	Apr	lastSun	0:00	1:00	S
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Africa/Khartoum	2:10:08 -	LMT	1931
-			2:00	Sudan	CA%sT	2000 Jan 15 12:00
-			3:00	-	EAT
-
-# Swaziland
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Africa/Mbabane	2:04:24 -	LMT	1903 Mar
-			2:00	-	SAST
-
-# Tanzania
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Africa/Dar_es_Salaam 2:37:08 -	LMT	1931
-			3:00	-	EAT	1948
-			2:44:45	-	BEAUT	1961
-			3:00	-	EAT
-
-# Togo
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Africa/Lome	0:04:52 -	LMT	1893
-			0:00	-	GMT
-
-# Tunisia
-
-# From Gwillim Law (2005-04-30):
-# My correspondent, Risto Nykanen, has alerted me to another adoption of DST,
-# this time in Tunisia.  According to Yahoo France News
-# <http://fr.news.yahoo.com/050426/5/4dumk.html>, in a story attributed to AP
-# and dated 2005-04-26, "Tunisia has decided to advance its official time by
-# one hour, starting on Sunday, May 1.  Henceforth, Tunisian time will be
-# UTC+2 instead of UTC+1.  The change will take place at 23:00 UTC next
-# Saturday."  (My translation)
-#
-# From Oscar van Vlijmen (2005-05-02):
-# LaPresse, the first national daily newspaper ...
-# <http://www.lapresse.tn/archives/archives280405/actualites/lheure.html>
-# ... DST for 2005: on: Sun May 1 0h standard time, off: Fri Sept. 30,
-# 1h standard time.
-#
-# From Atef Loukil (2006-03-28):
-# The daylight saving time will be the same each year:
-# Beginning      : the last Sunday of March at 02:00
-# Ending         : the last Sunday of October at 03:00 ...
-# http://www.tap.info.tn/en/index.php?option=com_content&task=view&id=1188&Itemid=50
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Tunisia	1939	only	-	Apr	15	23:00s	1:00	S
-Rule	Tunisia	1939	only	-	Nov	18	23:00s	0	-
-Rule	Tunisia	1940	only	-	Feb	25	23:00s	1:00	S
-Rule	Tunisia	1941	only	-	Oct	 6	 0:00	0	-
-Rule	Tunisia	1942	only	-	Mar	 9	 0:00	1:00	S
-Rule	Tunisia	1942	only	-	Nov	 2	 3:00	0	-
-Rule	Tunisia	1943	only	-	Mar	29	 2:00	1:00	S
-Rule	Tunisia	1943	only	-	Apr	17	 2:00	0	-
-Rule	Tunisia	1943	only	-	Apr	25	 2:00	1:00	S
-Rule	Tunisia	1943	only	-	Oct	 4	 2:00	0	-
-Rule	Tunisia	1944	1945	-	Apr	Mon>=1	 2:00	1:00	S
-Rule	Tunisia	1944	only	-	Oct	 8	 0:00	0	-
-Rule	Tunisia	1945	only	-	Sep	16	 0:00	0	-
-Rule	Tunisia	1977	only	-	Apr	30	 0:00s	1:00	S
-Rule	Tunisia	1977	only	-	Sep	24	 0:00s	0	-
-Rule	Tunisia	1978	only	-	May	 1	 0:00s	1:00	S
-Rule	Tunisia	1978	only	-	Oct	 1	 0:00s	0	-
-Rule	Tunisia	1988	only	-	Jun	 1	 0:00s	1:00	S
-Rule	Tunisia	1988	1990	-	Sep	lastSun	 0:00s	0	-
-Rule	Tunisia	1989	only	-	Mar	26	 0:00s	1:00	S
-Rule	Tunisia	1990	only	-	May	 1	 0:00s	1:00	S
-Rule	Tunisia	2005	only	-	May	 1	 0:00s	1:00	S
-Rule	Tunisia	2005	only	-	Sep	30	 1:00s	0	-
-Rule	Tunisia	2006	max	-	Mar	lastSun	 2:00s	1:00	S
-Rule	Tunisia	2006	max	-	Oct	lastSun	 2:00s	0	-
-# Shanks & Pottenger give 0:09:20 for Paris Mean Time; go with Howse's
-# more precise 0:09:21.
-# Shanks & Pottenger say the 1911 switch was on Mar 9; go with Howse's Mar 11.
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Africa/Tunis	0:40:44 -	LMT	1881 May 12
-			0:09:21	-	PMT	1911 Mar 11    # Paris Mean Time
-			1:00	Tunisia	CE%sT
-
-# Uganda
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Africa/Kampala	2:09:40 -	LMT	1928 Jul
-			3:00	-	EAT	1930
-			2:30	-	BEAT	1948
-			2:44:45	-	BEAUT	1957
-			3:00	-	EAT
-
-# Zambia
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Africa/Lusaka	1:53:08 -	LMT	1903 Mar
-			2:00	-	CAT
-
-# Zimbabwe
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Africa/Harare	2:04:12 -	LMT	1903 Mar
-			2:00	-	CAT
diff --git a/libkcal/libical/tzdata/antarctica b/libkcal/libical/tzdata/antarctica
deleted file mode 100644
index ef279cbe..00000000
--- a/libkcal/libical/tzdata/antarctica
+++ /dev/null
@@ -1,327 +0,0 @@
-# @(#)antarctica	8.4
-# <pre>
-
-# From Paul Eggert (1999-11-15):
-# To keep things manageable, we list only locations occupied year-round; see
-# <a href="http://www.comnap.aq/comnap/comnap.nsf/P/Stations/">
-# COMNAP - Stations and Bases
-# </a>
-# and
-# <a href="http://www.spri.cam.ac.uk/bob/periant.htm">
-# Summary of the Peri-Antarctic Islands (1998-07-23)
-# </a>
-# for information.
-# Unless otherwise specified, we have no time zone information.
-#
-# Except for the French entries,
-# I made up all time zone abbreviations mentioned here; corrections welcome!
-# FORMAT is `zzz' and GMTOFF is 0 for locations while uninhabited.
-
-# These rules are stolen from the `europe' file.
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	RussAQ	1981	1984	-	Apr	 1	 0:00	1:00	S
-Rule	RussAQ	1981	1983	-	Oct	 1	 0:00	0	-
-Rule	RussAQ	1984	1991	-	Sep	lastSun	 2:00s	0	-
-Rule	RussAQ	1985	1991	-	Mar	lastSun	 2:00s	1:00	S
-Rule	RussAQ	1992	only	-	Mar	lastSat	 23:00	1:00	S
-Rule	RussAQ	1992	only	-	Sep	lastSat	 23:00	0	-
-Rule	RussAQ	1993	max	-	Mar	lastSun	 2:00s	1:00	S
-Rule	RussAQ	1993	1995	-	Sep	lastSun	 2:00s	0	-
-Rule	RussAQ	1996	max	-	Oct	lastSun	 2:00s	0	-
-
-# These rules are stolen from the `southamerica' file.
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	ArgAQ	1964	1966	-	Mar	 1	0:00	0	-
-Rule	ArgAQ	1964	1966	-	Oct	15	0:00	1:00	S
-Rule	ArgAQ	1967	only	-	Apr	 2	0:00	0	-
-Rule	ArgAQ	1967	1968	-	Oct	Sun>=1	0:00	1:00	S
-Rule	ArgAQ	1968	1969	-	Apr	Sun>=1	0:00	0	-
-Rule	ArgAQ	1974	only	-	Jan	23	0:00	1:00	S
-Rule	ArgAQ	1974	only	-	May	 1	0:00	0	-
-Rule	ChileAQ	1972	1986	-	Mar	Sun>=9	3:00u	0	-
-Rule	ChileAQ	1974	1987	-	Oct	Sun>=9	4:00u	1:00	S
-Rule	ChileAQ	1987	only	-	Apr	12	3:00u	0	-
-Rule	ChileAQ	1988	1989	-	Mar	Sun>=9	3:00u	0	-
-Rule	ChileAQ	1988	only	-	Oct	Sun>=1	4:00u	1:00	S
-Rule	ChileAQ	1989	only	-	Oct	Sun>=9	4:00u	1:00	S
-Rule	ChileAQ	1990	only	-	Mar	18	3:00u	0	-
-Rule	ChileAQ	1990	only	-	Sep	16	4:00u	1:00	S
-Rule	ChileAQ	1991	1996	-	Mar	Sun>=9	3:00u	0	-
-Rule	ChileAQ	1991	1997	-	Oct	Sun>=9	4:00u	1:00	S
-Rule	ChileAQ	1997	only	-	Mar	30	3:00u	0	-
-Rule	ChileAQ	1998	only	-	Mar	Sun>=9	3:00u	0	-
-Rule	ChileAQ	1998	only	-	Sep	27	4:00u	1:00	S
-Rule	ChileAQ	1999	only	-	Apr	 4	3:00u	0	-
-Rule	ChileAQ	1999	max	-	Oct	Sun>=9	4:00u	1:00	S
-Rule	ChileAQ	2000	max	-	Mar	Sun>=9	3:00u	0	-
-
-
-# Argentina - year-round bases
-# Belgrano II, Confin Coast, -770227-0343737, since 1972-02-05
-# Esperanza, San Martin Land, -6323-05659, since 1952-12-17
-# Jubany, Potter Peninsula, King George Island, -6414-0602320, since 1982-01
-# Marambio, Seymour I, -6414-05637, since 1969-10-29
-# Orcadas, Laurie I, -6016-04444, since 1904-02-22
-# San Martin, Debenham I, -6807-06708, since 1951-03-21
-#	(except 1960-03 / 1976-03-21)
-
-# Australia - territories
-# Heard Island, McDonald Islands (uninhabited)
-#	previously sealers and scientific personnel wintered
-#	<a href="http://web.archive.org/web/20021204222245/http://www.dstc.qut.edu.au/DST/marg/daylight.html">
-#	Margaret Turner reports
-#	</a> (1999-09-30) that they're UTC+5, with no DST;
-#	presumably this is when they have visitors.
-#
-# year-round bases
-# Casey, Bailey Peninsula, -6617+11032, since 1969
-# Davis, Vestfold Hills, -6835+07759, since 1957-01-13
-#	(except 1964-11 - 1969-02)
-# Mawson, Holme Bay, -6736+06253, since 1954-02-13
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Antarctica/Casey	0	-	zzz	1969
-			8:00	-	WST	# Western (Aus) Standard Time
-Zone Antarctica/Davis	0	-	zzz	1957 Jan 13
-			7:00	-	DAVT	1964 Nov # Davis Time
-			0	-	zzz	1969 Feb
-			7:00	-	DAVT
-Zone Antarctica/Mawson	0	-	zzz	1954 Feb 13
-			6:00	-	MAWT	# Mawson Time
-# References:
-# <a href="http://www.antdiv.gov.au/aad/exop/sfo/casey/casey_aws.html">
-# Casey Weather (1998-02-26)
-# </a>
-# <a href="http://www.antdiv.gov.au/aad/exop/sfo/davis/video.html">
-# Davis Station, Antarctica (1998-02-26)
-# </a>
-# <a href="http://www.antdiv.gov.au/aad/exop/sfo/mawson/video.html">
-# Mawson Station, Antarctica (1998-02-25)
-# </a>
-
-# Brazil - year-round base
-# Comandante Ferraz, King George Island, -6205+05824, since 1983/4
-
-# Chile - year-round bases and towns
-# Escudero, South Shetland Is, -621157-0585735, since 1994
-# Presidente Eduadro Frei, King George Island, -6214-05848, since 1969-03-07
-# General Bernardo O'Higgins, Antarctic Peninsula, -6319-05704, since 1948-02
-# Capitan Arturo Prat, -6230-05941
-# Villa Las Estrellas (a town), around the Frei base, since 1984-04-09
-# These locations have always used Santiago time; use TZ='America/Santiago'.
-
-# China - year-round bases
-# Great Wall, King George Island, -6213-05858, since 1985-02-20
-# Zhongshan, Larsemann Hills, Prydz Bay, -6922+07623, since 1989-02-26
-
-# France - year-round bases
-#
-# From Antoine Leca (1997-01-20):
-# Time data are from Nicole Pailleau at the IFRTP
-# (French Institute for Polar Research and Technology).
-# She confirms that French Southern Territories and Terre Adelie bases
-# don't observe daylight saving time, even if Terre Adelie supplies came
-# from Tasmania.
-#
-# French Southern Territories with year-round inhabitants
-#
-# Martin-de-Vivies Base, Amsterdam Island, -374105+0773155, since 1950
-# Alfred-Faure Base, Crozet Islands, -462551+0515152, since 1964
-# Port-aux-Francais, Kerguelen Islands, -492110+0701303, since 1951;
-#	whaling & sealing station operated 1908/1914, 1920/1929, and 1951/1956
-#
-# St Paul Island - near Amsterdam, uninhabited
-#	fishing stations operated variously 1819/1931
-#
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Indian/Kerguelen	0	-	zzz	1950	# Port-aux-Francais
-			5:00	-	TFT	# ISO code TF Time
-#
-# year-round base in the main continent
-# Dumont-d'Urville, Ile des Petrels, -6640+14001, since 1956-11
-#
-# Another base at Port-Martin, 50km east, began operation in 1947.
-# It was destroyed by fire on 1952-01-14.
-#
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Antarctica/DumontDUrville 0 -	zzz	1947
-			10:00	-	PMT	1952 Jan 14 # Port-Martin Time
-			0	-	zzz	1956 Nov
-			10:00	-	DDUT	# Dumont-d'Urville Time
-# Reference:
-# <a href="http://en.wikipedia.org/wiki/Dumont_d'Urville_Station">
-# Dumont d'Urville Station (2005-12-05)
-# </a>
-
-# Germany - year-round base
-# Georg von Neumayer, -7039-00815
-
-# India - year-round base
-# Dakshin Gangotri, -7005+01200
-
-# Japan - year-round bases
-# Dome Fuji, -7719+03942
-# Syowa, -690022+0393524
-#
-# From Hideyuki Suzuki (1999-02-06):
-# In all Japanese stations, +0300 is used as the standard time.
-#
-# Syowa station, which is the first antarctic station of Japan,
-# was established on 1957-01-29.  Since Syowa station is still the main
-# station of Japan, it's appropriate for the principal location.
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Antarctica/Syowa	0	-	zzz	1957 Jan 29
-			3:00	-	SYOT	# Syowa Time
-# See:
-# <a href="http://www.nipr.ac.jp/english/ara01.html">
-# NIPR Antarctic Research Activities (1999-08-17)
-# </a>
-
-# S Korea - year-round base
-# King Sejong, King George Island, -6213-05847, since 1988
-
-# New Zealand - claims
-# Balleny Islands (never inhabited)
-# Scott Island (never inhabited)
-#
-# year-round base
-# Scott, Ross Island, since 1957-01, is like Antarctica/McMurdo.
-#
-# These rules for New Zealand are stolen from the `australasia' file.
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	NZAQ	1974	only	-	Nov	 3	2:00s	1:00	D
-Rule	NZAQ	1975	1988	-	Oct	lastSun	2:00s	1:00	D
-Rule	NZAQ	1989	only	-	Oct	 8	2:00s	1:00	D
-Rule	NZAQ	1990	2006	-	Oct	Sun>=1	2:00s	1:00	D
-Rule	NZAQ	1975	only	-	Feb	23	2:00s	0	S
-Rule	NZAQ	1976	1989	-	Mar	Sun>=1	2:00s	0	S
-Rule	NZAQ	1990	2007	-	Mar	Sun>=15	2:00s	0	S
-Rule	NZAQ	2007	max	-	Sep	lastSun	2:00s	1:00	D
-Rule	NZAQ	2008	max	-	Apr	Sun>=1	2:00s	0	S
-
-# Norway - territories
-# Bouvet (never inhabited)
-#
-# claims
-# Peter I Island (never inhabited)
-
-# Poland - year-round base
-# Arctowski, King George Island, -620945-0582745, since 1977
-
-# Russia - year-round bases
-# Bellingshausen, King George Island, -621159-0585337, since 1968-02-22
-# Mirny, Davis coast, -6633+09301, since 1956-02
-# Molodezhnaya, Alasheyev Bay, -6740+04551,
-#	year-round from 1962-02 to 1999-07-01
-# Novolazarevskaya, Queen Maud Land, -7046+01150,
-#	year-round from 1960/61 to 1992
-
-# Vostok, since 1957-12-16, temporarily closed 1994-02/1994-11
-# <a href="http://quest.arc.nasa.gov/antarctica/QA/computers/Directions,Time,ZIP">
-# From Craig Mundell (1994-12-15)</a>:
-# Vostok, which is one of the Russian stations, is set on the same
-# time as Moscow, Russia.
-#
-# From Lee Hotz (2001-03-08):
-# I queried the folks at Columbia who spent the summer at Vostok and this is
-# what they had to say about time there:
-# ``in the US Camp (East Camp) we have been on New Zealand (McMurdo)
-# time, which is 12 hours ahead of GMT. The Russian Station Vostok was
-# 6 hours behind that (although only 2 miles away, i.e. 6 hours ahead
-# of GMT). This is a time zone I think two hours east of Moscow. The
-# natural time zone is in between the two: 8 hours ahead of GMT.''
-#
-# From Paul Eggert (2001-05-04):
-# This seems to be hopelessly confusing, so I asked Lee Hotz about it
-# in person.  He said that some Antartic locations set their local
-# time so that noon is the warmest part of the day, and that this
-# changes during the year and does not necessarily correspond to mean
-# solar noon.  So the Vostok time might have been whatever the clocks
-# happened to be during their visit.  So we still don't really know what time
-# it is at Vostok.  But we'll guess UTC+6.
-#
-Zone Antarctica/Vostok	0	-	zzz	1957 Dec 16
-			6:00	-	VOST	# Vostok time
-
-# S Africa - year-round bases
-# Marion Island, -4653+03752
-# Sanae, -7141-00250
-
-# UK
-#
-# British Antarctic Territories (BAT) claims
-# South Orkney Islands
-#	scientific station from 1903
-#	whaling station at Signy I 1920/1926
-# South Shetland Islands
-#
-# year-round bases
-# Bird Island, South Georgia, -5400-03803, since 1983
-# Deception Island, -6259-06034, whaling station 1912/1931,
-#	scientific station 1943/1967,
-#	previously sealers and a scientific expedition wintered by accident,
-#	and a garrison was deployed briefly
-# Halley, Coates Land, -7535-02604, since 1956-01-06
-#	Halley is on a moving ice shelf and is periodically relocated
-#	so that it is never more than 10km from its nominal location.
-# Rothera, Adelaide Island, -6734-6808, since 1976-12-01
-#
-# From Paul Eggert (2002-10-22)
-# <http://webexhibits.org/daylightsaving/g.html> says Rothera is -03 all year.
-#
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Antarctica/Rothera	0	-	zzz	1976 Dec  1
-			-3:00	-	ROTT	# Rothera time
-
-# Uruguay - year round base
-# Artigas, King George Island, -621104-0585107
-
-# USA - year-round bases
-#
-# Palmer, Anvers Island, since 1965 (moved 2 miles in 1968)
-#
-# From Ethan Dicks (1996-10-06):
-# It keeps the same time as Punta Arenas, Chile, because, just like us
-# and the South Pole, that's the other end of their supply line....
-# I verified with someone who was there that since 1980,
-# Palmer has followed Chile.  Prior to that, before the Falklands War,
-# Palmer used to be supplied from Argentina.
-#
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Antarctica/Palmer	0	-	zzz	1965
-			-4:00	ArgAQ	AR%sT	1969 Oct 5
-			-3:00	ArgAQ	AR%sT	1982 May
-			-4:00	ChileAQ	CL%sT
-#
-#
-# McMurdo, Ross Island, since 1955-12
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Antarctica/McMurdo	0	-	zzz	1956
-			12:00	NZAQ	NZ%sT
-#
-# Amundsen-Scott, South Pole, continuously occupied since 1956-11-20
-#
-# From Paul Eggert (1996-09-03):
-# Normally it wouldn't have a separate entry, since it's like the
-# larger Antarctica/McMurdo since 1970, but it's too famous to omit.
-#
-# From Chris Carrier (1996-06-27):
-# Siple, the first commander of the South Pole station,
-# stated that he would have liked to have kept GMT at the station,
-# but that he found it more convenient to keep GMT+12
-# as supplies for the station were coming from McMurdo Sound,
-# which was on GMT+12 because New Zealand was on GMT+12 all year
-# at that time (1957).  (Source: Siple's book 90 degrees SOUTH.)
-#
-# From Susan Smith
-# http://www.cybertours.com/whs/pole10.html
-# (1995-11-13 16:24:56 +1300, no longer available):
-# We use the same time as McMurdo does.
-# And they use the same time as Christchurch, NZ does....
-# One last quirk about South Pole time.
-# All the electric clocks are usually wrong.
-# Something about the generators running at 60.1hertz or something
-# makes all of the clocks run fast.  So every couple of days,
-# we have to go around and set them back 5 minutes or so.
-# Maybe if we let them run fast all of the time, we'd get to leave here sooner!!
-#
-Link	Antarctica/McMurdo	Antarctica/South_Pole
diff --git a/libkcal/libical/tzdata/asia b/libkcal/libical/tzdata/asia
deleted file mode 100644
index 70f15153..00000000
--- a/libkcal/libical/tzdata/asia
+++ /dev/null
@@ -1,1919 +0,0 @@
-# @(#)asia	8.18
-# <pre>
-
-# This data is by no means authoritative; if you think you know better,
-# go ahead and edit the file (and please send any changes to
-# tz@elsie.nci.nih.gov for general use in the future).
-
-# From Paul Eggert (2006-03-22):
-#
-# A good source for time zone historical data outside the U.S. is
-# Thomas G. Shanks and Rique Pottenger, The International Atlas (6th edition),
-# San Diego: ACS Publications, Inc. (2003).
-#
-# Gwillim Law writes that a good source
-# for recent time zone data is the International Air Transport
-# Association's Standard Schedules Information Manual (IATA SSIM),
-# published semiannually.  Law sent in several helpful summaries
-# of the IATA's data after 1990.
-#
-# Except where otherwise noted, Shanks & Pottenger is the source for
-# entries through 1990, and IATA SSIM is the source for entries afterwards.
-#
-# Another source occasionally used is Edward W. Whitman, World Time Differences,
-# Whitman Publishing Co, 2 Niagara Av, Ealing, London (undated), which
-# I found in the UCLA library.
-#
-# A reliable and entertaining source about time zones is
-# Derek Howse, Greenwich time and longitude, Philip Wilson Publishers (1997).
-#
-# I invented the abbreviations marked `*' in the following table;
-# the rest are from earlier versions of this file, or from other sources.
-# Corrections are welcome!
-#	     std  dst
-#	     LMT	Local Mean Time
-#	2:00 EET  EEST	Eastern European Time
-#	2:00 IST  IDT	Israel
-#	3:00 AST  ADT	Arabia*
-#	3:30 IRST IRDT	Iran
-#	4:00 GST	Gulf*
-#	5:30 IST	India
-#	7:00 ICT	Indochina*
-#	7:00 WIT	west Indonesia
-#	8:00 CIT	central Indonesia
-#	8:00 CST	China
-#	9:00 CJT	Central Japanese Time (1896/1937)*
-#	9:00 EIT	east Indonesia
-#	9:00 JST  JDT	Japan
-#	9:00 KST  KDT	Korea
-#	9:30 CST	(Australian) Central Standard Time
-#
-# See the `europe' file for Russia and Turkey in Asia.
-
-# From Guy Harris:
-# Incorporates data for Singapore from Robert Elz' asia 1.1, as well as
-# additional information from Tom Yap, Sun Microsystems Intercontinental
-# Technical Support (including a page from the Official Airline Guide -
-# Worldwide Edition).  The names for time zones are guesses.
-
-###############################################################################
-
-# These rules are stolen from the `europe' file.
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	EUAsia	1981	max	-	Mar	lastSun	 1:00u	1:00	S
-Rule	EUAsia	1979	1995	-	Sep	lastSun	 1:00u	0	-
-Rule	EUAsia	1996	max	-	Oct	lastSun	 1:00u	0	-
-Rule E-EurAsia	1981	max	-	Mar	lastSun	 0:00	1:00	S
-Rule E-EurAsia	1979	1995	-	Sep	lastSun	 0:00	0	-
-Rule E-EurAsia	1996	max	-	Oct	lastSun	 0:00	0	-
-Rule RussiaAsia	1981	1984	-	Apr	1	 0:00	1:00	S
-Rule RussiaAsia	1981	1983	-	Oct	1	 0:00	0	-
-Rule RussiaAsia	1984	1991	-	Sep	lastSun	 2:00s	0	-
-Rule RussiaAsia	1985	1991	-	Mar	lastSun	 2:00s	1:00	S
-Rule RussiaAsia	1992	only	-	Mar	lastSat	23:00	1:00	S
-Rule RussiaAsia	1992	only	-	Sep	lastSat	23:00	0	-
-Rule RussiaAsia	1993	max	-	Mar	lastSun	 2:00s	1:00	S
-Rule RussiaAsia	1993	1995	-	Sep	lastSun	 2:00s	0	-
-Rule RussiaAsia	1996	max	-	Oct	lastSun	 2:00s	0	-
-
-# Afghanistan
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Asia/Kabul	4:36:48 -	LMT	1890
-			4:00	-	AFT	1945
-			4:30	-	AFT
-
-# Armenia
-# From Paul Eggert (2006-03-22):
-# Shanks & Pottenger have Yerevan switching to 3:00 (with Russian DST)
-# in spring 1991, then to 4:00 with no DST in fall 1995, then
-# readopting Russian DST in 1997.  Go with Shanks & Pottenger, even
-# when they disagree with others.  Edgar Der-Danieliantz
-# reported (1996-05-04) that Yerevan probably wouldn't use DST
-# in 1996, though it did use DST in 1995.  IATA SSIM (1991/1998) reports that
-# Armenia switched from 3:00 to 4:00 in 1998 and observed DST after 1991,
-# but started switching at 3:00s in 1998.
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Asia/Yerevan	2:58:00 -	LMT	1924 May  2
-			3:00	-	YERT	1957 Mar    # Yerevan Time
-			4:00 RussiaAsia YER%sT	1991 Mar 31 2:00s
-			3:00	1:00	YERST	1991 Sep 23 # independence
-			3:00 RussiaAsia	AM%sT	1995 Sep 24 2:00s
-			4:00	-	AMT	1997
-			4:00 RussiaAsia	AM%sT
-
-# Azerbaijan
-# From Rustam Aliyev of the Azerbaijan Internet Forum (2005-10-23):
-# According to the resolution of Cabinet of Ministers, 1997
-# Resolution available at: http://aif.az/docs/daylight_res.pdf
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Azer	1997	max	-	Mar	lastSun	 4:00	1:00	S
-Rule	Azer	1997	max	-	Oct	lastSun	 5:00	0	-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Asia/Baku	3:19:24 -	LMT	1924 May  2
-			3:00	-	BAKT	1957 Mar    # Baku Time
-			4:00 RussiaAsia BAK%sT	1991 Mar 31 2:00s
-			3:00	1:00	BAKST	1991 Aug 30 # independence
-			3:00 RussiaAsia	AZ%sT	1992 Sep lastSat 23:00
-			4:00	-	AZT	1996 # Azerbaijan time
-			4:00	EUAsia	AZ%sT	1997
-			4:00	Azer	AZ%sT
-
-# Bahrain
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Asia/Bahrain	3:22:20 -	LMT	1920		# Al Manamah
-			4:00	-	GST	1972 Jun
-			3:00	-	AST
-
-# Bangladesh
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Asia/Dhaka	6:01:40 -	LMT	1890
-			5:53:20	-	HMT	1941 Oct    # Howrah Mean Time?
-			6:30	-	BURT	1942 May 15 # Burma Time
-			5:30	-	IST	1942 Sep
-			6:30	-	BURT	1951 Sep 30
-			6:00	-	DACT	1971 Mar 26 # Dacca Time
-			6:00	-	BDT	# Bangladesh Time
-
-# Bhutan
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Asia/Thimphu	5:58:36 -	LMT	1947 Aug 15 # or Thimbu
-			5:30	-	IST	1987 Oct
-			6:00	-	BTT	# Bhutan Time
-
-# British Indian Ocean Territory
-# Whitman and the 1995 CIA time zone map say 5:00, but the
-# 1997 and later maps say 6:00.  Assume the switch occurred in 1996.
-# We have no information as to when standard time was introduced;
-# assume it occurred in 1907, the same year as Mauritius (which
-# then contained the Chagos Archipelago).
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Indian/Chagos	4:49:40	-	LMT	1907
-			5:00	-	IOT	1996 # BIOT Time
-			6:00	-	IOT
-
-# Brunei
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Asia/Brunei	7:39:40 -	LMT	1926 Mar   # Bandar Seri Begawan
-			7:30	-	BNT	1933
-			8:00	-	BNT
-
-# Burma / Myanmar
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Asia/Rangoon	6:24:40 -	LMT	1880		# or Yangon
-			6:24:36	-	RMT	1920	   # Rangoon Mean Time?
-			6:30	-	BURT	1942 May   # Burma Time
-			9:00	-	JST	1945 May 3
-			6:30	-	MMT		   # Myanmar Time
-
-# Cambodia
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Asia/Phnom_Penh	6:59:40 -	LMT	1906 Jun  9
-			7:06:20	-	SMT	1911 Mar 11 0:01 # Saigon MT?
-			7:00	-	ICT	1912 May
-			8:00	-	ICT	1931 May
-			7:00	-	ICT
-
-# China
-
-# From Guy Harris:
-# People's Republic of China.  Yes, they really have only one time zone.
-
-# From Bob Devine (1988-01-28):
-# No they don't.  See TIME mag, 1986-02-17 p.52.  Even though
-# China is across 4 physical time zones, before Feb 1, 1986 only the
-# Peking (Bejing) time zone was recognized.  Since that date, China
-# has two of 'em -- Peking's and Urumqi (named after the capital of
-# the Xinjiang Uyghur Autonomous Region).  I don't know about DST for it.
-#
-# . . .I just deleted the DST table and this editor makes it too
-# painful to suck in another copy..  So, here is what I have for
-# DST start/end dates for Peking's time zone (info from AP):
-#
-#     1986 May 4 - Sept 14
-#     1987 mid-April - ??
-
-# From U. S. Naval Observatory (1989-01-19):
-# CHINA               8 H  AHEAD OF UTC  ALL OF CHINA, INCL TAIWAN
-# CHINA               9 H  AHEAD OF UTC  APR 17 - SEP 10
-
-# From Paul Eggert (2006-03-22):
-# Shanks & Pottenger write that China (except for Hong Kong and Macau)
-# has had a single time zone since 1980 May 1, observing summer DST
-# from 1986 through 1991; this contradicts Devine's
-# note about Time magazine, though apparently _something_ happened in 1986.
-# Go with Shanks & Pottenger for now.  I made up names for the other
-# pre-1980 time zones.
-
-# From Shanks & Pottenger:
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Shang	1940	only	-	Jun	 3	0:00	1:00	D
-Rule	Shang	1940	1941	-	Oct	 1	0:00	0	S
-Rule	Shang	1941	only	-	Mar	16	0:00	1:00	D
-Rule	PRC	1986	only	-	May	 4	0:00	1:00	D
-Rule	PRC	1986	1991	-	Sep	Sun>=11	0:00	0	S
-Rule	PRC	1987	1991	-	Apr	Sun>=10	0:00	1:00	D
-
-# From Anthony Fok (2001-12-20):
-# BTW, I did some research on-line and found some info regarding these five
-# historic timezones from some Taiwan websites.  And yes, there are official
-# Chinese names for these locales (before 1949).
-#
-# From Jesper Norgaard Welen (2006-07-14):
-# I have investigated the timezones around 1970 on the
-# http://www.astro.com/atlas site [with provinces and county
-# boundaries summarized below]....  A few other exceptions were two
-# counties on the Sichuan side of the Xizang-Sichuan border,
-# counties Dege and Baiyu which lies on the Sichuan side and are
-# therefore supposed to be GMT+7, Xizang region being GMT+6, but Dege
-# county is GMT+8 according to astro.com while Baiyu county is GMT+6
-# (could be true), for the moment I am assuming that those two
-# counties are mistakes in the astro.com data.
-
-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-# Changbai Time ("Long-white Time", Long-white = Heilongjiang area)
-# Heilongjiang (except Mohe county), Jilin
-Zone	Asia/Harbin	8:26:44	-	LMT	1928 # or Haerbin
-			8:30	-	CHAT	1932 Mar # Changbai Time
-			8:00	-	CST	1940
-			9:00	-	CHAT	1966 May
-			8:30	-	CHAT	1980 May
-			8:00	PRC	C%sT
-# Zhongyuan Time ("Central plain Time")
-# most of China
-Zone	Asia/Shanghai	8:05:52	-	LMT	1928
-			8:00	Shang	C%sT	1949
-			8:00	PRC	C%sT
-# Long-shu Time (probably due to Long and Shu being two names of that area)
-# Guangxi, Guizhou, Hainan, Ningxia, Sichuan, Shaanxi, and Yunnan;
-# most of Gansu; west Inner Mongolia; west Qinghai; and the Guangdong
-# counties Deqing, Enping, Kaiping, Luoding, Taishan, Xinxing,
-# Yangchun, Yangjiang, Yu'nan, and Yunfu.
-Zone	Asia/Chongqing	7:06:20	-	LMT	1928 # or Chungking
-			7:00	-	LONT	1980 May # Long-shu Time
-			8:00	PRC	C%sT
-# Xin-zang Time ("Xinjiang-Tibet Time")
-# The Gansu counties Aksay, Anxi, Dunhuang, Subei; west Qinghai;
-# the Guangdong counties  Xuwen, Haikang, Suixi, Lianjiang,
-# Zhanjiang, Wuchuan, Huazhou, Gaozhou, Maoming, Dianbai, and Xinyi;
-# east Tibet, including Lhasa, Chamdo, Shigaise, Jimsar, Shawan and Hutubi;
-# east Xinjiang, including Urumqi, Turpan, Karamay, Korla, Minfeng, Jinghe,
-# Wusu, Qiemo, Xinyan, Wulanwusu, Jinghe, Yumin, Tacheng, Tuoli, Emin,
-# Shihezi, Changji, Yanqi, Heshuo, Tuokexun, Tulufan, Shanshan, Hami,
-# Fukang, Kuitun, Kumukuli, Miquan, Qitai, and Turfan.
-Zone	Asia/Urumqi	5:50:20	-	LMT	1928 # or Urumchi
-			6:00	-	URUT	1980 May # Urumqi Time
-			8:00	PRC	C%sT
-# Kunlun Time
-# West Tibet, including Pulan, Aheqi, Shufu, Shule;
-# West Xinjiang, including Aksu, Atushi, Yining, Hetian, Cele, Luopu, Nileke,
-# Zhaosu, Tekesi, Gongliu, Chabuchaer, Huocheng, Bole, Pishan, Suiding,
-# and Yarkand.
-Zone	Asia/Kashgar	5:03:56	-	LMT	1928 # or Kashi or Kaxgar
-			5:30	-	KAST	1940	 # Kashgar Time
-			5:00	-	KAST	1980 May
-			8:00	PRC	C%sT
-
-# Hong Kong (Xianggang)
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	HK	1946	only	-	Apr	20	3:30	1:00	S
-Rule	HK	1946	only	-	Dec	1	3:30	0	-
-Rule	HK	1947	only	-	Apr	13	3:30	1:00	S
-Rule	HK	1947	only	-	Dec	30	3:30	0	-
-Rule	HK	1948	only	-	May	2	3:30	1:00	S
-Rule	HK	1948	1952	-	Oct	lastSun	3:30	0	-
-Rule	HK	1949	1953	-	Apr	Sun>=1	3:30	1:00	S
-Rule	HK	1953	only	-	Nov	1	3:30	0	-
-Rule	HK	1954	1964	-	Mar	Sun>=18	3:30	1:00	S
-Rule	HK	1954	only	-	Oct	31	3:30	0	-
-Rule	HK	1955	1964	-	Nov	Sun>=1	3:30	0	-
-Rule	HK	1965	1977	-	Apr	Sun>=16	3:30	1:00	S
-Rule	HK	1965	1977	-	Oct	Sun>=16	3:30	0	-
-Rule	HK	1979	1980	-	May	Sun>=8	3:30	1:00	S
-Rule	HK	1979	1980	-	Oct	Sun>=16	3:30	0	-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Asia/Hong_Kong	7:36:36 -	LMT	1904 Oct 30
-			8:00	HK	HK%sT
-
-
-###############################################################################
-
-# Taiwan
-
-# Shanks & Pottenger write that Taiwan observed DST during 1945, when it
-# was still controlled by Japan.  This is hard to believe, but we don't
-# have any other information.
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Taiwan	1945	1951	-	May	1	0:00	1:00	D
-Rule	Taiwan	1945	1951	-	Oct	1	0:00	0	S
-Rule	Taiwan	1952	only	-	Mar	1	0:00	1:00	D
-Rule	Taiwan	1952	1954	-	Nov	1	0:00	0	S
-Rule	Taiwan	1953	1959	-	Apr	1	0:00	1:00	D
-Rule	Taiwan	1955	1961	-	Oct	1	0:00	0	S
-Rule	Taiwan	1960	1961	-	Jun	1	0:00	1:00	D
-Rule	Taiwan	1974	1975	-	Apr	1	0:00	1:00	D
-Rule	Taiwan	1974	1975	-	Oct	1	0:00	0	S
-Rule	Taiwan	1980	only	-	Jun	30	0:00	1:00	D
-Rule	Taiwan	1980	only	-	Sep	30	0:00	0	S
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Asia/Taipei	8:06:00 -	LMT	1896 # or Taibei or T'ai-pei
-			8:00	Taiwan	C%sT
-
-# Macau (Macao, Aomen)
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Macau	1961	1962	-	Mar	Sun>=16	3:30	1:00	S
-Rule	Macau	1961	1964	-	Nov	Sun>=1	3:30	0	-
-Rule	Macau	1963	only	-	Mar	Sun>=16	0:00	1:00	S
-Rule	Macau	1964	only	-	Mar	Sun>=16	3:30	1:00	S
-Rule	Macau	1965	only	-	Mar	Sun>=16	0:00	1:00	S
-Rule	Macau	1965	only	-	Oct	31	0:00	0	-
-Rule	Macau	1966	1971	-	Apr	Sun>=16	3:30	1:00	S
-Rule	Macau	1966	1971	-	Oct	Sun>=16	3:30	0	-
-Rule	Macau	1972	1974	-	Apr	Sun>=15	0:00	1:00	S
-Rule	Macau	1972	1973	-	Oct	Sun>=15	0:00	0	-
-Rule	Macau	1974	1977	-	Oct	Sun>=15	3:30	0	-
-Rule	Macau	1975	1977	-	Apr	Sun>=15	3:30	1:00	S
-Rule	Macau	1978	1980	-	Apr	Sun>=15	0:00	1:00	S
-Rule	Macau	1978	1980	-	Oct	Sun>=15	0:00	0	-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Asia/Macau	7:34:20 -	LMT	1912
-			8:00	Macau	MO%sT	1999 Dec 20 # return to China
-			8:00	PRC	C%sT
-
-
-###############################################################################
-
-# Cyprus
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Cyprus	1975	only	-	Apr	13	0:00	1:00	S
-Rule	Cyprus	1975	only	-	Oct	12	0:00	0	-
-Rule	Cyprus	1976	only	-	May	15	0:00	1:00	S
-Rule	Cyprus	1976	only	-	Oct	11	0:00	0	-
-Rule	Cyprus	1977	1980	-	Apr	Sun>=1	0:00	1:00	S
-Rule	Cyprus	1977	only	-	Sep	25	0:00	0	-
-Rule	Cyprus	1978	only	-	Oct	2	0:00	0	-
-Rule	Cyprus	1979	1997	-	Sep	lastSun	0:00	0	-
-Rule	Cyprus	1981	1998	-	Mar	lastSun	0:00	1:00	S
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Asia/Nicosia	2:13:28 -	LMT	1921 Nov 14
-			2:00	Cyprus	EE%sT	1998 Sep
-			2:00	EUAsia	EE%sT
-# IATA SSIM (1998-09) has Cyprus using EU rules for the first time.
-
-# Classically, Cyprus belongs to Asia; e.g. see Herodotus, Histories, I.72.
-# However, for various reasons many users expect to find it under Europe.
-Link	Asia/Nicosia	Europe/Nicosia
-
-# Georgia
-# From Paul Eggert (1994-11-19):
-# Today's _Economist_ (p 60) reports that Georgia moved its clocks forward
-# an hour recently, due to a law proposed by Zurab Murvanidze,
-# an MP who went on a hunger strike for 11 days to force discussion about it!
-# We have no details, but we'll guess they didn't move the clocks back in fall.
-#
-# From Mathew Englander, quoting AP (1996-10-23 13:05-04):
-# Instead of putting back clocks at the end of October, Georgia
-# will stay on daylight savings time this winter to save energy,
-# President Eduard Shevardnadze decreed Wednesday.
-#
-# From the BBC via Joseph S. Myers (2004-06-27):
-#
-# Georgia moved closer to Western Europe on Sunday...  The former Soviet
-# republic has changed its time zone back to that of Moscow.  As a result it
-# is now just four hours ahead of Greenwich Mean Time, rather than five hours
-# ahead.  The switch was decreed by the pro-Western president of Georgia,
-# Mikhail Saakashvili, who said the change was partly prompted by the process
-# of integration into Europe.
-
-# From Teimuraz Abashidze (2005-11-07):
-# Government of Georgia ... decided to NOT CHANGE daylight savings time on
-# [Oct.] 30, as it was done before during last more than 10 years.
-# Currently, we are in fact GMT +4:00, as before 30 October it was GMT
-# +3:00.... The problem is, there is NO FORMAL LAW or governmental document
-# about it.  As far as I can find, I was told, that there is no document,
-# because we just DIDN'T ISSUE document about switching to winter time....
-# I don't know what can be done, especially knowing that some years ago our
-# DST rules where changed THREE TIMES during one month.
-
-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Asia/Tbilisi	2:59:16 -	LMT	1880
-			2:59:16	-	TBMT	1924 May  2 # Tbilisi Mean Time
-			3:00	-	TBIT	1957 Mar    # Tbilisi Time
-			4:00 RussiaAsia TBI%sT	1991 Mar 31 2:00s
-			3:00	1:00	TBIST	1991 Apr  9 # independence
-			3:00 RussiaAsia GE%sT	1992 # Georgia Time
-			3:00 E-EurAsia	GE%sT	1994 Sep lastSun
-			4:00 E-EurAsia	GE%sT	1996 Oct lastSun
-			4:00	1:00	GEST	1997 Mar lastSun
-			4:00 E-EurAsia	GE%sT	2004 Jun 27
-			3:00 RussiaAsia	GE%sT	2005 Mar lastSun 2:00
-			4:00	-	GET
-
-# East Timor
-
-# See Indonesia for the 1945 transition.
-
-# From Joao Carrascalao, brother of the former governor of East Timor, in
-# <a href="http://etan.org/et99c/december/26-31/30ETMAY.htm">
-# East Timor may be late for its millennium
-# </a> (1999-12-26/31):
-# Portugal tried to change the time forward in 1974 because the sun
-# rises too early but the suggestion raised a lot of problems with the
-# Timorese and I still don't think it would work today because it
-# conflicts with their way of life.
-
-# From Paul Eggert (2000-12-04):
-# We don't have any record of the above attempt.
-# Most likely our records are incomplete, but we have no better data.
-
-# <a href="http://www.hri.org/news/world/undh/last/00-08-16.undh.html">
-# From Manoel de Almeida e Silva, Deputy Spokesman for the UN Secretary-General
-# (2000-08-16)</a>:
-# The Cabinet of the East Timor Transition Administration decided
-# today to advance East Timor's time by one hour.  The time change,
-# which will be permanent, with no seasonal adjustment, will happen at
-# midnight on Saturday, September 16.
-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Asia/Dili	8:22:20 -	LMT	1912
-			8:00	-	TLT	1942 Feb 21 23:00 # E Timor Time
-			9:00	-	JST	1945 Sep 23
-			9:00	-	TLT	1976 May  3
-			8:00	-	CIT	2000 Sep 17 00:00
-			9:00	-	TLT
-
-# India
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Asia/Kolkata	5:53:28 -	LMT	1880	# Kolkata
-			5:53:20	-	HMT	1941 Oct    # Howrah Mean Time?
-			6:30	-	BURT	1942 May 15 # Burma Time
-			5:30	-	IST	1942 Sep
-			5:30	1:00	IST	1945 Oct 15
-			5:30	-	IST
-# The following are like Asia/Kolkata:
-#	Andaman Is
-#	Lakshadweep (Laccadive, Minicoy and Amindivi Is)
-#	Nicobar Is
-
-# Indonesia
-#
-# From Gwillim Law (2001-05-28), overriding Shanks & Pottenger:
-# <http://www.sumatera-inc.com/go_to_invest/about_indonesia.asp#standtime>
-# says that Indonesia's time zones changed on 1988-01-01.  Looking at some
-# time zone maps, I think that must refer to Western Borneo (Kalimantan Barat
-# and Kalimantan Tengah) switching from UTC+8 to UTC+7.
-#
-# From Paul Eggert (2007-03-10):
-# Here is another correction to Shanks & Pottenger.
-# JohnTWB writes that Japanese forces did not surrender control in
-# Indonesia until 1945-09-01 00:00 at the earliest (in Jakarta) and
-# other formal surrender ceremonies were September 9, 11, and 13, plus
-# September 12 for the regional surrender to Mountbatten in Singapore.
-# These would be the earliest possible times for a change.
-# Regimes horaires pour le monde entier, by Henri Le Corre, (Editions
-# Traditionnelles, 1987, Paris) says that Java and Madura switched
-# from JST to UTC+07:30 on 1945-09-23, and gives 1944-09-01 for Jayapura
-# (Hollandia).  For now, assume all Indonesian locations other than Jayapura
-# switched on 1945-09-23.
-#
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Asia/Jakarta	7:07:12 -	LMT	1867 Aug 10
-# Shanks & Pottenger say the next transition was at 1924 Jan 1 0:13,
-# but this must be a typo.
-			7:07:12	-	JMT	1923 Dec 31 23:47:12 # Jakarta
-			7:20	-	JAVT	1932 Nov	 # Java Time
-			7:30	-	WIT	1942 Mar 23
-			9:00	-	JST	1945 Sep 23
-			7:30	-	WIT	1948 May
-			8:00	-	WIT	1950 May
-			7:30	-	WIT	1964
-			7:00	-	WIT
-Zone Asia/Pontianak	7:17:20	-	LMT	1908 May
-			7:17:20	-	PMT	1932 Nov    # Pontianak MT
-			7:30	-	WIT	1942 Jan 29
-			9:00	-	JST	1945 Sep 23
-			7:30	-	WIT	1948 May
-			8:00	-	WIT	1950 May
-			7:30	-	WIT	1964
-			8:00	-	CIT	1988 Jan  1
-			7:00	-	WIT
-Zone Asia/Makassar	7:57:36 -	LMT	1920
-			7:57:36	-	MMT	1932 Nov    # Macassar MT
-			8:00	-	CIT	1942 Feb  9
-			9:00	-	JST	1945 Sep 23
-			8:00	-	CIT
-Zone Asia/Jayapura	9:22:48 -	LMT	1932 Nov
-			9:00	-	EIT	1944 Sep  1
-			9:30	-	CST	1964
-			9:00	-	EIT
-
-# Iran
-
-# From Roozbeh Pournader (2003-03-15):
-# This is an English translation of what I just found (originally in Persian).
-# The Gregorian dates in brackets are mine:
-#
-#	Official Newspaper No. 13548-1370/6/25 [1991-09-16]
-#	No. 16760/T233 H				1370/6/10 [1991-09-01]
-#
-#	The Rule About Change of the Official Time of the Country
-#
-#	The Board of Ministers, in the meeting dated 1370/5/23 [1991-08-14],
-#	based on the suggestion number 2221/D dated 1370/4/22 [1991-07-13]
-#	of the Country's Organization for Official and Employment Affairs,
-#	and referring to the law for equating the working hours of workers
-#	and officers in the whole country dated 1359/4/23 [1980-07-14], and
-#	for synchronizing the official times of the country, agreed that:
-#
-#	The official time of the country will should move forward one hour
-#	at the 24[:00] hours of the first day of Farvardin and should return
-#	to its previous state at the 24[:00] hours of the 30th day of
-#	Shahrivar.
-#
-#	First Deputy to the President - Hassan Habibi
-#
-# From personal experience, that agrees with what has been followed
-# for at least the last 5 years.  Before that, for a few years, the
-# date used was the first Thursday night of Farvardin and the last
-# Thursday night of Shahrivar, but I can't give exact dates....
-# I have also changed the abbreviations to what is considered correct
-# here in Iran, IRST for regular time and IRDT for daylight saving time.
-#
-# From Roozbeh Pournader (2005-04-05):
-# The text of the Iranian law, in effect since 1925, clearly mentions
-# that the true solar year is the measure, and there is no arithmetic
-# leap year calculation involved.  There has never been any serious
-# plan to change that law....
-#
-# From Paul Eggert (2006-03-22):
-# Go with Shanks & Pottenger before Sept. 1991, and with Pournader thereafter.
-# I used Ed Reingold's cal-persia in GNU Emacs 21.2 to check Persian dates,
-# stopping after 2037 when 32-bit time_t's overflow.
-# That cal-persia used Birashk's approximation, which disagrees with the solar
-# calendar predictions for the year 2025, so I corrected those dates by hand.
-#
-# From Oscar van Vlijmen (2005-03-30), writing about future
-# discrepancies between cal-persia and the Iranian calendar:
-# For 2091 solar-longitude-after yields 2091-03-20 08:40:07.7 UT for
-# the vernal equinox and that gets so close to 12:00 some local
-# Iranian time that the definition of the correct location needs to be
-# known exactly, amongst other factors.  2157 is even closer:
-# 2157-03-20 08:37:15.5 UT.  But the Gregorian year 2025 should give
-# no interpretation problem whatsoever.  By the way, another instant
-# in the near future where there will be a discrepancy between
-# arithmetical and astronomical Iranian calendars will be in 2058:
-# vernal equinox on 2058-03-20 09:03:05.9 UT.  The Java version of
-# Reingold's/Dershowitz' calculator gives correctly the Gregorian date
-# 2058-03-21 for 1 Farvardin 1437 (astronomical).
-#
-# From Steffen Thorsen (2006-03-22):
-# Several of my users have reported that Iran will not observe DST anymore:
-# http://www.irna.ir/en/news/view/line-17/0603193812164948.htm
-#
-# From Reuters (2007-09-16), with a heads-up from Jesper Norgaard Welen:
-# ... the Guardian Council ... approved a law on Sunday to re-introduce
-# daylight saving time ...
-# http://uk.reuters.com/article/oilRpt/idUKBLA65048420070916
-#
-# From Roozbeh Pournader (2007-11-05):
-# This is quoted from Official Gazette of the Islamic Republic of
-# Iran, Volume 63, Number 18242, dated Tuesday 1386/6/24
-# [2007-10-16]. I am doing the best translation I can:...
-# The official time of the country will be moved forward for one hour
-# on the 24 hours of the first day of the month of Farvardin and will
-# be changed back to its previous state on the 24 hours of the
-# thirtieth day of Shahrivar.
-#
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Iran	1978	1980	-	Mar	21	0:00	1:00	D
-Rule	Iran	1978	only	-	Oct	21	0:00	0	S
-Rule	Iran	1979	only	-	Sep	19	0:00	0	S
-Rule	Iran	1980	only	-	Sep	23	0:00	0	S
-Rule	Iran	1991	only	-	May	 3	0:00	1:00	D
-Rule	Iran	1992	1995	-	Mar	22	0:00	1:00	D
-Rule	Iran	1991	1995	-	Sep	22	0:00	0	S
-Rule	Iran	1996	only	-	Mar	21	0:00	1:00	D
-Rule	Iran	1996	only	-	Sep	21	0:00	0	S
-Rule	Iran	1997	1999	-	Mar	22	0:00	1:00	D
-Rule	Iran	1997	1999	-	Sep	22	0:00	0	S
-Rule	Iran	2000	only	-	Mar	21	0:00	1:00	D
-Rule	Iran	2000	only	-	Sep	21	0:00	0	S
-Rule	Iran	2001	2003	-	Mar	22	0:00	1:00	D
-Rule	Iran	2001	2003	-	Sep	22	0:00	0	S
-Rule	Iran	2004	only	-	Mar	21	0:00	1:00	D
-Rule	Iran	2004	only	-	Sep	21	0:00	0	S
-Rule	Iran	2005	only	-	Mar	22	0:00	1:00	D
-Rule	Iran	2005	only	-	Sep	22	0:00	0	S
-Rule	Iran	2008	only	-	Mar	21	0:00	1:00	D
-Rule	Iran	2008	only	-	Sep	21	0:00	0	S
-Rule	Iran	2009	2011	-	Mar	22	0:00	1:00	D
-Rule	Iran	2009	2011	-	Sep	22	0:00	0	S
-Rule	Iran	2012	only	-	Mar	21	0:00	1:00	D
-Rule	Iran	2012	only	-	Sep	21	0:00	0	S
-Rule	Iran	2013	2015	-	Mar	22	0:00	1:00	D
-Rule	Iran	2013	2015	-	Sep	22	0:00	0	S
-Rule	Iran	2016	only	-	Mar	21	0:00	1:00	D
-Rule	Iran	2016	only	-	Sep	21	0:00	0	S
-Rule	Iran	2017	2019	-	Mar	22	0:00	1:00	D
-Rule	Iran	2017	2019	-	Sep	22	0:00	0	S
-Rule	Iran	2020	only	-	Mar	21	0:00	1:00	D
-Rule	Iran	2020	only	-	Sep	21	0:00	0	S
-Rule	Iran	2021	2023	-	Mar	22	0:00	1:00	D
-Rule	Iran	2021	2023	-	Sep	22	0:00	0	S
-Rule	Iran	2024	only	-	Mar	21	0:00	1:00	D
-Rule	Iran	2024	only	-	Sep	21	0:00	0	S
-Rule	Iran	2025	2027	-	Mar	22	0:00	1:00	D
-Rule	Iran	2025	2027	-	Sep	22	0:00	0	S
-Rule	Iran	2028	2029	-	Mar	21	0:00	1:00	D
-Rule	Iran	2028	2029	-	Sep	21	0:00	0	S
-Rule	Iran	2030	2031	-	Mar	22	0:00	1:00	D
-Rule	Iran	2030	2031	-	Sep	22	0:00	0	S
-Rule	Iran	2032	2033	-	Mar	21	0:00	1:00	D
-Rule	Iran	2032	2033	-	Sep	21	0:00	0	S
-Rule	Iran	2034	2035	-	Mar	22	0:00	1:00	D
-Rule	Iran	2034	2035	-	Sep	22	0:00	0	S
-Rule	Iran	2036	2037	-	Mar	21	0:00	1:00	D
-Rule	Iran	2036	2037	-	Sep	21	0:00	0	S
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Asia/Tehran	3:25:44	-	LMT	1916
-			3:25:44	-	TMT	1946	# Tehran Mean Time
-			3:30	-	IRST	1977 Nov
-			4:00	Iran	IR%sT	1979
-			3:30	Iran	IR%sT
-
-
-# Iraq
-#
-# From Jonathan Lennox (2000-06-12):
-# An article in this week's Economist ("Inside the Saddam-free zone", p. 50 in
-# the U.S. edition) on the Iraqi Kurds contains a paragraph:
-# "The three northern provinces ... switched their clocks this spring and
-# are an hour ahead of Baghdad."
-#
-# But Rives McDow (2000-06-18) quotes a contact in Iraqi-Kurdistan as follows:
-# In the past, some Kurdish nationalists, as a protest to the Iraqi
-# Government, did not adhere to daylight saving time.  They referred
-# to daylight saving as Saddam time.  But, as of today, the time zone
-# in Iraqi-Kurdistan is on standard time with Baghdad, Iraq.
-#
-# So we'll ignore the Economist's claim.
-
-# From Steffen Thorsen (2008-03-10):
-# The cabinet in Iraq abolished DST last week, according to the following
-# news sources (in Arabic):
-# <a href="http://www.aljeeran.net/wesima_articles/news-20080305-98602.html">
-# http://www.aljeeran.net/wesima_articles/news-20080305-98602.html
-# </a>
-# <a href="http://www.aswataliraq.info/look/article.tpl?id=2047&IdLanguage=17&IdPublication=4&NrArticle=71743&NrIssue=1&NrSection=10">
-# http://www.aswataliraq.info/look/article.tpl?id=2047&IdLanguage=17&IdPublication=4&NrArticle=71743&NrIssue=1&NrSection=10
-# </a>
-#
-# We have published a short article in English about the change:
-# <a href="http://www.timeanddate.com/news/time/iraq-dumps-daylight-saving.html">
-# http://www.timeanddate.com/news/time/iraq-dumps-daylight-saving.html
-# </a>
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Iraq	1982	only	-	May	1	0:00	1:00	D
-Rule	Iraq	1982	1984	-	Oct	1	0:00	0	S
-Rule	Iraq	1983	only	-	Mar	31	0:00	1:00	D
-Rule	Iraq	1984	1985	-	Apr	1	0:00	1:00	D
-Rule	Iraq	1985	1990	-	Sep	lastSun	1:00s	0	S
-Rule	Iraq	1986	1990	-	Mar	lastSun	1:00s	1:00	D
-# IATA SSIM (1991/1996) says Apr 1 12:01am UTC; guess the `:01' is a typo.
-# Shanks & Pottenger say Iraq did not observe DST 1992/1997; ignore this.
-#
-Rule	Iraq	1991	2007	-	Apr	 1	3:00s	1:00	D
-Rule	Iraq	1991	2007	-	Oct	 1	3:00s	0	S
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Asia/Baghdad	2:57:40	-	LMT	1890
-			2:57:36	-	BMT	1918	    # Baghdad Mean Time?
-			3:00	-	AST	1982 May
-			3:00	Iraq	A%sT
-
-
-###############################################################################
-
-# Israel
-
-# From Ephraim Silverberg (2001-01-11):
-#
-# I coined "IST/IDT" circa 1988.  Until then there were three
-# different abbreviations in use:
-#
-# JST  Jerusalem Standard Time [Danny Braniss, Hebrew University]
-# IZT  Israel Zonal (sic) Time [Prof. Haim Papo, Technion]
-# EEST Eastern Europe Standard Time [used by almost everyone else]
-#
-# Since timezones should be called by country and not capital cities,
-# I ruled out JST.  As Israel is in Asia Minor and not Eastern Europe,
-# EEST was equally unacceptable.  Since "zonal" was not compatible with
-# any other timezone abbreviation, I felt that 'IST' was the way to go
-# and, indeed, it has received almost universal acceptance in timezone
-# settings in Israeli computers.
-#
-# In any case, I am happy to share timezone abbreviations with India,
-# high on my favorite-country list (and not only because my wife's
-# family is from India).
-
-# From Shanks & Pottenger:
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Zion	1940	only	-	Jun	 1	0:00	1:00	D
-Rule	Zion	1942	1944	-	Nov	 1	0:00	0	S
-Rule	Zion	1943	only	-	Apr	 1	2:00	1:00	D
-Rule	Zion	1944	only	-	Apr	 1	0:00	1:00	D
-Rule	Zion	1945	only	-	Apr	16	0:00	1:00	D
-Rule	Zion	1945	only	-	Nov	 1	2:00	0	S
-Rule	Zion	1946	only	-	Apr	16	2:00	1:00	D
-Rule	Zion	1946	only	-	Nov	 1	0:00	0	S
-Rule	Zion	1948	only	-	May	23	0:00	2:00	DD
-Rule	Zion	1948	only	-	Sep	 1	0:00	1:00	D
-Rule	Zion	1948	1949	-	Nov	 1	2:00	0	S
-Rule	Zion	1949	only	-	May	 1	0:00	1:00	D
-Rule	Zion	1950	only	-	Apr	16	0:00	1:00	D
-Rule	Zion	1950	only	-	Sep	15	3:00	0	S
-Rule	Zion	1951	only	-	Apr	 1	0:00	1:00	D
-Rule	Zion	1951	only	-	Nov	11	3:00	0	S
-Rule	Zion	1952	only	-	Apr	20	2:00	1:00	D
-Rule	Zion	1952	only	-	Oct	19	3:00	0	S
-Rule	Zion	1953	only	-	Apr	12	2:00	1:00	D
-Rule	Zion	1953	only	-	Sep	13	3:00	0	S
-Rule	Zion	1954	only	-	Jun	13	0:00	1:00	D
-Rule	Zion	1954	only	-	Sep	12	0:00	0	S
-Rule	Zion	1955	only	-	Jun	11	2:00	1:00	D
-Rule	Zion	1955	only	-	Sep	11	0:00	0	S
-Rule	Zion	1956	only	-	Jun	 3	0:00	1:00	D
-Rule	Zion	1956	only	-	Sep	30	3:00	0	S
-Rule	Zion	1957	only	-	Apr	29	2:00	1:00	D
-Rule	Zion	1957	only	-	Sep	22	0:00	0	S
-Rule	Zion	1974	only	-	Jul	 7	0:00	1:00	D
-Rule	Zion	1974	only	-	Oct	13	0:00	0	S
-Rule	Zion	1975	only	-	Apr	20	0:00	1:00	D
-Rule	Zion	1975	only	-	Aug	31	0:00	0	S
-Rule	Zion	1985	only	-	Apr	14	0:00	1:00	D
-Rule	Zion	1985	only	-	Sep	15	0:00	0	S
-Rule	Zion	1986	only	-	May	18	0:00	1:00	D
-Rule	Zion	1986	only	-	Sep	 7	0:00	0	S
-Rule	Zion	1987	only	-	Apr	15	0:00	1:00	D
-Rule	Zion	1987	only	-	Sep	13	0:00	0	S
-Rule	Zion	1988	only	-	Apr	 9	0:00	1:00	D
-Rule	Zion	1988	only	-	Sep	 3	0:00	0	S
-
-# From Ephraim Silverberg
-# (1997-03-04, 1998-03-16, 1998-12-28, 2000-01-17, 2000-07-25, 2004-12-22,
-# and 2005-02-17):
-
-# According to the Office of the Secretary General of the Ministry of
-# Interior, there is NO set rule for Daylight-Savings/Standard time changes.
-# One thing is entrenched in law, however: that there must be at least 150
-# days of daylight savings time annually.  From 1993-1998, the change to
-# daylight savings time was on a Friday morning from midnight IST to
-# 1 a.m IDT; up until 1998, the change back to standard time was on a
-# Saturday night from midnight daylight savings time to 11 p.m. standard
-# time.  1996 is an exception to this rule where the change back to standard
-# time took place on Sunday night instead of Saturday night to avoid
-# conflicts with the Jewish New Year.  In 1999, the change to
-# daylight savings time was still on a Friday morning but from
-# 2 a.m. IST to 3 a.m. IDT; furthermore, the change back to standard time
-# was also on a Friday morning from 2 a.m. IDT to 1 a.m. IST for
-# 1999 only.  In the year 2000, the change to daylight savings time was
-# similar to 1999, but although the change back will be on a Friday, it
-# will take place from 1 a.m. IDT to midnight IST.  Starting in 2001, all
-# changes to/from will take place at 1 a.m. old time, but now there is no
-# rule as to what day of the week it will take place in as the start date
-# (except in 2003) is the night after the Passover Seder (i.e. the eve
-# of the 16th of Nisan in the lunar Hebrew calendar) and the end date
-# (except in 2002) is three nights before Yom Kippur [Day of Atonement]
-# (the eve of the 7th of Tishrei in the lunar Hebrew calendar).
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Zion	1989	only	-	Apr	30	0:00	1:00	D
-Rule	Zion	1989	only	-	Sep	 3	0:00	0	S
-Rule	Zion	1990	only	-	Mar	25	0:00	1:00	D
-Rule	Zion	1990	only	-	Aug	26	0:00	0	S
-Rule	Zion	1991	only	-	Mar	24	0:00	1:00	D
-Rule	Zion	1991	only	-	Sep	 1	0:00	0	S
-Rule	Zion	1992	only	-	Mar	29	0:00	1:00	D
-Rule	Zion	1992	only	-	Sep	 6	0:00	0	S
-Rule	Zion	1993	only	-	Apr	 2	0:00	1:00	D
-Rule	Zion	1993	only	-	Sep	 5	0:00	0	S
-
-# The dates for 1994-1995 were obtained from Office of the Spokeswoman for the
-# Ministry of Interior, Jerusalem, Israel.  The spokeswoman can be reached by
-# calling the office directly at 972-2-6701447 or 972-2-6701448.
-
-# Rule	NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
-Rule	Zion	1994	only	-	Apr	 1	0:00	1:00	D
-Rule	Zion	1994	only	-	Aug	28	0:00	0	S
-Rule	Zion	1995	only	-	Mar	31	0:00	1:00	D
-Rule	Zion	1995	only	-	Sep	 3	0:00	0	S
-
-# The dates for 1996 were determined by the Minister of Interior of the
-# time, Haim Ramon.  The official announcement regarding 1996-1998
-# (with the dates for 1997-1998 no longer being relevant) can be viewed at:
-#
-#   ftp://ftp.cs.huji.ac.il/pub/tz/announcements/1996-1998.ramon.ps.gz
-#
-# The dates for 1997-1998 were altered by his successor, Rabbi Eli Suissa.
-#
-# The official announcements for the years 1997-1999 can be viewed at:
-#
-#   ftp://ftp.cs.huji.ac.il/pub/tz/announcements/YYYY.ps.gz
-#
-#       where YYYY is the relevant year.
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Zion	1996	only	-	Mar	15	0:00	1:00	D
-Rule	Zion	1996	only	-	Sep	16	0:00	0	S
-Rule	Zion	1997	only	-	Mar	21	0:00	1:00	D
-Rule	Zion	1997	only	-	Sep	14	0:00	0	S
-Rule	Zion	1998	only	-	Mar	20	0:00	1:00	D
-Rule	Zion	1998	only	-	Sep	 6	0:00	0	S
-Rule	Zion	1999	only	-	Apr	 2	2:00	1:00	D
-Rule	Zion	1999	only	-	Sep	 3	2:00	0	S
-
-# The Knesset Interior Committee has changed the dates for 2000 for
-# the third time in just over a year and have set new dates for the
-# years 2001-2004 as well.
-#
-# The official announcement for the start date of 2000 can be viewed at:
-#
-#	ftp://ftp.cs.huji.ac.il/pub/tz/announcements/2000-start.ps.gz
-#
-# The official announcement for the end date of 2000 and the dates
-# for the years 2001-2004 can be viewed at:
-#
-#	ftp://ftp.cs.huji.ac.il/pub/tz/announcements/2000-2004.ps.gz
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Zion	2000	only	-	Apr	14	2:00	1:00	D
-Rule	Zion	2000	only	-	Oct	 6	1:00	0	S
-Rule	Zion	2001	only	-	Apr	 9	1:00	1:00	D
-Rule	Zion	2001	only	-	Sep	24	1:00	0	S
-Rule	Zion	2002	only	-	Mar	29	1:00	1:00	D
-Rule	Zion	2002	only	-	Oct	 7	1:00	0	S
-Rule	Zion	2003	only	-	Mar	28	1:00	1:00	D
-Rule	Zion	2003	only	-	Oct	 3	1:00	0	S
-Rule	Zion	2004	only	-	Apr	 7	1:00	1:00	D
-Rule	Zion	2004	only	-	Sep	22	1:00	0	S
-
-# The proposed law agreed upon by the Knesset Interior Committee on
-# 2005-02-14 is that, for 2005 and beyond, DST starts at 02:00 the
-# last Friday before April 2nd (i.e. the last Friday in March or April
-# 1st itself if it falls on a Friday) and ends at 02:00 on the Saturday
-# night _before_ the fast of Yom Kippur.
-#
-# Those who can read Hebrew can view the announcement at:
-#
-#	ftp://ftp.cs.huji.ac.il/pub/tz/announcements/2005+beyond.ps
-
-# From Paul Eggert (2005-02-22):
-# I used Ephraim Silverberg's dst-israel.el program
-# <ftp://ftp.cs.huji.ac.il/pub/tz/software/dst-israel.el> (2005-02-20)
-# along with Ed Reingold's cal-hebrew in GNU Emacs 21.4,
-# to generate the transitions in this list.
-# (I replaced "lastFri" with "Fri>=26" by hand.)
-# The spring transitions below all correspond to the following Rule:
-#
-# Rule	Zion	2005	max	-	Mar	Fri>=26	2:00	1:00	D
-#
-# but older zic implementations (e.g., Solaris 8) do not support
-# "Fri>=26" to mean April 1 in years like 2005, so for now we list the
-# springtime transitions explicitly.
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Zion	2005	only	-	Apr	 1	2:00	1:00	D
-Rule	Zion	2005	only	-	Oct	 9	2:00	0	S
-Rule	Zion	2006	2010	-	Mar	Fri>=26	2:00	1:00	D
-Rule	Zion	2006	only	-	Oct	 1	2:00	0	S
-Rule	Zion	2007	only	-	Sep	16	2:00	0	S
-Rule	Zion	2008	only	-	Oct	 5	2:00	0	S
-Rule	Zion	2009	only	-	Sep	27	2:00	0	S
-Rule	Zion	2010	only	-	Sep	12	2:00	0	S
-Rule	Zion	2011	only	-	Apr	 1	2:00	1:00	D
-Rule	Zion	2011	only	-	Oct	 2	2:00	0	S
-Rule	Zion	2012	2015	-	Mar	Fri>=26	2:00	1:00	D
-Rule	Zion	2012	only	-	Sep	23	2:00	0	S
-Rule	Zion	2013	only	-	Sep	 8	2:00	0	S
-Rule	Zion	2014	only	-	Sep	28	2:00	0	S
-Rule	Zion	2015	only	-	Sep	20	2:00	0	S
-Rule	Zion	2016	only	-	Apr	 1	2:00	1:00	D
-Rule	Zion	2016	only	-	Oct	 9	2:00	0	S
-Rule	Zion	2017	2021	-	Mar	Fri>=26	2:00	1:00	D
-Rule	Zion	2017	only	-	Sep	24	2:00	0	S
-Rule	Zion	2018	only	-	Sep	16	2:00	0	S
-Rule	Zion	2019	only	-	Oct	 6	2:00	0	S
-Rule	Zion	2020	only	-	Sep	27	2:00	0	S
-Rule	Zion	2021	only	-	Sep	12	2:00	0	S
-Rule	Zion	2022	only	-	Apr	 1	2:00	1:00	D
-Rule	Zion	2022	only	-	Oct	 2	2:00	0	S
-Rule	Zion	2023	2032	-	Mar	Fri>=26	2:00	1:00	D
-Rule	Zion	2023	only	-	Sep	24	2:00	0	S
-Rule	Zion	2024	only	-	Oct	 6	2:00	0	S
-Rule	Zion	2025	only	-	Sep	28	2:00	0	S
-Rule	Zion	2026	only	-	Sep	20	2:00	0	S
-Rule	Zion	2027	only	-	Oct	10	2:00	0	S
-Rule	Zion	2028	only	-	Sep	24	2:00	0	S
-Rule	Zion	2029	only	-	Sep	16	2:00	0	S
-Rule	Zion	2030	only	-	Oct	 6	2:00	0	S
-Rule	Zion	2031	only	-	Sep	21	2:00	0	S
-Rule	Zion	2032	only	-	Sep	12	2:00	0	S
-Rule	Zion	2033	only	-	Apr	 1	2:00	1:00	D
-Rule	Zion	2033	only	-	Oct	 2	2:00	0	S
-Rule	Zion	2034	2037	-	Mar	Fri>=26	2:00	1:00	D
-Rule	Zion	2034	only	-	Sep	17	2:00	0	S
-Rule	Zion	2035	only	-	Oct	 7	2:00	0	S
-Rule	Zion	2036	only	-	Sep	28	2:00	0	S
-Rule	Zion	2037	only	-	Sep	13	2:00	0	S
-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Asia/Jerusalem	2:20:56 -	LMT	1880
-			2:20:40	-	JMT	1918	# Jerusalem Mean Time?
-			2:00	Zion	I%sT
-
-
-
-###############################################################################
-
-# Japan
-
-# `9:00' and `JST' is from Guy Harris.
-
-# From Paul Eggert (1995-03-06):
-# Today's _Asahi Evening News_ (page 4) reports that Japan had
-# daylight saving between 1948 and 1951, but ``the system was discontinued
-# because the public believed it would lead to longer working hours.''
-
-# From Mayumi Negishi in the 2005-08-10 Japan Times
-# <http://www.japantimes.co.jp/cgi-bin/getarticle.pl5?nn20050810f2.htm>:
-# Occupation authorities imposed daylight-saving time on Japan on
-# [1948-05-01]....  But lack of prior debate and the execution of
-# daylight-saving time just three days after the bill was passed generated
-# deep hatred of the concept....  The Diet unceremoniously passed a bill to
-# dump the unpopular system in October 1951, less than a month after the San
-# Francisco Peace Treaty was signed.  (A government poll in 1951 showed 53%
-# of the Japanese wanted to scrap daylight-saving time, as opposed to 30% who
-# wanted to keep it.)
-
-# From Paul Eggert (2006-03-22):
-# Shanks & Pottenger write that DST in Japan during those years was as follows:
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Japan	1948	only	-	May	Sun>=1	2:00	1:00	D
-Rule	Japan	1948	1951	-	Sep	Sat>=8	2:00	0	S
-Rule	Japan	1949	only	-	Apr	Sun>=1	2:00	1:00	D
-Rule	Japan	1950	1951	-	May	Sun>=1	2:00	1:00	D
-# but the only locations using it (for birth certificates, presumably, since
-# their audience is astrologers) were US military bases.  For now, assume
-# that for most purposes daylight-saving time was observed; otherwise, what
-# would have been the point of the 1951 poll?
-
-# From Hideyuki Suzuki (1998-11-09):
-# 'Tokyo' usually stands for the former location of Tokyo Astronomical
-# Observatory: E 139 44' 40".90 (9h 18m 58s.727), N 35 39' 16".0.
-# This data is from 'Rika Nenpyou (Chronological Scientific Tables) 1996'
-# edited by National Astronomical Observatory of Japan....
-# JST (Japan Standard Time) has been used since 1888-01-01 00:00 (JST).
-# The law is enacted on 1886-07-07.
-
-# From Hideyuki Suzuki (1998-11-16):
-# The ordinance No. 51 (1886) established "standard time" in Japan,
-# which stands for the time on E 135 degree.
-# In the ordinance No. 167 (1895), "standard time" was renamed to "central
-# standard time".  And the same ordinance also established "western standard
-# time", which stands for the time on E 120 degree....  But "western standard
-# time" was abolished in the ordinance No. 529 (1937).  In the ordinance No.
-# 167, there is no mention regarding for what place western standard time is
-# standard....
-#
-# I wrote "ordinance" above, but I don't know how to translate.
-# In Japanese it's "chokurei", which means ordinance from emperor.
-
-# Shanks & Pottenger claim JST in use since 1896, and that a few
-# places (e.g. Ishigaki) use +0800; go with Suzuki.  Guess that all
-# ordinances took effect on Jan 1.
-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Asia/Tokyo	9:18:59	-	LMT	1887 Dec 31 15:00u
-			9:00	-	JST	1896
-			9:00	-	CJT	1938
-			9:00	Japan	J%sT
-# Since 1938, all Japanese possessions have been like Asia/Tokyo.
-
-# Jordan
-#
-# From <a href="http://star.arabia.com/990701/JO9.html">
-# Jordan Week (1999-07-01) </a> via Steffen Thorsen (1999-09-09):
-# Clocks in Jordan were forwarded one hour on Wednesday at midnight,
-# in accordance with the government's decision to implement summer time
-# all year round.
-#
-# From <a href="http://star.arabia.com/990930/JO9.html">
-# Jordan Week (1999-09-30) </a> via Steffen Thorsen (1999-11-09):
-# Winter time starts today Thursday, 30 September. Clocks will be turned back
-# by one hour.  This is the latest government decision and it's final!
-# The decision was taken because of the increase in working hours in
-# government's departments from six to seven hours.
-#
-# From Paul Eggert (2005-11-22):
-# Starting 2003 transitions are from Steffen Thorsen's web site timeanddate.com.
-#
-# From Steffen Thorsen (2005-11-23):
-# For Jordan I have received multiple independent user reports every year
-# about DST end dates, as the end-rule is different every year.
-#
-# From Steffen Thorsen (2006-10-01), after a heads-up from Hilal Malawi:
-# http://www.petranews.gov.jo/nepras/2006/Sep/05/4000.htm
-# "Jordan will switch to winter time on Friday, October 27".
-#
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Jordan	1973	only	-	Jun	6	0:00	1:00	S
-Rule	Jordan	1973	1975	-	Oct	1	0:00	0	-
-Rule	Jordan	1974	1977	-	May	1	0:00	1:00	S
-Rule	Jordan	1976	only	-	Nov	1	0:00	0	-
-Rule	Jordan	1977	only	-	Oct	1	0:00	0	-
-Rule	Jordan	1978	only	-	Apr	30	0:00	1:00	S
-Rule	Jordan	1978	only	-	Sep	30	0:00	0	-
-Rule	Jordan	1985	only	-	Apr	1	0:00	1:00	S
-Rule	Jordan	1985	only	-	Oct	1	0:00	0	-
-Rule	Jordan	1986	1988	-	Apr	Fri>=1	0:00	1:00	S
-Rule	Jordan	1986	1990	-	Oct	Fri>=1	0:00	0	-
-Rule	Jordan	1989	only	-	May	8	0:00	1:00	S
-Rule	Jordan	1990	only	-	Apr	27	0:00	1:00	S
-Rule	Jordan	1991	only	-	Apr	17	0:00	1:00	S
-Rule	Jordan	1991	only	-	Sep	27	0:00	0	-
-Rule	Jordan	1992	only	-	Apr	10	0:00	1:00	S
-Rule	Jordan	1992	1993	-	Oct	Fri>=1	0:00	0	-
-Rule	Jordan	1993	1998	-	Apr	Fri>=1	0:00	1:00	S
-Rule	Jordan	1994	only	-	Sep	Fri>=15	0:00	0	-
-Rule	Jordan	1995	1998	-	Sep	Fri>=15	0:00s	0	-
-Rule	Jordan	1999	only	-	Jul	 1	0:00s	1:00	S
-Rule	Jordan	1999	2002	-	Sep	lastThu	0:00s	0	-
-Rule	Jordan	2000	max	-	Mar	lastThu	0:00s	1:00	S
-Rule	Jordan	2003	only	-	Oct	24	0:00s	0	-
-Rule	Jordan	2004	only	-	Oct	15	0:00s	0	-
-Rule	Jordan	2005	only	-	Sep	lastFri	0:00s	0	-
-Rule	Jordan	2006	max	-	Oct	lastFri	0:00s	0	-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Asia/Amman	2:23:44 -	LMT	1931
-			2:00	Jordan	EE%sT
-
-
-# Kazakhstan
-
-# From Paul Eggert (1996-11-22):
-# Andrew Evtichov (1996-04-13) writes that Kazakhstan
-# stayed in sync with Moscow after 1990, and that Aqtobe (formerly Aktyubinsk)
-# and Aqtau (formerly Shevchenko) are the largest cities in their zones.
-# Guess that Aqtau and Aqtobe diverged in 1995, since that's the first time
-# IATA SSIM mentions a third time zone in Kazakhstan.
-
-# From Paul Eggert (2006-03-22):
-# German Iofis, ELSI, Almaty (2001-10-09) reports that Kazakhstan uses
-# RussiaAsia rules, instead of switching at 00:00 as the IATA has it.
-# Go with Shanks & Pottenger, who have them always using RussiaAsia rules.
-# Also go with the following claims of Shanks & Pottenger:
-#
-# - Kazakhstan did not observe DST in 1991.
-# - Qyzylorda switched from +5:00 to +6:00 on 1992-01-19 02:00.
-# - Oral switched from +5:00 to +4:00 in spring 1989.
-
-# <a href="http://www.kazsociety.org.uk/news/2005/03/30.htm">
-# From Kazakhstan Embassy's News Bulletin #11 (2005-03-21):
-# </a>
-# The Government of Kazakhstan passed a resolution March 15 abolishing
-# daylight saving time citing lack of economic benefits and health
-# complications coupled with a decrease in productivity.
-#
-# From Branislav Kojic (in Astana) via Gwillim Law (2005-06-28):
-# ... what happened was that the former Kazakhstan Eastern time zone
-# was "blended" with the Central zone.  Therefore, Kazakhstan now has
-# two time zones, and difference between them is one hour.  The zone
-# closer to UTC is the former Western zone (probably still called the
-# same), encompassing four provinces in the west: Aqtobe, Atyrau,
-# Mangghystau, and West Kazakhstan.  The other zone encompasses
-# everything else....  I guess that would make Kazakhstan time zones
-# de jure UTC+5 and UTC+6 respectively.
-
-#
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-#
-# Almaty (formerly Alma-Ata), representing most locations in Kazakhstan
-Zone	Asia/Almaty	5:07:48 -	LMT	1924 May  2 # or Alma-Ata
-			5:00	-	ALMT	1930 Jun 21 # Alma-Ata Time
-			6:00 RussiaAsia ALM%sT	1991
-			6:00	-	ALMT	1992
-			6:00 RussiaAsia	ALM%sT	2005 Mar 15
-			6:00	-	ALMT
-# Qyzylorda (aka Kyzylorda, Kizilorda, Kzyl-Orda, etc.)
-Zone	Asia/Qyzylorda	4:21:52 -	LMT	1924 May  2
-			4:00	-	KIZT	1930 Jun 21 # Kizilorda Time
-			5:00	-	KIZT	1981 Apr  1
-			5:00	1:00	KIZST	1981 Oct  1
-			6:00	-	KIZT	1982 Apr  1
-			5:00 RussiaAsia	KIZ%sT	1991
-			5:00	-	KIZT	1991 Dec 16 # independence
-			5:00	-	QYZT	1992 Jan 19 2:00
-			6:00 RussiaAsia	QYZ%sT	2005 Mar 15
-			6:00	-	QYZT
-# Aqtobe (aka Aktobe, formerly Akt'ubinsk)
-Zone	Asia/Aqtobe	3:48:40	-	LMT	1924 May  2
-			4:00	-	AKTT	1930 Jun 21 # Aktyubinsk Time
-			5:00	-	AKTT	1981 Apr  1
-			5:00	1:00	AKTST	1981 Oct  1
-			6:00	-	AKTT	1982 Apr  1
-			5:00 RussiaAsia	AKT%sT	1991
-			5:00	-	AKTT	1991 Dec 16 # independence
-			5:00 RussiaAsia	AQT%sT	2005 Mar 15 # Aqtobe Time
-			5:00	-	AQTT
-# Mangghystau
-# Aqtau was not founded until 1963, but it represents an inhabited region,
-# so include time stamps before 1963.
-Zone	Asia/Aqtau	3:21:04	-	LMT	1924 May  2
-			4:00	-	FORT	1930 Jun 21 # Fort Shevchenko T
-			5:00	-	FORT	1963
-			5:00	-	SHET	1981 Oct  1 # Shevchenko Time
-			6:00	-	SHET	1982 Apr  1
-			5:00 RussiaAsia	SHE%sT	1991
-			5:00	-	SHET	1991 Dec 16 # independence
-			5:00 RussiaAsia	AQT%sT	1995 Mar lastSun 2:00 # Aqtau Time
-			4:00 RussiaAsia	AQT%sT	2005 Mar 15
-			5:00	-	AQTT
-# West Kazakhstan
-Zone	Asia/Oral	3:25:24	-	LMT	1924 May  2 # or Ural'sk
-			4:00	-	URAT	1930 Jun 21 # Ural'sk time
-			5:00	-	URAT	1981 Apr  1
-			5:00	1:00	URAST	1981 Oct  1
-			6:00	-	URAT	1982 Apr  1
-			5:00 RussiaAsia	URA%sT	1989 Mar 26 2:00
-			4:00 RussiaAsia	URA%sT	1991
-			4:00	-	URAT	1991 Dec 16 # independence
-			4:00 RussiaAsia	ORA%sT	2005 Mar 15 # Oral Time
-			5:00	-	ORAT
-
-# Kyrgyzstan (Kirgizstan)
-# Transitions through 1991 are from Shanks & Pottenger.
-
-# From Paul Eggert (2005-08-15):
-# According to an article dated today in the Kyrgyzstan Development Gateway
-# <http://eng.gateway.kg/cgi-bin/page.pl?id=1&story_name=doc9979.shtml>
-# Kyrgyzstan is canceling the daylight saving time system.  I take the article
-# to mean that they will leave their clocks at 6 hours ahead of UTC.
-# From Malik Abdugaliev (2005-09-21):
-# Our government cancels daylight saving time 6th of August 2005.
-# From 2005-08-12 our GMT-offset is +6, w/o any daylight saving.
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Kyrgyz	1992	1996	-	Apr	Sun>=7	0:00s	1:00	S
-Rule	Kyrgyz	1992	1996	-	Sep	lastSun	0:00	0	-
-Rule	Kyrgyz	1997	2005	-	Mar	lastSun	2:30	1:00	S
-Rule	Kyrgyz	1997	2004	-	Oct	lastSun	2:30	0	-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Asia/Bishkek	4:58:24 -	LMT	1924 May  2
-			5:00	-	FRUT	1930 Jun 21 # Frunze Time
-			6:00 RussiaAsia FRU%sT	1991 Mar 31 2:00s
-			5:00	1:00	FRUST	1991 Aug 31 2:00 # independence
-			5:00	Kyrgyz	KG%sT	2005 Aug 12    # Kyrgyzstan Time
-			6:00	-	KGT
-
-###############################################################################
-
-# Korea (North and South)
-
-# From Annie I. Bang (2006-07-10) in
-# <http://www.koreaherald.co.kr/SITE/data/html_dir/2006/07/10/200607100012.asp>:
-# The Ministry of Commerce, Industry and Energy has already
-# commissioned a research project [to reintroduce DST] and has said
-# the system may begin as early as 2008....  Korea ran a daylight
-# saving program from 1949-61 but stopped it during the 1950-53 Korean War.
-
-# From Shanks & Pottenger:
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	ROK	1960	only	-	May	15	0:00	1:00	D
-Rule	ROK	1960	only	-	Sep	13	0:00	0	S
-Rule	ROK	1987	1988	-	May	Sun>=8	0:00	1:00	D
-Rule	ROK	1987	1988	-	Oct	Sun>=8	0:00	0	S
-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Asia/Seoul	8:27:52	-	LMT	1890
-			8:30	-	KST	1904 Dec
-			9:00	-	KST	1928
-			8:30	-	KST	1932
-			9:00	-	KST	1954 Mar 21
-			8:00	ROK	K%sT	1961 Aug 10
-			8:30	-	KST	1968 Oct
-			9:00	ROK	K%sT
-Zone	Asia/Pyongyang	8:23:00 -	LMT	1890
-			8:30	-	KST	1904 Dec
-			9:00	-	KST	1928
-			8:30	-	KST	1932
-			9:00	-	KST	1954 Mar 21
-			8:00	-	KST	1961 Aug 10
-			9:00	-	KST
-
-###############################################################################
-
-# Kuwait
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-# From the Arab Times (2007-03-14):
-# The Civil Service Commission (CSC) has approved a proposal forwarded
-# by MP Ahmad Baqer on implementing the daylight saving time (DST) in
-# Kuwait starting from April until the end of Sept this year, reports Al-Anba.
-# <http://www.arabtimesonline.com/arabtimes/kuwait/Viewdet.asp?ID=9950>.
-# From Paul Eggert (2007-03-29):
-# We don't know the details, or whether the approval means it'll happen,
-# so for now we assume no DST.
-Zone	Asia/Kuwait	3:11:56 -	LMT	1950
-			3:00	-	AST
-
-# Laos
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Asia/Vientiane	6:50:24 -	LMT	1906 Jun  9 # or Viangchan
-			7:06:20	-	SMT	1911 Mar 11 0:01 # Saigon MT?
-			7:00	-	ICT	1912 May
-			8:00	-	ICT	1931 May
-			7:00	-	ICT
-
-# Lebanon
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Lebanon	1920	only	-	Mar	28	0:00	1:00	S
-Rule	Lebanon	1920	only	-	Oct	25	0:00	0	-
-Rule	Lebanon	1921	only	-	Apr	3	0:00	1:00	S
-Rule	Lebanon	1921	only	-	Oct	3	0:00	0	-
-Rule	Lebanon	1922	only	-	Mar	26	0:00	1:00	S
-Rule	Lebanon	1922	only	-	Oct	8	0:00	0	-
-Rule	Lebanon	1923	only	-	Apr	22	0:00	1:00	S
-Rule	Lebanon	1923	only	-	Sep	16	0:00	0	-
-Rule	Lebanon	1957	1961	-	May	1	0:00	1:00	S
-Rule	Lebanon	1957	1961	-	Oct	1	0:00	0	-
-Rule	Lebanon	1972	only	-	Jun	22	0:00	1:00	S
-Rule	Lebanon	1972	1977	-	Oct	1	0:00	0	-
-Rule	Lebanon	1973	1977	-	May	1	0:00	1:00	S
-Rule	Lebanon	1978	only	-	Apr	30	0:00	1:00	S
-Rule	Lebanon	1978	only	-	Sep	30	0:00	0	-
-Rule	Lebanon	1984	1987	-	May	1	0:00	1:00	S
-Rule	Lebanon	1984	1991	-	Oct	16	0:00	0	-
-Rule	Lebanon	1988	only	-	Jun	1	0:00	1:00	S
-Rule	Lebanon	1989	only	-	May	10	0:00	1:00	S
-Rule	Lebanon	1990	1992	-	May	1	0:00	1:00	S
-Rule	Lebanon	1992	only	-	Oct	4	0:00	0	-
-Rule	Lebanon	1993	max	-	Mar	lastSun	0:00	1:00	S
-Rule	Lebanon	1993	1998	-	Sep	lastSun	0:00	0	-
-Rule	Lebanon	1999	max	-	Oct	lastSun	0:00	0	-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Asia/Beirut	2:22:00 -	LMT	1880
-			2:00	Lebanon	EE%sT
-
-# Malaysia
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	NBorneo	1935	1941	-	Sep	14	0:00	0:20	TS # one-Third Summer
-Rule	NBorneo	1935	1941	-	Dec	14	0:00	0	-
-#
-# peninsular Malaysia
-# The data here are taken from Mok Ly Yng (2003-10-30)
-# <http://www.math.nus.edu.sg/aslaksen/teaching/timezone.html>.
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Asia/Kuala_Lumpur	6:46:46 -	LMT	1901 Jan  1
-			6:55:25	-	SMT	1905 Jun  1 # Singapore M.T.
-			7:00	-	MALT	1933 Jan  1 # Malaya Time
-			7:00	0:20	MALST	1936 Jan  1
-			7:20	-	MALT	1941 Sep  1
-			7:30	-	MALT	1942 Feb 16
-			9:00	-	JST	1945 Sep 12
-			7:30	-	MALT	1982 Jan  1
-			8:00	-	MYT	# Malaysia Time
-# Sabah & Sarawak
-# From Paul Eggert (2006-03-22):
-# The data here are mostly from Shanks & Pottenger, but the 1942, 1945 and 1982
-# transition dates are from Mok Ly Yng.
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Asia/Kuching	7:21:20	-	LMT	1926 Mar
-			7:30	-	BORT	1933	# Borneo Time
-			8:00	NBorneo	BOR%sT	1942 Feb 16
-			9:00	-	JST	1945 Sep 12
-			8:00	-	BORT	1982 Jan  1
-			8:00	-	MYT
-
-# Maldives
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Indian/Maldives	4:54:00 -	LMT	1880	# Male
-			4:54:00	-	MMT	1960	# Male Mean Time
-			5:00	-	MVT		# Maldives Time
-
-# Mongolia
-
-# Shanks & Pottenger say that Mongolia has three time zones, but
-# usno1995 and the CIA map Standard Time Zones of the World (2005-03)
-# both say that it has just one.
-
-# From Oscar van Vlijmen (1999-12-11):
-# <a href="http://www.mongoliatourism.gov.mn/general.htm">
-# General Information Mongolia
-# </a> (1999-09)
-# "Time: Mongolia has two time zones. Three westernmost provinces of
-# Bayan-Ulgii, Uvs, and Hovd are one hour earlier than the capital city, and
-# the rest of the country follows the Ulaanbaatar time, which is UTC/GMT plus
-# eight hours."
-
-# From Rives McDow (1999-12-13):
-# Mongolia discontinued the use of daylight savings time in 1999; 1998
-# being the last year it was implemented.  The dates of implementation I am
-# unsure of, but most probably it was similar to Russia, except for the time
-# of implementation may have been different....
-# Some maps in the past have indicated that there was an additional time
-# zone in the eastern part of Mongolia, including the provinces of Dornod,
-# Suhbaatar, and possibly Khentij.
-
-# From Paul Eggert (1999-12-15):
-# Naming and spelling is tricky in Mongolia.
-# We'll use Hovd (also spelled Chovd and Khovd) to represent the west zone;
-# the capital of the Hovd province is sometimes called Hovd, sometimes Dund-Us,
-# and sometimes Jirgalanta (with variant spellings), but the name Hovd
-# is good enough for our purposes.
-
-# From Rives McDow (2001-05-13):
-# In addition to Mongolia starting daylight savings as reported earlier
-# (adopted DST on 2001-04-27 02:00 local time, ending 2001-09-28),
-# there are three time zones.
-#
-# Provinces [at 7:00]: Bayan-ulgii, Uvs, Khovd, Zavkhan, Govi-Altai
-# Provinces [at 8:00]: Khovsgol, Bulgan, Arkhangai, Khentii, Tov,
-#	Bayankhongor, Ovorkhangai, Dundgovi, Dornogovi, Omnogovi
-# Provinces [at 9:00]: Dornod, Sukhbaatar
-#
-# [The province of Selenge is omitted from the above lists.]
-
-# From Ganbold Ts., Ulaanbaatar (2004-04-17):
-# Daylight saving occurs at 02:00 local time last Saturday of March.
-# It will change back to normal at 02:00 local time last Saturday of
-# September.... As I remember this rule was changed in 2001.
-#
-# From Paul Eggert (2004-04-17):
-# For now, assume Rives McDow's informant got confused about Friday vs
-# Saturday, and that his 2001 dates should have 1 added to them.
-
-# From Paul Eggert (2005-07-26):
-# We have wildly conflicting information about Mongolia's time zones.
-# Bill Bonnet (2005-05-19) reports that the US Embassy in Ulaanbaatar says
-# there is only one time zone and that DST is observed, citing Microsoft
-# Windows XP as the source.  Risto Nykanen (2005-05-16) reports that
-# travelmongolia.org says there are two time zones (UTC+7, UTC+8) with no DST.
-# Oscar van Vlijmen (2005-05-20) reports that the Mongolian Embassy in
-# Washington, DC says there are two time zones, with DST observed.
-# He also found
-# <http://ubpost.mongolnews.mn/index.php?subaction=showcomments&id=1111634894&archive=&start_from=&ucat=1&>
-# which also says that there is DST, and which has a comment by "Toddius"
-# (2005-03-31 06:05 +0700) saying "Mongolia actually has 3.5 time zones.
-# The West (OLGII) is +7 GMT, most of the country is ULAT is +8 GMT
-# and some Eastern provinces are +9 GMT but Sukhbaatar Aimag is SUHK +8.5 GMT.
-# The SUKH timezone is new this year, it is one of the few things the
-# parliament passed during the tumultuous winter session."
-# For now, let's ignore this information, until we have more confirmation.
-
-# From Ganbold Ts. (2007-02-26):
-# Parliament of Mongolia has just changed the daylight-saving rule in February.
-# They decided not to adopt daylight-saving time....
-# http://www.mongolnews.mn/index.php?module=unuudur&sec=view&id=15742
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Mongol	1983	1984	-	Apr	1	0:00	1:00	S
-Rule	Mongol	1983	only	-	Oct	1	0:00	0	-
-# Shanks & Pottenger and IATA SSIM say 1990s switches occurred at 00:00,
-# but McDow says the 2001 switches occurred at 02:00.  Also, IATA SSIM
-# (1996-09) says 1996-10-25.  Go with Shanks & Pottenger through 1998.
-#
-# Shanks & Pottenger say that the Sept. 1984 through Sept. 1990 switches
-# in Choibalsan (more precisely, in Dornod and Sukhbaatar) took place
-# at 02:00 standard time, not at 00:00 local time as in the rest of
-# the country.  That would be odd, and possibly is a result of their
-# correction of 02:00 (in the previous edition) not being done correctly
-# in the latest edition; so ignore it for now.
-
-Rule	Mongol	1985	1998	-	Mar	lastSun	0:00	1:00	S
-Rule	Mongol	1984	1998	-	Sep	lastSun	0:00	0	-
-# IATA SSIM (1999-09) says Mongolia no longer observes DST.
-Rule	Mongol	2001	only	-	Apr	lastSat	2:00	1:00	S
-Rule	Mongol	2001	2006	-	Sep	lastSat	2:00	0	-
-Rule	Mongol	2002	2006	-	Mar	lastSat	2:00	1:00	S
-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-# Hovd, a.k.a. Chovd, Dund-Us, Dzhargalant, Khovd, Jirgalanta
-Zone	Asia/Hovd	6:06:36 -	LMT	1905 Aug
-			6:00	-	HOVT	1978	# Hovd Time
-			7:00	Mongol	HOV%sT
-# Ulaanbaatar, a.k.a. Ulan Bataar, Ulan Bator, Urga
-Zone	Asia/Ulaanbaatar 7:07:32 -	LMT	1905 Aug
-			7:00	-	ULAT	1978	# Ulaanbaatar Time
-			8:00	Mongol	ULA%sT
-# Choibalsan, a.k.a. Bajan Tuemen, Bajan Tumen, Chojbalsan,
-# Choybalsan, Sanbejse, Tchoibalsan
-Zone	Asia/Choibalsan	7:38:00 -	LMT	1905 Aug
-			7:00	-	ULAT	1978
-			8:00	-	ULAT	1983 Apr
-			9:00	Mongol	CHO%sT	# Choibalsan Time
-
-# Nepal
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Asia/Katmandu	5:41:16 -	LMT	1920
-			5:30	-	IST	1986
-			5:45	-	NPT	# Nepal Time
-
-# Oman
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Asia/Muscat	3:54:20 -	LMT	1920
-			4:00	-	GST
-
-# Pakistan
-
-# From Rives McDow (2002-03-13):
-# I have been advised that Pakistan has decided to adopt dst on a
-# TRIAL basis for one year, starting 00:01 local time on April 7, 2002
-# and ending at 00:01 local time October 6, 2002.  This is what I was
-# told, but I believe that the actual time of change may be 00:00; the
-# 00:01 was to make it clear which day it was on.
-
-# From Paul Eggert (2002-03-15):
-# Jesper Norgaard found this URL:
-# http://www.pak.gov.pk/public/news/app/app06_dec.htm
-# (dated 2001-12-06) which says that the Cabinet adopted a scheme "to
-# advance the clocks by one hour on the night between the first
-# Saturday and Sunday of April and revert to the original position on
-# 15th October each year".  This agrees with McDow's 04-07 at 00:00,
-# but disagrees about the October transition, and makes it sound like
-# it's not on a trial basis.  Also, the "between the first Saturday
-# and Sunday of April" phrase, if taken literally, means that the
-# transition takes place at 00:00 on the first Sunday on or after 04-02.
-
-# From Paul Eggert (2003-02-09):
-# DAWN <http://www.dawn.com/2002/10/06/top13.htm> reported on 2002-10-05
-# that 2002 DST ended that day at midnight.  Go with McDow for now.
-
-# From Steffen Thorsen (2003-03-14):
-# According to http://www.dawn.com/2003/03/07/top15.htm
-# there will be no DST in Pakistan this year:
-#
-# ISLAMABAD, March 6: Information and Media Development Minister Sheikh
-# Rashid Ahmed on Thursday said the cabinet had reversed a previous
-# decision to advance clocks by one hour in summer and put them back by
-# one hour in winter with the aim of saving light hours and energy.
-#
-# The minister told a news conference that the experiment had rather
-# shown 8 per cent higher consumption of electricity.
-
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule Pakistan	2002	only	-	Apr	Sun>=2	0:01	1:00	S
-Rule Pakistan	2002	only	-	Oct	Sun>=2	0:01	0	-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Asia/Karachi	4:28:12 -	LMT	1907
-			5:30	-	IST	1942 Sep
-			5:30	1:00	IST	1945 Oct 15
-			5:30	-	IST	1951 Sep 30
-			5:00	-	KART	1971 Mar 26 # Karachi Time
-			5:00 Pakistan	PK%sT	# Pakistan Time
-
-# Palestine
-
-# From Amos Shapir (1998-02-15):
-#
-# From 1917 until 1948-05-15, all of Palestine, including the parts now
-# known as the Gaza Strip and the West Bank, was under British rule.
-# Therefore the rules given for Israel for that period, apply there too...
-#
-# The Gaza Strip was under Egyptian rule between 1948-05-15 until 1967-06-05
-# (except a short occupation by Israel from 1956-11 till 1957-03, but no
-# time zone was affected then).  It was never formally annexed to Egypt,
-# though.
-#
-# The rest of Palestine was under Jordanian rule at that time, formally
-# annexed in 1950 as the West Bank (and the word "Trans" was dropped from
-# the country's previous name of "the Hashemite Kingdom of the
-# Trans-Jordan").  So the rules for Jordan for that time apply.  Major
-# towns in that area are Nablus (Shchem), El-Halil (Hebron), Ramallah, and
-# East Jerusalem.
-#
-# Both areas were occupied by Israel in June 1967, but not annexed (except
-# for East Jerusalem).  They were on Israel time since then; there might
-# have been a Military Governor's order about time zones, but I'm not aware
-# of any (such orders may have been issued semi-annually whenever summer
-# time was in effect, but maybe the legal aspect of time was just neglected).
-#
-# The Palestinian Authority was established in 1993, and got hold of most
-# towns in the West Bank and Gaza by 1995.  I know that in order to
-# demonstrate...independence, they have been switching to
-# summer time and back on a different schedule than Israel's, but I don't
-# know when this was started, or what algorithm is used (most likely the
-# Jordanian one).
-#
-# To summarize, the table should probably look something like that:
-#
-# Area \ when | 1918-1947 | 1948-1967 | 1967-1995 | 1996-
-# ------------+-----------+-----------+-----------+-----------
-# Israel      | Zion      | Zion      | Zion      | Zion
-# West bank   | Zion      | Jordan    | Zion      | Jordan
-# Gaza        | Zion      | Egypt     | Zion      | Jordan
-#
-# I guess more info may be available from the PA's web page (if/when they
-# have one).
-
-# From Paul Eggert (2006-03-22):
-# Shanks & Pottenger write that Gaza did not observe DST until 1957, but go
-# with Shapir and assume that it observed DST from 1940 through 1947,
-# and that it used Jordanian rules starting in 1996.
-# We don't yet need a separate entry for the West Bank, since
-# the only differences between it and Gaza that we know about
-# occurred before our cutoff date of 1970.
-# However, as we get more information, we may need to add entries
-# for parts of the West Bank as they transitioned from Israel's rules
-# to Palestine's rules.  If you have more info about this, please
-# send it to tz@elsie.nci.nih.gov for incorporation into future editions.
-
-# From IINS News Service - Israel - 1998-03-23 10:38:07 Israel time,
-# forwarded by Ephraim Silverberg:
-#
-# Despite the fact that Israel changed over to daylight savings time
-# last week, the PLO Authority (PA) has decided not to turn its clocks
-# one-hour forward at this time.  As a sign of independence from Israeli rule,
-# the PA has decided to implement DST in April.
-
-# From Paul Eggert (1999-09-20):
-# Daoud Kuttab writes in
-# <a href="http://www.jpost.com/com/Archive/22.Apr.1999/Opinion/Article-2.html">
-# Holiday havoc
-# </a> (Jerusalem Post, 1999-04-22) that
-# the Palestinian National Authority changed to DST on 1999-04-15.
-# I vaguely recall that they switch back in October (sorry, forgot the source).
-# For now, let's assume that the spring switch was at 24:00,
-# and that they switch at 0:00 on the 3rd Fridays of April and October.
-
-# From Paul Eggert (2005-11-22):
-# Starting 2004 transitions are from Steffen Thorsen's web site timeanddate.com.
-
-# From Steffen Thorsen (2005-11-23):
-# A user from Gaza reported that Gaza made the change early because of
-# the Ramadan.  Next year Ramadan will be even earlier, so I think
-# there is a good chance next year's end date will be around two weeks
-# earlier--the same goes for Jordan.
-
-# From Steffen Thorsen (2006-08-17):
-# I was informed by a user in Bethlehem that in Bethlehem it started the
-# same day as Israel, and after checking with other users in the area, I
-# was informed that they started DST one day after Israel.  I was not
-# able to find any authoritative sources at the time, nor details if
-# Gaza changed as well, but presumed Gaza to follow the same rules as
-# the West Bank.
-
-# From Steffen Thorsen (2006-09-26):
-# according to the Palestine News Network (2006-09-19):
-# http://english.pnn.ps/index.php?option=com_content&task=view&id=596&Itemid=5
-# > The Council of Ministers announced that this year its winter schedule
-# > will begin early, as of midnight Thursday.  It is also time to turn
-# > back the clocks for winter.  Friday will begin an hour late this week.
-# I guess it is likely that next year's date will be moved as well,
-# because of the Ramadan.
-
-# From Jesper Norgaard Welen (2007-09-18):
-# According to Steffen Thorsen's web site the Gaza Strip and the rest of the
-# Palestinian territories left DST early on 13.th. of September at 2:00.
-
-# From Paul Eggert (2007-09-20):
-# My understanding is that Gaza and the West Bank disagree even over when
-# the weekend is (Thursday+Friday versus Friday+Saturday), so I'd be a bit
-# surprised if they agreed about DST.  But for now, assume they agree.
-# For lack of better information, predict that future changes will be
-# the 2nd Thursday of September at 02:00.
-
-# The rules for Egypt are stolen from the `africa' file.
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule EgyptAsia	1957	only	-	May	10	0:00	1:00	S
-Rule EgyptAsia	1957	1958	-	Oct	 1	0:00	0	-
-Rule EgyptAsia	1958	only	-	May	 1	0:00	1:00	S
-Rule EgyptAsia	1959	1967	-	May	 1	1:00	1:00	S
-Rule EgyptAsia	1959	1965	-	Sep	30	3:00	0	-
-Rule EgyptAsia	1966	only	-	Oct	 1	3:00	0	-
-
-Rule Palestine	1999	2005	-	Apr	Fri>=15	0:00	1:00	S
-Rule Palestine	1999	2003	-	Oct	Fri>=15	0:00	0	-
-Rule Palestine	2004	only	-	Oct	 1	1:00	0	-
-Rule Palestine	2005	only	-	Oct	 4	2:00	0	-
-Rule Palestine	2006	max	-	Apr	 1	0:00	1:00	S
-Rule Palestine	2006	only	-	Sep	22	0:00	0	-
-Rule Palestine	2007	max	-	Sep	Thu>=8	2:00	0	-
-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Asia/Gaza	2:17:52	-	LMT	1900 Oct
-			2:00	Zion	EET	1948 May 15
-			2:00 EgyptAsia	EE%sT	1967 Jun  5
-			2:00	Zion	I%sT	1996
-			2:00	Jordan	EE%sT	1999
-			2:00 Palestine	EE%sT
-
-# Paracel Is
-# no information
-
-# Philippines
-# On 1844-08-16, Narciso Claveria, governor-general of the
-# Philippines, issued a proclamation announcing that 1844-12-30 was to
-# be immediately followed by 1845-01-01.  Robert H. van Gent has a
-# transcript of the decree in <http://www.phys.uu.nl/~vgent/idl/idl.htm>.
-# The rest of the data are from Shanks & Pottenger.
-
-# From Paul Eggert (2006-04-25):
-# Tomorrow's Manila Standard reports that the Philippines Department of
-# Trade and Industry is considering adopting DST this June when the
-# rainy season begins.  See
-# <http://www.manilastandardtoday.com/?page=politics02_april26_2006>.
-# For now, we'll ignore this, since it's not definite and we lack details.
-#
-# From Jesper Norgaard Welen (2006-04-26):
-# ... claims that Philippines had DST last time in 1990:
-# http://story.philippinetimes.com/p.x/ct/9/id/145be20cc6b121c0/cid/3e5bbccc730d258c/
-# [a story dated 2006-04-25 by Cris Larano of Dow Jones Newswires,
-# but no details]
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Phil	1936	only	-	Nov	1	0:00	1:00	S
-Rule	Phil	1937	only	-	Feb	1	0:00	0	-
-Rule	Phil	1954	only	-	Apr	12	0:00	1:00	S
-Rule	Phil	1954	only	-	Jul	1	0:00	0	-
-Rule	Phil	1978	only	-	Mar	22	0:00	1:00	S
-Rule	Phil	1978	only	-	Sep	21	0:00	0	-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Asia/Manila	-15:56:00 -	LMT	1844 Dec 31
-			8:04:00 -	LMT	1899 May 11
-			8:00	Phil	PH%sT	1942 May
-			9:00	-	JST	1944 Nov
-			8:00	Phil	PH%sT
-
-# Qatar
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Asia/Qatar	3:26:08 -	LMT	1920	# Al Dawhah / Doha
-			4:00	-	GST	1972 Jun
-			3:00	-	AST
-
-# Saudi Arabia
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Asia/Riyadh	3:06:52 -	LMT	1950
-			3:00	-	AST
-
-# Singapore
-# The data here are taken from Mok Ly Yng (2003-10-30)
-# <http://www.math.nus.edu.sg/aslaksen/teaching/timezone.html>.
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Asia/Singapore	6:55:25 -	LMT	1901 Jan  1
-			6:55:25	-	SMT	1905 Jun  1 # Singapore M.T.
-			7:00	-	MALT	1933 Jan  1 # Malaya Time
-			7:00	0:20	MALST	1936 Jan  1
-			7:20	-	MALT	1941 Sep  1
-			7:30	-	MALT	1942 Feb 16
-			9:00	-	JST	1945 Sep 12
-			7:30	-	MALT	1965 Aug  9 # independence
-			7:30	-	SGT	1982 Jan  1 # Singapore Time
-			8:00	-	SGT
-
-# Spratly Is
-# no information
-
-# Sri Lanka
-# From Paul Eggert (1996-09-03):
-# "Sri Lanka advances clock by an hour to avoid blackout"
-# (www.virtual-pc.com/lankaweb/news/items/240596-2.html, 1996-05-24,
-# no longer available as of 1999-08-17)
-# reported ``the country's standard time will be put forward by one hour at
-# midnight Friday (1830 GMT) `in the light of the present power crisis'.''
-#
-# From Dharmasiri Senanayake, Sri Lanka Media Minister (1996-10-24), as quoted
-# by Shamindra in
-# <a href="news:54rka5$m5h@mtinsc01-mgt.ops.worldnet.att.net">
-# Daily News - Hot News Section (1996-10-26)
-# </a>:
-# With effect from 12.30 a.m. on 26th October 1996
-# Sri Lanka will be six (06) hours ahead of GMT.
-
-# From Jesper Norgaard Welen (2006-04-14), quoting Sri Lanka News Online
-# <http://news.sinhalaya.com/wmview.php?ArtID=11002> (2006-04-13):
-# 0030 hrs on April 15, 2006 (midnight of April 14, 2006 +30 minutes)
-# at present, become 2400 hours of April 14, 2006 (midnight of April 14, 2006).
-
-# From Peter Apps and Ranga Sirila of Reuters (2006-04-12) in:
-# <http://today.reuters.co.uk/news/newsArticle.aspx?type=scienceNews&storyID=2006-04-12T172228Z_01_COL295762_RTRIDST_0_SCIENCE-SRILANKA-TIME-DC.XML>
-# [The Tamil Tigers] never accepted the original 1996 time change and simply
-# kept their clocks set five and a half hours ahead of Greenwich Mean
-# Time (GMT), in line with neighbor India.
-# From Paul Eggert (2006-04-18):
-# People who live in regions under Tamil control can use [TZ='Asia/Kolkata'],
-# as that zone has agreed with the Tamil areas since our cutoff date of 1970.
-
-# From K Sethu (2006-04-25):
-# I think the abbreviation LKT originated from the world of computers at
-# the time of or subsequent to the time zone changes by SL Government
-# twice in 1996 and probably SL Government or its standardization
-# agencies never declared an abbreviation as a national standard.
-#
-# I recollect before the recent change the government annoucemments
-# mentioning it as simply changing Sri Lanka Standard Time or Sri Lanka
-# Time and no mention was made about the abbreviation.
-#
-# If we look at Sri Lanka Department of Government's "Official News
-# Website of Sri Lanka" ... http://www.news.lk/ we can see that they
-# use SLT as abbreviation in time stamp at the beginning of each news
-# item....
-#
-# Within Sri Lanka I think LKT is well known among computer users and
-# adminsitrators.  In my opinion SLT may not be a good choice because the
-# nation's largest telcom / internet operator Sri Lanka Telcom is well
-# known by that abbreviation - simply as SLT (there IP domains are
-# slt.lk and sltnet.lk).
-#
-# But if indeed our government has adopted SLT as standard abbreviation
-# (that we have not known so far) then  it is better that it be used for
-# all computers.
-
-# From Paul Eggert (2006-04-25):
-# One possibility is that we wait for a bit for the dust to settle down
-# and then see what people actually say in practice.
-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Asia/Colombo	5:19:24 -	LMT	1880
-			5:19:32	-	MMT	1906	# Moratuwa Mean Time
-			5:30	-	IST	1942 Jan  5
-			5:30	0:30	IHST	1942 Sep
-			5:30	1:00	IST	1945 Oct 16 2:00
-			5:30	-	IST	1996 May 25 0:00
-			6:30	-	LKT	1996 Oct 26 0:30
-			6:00	-	LKT	2006 Apr 15 0:30
-			5:30	-	IST
-
-# Syria
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Syria	1920	1923	-	Apr	Sun>=15	2:00	1:00	S
-Rule	Syria	1920	1923	-	Oct	Sun>=1	2:00	0	-
-Rule	Syria	1962	only	-	Apr	29	2:00	1:00	S
-Rule	Syria	1962	only	-	Oct	1	2:00	0	-
-Rule	Syria	1963	1965	-	May	1	2:00	1:00	S
-Rule	Syria	1963	only	-	Sep	30	2:00	0	-
-Rule	Syria	1964	only	-	Oct	1	2:00	0	-
-Rule	Syria	1965	only	-	Sep	30	2:00	0	-
-Rule	Syria	1966	only	-	Apr	24	2:00	1:00	S
-Rule	Syria	1966	1976	-	Oct	1	2:00	0	-
-Rule	Syria	1967	1978	-	May	1	2:00	1:00	S
-Rule	Syria	1977	1978	-	Sep	1	2:00	0	-
-Rule	Syria	1983	1984	-	Apr	9	2:00	1:00	S
-Rule	Syria	1983	1984	-	Oct	1	2:00	0	-
-Rule	Syria	1986	only	-	Feb	16	2:00	1:00	S
-Rule	Syria	1986	only	-	Oct	9	2:00	0	-
-Rule	Syria	1987	only	-	Mar	1	2:00	1:00	S
-Rule	Syria	1987	1988	-	Oct	31	2:00	0	-
-Rule	Syria	1988	only	-	Mar	15	2:00	1:00	S
-Rule	Syria	1989	only	-	Mar	31	2:00	1:00	S
-Rule	Syria	1989	only	-	Oct	1	2:00	0	-
-Rule	Syria	1990	only	-	Apr	1	2:00	1:00	S
-Rule	Syria	1990	only	-	Sep	30	2:00	0	-
-Rule	Syria	1991	only	-	Apr	 1	0:00	1:00	S
-Rule	Syria	1991	1992	-	Oct	 1	0:00	0	-
-Rule	Syria	1992	only	-	Apr	 8	0:00	1:00	S
-Rule	Syria	1993	only	-	Mar	26	0:00	1:00	S
-Rule	Syria	1993	only	-	Sep	25	0:00	0	-
-# IATA SSIM (1998-02) says 1998-04-02;
-# (1998-09) says 1999-03-29 and 1999-09-29; (1999-02) says 1999-04-02,
-# 2000-04-02, and 2001-04-02; (1999-09) says 2000-03-31 and 2001-03-31;
-# (2006) says 2006-03-31 and 2006-09-22;
-# for now ignore all these claims and go with Shanks & Pottenger,
-# except for the 2006-09-22 claim (which seems right for Ramadan).
-Rule	Syria	1994	1996	-	Apr	 1	0:00	1:00	S
-Rule	Syria	1994	2005	-	Oct	 1	0:00	0	-
-Rule	Syria	1997	1998	-	Mar	lastMon	0:00	1:00	S
-Rule	Syria	1999	2006	-	Apr	 1	0:00	1:00	S
-# From Stephen Colebourne (2006-09-18):
-# According to IATA data, Syria will change DST on 21st September [21:00 UTC]
-# this year [only]....  This is probably related to Ramadan, like Egypt.
-Rule	Syria	2006	only	-	Sep	22	0:00	0	-
-# From Paul Eggert (2007-03-29):
-# Today the AP reported "Syria will switch to summertime at midnight Thursday."
-# http://www.iht.com/articles/ap/2007/03/29/africa/ME-GEN-Syria-Time-Change.php
-Rule	Syria	2007	only	-	Mar	lastFri	0:00	1:00	S
-# From Jesper Norgard (2007-10-27):
-# The sister center ICARDA of my work CIMMYT is confirming that Syria DST will
-# not take place 1.st November at 0:00 o'clock but 1.st November at 24:00 or
-# rather Midnight between Thursday and Friday. This does make more sence than
-# having it between Wednesday and Thursday (two workdays in Syria) since the
-# weekend in Syria is not Saturday and Sunday, but Friday and Saturday. So now
-# it is implemented at midnight of the last workday before weekend...
-# 
-# From Steffen Thorsen (2007-10-27):
-# Jesper Norgaard Welen wrote:
-# 
-# > "Winter local time in Syria will be observed at midnight of Thursday 1
-# > November 2007, and the clock will be put back 1 hour."
-# 
-# I found confirmation on this in this gov.sy-article (Arabic):
-# http://wehda.alwehda.gov.sy/_print_veiw.asp?FileName=12521710520070926111247
-# 
-# which using Google's translate tools says:
-# Council of Ministers also approved the commencement of work on 
-# identifying the winter time as of Friday, 2/11/2007 where the 60th 
-# minute delay at midnight Thursday 1/11/2007.
-Rule	Syria	2007	only	-	Nov	 Fri>=1	0:00	0	-
-
-# From Stephen Colebourne (2008-03-17):
-# For everyone's info, I saw an IATA time zone change for [Syria] for
-# this month (March 2008) in the last day or so...This is the data IATA
-# are now using:
-# Country     Time Standard   --- DST Start ---   --- DST End ---  DST
-# Name        Zone Variation   Time    Date        Time    Date
-# Variation
-# Syrian Arab
-# Republic    SY    +0200      2200  03APR08       2100  30SEP08   +0300
-#                              2200  02APR09       2100  30SEP09   +0300
-#                              2200  01APR10       2100  30SEP10   +0300
-
-# From Arthur David Olson (2008-03-17):
-# Here's a link to English-language coverage by the Syrian Arab News
-# Agency (SANA)...
-# <a href="http://www.sana.sy/eng/21/2008/03/11/165173.htm">
-# http://www.sana.sy/eng/21/2008/03/11/165173.htm
-# </a>...which reads (in part) "The Cabinet approved the suggestion of the
-# Ministry of Electricity to begin daylight savings time on Friday April
-# 4th, advancing clocks one hour ahead on midnight of Thursday April 3rd."
-# Since Syria is two hours east of UTC, the 2200 and 2100 transition times
-# shown above match up with midnight in Syria.
-
-# From Arthur David Olson (2008-03-18):
-# My buest guess at a Syrian rule is "the Friday nearest April 1";
-# coding that involves either using a "Mar Fri>=29" construct that old time zone
-# compilers can't handle  or having multiple Rules (a la Israel).
-# For now, use "Apr Fri>=1", and go with IATA on a uniform Sep 30 end.
-
-Rule	Syria	2008	max	-	Apr	Fri>=1	0:00	1:00	S
-Rule	Syria	2008	max	-	Oct	1	0:00	0	-
-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Asia/Damascus	2:25:12 -	LMT	1920	# Dimashq
-			2:00	Syria	EE%sT
-
-# Tajikistan
-# From Shanks & Pottenger.
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Asia/Dushanbe	4:35:12 -	LMT	1924 May  2
-			5:00	-	DUST	1930 Jun 21 # Dushanbe Time
-			6:00 RussiaAsia DUS%sT	1991 Mar 31 2:00s
-			5:00	1:00	DUSST	1991 Sep  9 2:00s
-			5:00	-	TJT		    # Tajikistan Time
-
-# Thailand
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Asia/Bangkok	6:42:04	-	LMT	1880
-			6:42:04	-	BMT	1920 Apr # Bangkok Mean Time
-			7:00	-	ICT
-
-# Turkmenistan
-# From Shanks & Pottenger.
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Asia/Ashgabat	3:53:32 -	LMT	1924 May  2 # or Ashkhabad
-			4:00	-	ASHT	1930 Jun 21 # Ashkhabad Time
-			5:00 RussiaAsia	ASH%sT	1991 Mar 31 2:00
-			4:00 RussiaAsia	ASH%sT	1991 Oct 27 # independence
-			4:00 RussiaAsia	TM%sT	1992 Jan 19 2:00
-			5:00	-	TMT
-
-# United Arab Emirates
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Asia/Dubai	3:41:12 -	LMT	1920
-			4:00	-	GST
-
-# Uzbekistan
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Asia/Samarkand	4:27:12 -	LMT	1924 May  2
-			4:00	-	SAMT	1930 Jun 21 # Samarkand Time
-			5:00	-	SAMT	1981 Apr  1
-			5:00	1:00	SAMST	1981 Oct  1
-			6:00	-	TAST	1982 Apr  1 # Tashkent Time
-			5:00 RussiaAsia	SAM%sT	1991 Sep  1 # independence
-			5:00 RussiaAsia	UZ%sT	1992
-			5:00	-	UZT
-Zone	Asia/Tashkent	4:37:12 -	LMT	1924 May  2
-			5:00	-	TAST	1930 Jun 21 # Tashkent Time
-			6:00 RussiaAsia	TAS%sT	1991 Mar 31 2:00
-			5:00 RussiaAsia	TAS%sT	1991 Sep  1 # independence
-			5:00 RussiaAsia	UZ%sT	1992
-			5:00	-	UZT
-
-# Vietnam
-
-# From Arthur David Olson (2008-03-18):
-# The English-language name of Vietnam's most populous city is "Ho Chi Min City";
-# we use Ho_Chi_Minh below to avoid a name of more than 14 characters.
-
-# From Shanks & Pottenger:
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Asia/Ho_Chi_Minh	7:06:40 -	LMT	1906 Jun  9
-			7:06:20	-	SMT	1911 Mar 11 0:01 # Saigon MT?
-			7:00	-	ICT	1912 May
-			8:00	-	ICT	1931 May
-			7:00	-	ICT
-
-# Yemen
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Asia/Aden	3:00:48	-	LMT	1950
-			3:00	-	AST
diff --git a/libkcal/libical/tzdata/australasia b/libkcal/libical/tzdata/australasia
deleted file mode 100644
index 30d695ff..00000000
--- a/libkcal/libical/tzdata/australasia
+++ /dev/null
@@ -1,1454 +0,0 @@
-# @(#)australasia	8.8
-# <pre>
-
-# This file also includes Pacific islands.
-
-# Notes are at the end of this file
-
-###############################################################################
-
-# Australia
-
-# Please see the notes below for the controversy about "EST" versus "AEST" etc.
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Aus	1917	only	-	Jan	 1	0:01	1:00	-
-Rule	Aus	1917	only	-	Mar	25	2:00	0	-
-Rule	Aus	1942	only	-	Jan	 1	2:00	1:00	-
-Rule	Aus	1942	only	-	Mar	29	2:00	0	-
-Rule	Aus	1942	only	-	Sep	27	2:00	1:00	-
-Rule	Aus	1943	1944	-	Mar	lastSun	2:00	0	-
-Rule	Aus	1943	only	-	Oct	 3	2:00	1:00	-
-# Go with Whitman and the Australian National Standards Commission, which
-# says W Australia didn't use DST in 1943/1944.  Ignore Whitman's claim that
-# 1944/1945 was just like 1943/1944.
-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-# Northern Territory
-Zone Australia/Darwin	 8:43:20 -	LMT	1895 Feb
-			 9:00	-	CST	1899 May
-			 9:30	Aus	CST
-# Western Australia
-#
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	AW	1974	only	-	Oct	lastSun	2:00s	1:00	-
-Rule	AW	1975	only	-	Mar	Sun>=1	2:00s	0	-
-Rule	AW	1983	only	-	Oct	lastSun	2:00s	1:00	-
-Rule	AW	1984	only	-	Mar	Sun>=1	2:00s	0	-
-Rule	AW	1991	only	-	Nov	17	2:00s	1:00	-
-Rule	AW	1992	only	-	Mar	Sun>=1	2:00s	0	-
-Rule	AW	2006	only	-	Dec	 3	2:00s	1:00	-
-Rule	AW	2007	2009	-	Mar	lastSun	2:00s	0	-
-Rule	AW	2007	2008	-	Oct	lastSun	2:00s	1:00	-
-Zone Australia/Perth	 7:43:24 -	LMT	1895 Dec
-			 8:00	Aus	WST	1943 Jul
-			 8:00	AW	WST
-Zone Australia/Eucla	 8:35:28 -	LMT	1895 Dec
-			 8:45	Aus	CWST	1943 Jul
-			 8:45	AW	CWST
-
-# Queensland
-#
-# From Alex Livingston (1996-11-01):
-# I have heard or read more than once that some resort islands off the coast
-# of Queensland chose to keep observing daylight-saving time even after
-# Queensland ceased to.
-#
-# From Paul Eggert (1996-11-22):
-# IATA SSIM (1993-02/1994-09) say that the Holiday Islands (Hayman, Lindeman,
-# Hamilton) observed DST for two years after the rest of Queensland stopped.
-# Hamilton is the largest, but there is also a Hamilton in Victoria,
-# so use Lindeman.
-#
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	AQ	1971	only	-	Oct	lastSun	2:00s	1:00	-
-Rule	AQ	1972	only	-	Feb	lastSun	2:00s	0	-
-Rule	AQ	1989	1991	-	Oct	lastSun	2:00s	1:00	-
-Rule	AQ	1990	1992	-	Mar	Sun>=1	2:00s	0	-
-Rule	Holiday	1992	1993	-	Oct	lastSun	2:00s	1:00	-
-Rule	Holiday	1993	1994	-	Mar	Sun>=1	2:00s	0	-
-Zone Australia/Brisbane	10:12:08 -	LMT	1895
-			10:00	Aus	EST	1971
-			10:00	AQ	EST
-Zone Australia/Lindeman  9:55:56 -	LMT	1895
-			10:00	Aus	EST	1971
-			10:00	AQ	EST	1992 Jul
-			10:00	Holiday	EST
-
-# South Australia
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	AS	1971	1985	-	Oct	lastSun	2:00s	1:00	-
-Rule	AS	1986	only	-	Oct	19	2:00s	1:00	-
-Rule	AS	1987	2007	-	Oct	lastSun	2:00s	1:00	-
-Rule	AS	1972	only	-	Feb	27	2:00s	0	-
-Rule	AS	1973	1985	-	Mar	Sun>=1	2:00s	0	-
-Rule	AS	1986	1989	-	Mar	Sun>=15	2:00s	0	-
-Rule	AS	1990	only	-	Mar	Sun>=18	2:00s	0	-
-Rule	AS	1991	only	-	Mar	Sun>=1	2:00s	0	-
-Rule	AS	1992	only	-	Mar	Sun>=18	2:00s	0	-
-Rule	AS	1993	only	-	Mar	Sun>=1	2:00s	0	-
-Rule	AS	1994	only	-	Mar	Sun>=18	2:00s	0	-
-Rule	AS	1995	2005	-	Mar	lastSun	2:00s	0	-
-Rule	AS	2006	only	-	Apr	Sun>=1	2:00s	0	-
-Rule	AS	2007	only	-	Mar	lastSun	2:00s	0	-
-Rule	AS	2008	max	-	Apr	Sun>=1	2:00s	0	-
-Rule	AS	2008	max	-	Oct	Sun>=1	2:00s	1:00	-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Australia/Adelaide	9:14:20 -	LMT	1895 Feb
-			9:00	-	CST	1899 May
-			9:30	Aus	CST	1971
-			9:30	AS	CST
-
-# Tasmania
-#
-# From Paul Eggert (2005-08-16):
-# <http://www.bom.gov.au/climate/averages/tables/dst_times.shtml>
-# says King Island didn't observe DST from WWII until late 1971.
-#
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	AT	1967	only	-	Oct	Sun>=1	2:00s	1:00	-
-Rule	AT	1968	only	-	Mar	lastSun	2:00s	0	-
-Rule	AT	1968	1985	-	Oct	lastSun	2:00s	1:00	-
-Rule	AT	1969	1971	-	Mar	Sun>=8	2:00s	0	-
-Rule	AT	1972	only	-	Feb	lastSun	2:00s	0	-
-Rule	AT	1973	1981	-	Mar	Sun>=1	2:00s	0	-
-Rule	AT	1982	1983	-	Mar	lastSun	2:00s	0	-
-Rule	AT	1984	1986	-	Mar	Sun>=1	2:00s	0	-
-Rule	AT	1986	only	-	Oct	Sun>=15	2:00s	1:00	-
-Rule	AT	1987	1990	-	Mar	Sun>=15	2:00s	0	-
-Rule	AT	1987	only	-	Oct	Sun>=22	2:00s	1:00	-
-Rule	AT	1988	1990	-	Oct	lastSun	2:00s	1:00	-
-Rule	AT	1991	1999	-	Oct	Sun>=1	2:00s	1:00	-
-Rule	AT	1991	2005	-	Mar	lastSun	2:00s	0	-
-Rule	AT	2000	only	-	Aug	lastSun	2:00s	1:00	-
-Rule	AT	2001	max	-	Oct	Sun>=1	2:00s	1:00	-
-Rule	AT	2006	only	-	Apr	Sun>=1	2:00s	0	-
-Rule	AT	2007	only	-	Mar	lastSun	2:00s	0	-
-Rule	AT	2008	max	-	Apr	Sun>=1	2:00s	0	-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Australia/Hobart	9:49:16	-	LMT	1895 Sep
-			10:00	-	EST	1916 Oct 1 2:00
-			10:00	1:00	EST	1917 Feb
-			10:00	Aus	EST	1967
-			10:00	AT	EST
-Zone Australia/Currie	9:35:28	-	LMT	1895 Sep
-			10:00	-	EST	1916 Oct 1 2:00
-			10:00	1:00	EST	1917 Feb
-			10:00	Aus	EST	1971 Jul
-			10:00	AT	EST
-
-# Victoria
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	AV	1971	1985	-	Oct	lastSun	2:00s	1:00	-
-Rule	AV	1972	only	-	Feb	lastSun	2:00s	0	-
-Rule	AV	1973	1985	-	Mar	Sun>=1	2:00s	0	-
-Rule	AV	1986	1990	-	Mar	Sun>=15	2:00s	0	-
-Rule	AV	1986	1987	-	Oct	Sun>=15	2:00s	1:00	-
-Rule	AV	1988	1999	-	Oct	lastSun	2:00s	1:00	-
-Rule	AV	1991	1994	-	Mar	Sun>=1	2:00s	0	-
-Rule	AV	1995	2005	-	Mar	lastSun	2:00s	0	-
-Rule	AV	2000	only	-	Aug	lastSun	2:00s	1:00	-
-Rule	AV	2001	2007	-	Oct	lastSun	2:00s	1:00	-
-Rule	AV	2006	only	-	Apr	Sun>=1	2:00s	0	-
-Rule	AV	2007	only	-	Mar	lastSun	2:00s	0	-
-Rule	AV	2008	max	-	Apr	Sun>=1	2:00s	0	-
-Rule	AV	2008	max	-	Oct	Sun>=1	2:00s	1:00	-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Australia/Melbourne 9:39:52 -	LMT	1895 Feb
-			10:00	Aus	EST	1971
-			10:00	AV	EST
-
-# New South Wales
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	AN	1971	1985	-	Oct	lastSun	2:00s	1:00	-
-Rule	AN	1972	only	-	Feb	27	2:00s	0	-
-Rule	AN	1973	1981	-	Mar	Sun>=1	2:00s	0	-
-Rule	AN	1982	only	-	Apr	Sun>=1	2:00s	0	-
-Rule	AN	1983	1985	-	Mar	Sun>=1	2:00s	0	-
-Rule	AN	1986	1989	-	Mar	Sun>=15	2:00s	0	-
-Rule	AN	1986	only	-	Oct	19	2:00s	1:00	-
-Rule	AN	1987	1999	-	Oct	lastSun	2:00s	1:00	-
-Rule	AN	1990	1995	-	Mar	Sun>=1	2:00s	0	-
-Rule	AN	1996	2005	-	Mar	lastSun	2:00s	0	-
-Rule	AN	2000	only	-	Aug	lastSun	2:00s	1:00	-
-Rule	AN	2001	2007	-	Oct	lastSun	2:00s	1:00	-
-Rule	AN	2006	only	-	Apr	Sun>=1	2:00s	0	-
-Rule	AN	2007	only	-	Mar	lastSun	2:00s	0	-
-Rule	AN	2008	max	-	Apr	Sun>=1	2:00s	0	-
-Rule	AN	2008	max	-	Oct	Sun>=1	2:00s	1:00	-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Australia/Sydney	10:04:52 -	LMT	1895 Feb
-			10:00	Aus	EST	1971
-			10:00	AN	EST
-Zone Australia/Broken_Hill 9:25:48 -	LMT	1895 Feb
-			10:00	-	EST	1896 Aug 23
-			9:00	-	CST	1899 May
-			9:30	Aus	CST	1971
-			9:30	AN	CST	2000
-			9:30	AS	CST
-
-# Lord Howe Island
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	LH	1981	1984	-	Oct	lastSun	2:00	1:00	-
-Rule	LH	1982	1985	-	Mar	Sun>=1	2:00	0	-
-Rule	LH	1985	only	-	Oct	lastSun	2:00	0:30	-
-Rule	LH	1986	1989	-	Mar	Sun>=15	2:00	0	-
-Rule	LH	1986	only	-	Oct	19	2:00	0:30	-
-Rule	LH	1987	1999	-	Oct	lastSun	2:00	0:30	-
-Rule	LH	1990	1995	-	Mar	Sun>=1	2:00	0	-
-Rule	LH	1996	2005	-	Mar	lastSun	2:00	0	-
-Rule	LH	2000	only	-	Aug	lastSun	2:00	0:30	-
-Rule	LH	2001	2007	-	Oct	lastSun	2:00	0:30	-
-Rule	LH	2006	only	-	Apr	Sun>=1	2:00	0	-
-Rule	LH	2007	only	-	Mar	lastSun	2:00	0	-
-Rule	LH	2008	max	-	Apr	Sun>=1	2:00	0	-
-Rule	LH	2008	max	-	Oct	Sun>=1	2:00	0:30	-
-Zone Australia/Lord_Howe 10:36:20 -	LMT	1895 Feb
-			10:00	-	EST	1981 Mar
-			10:30	LH	LHST
-
-# Australian miscellany
-#
-# Ashmore Is, Cartier
-# no indigenous inhabitants; only seasonal caretakers
-# no times are set
-#
-# Coral Sea Is
-# no indigenous inhabitants; only meteorologists
-# no times are set
-#
-# Macquarie
-# permanent occupation (scientific station) since 1948;
-# sealing and penguin oil station operated 1888/1917
-# like Australia/Hobart
-
-# Christmas
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Indian/Christmas	7:02:52 -	LMT	1895 Feb
-			7:00	-	CXT	# Christmas Island Time
-
-# Cook Is
-# From Shanks & Pottenger:
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Cook	1978	only	-	Nov	12	0:00	0:30	HS
-Rule	Cook	1979	1991	-	Mar	Sun>=1	0:00	0	-
-Rule	Cook	1979	1990	-	Oct	lastSun	0:00	0:30	HS
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Pacific/Rarotonga	-10:39:04 -	LMT	1901		# Avarua
-			-10:30	-	CKT	1978 Nov 12	# Cook Is Time
-			-10:00	Cook	CK%sT
-
-# Cocos
-# These islands were ruled by the Ross family from about 1830 to 1978.
-# We don't know when standard time was introduced; for now, we guess 1900.
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Indian/Cocos	6:27:40	-	LMT	1900
-			6:30	-	CCT	# Cocos Islands Time
-
-# Fiji
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Fiji	1998	1999	-	Nov	Sun>=1	2:00	1:00	S
-Rule	Fiji	1999	2000	-	Feb	lastSun	3:00	0	-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Pacific/Fiji	11:53:40 -	LMT	1915 Oct 26	# Suva
-			12:00	Fiji	FJ%sT	# Fiji Time
-
-# French Polynesia
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Pacific/Gambier	 -8:59:48 -	LMT	1912 Oct	# Rikitea
-			 -9:00	-	GAMT	# Gambier Time
-Zone	Pacific/Marquesas -9:18:00 -	LMT	1912 Oct
-			 -9:30	-	MART	# Marquesas Time
-Zone	Pacific/Tahiti	 -9:58:16 -	LMT	1912 Oct	# Papeete
-			-10:00	-	TAHT	# Tahiti Time
-# Clipperton (near North America) is administered from French Polynesia;
-# it is uninhabited.
-
-# Guam
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Pacific/Guam	-14:21:00 -	LMT	1844 Dec 31
-			 9:39:00 -	LMT	1901		# Agana
-			10:00	-	GST	2000 Dec 23	# Guam
-			10:00	-	ChST	# Chamorro Standard Time
-
-# Kiribati
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Pacific/Tarawa	 11:32:04 -	LMT	1901		# Bairiki
-			 12:00	-	GILT		 # Gilbert Is Time
-Zone Pacific/Enderbury	-11:24:20 -	LMT	1901
-			-12:00	-	PHOT	1979 Oct # Phoenix Is Time
-			-11:00	-	PHOT	1995
-			 13:00	-	PHOT
-Zone Pacific/Kiritimati	-10:29:20 -	LMT	1901
-			-10:40	-	LINT	1979 Oct # Line Is Time
-			-10:00	-	LINT	1995
-			 14:00	-	LINT
-
-# N Mariana Is
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Pacific/Saipan	-14:17:00 -	LMT	1844 Dec 31
-			 9:43:00 -	LMT	1901
-			 9:00	-	MPT	1969 Oct # N Mariana Is Time
-			10:00	-	MPT	2000 Dec 23
-			10:00	-	ChST	# Chamorro Standard Time
-
-# Marshall Is
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Pacific/Majuro	11:24:48 -	LMT	1901
-			11:00	-	MHT	1969 Oct # Marshall Islands Time
-			12:00	-	MHT
-Zone Pacific/Kwajalein	11:09:20 -	LMT	1901
-			11:00	-	MHT	1969 Oct
-			-12:00	-	KWAT	1993 Aug 20	# Kwajalein Time
-			12:00	-	MHT
-
-# Micronesia
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Pacific/Truk	10:07:08 -	LMT	1901
-			10:00	-	TRUT			# Truk Time
-Zone Pacific/Ponape	10:32:52 -	LMT	1901		# Kolonia
-			11:00	-	PONT			# Ponape Time
-Zone Pacific/Kosrae	10:51:56 -	LMT	1901
-			11:00	-	KOST	1969 Oct	# Kosrae Time
-			12:00	-	KOST	1999
-			11:00	-	KOST
-
-# Nauru
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Pacific/Nauru	11:07:40 -	LMT	1921 Jan 15	# Uaobe
-			11:30	-	NRT	1942 Mar 15	# Nauru Time
-			9:00	-	JST	1944 Aug 15
-			11:30	-	NRT	1979 May
-			12:00	-	NRT
-
-# New Caledonia
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	NC	1977	1978	-	Dec	Sun>=1	0:00	1:00	S
-Rule	NC	1978	1979	-	Feb	27	0:00	0	-
-Rule	NC	1996	only	-	Dec	 1	2:00s	1:00	S
-# Shanks & Pottenger say the following was at 2:00; go with IATA.
-Rule	NC	1997	only	-	Mar	 2	2:00s	0	-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Pacific/Noumea	11:05:48 -	LMT	1912 Jan 13
-			11:00	NC	NC%sT
-
-
-###############################################################################
-
-# New Zealand
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	NZ	1927	only	-	Nov	 6	2:00	1:00	S
-Rule	NZ	1928	only	-	Mar	 4	2:00	0	M
-Rule	NZ	1928	1933	-	Oct	Sun>=8	2:00	0:30	S
-Rule	NZ	1929	1933	-	Mar	Sun>=15	2:00	0	M
-Rule	NZ	1934	1940	-	Apr	lastSun	2:00	0	M
-Rule	NZ	1934	1940	-	Sep	lastSun	2:00	0:30	S
-Rule	NZ	1946	only	-	Jan	 1	0:00	0	S
-# Since 1957 Chatham has been 45 minutes ahead of NZ, but there's no
-# convenient notation for this so we must duplicate the Rule lines.
-Rule	NZ	1974	only	-	Nov	Sun>=1	2:00s	1:00	D
-Rule	Chatham	1974	only	-	Nov	Sun>=1	2:45s	1:00	D
-Rule	NZ	1975	only	-	Feb	lastSun	2:00s	0	S
-Rule	Chatham	1975	only	-	Feb	lastSun	2:45s	0	S
-Rule	NZ	1975	1988	-	Oct	lastSun	2:00s	1:00	D
-Rule	Chatham	1975	1988	-	Oct	lastSun	2:45s	1:00	D
-Rule	NZ	1976	1989	-	Mar	Sun>=1	2:00s	0	S
-Rule	Chatham	1976	1989	-	Mar	Sun>=1	2:45s	0	S
-Rule	NZ	1989	only	-	Oct	Sun>=8	2:00s	1:00	D
-Rule	Chatham	1989	only	-	Oct	Sun>=8	2:45s	1:00	D
-Rule	NZ	1990	2006	-	Oct	Sun>=1	2:00s	1:00	D
-Rule	Chatham	1990	2006	-	Oct	Sun>=1	2:45s	1:00	D
-Rule	NZ	1990	2007	-	Mar	Sun>=15	2:00s	0	S
-Rule	Chatham	1990	2007	-	Mar	Sun>=15	2:45s	0	S
-Rule	NZ	2007	max	-	Sep	lastSun	2:00s	1:00	D
-Rule	Chatham	2007	max	-	Sep	lastSun	2:45s	1:00	D
-Rule	NZ	2008	max	-	Apr	Sun>=1	2:00s	0	S
-Rule	Chatham	2008	max	-	Apr	Sun>=1	2:45s	0	S
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Pacific/Auckland	11:39:04 -	LMT	1868 Nov  2
-			11:30	NZ	NZ%sT	1946 Jan  1
-			12:00	NZ	NZ%sT
-Zone Pacific/Chatham	12:13:48 -	LMT	1957 Jan  1
-			12:45	Chatham	CHA%sT
-
-
-# Auckland Is
-# uninhabited; Maori and Moriori, colonial settlers, pastoralists, sealers,
-# and scientific personnel have wintered
-
-# Campbell I
-# minor whaling stations operated 1909/1914
-# scientific station operated 1941/1995;
-# previously whalers, sealers, pastoralists, and scientific personnel wintered
-# was probably like Pacific/Auckland
-
-###############################################################################
-
-
-# Niue
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Pacific/Niue	-11:19:40 -	LMT	1901		# Alofi
-			-11:20	-	NUT	1951	# Niue Time
-			-11:30	-	NUT	1978 Oct 1
-			-11:00	-	NUT
-
-# Norfolk
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Pacific/Norfolk	11:11:52 -	LMT	1901		# Kingston
-			11:12	-	NMT	1951	# Norfolk Mean Time
-			11:30	-	NFT		# Norfolk Time
-
-# Palau (Belau)
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Pacific/Palau	8:57:56 -	LMT	1901		# Koror
-			9:00	-	PWT	# Palau Time
-
-# Papua New Guinea
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Pacific/Port_Moresby 9:48:40 -	LMT	1880
-			9:48:32	-	PMMT	1895	# Port Moresby Mean Time
-			10:00	-	PGT		# Papua New Guinea Time
-
-# Pitcairn
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Pacific/Pitcairn	-8:40:20 -	LMT	1901		# Adamstown
-			-8:30	-	PNT	1998 Apr 27 00:00
-			-8:00	-	PST	# Pitcairn Standard Time
-
-# American Samoa
-Zone Pacific/Pago_Pago	 12:37:12 -	LMT	1879 Jul  5
-			-11:22:48 -	LMT	1911
-			-11:30	-	SAMT	1950		# Samoa Time
-			-11:00	-	NST	1967 Apr	# N=Nome
-			-11:00	-	BST	1983 Nov 30	# B=Bering
-			-11:00	-	SST			# S=Samoa
-
-# Samoa
-Zone Pacific/Apia	 12:33:04 -	LMT	1879 Jul  5
-			-11:26:56 -	LMT	1911
-			-11:30	-	SAMT	1950		# Samoa Time
-			-11:00	-	WST			# Samoa Time
-
-# Solomon Is
-# excludes Bougainville, for which see Papua New Guinea
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Pacific/Guadalcanal 10:39:48 -	LMT	1912 Oct	# Honiara
-			11:00	-	SBT	# Solomon Is Time
-
-# Tokelau Is
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Pacific/Fakaofo	-11:24:56 -	LMT	1901
-			-10:00	-	TKT	# Tokelau Time
-
-# Tonga
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Tonga	1999	only	-	Oct	 7	2:00s	1:00	S
-Rule	Tonga	2000	only	-	Mar	19	2:00s	0	-
-Rule	Tonga	2000	2001	-	Nov	Sun>=1	2:00	1:00	S
-Rule	Tonga	2001	2002	-	Jan	lastSun	2:00	0	-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Pacific/Tongatapu	12:19:20 -	LMT	1901
-			12:20	-	TOT	1941 # Tonga Time
-			13:00	-	TOT	1999
-			13:00	Tonga	TO%sT
-
-# Tuvalu
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Pacific/Funafuti	11:56:52 -	LMT	1901
-			12:00	-	TVT	# Tuvalu Time
-
-
-# US minor outlying islands
-
-# Howland, Baker
-# Howland was mined for guano by American companies 1857-1878 and British
-# 1886-1891; Baker was similar but exact dates are not known.
-# Inhabited by civilians 1935-1942; U.S. military bases 1943-1944;
-# uninhabited thereafter.
-# Howland observed Hawaii Standard Time (UTC-10:30) in 1937;
-# see page 206 of Elgen M. Long and Marie K. Long,
-# Amelia Earhart: the Mystery Solved, Simon & Schuster (2000).
-# So most likely Howland and Baker observed Hawaii Time from 1935
-# until they were abandoned after the war.
-
-# Jarvis
-# Mined for guano by American companies 1857-1879 and British 1883?-1891?.
-# Inhabited by civilians 1935-1942; IGY scientific base 1957-1958;
-# uninhabited thereafter.
-# no information; was probably like Pacific/Kiritimati
-
-# Johnston
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Pacific/Johnston	-10:00	-	HST
-
-# Kingman
-# uninhabited
-
-# Midway
-#
-# From Mark Brader (2005-01-23):
-# [Fallacies and Fantasies of Air Transport History, by R.E.G. Davies,
-# published 1994 by Paladwr Press, McLean, VA, USA; ISBN 0-9626483-5-3]
-# reproduced a Pan American Airways timeables from 1936, for their weekly
-# "Orient Express" flights between San Francisco and Manila, and connecting
-# flights to Chicago and the US East Coast.  As it uses some time zone
-# designations that I've never seen before:....
-# Fri. 6:30A Lv. HONOLOLU (Pearl Harbor), H.I.   H.L.T. Ar. 5:30P Sun.
-#  "   3:00P Ar. MIDWAY ISLAND . . . . . . . . . M.L.T. Lv. 6:00A  "
-#
-Zone Pacific/Midway	-11:49:28 -	LMT	1901
-			-11:00	-	NST	1956 Jun  3
-			-11:00	1:00	NDT	1956 Sep  2
-			-11:00	-	NST	1967 Apr	# N=Nome
-			-11:00	-	BST	1983 Nov 30	# B=Bering
-			-11:00	-	SST			# S=Samoa
-
-# Palmyra
-# uninhabited since World War II; was probably like Pacific/Kiritimati
-
-# Wake
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Pacific/Wake	11:06:28 -	LMT	1901
-			12:00	-	WAKT	# Wake Time
-
-
-# Vanuatu
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Vanuatu	1983	only	-	Sep	25	0:00	1:00	S
-Rule	Vanuatu	1984	1991	-	Mar	Sun>=23	0:00	0	-
-Rule	Vanuatu	1984	only	-	Oct	23	0:00	1:00	S
-Rule	Vanuatu	1985	1991	-	Sep	Sun>=23	0:00	1:00	S
-Rule	Vanuatu	1992	1993	-	Jan	Sun>=23	0:00	0	-
-Rule	Vanuatu	1992	only	-	Oct	Sun>=23	0:00	1:00	S
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Pacific/Efate	11:13:16 -	LMT	1912 Jan 13		# Vila
-			11:00	Vanuatu	VU%sT	# Vanuatu Time
-
-# Wallis and Futuna
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Pacific/Wallis	12:15:20 -	LMT	1901
-			12:00	-	WFT	# Wallis & Futuna Time
-
-###############################################################################
-
-# NOTES
-
-# This data is by no means authoritative; if you think you know better,
-# go ahead and edit the file (and please send any changes to
-# tz@elsie.nci.nih.gov for general use in the future).
-
-# From Paul Eggert (2006-03-22):
-# A good source for time zone historical data outside the U.S. is
-# Thomas G. Shanks and Rique Pottenger, The International Atlas (6th edition),
-# San Diego: ACS Publications, Inc. (2003).
-#
-# Gwillim Law writes that a good source
-# for recent time zone data is the International Air Transport
-# Association's Standard Schedules Information Manual (IATA SSIM),
-# published semiannually.  Law sent in several helpful summaries
-# of the IATA's data after 1990.
-#
-# Except where otherwise noted, Shanks & Pottenger is the source for
-# entries through 1990, and IATA SSIM is the source for entries afterwards.
-#
-# Another source occasionally used is Edward W. Whitman, World Time Differences,
-# Whitman Publishing Co, 2 Niagara Av, Ealing, London (undated), which
-# I found in the UCLA library.
-#
-# A reliable and entertaining source about time zones is
-# Derek Howse, Greenwich time and longitude, Philip Wilson Publishers (1997).
-#
-# I invented the abbreviations marked `*' in the following table;
-# the rest are from earlier versions of this file, or from other sources.
-# Corrections are welcome!
-#		std dst
-#		LMT	Local Mean Time
-#	  8:00	WST WST	Western Australia
-#	  8:45	CWST CWST Central Western Australia*
-#	  9:00	JST	Japan
-#	  9:30	CST CST	Central Australia
-#	 10:00	EST EST	Eastern Australia
-#	 10:00	ChST	Chamorro
-#	 10:30	LHST LHST Lord Howe*
-#	 11:30	NZMT NZST New Zealand through 1945
-#	 12:00	NZST NZDT New Zealand 1946-present
-#	 12:45	CHAST CHADT Chatham*
-#	-11:00	SST	Samoa
-#	-10:00	HST	Hawaii
-#	- 8:00	PST	Pitcairn*
-#
-# See the `northamerica' file for Hawaii.
-# See the `southamerica' file for Easter I and the Galapagos Is.
-
-###############################################################################
-
-# Australia
-
-# From Paul Eggert (2005-12-08):
-# <a href="http://www.bom.gov.au/climate/averages/tables/dst_times.shtml">
-# Implementation Dates of Daylight Saving Time within Australia
-# </a> summarizes daylight saving issues in Australia.
-
-# From Arthur David Olson (2005-12-12):
-# <a href="http://www.lawlink.nsw.gov.au/lawlink/Corporate/ll_agdinfo.nsf/pages/community_relations_daylight_saving">
-# Lawlink NSW:Daylight Saving in New South Wales
-# </a> covers New South Wales in particular.
-
-# From John Mackin (1991-03-06):
-# We in Australia have _never_ referred to DST as `daylight' time.
-# It is called `summer' time.  Now by a happy coincidence, `summer'
-# and `standard' happen to start with the same letter; hence, the
-# abbreviation does _not_ change...
-# The legislation does not actually define abbreviations, at least
-# in this State, but the abbreviation is just commonly taken to be the
-# initials of the phrase, and the legislation here uniformly uses
-# the phrase `summer time' and does not use the phrase `daylight
-# time'.
-# Announcers on the Commonwealth radio network, the ABC (for Australian
-# Broadcasting Commission), use the phrases `Eastern Standard Time'
-# or `Eastern Summer Time'.  (Note, though, that as I say in the
-# current australasia file, there is really no such thing.)  Announcers
-# on its overseas service, Radio Australia, use the same phrases
-# prefixed by the word `Australian' when referring to local times;
-# time announcements on that service, naturally enough, are made in UTC.
-
-# From Arthur David Olson (1992-03-08):
-# Given the above, what's chosen for year-round use is:
-#	CST	for any place operating at a GMTOFF of 9:30
-#	WST	for any place operating at a GMTOFF of 8:00
-#	EST	for any place operating at a GMTOFF of 10:00
-
-# From Chuck Soper (2006-06-01):
-# I recently found this Australian government web page on time zones:
-# <http://www.australia.gov.au/about-australia-13time>
-# And this government web page lists time zone names and abbreviations:
-# <http://www.bom.gov.au/climate/averages/tables/daysavtm.shtml>
-
-# From Paul Eggert (2001-04-05), summarizing a long discussion about "EST"
-# versus "AEST" etc.:
-#
-# I see the following points of dispute:
-#
-# * How important are unique time zone abbreviations?
-#
-#   Here I tend to agree with the point (most recently made by Chris
-#   Newman) that unique abbreviations should not be essential for proper
-#   operation of software.  We have other instances of ambiguity
-#   (e.g. "IST" denoting both "Israel Standard Time" and "Indian
-#   Standard Time"), and they are not likely to go away any time soon.
-#   In the old days, some software mistakenly relied on unique
-#   abbreviations, but this is becoming less true with time, and I don't
-#   think it's that important to cater to such software these days.
-#
-#   On the other hand, there is another motivation for unambiguous
-#   abbreviations: it cuts down on human confusion.  This is
-#   particularly true for Australia, where "EST" can mean one thing for
-#   time T and a different thing for time T plus 1 second.
-#
-# * Does the relevant legislation indicate which abbreviations should be used?
-#
-#   Here I tend to think that things are a mess, just as they are in
-#   many other countries.  We Americans are currently disagreeing about
-#   which abbreviation to use for the newly legislated Chamorro Standard
-#   Time, for example.
-#
-#   Personally, I would prefer to use common practice; I would like to
-#   refer to legislation only for examples of common practice, or as a
-#   tiebreaker.
-#
-# * Do Australians more often use "Eastern Daylight Time" or "Eastern
-#   Summer Time"?  Do they typically prefix the time zone names with
-#   the word "Australian"?
-#
-#   My own impression is that both "Daylight Time" and "Summer Time" are
-#   common and are widely understood, but that "Summer Time" is more
-#   popular; and that the leading "A" is also common but is omitted more
-#   often than not.  I just used AltaVista advanced search and got the
-#   following count of page hits:
-#
-#     1,103 "Eastern Summer Time" AND domain:au
-#       971 "Australian Eastern Summer Time" AND domain:au
-#       613 "Eastern Daylight Time" AND domain:au
-#       127 "Australian Eastern Daylight Time" AND domain:au
-#
-#   Here "Summer" seems quite a bit more popular than "Daylight",
-#   particularly when we know the time zone is Australian and not US,
-#   say.  The "Australian" prefix seems to be popular for Eastern Summer
-#   Time, but unpopular for Eastern Daylight Time.
-#
-#   For abbreviations, tools like AltaVista are less useful because of
-#   ambiguity.  Many hits are not really time zones, unfortunately, and
-#   many hits denote US time zones and not Australian ones.  But here
-#   are the hit counts anyway:
-#
-#     161,304 "EST" and domain:au
-#      25,156 "EDT" and domain:au
-#      18,263 "AEST" and domain:au
-#      10,416 "AEDT" and domain:au
-#
-#      14,538 "CST" and domain:au
-#       5,728 "CDT" and domain:au
-#         176 "ACST" and domain:au
-#          29 "ACDT" and domain:au
-#
-#       7,539 "WST" and domain:au
-#          68 "AWST" and domain:au
-#
-#   This data suggest that Australians tend to omit the "A" prefix in
-#   practice.  The situation for "ST" versus "DT" is less clear, given
-#   the ambiguities involved.
-#
-# * How do Australians feel about the abbreviations in the tz database?
-#
-#   If you just count Australians on this list, I count 2 in favor and 3
-#   against.  One of the "against" votes (David Keegel) counseled delay,
-#   saying that both AEST/AEDT and EST/EST are widely used and
-#   understood in Australia.
-
-# From Paul Eggert (1995-12-19):
-# Shanks & Pottenger report 2:00 for all autumn changes in Australia and NZ.
-# Mark Prior writes that his newspaper
-# reports that NSW's fall 1995 change will occur at 2:00,
-# but Robert Elz says it's been 3:00 in Victoria since 1970
-# and perhaps the newspaper's `2:00' is referring to standard time.
-# For now we'll continue to assume 2:00s for changes since 1960.
-
-# From Eric Ulevik (1998-01-05):
-#
-# Here are some URLs to Australian time legislation. These URLs are stable,
-# and should probably be included in the data file. There are probably more
-# relevant entries in this database.
-#
-# NSW (including LHI and Broken Hill):
-# <a href="http://www.austlii.edu.au/au/legis/nsw/consol_act/sta1987137/index.html">
-# Standard Time Act 1987 (updated 1995-04-04)
-# </a>
-# ACT
-# <a href="http://www.austlii.edu.au/au/legis/act/consol_act/stasta1972279/index.html">
-# Standard Time and Summer Time Act 1972
-# </a>
-# SA
-# <a href="http://www.austlii.edu.au/au/legis/sa/consol_act/sta1898137/index.html">
-# Standard Time Act, 1898
-# </a>
-
-# From David Grosz (2005-06-13):
-# It was announced last week that Daylight Saving would be extended by
-# one week next year to allow for the 2006 Commonwealth Games.
-# Daylight Saving is now to end for next year only on the first Sunday
-# in April instead of the last Sunday in March.
-#
-# From Gwillim Law (2005-06-14):
-# I did some Googling and found that all of those states (and territory) plan
-# to extend DST together in 2006.
-# ACT: http://www.cmd.act.gov.au/mediareleases/fileread.cfm?file=86.txt
-# New South Wales: http://www.thecouriermail.news.com.au/common/story_page/0,5936,15538869%255E1702,00.html
-# South Australia: http://www.news.com.au/story/0,10117,15555031-1246,00.html
-# Tasmania: http://www.media.tas.gov.au/release.php?id=14772
-# Victoria: I wasn't able to find anything separate, but the other articles
-# allude to it.
-# But not Queensland
-# http://www.news.com.au/story/0,10117,15564030-1248,00.html.
-
-# Northern Territory
-
-# From George Shepherd via Simon Woodhead via Robert Elz (1991-03-06):
-# # The NORTHERN TERRITORY..  [ Courtesy N.T. Dept of the Chief Minister ]
-# #					[ Nov 1990 ]
-# #	N.T. have never utilised any DST due to sub-tropical/tropical location.
-# ...
-# Zone        Australia/North         9:30    -       CST
-
-# From Bradley White (1991-03-04):
-# A recent excerpt from an Australian newspaper...
-# the Northern Territory do[es] not have daylight saving.
-
-# Western Australia
-
-# From George Shepherd via Simon Woodhead via Robert Elz (1991-03-06):
-# #  The state of WESTERN AUSTRALIA..  [ Courtesy W.A. dept Premier+Cabinet ]
-# #						[ Nov 1990 ]
-# #	W.A. suffers from a great deal of public and political opposition to
-# #	DST in principle. A bill is brought before parliament in most years, but
-# #	usually defeated either in the upper house, or in party caucus
-# #	before reaching parliament.
-# ...
-# Zone	Australia/West		8:00	AW	%sST
-# ...
-# Rule	AW	1974	only	-	Oct	lastSun	2:00	1:00	D
-# Rule	AW	1975	only	-	Mar	Sun>=1	3:00	0	W
-# Rule	AW	1983	only	-	Oct	lastSun	2:00	1:00	D
-# Rule	AW	1984	only	-	Mar	Sun>=1	3:00	0	W
-
-# From Bradley White (1991-03-04):
-# A recent excerpt from an Australian newspaper...
-# Western Australia...do[es] not have daylight saving.
-
-# From John D. Newman via Bradley White (1991-11-02):
-# Western Australia is still on "winter time". Some DH in Sydney
-# rang me at home a few days ago at 6.00am. (He had just arrived at
-# work at 9.00am.)
-# W.A. is switching to Summer Time on Nov 17th just to confuse
-# everybody again.
-
-# From Arthur David Olson (1992-03-08):
-# The 1992 ending date used in the rules is a best guess;
-# it matches what was used in the past.
-
-# <a href="http://www.bom.gov.au/faq/faqgen.htm">
-# The Australian Bureau of Meteorology FAQ
-# </a> (1999-09-27) writes that Giles Meteorological Station uses
-# South Australian time even though it's located in Western Australia.
-
-# Queensland
-# From George Shepherd via Simon Woodhead via Robert Elz (1991-03-06):
-# #   The state of QUEENSLAND.. [ Courtesy Qld. Dept Premier Econ&Trade Devel ]
-# #						[ Dec 1990 ]
-# ...
-# Zone	Australia/Queensland	10:00	AQ	%sST
-# ...
-# Rule	AQ	1971	only	-	Oct	lastSun	2:00	1:00	D
-# Rule	AQ	1972	only	-	Feb	lastSun	3:00	0	E
-# Rule	AQ	1989	max	-	Oct	lastSun	2:00	1:00	D
-# Rule	AQ	1990	max	-	Mar	Sun>=1	3:00	0	E
-
-# From Bradley White (1989-12-24):
-# "Australia/Queensland" now observes daylight time (i.e. from
-# October 1989).
-
-# From Bradley White (1991-03-04):
-# A recent excerpt from an Australian newspaper...
-# ...Queensland...[has] agreed to end daylight saving
-# at 3am tomorrow (March 3)...
-
-# From John Mackin (1991-03-06):
-# I can certainly confirm for my part that Daylight Saving in NSW did in fact
-# end on Sunday, 3 March.  I don't know at what hour, though.  (It surprised
-# me.)
-
-# From Bradley White (1992-03-08):
-# ...there was recently a referendum in Queensland which resulted
-# in the experimental daylight saving system being abandoned. So, ...
-# ...
-# Rule	QLD	1989	1991	-	Oct	lastSun	2:00	1:00	D
-# Rule	QLD	1990	1992	-	Mar	Sun>=1	3:00	0	S
-# ...
-
-# From Arthur David Olson (1992-03-08):
-# The chosen rules the union of the 1971/1972 change and the 1989-1992 changes.
-
-# From Christopher Hunt (2006-11-21), after an advance warning
-# from Jesper Norgaard Welen (2006-11-01):
-# WA are trialing DST for three years.
-# <http://www.parliament.wa.gov.au/parliament/bills.nsf/9A1B183144403DA54825721200088DF1/$File/Bill175-1B.pdf>
-
-# From Rives McDow (2002-04-09):
-# The most interesting region I have found consists of three towns on the
-# southern coast....  South Australia observes daylight saving time; Western
-# Australia does not.  The two states are one and a half hours apart.  The
-# residents decided to forget about this nonsense of changing the clock so
-# much and set the local time 20 hours and 45 minutes from the
-# international date line, or right in the middle of the time of South
-# Australia and Western Australia....
-#
-# From Paul Eggert (2002-04-09):
-# This is confirmed by the section entitled
-# "What's the deal with time zones???" in
-# <http://www.earthsci.unimelb.edu.au/~awatkins/null.html>.
-#
-# From Alex Livingston (2006-12-07):
-# ... it was just on four years ago that I drove along the Eyre Highway,
-# which passes through eastern Western Australia close to the southern
-# coast of the continent.
-#
-# I paid particular attention to the time kept there. There can be no
-# dispute that UTC+08:45 was considered "the time" from the border
-# village just inside the border with South Australia to as far west
-# as just east of Caiguna. There can also be no dispute that Eucla is
-# the largest population centre in this zone....
-#
-# Now that Western Australia is observing daylight saving, the
-# question arose whether this part of the state would follow suit. I
-# just called the border village and confirmed that indeed they have,
-# meaning that they are now observing UTC+09:45.
-#
-# (2006-12-09):
-# I personally doubt that either experimentation with daylight saving
-# in WA or its introduction in SA had anything to do with the genesis
-# of this time zone.  My hunch is that it's been around since well
-# before 1975.  I remember seeing it noted on road maps decades ago.
-
-# From Paul Eggert (2006-12-15):
-# For lack of better info, assume the tradition dates back to the
-# introduction of standard time in 1895.
-
-
-# southeast Australia
-#
-# From Paul Eggert (2007-07-23):
-# Starting autumn 2008 Victoria, NSW, South Australia, Tasmania and the ACT
-# end DST the first Sunday in April and start DST the first Sunday in October.
-# http://www.theage.com.au/news/national/daylight-savings-to-span-six-months/2007/06/27/1182623966703.html
-
-
-# South Australia
-
-# From Bradley White (1991-03-04):
-# A recent excerpt from an Australian newspaper...
-# ...South Australia...[has] agreed to end daylight saving
-# at 3am tomorrow (March 3)...
-
-# From George Shepherd via Simon Woodhead via Robert Elz (1991-03-06):
-# #   The state of SOUTH AUSTRALIA....[ Courtesy of S.A. Dept of Labour ]
-# #						[ Nov 1990 ]
-# ...
-# Zone	Australia/South		9:30	AS	%sST
-# ...
-# Rule	 AS	1971	max	-	Oct	lastSun	2:00	1:00	D
-# Rule	 AS	1972	1985	-	Mar	Sun>=1	3:00	0	C
-# Rule	 AS	1986	1990	-	Mar	Sun>=15	3:00	0	C
-# Rule	 AS	1991	max	-	Mar	Sun>=1	3:00	0	C
-
-# From Bradley White (1992-03-11):
-# Recent correspondence with a friend in Adelaide
-# contained the following exchange:  "Due to the Adelaide Festival,
-# South Australia delays setting back our clocks for a few weeks."
-
-# From Robert Elz (1992-03-13):
-# I heard that apparently (or at least, it appears that)
-# South Aus will have an extra 3 weeks daylight saving every even
-# numbered year (from 1990).  That's when the Adelaide Festival
-# is on...
-
-# From Robert Elz (1992-03-16, 00:57:07 +1000):
-# DST didn't end in Adelaide today (yesterday)....
-# But whether it's "4th Sunday" or "2nd last Sunday" I have no idea whatever...
-# (it's just as likely to be "the Sunday we pick for this year"...).
-
-# From Bradley White (1994-04-11):
-# If Sun, 15 March, 1992 was at +1030 as kre asserts, but yet Sun, 20 March,
-# 1994 was at +0930 as John Connolly's customer seems to assert, then I can
-# only conclude that the actual rule is more complicated....
-
-# From John Warburton (1994-10-07):
-# The new Daylight Savings dates for South Australia ...
-# was gazetted in the Government Hansard on Sep 26 1994....
-# start on last Sunday in October and end in last sunday in March.
-
-# From Paul Eggert (2007-07-23):
-# See "southeast Australia" above for 2008 and later.
-
-# Tasmania
-
-# The rules for 1967 through 1991 were reported by George Shepherd
-# via Simon Woodhead via Robert Elz (1991-03-06):
-# #  The state of TASMANIA.. [Courtesy Tasmanian Dept of Premier + Cabinet ]
-# #					[ Nov 1990 ]
-
-# From Bill Hart via Guy Harris (1991-10-10):
-# Oh yes, the new daylight savings rules are uniquely tasmanian, we have
-# 6 weeks a year now when we are out of sync with the rest of Australia
-# (but nothing new about that).
-
-# From Alex Livingston (1999-10-04):
-# I heard on the ABC (Australian Broadcasting Corporation) radio news on the
-# (long) weekend that Tasmania, which usually goes its own way in this regard,
-# has decided to join with most of NSW, the ACT, and most of Victoria
-# (Australia) and start daylight saving on the last Sunday in August in 2000
-# instead of the first Sunday in October.
-
-# Sim Alam (2000-07-03) reported a legal citation for the 2000/2001 rules:
-# http://www.thelaw.tas.gov.au/fragview/42++1968+GS3A@EN+2000070300
-
-# From Paul Eggert (2007-07-23):
-# See "southeast Australia" above for 2008 and later.
-
-# Victoria
-
-# The rules for 1971 through 1991 were reported by George Shepherd
-# via Simon Woodhead via Robert Elz (1991-03-06):
-# #   The state of VICTORIA.. [ Courtesy of Vic. Dept of Premier + Cabinet ]
-# #						[ Nov 1990 ]
-
-# From Scott Harrington (2001-08-29):
-# On KQED's "City Arts and Lectures" program last night I heard an
-# interesting story about daylight savings time.  Dr. John Heilbron was
-# discussing his book "The Sun in the Church: Cathedrals as Solar
-# Observatories"[1], and in particular the Shrine of Remembrance[2] located
-# in Melbourne, Australia.
-#
-# Apparently the shrine's main purpose is a beam of sunlight which
-# illuminates a special spot on the floor at the 11th hour of the 11th day
-# of the 11th month (Remembrance Day) every year in memory of Australia's
-# fallen WWI soldiers.  And if you go there on Nov. 11, at 11am local time,
-# you will indeed see the sunbeam illuminate the special spot at the
-# expected time.
-#
-# However, that is only because of some special mirror contraption that had
-# to be employed, since due to daylight savings time, the true solar time of
-# the remembrance moment occurs one hour later (or earlier?).  Perhaps
-# someone with more information on this jury-rig can tell us more.
-#
-# [1] http://www.hup.harvard.edu/catalog/HEISUN.html
-# [2] http://www.shrine.org.au
-
-# From Paul Eggert (2007-07-23):
-# See "southeast Australia" above for 2008 and later.
-
-# New South Wales
-
-# From Arthur David Olson:
-# New South Wales and subjurisdictions have their own ideas of a fun time.
-# Based on law library research by John Mackin,
-# who notes:
-#	In Australia, time is not legislated federally, but rather by the
-#	individual states.  Thus, while such terms as ``Eastern Standard Time''
-#	[I mean, of course, Australian EST, not any other kind] are in common
-#	use, _they have NO REAL MEANING_, as they are not defined in the
-#	legislation.  This is very important to understand.
-#	I have researched New South Wales time only...
-
-# From Eric Ulevik (1999-05-26):
-# DST will start in NSW on the last Sunday of August, rather than the usual
-# October in 2000.  [See: Matthew Moore,
-# <a href="http://www.smh.com.au/news/9905/26/pageone/pageone4.html">
-# Two months more daylight saving
-# </a>
-# Sydney Morning Herald (1999-05-26).]
-
-# From Paul Eggert (1999-09-27):
-# See the following official NSW source:
-# <a href="http://dir.gis.nsw.gov.au/cgi-bin/genobject/document/other/daylightsaving/tigGmZ">
-# Daylight Saving in New South Wales.
-# </a>
-#
-# Narrabri Shire (NSW) council has announced it will ignore the extension of
-# daylight saving next year.  See:
-# <a href="http://abc.net.au/news/regionals/neweng/monthly/regeng-22jul1999-1.htm">
-# Narrabri Council to ignore daylight saving
-# </a> (1999-07-22).  For now, we'll wait to see if this really happens.
-#
-# Victoria will following NSW.  See:
-# <a href="http://abc.net.au/local/news/olympics/1999/07/item19990728112314_1.htm">
-# Vic to extend daylight saving
-# </a> (1999-07-28).
-#
-# However, South Australia rejected the DST request.  See:
-# <a href="http://abc.net.au/news/olympics/1999/07/item19990719151754_1.htm">
-# South Australia rejects Olympics daylight savings request
-# </a> (1999-07-19).
-#
-# Queensland also will not observe DST for the Olympics.  See:
-# <a href="http://abc.net.au/news/olympics/1999/06/item19990601114608_1.htm">
-# Qld says no to daylight savings for Olympics
-# </a> (1999-06-01), which quotes Queensland Premier Peter Beattie as saying
-# ``Look you've got to remember in my family when this came up last time
-# I voted for it, my wife voted against it and she said to me it's all very
-# well for you, you don't have to worry about getting the children out of
-# bed, getting them to school, getting them to sleep at night.
-# I've been through all this argument domestically...my wife rules.''
-#
-# Broken Hill will stick with South Australian time in 2000.  See:
-# <a href="http://abc.net.au/news/regionals/brokenh/monthly/regbrok-21jul1999-6.htm">
-# Broken Hill to be behind the times
-# </a> (1999-07-21).
-
-# IATA SSIM (1998-09) says that the spring 2000 change for Australian
-# Capital Territory, New South Wales except Lord Howe Island and Broken
-# Hill, and Victoria will be August 27, presumably due to the Sydney Olympics.
-
-# From Eric Ulevik, referring to Sydney's Sun Herald (2000-08-13), page 29:
-# The Queensland Premier Peter Beattie is encouraging northern NSW
-# towns to use Queensland time.
-
-# From Paul Eggert (2007-07-23):
-# See "southeast Australia" above for 2008 and later.
-
-# Yancowinna
-
-# From John Mackin (1989-01-04):
-# `Broken Hill' means the County of Yancowinna.
-
-# From George Shepherd via Simon Woodhead via Robert Elz (1991-03-06):
-# # YANCOWINNA..  [ Confirmation courtesy of Broken Hill Postmaster ]
-# #					[ Dec 1990 ]
-# ...
-# # Yancowinna uses Central Standard Time, despite [its] location on the
-# # New South Wales side of the S.A. border. Most business and social dealings
-# # are with CST zones, therefore CST is legislated by local government
-# # although the switch to Summer Time occurs in line with N.S.W. There have
-# # been years when this did not apply, but the historical data is not
-# # presently available.
-# Zone	Australia/Yancowinna	9:30	 AY	%sST
-# ...
-# Rule	 AY	1971	1985	-	Oct	lastSun	2:00	1:00	D
-# Rule	 AY	1972	only	-	Feb	lastSun	3:00	0	C
-# [followed by other Rules]
-
-# Lord Howe Island
-
-# From George Shepherd via Simon Woodhead via Robert Elz (1991-03-06):
-# LHI...		[ Courtesy of Pauline Van Winsen ]
-#					[ Dec 1990 ]
-# Lord Howe Island is located off the New South Wales coast, and is half an
-# hour ahead of NSW time.
-
-# From James Lonergan, Secretary, Lord Howe Island Board (2000-01-27):
-# Lord Howe Island summer time in 2000/2001 will commence on the same
-# date as the rest of NSW (i.e. 2000-08-27).  For your information the
-# Lord Howe Island Board (controlling authority for the Island) is
-# seeking the community's views on various options for summer time
-# arrangements on the Island, e.g. advance clocks by 1 full hour
-# instead of only 30 minutes.  Dependant on the wishes of residents
-# the Board may approach the NSW government to change the existing
-# arrangements.  The starting date for summer time on the Island will
-# however always coincide with the rest of NSW.
-
-# From James Lonergan, Secretary, Lord Howe Island Board (2000-10-25):
-# Lord Howe Island advances clocks by 30 minutes during DST in NSW and retards
-# clocks by 30 minutes when DST finishes. Since DST was most recently
-# introduced in NSW, the "changeover" time on the Island has been 02:00 as
-# shown on clocks on LHI. I guess this means that for 30 minutes at the start
-# of DST, LHI is actually 1 hour ahead of the rest of NSW.
-
-# From Paul Eggert (2006-03-22):
-# For Lord Howe dates we use Shanks & Pottenger through 1989, and
-# Lonergan thereafter.  For times we use Lonergan.
-
-# From Paul Eggert (2007-07-23):
-# See "southeast Australia" above for 2008 and later.
-
-###############################################################################
-
-# New Zealand
-
-# From Mark Davies (1990-10-03):
-# the 1989/90 year was a trial of an extended "daylight saving" period.
-# This trial was deemed successful and the extended period adopted for
-# subsequent years (with the addition of a further week at the start).
-# source -- phone call to Ministry of Internal Affairs Head Office.
-
-# From George Shepherd via Simon Woodhead via Robert Elz (1991-03-06):
-# # The Country of New Zealand   (Australia's east island -) Gee they hate that!
-# #				   or is Australia the west island of N.Z.
-# #	[ courtesy of Geoff Tribble.. Auckland N.Z. ]
-# #				[ Nov 1990 ]
-# ...
-# Rule	NZ      1974    1988	-	Oct	lastSun	2:00	1:00	D
-# Rule	NZ	1989	max	-	Oct	Sun>=1	2:00	1:00	D
-# Rule	NZ      1975    1989	-	Mar	Sun>=1	3:00	0	S
-# Rule	NZ	1990	max	-	Mar	lastSun	3:00	0	S
-# ...
-# Zone	NZ			12:00	NZ		NZ%sT	# New Zealand
-# Zone	NZ-CHAT			12:45	-		NZ-CHAT # Chatham Island
-
-# From Arthur David Olson (1992-03-08):
-# The chosen rules use the Davies October 8 values for the start of DST in 1989
-# rather than the October 1 value.
-
-# From Paul Eggert (1995-12-19);
-# Shank & Pottenger report 2:00 for all autumn changes in Australia and NZ.
-# Robert Uzgalis writes that the New Zealand Daylight
-# Savings Time Order in Council dated 1990-06-18 specifies 2:00 standard
-# time on both the first Sunday in October and the third Sunday in March.
-# As with Australia, we'll assume the tradition is 2:00s, not 2:00.
-#
-# From Paul Eggert (2006-03-22):
-# The Department of Internal Affairs (DIA) maintains a brief history,
-# as does Carol Squires; see tz-link.htm for the full references.
-# Use these sources in preference to Shanks & Pottenger.
-#
-# For Chatham, IATA SSIM (1991/1999) gives the NZ rules but with
-# transitions at 2:45 local standard time; this confirms that Chatham
-# is always exactly 45 minutes ahead of Auckland.
-
-# From Colin Sharples (2007-04-30):
-# DST will now start on the last Sunday in September, and end on the
-# first Sunday in April.  The changes take effect this year, meaning
-# that DST will begin on 2007-09-30 2008-04-06.
-# http://www.dia.govt.nz/diawebsite.nsf/wpg_URL/Services-Daylight-Saving-Daylight-saving-to-be-extended
-
-###############################################################################
-
-
-# Fiji
-
-# Howse writes (p 153) that in 1879 the British governor of Fiji
-# enacted an ordinance standardizing the islands on Antipodean Time
-# instead of the American system (which was one day behind).
-
-# From Rives McDow (1998-10-08):
-# Fiji will introduce DST effective 0200 local time, 1998-11-01
-# until 0300 local time 1999-02-28.  Each year the DST period will
-# be from the first Sunday in November until the last Sunday in February.
-
-# From Paul Eggert (2000-01-08):
-# IATA SSIM (1999-09) says DST ends 0100 local time.  Go with McDow.
-
-# From the BBC World Service (1998-10-31 11:32 UTC):
-# The Fijiian government says the main reasons for the time change is to
-# improve productivity and reduce road accidents.  But correspondents say it
-# also hopes the move will boost Fiji's ability to compete with other pacific
-# islands in the effort to attract tourists to witness the dawning of the new
-# millenium.
-
-# http://www.fiji.gov.fj/press/2000_09/2000_09_13-05.shtml (2000-09-13)
-# reports that Fiji has discontinued DST.
-
-# Johnston
-
-# Johnston data is from usno1995.
-
-
-# Kiribati
-
-# From Paul Eggert (1996-01-22):
-# Today's _Wall Street Journal_ (page 1) reports that Kiribati
-# ``declared it the same day throught the country as of Jan. 1, 1995''
-# as part of the competition to be first into the 21st century.
-
-
-# Kwajalein
-
-# In comp.risks 14.87 (26 August 1993), Peter Neumann writes:
-# I wonder what happened in Kwajalein, where there was NO Friday,
-# 1993-08-20.  Thursday night at midnight Kwajalein switched sides with
-# respect to the International Date Line, to rejoin its fellow islands,
-# going from 11:59 p.m. Thursday to 12:00 m. Saturday in a blink.
-
-
-# N Mariana Is, Guam
-
-# Howse writes (p 153) ``The Spaniards, on the other hand, reached the
-# Philippines and the Ladrones from America,'' and implies that the Ladrones
-# (now called the Marianas) kept American date for quite some time.
-# For now, we assume the Ladrones switched at the same time as the Philippines;
-# see Asia/Manila.
-
-# US Public Law 106-564 (2000-12-23) made UTC+10 the official standard time,
-# under the name "Chamorro Standard Time".  There is no official abbreviation,
-# but Congressman Robert A. Underwood, author of the bill that became law,
-# wrote in a press release (2000-12-27) that he will seek the use of "ChST".
-
-
-# Micronesia
-
-# Alan Eugene Davis writes (1996-03-16),
-# ``I am certain, having lived there for the past decade, that "Truk"
-# (now properly known as Chuuk) ... is in the time zone GMT+10.''
-#
-# Shanks & Pottenger write that Truk switched from UTC+10 to UTC+11
-# on 1978-10-01; ignore this for now.
-
-# From Paul Eggert (1999-10-29):
-# The Federated States of Micronesia Visitors Board writes in
-# <a href="http://www.fsmgov.org/info/clocks.html">
-# The Federated States of Micronesia - Visitor Information
-# </a> (1999-01-26)
-# that Truk and Yap are UTC+10, and Ponape and Kosrae are UTC+11.
-# We don't know when Kosrae switched from UTC+12; assume January 1 for now.
-
-
-# Midway
-
-# From Charles T O'Connor, KMTH DJ (1956),
-# quoted in the KTMH section of the Radio Heritage Collection
-# <http://radiodx.com/spdxr/KMTH.htm> (2002-12-31):
-# For the past two months we've been on what is known as Daylight
-# Saving Time.  This time has put us on air at 5am in the morning,
-# your time down there in New Zealand.  Starting September 2, 1956
-# we'll again go back to Standard Time.  This'll mean that we'll go to
-# air at 6am your time.
-#
-# From Paul Eggert (2003-03-23):
-# We don't know the date of that quote, but we'll guess they
-# started DST on June 3.  Possibly DST was observed other years
-# in Midway, but we have no record of it.
-
-
-# Pitcairn
-
-# From Rives McDow (1999-11-08):
-# A Proclamation was signed by the Governor of Pitcairn on the 27th March 1998
-# with regard to Pitcairn Standard Time.  The Proclamation is as follows.
-#
-#	The local time for general purposes in the Islands shall be
-#	Co-ordinated Universal time minus 8 hours and shall be known
-#	as Pitcairn Standard Time.
-#
-# ... I have also seen Pitcairn listed as UTC minus 9 hours in several
-# references, and can only assume that this was an error in interpretation
-# somehow in light of this proclamation.
-
-# From Rives McDow (1999-11-09):
-# The Proclamation regarding Pitcairn time came into effect on 27 April 1998
-# ... at midnight.
-
-# From Howie Phelps (1999-11-10), who talked to a Pitcairner via shortwave:
-# Betty Christian told me yesterday that their local time is the same as
-# Pacific Standard Time. They used to be 1/2 hour different from us here in
-# Sacramento but it was changed a couple of years ago.
-
-
-# Samoa
-
-# Howse writes (p 153, citing p 10 of the 1883-11-18 New York Herald)
-# that in 1879 the King of Samoa decided to change
-# ``the date in his kingdom from the Antipodean to the American system,
-# ordaining -- by a masterpiece of diplomatic flattery -- that
-# the Fourth of July should be celebrated twice in that year.''
-
-
-# Tonga
-
-# From Paul Eggert (1996-01-22):
-# Today's _Wall Street Journal_ (p 1) reports that ``Tonga has been plotting
-# to sneak ahead of [New Zealanders] by introducing daylight-saving time.''
-# Since Kiribati has moved the Date Line it's not clear what Tonga will do.
-
-# Don Mundell writes in the 1997-02-20 Tonga Chronicle
-# <a href="http://www.tongatapu.net.to/tonga/homeland/timebegins.htm">
-# How Tonga became `The Land where Time Begins'
-# </a>:
-
-# Until 1941 Tonga maintained a standard time 50 minutes ahead of NZST
-# 12 hours and 20 minutes ahead of GMT.  When New Zealand adjusted its
-# standard time in 1940s, Tonga had the choice of subtracting from its
-# local time to come on the same standard time as New Zealand or of
-# advancing its time to maintain the differential of 13 degrees
-# (approximately 50 minutes ahead of New Zealand time).
-#
-# Because His Majesty King Taufa'ahau Tupou IV, then Crown Prince
-# Tungi, preferred to ensure Tonga's title as the land where time
-# begins, the Legislative Assembly approved the latter change.
-#
-# But some of the older, more conservative members from the outer
-# islands objected. "If at midnight on Dec. 31, we move ahead 40
-# minutes, as your Royal Highness wishes, what becomes of the 40
-# minutes we have lost?"
-#
-# The Crown Prince, presented an unanswerable argument: "Remember that
-# on the World Day of Prayer, you would be the first people on Earth
-# to say your prayers in the morning."
-
-# From Paul Eggert (2006-03-22):
-# Shanks & Pottenger say the transition was on 1968-10-01; go with Mundell.
-
-# From Eric Ulevik (1999-05-03):
-# Tonga's director of tourism, who is also secretary of the National Millenium
-# Committee, has a plan to get Tonga back in front.
-# He has proposed a one-off move to tropical daylight saving for Tonga from
-# October to March, which has won approval in principle from the Tongan
-# Government.
-
-# From Steffen Thorsen (1999-09-09):
-# * Tonga will introduce DST in November
-#
-# I was given this link by John Letts:
-# <a hef="http://news.bbc.co.uk/hi/english/world/asia-pacific/newsid_424000/424764.stm">
-# http://news.bbc.co.uk/hi/english/world/asia-pacific/newsid_424000/424764.stm
-# </a>
-#
-# I have not been able to find exact dates for the transition in November
-# yet. By reading this article it seems like Fiji will be 14 hours ahead
-# of UTC as well, but as far as I know Fiji will only be 13 hours ahead
-# (12 + 1 hour DST).
-
-# From Arthur David Olson (1999-09-20):
-# According to <a href="http://www.tongaonline.com/news/sept1799.html>
-# http://www.tongaonline.com/news/sept1799.html
-# </a>:
-# "Daylight Savings Time will take effect on Oct. 2 through April 15, 2000
-# and annually thereafter from the first Saturday in October through the
-# third Saturday of April.  Under the system approved by Privy Council on
-# Sept. 10, clocks must be turned ahead one hour on the opening day and
-# set back an hour on the closing date."
-# Alas, no indication of the time of day.
-
-# From Rives McDow (1999-10-06):
-# Tonga started its Daylight Saving on Saturday morning October 2nd at 0200am.
-# Daylight Saving ends on April 16 at 0300am which is Sunday morning.
-
-# From Steffen Thorsen (2000-10-31):
-# Back in March I found a notice on the website http://www.tongaonline.com
-# that Tonga changed back to standard time one month early, on March 19
-# instead of the original reported date April 16. Unfortunately, the article
-# is no longer available on the site, and I did not make a copy of the
-# text, and I have forgotten to report it here.
-# (Original URL was: http://www.tongaonline.com/news/march162000.htm )
-
-# From Rives McDow (2000-12-01):
-# Tonga is observing DST as of 2000-11-04 and will stop on 2001-01-27.
-
-# From Sione Moala-Mafi (2001-09-20) via Rives McDow:
-# At 2:00am on the first Sunday of November, the standard time in the Kingdom
-# shall be moved forward by one hour to 3:00am.  At 2:00am on the last Sunday
-# of January the standard time in the Kingdom shall be moved backward by one
-# hour to 1:00am.
-
-# From Pulu 'Anau (2002-11-05):
-# The law was for 3 years, supposedly to get renewed.  It wasn't.
-
-
-# Wake
-
-# From Vernice Anderson, Personal Secretary to Philip Jessup,
-# US Ambassador At Large (oral history interview, 1971-02-02):
-#
-# Saturday, the 14th [of October, 1950] -- ...  The time was all the
-# more confusing at that point, because we had crossed the
-# International Date Line, thus getting two Sundays.  Furthermore, we
-# discovered that Wake Island had two hours of daylight saving time
-# making calculation of time in Washington difficult if not almost
-# impossible.
-#
-# http://www.trumanlibrary.org/wake/meeting.htm
-
-# From Paul Eggert (2003-03-23):
-# We have no other report of DST in Wake Island, so omit this info for now.
-
-###############################################################################
-
-# The International Date Line
-
-# From Gwillim Law (2000-01-03):
-#
-# The International Date Line is not defined by any international standard,
-# convention, or treaty.  Mapmakers are free to draw it as they please.
-# Reputable mapmakers will simply ensure that every point of land appears on
-# the correct side of the IDL, according to the date legally observed there.
-#
-# When Kiribati adopted a uniform date in 1995, thereby moving the Phoenix and
-# Line Islands to the west side of the IDL (or, if you prefer, moving the IDL
-# to the east side of the Phoenix and Line Islands), I suppose that most
-# mapmakers redrew the IDL following the boundary of Kiribati.  Even that line
-# has a rather arbitrary nature.  The straight-line boundaries between Pacific
-# island nations that are shown on many maps are based on an international
-# convention, but are not legally binding national borders.... The date is
-# governed by the IDL; therefore, even on the high seas, there may be some
-# places as late as fourteen hours later than UTC.  And, since the IDL is not
-# an international standard, there are some places on the high seas where the
-# correct date is ambiguous.
-
-# From Wikipedia <http://en.wikipedia.org/wiki/Time_zone> (2005-08-31):
-# Before 1920, all ships kept local apparent time on the high seas by setting
-# their clocks at night or at the morning sight so that, given the ship's
-# speed and direction, it would be 12 o'clock when the Sun crossed the ship's
-# meridian (12 o'clock = local apparent noon).  During 1917, at the
-# Anglo-French Conference on Time-keeping at Sea, it was recommended that all
-# ships, both military and civilian, should adopt hourly standard time zones
-# on the high seas.  Whenever a ship was within the territorial waters of any
-# nation it would use that nation's standard time.  The captain was permitted
-# to change his ship's clocks at a time of his choice following his ship's
-# entry into another zone time--he often chose midnight.  These zones were
-# adopted by all major fleets between 1920 and 1925 but not by many
-# independent merchant ships until World War II.
-
-# From Paul Eggert, using references suggested by Oscar van Vlijmen
-# (2005-03-20):
-#
-# The American Practical Navigator (2002)
-# <http://pollux.nss.nima.mil/pubs/pubs_j_apn_sections.html?rid=187>
-# talks only about the 180-degree meridian with respect to ships in
-# international waters; it ignores the international date line.
diff --git a/libkcal/libical/tzdata/backward b/libkcal/libical/tzdata/backward
deleted file mode 100644
index a65991c2..00000000
--- a/libkcal/libical/tzdata/backward
+++ /dev/null
@@ -1,112 +0,0 @@
-# @(#)backward	8.6
-
-# This file provides links between current names for time zones
-# and their old names.  Many names changed in late 1993.
-
-Link	Africa/Asmara		Africa/Asmera
-Link	Africa/Bamako		Africa/Timbuktu
-Link	America/Argentina/Catamarca	America/Argentina/ComodRivadavia
-Link	America/Adak		America/Atka
-Link	America/Argentina/Buenos_Aires	America/Buenos_Aires
-Link	America/Argentina/Catamarca	America/Catamarca
-Link	America/Atikokan	America/Coral_Harbour
-Link	America/Argentina/Cordoba	America/Cordoba
-Link	America/Tijuana		America/Ensenada
-Link	America/Indiana/Indianapolis	America/Fort_Wayne
-Link	America/Indiana/Indianapolis	America/Indianapolis
-Link	America/Argentina/Jujuy	America/Jujuy
-Link	America/Indiana/Knox	America/Knox_IN
-Link	America/Kentucky/Louisville	America/Louisville
-Link	America/Argentina/Mendoza	America/Mendoza
-Link	America/Rio_Branco	America/Porto_Acre
-Link	America/Argentina/Cordoba	America/Rosario
-Link	America/St_Thomas	America/Virgin
-Link	Asia/Ashgabat		Asia/Ashkhabad
-Link	Asia/Chongqing		Asia/Chungking
-Link	Asia/Dhaka		Asia/Dacca
-Link	Asia/Kolkata		Asia/Calcutta
-Link	Asia/Macau		Asia/Macao
-Link	Asia/Jerusalem		Asia/Tel_Aviv
-Link	Asia/Ho_Chi_Minh	Asia/Saigon
-Link	Asia/Thimphu		Asia/Thimbu
-Link	Asia/Makassar		Asia/Ujung_Pandang
-Link	Asia/Ulaanbaatar	Asia/Ulan_Bator
-Link	Atlantic/Faroe		Atlantic/Faeroe
-Link	Europe/Oslo		Atlantic/Jan_Mayen
-Link	Australia/Sydney	Australia/ACT
-Link	Australia/Sydney	Australia/Canberra
-Link	Australia/Lord_Howe	Australia/LHI
-Link	Australia/Sydney	Australia/NSW
-Link	Australia/Darwin	Australia/North
-Link	Australia/Brisbane	Australia/Queensland
-Link	Australia/Adelaide	Australia/South
-Link	Australia/Hobart	Australia/Tasmania
-Link	Australia/Melbourne	Australia/Victoria
-Link	Australia/Perth		Australia/West
-Link	Australia/Broken_Hill	Australia/Yancowinna
-Link	America/Rio_Branco	Brazil/Acre
-Link	America/Noronha		Brazil/DeNoronha
-Link	America/Sao_Paulo	Brazil/East
-Link	America/Manaus		Brazil/West
-Link	America/Halifax		Canada/Atlantic
-Link	America/Winnipeg	Canada/Central
-Link	America/Regina		Canada/East-Saskatchewan
-Link	America/Toronto		Canada/Eastern
-Link	America/Edmonton	Canada/Mountain
-Link	America/St_Johns	Canada/Newfoundland
-Link	America/Vancouver	Canada/Pacific
-Link	America/Regina		Canada/Saskatchewan
-Link	America/Whitehorse	Canada/Yukon
-Link	America/Santiago	Chile/Continental
-Link	Pacific/Easter		Chile/EasterIsland
-Link	America/Havana		Cuba
-Link	Africa/Cairo		Egypt
-Link	Europe/Dublin		Eire
-Link	Europe/London		Europe/Belfast
-Link	Europe/Chisinau		Europe/Tiraspol
-Link	Europe/London		GB
-Link	Europe/London		GB-Eire
-Link	Etc/GMT			GMT+0
-Link	Etc/GMT			GMT-0
-Link	Etc/GMT			GMT0
-Link	Etc/GMT			Greenwich
-Link	Asia/Hong_Kong		Hongkong
-Link	Atlantic/Reykjavik	Iceland
-Link	Asia/Tehran		Iran
-Link	Asia/Jerusalem		Israel
-Link	America/Jamaica		Jamaica
-Link	Asia/Tokyo		Japan
-Link	Pacific/Kwajalein	Kwajalein
-Link	Africa/Tripoli		Libya
-Link	America/Tijuana		Mexico/BajaNorte
-Link	America/Mazatlan	Mexico/BajaSur
-Link	America/Mexico_City	Mexico/General
-Link	Pacific/Auckland	NZ
-Link	Pacific/Chatham		NZ-CHAT
-Link	America/Denver		Navajo
-Link	Asia/Shanghai		PRC
-Link	Pacific/Pago_Pago	Pacific/Samoa
-Link	Pacific/Truk		Pacific/Yap
-Link	Europe/Warsaw		Poland
-Link	Europe/Lisbon		Portugal
-Link	Asia/Taipei		ROC
-Link	Asia/Seoul		ROK
-Link	Asia/Singapore		Singapore
-Link	Europe/Istanbul		Turkey
-Link	Etc/UCT			UCT
-Link	America/Anchorage	US/Alaska
-Link	America/Adak		US/Aleutian
-Link	America/Phoenix		US/Arizona
-Link	America/Chicago		US/Central
-Link	America/Indiana/Indianapolis	US/East-Indiana
-Link	America/New_York	US/Eastern
-Link	Pacific/Honolulu	US/Hawaii
-Link	America/Indiana/Knox	US/Indiana-Starke
-Link	America/Detroit		US/Michigan
-Link	America/Denver		US/Mountain
-Link	America/Los_Angeles	US/Pacific
-Link	Pacific/Pago_Pago	US/Samoa
-Link	Etc/UTC			UTC
-Link	Etc/UTC			Universal
-Link	Europe/Moscow		W-SU
-Link	Etc/UTC			Zulu
diff --git a/libkcal/libical/tzdata/etcetera b/libkcal/libical/tzdata/etcetera
deleted file mode 100644
index cddbe8a2..00000000
--- a/libkcal/libical/tzdata/etcetera
+++ /dev/null
@@ -1,80 +0,0 @@
-# @(#)etcetera	8.1
-
-# These entries are mostly present for historical reasons, so that
-# people in areas not otherwise covered by the tz files could "zic -l"
-# to a time zone that was right for their area.  These days, the
-# tz files cover almost all the inhabited world, and the only practical
-# need now for the entries that are not on UTC are for ships at sea
-# that cannot use POSIX TZ settings.
-
-Zone	Etc/GMT		0	-	GMT
-Zone	Etc/UTC		0	-	UTC
-Zone	Etc/UCT		0	-	UCT
-
-# The following link uses older naming conventions,
-# but it belongs here, not in the file `backward',
-# as functions like gmtime load the "GMT" file to handle leap seconds properly.
-# We want this to work even on installations that omit the other older names.
-Link	Etc/GMT				GMT
-
-Link	Etc/UTC				Etc/Universal
-Link	Etc/UTC				Etc/Zulu
-
-Link	Etc/GMT				Etc/Greenwich
-Link	Etc/GMT				Etc/GMT-0
-Link	Etc/GMT				Etc/GMT+0
-Link	Etc/GMT				Etc/GMT0
-
-# We use POSIX-style signs in the Zone names and the output abbreviations,
-# even though this is the opposite of what many people expect.
-# POSIX has positive signs west of Greenwich, but many people expect
-# positive signs east of Greenwich.  For example, TZ='Etc/GMT+4' uses
-# the abbreviation "GMT+4" and corresponds to 4 hours behind UTC
-# (i.e. west of Greenwich) even though many people would expect it to
-# mean 4 hours ahead of UTC (i.e. east of Greenwich).
-#
-# In the draft 5 of POSIX 1003.1-200x, the angle bracket notation
-# (which is not yet supported by the tz code) allows for
-# TZ='<GMT-4>+4'; if you want time zone abbreviations conforming to
-# ISO 8601 you can use TZ='<-0400>+4'.  Thus the commonly-expected
-# offset is kept within the angle bracket (and is used for display)
-# while the POSIX sign is kept outside the angle bracket (and is used
-# for calculation).
-#
-# Do not use a TZ setting like TZ='GMT+4', which is four hours behind
-# GMT but uses the completely misleading abbreviation "GMT".
-
-# Earlier incarnations of this package were not POSIX-compliant,
-# and had lines such as
-#		Zone	GMT-12		-12	-	GMT-1200
-# We did not want things to change quietly if someone accustomed to the old
-# way does a
-#		zic -l GMT-12
-# so we moved the names into the Etc subdirectory.
-
-Zone	Etc/GMT-14	14	-	GMT-14	# 14 hours ahead of GMT
-Zone	Etc/GMT-13	13	-	GMT-13
-Zone	Etc/GMT-12	12	-	GMT-12
-Zone	Etc/GMT-11	11	-	GMT-11
-Zone	Etc/GMT-10	10	-	GMT-10
-Zone	Etc/GMT-9	9	-	GMT-9
-Zone	Etc/GMT-8	8	-	GMT-8
-Zone	Etc/GMT-7	7	-	GMT-7
-Zone	Etc/GMT-6	6	-	GMT-6
-Zone	Etc/GMT-5	5	-	GMT-5
-Zone	Etc/GMT-4	4	-	GMT-4
-Zone	Etc/GMT-3	3	-	GMT-3
-Zone	Etc/GMT-2	2	-	GMT-2
-Zone	Etc/GMT-1	1	-	GMT-1
-Zone	Etc/GMT+1	-1	-	GMT+1
-Zone	Etc/GMT+2	-2	-	GMT+2
-Zone	Etc/GMT+3	-3	-	GMT+3
-Zone	Etc/GMT+4	-4	-	GMT+4
-Zone	Etc/GMT+5	-5	-	GMT+5
-Zone	Etc/GMT+6	-6	-	GMT+6
-Zone	Etc/GMT+7	-7	-	GMT+7
-Zone	Etc/GMT+8	-8	-	GMT+8
-Zone	Etc/GMT+9	-9	-	GMT+9
-Zone	Etc/GMT+10	-10	-	GMT+10
-Zone	Etc/GMT+11	-11	-	GMT+11
-Zone	Etc/GMT+12	-12	-	GMT+12
diff --git a/libkcal/libical/tzdata/europe b/libkcal/libical/tzdata/europe
deleted file mode 100644
index 73eed00f..00000000
--- a/libkcal/libical/tzdata/europe
+++ /dev/null
@@ -1,2525 +0,0 @@
-# @(#)europe	8.12
-# <pre>
-
-# This data is by no means authoritative; if you think you know better,
-# go ahead and edit the file (and please send any changes to
-# tz@elsie.nci.nih.gov for general use in the future).
-
-# From Paul Eggert (2006-03-22):
-# A good source for time zone historical data outside the U.S. is
-# Thomas G. Shanks and Rique Pottenger, The International Atlas (6th edition),
-# San Diego: ACS Publications, Inc. (2003).
-#
-# Gwillim Law writes that a good source
-# for recent time zone data is the International Air Transport
-# Association's Standard Schedules Information Manual (IATA SSIM),
-# published semiannually.  Law sent in several helpful summaries
-# of the IATA's data after 1990.
-#
-# Except where otherwise noted, Shanks & Pottenger is the source for
-# entries through 1991, and IATA SSIM is the source for entries afterwards.
-#
-# Other sources occasionally used include:
-#
-#	Edward W. Whitman, World Time Differences,
-#	Whitman Publishing Co, 2 Niagara Av, Ealing, London (undated),
-#	which I found in the UCLA library.
-#
-#	<a href="http://www.pettswoodvillage.co.uk/Daylight_Savings_William_Willett.pdf">
-#	William Willett, The Waste of Daylight, 19th edition
-#	</a> (1914-03)
-#
-#	Brazil's Departamento Servico da Hora (DSH),
-#	<a href="http://pcdsh01.on.br/HISTHV.htm">
-#	History of Summer Time
-#	</a> (1998-09-21, in Portuguese)
-
-#
-# I invented the abbreviations marked `*' in the following table;
-# the rest are from earlier versions of this file, or from other sources.
-# Corrections are welcome!
-#                   std dst  2dst
-#                   LMT           Local Mean Time
-#       -4:00       AST ADT       Atlantic
-#       -3:00       WGT WGST      Western Greenland*
-#       -1:00       EGT EGST      Eastern Greenland*
-#        0:00       GMT BST  BDST Greenwich, British Summer
-#        0:00       GMT IST       Greenwich, Irish Summer
-#        0:00       WET WEST WEMT Western Europe
-#        0:19:32.13 AMT NST       Amsterdam, Netherlands Summer (1835-1937)*
-#        0:20       NET NEST      Netherlands (1937-1940)*
-#        1:00       CET CEST CEMT Central Europe
-#        1:00:14    SET           Swedish (1879-1899)*
-#        2:00       EET EEST      Eastern Europe
-#        3:00       MSK MSD       Moscow
-#
-# A reliable and entertaining source about time zones, especially in Britain,
-# Derek Howse, Greenwich time and longitude, Philip Wilson Publishers (1997).
-
-# From Peter Ilieve (1994-12-04),
-# The original six [EU members]: Belgium, France, (West) Germany, Italy,
-# Luxembourg, the Netherlands.
-# Plus, from 1 Jan 73: Denmark, Ireland, United Kingdom.
-# Plus, from 1 Jan 81: Greece.
-# Plus, from 1 Jan 86: Spain, Portugal.
-# Plus, from 1 Jan 95: Austria, Finland, Sweden. (Norway negotiated terms for
-# entry but in a referendum on 28 Nov 94 the people voted No by 52.2% to 47.8%
-# on a turnout of 88.6%. This was almost the same result as Norway's previous
-# referendum in 1972, they are the only country to have said No twice.
-# Referendums in the other three countries voted Yes.)
-# ...
-# Estonia ... uses EU dates but not at 01:00 GMT, they use midnight GMT.
-# I don't think they know yet what they will do from 1996 onwards.
-# ...
-# There shouldn't be any [current members who are not using EU rules].
-# A Directive has the force of law, member states are obliged to enact
-# national law to implement it. The only contentious issue was the
-# different end date for the UK and Ireland, and this was always allowed
-# in the Directive.
-
-
-###############################################################################
-
-# Britain (United Kingdom) and Ireland (Eire)
-
-# From Peter Ilieve (1994-07-06):
-#
-# On 17 Jan 1994 the Independent, a UK quality newspaper, had a piece about
-# historical vistas along the Thames in west London. There was a photo
-# and a sketch map showing some of the sightlines involved. One paragraph
-# of the text said:
-#
-# `An old stone obelisk marking a forgotten terrestrial meridian stands
-# beside the river at Kew. In the 18th century, before time and longitude
-# was standardised by the Royal Observatory in Greenwich, scholars observed
-# this stone and the movement of stars from Kew Observatory nearby. They
-# made their calculations and set the time for the Horse Guards and Parliament,
-# but now the stone is obscured by scrubwood and can only be seen by walking
-# along the towpath within a few yards of it.'
-#
-# I have a one inch to one mile map of London and my estimate of the stone's
-# position is 51 deg. 28' 30" N, 0 deg. 18' 45" W. The longitude should
-# be within about +-2". The Ordnance Survey grid reference is TQ172761.
-#
-# [This yields GMTOFF = -0:01:15 for London LMT in the 18th century.]
-
-# From Paul Eggert (1993-11-18):
-#
-# Howse writes that Britain was the first country to use standard time.
-# The railways cared most about the inconsistencies of local mean time,
-# and it was they who forced a uniform time on the country.
-# The original idea was credited to Dr. William Hyde Wollaston (1766-1828)
-# and was popularized by Abraham Follett Osler (1808-1903).
-# The first railway to adopt London time was the Great Western Railway
-# in November 1840; other railways followed suit, and by 1847 most
-# (though not all) railways used London time.  On 1847-09-22 the
-# Railway Clearing House, an industry standards body, recommended that GMT be
-# adopted at all stations as soon as the General Post Office permitted it.
-# The transition occurred on 12-01 for the L&NW, the Caledonian,
-# and presumably other railways; the January 1848 Bradshaw's lists many
-# railways as using GMT.  By 1855 the vast majority of public
-# clocks in Britain were set to GMT (though some, like the great clock
-# on Tom Tower at Christ Church, Oxford, were fitted with two minute hands,
-# one for local time and one for GMT).  The last major holdout was the legal
-# system, which stubbornly stuck to local time for many years, leading
-# to oddities like polls opening at 08:13 and closing at 16:13.
-# The legal system finally switched to GMT when the Statutes (Definition
-# of Time) Act took effect; it received the Royal Assent on 1880-08-02.
-#
-# In the tables below, we condense this complicated story into a single
-# transition date for London, namely 1847-12-01.  We don't know as much
-# about Dublin, so we use 1880-08-02, the legal transition time.
-
-# From Paul Eggert (2003-09-27):
-# Summer Time was first seriously proposed by William Willett (1857-1915),
-# a London builder and member of the Royal Astronomical Society
-# who circulated a pamphlet ``The Waste of Daylight'' (1907)
-# that proposed advancing clocks 20 minutes on each of four Sundays in April,
-# and retarding them by the same amount on four Sundays in September.
-# A bill was drafted in 1909 and introduced in Parliament several times,
-# but it met with ridicule and opposition, especially from farming interests.
-# Later editions of the pamphlet proposed one-hour summer time, and
-# it was eventually adopted as a wartime measure in 1916.
-# See: Summer Time Arrives Early, The Times (2000-05-18).
-# A monument to Willett was unveiled on 1927-05-21, in an open space in
-# a 45-acre wood near Chislehurst, Kent that was purchased by popular
-# subscription and open to the public.  On the south face of the monolith,
-# designed by G. W. Miller, is the the William Willett Memorial Sundial,
-# which is permanently set to Summer Time.
-
-# From Winston Churchill (1934-04-28):
-# It is one of the paradoxes of history that we should owe the boon of
-# summer time, which gives every year to the people of this country
-# between 160 and 170 hours more daylight leisure, to a war which
-# plunged Europe into darkness for four years, and shook the
-# foundations of civilization throughout the world.
-#	-- <a href="http://www.winstonchurchill.org/fh114willett.htm">
-#	"A Silent Toast to William Willett", Pictorial Weekly
-#	</a>
-
-# From Paul Eggert (1996-09-03):
-# The OED Supplement says that the English originally said ``Daylight Saving''
-# when they were debating the adoption of DST in 1908; but by 1916 this
-# term appears only in quotes taken from DST's opponents, whereas the
-# proponents (who eventually won the argument) are quoted as using ``Summer''.
-
-# From Arthur David Olson (1989-01-19):
-#
-# A source at the British Information Office in New York avers that it's
-# known as "British" Summer Time in all parts of the United Kingdom.
-
-# Date: 4 Jan 89 08:57:25 GMT (Wed)
-# From: Jonathan Leffler
-# [British Summer Time] is fixed annually by Act of Parliament.
-# If you can predict what Parliament will do, you should be in
-# politics making a fortune, not computing.
-
-# From Chris Carrier (1996-06-14):
-# I remember reading in various wartime issues of the London Times the
-# acronym BDST for British Double Summer Time.  Look for the published
-# time of sunrise and sunset in The Times, when BDST was in effect, and
-# if you find a zone reference it will say, "All times B.D.S.T."
-
-# From Joseph S. Myers (1999-09-02):
-# ... some military cables (WO 219/4100 - this is a copy from the
-# main SHAEF archives held in the US National Archives, SHAEF/5252/8/516)
-# agree that the usage is BDST (this appears in a message dated 17 Feb 1945).
-
-# From Joseph S. Myers (2000-10-03):
-# On 18th April 1941, Sir Stephen Tallents of the BBC wrote to Sir
-# Alexander Maxwell of the Home Office asking whether there was any
-# official designation; the reply of the 21st was that there wasn't
-# but he couldn't think of anything better than the "Double British
-# Summer Time" that the BBC had been using informally.
-# http://student.cusu.cam.ac.uk/~jsm28/british-time/bbc-19410418.png
-# http://student.cusu.cam.ac.uk/~jsm28/british-time/ho-19410421.png
-
-# From Sir Alexander Maxwell in the above-mentioned letter (1941-04-21):
-# [N]o official designation has as far as I know been adopted for the time
-# which is to be introduced in May....
-# I cannot think of anything better than "Double British Summer Time"
-# which could not be said to run counter to any official description.
-
-# From Paul Eggert (2000-10-02):
-# Howse writes (p 157) `DBST' too, but `BDST' seems to have been common
-# and follows the more usual convention of putting the location name first,
-# so we use `BDST'.
-
-# Peter Ilieve (1998-04-19) described at length
-# the history of summer time legislation in the United Kingdom.
-# Since 1998 Joseph S. Myers has been updating
-# and extending this list, which can be found in
-# <a href="http://student.cusu.cam.ac.uk/~jsm28/british-time/">
-# History of legal time in Britain
-# </a>
-
-# From Joseph S. Myers (1998-01-06):
-#
-# The legal time in the UK outside of summer time is definitely GMT, not UTC;
-# see Lord Tanlaw's speech
-# <a href="http://www.parliament.the-stationery-office.co.uk/pa/ld199697/ldhansrd/pdvn/lds97/text/70611-20.htm#70611-20_head0">
-# (Lords Hansard 11 June 1997 columns 964 to 976)
-# </a>.
-
-# From Paul Eggert (2006-03-22):
-#
-# For lack of other data, follow Shanks & Pottenger for Eire in 1940-1948.
-#
-# Given Ilieve and Myers's data, the following claims by Shanks & Pottenger
-# are incorrect:
-#     * Wales did not switch from GMT to daylight saving time until
-#	1921 Apr 3, when they began to conform with the rest of Great Britain.
-# Actually, Wales was identical after 1880.
-#     * Eire had two transitions on 1916 Oct 1.
-# It actually just had one transition.
-#     * Northern Ireland used single daylight saving time throughout WW II.
-# Actually, it conformed to Britain.
-#     * GB-Eire changed standard time to 1 hour ahead of GMT on 1968-02-18.
-# Actually, that date saw the usual switch to summer time.
-# Standard time was not changed until 1968-10-27 (the clocks didn't change).
-#
-# Here is another incorrect claim by Shanks & Pottenger:
-#     * Jersey, Guernsey, and the Isle of Man did not switch from GMT
-#	to daylight saving time until 1921 Apr 3, when they began to
-#	conform with Great Britain.
-# S.R.&O. 1916, No. 382 and HO 45/10811/312364 (quoted above) say otherwise.
-#
-# The following claim by Shanks & Pottenger is possible though doubtful;
-# we'll ignore it for now.
-#     * Dublin's 1971-10-31 switch was at 02:00, even though London's was 03:00.
-#
-#
-# Whitman says Dublin Mean Time was -0:25:21, which is more precise than
-# Shanks & Pottenger.
-# Perhaps this was Dunsink Observatory Time, as Dunsink Observatory
-# (8 km NW of Dublin's center) seemingly was to Dublin as Greenwich was
-# to London.  For example:
-#
-#   "Timeball on the ballast office is down.  Dunsink time."
-#   -- James Joyce, Ulysses
-
-# From Joseph S. Myers (2005-01-26):
-# Irish laws are available online at www.irishstatutebook.ie.  These include
-# various relating to legal time, for example:
-#
-# ZZA13Y1923.html ZZA12Y1924.html ZZA8Y1925.html ZZSIV20PG1267.html
-#
-# ZZSI71Y1947.html ZZSI128Y1948.html ZZSI23Y1949.html ZZSI41Y1950.html
-# ZZSI27Y1951.html ZZSI73Y1952.html
-#
-# ZZSI11Y1961.html ZZSI232Y1961.html ZZSI182Y1962.html
-# ZZSI167Y1963.html ZZSI257Y1964.html ZZSI198Y1967.html
-# ZZA23Y1968.html ZZA17Y1971.html
-#
-# ZZSI67Y1981.html ZZSI212Y1982.html ZZSI45Y1986.html
-# ZZSI264Y1988.html ZZSI52Y1990.html ZZSI371Y1992.html
-# ZZSI395Y1994.html ZZSI484Y1997.html ZZSI506Y2001.html
-#
-# [These are all relative to the root, e.g., the first is
-# <http://www.irishstatutebook.ie/ZZA13Y1923.html>.]
-#
-# (These are those I found, but there could be more.  In any case these
-# should allow various updates to the comments in the europe file to cover
-# the laws applicable in Ireland.)
-#
-# (Note that the time in the Republic of Ireland since 1968 has been defined
-# in terms of standard time being GMT+1 with a period of winter time when it
-# is GMT, rather than standard time being GMT with a period of summer time
-# being GMT+1.)
-
-# From Paul Eggert (1999-03-28):
-# Clive Feather (<news:859845706.26043.0@office.demon.net>, 1997-03-31)
-# reports that Folkestone (Cheriton) Shuttle Terminal uses Concession Time
-# (CT), equivalent to French civil time.
-# Julian Hill (<news:36118128.5A14@virgin.net>, 1998-09-30) reports that
-# trains between Dollands Moor (the freight facility next door)
-# and Frethun run in CT.
-# My admittedly uninformed guess is that the terminal has two authorities,
-# the French concession operators and the British civil authorities,
-# and that the time depends on who you're talking to.
-# If, say, the British police were called to the station for some reason,
-# I would expect the official police report to use GMT/BST and not CET/CEST.
-# This is a borderline case, but for now let's stick to GMT/BST.
-
-# From an anonymous contributor (1996-06-02):
-# The law governing time in Ireland is under Statutory Instrument SI 395/94,
-# which gives force to European Union 7th Council Directive # 94/21/EC.
-# Under this directive, the Minister for Justice in Ireland makes appropriate
-# regulations. I spoke this morning with the Secretary of the Department of
-# Justice (tel +353 1 678 9711) who confirmed to me that the correct name is
-# "Irish Summer Time", abbreviated to "IST".
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-# Summer Time Act, 1916
-Rule	GB-Eire	1916	only	-	May	21	2:00s	1:00	BST
-Rule	GB-Eire	1916	only	-	Oct	 1	2:00s	0	GMT
-# S.R.&O. 1917, No. 358
-Rule	GB-Eire	1917	only	-	Apr	 8	2:00s	1:00	BST
-Rule	GB-Eire	1917	only	-	Sep	17	2:00s	0	GMT
-# S.R.&O. 1918, No. 274
-Rule	GB-Eire	1918	only	-	Mar	24	2:00s	1:00	BST
-Rule	GB-Eire	1918	only	-	Sep	30	2:00s	0	GMT
-# S.R.&O. 1919, No. 297
-Rule	GB-Eire	1919	only	-	Mar	30	2:00s	1:00	BST
-Rule	GB-Eire	1919	only	-	Sep	29	2:00s	0	GMT
-# S.R.&O. 1920, No. 458
-Rule	GB-Eire	1920	only	-	Mar	28	2:00s	1:00	BST
-# S.R.&O. 1920, No. 1844
-Rule	GB-Eire	1920	only	-	Oct	25	2:00s	0	GMT
-# S.R.&O. 1921, No. 363
-Rule	GB-Eire	1921	only	-	Apr	 3	2:00s	1:00	BST
-Rule	GB-Eire	1921	only	-	Oct	 3	2:00s	0	GMT
-# S.R.&O. 1922, No. 264
-Rule	GB-Eire	1922	only	-	Mar	26	2:00s	1:00	BST
-Rule	GB-Eire	1922	only	-	Oct	 8	2:00s	0	GMT
-# The Summer Time Act, 1922
-Rule	GB-Eire	1923	only	-	Apr	Sun>=16	2:00s	1:00	BST
-Rule	GB-Eire	1923	1924	-	Sep	Sun>=16	2:00s	0	GMT
-Rule	GB-Eire	1924	only	-	Apr	Sun>=9	2:00s	1:00	BST
-Rule	GB-Eire	1925	1926	-	Apr	Sun>=16	2:00s	1:00	BST
-# The Summer Time Act, 1925
-Rule	GB-Eire	1925	1938	-	Oct	Sun>=2	2:00s	0	GMT
-Rule	GB-Eire	1927	only	-	Apr	Sun>=9	2:00s	1:00	BST
-Rule	GB-Eire	1928	1929	-	Apr	Sun>=16	2:00s	1:00	BST
-Rule	GB-Eire	1930	only	-	Apr	Sun>=9	2:00s	1:00	BST
-Rule	GB-Eire	1931	1932	-	Apr	Sun>=16	2:00s	1:00	BST
-Rule	GB-Eire	1933	only	-	Apr	Sun>=9	2:00s	1:00	BST
-Rule	GB-Eire	1934	only	-	Apr	Sun>=16	2:00s	1:00	BST
-Rule	GB-Eire	1935	only	-	Apr	Sun>=9	2:00s	1:00	BST
-Rule	GB-Eire	1936	1937	-	Apr	Sun>=16	2:00s	1:00	BST
-Rule	GB-Eire	1938	only	-	Apr	Sun>=9	2:00s	1:00	BST
-Rule	GB-Eire	1939	only	-	Apr	Sun>=16	2:00s	1:00	BST
-# S.R.&O. 1939, No. 1379
-Rule	GB-Eire	1939	only	-	Nov	Sun>=16	2:00s	0	GMT
-# S.R.&O. 1940, No. 172 and No. 1883
-Rule	GB-Eire	1940	only	-	Feb	Sun>=23	2:00s	1:00	BST
-# S.R.&O. 1941, No. 476
-Rule	GB-Eire	1941	only	-	May	Sun>=2	1:00s	2:00	BDST
-Rule	GB-Eire	1941	1943	-	Aug	Sun>=9	1:00s	1:00	BST
-# S.R.&O. 1942, No. 506
-Rule	GB-Eire	1942	1944	-	Apr	Sun>=2	1:00s	2:00	BDST
-# S.R.&O. 1944, No. 932
-Rule	GB-Eire	1944	only	-	Sep	Sun>=16	1:00s	1:00	BST
-# S.R.&O. 1945, No. 312
-Rule	GB-Eire	1945	only	-	Apr	Mon>=2	1:00s	2:00	BDST
-Rule	GB-Eire	1945	only	-	Jul	Sun>=9	1:00s	1:00	BST
-# S.R.&O. 1945, No. 1208
-Rule	GB-Eire	1945	1946	-	Oct	Sun>=2	2:00s	0	GMT
-Rule	GB-Eire	1946	only	-	Apr	Sun>=9	2:00s	1:00	BST
-# The Summer Time Act, 1947
-Rule	GB-Eire	1947	only	-	Mar	16	2:00s	1:00	BST
-Rule	GB-Eire	1947	only	-	Apr	13	1:00s	2:00	BDST
-Rule	GB-Eire	1947	only	-	Aug	10	1:00s	1:00	BST
-Rule	GB-Eire	1947	only	-	Nov	 2	2:00s	0	GMT
-# Summer Time Order, 1948 (S.I. 1948/495)
-Rule	GB-Eire	1948	only	-	Mar	14	2:00s	1:00	BST
-Rule	GB-Eire	1948	only	-	Oct	31	2:00s	0	GMT
-# Summer Time Order, 1949 (S.I. 1949/373)
-Rule	GB-Eire	1949	only	-	Apr	 3	2:00s	1:00	BST
-Rule	GB-Eire	1949	only	-	Oct	30	2:00s	0	GMT
-# Summer Time Order, 1950 (S.I. 1950/518)
-# Summer Time Order, 1951 (S.I. 1951/430)
-# Summer Time Order, 1952 (S.I. 1952/451)
-Rule	GB-Eire	1950	1952	-	Apr	Sun>=14	2:00s	1:00	BST
-Rule	GB-Eire	1950	1952	-	Oct	Sun>=21	2:00s	0	GMT
-# revert to the rules of the Summer Time Act, 1925
-Rule	GB-Eire	1953	only	-	Apr	Sun>=16	2:00s	1:00	BST
-Rule	GB-Eire	1953	1960	-	Oct	Sun>=2	2:00s	0	GMT
-Rule	GB-Eire	1954	only	-	Apr	Sun>=9	2:00s	1:00	BST
-Rule	GB-Eire	1955	1956	-	Apr	Sun>=16	2:00s	1:00	BST
-Rule	GB-Eire	1957	only	-	Apr	Sun>=9	2:00s	1:00	BST
-Rule	GB-Eire	1958	1959	-	Apr	Sun>=16	2:00s	1:00	BST
-Rule	GB-Eire	1960	only	-	Apr	Sun>=9	2:00s	1:00	BST
-# Summer Time Order, 1961 (S.I. 1961/71)
-# Summer Time (1962) Order, 1961 (S.I. 1961/2465)
-# Summer Time Order, 1963 (S.I. 1963/81)
-Rule	GB-Eire	1961	1963	-	Mar	lastSun	2:00s	1:00	BST
-Rule	GB-Eire	1961	1968	-	Oct	Sun>=23	2:00s	0	GMT
-# Summer Time (1964) Order, 1963 (S.I. 1963/2101)
-# Summer Time Order, 1964 (S.I. 1964/1201)
-# Summer Time Order, 1967 (S.I. 1967/1148)
-Rule	GB-Eire	1964	1967	-	Mar	Sun>=19	2:00s	1:00	BST
-# Summer Time Order, 1968 (S.I. 1968/117)
-Rule	GB-Eire	1968	only	-	Feb	18	2:00s	1:00	BST
-# The British Standard Time Act, 1968
-#	(no summer time)
-# The Summer Time Act, 1972
-Rule	GB-Eire	1972	1980	-	Mar	Sun>=16	2:00s	1:00	BST
-Rule	GB-Eire	1972	1980	-	Oct	Sun>=23	2:00s	0	GMT
-# Summer Time Order, 1980 (S.I. 1980/1089)
-# Summer Time Order, 1982 (S.I. 1982/1673)
-# Summer Time Order, 1986 (S.I. 1986/223)
-# Summer Time Order, 1988 (S.I. 1988/931)
-Rule	GB-Eire	1981	1995	-	Mar	lastSun	1:00u	1:00	BST
-Rule	GB-Eire 1981	1989	-	Oct	Sun>=23	1:00u	0	GMT
-# Summer Time Order, 1989 (S.I. 1989/985)
-# Summer Time Order, 1992 (S.I. 1992/1729)
-# Summer Time Order 1994 (S.I. 1994/2798)
-Rule	GB-Eire 1990	1995	-	Oct	Sun>=22	1:00u	0	GMT
-# Summer Time Order 1997 (S.I. 1997/2982)
-# See EU for rules starting in 1996.
-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Europe/London	-0:01:15 -	LMT	1847 Dec  1 0:00s
-			 0:00	GB-Eire	%s	1968 Oct 27
-			 1:00	-	BST	1971 Oct 31 2:00u
-			 0:00	GB-Eire	%s	1996
-			 0:00	EU	GMT/BST
-Link	Europe/London	Europe/Jersey
-Link	Europe/London	Europe/Guernsey
-Link	Europe/London	Europe/Isle_of_Man
-Zone	Europe/Dublin	-0:25:00 -	LMT	1880 Aug  2
-			-0:25:21 -	DMT	1916 May 21 2:00
-			-0:25:21 1:00	IST	1916 Oct  1 2:00s
-			 0:00	GB-Eire	%s	1921 Dec  6 # independence
-			 0:00	GB-Eire	GMT/IST	1940 Feb 25 2:00
-			 0:00	1:00	IST	1946 Oct  6 2:00
-			 0:00	-	GMT	1947 Mar 16 2:00
-			 0:00	1:00	IST	1947 Nov  2 2:00
-			 0:00	-	GMT	1948 Apr 18 2:00
-			 0:00	GB-Eire	GMT/IST	1968 Oct 27
-			 1:00	-	IST	1971 Oct 31 2:00u
-			 0:00	GB-Eire	GMT/IST	1996
-			 0:00	EU	GMT/IST
-
-###############################################################################
-
-# Europe
-
-# EU rules are for the European Union, previously known as the EC, EEC,
-# Common Market, etc.
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	EU	1977	1980	-	Apr	Sun>=1	 1:00u	1:00	S
-Rule	EU	1977	only	-	Sep	lastSun	 1:00u	0	-
-Rule	EU	1978	only	-	Oct	 1	 1:00u	0	-
-Rule	EU	1979	1995	-	Sep	lastSun	 1:00u	0	-
-Rule	EU	1981	max	-	Mar	lastSun	 1:00u	1:00	S
-Rule	EU	1996	max	-	Oct	lastSun	 1:00u	0	-
-# The most recent directive covers the years starting in 2002.  See:
-# <a href="http://europa.eu.int/eur-lex/en/lif/dat/2000/en_300L0084.html"
-# Directive 2000/84/EC of the European Parliament and of the Council
-# of 19 January 2001 on summer-time arrangements.
-# </a>
-
-# W-Eur differs from EU only in that W-Eur uses standard time.
-Rule	W-Eur	1977	1980	-	Apr	Sun>=1	 1:00s	1:00	S
-Rule	W-Eur	1977	only	-	Sep	lastSun	 1:00s	0	-
-Rule	W-Eur	1978	only	-	Oct	 1	 1:00s	0	-
-Rule	W-Eur	1979	1995	-	Sep	lastSun	 1:00s	0	-
-Rule	W-Eur	1981	max	-	Mar	lastSun	 1:00s	1:00	S
-Rule	W-Eur	1996	max	-	Oct	lastSun	 1:00s	0	-
-
-# Older C-Eur rules are for convenience in the tables.
-# From 1977 on, C-Eur differs from EU only in that C-Eur uses standard time.
-Rule	C-Eur	1916	only	-	Apr	30	23:00	1:00	S
-Rule	C-Eur	1916	only	-	Oct	 1	 1:00	0	-
-Rule	C-Eur	1917	1918	-	Apr	Mon>=15	 2:00s	1:00	S
-Rule	C-Eur	1917	1918	-	Sep	Mon>=15	 2:00s	0	-
-Rule	C-Eur	1940	only	-	Apr	 1	 2:00s	1:00	S
-Rule	C-Eur	1942	only	-	Nov	 2	 2:00s	0	-
-Rule	C-Eur	1943	only	-	Mar	29	 2:00s	1:00	S
-Rule	C-Eur	1943	only	-	Oct	 4	 2:00s	0	-
-Rule	C-Eur	1944	only	-	Apr	 3	 2:00s	1:00	S
-# Whitman gives 1944 Oct 7; go with Shanks & Pottenger.
-Rule	C-Eur	1944	only	-	Oct	 2	 2:00s	0	-
-Rule	C-Eur	1977	1980	-	Apr	Sun>=1	 2:00s	1:00	S
-Rule	C-Eur	1977	only	-	Sep	lastSun	 2:00s	0	-
-Rule	C-Eur	1978	only	-	Oct	 1	 2:00s	0	-
-Rule	C-Eur	1979	1995	-	Sep	lastSun	 2:00s	0	-
-Rule	C-Eur	1981	max	-	Mar	lastSun	 2:00s	1:00	S
-Rule	C-Eur	1996	max	-	Oct	lastSun	 2:00s	0	-
-
-# E-Eur differs from EU only in that E-Eur switches at midnight local time.
-Rule	E-Eur	1977	1980	-	Apr	Sun>=1	 0:00	1:00	S
-Rule	E-Eur	1977	only	-	Sep	lastSun	 0:00	0	-
-Rule	E-Eur	1978	only	-	Oct	 1	 0:00	0	-
-Rule	E-Eur	1979	1995	-	Sep	lastSun	 0:00	0	-
-Rule	E-Eur	1981	max	-	Mar	lastSun	 0:00	1:00	S
-Rule	E-Eur	1996	max	-	Oct	lastSun	 0:00	0	-
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Russia	1917	only	-	Jul	 1	23:00	1:00	MST	# Moscow Summer Time
-Rule	Russia	1917	only	-	Dec	28	 0:00	0	MMT	# Moscow Mean Time
-Rule	Russia	1918	only	-	May	31	22:00	2:00	MDST	# Moscow Double Summer Time
-Rule	Russia	1918	only	-	Sep	16	 1:00	1:00	MST
-Rule	Russia	1919	only	-	May	31	23:00	2:00	MDST
-Rule	Russia	1919	only	-	Jul	 1	 2:00	1:00	S
-Rule	Russia	1919	only	-	Aug	16	 0:00	0	-
-Rule	Russia	1921	only	-	Feb	14	23:00	1:00	S
-Rule	Russia	1921	only	-	Mar	20	23:00	2:00	M # Midsummer
-Rule	Russia	1921	only	-	Sep	 1	 0:00	1:00	S
-Rule	Russia	1921	only	-	Oct	 1	 0:00	0	-
-# Act No.925 of the Council of Ministers of the USSR (1980-10-24):
-Rule	Russia	1981	1984	-	Apr	 1	 0:00	1:00	S
-Rule	Russia	1981	1983	-	Oct	 1	 0:00	0	-
-# Act No.967 of the Council of Ministers of the USSR (1984-09-13), repeated in
-# Act No.227 of the Council of Ministers of the USSR (1989-03-14):
-Rule	Russia	1984	1991	-	Sep	lastSun	 2:00s	0	-
-Rule	Russia	1985	1991	-	Mar	lastSun	 2:00s	1:00	S
-#
-Rule	Russia	1992	only	-	Mar	lastSat	 23:00	1:00	S
-Rule	Russia	1992	only	-	Sep	lastSat	 23:00	0	-
-Rule	Russia	1993	max	-	Mar	lastSun	 2:00s	1:00	S
-Rule	Russia	1993	1995	-	Sep	lastSun	 2:00s	0	-
-Rule	Russia	1996	max	-	Oct	lastSun	 2:00s	0	-
-
-# These are for backward compatibility with older versions.
-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	WET		0:00	EU	WE%sT
-Zone	CET		1:00	C-Eur	CE%sT
-Zone	MET		1:00	C-Eur	ME%sT
-Zone	EET		2:00	EU	EE%sT
-
-# Previous editions of this database used abbreviations like MET DST
-# for Central European Summer Time, but this didn't agree with common usage.
-
-# From Markus Kuhn (1996-07-12):
-# The official German names ... are
-#
-#	Mitteleuropaeische Zeit (MEZ)         = UTC+01:00
-#	Mitteleuropaeische Sommerzeit (MESZ)  = UTC+02:00
-#
-# as defined in the German Time Act (Gesetz ueber die Zeitbestimmung (ZeitG),
-# 1978-07-25, Bundesgesetzblatt, Jahrgang 1978, Teil I, S. 1110-1111)....
-# I wrote ... to the German Federal Physical-Technical Institution
-#
-#	Physikalisch-Technische Bundesanstalt (PTB)
-#	Laboratorium 4.41 "Zeiteinheit"
-#	Postfach 3345
-#	D-38023 Braunschweig
-#	phone: +49 531 592-0
-#
-# ... I received today an answer letter from Dr. Peter Hetzel, head of the PTB
-# department for time and frequency transmission.  He explained that the
-# PTB translates MEZ and MESZ into English as
-#
-#	Central European Time (CET)         = UTC+01:00
-#	Central European Summer Time (CEST) = UTC+02:00
-
-
-# Albania
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Albania	1940	only	-	Jun	16	0:00	1:00	S
-Rule	Albania	1942	only	-	Nov	 2	3:00	0	-
-Rule	Albania	1943	only	-	Mar	29	2:00	1:00	S
-Rule	Albania	1943	only	-	Apr	10	3:00	0	-
-Rule	Albania	1974	only	-	May	 4	0:00	1:00	S
-Rule	Albania	1974	only	-	Oct	 2	0:00	0	-
-Rule	Albania	1975	only	-	May	 1	0:00	1:00	S
-Rule	Albania	1975	only	-	Oct	 2	0:00	0	-
-Rule	Albania	1976	only	-	May	 2	0:00	1:00	S
-Rule	Albania	1976	only	-	Oct	 3	0:00	0	-
-Rule	Albania	1977	only	-	May	 8	0:00	1:00	S
-Rule	Albania	1977	only	-	Oct	 2	0:00	0	-
-Rule	Albania	1978	only	-	May	 6	0:00	1:00	S
-Rule	Albania	1978	only	-	Oct	 1	0:00	0	-
-Rule	Albania	1979	only	-	May	 5	0:00	1:00	S
-Rule	Albania	1979	only	-	Sep	30	0:00	0	-
-Rule	Albania	1980	only	-	May	 3	0:00	1:00	S
-Rule	Albania	1980	only	-	Oct	 4	0:00	0	-
-Rule	Albania	1981	only	-	Apr	26	0:00	1:00	S
-Rule	Albania	1981	only	-	Sep	27	0:00	0	-
-Rule	Albania	1982	only	-	May	 2	0:00	1:00	S
-Rule	Albania	1982	only	-	Oct	 3	0:00	0	-
-Rule	Albania	1983	only	-	Apr	18	0:00	1:00	S
-Rule	Albania	1983	only	-	Oct	 1	0:00	0	-
-Rule	Albania	1984	only	-	Apr	 1	0:00	1:00	S
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Europe/Tirane	1:19:20 -	LMT	1914
-			1:00	-	CET	1940 Jun 16
-			1:00	Albania	CE%sT	1984 Jul
-			1:00	EU	CE%sT
-
-# Andorra
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Europe/Andorra	0:06:04 -	LMT	1901
-			0:00	-	WET	1946 Sep 30
-			1:00	-	CET	1985 Mar 31 2:00
-			1:00	EU	CE%sT
-
-# Austria
-
-# From Paul Eggert (2006-03-22): Shanks & Pottenger give 1918-06-16 and
-# 1945-11-18, but the Austrian Federal Office of Metrology and
-# Surveying (BEV) gives 1918-09-16 and for Vienna gives the "alleged"
-# date of 1945-04-12 with no time.  For the 1980-04-06 transition
-# Shanks & Pottenger give 02:00, the BEV 00:00.  Go with the BEV,
-# and guess 02:00 for 1945-04-12.
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Austria	1920	only	-	Apr	 5	2:00s	1:00	S
-Rule	Austria	1920	only	-	Sep	13	2:00s	0	-
-Rule	Austria	1946	only	-	Apr	14	2:00s	1:00	S
-Rule	Austria	1946	1948	-	Oct	Sun>=1	2:00s	0	-
-Rule	Austria	1947	only	-	Apr	 6	2:00s	1:00	S
-Rule	Austria	1948	only	-	Apr	18	2:00s	1:00	S
-Rule	Austria	1980	only	-	Apr	 6	0:00	1:00	S
-Rule	Austria	1980	only	-	Sep	28	0:00	0	-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Europe/Vienna	1:05:20 -	LMT	1893 Apr
-			1:00	C-Eur	CE%sT	1920
-			1:00	Austria	CE%sT	1940 Apr  1 2:00s
-			1:00	C-Eur	CE%sT	1945 Apr  2 2:00s
-			1:00	1:00	CEST	1945 Apr 12 2:00s
-			1:00	-	CET	1946
-			1:00	Austria	CE%sT	1981
-			1:00	EU	CE%sT
-
-# Belarus
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Europe/Minsk	1:50:16 -	LMT	1880
-			1:50	-	MMT	1924 May 2 # Minsk Mean Time
-			2:00	-	EET	1930 Jun 21
-			3:00	-	MSK	1941 Jun 28
-			1:00	C-Eur	CE%sT	1944 Jul  3
-			3:00	Russia	MSK/MSD	1990
-			3:00	-	MSK	1991 Mar 31 2:00s
-			2:00	1:00	EEST	1991 Sep 29 2:00s
-			2:00	-	EET	1992 Mar 29 0:00s
-			2:00	1:00	EEST	1992 Sep 27 0:00s
-			2:00	Russia	EE%sT
-
-# Belgium
-#
-# From Paul Eggert (1997-07-02):
-# Entries from 1918 through 1991 are taken from:
-#	Annuaire de L'Observatoire Royal de Belgique,
-#	Avenue Circulaire, 3, B-1180 BRUXELLES, CLVIIe annee, 1991
-#	(Imprimerie HAYEZ, s.p.r.l., Rue Fin, 4, 1080 BRUXELLES, MCMXC),
-#	pp 8-9.
-# LMT before 1892 was 0:17:30, according to the official journal of Belgium:
-#	Moniteur Belge, Samedi 30 Avril 1892, N.121.
-# Thanks to Pascal Delmoitie for these references.
-# The 1918 rules are listed for completeness; they apply to unoccupied Belgium.
-# Assume Brussels switched to WET in 1918 when the armistice took effect.
-#
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Belgium	1918	only	-	Mar	 9	 0:00s	1:00	S
-Rule	Belgium	1918	1919	-	Oct	Sat>=1	23:00s	0	-
-Rule	Belgium	1919	only	-	Mar	 1	23:00s	1:00	S
-Rule	Belgium	1920	only	-	Feb	14	23:00s	1:00	S
-Rule	Belgium	1920	only	-	Oct	23	23:00s	0	-
-Rule	Belgium	1921	only	-	Mar	14	23:00s	1:00	S
-Rule	Belgium	1921	only	-	Oct	25	23:00s	0	-
-Rule	Belgium	1922	only	-	Mar	25	23:00s	1:00	S
-Rule	Belgium	1922	1927	-	Oct	Sat>=1	23:00s	0	-
-Rule	Belgium	1923	only	-	Apr	21	23:00s	1:00	S
-Rule	Belgium	1924	only	-	Mar	29	23:00s	1:00	S
-Rule	Belgium	1925	only	-	Apr	 4	23:00s	1:00	S
-# DSH writes that a royal decree of 1926-02-22 specified the Sun following 3rd
-# Sat in Apr (except if it's Easter, in which case it's one Sunday earlier),
-# to Sun following 1st Sat in Oct, and that a royal decree of 1928-09-15
-# changed the transition times to 02:00 GMT.
-Rule	Belgium	1926	only	-	Apr	17	23:00s	1:00	S
-Rule	Belgium	1927	only	-	Apr	 9	23:00s	1:00	S
-Rule	Belgium	1928	only	-	Apr	14	23:00s	1:00	S
-Rule	Belgium	1928	1938	-	Oct	Sun>=2	 2:00s	0	-
-Rule	Belgium	1929	only	-	Apr	21	 2:00s	1:00	S
-Rule	Belgium	1930	only	-	Apr	13	 2:00s	1:00	S
-Rule	Belgium	1931	only	-	Apr	19	 2:00s	1:00	S
-Rule	Belgium	1932	only	-	Apr	 3	 2:00s	1:00	S
-Rule	Belgium	1933	only	-	Mar	26	 2:00s	1:00	S
-Rule	Belgium	1934	only	-	Apr	 8	 2:00s	1:00	S
-Rule	Belgium	1935	only	-	Mar	31	 2:00s	1:00	S
-Rule	Belgium	1936	only	-	Apr	19	 2:00s	1:00	S
-Rule	Belgium	1937	only	-	Apr	 4	 2:00s	1:00	S
-Rule	Belgium	1938	only	-	Mar	27	 2:00s	1:00	S
-Rule	Belgium	1939	only	-	Apr	16	 2:00s	1:00	S
-Rule	Belgium	1939	only	-	Nov	19	 2:00s	0	-
-Rule	Belgium	1940	only	-	Feb	25	 2:00s	1:00	S
-Rule	Belgium	1944	only	-	Sep	17	 2:00s	0	-
-Rule	Belgium	1945	only	-	Apr	 2	 2:00s	1:00	S
-Rule	Belgium	1945	only	-	Sep	16	 2:00s	0	-
-Rule	Belgium	1946	only	-	May	19	 2:00s	1:00	S
-Rule	Belgium	1946	only	-	Oct	 7	 2:00s	0	-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Europe/Brussels	0:17:30 -	LMT	1880
-			0:17:30	-	BMT	1892 May  1 12:00 # Brussels MT
-			0:00	-	WET	1914 Nov  8
-			1:00	-	CET	1916 May  1  0:00
-			1:00	C-Eur	CE%sT	1918 Nov 11 11:00u
-			0:00	Belgium	WE%sT	1940 May 20  2:00s
-			1:00	C-Eur	CE%sT	1944 Sep  3
-			1:00	Belgium	CE%sT	1977
-			1:00	EU	CE%sT
-
-# Bosnia and Herzegovina
-# see Serbia
-
-# Bulgaria
-#
-# From Plamen Simenov via Steffen Thorsen (1999-09-09):
-# A document of Government of Bulgaria (No.94/1997) says:
-# EET --> EETDST is in 03:00 Local time in last Sunday of March ...
-# EETDST --> EET is in 04:00 Local time in last Sunday of October
-#
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Bulg	1979	only	-	Mar	31	23:00	1:00	S
-Rule	Bulg	1979	only	-	Oct	 1	 1:00	0	-
-Rule	Bulg	1980	1982	-	Apr	Sat>=1	23:00	1:00	S
-Rule	Bulg	1980	only	-	Sep	29	 1:00	0	-
-Rule	Bulg	1981	only	-	Sep	27	 2:00	0	-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Europe/Sofia	1:33:16 -	LMT	1880
-			1:56:56	-	IMT	1894 Nov 30 # Istanbul MT?
-			2:00	-	EET	1942 Nov  2  3:00
-			1:00	C-Eur	CE%sT	1945 Apr  2  3:00
-			2:00	-	EET	1979 Mar 31 23:00
-			2:00	Bulg	EE%sT	1982 Sep 26  2:00
-			2:00	C-Eur	EE%sT	1991
-			2:00	E-Eur	EE%sT	1997
-			2:00	EU	EE%sT
-
-# Croatia
-# see Serbia
-
-# Cyprus
-# Please see the `asia' file for Asia/Nicosia.
-
-# Czech Republic
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Czech	1945	only	-	Apr	 8	2:00s	1:00	S
-Rule	Czech	1945	only	-	Nov	18	2:00s	0	-
-Rule	Czech	1946	only	-	May	 6	2:00s	1:00	S
-Rule	Czech	1946	1949	-	Oct	Sun>=1	2:00s	0	-
-Rule	Czech	1947	only	-	Apr	20	2:00s	1:00	S
-Rule	Czech	1948	only	-	Apr	18	2:00s	1:00	S
-Rule	Czech	1949	only	-	Apr	 9	2:00s	1:00	S
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Europe/Prague	0:57:44 -	LMT	1850
-			0:57:44	-	PMT	1891 Oct     # Prague Mean Time
-			1:00	C-Eur	CE%sT	1944 Sep 17 2:00s
-			1:00	Czech	CE%sT	1979
-			1:00	EU	CE%sT
-
-# Denmark, Faroe Islands, and Greenland
-
-# From Jesper Norgaard Welen (2005-04-26):
-# http://www.hum.aau.dk/~poe/tid/tine/DanskTid.htm says that the law
-# [introducing standard time] was in effect from 1894-01-01....
-# The page http://www.retsinfo.dk/_GETDOCI_/ACCN/A18930008330-REGL
-# confirms this, and states that the law was put forth 1893-03-29.
-#
-# The EU treaty with effect from 1973:
-# http://www.retsinfo.dk/_GETDOCI_/ACCN/A19722110030-REGL
-#
-# This provoked a new law from 1974 to make possible summer time changes
-# in subsequenet decrees with the law
-# http://www.retsinfo.dk/_GETDOCI_/ACCN/A19740022330-REGL
-#
-# It seems however that no decree was set forward until 1980.  I have
-# not found any decree, but in another related law, the effecting DST
-# changes are stated explicitly to be from 1980-04-06 at 02:00 to
-# 1980-09-28 at 02:00.  If this is true, this differs slightly from
-# the EU rule in that DST runs to 02:00, not 03:00.  We don't know
-# when Denmark began using the EU rule correctly, but we have only
-# confirmation of the 1980-time, so I presume it was correct in 1981:
-# The law is about the management of the extra hour, concerning
-# working hours reported and effect on obligatory-rest rules (which
-# was suspended on that night):
-# http://www.retsinfo.dk/_GETDOCI_/ACCN/C19801120554-REGL
-
-# From Jesper Norgaard Welen (2005-06-11):
-# The Herning Folkeblad (1980-09-26) reported that the night between
-# Saturday and Sunday the clock is set back from three to two.
-
-# From Paul Eggert (2005-06-11):
-# Hence the "02:00" of the 1980 law refers to standard time, not
-# wall-clock time, and so the EU rules were in effect in 1980.
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Denmark	1916	only	-	May	14	23:00	1:00	S
-Rule	Denmark	1916	only	-	Sep	30	23:00	0	-
-Rule	Denmark	1940	only	-	May	15	 0:00	1:00	S
-Rule	Denmark	1945	only	-	Apr	 2	 2:00s	1:00	S
-Rule	Denmark	1945	only	-	Aug	15	 2:00s	0	-
-Rule	Denmark	1946	only	-	May	 1	 2:00s	1:00	S
-Rule	Denmark	1946	only	-	Sep	 1	 2:00s	0	-
-Rule	Denmark	1947	only	-	May	 4	 2:00s	1:00	S
-Rule	Denmark	1947	only	-	Aug	10	 2:00s	0	-
-Rule	Denmark	1948	only	-	May	 9	 2:00s	1:00	S
-Rule	Denmark	1948	only	-	Aug	 8	 2:00s	0	-
-#
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Europe/Copenhagen	 0:50:20 -	LMT	1890
-			 0:50:20 -	CMT	1894 Jan  1 # Copenhagen MT
-			 1:00	Denmark	CE%sT	1942 Nov  2 2:00s
-			 1:00	C-Eur	CE%sT	1945 Apr  2 2:00
-			 1:00	Denmark	CE%sT	1980
-			 1:00	EU	CE%sT
-Zone Atlantic/Faroe	-0:27:04 -	LMT	1908 Jan 11	# Torshavn
-			 0:00	-	WET	1981
-			 0:00	EU	WE%sT
-#
-# From Paul Eggert (2004-10-31):
-# During World War II, Germany maintained secret manned weather stations in
-# East Greenland and Franz Josef Land, but we don't know their time zones.
-# My source for this is Wilhelm Dege's book mentioned under Svalbard.
-#
-# From Paul Eggert (2006-03-22):
-# Greenland joined the EU as part of Denmark, obtained home rule on 1979-05-01,
-# and left the EU on 1985-02-01.  It therefore should have been using EU
-# rules at least through 1984.  Shanks & Pottenger say Scoresbysund and Godthab
-# used C-Eur rules after 1980, but IATA SSIM (1991/1996) says they use EU
-# rules since at least 1991.  Assume EU rules since 1980.
-
-# From Gwillin Law (2001-06-06), citing
-# <http://www.statkart.no/efs/efshefter/2001/efs5-2001.pdf> (2001-03-15),
-# and with translations corrected by Steffen Thorsen:
-#
-# Greenland has four local times, and the relation to UTC
-# is according to the following time line:
-#
-# The military zone near Thule	UTC-4
-# Standard Greenland time	UTC-3
-# Scoresbysund			UTC-1
-# Danmarkshavn			UTC
-#
-# In the military area near Thule and in Danmarkshavn DST will not be
-# introduced.
-
-# From Rives McDow (2001-11-01):
-#
-# I correspond regularly with the Dansk Polarcenter, and wrote them at
-# the time to clarify the situation in Thule.  Unfortunately, I have
-# not heard back from them regarding my recent letter.  [But I have
-# info from earlier correspondence.]
-#
-# According to the center, a very small local time zone around Thule
-# Air Base keeps the time according to UTC-4, implementing daylight
-# savings using North America rules, changing the time at 02:00 local time....
-#
-# The east coast of Greenland north of the community of Scoresbysund
-# uses UTC in the same way as in Iceland, year round, with no dst.
-# There are just a few stations on this coast, including the
-# Danmarkshavn ICAO weather station mentioned in your September 29th
-# email.  The other stations are two sledge patrol stations in
-# Mestersvig and Daneborg, the air force base at Station Nord, and the
-# DPC research station at Zackenberg.
-#
-# Scoresbysund and two small villages nearby keep time UTC-1 and use
-# the same daylight savings time period as in West Greenland (Godthab).
-#
-# The rest of Greenland, including Godthab (this area, although it
-# includes central Greenland, is known as west Greenland), keeps time
-# UTC-3, with daylight savings methods according to European rules.
-#
-# It is common procedure to use UTC 0 in the wilderness of East and
-# North Greenland, because it is mainly Icelandic aircraft operators
-# maintaining traffic in these areas.  However, the official status of
-# this area is that it sticks with Godthab time.  This area might be
-# considered a dual time zone in some respects because of this.
-
-# From Rives McDow (2001-11-19):
-# I heard back from someone stationed at Thule; the time change took place
-# there at 2:00 AM.
-
-# From Paul Eggert (2006-03-22):
-# From 1997 on the CIA map shows Danmarkshavn on GMT;
-# the 1995 map as like Godthab.
-# For lack of better info, assume they were like Godthab before 1996.
-# startkart.no says Thule does not observe DST, but this is clearly an error,
-# so go with Shanks & Pottenger for Thule transitions until this year.
-# For 2007 on assume Thule will stay in sync with US DST rules.
-#
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Thule	1991	1992	-	Mar	lastSun	2:00	1:00	D
-Rule	Thule	1991	1992	-	Sep	lastSun	2:00	0	S
-Rule	Thule	1993	2006	-	Apr	Sun>=1	2:00	1:00	D
-Rule	Thule	1993	2006	-	Oct	lastSun	2:00	0	S
-Rule	Thule	2007	max	-	Mar	Sun>=8	2:00	1:00	D
-Rule	Thule	2007	max	-	Nov	Sun>=1	2:00	0	S
-#
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/Danmarkshavn -1:14:40 -	LMT	1916 Jul 28
-			-3:00	-	WGT	1980 Apr  6 2:00
-			-3:00	EU	WG%sT	1996
-			0:00	-	GMT
-Zone America/Scoresbysund -1:27:52 -	LMT	1916 Jul 28 # Ittoqqortoormiit
-			-2:00	-	CGT	1980 Apr  6 2:00
-			-2:00	C-Eur	CG%sT	1981 Mar 29
-			-1:00	EU	EG%sT
-Zone America/Godthab	-3:26:56 -	LMT	1916 Jul 28 # Nuuk
-			-3:00	-	WGT	1980 Apr  6 2:00
-			-3:00	EU	WG%sT
-Zone America/Thule	-4:35:08 -	LMT	1916 Jul 28 # Pituffik air base
-			-4:00	Thule	A%sT
-
-# Estonia
-# From Peter Ilieve (1994-10-15):
-# A relative in Tallinn confirms the accuracy of the data for 1989 onwards
-# [through 1994] and gives the legal authority for it,
-# a regulation of the Government of Estonia, No. 111 of 1989....
-#
-# From Peter Ilieve (1996-10-28):
-# [IATA SSIM (1992/1996) claims that the Baltic republics switch at 01:00s,
-# but a relative confirms that Estonia still switches at 02:00s, writing:]
-# ``I do not [know] exactly but there are some little different
-# (confusing) rules for International Air and Railway Transport Schedules
-# conversion in Sunday connected with end of summer time in Estonia....
-# A discussion is running about the summer time efficiency and effect on
-# human physiology.  It seems that Estonia maybe will not change to
-# summer time next spring.''
-
-# From Peter Ilieve (1998-11-04), heavily edited:
-# <a href="http://trip.rk.ee/cgi-bin/thw?${BASE}=akt&${OOHTML}=rtd&TA=1998&TO=1&AN=1390">
-# The 1998-09-22 Estonian time law
-# </a>
-# refers to the Eighth Directive and cites the association agreement between
-# the EU and Estonia, ratified by the Estonian law (RT II 1995, 22--27, 120).
-#
-# I also asked [my relative] whether they use any standard abbreviation
-# for their standard and summer times. He says no, they use "suveaeg"
-# (summer time) and "talveaeg" (winter time).
-
-# From <a href="http://www.baltictimes.com/">The Baltic Times</a> (1999-09-09)
-# via Steffen Thorsen:
-# This year will mark the last time Estonia shifts to summer time,
-# a council of the ruling coalition announced Sept. 6....
-# But what this could mean for Estonia's chances of joining the European
-# Union are still unclear.  In 1994, the EU declared summer time compulsory
-# for all member states until 2001.  Brussels has yet to decide what to do
-# after that.
-
-# From Mart Oruaas (2000-01-29):
-# Regulation no. 301 (1999-10-12) obsoletes previous regulation
-# no. 206 (1998-09-22) and thus sticks Estonia to +02:00 GMT for all
-# the year round.  The regulation is effective 1999-11-01.
-
-# From Toomas Soome (2002-02-21):
-# The Estonian government has changed once again timezone politics.
-# Now we are using again EU rules.
-#
-# From Urmet Jaanes (2002-03-28):
-# The legislative reference is Government decree No. 84 on 2002-02-21.
-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Europe/Tallinn	1:39:00	-	LMT	1880
-			1:39:00	-	TMT	1918 Feb # Tallinn Mean Time
-			1:00	C-Eur	CE%sT	1919 Jul
-			1:39:00	-	TMT	1921 May
-			2:00	-	EET	1940 Aug  6
-			3:00	-	MSK	1941 Sep 15
-			1:00	C-Eur	CE%sT	1944 Sep 22
-			3:00	Russia	MSK/MSD	1989 Mar 26 2:00s
-			2:00	1:00	EEST	1989 Sep 24 2:00s
-			2:00	C-Eur	EE%sT	1998 Sep 22
-			2:00	EU	EE%sT	1999 Nov  1
-			2:00	-	EET	2002 Feb 21
-			2:00	EU	EE%sT
-
-# Finland
-#
-# From Hannu Strang (1994-09-25 06:03:37 UTC):
-# Well, here in Helsinki we're just changing from summer time to regular one,
-# and it's supposed to change at 4am...
-#
-# From Paul Eggert (2006-03-22):
-# Shanks & Pottenger say Finland has switched at 02:00 standard time
-# since 1981.  Go with Strang instead.
-#
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Finland	1942	only	-	Apr	3	0:00	1:00	S
-Rule	Finland	1942	only	-	Oct	3	0:00	0	-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Europe/Helsinki	1:39:52 -	LMT	1878 May 31
-			1:39:52	-	HMT	1921 May    # Helsinki Mean Time
-			2:00	Finland	EE%sT	1981 Mar 29 2:00
-			2:00	EU	EE%sT
-
-# Aaland Is
-Link	Europe/Helsinki	Europe/Mariehamn
-
-
-# France
-
-# From Ciro Discepolo (2000-12-20):
-#
-# Henri Le Corre, Regimes Horaires pour le monde entier, Editions
-# Traditionnelles - Paris 2 books, 1993
-#
-# Gabriel, Traite de l'heure dans le monde, Guy Tredaniel editeur,
-# Paris, 1991
-#
-# Francoise Gauquelin, Problemes de l'heure resolus en astrologie,
-# Guy tredaniel, Paris 1987
-
-
-#
-# Shank & Pottenger seem to use `24:00' ambiguously; resolve it with Whitman.
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	France	1916	only	-	Jun	14	23:00s	1:00	S
-Rule	France	1916	1919	-	Oct	Sun>=1	23:00s	0	-
-Rule	France	1917	only	-	Mar	24	23:00s	1:00	S
-Rule	France	1918	only	-	Mar	 9	23:00s	1:00	S
-Rule	France	1919	only	-	Mar	 1	23:00s	1:00	S
-Rule	France	1920	only	-	Feb	14	23:00s	1:00	S
-Rule	France	1920	only	-	Oct	23	23:00s	0	-
-Rule	France	1921	only	-	Mar	14	23:00s	1:00	S
-Rule	France	1921	only	-	Oct	25	23:00s	0	-
-Rule	France	1922	only	-	Mar	25	23:00s	1:00	S
-# DSH writes that a law of 1923-05-24 specified 3rd Sat in Apr at 23:00 to 1st
-# Sat in Oct at 24:00; and that in 1930, because of Easter, the transitions
-# were Apr 12 and Oct 5.  Go with Shanks & Pottenger.
-Rule	France	1922	1938	-	Oct	Sat>=1	23:00s	0	-
-Rule	France	1923	only	-	May	26	23:00s	1:00	S
-Rule	France	1924	only	-	Mar	29	23:00s	1:00	S
-Rule	France	1925	only	-	Apr	 4	23:00s	1:00	S
-Rule	France	1926	only	-	Apr	17	23:00s	1:00	S
-Rule	France	1927	only	-	Apr	 9	23:00s	1:00	S
-Rule	France	1928	only	-	Apr	14	23:00s	1:00	S
-Rule	France	1929	only	-	Apr	20	23:00s	1:00	S
-Rule	France	1930	only	-	Apr	12	23:00s	1:00	S
-Rule	France	1931	only	-	Apr	18	23:00s	1:00	S
-Rule	France	1932	only	-	Apr	 2	23:00s	1:00	S
-Rule	France	1933	only	-	Mar	25	23:00s	1:00	S
-Rule	France	1934	only	-	Apr	 7	23:00s	1:00	S
-Rule	France	1935	only	-	Mar	30	23:00s	1:00	S
-Rule	France	1936	only	-	Apr	18	23:00s	1:00	S
-Rule	France	1937	only	-	Apr	 3	23:00s	1:00	S
-Rule	France	1938	only	-	Mar	26	23:00s	1:00	S
-Rule	France	1939	only	-	Apr	15	23:00s	1:00	S
-Rule	France	1939	only	-	Nov	18	23:00s	0	-
-Rule	France	1940	only	-	Feb	25	 2:00	1:00	S
-# The French rules for 1941-1944 were not used in Paris, but Shanks & Pottenger
-# write that they were used in Monaco and in many French locations.
-# Le Corre writes that the upper limit of the free zone was Arneguy, Orthez,
-# Mont-de-Marsan, Bazas, Langon, Lamotte-Montravel, Marouil, La
-# Rochefoucault, Champagne-Mouton, La Roche-Posay, La Haye-Decartes,
-# Loches, Montrichard, Vierzon, Bourges, Moulins, Digoin,
-# Paray-le-Monial, Montceau-les-Mines, Chalons-sur-Saone, Arbois,
-# Dole, Morez, St-Claude, and Collognes (Haute-Savioe).
-Rule	France	1941	only	-	May	 5	 0:00	2:00	M # Midsummer
-# Shanks & Pottenger say this transition occurred at Oct 6 1:00,
-# but go with Denis Excoffier (1997-12-12),
-# who quotes the Ephemerides Astronomiques for 1998 from Bureau des Longitudes
-# as saying 5/10/41 22hUT.
-Rule	France	1941	only	-	Oct	 6	 0:00	1:00	S
-Rule	France	1942	only	-	Mar	 9	 0:00	2:00	M
-Rule	France	1942	only	-	Nov	 2	 3:00	1:00	S
-Rule	France	1943	only	-	Mar	29	 2:00	2:00	M
-Rule	France	1943	only	-	Oct	 4	 3:00	1:00	S
-Rule	France	1944	only	-	Apr	 3	 2:00	2:00	M
-Rule	France	1944	only	-	Oct	 8	 1:00	1:00	S
-Rule	France	1945	only	-	Apr	 2	 2:00	2:00	M
-Rule	France	1945	only	-	Sep	16	 3:00	0	-
-# Shanks & Pottenger give Mar 28 2:00 and Sep 26 3:00;
-# go with Excoffier's 28/3/76 0hUT and 25/9/76 23hUT.
-Rule	France	1976	only	-	Mar	28	 1:00	1:00	S
-Rule	France	1976	only	-	Sep	26	 1:00	0	-
-# Shanks & Pottenger give 0:09:20 for Paris Mean Time, and Whitman 0:09:05,
-# but Howse quotes the actual French legislation as saying 0:09:21.
-# Go with Howse.  Howse writes that the time in France was officially based
-# on PMT-0:09:21 until 1978-08-09, when the time base finally switched to UTC.
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Europe/Paris	0:09:21 -	LMT	1891 Mar 15  0:01
-			0:09:21	-	PMT	1911 Mar 11  0:01  # Paris MT
-# Shanks & Pottenger give 1940 Jun 14 0:00; go with Excoffier and Le Corre.
-			0:00	France	WE%sT	1940 Jun 14 23:00
-# Le Corre says Paris stuck with occupied-France time after the liberation;
-# go with Shanks & Pottenger.
-			1:00	C-Eur	CE%sT	1944 Aug 25
-			0:00	France	WE%sT	1945 Sep 16  3:00
-			1:00	France	CE%sT	1977
-			1:00	EU	CE%sT
-
-# Germany
-
-# From Markus Kuhn (1998-09-29):
-# The German time zone web site by the Physikalisch-Technische
-# Bundesanstalt contains DST information back to 1916.
-# [See tz-link.htm for the URL.]
-
-# From Joerg Schilling (2002-10-23):
-# In 1945, Berlin was switched to Moscow Summer time (GMT+4) by <a
-# href="http://www.dhm.de/lemo/html/biografien/BersarinNikolai/">
-# General [Nikolai] Bersarin</a>.
-
-# From Paul Eggert (2003-03-08):
-# <a href="http://www.parlament-berlin.de/pds-fraktion.nsf/727459127c8b66ee8525662300459099/defc77cb784f180ac1256c2b0030274b/$FILE/bersarint.pdf">
-# says that Bersarin issued an order to use Moscow time on May 20.
-# However, Moscow did not observe daylight saving in 1945, so
-# this was equivalent to CEMT (GMT+3), not GMT+4.
-
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Germany	1945	only	-	Apr	 2	2:00s	1:00	S
-Rule	Germany	1945	only	-	May	24	2:00	2:00	M # Midsummer
-Rule	Germany	1945	only	-	Sep	24	3:00	1:00	S
-Rule	Germany	1945	only	-	Nov	18	2:00s	0	-
-Rule	Germany	1946	only	-	Apr	14	2:00s	1:00	S
-Rule	Germany	1946	only	-	Oct	 7	2:00s	0	-
-Rule	Germany	1947	1949	-	Oct	Sun>=1	2:00s	0	-
-Rule	Germany	1947	only	-	Apr	 6	2:00s	1:00	S
-Rule	Germany	1947	only	-	May	11	2:00s	2:00	M
-Rule	Germany	1947	only	-	Jun	29	3:00	1:00	S
-Rule	Germany	1948	only	-	Apr	18	2:00s	1:00	S
-Rule	Germany	1949	only	-	Apr	10	2:00s	1:00	S
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Europe/Berlin	0:53:28 -	LMT	1893 Apr
-			1:00	C-Eur	CE%sT	1945 Apr 2 2:00
-			1:00	Germany	CE%sT	1980
-			1:00	EU	CE%sT
-
-# Georgia
-# Please see the "asia" file for Asia/Tbilisi.
-# Herodotus (Histories, IV.45) says Georgia north of the Phasis (now Rioni)
-# is in Europe.  Our reference location Tbilisi is in the Asian part.
-
-# Gibraltar
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Europe/Gibraltar	-0:21:24 -	LMT	1880 Aug  2 0:00s
-			0:00	GB-Eire	%s	1957 Apr 14 2:00
-			1:00	-	CET	1982
-			1:00	EU	CE%sT
-
-# Greece
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-# Whitman gives 1932 Jul 5 - Nov 1; go with Shanks & Pottenger.
-Rule	Greece	1932	only	-	Jul	 7	0:00	1:00	S
-Rule	Greece	1932	only	-	Sep	 1	0:00	0	-
-# Whitman gives 1941 Apr 25 - ?; go with Shanks & Pottenger.
-Rule	Greece	1941	only	-	Apr	 7	0:00	1:00	S
-# Whitman gives 1942 Feb 2 - ?; go with Shanks & Pottenger.
-Rule	Greece	1942	only	-	Nov	 2	3:00	0	-
-Rule	Greece	1943	only	-	Mar	30	0:00	1:00	S
-Rule	Greece	1943	only	-	Oct	 4	0:00	0	-
-# Whitman gives 1944 Oct 3 - Oct 31; go with Shanks & Pottenger.
-Rule	Greece	1952	only	-	Jul	 1	0:00	1:00	S
-Rule	Greece	1952	only	-	Nov	 2	0:00	0	-
-Rule	Greece	1975	only	-	Apr	12	0:00s	1:00	S
-Rule	Greece	1975	only	-	Nov	26	0:00s	0	-
-Rule	Greece	1976	only	-	Apr	11	2:00s	1:00	S
-Rule	Greece	1976	only	-	Oct	10	2:00s	0	-
-Rule	Greece	1977	1978	-	Apr	Sun>=1	2:00s	1:00	S
-Rule	Greece	1977	only	-	Sep	26	2:00s	0	-
-Rule	Greece	1978	only	-	Sep	24	4:00	0	-
-Rule	Greece	1979	only	-	Apr	 1	9:00	1:00	S
-Rule	Greece	1979	only	-	Sep	29	2:00	0	-
-Rule	Greece	1980	only	-	Apr	 1	0:00	1:00	S
-Rule	Greece	1980	only	-	Sep	28	0:00	0	-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Europe/Athens	1:34:52 -	LMT	1895 Sep 14
-			1:34:52	-	AMT	1916 Jul 28 0:01     # Athens MT
-			2:00	Greece	EE%sT	1941 Apr 30
-			1:00	Greece	CE%sT	1944 Apr  4
-			2:00	Greece	EE%sT	1981
-			# Shanks & Pottenger say it switched to C-Eur in 1981;
-			# go with EU instead, since Greece joined it on Jan 1.
-			2:00	EU	EE%sT
-
-# Hungary
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Hungary	1918	only	-	Apr	 1	 3:00	1:00	S
-Rule	Hungary	1918	only	-	Sep	29	 3:00	0	-
-Rule	Hungary	1919	only	-	Apr	15	 3:00	1:00	S
-Rule	Hungary	1919	only	-	Sep	15	 3:00	0	-
-Rule	Hungary	1920	only	-	Apr	 5	 3:00	1:00	S
-Rule	Hungary	1920	only	-	Sep	30	 3:00	0	-
-Rule	Hungary	1945	only	-	May	 1	23:00	1:00	S
-Rule	Hungary	1945	only	-	Nov	 3	 0:00	0	-
-Rule	Hungary	1946	only	-	Mar	31	 2:00s	1:00	S
-Rule	Hungary	1946	1949	-	Oct	Sun>=1	 2:00s	0	-
-Rule	Hungary	1947	1949	-	Apr	Sun>=4	 2:00s	1:00	S
-Rule	Hungary	1950	only	-	Apr	17	 2:00s	1:00	S
-Rule	Hungary	1950	only	-	Oct	23	 2:00s	0	-
-Rule	Hungary	1954	1955	-	May	23	 0:00	1:00	S
-Rule	Hungary	1954	1955	-	Oct	 3	 0:00	0	-
-Rule	Hungary	1956	only	-	Jun	Sun>=1	 0:00	1:00	S
-Rule	Hungary	1956	only	-	Sep	lastSun	 0:00	0	-
-Rule	Hungary	1957	only	-	Jun	Sun>=1	 1:00	1:00	S
-Rule	Hungary	1957	only	-	Sep	lastSun	 3:00	0	-
-Rule	Hungary	1980	only	-	Apr	 6	 1:00	1:00	S
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Europe/Budapest	1:16:20 -	LMT	1890 Oct
-			1:00	C-Eur	CE%sT	1918
-			1:00	Hungary	CE%sT	1941 Apr  6  2:00
-			1:00	C-Eur	CE%sT	1945 May  1 23:00
-			1:00	Hungary	CE%sT	1980 Sep 28  2:00s
-			1:00	EU	CE%sT
-
-# Iceland
-#
-# From Adam David (1993-11-06):
-# The name of the timezone in Iceland for system / mail / news purposes is GMT.
-#
-# (1993-12-05):
-# This material is paraphrased from the 1988 edition of the University of
-# Iceland Almanak.
-#
-# From January 1st, 1908 the whole of Iceland was standardised at 1 hour
-# behind GMT. Previously, local mean solar time was used in different parts
-# of Iceland, the almanak had been based on Reykjavik mean solar time which
-# was 1 hour and 28 minutes behind GMT.
-#
-# "first day of winter" referred to [below] means the first day of the 26 weeks
-# of winter, according to the old icelandic calendar that dates back to the
-# time the norsemen first settled Iceland.  The first day of winter is always
-# Saturday, but is not dependent on the Julian or Gregorian calendars.
-#
-# (1993-12-10):
-# I have a reference from the Oxford Icelandic-English dictionary for the
-# beginning of winter, which ties it to the ecclesiastical calendar (and thus
-# to the julian/gregorian calendar) over the period in question.
-#	the winter begins on the Saturday next before St. Luke's day
-#	(old style), or on St. Luke's day, if a Saturday.
-# St. Luke's day ought to be traceable from ecclesiastical sources. "old style"
-# might be a reference to the Julian calendar as opposed to Gregorian, or it
-# might mean something else (???).
-#
-# From Paul Eggert (2006-03-22):
-# The Iceland Almanak, Shanks & Pottenger, and Whitman disagree on many points.
-# We go with the Almanak, except for one claim from Shanks & Pottenger, namely
-# that Reykavik was 21W57 from 1837 to 1908, local mean time before that.
-#
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Iceland	1917	1918	-	Feb	19	23:00	1:00	S
-Rule	Iceland	1917	only	-	Oct	21	 1:00	0	-
-Rule	Iceland	1918	only	-	Nov	16	 1:00	0	-
-Rule	Iceland	1939	only	-	Apr	29	23:00	1:00	S
-Rule	Iceland	1939	only	-	Nov	29	 2:00	0	-
-Rule	Iceland	1940	only	-	Feb	25	 2:00	1:00	S
-Rule	Iceland	1940	only	-	Nov	 3	 2:00	0	-
-Rule	Iceland	1941	only	-	Mar	 2	 1:00s	1:00	S
-Rule	Iceland	1941	only	-	Nov	 2	 1:00s	0	-
-Rule	Iceland	1942	only	-	Mar	 8	 1:00s	1:00	S
-Rule	Iceland	1942	only	-	Oct	25	 1:00s	0	-
-# 1943-1946 - first Sunday in March until first Sunday in winter
-Rule	Iceland	1943	1946	-	Mar	Sun>=1	 1:00s	1:00	S
-Rule	Iceland	1943	1948	-	Oct	Sun>=22	 1:00s	0	-
-# 1947-1967 - first Sunday in April until first Sunday in winter
-Rule	Iceland	1947	1967	-	Apr	Sun>=1	 1:00s	1:00	S
-# 1949 Oct transition delayed by 1 week
-Rule	Iceland	1949	only	-	Oct	30	 1:00s	0	-
-Rule	Iceland	1950	1966	-	Oct	Sun>=22	 1:00s	0	-
-Rule	Iceland	1967	only	-	Oct	29	 1:00s	0	-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Atlantic/Reykjavik	-1:27:24 -	LMT	1837
-			-1:27:48 -	RMT	1908 # Reykjavik Mean Time?
-			-1:00	Iceland	IS%sT	1968 Apr 7 1:00s
-			 0:00	-	GMT
-
-# Italy
-#
-# From Paul Eggert (2001-03-06):
-# Sicily and Sardinia each had their own time zones from 1866 to 1893,
-# called Palermo Time (+00:53:28) and Cagliari Time (+00:36:32).
-# During World War II, German-controlled Italy used German time.
-# But these events all occurred before the 1970 cutoff,
-# so record only the time in Rome.
-#
-# From Paul Eggert (2006-03-22):
-# For Italian DST we have three sources: Shanks & Pottenger, Whitman, and
-# F. Pollastri
-# <a href="http://toi.iriti.cnr.it/uk/ienitlt.html">
-# Day-light Saving Time in Italy (2006-02-03)
-# </a>
-# (`FP' below), taken from an Italian National Electrotechnical Institute
-# publication. When the three sources disagree, guess who's right, as follows:
-#
-# year	FP	Shanks&P. (S)	Whitman (W)	Go with:
-# 1916	06-03	06-03 24:00	06-03 00:00	FP & W
-#	09-30	09-30 24:00	09-30 01:00	FP; guess 24:00s
-# 1917	04-01	03-31 24:00	03-31 00:00	FP & S
-#	09-30	09-29 24:00	09-30 01:00	FP & W
-# 1918	03-09	03-09 24:00	03-09 00:00	FP & S
-#	10-06	10-05 24:00	10-06 01:00	FP & W
-# 1919	03-01	03-01 24:00	03-01 00:00	FP & S
-#	10-04	10-04 24:00	10-04 01:00	FP; guess 24:00s
-# 1920	03-20	03-20 24:00	03-20 00:00	FP & S
-#	09-18	09-18 24:00	10-01 01:00	FP; guess 24:00s
-# 1944	04-02	04-03 02:00			S (see C-Eur)
-#	09-16	10-02 03:00			FP; guess 24:00s
-# 1945	09-14	09-16 24:00			FP; guess 24:00s
-# 1970	05-21	05-31 00:00			S
-#	09-20	09-27 00:00			S
-#
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Italy	1916	only	-	Jun	 3	0:00s	1:00	S
-Rule	Italy	1916	only	-	Oct	 1	0:00s	0	-
-Rule	Italy	1917	only	-	Apr	 1	0:00s	1:00	S
-Rule	Italy	1917	only	-	Sep	30	0:00s	0	-
-Rule	Italy	1918	only	-	Mar	10	0:00s	1:00	S
-Rule	Italy	1918	1919	-	Oct	Sun>=1	0:00s	0	-
-Rule	Italy	1919	only	-	Mar	 2	0:00s	1:00	S
-Rule	Italy	1920	only	-	Mar	21	0:00s	1:00	S
-Rule	Italy	1920	only	-	Sep	19	0:00s	0	-
-Rule	Italy	1940	only	-	Jun	15	0:00s	1:00	S
-Rule	Italy	1944	only	-	Sep	17	0:00s	0	-
-Rule	Italy	1945	only	-	Apr	 2	2:00	1:00	S
-Rule	Italy	1945	only	-	Sep	15	0:00s	0	-
-Rule	Italy	1946	only	-	Mar	17	2:00s	1:00	S
-Rule	Italy	1946	only	-	Oct	 6	2:00s	0	-
-Rule	Italy	1947	only	-	Mar	16	0:00s	1:00	S
-Rule	Italy	1947	only	-	Oct	 5	0:00s	0	-
-Rule	Italy	1948	only	-	Feb	29	2:00s	1:00	S
-Rule	Italy	1948	only	-	Oct	 3	2:00s	0	-
-Rule	Italy	1966	1968	-	May	Sun>=22	0:00	1:00	S
-Rule	Italy	1966	1969	-	Sep	Sun>=22	0:00	0	-
-Rule	Italy	1969	only	-	Jun	 1	0:00	1:00	S
-Rule	Italy	1970	only	-	May	31	0:00	1:00	S
-Rule	Italy	1970	only	-	Sep	lastSun	0:00	0	-
-Rule	Italy	1971	1972	-	May	Sun>=22	0:00	1:00	S
-Rule	Italy	1971	only	-	Sep	lastSun	1:00	0	-
-Rule	Italy	1972	only	-	Oct	 1	0:00	0	-
-Rule	Italy	1973	only	-	Jun	 3	0:00	1:00	S
-Rule	Italy	1973	1974	-	Sep	lastSun	0:00	0	-
-Rule	Italy	1974	only	-	May	26	0:00	1:00	S
-Rule	Italy	1975	only	-	Jun	 1	0:00s	1:00	S
-Rule	Italy	1975	1977	-	Sep	lastSun	0:00s	0	-
-Rule	Italy	1976	only	-	May	30	0:00s	1:00	S
-Rule	Italy	1977	1979	-	May	Sun>=22	0:00s	1:00	S
-Rule	Italy	1978	only	-	Oct	 1	0:00s	0	-
-Rule	Italy	1979	only	-	Sep	30	0:00s	0	-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Europe/Rome	0:49:56 -	LMT	1866 Sep 22
-			0:49:56	-	RMT	1893 Nov  1 0:00s # Rome Mean
-			1:00	Italy	CE%sT	1942 Nov  2 2:00s
-			1:00	C-Eur	CE%sT	1944 Jul
-			1:00	Italy	CE%sT	1980
-			1:00	EU	CE%sT
-
-Link	Europe/Rome	Europe/Vatican
-Link	Europe/Rome	Europe/San_Marino
-
-# Latvia
-
-# From Liene Kanepe (1998-09-17):
-
-# I asked about this matter Scientific Secretary of the Institute of Astronomy
-# of The University of Latvia Dr. paed Mr. Ilgonis Vilks. I also searched the
-# correct data in juridical acts and I found some juridical documents about
-# changes in the counting of time in Latvia from 1981....
-#
-# Act No.35 of the Council of Ministers of Latvian SSR of 1981-01-22 ...
-# according to the Act No.925 of the Council of Ministers of USSR of 1980-10-24
-# ...: all year round the time of 2nd time zone + 1 hour, in addition turning
-# the hands of the clock 1 hour forward on 1 April at 00:00 (GMT 31 March 21:00)
-# and 1 hour backward on the 1 October at 00:00 (GMT 30 September 20:00).
-#
-# Act No.592 of the Council of Ministers of Latvian SSR of 1984-09-24 ...
-# according to the Act No.967 of the Council of Ministers of USSR of 1984-09-13
-# ...: all year round the time of 2nd time zone + 1 hour, in addition turning
-# the hands of the clock 1 hour forward on the last Sunday of March at 02:00
-# (GMT 23:00 on the previous day) and 1 hour backward on the last Sunday of
-# September at 03:00 (GMT 23:00 on the previous day).
-#
-# Act No.81 of the Council of Ministers of Latvian SSR of 1989-03-22 ...
-# according to the Act No.227 of the Council of Ministers of USSR of 1989-03-14
-# ...: since the last Sunday of March 1989 in Lithuanian SSR, Latvian SSR,
-# Estonian SSR and Kaliningrad region of Russian Federation all year round the
-# time of 2nd time zone (Moscow time minus one hour). On the territory of Latvia
-# transition to summer time is performed on the last Sunday of March at 02:00
-# (GMT 00:00), turning the hands of the clock 1 hour forward.  The end of
-# daylight saving time is performed on the last Sunday of September at 03:00
-# (GMT 00:00), turning the hands of the clock 1 hour backward. Exception is
-# 1989-03-26, when we must not turn the hands of the clock....
-#
-# The Regulations of the Cabinet of Ministers of the Republic of Latvia of
-# 1997-01-21 on transition to Summer time ... established the same order of
-# daylight savings time settings as in the States of the European Union.
-
-# From Andrei Ivanov (2000-03-06):
-# This year Latvia will not switch to Daylight Savings Time (as specified in
-# <a href="http://www.lv-laiks.lv/wwwraksti/2000/071072/vd4.htm">
-# The Regulations of the Cabinet of Ministers of the Rep. of Latvia of
-# 29-Feb-2000 (#79)</a>, in Latvian for subscribers only).
-
-# <a href="http://www.rferl.org/newsline/2001/01/3-CEE/cee-030101.html">
-# From RFE/RL Newsline (2001-01-03), noted after a heads-up by Rives McDow:
-# </a>
-# The Latvian government on 2 January decided that the country will
-# institute daylight-saving time this spring, LETA reported.
-# Last February the three Baltic states decided not to turn back their
-# clocks one hour in the spring....
-# Minister of Economy Aigars Kalvitis noted that Latvia had too few
-# daylight hours and thus decided to comply with a draft European
-# Commission directive that provides for instituting daylight-saving
-# time in EU countries between 2002 and 2006. The Latvian government
-# urged Lithuania and Estonia to adopt a similar time policy, but it
-# appears that they will not do so....
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Latvia	1989	1996	-	Mar	lastSun	 2:00s	1:00	S
-Rule	Latvia	1989	1996	-	Sep	lastSun	 2:00s	0	-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Europe/Riga	1:36:24	-	LMT	1880
-			1:36:24	-	RMT	1918 Apr 15 2:00 #Riga Mean Time
-			1:36:24	1:00	LST	1918 Sep 16 3:00 #Latvian Summer
-			1:36:24	-	RMT	1919 Apr  1 2:00
-			1:36:24	1:00	LST	1919 May 22 3:00
-			1:36:24	-	RMT	1926 May 11
-			2:00	-	EET	1940 Aug  5
-			3:00	-	MSK	1941 Jul
-			1:00	C-Eur	CE%sT	1944 Oct 13
-			3:00	Russia	MSK/MSD	1989 Mar lastSun 2:00s
-			2:00	1:00	EEST	1989 Sep lastSun 2:00s
-			2:00	Latvia	EE%sT	1997 Jan 21
-			2:00	EU	EE%sT	2000 Feb 29
-			2:00	-	EET	2001 Jan  2
-			2:00	EU	EE%sT
-
-# Liechtenstein
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Europe/Vaduz	0:38:04 -	LMT	1894 Jun
-			1:00	-	CET	1981
-			1:00	EU	CE%sT
-
-# Lithuania
-
-# From Paul Eggert (1996-11-22):
-# IATA SSIM (1992/1996) says Lithuania uses W-Eur rules, but since it is
-# known to be wrong about Estonia and Latvia, assume it's wrong here too.
-
-# From Marius Gedminas (1998-08-07):
-# I would like to inform that in this year Lithuanian time zone
-# (Europe/Vilnius) was changed.
-
-# From <a href="http://www.elta.lt/">ELTA</a> No. 972 (2582) (1999-09-29),
-# via Steffen Thorsen:
-# Lithuania has shifted back to the second time zone (GMT plus two hours)
-# to be valid here starting from October 31,
-# as decided by the national government on Wednesday....
-# The Lithuanian government also announced plans to consider a
-# motion to give up shifting to summer time in spring, as it was
-# already done by Estonia.
-
-# From the <a href="http://www.tourism.lt/informa/ff.htm">
-# Fact File, Lithuanian State Department of Tourism
-# </a> (2000-03-27): Local time is GMT+2 hours ..., no daylight saving.
-
-# From a user via Klaus Marten (2003-02-07):
-# As a candidate for membership of the European Union, Lithuania will
-# observe Summer Time in 2003, changing its clocks at the times laid
-# down in EU Directive 2000/84 of 19.I.01 (i.e. at the same times as its
-# neighbour Latvia). The text of the Lithuanian government Order of
-# 7.XI.02 to this effect can be found at
-# http://www.lrvk.lt/nut/11/n1749.htm
-
-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Europe/Vilnius	1:41:16	-	LMT	1880
-			1:24:00	-	WMT	1917	    # Warsaw Mean Time
-			1:35:36	-	KMT	1919 Oct 10 # Kaunas Mean Time
-			1:00	-	CET	1920 Jul 12
-			2:00	-	EET	1920 Oct  9
-			1:00	-	CET	1940 Aug  3
-			3:00	-	MSK	1941 Jun 24
-			1:00	C-Eur	CE%sT	1944 Aug
-			3:00	Russia	MSK/MSD	1991 Mar 31 2:00s
-			2:00	1:00	EEST	1991 Sep 29 2:00s
-			2:00	C-Eur	EE%sT	1998
-			2:00	-	EET	1998 Mar 29 1:00u
-			1:00	EU	CE%sT	1999 Oct 31 1:00u
-			2:00	-	EET	2003 Jan  1
-			2:00	EU	EE%sT
-
-# Luxembourg
-# Whitman disagrees with most of these dates in minor ways;
-# go with Shanks & Pottenger.
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Lux	1916	only	-	May	14	23:00	1:00	S
-Rule	Lux	1916	only	-	Oct	 1	 1:00	0	-
-Rule	Lux	1917	only	-	Apr	28	23:00	1:00	S
-Rule	Lux	1917	only	-	Sep	17	 1:00	0	-
-Rule	Lux	1918	only	-	Apr	Mon>=15	 2:00s	1:00	S
-Rule	Lux	1918	only	-	Sep	Mon>=15	 2:00s	0	-
-Rule	Lux	1919	only	-	Mar	 1	23:00	1:00	S
-Rule	Lux	1919	only	-	Oct	 5	 3:00	0	-
-Rule	Lux	1920	only	-	Feb	14	23:00	1:00	S
-Rule	Lux	1920	only	-	Oct	24	 2:00	0	-
-Rule	Lux	1921	only	-	Mar	14	23:00	1:00	S
-Rule	Lux	1921	only	-	Oct	26	 2:00	0	-
-Rule	Lux	1922	only	-	Mar	25	23:00	1:00	S
-Rule	Lux	1922	only	-	Oct	Sun>=2	 1:00	0	-
-Rule	Lux	1923	only	-	Apr	21	23:00	1:00	S
-Rule	Lux	1923	only	-	Oct	Sun>=2	 2:00	0	-
-Rule	Lux	1924	only	-	Mar	29	23:00	1:00	S
-Rule	Lux	1924	1928	-	Oct	Sun>=2	 1:00	0	-
-Rule	Lux	1925	only	-	Apr	 5	23:00	1:00	S
-Rule	Lux	1926	only	-	Apr	17	23:00	1:00	S
-Rule	Lux	1927	only	-	Apr	 9	23:00	1:00	S
-Rule	Lux	1928	only	-	Apr	14	23:00	1:00	S
-Rule	Lux	1929	only	-	Apr	20	23:00	1:00	S
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Europe/Luxembourg	0:24:36 -	LMT	1904 Jun
-			1:00	Lux	CE%sT	1918 Nov 25
-			0:00	Lux	WE%sT	1929 Oct  6 2:00s
-			0:00	Belgium	WE%sT	1940 May 14 3:00
-			1:00	C-Eur	WE%sT	1944 Sep 18 3:00
-			1:00	Belgium	CE%sT	1977
-			1:00	EU	CE%sT
-
-# Macedonia
-# see Serbia
-
-# Malta
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Malta	1973	only	-	Mar	31	0:00s	1:00	S
-Rule	Malta	1973	only	-	Sep	29	0:00s	0	-
-Rule	Malta	1974	only	-	Apr	21	0:00s	1:00	S
-Rule	Malta	1974	only	-	Sep	16	0:00s	0	-
-Rule	Malta	1975	1979	-	Apr	Sun>=15	2:00	1:00	S
-Rule	Malta	1975	1980	-	Sep	Sun>=15	2:00	0	-
-Rule	Malta	1980	only	-	Mar	31	2:00	1:00	S
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Europe/Malta	0:58:04 -	LMT	1893 Nov  2 0:00s # Valletta
-			1:00	Italy	CE%sT	1942 Nov  2 2:00s
-			1:00	C-Eur	CE%sT	1945 Apr  2 2:00s
-			1:00	Italy	CE%sT	1973 Mar 31
-			1:00	Malta	CE%sT	1981
-			1:00	EU	CE%sT
-
-# Moldova
-
-# From Paul Eggert (2006-03-22):
-# A previous version of this database followed Shanks & Pottenger, who write
-# that Tiraspol switched to Moscow time on 1992-01-19 at 02:00.
-# However, this is most likely an error, as Moldova declared independence
-# on 1991-08-27 (the 1992-01-19 date is that of a Russian decree).
-# In early 1992 there was large-scale interethnic violence in the area
-# and it's possible that some Russophones continued to observe Moscow time.
-# But [two people] separately reported via
-# Jesper Norgaard that as of 2001-01-24 Tiraspol was like Chisinau.
-# The Tiraspol entry has therefore been removed for now.
-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Europe/Chisinau	1:55:20 -	LMT	1880
-			1:55	-	CMT	1918 Feb 15 # Chisinau MT
-			1:44:24	-	BMT	1931 Jul 24 # Bucharest MT
-			2:00	Romania	EE%sT	1940 Aug 15
-			2:00	1:00	EEST	1941 Jul 17
-			1:00	C-Eur	CE%sT	1944 Aug 24
-			3:00	Russia	MSK/MSD	1990
-			3:00	-	MSK	1990 May 6
-			2:00	-	EET	1991
-			2:00	Russia	EE%sT	1992
-			2:00	E-Eur	EE%sT	1997
-# See Romania commentary for the guessed 1997 transition to EU rules.
-			2:00	EU	EE%sT
-
-# Monaco
-# Shanks & Pottenger give 0:09:20 for Paris Mean Time; go with Howse's
-# more precise 0:09:21.
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Europe/Monaco	0:29:32 -	LMT	1891 Mar 15
-			0:09:21	-	PMT	1911 Mar 11    # Paris Mean Time
-			0:00	France	WE%sT	1945 Sep 16 3:00
-			1:00	France	CE%sT	1977
-			1:00	EU	CE%sT
-
-# Montenegro
-# see Serbia
-
-# Netherlands
-
-# Howse writes that the Netherlands' railways used GMT between 1892 and 1940,
-# but for other purposes the Netherlands used Amsterdam mean time.
-
-# However, Robert H. van Gent writes (2001-04-01):
-# Howse's statement is only correct up to 1909. From 1909-05-01 (00:00:00
-# Amsterdam mean time) onwards, the whole of the Netherlands (including
-# the Dutch railways) was required by law to observe Amsterdam mean time
-# (19 minutes 32.13 seconds ahead of GMT). This had already been the
-# common practice (except for the railways) for many decades but it was
-# not until 1909 when the Dutch government finally defined this by law.
-# On 1937-07-01 this was changed to 20 minutes (exactly) ahead of GMT and
-# was generally known as Dutch Time ("Nederlandse Tijd").
-#
-# (2001-04-08):
-# 1892-05-01 was the date when the Dutch railways were by law required to
-# observe GMT while the remainder of the Netherlands adhered to the common
-# practice of following Amsterdam mean time.
-#
-# (2001-04-09):
-# In 1835 the authorities of the province of North Holland requested the
-# municipal authorities of the towns and cities in the province to observe
-# Amsterdam mean time but I do not know in how many cases this request was
-# actually followed.
-#
-# From 1852 onwards the Dutch telegraph offices were by law required to
-# observe Amsterdam mean time. As the time signals from the observatory of
-# Leiden were also distributed by the telegraph system, I assume that most
-# places linked up with the telegraph (and railway) system automatically
-# adopted Amsterdam mean time.
-#
-# Although the early Dutch railway companies initially observed a variety
-# of times, most of them had adopted Amsterdam mean time by 1858 but it
-# was not until 1866 when they were all required by law to observe
-# Amsterdam mean time.
-
-# The data before 1945 are taken from
-# <http://www.phys.uu.nl/~vgent/wettijd/wettijd.htm>.
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Neth	1916	only	-	May	 1	0:00	1:00	NST	# Netherlands Summer Time
-Rule	Neth	1916	only	-	Oct	 1	0:00	0	AMT	# Amsterdam Mean Time
-Rule	Neth	1917	only	-	Apr	16	2:00s	1:00	NST
-Rule	Neth	1917	only	-	Sep	17	2:00s	0	AMT
-Rule	Neth	1918	1921	-	Apr	Mon>=1	2:00s	1:00	NST
-Rule	Neth	1918	1921	-	Sep	lastMon	2:00s	0	AMT
-Rule	Neth	1922	only	-	Mar	lastSun	2:00s	1:00	NST
-Rule	Neth	1922	1936	-	Oct	Sun>=2	2:00s	0	AMT
-Rule	Neth	1923	only	-	Jun	Fri>=1	2:00s	1:00	NST
-Rule	Neth	1924	only	-	Mar	lastSun	2:00s	1:00	NST
-Rule	Neth	1925	only	-	Jun	Fri>=1	2:00s	1:00	NST
-# From 1926 through 1939 DST began 05-15, except that it was delayed by a week
-# in years when 05-15 fell in the Pentecost weekend.
-Rule	Neth	1926	1931	-	May	15	2:00s	1:00	NST
-Rule	Neth	1932	only	-	May	22	2:00s	1:00	NST
-Rule	Neth	1933	1936	-	May	15	2:00s	1:00	NST
-Rule	Neth	1937	only	-	May	22	2:00s	1:00	NST
-Rule	Neth	1937	only	-	Jul	 1	0:00	1:00	S
-Rule	Neth	1937	1939	-	Oct	Sun>=2	2:00s	0	-
-Rule	Neth	1938	1939	-	May	15	2:00s	1:00	S
-Rule	Neth	1945	only	-	Apr	 2	2:00s	1:00	S
-Rule	Neth	1945	only	-	Sep	16	2:00s	0	-
-#
-# Amsterdam Mean Time was +00:19:32.13 exactly, but the .13 is omitted
-# below because the current format requires GMTOFF to be an integer.
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Europe/Amsterdam	0:19:32 -	LMT	1835
-			0:19:32	Neth	%s	1937 Jul  1
-			0:20	Neth	NE%sT	1940 May 16 0:00 # Dutch Time
-			1:00	C-Eur	CE%sT	1945 Apr  2 2:00
-			1:00	Neth	CE%sT	1977
-			1:00	EU	CE%sT
-
-# Norway
-# http://met.no/met/met_lex/q_u/sommertid.html (2004-01) agrees with Shanks &
-# Pottenger.
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Norway	1916	only	-	May	22	1:00	1:00	S
-Rule	Norway	1916	only	-	Sep	30	0:00	0	-
-Rule	Norway	1945	only	-	Apr	 2	2:00s	1:00	S
-Rule	Norway	1945	only	-	Oct	 1	2:00s	0	-
-Rule	Norway	1959	1964	-	Mar	Sun>=15	2:00s	1:00	S
-Rule	Norway	1959	1965	-	Sep	Sun>=15	2:00s	0	-
-Rule	Norway	1965	only	-	Apr	25	2:00s	1:00	S
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Europe/Oslo	0:43:00 -	LMT	1895 Jan  1
-			1:00	Norway	CE%sT	1940 Aug 10 23:00
-			1:00	C-Eur	CE%sT	1945 Apr  2  2:00
-			1:00	Norway	CE%sT	1980
-			1:00	EU	CE%sT
-
-# Svalbard & Jan Mayen
-
-# From Steffen Thorsen (2001-05-01):
-# Although I could not find it explicitly, it seems that Jan Mayen and
-# Svalbard have been using the same time as Norway at least since the
-# time they were declared as parts of Norway.  Svalbard was declared
-# as a part of Norway by law of 1925-07-17 no 11, section 4 and Jan
-# Mayen by law of 1930-02-27 no 2, section 2. (From
-# http://www.lovdata.no/all/nl-19250717-011.html and
-# http://www.lovdata.no/all/nl-19300227-002.html).  The law/regulation
-# for normal/standard time in Norway is from 1894-06-29 no 1 (came
-# into operation on 1895-01-01) and Svalbard/Jan Mayen seem to be a
-# part of this law since 1925/1930. (From
-# http://www.lovdata.no/all/nl-18940629-001.html ) I have not been
-# able to find if Jan Mayen used a different time zone (e.g. -0100)
-# before 1930. Jan Mayen has only been "inhabitated" since 1921 by
-# Norwegian meteorologists and maybe used the same time as Norway ever
-# since 1921.  Svalbard (Arctic/Longyearbyen) has been inhabited since
-# before 1895, and therefore probably changed the local time somewhere
-# between 1895 and 1925 (inclusive).
-
-# From Paul Eggert (2001-05-01):
-#
-# Actually, Jan Mayen was never occupied by Germany during World War II,
-# so it must have diverged from Oslo time during the war, as Oslo was
-# keeping Berlin time.
-#
-# <http://home.no.net/janmayen/history.htm> says that the meteorologists
-# burned down their station in 1940 and left the island, but returned in
-# 1941 with a small Norwegian garrison and continued operations despite
-# frequent air ttacks from Germans.  In 1943 the Americans established a
-# radiolocating station on the island, called "Atlantic City".  Possibly
-# the UTC offset changed during the war, but I think it unlikely that
-# Jan Mayen used German daylight-saving rules.
-#
-# Svalbard is more complicated, as it was raided in August 1941 by an
-# Allied party that evacuated the civilian population to England (says
-# <http://www.bartleby.com/65/sv/Svalbard.html>).  The Svalbard FAQ
-# <http://www.svalbard.com/SvalbardFAQ.html> says that the Germans were
-# expelled on 1942-05-14.  However, small parties of Germans did return,
-# and according to Wilhelm Dege's book "War North of 80" (1954)
-# <http://www.ucalgary.ca/UofC/departments/UP/1-55238/1-55238-110-2.html>
-# the German armed forces at the Svalbard weather station code-named
-# Haudegen did not surrender to the Allies until September 1945.
-#
-# All these events predate our cutoff date of 1970.  Unless we can
-# come up with more definitive info about the timekeeping during the
-# war years it's probably best just do do the following for now:
-Link	Europe/Oslo	Arctic/Longyearbyen
-
-# Poland
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Poland	1918	1919	-	Sep	16	2:00s	0	-
-Rule	Poland	1919	only	-	Apr	15	2:00s	1:00	S
-Rule	Poland	1944	only	-	Apr	 3	2:00s	1:00	S
-# Whitman gives 1944 Nov 30; go with Shanks & Pottenger.
-Rule	Poland	1944	only	-	Oct	 4	2:00	0	-
-# For 1944-1948 Whitman gives the previous day; go with Shanks & Pottenger.
-Rule	Poland	1945	only	-	Apr	29	0:00	1:00	S
-Rule	Poland	1945	only	-	Nov	 1	0:00	0	-
-# For 1946 on the source is Kazimierz Borkowski,
-# Torun Center for Astronomy, Dept. of Radio Astronomy, Nicolaus Copernicus U.,
-# <http://www.astro.uni.torun.pl/~kb/Artykuly/U-PA/Czas2.htm#tth_tAb1>
-# Thanks to Przemyslaw Augustyniak (2005-05-28) for this reference.
-# He also gives these further references:
-# Mon Pol nr 13, poz 162 (1995) <http://www.abc.com.pl/serwis/mp/1995/0162.htm>
-# Druk nr 2180 (2003) <http://www.senat.gov.pl/k5/dok/sejm/053/2180.pdf>
-Rule	Poland	1946	only	-	Apr	14	0:00s	1:00	S
-Rule	Poland	1946	only	-	Oct	 7	2:00s	0	-
-Rule	Poland	1947	only	-	May	 4	2:00s	1:00	S
-Rule	Poland	1947	1949	-	Oct	Sun>=1	2:00s	0	-
-Rule	Poland	1948	only	-	Apr	18	2:00s	1:00	S
-Rule	Poland	1949	only	-	Apr	10	2:00s	1:00	S
-Rule	Poland	1957	only	-	Jun	 2	1:00s	1:00	S
-Rule	Poland	1957	1958	-	Sep	lastSun	1:00s	0	-
-Rule	Poland	1958	only	-	Mar	30	1:00s	1:00	S
-Rule	Poland	1959	only	-	May	31	1:00s	1:00	S
-Rule	Poland	1959	1961	-	Oct	Sun>=1	1:00s	0	-
-Rule	Poland	1960	only	-	Apr	 3	1:00s	1:00	S
-Rule	Poland	1961	1964	-	May	lastSun	1:00s	1:00	S
-Rule	Poland	1962	1964	-	Sep	lastSun	1:00s	0	-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Europe/Warsaw	1:24:00 -	LMT	1880
-			1:24:00	-	WMT	1915 Aug  5   # Warsaw Mean Time
-			1:00	C-Eur	CE%sT	1918 Sep 16 3:00
-			2:00	Poland	EE%sT	1922 Jun
-			1:00	Poland	CE%sT	1940 Jun 23 2:00
-			1:00	C-Eur	CE%sT	1944 Oct
-			1:00	Poland	CE%sT	1977
-			1:00	W-Eur	CE%sT	1988
-			1:00	EU	CE%sT
-
-# Portugal
-#
-# From Rui Pedro Salgueiro (1992-11-12):
-# Portugal has recently (September, 27) changed timezone
-# (from WET to MET or CET) to harmonize with EEC.
-#
-# Martin Bruckmann (1996-02-29) reports via Peter Ilieve
-# that Portugal is reverting to 0:00 by not moving its clocks this spring.
-# The new Prime Minister was fed up with getting up in the dark in the winter.
-#
-# From Paul Eggert (1996-11-12):
-# IATA SSIM (1991-09) reports several 1991-09 and 1992-09 transitions
-# at 02:00u, not 01:00u.  Assume that these are typos.
-# IATA SSIM (1991/1992) reports that the Azores were at -1:00.
-# IATA SSIM (1993-02) says +0:00; later issues (through 1996-09) say -1:00.
-# Guess that the Azores changed to EU rules in 1992 (since that's when Portugal
-# harmonized with the EU), and that they stayed +0:00 that winter.
-#
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-# DSH writes that despite Decree 1,469 (1915), the change to the clocks was not
-# done every year, depending on what Spain did, because of railroad schedules.
-# Go with Shanks & Pottenger.
-Rule	Port	1916	only	-	Jun	17	23:00	1:00	S
-# Whitman gives 1916 Oct 31; go with Shanks & Pottenger.
-Rule	Port	1916	only	-	Nov	 1	 1:00	0	-
-Rule	Port	1917	only	-	Feb	28	23:00s	1:00	S
-Rule	Port	1917	1921	-	Oct	14	23:00s	0	-
-Rule	Port	1918	only	-	Mar	 1	23:00s	1:00	S
-Rule	Port	1919	only	-	Feb	28	23:00s	1:00	S
-Rule	Port	1920	only	-	Feb	29	23:00s	1:00	S
-Rule	Port	1921	only	-	Feb	28	23:00s	1:00	S
-Rule	Port	1924	only	-	Apr	16	23:00s	1:00	S
-Rule	Port	1924	only	-	Oct	14	23:00s	0	-
-Rule	Port	1926	only	-	Apr	17	23:00s	1:00	S
-Rule	Port	1926	1929	-	Oct	Sat>=1	23:00s	0	-
-Rule	Port	1927	only	-	Apr	 9	23:00s	1:00	S
-Rule	Port	1928	only	-	Apr	14	23:00s	1:00	S
-Rule	Port	1929	only	-	Apr	20	23:00s	1:00	S
-Rule	Port	1931	only	-	Apr	18	23:00s	1:00	S
-# Whitman gives 1931 Oct 8; go with Shanks & Pottenger.
-Rule	Port	1931	1932	-	Oct	Sat>=1	23:00s	0	-
-Rule	Port	1932	only	-	Apr	 2	23:00s	1:00	S
-Rule	Port	1934	only	-	Apr	 7	23:00s	1:00	S
-# Whitman gives 1934 Oct 5; go with Shanks & Pottenger.
-Rule	Port	1934	1938	-	Oct	Sat>=1	23:00s	0	-
-# Shanks & Pottenger give 1935 Apr 30; go with Whitman.
-Rule	Port	1935	only	-	Mar	30	23:00s	1:00	S
-Rule	Port	1936	only	-	Apr	18	23:00s	1:00	S
-# Whitman gives 1937 Apr 2; go with Shanks & Pottenger.
-Rule	Port	1937	only	-	Apr	 3	23:00s	1:00	S
-Rule	Port	1938	only	-	Mar	26	23:00s	1:00	S
-Rule	Port	1939	only	-	Apr	15	23:00s	1:00	S
-# Whitman gives 1939 Oct 7; go with Shanks & Pottenger.
-Rule	Port	1939	only	-	Nov	18	23:00s	0	-
-Rule	Port	1940	only	-	Feb	24	23:00s	1:00	S
-# Shanks & Pottenger give 1940 Oct 7; go with Whitman.
-Rule	Port	1940	1941	-	Oct	 5	23:00s	0	-
-Rule	Port	1941	only	-	Apr	 5	23:00s	1:00	S
-Rule	Port	1942	1945	-	Mar	Sat>=8	23:00s	1:00	S
-Rule	Port	1942	only	-	Apr	25	22:00s	2:00	M # Midsummer
-Rule	Port	1942	only	-	Aug	15	22:00s	1:00	S
-Rule	Port	1942	1945	-	Oct	Sat>=24	23:00s	0	-
-Rule	Port	1943	only	-	Apr	17	22:00s	2:00	M
-Rule	Port	1943	1945	-	Aug	Sat>=25	22:00s	1:00	S
-Rule	Port	1944	1945	-	Apr	Sat>=21	22:00s	2:00	M
-Rule	Port	1946	only	-	Apr	Sat>=1	23:00s	1:00	S
-Rule	Port	1946	only	-	Oct	Sat>=1	23:00s	0	-
-Rule	Port	1947	1949	-	Apr	Sun>=1	 2:00s	1:00	S
-Rule	Port	1947	1949	-	Oct	Sun>=1	 2:00s	0	-
-# Shanks & Pottenger say DST was observed in 1950; go with Whitman.
-# Whitman gives Oct lastSun for 1952 on; go with Shanks & Pottenger.
-Rule	Port	1951	1965	-	Apr	Sun>=1	 2:00s	1:00	S
-Rule	Port	1951	1965	-	Oct	Sun>=1	 2:00s	0	-
-Rule	Port	1977	only	-	Mar	27	 0:00s	1:00	S
-Rule	Port	1977	only	-	Sep	25	 0:00s	0	-
-Rule	Port	1978	1979	-	Apr	Sun>=1	 0:00s	1:00	S
-Rule	Port	1978	only	-	Oct	 1	 0:00s	0	-
-Rule	Port	1979	1982	-	Sep	lastSun	 1:00s	0	-
-Rule	Port	1980	only	-	Mar	lastSun	 0:00s	1:00	S
-Rule	Port	1981	1982	-	Mar	lastSun	 1:00s	1:00	S
-Rule	Port	1983	only	-	Mar	lastSun	 2:00s	1:00	S
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-# Shanks & Pottenger say the transition from LMT to WET occurred 1911-05-24;
-# Willett says 1912-01-01.  Go with Willett.
-Zone	Europe/Lisbon	-0:36:32 -	LMT	1884
-			-0:36:32 -	LMT	1912 Jan  1  # Lisbon Mean Time
-			 0:00	Port	WE%sT	1966 Apr  3 2:00
-			 1:00	-	CET	1976 Sep 26 1:00
-			 0:00	Port	WE%sT	1983 Sep 25 1:00s
-			 0:00	W-Eur	WE%sT	1992 Sep 27 1:00s
-			 1:00	EU	CE%sT	1996 Mar 31 1:00u
-			 0:00	EU	WE%sT
-Zone Atlantic/Azores	-1:42:40 -	LMT	1884		# Ponta Delgada
-			-1:54:32 -	HMT	1911 May 24  # Horta Mean Time
-			-2:00	Port	AZO%sT	1966 Apr  3 2:00 # Azores Time
-			-1:00	Port	AZO%sT	1983 Sep 25 1:00s
-			-1:00	W-Eur	AZO%sT	1992 Sep 27 1:00s
-			 0:00	EU	WE%sT	1993 Mar 28 1:00u
-			-1:00	EU	AZO%sT
-Zone Atlantic/Madeira	-1:07:36 -	LMT	1884		# Funchal
-			-1:07:36 -	FMT	1911 May 24  # Funchal Mean Time
-			-1:00	Port	MAD%sT	1966 Apr  3 2:00 # Madeira Time
-			 0:00	Port	WE%sT	1983 Sep 25 1:00s
-			 0:00	EU	WE%sT
-
-# Romania
-#
-# From Paul Eggert (1999-10-07):
-# <a href="http://www.nineoclock.ro/POL/1778pol.html">
-# Nine O'clock</a> (1998-10-23) reports that the switch occurred at
-# 04:00 local time in fall 1998.  For lack of better info,
-# assume that Romania and Moldova switched to EU rules in 1997,
-# the same year as Bulgaria.
-#
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Romania	1932	only	-	May	21	 0:00s	1:00	S
-Rule	Romania	1932	1939	-	Oct	Sun>=1	 0:00s	0	-
-Rule	Romania	1933	1939	-	Apr	Sun>=2	 0:00s	1:00	S
-Rule	Romania	1979	only	-	May	27	 0:00	1:00	S
-Rule	Romania	1979	only	-	Sep	lastSun	 0:00	0	-
-Rule	Romania	1980	only	-	Apr	 5	23:00	1:00	S
-Rule	Romania	1980	only	-	Sep	lastSun	 1:00	0	-
-Rule	Romania	1991	1993	-	Mar	lastSun	 0:00s	1:00	S
-Rule	Romania	1991	1993	-	Sep	lastSun	 0:00s	0	-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Europe/Bucharest	1:44:24 -	LMT	1891 Oct
-			1:44:24	-	BMT	1931 Jul 24	# Bucharest MT
-			2:00	Romania	EE%sT	1981 Mar 29 2:00s
-			2:00	C-Eur	EE%sT	1991
-			2:00	Romania	EE%sT	1994
-			2:00	E-Eur	EE%sT	1997
-			2:00	EU	EE%sT
-
-# Russia
-
-# From Paul Eggert (2006-03-22):
-# Except for Moscow after 1919-07-01, I invented the time zone abbreviations.
-# Moscow time zone abbreviations after 1919-07-01, and Moscow rules after 1991,
-# are from Andrey A. Chernov.  The rest is from Shanks & Pottenger,
-# except we follow Chernov's report that 1992 DST transitions were Sat
-# 23:00, not Sun 02:00s.
-#
-# From Stanislaw A. Kuzikowski (1994-06-29):
-# But now it is some months since Novosibirsk is 3 hours ahead of Moscow!
-# I do not know why they have decided to make this change;
-# as far as I remember it was done exactly during winter->summer switching
-# so we (Novosibirsk) simply did not switch.
-#
-# From Andrey A. Chernov (1996-10-04):
-# `MSK' and `MSD' were born and used initially on Moscow computers with
-# UNIX-like OSes by several developer groups (e.g. Demos group, Kiae group)....
-# The next step was the UUCP network, the Relcom predecessor
-# (used mainly for mail), and MSK/MSD was actively used there.
-#
-# From Chris Carrier (1996-10-30):
-# According to a friend of mine who rode the Trans-Siberian Railroad from
-# Moscow to Irkutsk in 1995, public air and rail transport in Russia ...
-# still follows Moscow time, no matter where in Russia it is located.
-#
-# For Grozny, Chechnya, we have the following story from
-# John Daniszewski, "Scavengers in the Rubble", Los Angeles Times (2001-02-07):
-# News--often false--is spread by word of mouth.  A rumor that it was
-# time to move the clocks back put this whole city out of sync with
-# the rest of Russia for two weeks--even soldiers stationed here began
-# enforcing curfew at the wrong time.
-#
-# From Gwillim Law (2001-06-05):
-# There's considerable evidence that Sakhalin Island used to be in
-# UTC+11, and has changed to UTC+10, in this decade.  I start with the
-# SSIM, which listed Yuzhno-Sakhalinsk in zone RU10 along with Magadan
-# until February 1997, and then in RU9 with Khabarovsk and Vladivostok
-# since September 1997....  Although the Kuril Islands are
-# administratively part of Sakhalin oblast', they appear to have
-# remained on UTC+11 along with Magadan.
-#
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-#
-# Kaliningradskaya oblast'.
-Zone Europe/Kaliningrad	 1:22:00 -	LMT	1893 Apr
-			 1:00	C-Eur	CE%sT	1945
-			 2:00	Poland	CE%sT	1946
-			 3:00	Russia	MSK/MSD	1991 Mar 31 2:00s
-			 2:00	Russia	EE%sT
-#
-# From Oscar van Vlijmen (2001-08-25): [This region consists of]
-# Respublika Adygeya, Arkhangel'skaya oblast',
-# Belgorodskaya oblast', Bryanskaya oblast', Vladimirskaya oblast',
-# Vologodskaya oblast', Voronezhskaya oblast',
-# Respublika Dagestan, Ivanovskaya oblast', Respublika Ingushetiya,
-# Kabarbino-Balkarskaya Respublika, Respublika Kalmykiya,
-# Kalyzhskaya oblast', Respublika Karachaevo-Cherkessiya,
-# Respublika Kareliya, Respublika Komi,
-# Kostromskaya oblast', Krasnodarskij kraj, Kurskaya oblast',
-# Leningradskaya oblast', Lipetskaya oblast', Respublika Marij El,
-# Respublika Mordoviya, Moskva, Moskovskaya oblast',
-# Murmanskaya oblast', Nenetskij avtonomnyj okrug,
-# Nizhegorodskaya oblast', Novgorodskaya oblast', Orlovskaya oblast',
-# Penzenskaya oblast', Pskovskaya oblast', Rostovskaya oblast',
-# Ryazanskaya oblast', Sankt-Peterburg,
-# Respublika Severnaya Osetiya, Smolenskaya oblast',
-# Stavropol'skij kraj, Tambovskaya oblast', Respublika Tatarstan,
-# Tverskaya oblast', Tyl'skaya oblast', Ul'yanovskaya oblast',
-# Chechenskaya Respublika, Chuvashskaya oblast',
-# Yaroslavskaya oblast'
-Zone Europe/Moscow	 2:30:20 -	LMT	1880
-			 2:30	-	MMT	1916 Jul  3 # Moscow Mean Time
-			 2:30:48 Russia	%s	1919 Jul  1 2:00
-			 3:00	Russia	MSK/MSD	1922 Oct
-			 2:00	-	EET	1930 Jun 21
-			 3:00	Russia	MSK/MSD	1991 Mar 31 2:00s
-			 2:00	Russia	EE%sT	1992 Jan 19 2:00s
-			 3:00	Russia	MSK/MSD
-#
-# Astrakhanskaya oblast', Kirovskaya oblast', Saratovskaya oblast',
-# Volgogradskaya oblast'.  Shanks & Pottenger say Kirov is still at +0400
-# but Wikipedia (2006-05-09) says +0300.  Perhaps it switched after the
-# others?  But we have no data.
-Zone Europe/Volgograd	 2:57:40 -	LMT	1920 Jan  3
-			 3:00	-	TSAT	1925 Apr  6 # Tsaritsyn Time
-			 3:00	-	STAT	1930 Jun 21 # Stalingrad Time
-			 4:00	-	STAT	1961 Nov 11
-			 4:00	Russia	VOL%sT	1989 Mar 26 2:00s # Volgograd T
-			 3:00	Russia	VOL%sT	1991 Mar 31 2:00s
-			 4:00	-	VOLT	1992 Mar 29 2:00s
-			 3:00	Russia	VOL%sT
-#
-# From Oscar van Vlijmen (2001-08-25): [This region consists of]
-# Samarskaya oblast', Udmyrtskaya respublika
-Zone Europe/Samara	 3:20:36 -	LMT	1919 Jul  1 2:00
-			 3:00	-	SAMT	1930 Jun 21
-			 4:00	-	SAMT	1935 Jan 27
-			 4:00	Russia	KUY%sT	1989 Mar 26 2:00s # Kuybyshev
-			 3:00	Russia	KUY%sT	1991 Mar 31 2:00s
-			 2:00	Russia	KUY%sT	1991 Sep 29 2:00s
-			 3:00	-	KUYT	1991 Oct 20 3:00
-			 4:00	Russia	SAM%sT	# Samara Time
-#
-# From Oscar van Vlijmen (2001-08-25): [This region consists of]
-# Respublika Bashkortostan, Komi-Permyatskij avtonomnyj okrug,
-# Kurganskaya oblast', Orenburgskaya oblast', Permskaya oblast',
-# Sverdlovskaya oblast', Tyumenskaya oblast',
-# Khanty-Manskijskij avtonomnyj okrug, Chelyabinskaya oblast',
-# Yamalo-Nenetskij avtonomnyj okrug.
-Zone Asia/Yekaterinburg	 4:02:24 -	LMT	1919 Jul 15 4:00
-			 4:00	-	SVET	1930 Jun 21 # Sverdlovsk Time
-			 5:00	Russia	SVE%sT	1991 Mar 31 2:00s
-			 4:00	Russia	SVE%sT	1992 Jan 19 2:00s
-			 5:00	Russia	YEK%sT	# Yekaterinburg Time
-#
-# From Oscar van Vlijmen (2001-08-25): [This region consists of]
-# Respublika Altaj, Altajskij kraj, Omskaya oblast'.
-Zone Asia/Omsk		 4:53:36 -	LMT	1919 Nov 14
-			 5:00	-	OMST	1930 Jun 21 # Omsk TIme
-			 6:00	Russia	OMS%sT	1991 Mar 31 2:00s
-			 5:00	Russia	OMS%sT	1992 Jan 19 2:00s
-			 6:00	Russia	OMS%sT
-#
-# From Paul Eggert (2006-08-19): I'm guessing about Tomsk here; it's
-# not clear when it switched from +7 to +6.
-# Novosibirskaya oblast', Tomskaya oblast'.
-Zone Asia/Novosibirsk	 5:31:40 -	LMT	1919 Dec 14 6:00
-			 6:00	-	NOVT	1930 Jun 21 # Novosibirsk Time
-			 7:00	Russia	NOV%sT	1991 Mar 31 2:00s
-			 6:00	Russia	NOV%sT	1992 Jan 19 2:00s
-			 7:00	Russia	NOV%sT	1993 May 23 # say Shanks & P.
-			 6:00	Russia	NOV%sT
-#
-# From Oscar van Vlijmen (2001-08-25): [This region consists of]
-# Kemerovskaya oblast', Krasnoyarskij kraj,
-# Tajmyrskij (Dolgano-Nenetskij) avtonomnyj okrug,
-# Respublika Tuva, Respublika Khakasiya, Evenkijskij avtonomnyj okrug.
-Zone Asia/Krasnoyarsk	 6:11:20 -	LMT	1920 Jan  6
-			 6:00	-	KRAT	1930 Jun 21 # Krasnoyarsk Time
-			 7:00	Russia	KRA%sT	1991 Mar 31 2:00s
-			 6:00	Russia	KRA%sT	1992 Jan 19 2:00s
-			 7:00	Russia	KRA%sT
-#
-# From Oscar van Vlijmen (2001-08-25): [This region consists of]
-# Respublika Buryatiya, Irkutskaya oblast',
-# Ust'-Ordynskij Buryatskij avtonomnyj okrug.
-Zone Asia/Irkutsk	 6:57:20 -	LMT	1880
-			 6:57:20 -	IMT	1920 Jan 25 # Irkutsk Mean Time
-			 7:00	-	IRKT	1930 Jun 21 # Irkutsk Time
-			 8:00	Russia	IRK%sT	1991 Mar 31 2:00s
-			 7:00	Russia	IRK%sT	1992 Jan 19 2:00s
-			 8:00	Russia	IRK%sT
-#
-# From Oscar van Vlijmen (2003-10-18): [This region consists of]
-# Aginskij Buryatskij avtonomnyj okrug, Amurskaya oblast',
-# [parts of] Respublika Sakha (Yakutiya), Chitinskaya oblast'.
-# The Sakha districts are: Aldanskij, Amginskij, Anabarskij,
-# Bulunskij, Verkhnekolymskij, Verkhnevilyujskij, Vilyujskij, Gornyj,
-# Zhiganskij, Kobyajskij, Lenskij, Megino-Kangalasskij, Mirninskij,
-# Namskij, Nyurbinskij, Olenekskij, Olekminskij, Srednekolymskij,
-# Suntarskij, Tattinskij, Ust'-Aldanskij, Khangalasskij,
-# Churapchinskij, Eveno-Bytantajskij.
-Zone Asia/Yakutsk	 8:38:40 -	LMT	1919 Dec 15
-			 8:00	-	YAKT	1930 Jun 21 # Yakutsk Time
-			 9:00	Russia	YAK%sT	1991 Mar 31 2:00s
-			 8:00	Russia	YAK%sT	1992 Jan 19 2:00s
-			 9:00	Russia	YAK%sT
-#
-# From Oscar van Vlijmen (2003-10-18): [This region consists of]
-# Evrejskaya avtonomnaya oblast', Khabarovskij kraj, Primorskij kraj,
-# [parts of] Respublika Sakha (Yakutiya).
-# The Sakha districts are: Verkhoyanskij, Tomponskij, Ust'-Majskij,
-# Ust'-Yanskij.
-Zone Asia/Vladivostok	 8:47:44 -	LMT	1922 Nov 15
-			 9:00	-	VLAT	1930 Jun 21 # Vladivostok Time
-			10:00	Russia	VLA%sT	1991 Mar 31 2:00s
-			 9:00	Russia	VLA%sST	1992 Jan 19 2:00s
-			10:00	Russia	VLA%sT
-#
-# Sakhalinskaya oblast'.
-# The Zone name should be Yuzhno-Sakhalinsk, but that's too long.
-Zone Asia/Sakhalin	 9:30:48 -	LMT	1905 Aug 23
-			 9:00	-	CJT	1938
-			 9:00	-	JST	1945 Aug 25
-			11:00	Russia	SAK%sT	1991 Mar 31 2:00s # Sakhalin T.
-			10:00	Russia	SAK%sT	1992 Jan 19 2:00s
-			11:00	Russia	SAK%sT	1997 Mar lastSun 2:00s
-			10:00	Russia	SAK%sT
-#
-# From Oscar van Vlijmen (2003-10-18): [This region consists of]
-# Magadanskaya oblast', Respublika Sakha (Yakutiya).
-# Probably also: Kuril Islands.
-# The Sakha districts are: Abyjskij, Allaikhovskij, Momskij,
-# Nizhnekolymskij, Ojmyakonskij.
-Zone Asia/Magadan	10:03:12 -	LMT	1924 May  2
-			10:00	-	MAGT	1930 Jun 21 # Magadan Time
-			11:00	Russia	MAG%sT	1991 Mar 31 2:00s
-			10:00	Russia	MAG%sT	1992 Jan 19 2:00s
-			11:00	Russia	MAG%sT
-#
-# From Oscar van Vlijmen (2001-08-25): [This region consists of]
-# Kamchatskaya oblast', Koryakskij avtonomnyj okrug.
-#
-# The Zone name should be Asia/Petropavlovsk-Kamchatski, but that's too long.
-Zone Asia/Kamchatka	10:34:36 -	LMT	1922 Nov 10
-			11:00	-	PETT	1930 Jun 21 # P-K Time
-			12:00	Russia	PET%sT	1991 Mar 31 2:00s
-			11:00	Russia	PET%sT	1992 Jan 19 2:00s
-			12:00	Russia	PET%sT
-#
-# Chukotskij avtonomnyj okrug
-Zone Asia/Anadyr	11:49:56 -	LMT	1924 May  2
-			12:00	-	ANAT	1930 Jun 21 # Anadyr Time
-			13:00	Russia	ANA%sT	1982 Apr  1 0:00s
-			12:00	Russia	ANA%sT	1991 Mar 31 2:00s
-			11:00	Russia	ANA%sT	1992 Jan 19 2:00s
-			12:00	Russia	ANA%sT
-
-# Serbia
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Europe/Belgrade	1:22:00	-	LMT	1884
-			1:00	-	CET	1941 Apr 18 23:00
-			1:00	C-Eur	CE%sT	1945 May  8  2:00s
-			1:00	1:00	CEST	1945 Sep 16  2:00s
-# Metod Kozelj reports that the legal date of
-# transition to EU rules was 1982-11-27, for all of Yugoslavia at the time.
-# Shanks & Pottenger don't give as much detail, so go with Kozelj.
-			1:00	-	CET	1982 Nov 27
-			1:00	EU	CE%sT
-Link Europe/Belgrade Europe/Ljubljana	# Slovenia
-Link Europe/Belgrade Europe/Podgorica	# Montenegro
-Link Europe/Belgrade Europe/Sarajevo	# Bosnia and Herzegovina
-Link Europe/Belgrade Europe/Skopje	# Macedonia
-Link Europe/Belgrade Europe/Zagreb	# Croatia
-
-# Slovakia
-Link Europe/Prague Europe/Bratislava
-
-# Slovenia
-# see Serbia
-
-# Spain
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-# For 1917-1919 Whitman gives Apr Sat>=1 - Oct Sat>=1;
-# go with Shanks & Pottenger.
-Rule	Spain	1917	only	-	May	 5	23:00s	1:00	S
-Rule	Spain	1917	1919	-	Oct	 6	23:00s	0	-
-Rule	Spain	1918	only	-	Apr	15	23:00s	1:00	S
-Rule	Spain	1919	only	-	Apr	 5	23:00s	1:00	S
-# Whitman gives 1921 Feb 28 - Oct 14; go with Shanks & Pottenger.
-Rule	Spain	1924	only	-	Apr	16	23:00s	1:00	S
-# Whitman gives 1924 Oct 14; go with Shanks & Pottenger.
-Rule	Spain	1924	only	-	Oct	 4	23:00s	0	-
-Rule	Spain	1926	only	-	Apr	17	23:00s	1:00	S
-# Whitman says no DST in 1929; go with Shanks & Pottenger.
-Rule	Spain	1926	1929	-	Oct	Sat>=1	23:00s	0	-
-Rule	Spain	1927	only	-	Apr	 9	23:00s	1:00	S
-Rule	Spain	1928	only	-	Apr	14	23:00s	1:00	S
-Rule	Spain	1929	only	-	Apr	20	23:00s	1:00	S
-# Whitman gives 1937 Jun 16, 1938 Apr 16, 1940 Apr 13;
-# go with Shanks & Pottenger.
-Rule	Spain	1937	only	-	May	22	23:00s	1:00	S
-Rule	Spain	1937	1939	-	Oct	Sat>=1	23:00s	0	-
-Rule	Spain	1938	only	-	Mar	22	23:00s	1:00	S
-Rule	Spain	1939	only	-	Apr	15	23:00s	1:00	S
-Rule	Spain	1940	only	-	Mar	16	23:00s	1:00	S
-# Whitman says no DST 1942-1945; go with Shanks & Pottenger.
-Rule	Spain	1942	only	-	May	 2	22:00s	2:00	M # Midsummer
-Rule	Spain	1942	only	-	Sep	 1	22:00s	1:00	S
-Rule	Spain	1943	1946	-	Apr	Sat>=13	22:00s	2:00	M
-Rule	Spain	1943	only	-	Oct	 3	22:00s	1:00	S
-Rule	Spain	1944	only	-	Oct	10	22:00s	1:00	S
-Rule	Spain	1945	only	-	Sep	30	 1:00	1:00	S
-Rule	Spain	1946	only	-	Sep	30	 0:00	0	-
-Rule	Spain	1949	only	-	Apr	30	23:00	1:00	S
-Rule	Spain	1949	only	-	Sep	30	 1:00	0	-
-Rule	Spain	1974	1975	-	Apr	Sat>=13	23:00	1:00	S
-Rule	Spain	1974	1975	-	Oct	Sun>=1	 1:00	0	-
-Rule	Spain	1976	only	-	Mar	27	23:00	1:00	S
-Rule	Spain	1976	1977	-	Sep	lastSun	 1:00	0	-
-Rule	Spain	1977	1978	-	Apr	 2	23:00	1:00	S
-Rule	Spain	1978	only	-	Oct	 1	 1:00	0	-
-# The following rules are copied from Morocco from 1967 through 1978.
-Rule SpainAfrica 1967	only	-	Jun	 3	12:00	1:00	S
-Rule SpainAfrica 1967	only	-	Oct	 1	 0:00	0	-
-Rule SpainAfrica 1974	only	-	Jun	24	 0:00	1:00	S
-Rule SpainAfrica 1974	only	-	Sep	 1	 0:00	0	-
-Rule SpainAfrica 1976	1977	-	May	 1	 0:00	1:00	S
-Rule SpainAfrica 1976	only	-	Aug	 1	 0:00	0	-
-Rule SpainAfrica 1977	only	-	Sep	28	 0:00	0	-
-Rule SpainAfrica 1978	only	-	Jun	 1	 0:00	1:00	S
-Rule SpainAfrica 1978	only	-	Aug	 4	 0:00	0	-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Europe/Madrid	-0:14:44 -	LMT	1901 Jan  1  0:00s
-			 0:00	Spain	WE%sT	1946 Sep 30
-			 1:00	Spain	CE%sT	1979
-			 1:00	EU	CE%sT
-Zone	Africa/Ceuta	-0:21:16 -	LMT	1901
-			 0:00	-	WET	1918 May  6 23:00
-			 0:00	1:00	WEST	1918 Oct  7 23:00
-			 0:00	-	WET	1924
-			 0:00	Spain	WE%sT	1929
-			 0:00 SpainAfrica WE%sT 1984 Mar 16
-			 1:00	-	CET	1986
-			 1:00	EU	CE%sT
-Zone	Atlantic/Canary	-1:01:36 -	LMT	1922 Mar # Las Palmas de Gran C.
-			-1:00	-	CANT	1946 Sep 30 1:00 # Canaries Time
-			 0:00	-	WET	1980 Apr  6 0:00s
-			 0:00	1:00	WEST	1980 Sep 28 0:00s
-			 0:00	EU	WE%sT
-# IATA SSIM (1996-09) says the Canaries switch at 2:00u, not 1:00u.
-# Ignore this for now, as the Canaries are part of the EU.
-
-# Sweden
-
-# From Ivan Nilsson (2001-04-13), superseding Shanks & Pottenger:
-#
-# The law "Svensk forfattningssamling 1878, no 14" about standard time in 1879:
-# From the beginning of 1879 (that is 01-01 00:00) the time for all
-# places in the country is "the mean solar time for the meridian at
-# three degrees, or twelve minutes of time, to the west of the
-# meridian of the Observatory of Stockholm".  The law is dated 1878-05-31.
-#
-# The observatory at that time had the meridian 18 degrees 03' 30"
-# eastern longitude = 01:12:14 in time.  Less 12 minutes gives the
-# national standard time as 01:00:14 ahead of GMT....
-#
-# About the beginning of CET in Sweden. The lawtext ("Svensk
-# forfattningssamling 1899, no 44") states, that "from the beginning
-# of 1900... ... the same as the mean solar time for the meridian at
-# the distance of one hour of time from the meridian of the English
-# observatory at Greenwich, or at 12 minutes 14 seconds to the west
-# from the meridian of the Observatory of Stockholm". The law is dated
-# 1899-06-16.  In short: At 1900-01-01 00:00:00 the new standard time
-# in Sweden is 01:00:00 ahead of GMT.
-#
-# 1916: The lawtext ("Svensk forfattningssamling 1916, no 124") states
-# that "1916-05-15 is considered to begin one hour earlier". It is
-# pretty obvious that at 05-14 23:00 the clocks are set to 05-15 00:00....
-# Further the law says, that "1916-09-30 is considered to end one hour later".
-#
-# The laws regulating [DST] are available on the site of the Swedish
-# Parliament beginning with 1985 - the laws regulating 1980/1984 are
-# not available on the site (to my knowledge they are only available
-# in Swedish): <http://www.riksdagen.se/english/work/sfst.asp> (type
-# "sommartid" without the quotes in the field "Fritext" and then click
-# the Sok-button).
-#
-# (2001-05-13):
-#
-# I have now found a newspaper stating that at 1916-10-01 01:00
-# summertime the church-clocks etc were set back one hour to show
-# 1916-10-01 00:00 standard time.  The article also reports that some
-# people thought the switch to standard time would take place already
-# at 1916-10-01 00:00 summer time, but they had to wait for another
-# hour before the event took place.
-#
-# Source: The newspaper "Dagens Nyheter", 1916-10-01, page 7 upper left.
-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Europe/Stockholm	1:12:12 -	LMT	1879 Jan  1
-			1:00:14	-	SET	1900 Jan  1	# Swedish Time
-			1:00	-	CET	1916 May 14 23:00
-			1:00	1:00	CEST	1916 Oct  1 01:00
-			1:00	-	CET	1980
-			1:00	EU	CE%sT
-
-# Switzerland
-# From Howse:
-# By the end of the 18th century clocks and watches became commonplace
-# and their performance improved enormously.  Communities began to keep
-# mean time in preference to apparent time -- Geneva from 1780 ....
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-# From Whitman (who writes ``Midnight?''):
-Rule	Swiss	1940	only	-	Nov	 2	0:00	1:00	S
-Rule	Swiss	1940	only	-	Dec	31	0:00	0	-
-# From Shanks & Pottenger:
-Rule	Swiss	1941	1942	-	May	Sun>=1	2:00	1:00	S
-Rule	Swiss	1941	1942	-	Oct	Sun>=1	0:00	0	-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Europe/Zurich	0:34:08 -	LMT	1848 Sep 12
-			0:29:44	-	BMT	1894 Jun # Bern Mean Time
-			1:00	Swiss	CE%sT	1981
-			1:00	EU	CE%sT
-
-# Turkey
-
-# From Amar Devegowda (2007-01-03):
-# The time zone rules for Istanbul, Turkey have not been changed for years now.
-# ... The latest rules are available at -
-# http://www.timeanddate.com/worldclock/timezone.html?n=107
-# From Steffen Thorsen (2007-01-03):
-# I have been able to find press records back to 1996 which all say that
-# DST started 01:00 local time and end at 02:00 local time.  I am not sure
-# what happened before that.  One example for each year from 1996 to 2001:
-# http://newspot.byegm.gov.tr/arsiv/1996/21/N4.htm
-# http://www.byegm.gov.tr/YAYINLARIMIZ/CHR/ING97/03/97X03X25.TXT
-# http://www.byegm.gov.tr/YAYINLARIMIZ/CHR/ING98/03/98X03X02.HTM
-# http://www.byegm.gov.tr/YAYINLARIMIZ/CHR/ING99/10/99X10X26.HTM#%2016
-# http://www.byegm.gov.tr/YAYINLARIMIZ/CHR/ING2000/03/00X03X06.HTM#%2021
-# http://www.byegm.gov.tr/YAYINLARIMIZ/CHR/ING2001/03/23x03x01.HTM#%2027
-# From Paul Eggert (2007-01-03):
-# Prefer the above source to Shanks & Pottenger for time stamps after 1990.
-
-# From Steffen Thorsen (2007-03-09):
-# Starting 2007 though, it seems that they are adopting EU's 1:00 UTC
-# start/end time, according to the following page (2007-03-07):
-# http://www.ntvmsnbc.com/news/402029.asp
-# The official document is located here - it is in Turkish...:
-# http://rega.basbakanlik.gov.tr/eskiler/2007/03/20070307-7.htm
-# I was able to locate the following seemingly official document
-# (on a non-government server though) describing dates between 2002 and 2006:
-# http://www.alomaliye.com/bkk_2002_3769.htm
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Turkey	1916	only	-	May	 1	0:00	1:00	S
-Rule	Turkey	1916	only	-	Oct	 1	0:00	0	-
-Rule	Turkey	1920	only	-	Mar	28	0:00	1:00	S
-Rule	Turkey	1920	only	-	Oct	25	0:00	0	-
-Rule	Turkey	1921	only	-	Apr	 3	0:00	1:00	S
-Rule	Turkey	1921	only	-	Oct	 3	0:00	0	-
-Rule	Turkey	1922	only	-	Mar	26	0:00	1:00	S
-Rule	Turkey	1922	only	-	Oct	 8	0:00	0	-
-# Whitman gives 1923 Apr 28 - Sep 16 and no DST in 1924-1925;
-# go with Shanks & Pottenger.
-Rule	Turkey	1924	only	-	May	13	0:00	1:00	S
-Rule	Turkey	1924	1925	-	Oct	 1	0:00	0	-
-Rule	Turkey	1925	only	-	May	 1	0:00	1:00	S
-Rule	Turkey	1940	only	-	Jun	30	0:00	1:00	S
-Rule	Turkey	1940	only	-	Oct	 5	0:00	0	-
-Rule	Turkey	1940	only	-	Dec	 1	0:00	1:00	S
-Rule	Turkey	1941	only	-	Sep	21	0:00	0	-
-Rule	Turkey	1942	only	-	Apr	 1	0:00	1:00	S
-# Whitman omits the next two transition and gives 1945 Oct 1;
-# go with Shanks & Pottenger.
-Rule	Turkey	1942	only	-	Nov	 1	0:00	0	-
-Rule	Turkey	1945	only	-	Apr	 2	0:00	1:00	S
-Rule	Turkey	1945	only	-	Oct	 8	0:00	0	-
-Rule	Turkey	1946	only	-	Jun	 1	0:00	1:00	S
-Rule	Turkey	1946	only	-	Oct	 1	0:00	0	-
-Rule	Turkey	1947	1948	-	Apr	Sun>=16	0:00	1:00	S
-Rule	Turkey	1947	1950	-	Oct	Sun>=2	0:00	0	-
-Rule	Turkey	1949	only	-	Apr	10	0:00	1:00	S
-Rule	Turkey	1950	only	-	Apr	19	0:00	1:00	S
-Rule	Turkey	1951	only	-	Apr	22	0:00	1:00	S
-Rule	Turkey	1951	only	-	Oct	 8	0:00	0	-
-Rule	Turkey	1962	only	-	Jul	15	0:00	1:00	S
-Rule	Turkey	1962	only	-	Oct	 8	0:00	0	-
-Rule	Turkey	1964	only	-	May	15	0:00	1:00	S
-Rule	Turkey	1964	only	-	Oct	 1	0:00	0	-
-Rule	Turkey	1970	1972	-	May	Sun>=2	0:00	1:00	S
-Rule	Turkey	1970	1972	-	Oct	Sun>=2	0:00	0	-
-Rule	Turkey	1973	only	-	Jun	 3	1:00	1:00	S
-Rule	Turkey	1973	only	-	Nov	 4	3:00	0	-
-Rule	Turkey	1974	only	-	Mar	31	2:00	1:00	S
-Rule	Turkey	1974	only	-	Nov	 3	5:00	0	-
-Rule	Turkey	1975	only	-	Mar	30	0:00	1:00	S
-Rule	Turkey	1975	1976	-	Oct	lastSun	0:00	0	-
-Rule	Turkey	1976	only	-	Jun	 1	0:00	1:00	S
-Rule	Turkey	1977	1978	-	Apr	Sun>=1	0:00	1:00	S
-Rule	Turkey	1977	only	-	Oct	16	0:00	0	-
-Rule	Turkey	1979	1980	-	Apr	Sun>=1	3:00	1:00	S
-Rule	Turkey	1979	1982	-	Oct	Mon>=11	0:00	0	-
-Rule	Turkey	1981	1982	-	Mar	lastSun	3:00	1:00	S
-Rule	Turkey	1983	only	-	Jul	31	0:00	1:00	S
-Rule	Turkey	1983	only	-	Oct	 2	0:00	0	-
-Rule	Turkey	1985	only	-	Apr	20	0:00	1:00	S
-Rule	Turkey	1985	only	-	Sep	28	0:00	0	-
-Rule	Turkey	1986	1990	-	Mar	lastSun	2:00s	1:00	S
-Rule	Turkey	1986	1990	-	Sep	lastSun	2:00s	0	-
-Rule	Turkey	1991	2006	-	Mar	lastSun	1:00s	1:00	S
-Rule	Turkey	1991	1995	-	Sep	lastSun	1:00s	0	-
-Rule	Turkey	1996	2006	-	Oct	lastSun	1:00s	0	-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Europe/Istanbul	1:55:52 -	LMT	1880
-			1:56:56	-	IMT	1910 Oct # Istanbul Mean Time?
-			2:00	Turkey	EE%sT	1978 Oct 15
-			3:00	Turkey	TR%sT	1985 Apr 20 # Turkey Time
-			2:00	Turkey	EE%sT	2007
-			2:00	EU	EE%sT
-Link	Europe/Istanbul	Asia/Istanbul	# Istanbul is in both continents.
-
-# Ukraine
-#
-# From Igor Karpov, who works for the Ukranian Ministry of Justice,
-# via Garrett Wollman (2003-01-27):
-# BTW, I've found the official document on this matter. It's goverment
-# regulations number 509, May 13, 1996. In my poor translation it says:
-# "Time in Ukraine is set to second timezone (Kiev time). Each last Sunday
-# of March at 3am the time is changing to 4am and each last Sunday of
-# October the time at 4am is changing to 3am"
-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-# Most of Ukraine since 1970 has been like Kiev.
-# "Kyiv" is the transliteration of the Ukrainian name, but
-# "Kiev" is more common in English.
-Zone Europe/Kiev	2:02:04 -	LMT	1880
-			2:02:04	-	KMT	1924 May  2 # Kiev Mean Time
-			2:00	-	EET	1930 Jun 21
-			3:00	-	MSK	1941 Sep 20
-			1:00	C-Eur	CE%sT	1943 Nov  6
-			3:00	Russia	MSK/MSD	1990
-			3:00	-	MSK	1990 Jul  1 2:00
-			2:00	-	EET	1992
-			2:00	E-Eur	EE%sT	1995
-			2:00	EU	EE%sT
-# Ruthenia used CET 1990/1991.
-# "Uzhhorod" is the transliteration of the Ukrainian name, but
-# "Uzhgorod" is more common in English.
-Zone Europe/Uzhgorod	1:29:12 -	LMT	1890 Oct
-			1:00	-	CET	1940
-			1:00	C-Eur	CE%sT	1944 Oct
-			1:00	1:00	CEST	1944 Oct 26
-			1:00	-	CET	1945 Jun 29
-			3:00	Russia	MSK/MSD	1990
-			3:00	-	MSK	1990 Jul  1 2:00
-			1:00	-	CET	1991 Mar 31 3:00
-			2:00	-	EET	1992
-			2:00	E-Eur	EE%sT	1995
-			2:00	EU	EE%sT
-# Zaporozh'ye and eastern Lugansk oblasts observed DST 1990/1991.
-# "Zaporizhia" is the transliteration of the Ukrainian name, but
-# "Zaporozh'ye" is more common in English.  Use the common English
-# spelling, except omit the apostrophe as it is not allowed in
-# portable Posix file names.
-Zone Europe/Zaporozhye	2:20:40 -	LMT	1880
-			2:20	-	CUT	1924 May  2 # Central Ukraine T
-			2:00	-	EET	1930 Jun 21
-			3:00	-	MSK	1941 Aug 25
-			1:00	C-Eur	CE%sT	1943 Oct 25
-			3:00	Russia	MSK/MSD	1991 Mar 31 2:00
-			2:00	E-Eur	EE%sT	1995
-			2:00	EU	EE%sT
-# Central Crimea used Moscow time 1994/1997.
-Zone Europe/Simferopol	2:16:24 -	LMT	1880
-			2:16	-	SMT	1924 May  2 # Simferopol Mean T
-			2:00	-	EET	1930 Jun 21
-			3:00	-	MSK	1941 Nov
-			1:00	C-Eur	CE%sT	1944 Apr 13
-			3:00	Russia	MSK/MSD	1990
-			3:00	-	MSK	1990 Jul  1 2:00
-			2:00	-	EET	1992
-# From Paul Eggert (2006-03-22):
-# The _Economist_ (1994-05-28, p 45) reports that central Crimea switched
-# from Kiev to Moscow time sometime after the January 1994 elections.
-# Shanks (1999) says ``date of change uncertain'', but implies that it happened
-# sometime between the 1994 DST switches.  Shanks & Pottenger simply say
-# 1994-09-25 03:00, but that can't be right.  For now, guess it
-# changed in May.
-			2:00	E-Eur	EE%sT	1994 May
-# From IATA SSIM (1994/1997), which also says that Kerch is still like Kiev.
-			3:00	E-Eur	MSK/MSD	1996 Mar 31 3:00s
-			3:00	1:00	MSD	1996 Oct 27 3:00s
-# IATA SSIM (1997-09) says Crimea switched to EET/EEST.
-# Assume it happened in March by not changing the clocks.
-			3:00	Russia	MSK/MSD	1997
-			3:00	-	MSK	1997 Mar lastSun 1:00u
-			2:00	EU	EE%sT
-
-###############################################################################
-
-# One source shows that Bulgaria, Cyprus, Finland, and Greece observe DST from
-# the last Sunday in March to the last Sunday in September in 1986.
-# The source shows Romania changing a day later than everybody else.
-#
-# According to Bernard Sieloff's source, Poland is in the MET time zone but
-# uses the WE DST rules.  The Western USSR uses EET+1 and ME DST rules.
-# Bernard Sieloff's source claims Romania switches on the same day, but at
-# 00:00 standard time (i.e., 01:00 DST).  It also claims that Turkey
-# switches on the same day, but switches on at 01:00 standard time
-# and off at 00:00 standard time (i.e., 01:00 DST)
-
-# ...
-# Date: Wed, 28 Jan 87 16:56:27 -0100
-# From: Tom Hofmann
-# ...
-#
-# ...the European time rules are...standardized since 1981, when
-# most European coun[tr]ies started DST.  Before that year, only
-# a few countries (UK, France, Italy) had DST, each according
-# to own national rules.  In 1981, however, DST started on
-# 'Apr firstSun', and not on 'Mar lastSun' as in the following
-# years...
-# But also since 1981 there are some more national exceptions
-# than listed in 'europe': Switzerland, for example, joined DST
-# one year later, Denmark ended DST on 'Oct 1' instead of 'Sep
-# lastSun' in 1981---I don't know how they handle now.
-#
-# Finally, DST ist always from 'Apr 1' to 'Oct 1' in the
-# Soviet Union (as far as I know).
-#
-# Tom Hofmann, Scientific Computer Center, CIBA-GEIGY AG,
-# 4002 Basle, Switzerland
-# ...
-
-# ...
-# Date: Wed, 4 Feb 87 22:35:22 +0100
-# From: Dik T. Winter
-# ...
-#
-# The information from Tom Hofmann is (as far as I know) not entirely correct.
-# After a request from chongo at amdahl I tried to retrieve all information
-# about DST in Europe.  I was able to find all from about 1969.
-#
-# ...standardization on DST in Europe started in about 1977 with switches on
-# first Sunday in April and last Sunday in September...
-# In 1981 UK joined Europe insofar that
-# the starting day for both shifted to last Sunday in March.  And from 1982
-# the whole of Europe used DST, with switch dates April 1 and October 1 in
-# the Sov[i]et Union.  In 1985 the SU reverted to standard Europe[a]n switch
-# dates...
-#
-# It should also be remembered that time-zones are not constants; e.g.
-# Portugal switched in 1976 from MET (or CET) to WET with DST...
-# Note also that though there were rules for switch dates not
-# all countries abided to these dates, and many individual deviations
-# occurred, though not since 1982 I believe.  Another note: it is always
-# assumed that DST is 1 hour ahead of normal time, this need not be the
-# case; at least in the Netherlands there have been times when DST was 2 hours
-# in advance of normal time.
-#
-# ...
-# dik t. winter, cwi, amsterdam, nederland
-# ...
-
-# From Bob Devine (1988-01-28):
-# ...
-# Greece: Last Sunday in April to last Sunday in September (iffy on dates).
-# Since 1978.  Change at midnight.
-# ...
-# Monaco: has same DST as France.
-# ...
diff --git a/libkcal/libical/tzdata/factory b/libkcal/libical/tzdata/factory
deleted file mode 100644
index 946063c0..00000000
--- a/libkcal/libical/tzdata/factory
+++ /dev/null
@@ -1,8 +0,0 @@
-# @(#)factory	8.1
-
-# For companies who don't want to put time zone specification in
-# their installation procedures.  When users run date, they'll get the message.
-# Also useful for the "comp.sources" version.
-
-# Zone	NAME	GMTOFF	RULES	FORMAT
-Zone	Factory	0	- "Local time zone must be set--see zic manual page"
diff --git a/libkcal/libical/tzdata/iso3166.tab b/libkcal/libical/tzdata/iso3166.tab
deleted file mode 100644
index 8d623995..00000000
--- a/libkcal/libical/tzdata/iso3166.tab
+++ /dev/null
@@ -1,269 +0,0 @@
-# ISO 3166 alpha-2 country codes
-#
-# @(#)iso3166.tab	8.5
-#
-# From Paul Eggert (2006-09-27):
-#
-# This file contains a table with the following columns:
-# 1.  ISO 3166-1 alpha-2 country code, current as of
-#     ISO 3166-1 Newsletter VI-1 (2007-09-21).  See:
-#     <a href="http://www.iso.org/iso/en/prods-services/iso3166ma/index.html">
-#     ISO 3166 Maintenance agency (ISO 3166/MA)
-#     </a>.
-# 2.  The usual English name for the country,
-#     chosen so that alphabetic sorting of subsets produces helpful lists.
-#     This is not the same as the English name in the ISO 3166 tables.
-#
-# Columns are separated by a single tab.
-# The table is sorted by country code.
-#
-# Lines beginning with `#' are comments.
-#
-#country-
-#code	country name
-AD	Andorra
-AE	United Arab Emirates
-AF	Afghanistan
-AG	Antigua & Barbuda
-AI	Anguilla
-AL	Albania
-AM	Armenia
-AN	Netherlands Antilles
-AO	Angola
-AQ	Antarctica
-AR	Argentina
-AS	Samoa (American)
-AT	Austria
-AU	Australia
-AW	Aruba
-AX	Aaland Islands
-AZ	Azerbaijan
-BA	Bosnia & Herzegovina
-BB	Barbados
-BD	Bangladesh
-BE	Belgium
-BF	Burkina Faso
-BG	Bulgaria
-BH	Bahrain
-BI	Burundi
-BJ	Benin
-BL	St Barthelemy
-BM	Bermuda
-BN	Brunei
-BO	Bolivia
-BR	Brazil
-BS	Bahamas
-BT	Bhutan
-BV	Bouvet Island
-BW	Botswana
-BY	Belarus
-BZ	Belize
-CA	Canada
-CC	Cocos (Keeling) Islands
-CD	Congo (Dem. Rep.)
-CF	Central African Rep.
-CG	Congo (Rep.)
-CH	Switzerland
-CI	Cote d'Ivoire
-CK	Cook Islands
-CL	Chile
-CM	Cameroon
-CN	China
-CO	Colombia
-CR	Costa Rica
-CU	Cuba
-CV	Cape Verde
-CX	Christmas Island
-CY	Cyprus
-CZ	Czech Republic
-DE	Germany
-DJ	Djibouti
-DK	Denmark
-DM	Dominica
-DO	Dominican Republic
-DZ	Algeria
-EC	Ecuador
-EE	Estonia
-EG	Egypt
-EH	Western Sahara
-ER	Eritrea
-ES	Spain
-ET	Ethiopia
-FI	Finland
-FJ	Fiji
-FK	Falkland Islands
-FM	Micronesia
-FO	Faroe Islands
-FR	France
-GA	Gabon
-GB	Britain (UK)
-GD	Grenada
-GE	Georgia
-GF	French Guiana
-GG	Guernsey
-GH	Ghana
-GI	Gibraltar
-GL	Greenland
-GM	Gambia
-GN	Guinea
-GP	Guadeloupe
-GQ	Equatorial Guinea
-GR	Greece
-GS	South Georgia & the South Sandwich Islands
-GT	Guatemala
-GU	Guam
-GW	Guinea-Bissau
-GY	Guyana
-HK	Hong Kong
-HM	Heard Island & McDonald Islands
-HN	Honduras
-HR	Croatia
-HT	Haiti
-HU	Hungary
-ID	Indonesia
-IE	Ireland
-IL	Israel
-IM	Isle of Man
-IN	India
-IO	British Indian Ocean Territory
-IQ	Iraq
-IR	Iran
-IS	Iceland
-IT	Italy
-JE	Jersey
-JM	Jamaica
-JO	Jordan
-JP	Japan
-KE	Kenya
-KG	Kyrgyzstan
-KH	Cambodia
-KI	Kiribati
-KM	Comoros
-KN	St Kitts & Nevis
-KP	Korea (North)
-KR	Korea (South)
-KW	Kuwait
-KY	Cayman Islands
-KZ	Kazakhstan
-LA	Laos
-LB	Lebanon
-LC	St Lucia
-LI	Liechtenstein
-LK	Sri Lanka
-LR	Liberia
-LS	Lesotho
-LT	Lithuania
-LU	Luxembourg
-LV	Latvia
-LY	Libya
-MA	Morocco
-MC	Monaco
-MD	Moldova
-ME	Montenegro
-MF	St Martin (French part)
-MG	Madagascar
-MH	Marshall Islands
-MK	Macedonia
-ML	Mali
-MM	Myanmar (Burma)
-MN	Mongolia
-MO	Macau
-MP	Northern Mariana Islands
-MQ	Martinique
-MR	Mauritania
-MS	Montserrat
-MT	Malta
-MU	Mauritius
-MV	Maldives
-MW	Malawi
-MX	Mexico
-MY	Malaysia
-MZ	Mozambique
-NA	Namibia
-NC	New Caledonia
-NE	Niger
-NF	Norfolk Island
-NG	Nigeria
-NI	Nicaragua
-NL	Netherlands
-NO	Norway
-NP	Nepal
-NR	Nauru
-NU	Niue
-NZ	New Zealand
-OM	Oman
-PA	Panama
-PE	Peru
-PF	French Polynesia
-PG	Papua New Guinea
-PH	Philippines
-PK	Pakistan
-PL	Poland
-PM	St Pierre & Miquelon
-PN	Pitcairn
-PR	Puerto Rico
-PS	Palestine
-PT	Portugal
-PW	Palau
-PY	Paraguay
-QA	Qatar
-RE	Reunion
-RO	Romania
-RS	Serbia
-RU	Russia
-RW	Rwanda
-SA	Saudi Arabia
-SB	Solomon Islands
-SC	Seychelles
-SD	Sudan
-SE	Sweden
-SG	Singapore
-SH	St Helena
-SI	Slovenia
-SJ	Svalbard & Jan Mayen
-SK	Slovakia
-SL	Sierra Leone
-SM	San Marino
-SN	Senegal
-SO	Somalia
-SR	Suriname
-ST	Sao Tome & Principe
-SV	El Salvador
-SY	Syria
-SZ	Swaziland
-TC	Turks & Caicos Is
-TD	Chad
-TF	French Southern & Antarctic Lands
-TG	Togo
-TH	Thailand
-TJ	Tajikistan
-TK	Tokelau
-TL	East Timor
-TM	Turkmenistan
-TN	Tunisia
-TO	Tonga
-TR	Turkey
-TT	Trinidad & Tobago
-TV	Tuvalu
-TW	Taiwan
-TZ	Tanzania
-UA	Ukraine
-UG	Uganda
-UM	US minor outlying islands
-US	United States
-UY	Uruguay
-UZ	Uzbekistan
-VA	Vatican City
-VC	St Vincent
-VE	Venezuela
-VG	Virgin Islands (UK)
-VI	Virgin Islands (US)
-VN	Vietnam
-VU	Vanuatu
-WF	Wallis & Futuna
-WS	Samoa (western)
-YE	Yemen
-YT	Mayotte
-ZA	South Africa
-ZM	Zambia
-ZW	Zimbabwe
diff --git a/libkcal/libical/tzdata/leapseconds b/libkcal/libical/tzdata/leapseconds
deleted file mode 100644
index 35df858d..00000000
--- a/libkcal/libical/tzdata/leapseconds
+++ /dev/null
@@ -1,83 +0,0 @@
-# @(#)leapseconds	8.5
-
-# Allowance for leapseconds added to each timezone file.
-
-# The International Earth Rotation Service periodically uses leap seconds
-# to keep UTC to within 0.9 s of UT1
-# (which measures the true angular orientation of the earth in space); see
-# Terry J Quinn, The BIPM and the accurate measure of time,
-# Proc IEEE 79, 7 (July 1991), 894-905.
-# There were no leap seconds before 1972, because the official mechanism
-# accounting for the discrepancy between atomic time and the earth's rotation
-# did not exist until the early 1970s.
-
-# The correction (+ or -) is made at the given time, so lines
-# will typically look like:
-#	Leap	YEAR	MON	DAY	23:59:60	+	R/S
-# or
-#	Leap	YEAR	MON	DAY	23:59:59	-	R/S
-
-# If the leapsecond is Rolling (R) the given time is local time
-# If the leapsecond is Stationary (S) the given time is UTC
-
-# Leap	YEAR	MONTH	DAY	HH:MM:SS	CORR	R/S
-Leap	1972	Jun	30	23:59:60	+	S
-Leap	1972	Dec	31	23:59:60	+	S
-Leap	1973	Dec	31	23:59:60	+	S
-Leap	1974	Dec	31	23:59:60	+	S
-Leap	1975	Dec	31	23:59:60	+	S
-Leap	1976	Dec	31	23:59:60	+	S
-Leap	1977	Dec	31	23:59:60	+	S
-Leap	1978	Dec	31	23:59:60	+	S
-Leap	1979	Dec	31	23:59:60	+	S
-Leap	1981	Jun	30	23:59:60	+	S
-Leap	1982	Jun	30	23:59:60	+	S
-Leap	1983	Jun	30	23:59:60	+	S
-Leap	1985	Jun	30	23:59:60	+	S
-Leap	1987	Dec	31	23:59:60	+	S
-Leap	1989	Dec	31	23:59:60	+	S
-Leap	1990	Dec	31	23:59:60	+	S
-Leap	1992	Jun	30	23:59:60	+	S
-Leap	1993	Jun	30	23:59:60	+	S
-Leap	1994	Jun	30	23:59:60	+	S
-Leap	1995	Dec	31	23:59:60	+	S
-Leap	1997	Jun	30	23:59:60	+	S
-Leap	1998	Dec	31	23:59:60	+	S
-Leap	2005	Dec	31	23:59:60	+	S
-
-# INTERNATIONAL EARTH ROTATION AND REFERENCE SYSTEMS SERVICE (IERS)
-#
-# SERVICE INTERNATIONAL DE LA ROTATION TERRESTRE ET DES SYSTEMES DE REFERENCE
-#
-# SERVICE DE LA ROTATION TERRESTRE
-# OBSERVATOIRE DE PARIS				
-# 61, Av. de l'Observatoire 75014 PARIS (France)
-# Tel.      : 33 (0) 1 40 51 22 26
-# FAX       : 33 (0) 1 40 51 22 91
-# Internet  : services.iers@obspm.fr
-#
-# Paris, 18 January 2008
-#
-# Bulletin C 35
-#
-# To authorities responsible		
-# for the measurement and
-# distribution of time	
-#
-# INFORMATION ON UTC - TAI
-#
-# NO positive leap second will be introduced at the end of June 2008.
-# The difference between Coordinated Universal Time UTC and the
-# International Atomic Time TAI is :		
-#
-# from 2006 January 1, 0h UTC, until further notice : UTC-TAI = -33 s
-#
-# Leap seconds can be introduced in UTC at the end of the months of December
-# or June,  depending on the evolution of UT1-TAI. Bulletin C is mailed every
-# six months, either to announce a time step in UTC, or to confirm that there
-# will be no time step at the next possible date.
-#
-# Daniel GAMBIS
-# Head			
-# Earth Orientation Center of the IERS
-# Observatoire de Paris, France
diff --git a/libkcal/libical/tzdata/northamerica b/libkcal/libical/tzdata/northamerica
deleted file mode 100644
index 60e5d51e..00000000
--- a/libkcal/libical/tzdata/northamerica
+++ /dev/null
@@ -1,2651 +0,0 @@
-# @(#)northamerica	8.23
-# <pre>
-
-# also includes Central America and the Caribbean
-
-# This data is by no means authoritative; if you think you know better,
-# go ahead and edit the file (and please send any changes to
-# tz@elsie.nci.nih.gov for general use in the future).
-
-# From Paul Eggert (1999-03-22):
-# A reliable and entertaining source about time zones is
-# Derek Howse, Greenwich time and longitude, Philip Wilson Publishers (1997).
-
-###############################################################################
-
-# United States
-
-# From Paul Eggert (1999-03-31):
-# Howse writes (pp 121-125) that time zones were invented by
-# Professor Charles Ferdinand Dowd (1825-1904),
-# Principal of Temple Grove Ladies' Seminary (Saratoga Springs, NY).
-# His pamphlet ``A System of National Time for Railroads'' (1870)
-# was the result of his proposals at the Convention of Railroad Trunk Lines
-# in New York City (1869-10).  His 1870 proposal was based on Washington, DC,
-# but in 1872-05 he moved the proposed origin to Greenwich.
-# His proposal was adopted by the railroads on 1883-11-18 at 12:00,
-# and the most of the country soon followed suit.
-
-# From Paul Eggert (2005-04-16):
-# That 1883 transition occurred at 12:00 new time, not at 12:00 old time.
-# See p 46 of David Prerau, Seize the daylight, Thunder's Mouth Press (2005).
-
-# From Paul Eggert (2006-03-22):
-# A good source for time zone historical data in the US is
-# Thomas G. Shanks, The American Atlas (5th edition),
-# San Diego: ACS Publications, Inc. (1991).
-# Make sure you have the errata sheet; the book is somewhat useless without it.
-# It is the source for most of the pre-1991 US entries below.
-
-# From Paul Eggert (2001-03-06):
-# Daylight Saving Time was first suggested as a joke by Benjamin Franklin
-# in his whimsical essay ``An Economical Project for Diminishing the Cost
-# of Light'' published in the Journal de Paris (1784-04-26).
-# Not everyone is happy with the results:
-#
-#	I don't really care how time is reckoned so long as there is some
-#	agreement about it, but I object to being told that I am saving
-#	daylight when my reason tells me that I am doing nothing of the kind.
-#	I even object to the implication that I am wasting something
-#	valuable if I stay in bed after the sun has risen.  As an admirer
-#	of moonlight I resent the bossy insistence of those who want to
-#	reduce my time for enjoying it.  At the back of the Daylight Saving
-#	scheme I detect the bony, blue-fingered hand of Puritanism, eager
-#	to push people into bed earlier, and get them up earlier, to make
-#	them healthy, wealthy and wise in spite of themselves.
-#
-#	-- Robertson Davies, The diary of Samuel Marchbanks,
-#	   Clarke, Irwin (1947), XIX, Sunday
-#
-# For more about the first ten years of DST in the United States, see
-# Robert Garland's <a href="http://www.clpgh.org/exhibit/dst.html">
-# Ten years of daylight saving from the Pittsburgh standpoint
-# (Carnegie Library of Pittsburgh, 1927)</a>.
-#
-# Shanks says that DST was called "War Time" in the US in 1918 and 1919.
-# However, DST was imposed by the Standard Time Act of 1918, which
-# was the first nationwide legal time standard, and apparently
-# time was just called "Standard Time" or "Daylight Saving Time".
-
-# From Arthur David Olson:
-# US Daylight Saving Time ended on the last Sunday of *October* in 1974.
-# See, for example, the front page of the Saturday, 1974-10-26
-# and Sunday, 1974-10-27 editions of the Washington Post.
-
-# From Arthur David Olson:
-# Before the Uniform Time Act of 1966 took effect in 1967, observance of
-# Daylight Saving Time in the US was by local option, except during wartime.
-
-# From Arthur David Olson (2000-09-25):
-# Last night I heard part of a rebroadcast of a 1945 Arch Oboler radio drama.
-# In the introduction, Oboler spoke of "Eastern Peace Time."
-# An AltaVista search turned up
-# <a href="http://rowayton.org/rhs/hstaug45.html">:
-# "When the time is announced over the radio now, it is 'Eastern Peace
-# Time' instead of the old familiar 'Eastern War Time.'  Peace is wonderful."
-# </a> (August 1945) by way of confirmation.
-
-# From Joseph Gallant citing
-# George H. Douglas, _The Early Days of Radio Broadcasting_ (1987):
-# At 7 P.M. (Eastern War Time) [on 1945-08-14], the networks were set
-# to switch to London for Attlee's address, but the American people
-# never got to hear his speech live. According to one press account,
-# CBS' Bob Trout was first to announce the word of Japan's surrender,
-# but a few seconds later, NBC, ABC and Mutual also flashed the word
-# of surrender, all of whom interrupting the bells of Big Ben in
-# London which were to precede Mr. Attlee's speech.
-
-# From Paul Eggert (2003-02-09): It was Robert St John, not Bob Trout.  From
-# Myrna Oliver's obituary of St John on page B16 of today's Los Angeles Times:
-#
-# ... a war-weary U.S. clung to radios, awaiting word of Japan's surrender.
-# Any announcement from Asia would reach St. John's New York newsroom on a
-# wire service teletype machine, which had prescribed signals for major news.
-# Associated Press, for example, would ring five bells before spewing out
-# typed copy of an important story, and 10 bells for news "of transcendental
-# importance."
-#
-# On Aug. 14, stalling while talking steadily into the NBC networks' open
-# microphone, St. John heard five bells and waited only to hear a sixth bell,
-# before announcing confidently: "Ladies and gentlemen, World War II is over.
-# The Japanese have agreed to our surrender terms."
-#
-# He had scored a 20-second scoop on other broadcasters.
-
-# From Arthur David Olson (2005-08-22):
-# Paul has been careful to use the "US" rules only in those locations
-# that are part of the United States; this reflects the real scope of
-# U.S. government action.  So even though the "US" rules have changed
-# in the latest release, other countries won't be affected.
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	US	1918	1919	-	Mar	lastSun	2:00	1:00	D
-Rule	US	1918	1919	-	Oct	lastSun	2:00	0	S
-Rule	US	1942	only	-	Feb	9	2:00	1:00	W # War
-Rule	US	1945	only	-	Aug	14	23:00u	1:00	P # Peace
-Rule	US	1945	only	-	Sep	30	2:00	0	S
-Rule	US	1967	2006	-	Oct	lastSun	2:00	0	S
-Rule	US	1967	1973	-	Apr	lastSun	2:00	1:00	D
-Rule	US	1974	only	-	Jan	6	2:00	1:00	D
-Rule	US	1975	only	-	Feb	23	2:00	1:00	D
-Rule	US	1976	1986	-	Apr	lastSun	2:00	1:00	D
-Rule	US	1987	2006	-	Apr	Sun>=1	2:00	1:00	D
-Rule	US	2007	max	-	Mar	Sun>=8	2:00	1:00	D
-Rule	US	2007	max	-	Nov	Sun>=1	2:00	0	S
-
-# From Arthur David Olson, 2005-12-19
-# We generate the files specified below to guard against old files with
-# obsolete information being left in the time zone binary directory.
-# We limit the list to names that have appeared in previous versions of
-# this time zone package.
-# We do these as separate Zones rather than as Links to avoid problems if
-# a particular place changes whether it observes DST.
-# We put these specifications here in the northamerica file both to
-# increase the chances that they'll actually get compiled and to
-# avoid the need to duplicate the US rules in another file.
-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	EST		 -5:00	-	EST
-Zone	MST		 -7:00	-	MST
-Zone	HST		-10:00	-	HST
-Zone	EST5EDT		 -5:00	US	E%sT
-Zone	CST6CDT		 -6:00	US	C%sT
-Zone	MST7MDT		 -7:00	US	M%sT
-Zone	PST8PDT		 -8:00	US	P%sT
-
-# From Bob Devine (1988-01-28):
-# ...Alaska (and Hawaii) had the timezone names changed in 1967.
-#    old			 new
-#    Pacific Standard Time(PST)  -same-
-#    Yukon Standard Time(YST)    -same-
-#    Central Alaska S.T. (CAT)   Alaska-Hawaii St[an]dard Time (AHST)
-#    Nome Standard Time (NT)     Bering Standard Time (BST)
-#
-# ...Alaska's timezone lines were redrawn in 1983 to give only 2 tz.
-#    The YST zone now covers nearly all of the state, AHST just part
-#    of the Aleutian islands.   No DST.
-
-# From Paul Eggert (1995-12-19):
-# The tables below use `NST', not `NT', for Nome Standard Time.
-# I invented `CAWT' for Central Alaska War Time.
-
-# From U. S. Naval Observatory (1989-01-19):
-# USA  EASTERN       5 H  BEHIND UTC    NEW YORK, WASHINGTON
-# USA  EASTERN       4 H  BEHIND UTC    APR 3 - OCT 30
-# USA  CENTRAL       6 H  BEHIND UTC    CHICAGO, HOUSTON
-# USA  CENTRAL       5 H  BEHIND UTC    APR 3 - OCT 30
-# USA  MOUNTAIN      7 H  BEHIND UTC    DENVER
-# USA  MOUNTAIN      6 H  BEHIND UTC    APR 3 - OCT 30
-# USA  PACIFIC       8 H  BEHIND UTC    L.A., SAN FRANCISCO
-# USA  PACIFIC       7 H  BEHIND UTC    APR 3 - OCT 30
-# USA  ALASKA STD    9 H  BEHIND UTC    MOST OF ALASKA     (AKST)
-# USA  ALASKA STD    8 H  BEHIND UTC    APR 3 - OCT 30 (AKDT)
-# USA  ALEUTIAN     10 H  BEHIND UTC    ISLANDS WEST OF 170W
-# USA  - " -         9 H  BEHIND UTC    APR 3 - OCT 30
-# USA  HAWAII       10 H  BEHIND UTC
-# USA  BERING       11 H  BEHIND UTC    SAMOA, MIDWAY
-
-# From Arthur David Olson (1989-01-21):
-# The above dates are for 1988.
-# Note the "AKST" and "AKDT" abbreviations, the claim that there's
-# no DST in Samoa, and the claim that there is DST in Alaska and the
-# Aleutians.
-
-# From Arthur David Olson (1988-02-13):
-# Legal standard time zone names, from United States Code (1982 Edition and
-# Supplement III), Title 15, Chapter 6, Section 260 and forward.  First, names
-# up to 1967-04-01 (when most provisions of the Uniform Time Act of 1966
-# took effect), as explained in sections 263 and 261:
-#	(none)
-#	United States standard eastern time
-#	United States standard mountain time
-#	United States standard central time
-#	United States standard Pacific time
-#	(none)
-#	United States standard Alaska time
-#	(none)
-# Next, names from 1967-04-01 until 1983-11-30 (the date for
-# public law 98-181):
-#	Atlantic standard time
-#	eastern standard time
-#	central standard time
-#	mountain standard time
-#	Pacific standard time
-#	Yukon standard time
-#	Alaska-Hawaii standard time
-#	Bering standard time
-# And after 1983-11-30:
-#	Atlantic standard time
-#	eastern standard time
-#	central standard time
-#	mountain standard time
-#	Pacific standard time
-#	Alaska standard time
-#	Hawaii-Aleutian standard time
-#	Samoa standard time
-# The law doesn't give abbreviations.
-#
-# From Paul Eggert (2000-01-08), following a heads-up from Rives McDow:
-# Public law 106-564 (2000-12-23) introduced the abbreviation
-# "Chamorro Standard Time" for time in Guam and the Northern Marianas.
-# See the file "australasia".
-
-# From Arthur David Olson, 2005-08-09
-# The following was signed into law on 2005-08-08.
-#
-# H.R. 6, Energy Policy Act of 2005, SEC. 110. DAYLIGHT SAVINGS.
-#   (a) Amendment- Section 3(a) of the Uniform Time Act of 1966 (15
-#   U.S.C. 260a(a)) is amended--
-#     (1) by striking `first Sunday of April' and inserting `second
-#     Sunday of March'; and
-#     (2) by striking `last Sunday of October' and inserting `first
-#     Sunday of November'.
-#   (b) Effective Date- Subsection (a) shall take effect 1 year after the
-#   date of enactment of this Act or March 1, 2007, whichever is later.
-#   (c) Report to Congress- Not later than 9 months after the effective
-#   date stated in subsection (b), the Secretary shall report to Congress
-#   on the impact of this section on energy consumption in the United
-#   States.
-#   (d) Right to Revert- Congress retains the right to revert the
-#   Daylight Saving Time back to the 2005 time schedules once the
-#   Department study is complete.
-
-# US eastern time, represented by New York
-
-# Connecticut, Delaware, District of Columbia, most of Florida,
-# Georgia, southeast Indiana (Dearborn and Ohio counties), eastern Kentucky
-# (except America/Kentucky/Louisville below), Maine, Maryland, Massachusetts,
-# New Hampshire, New Jersey, New York, North Carolina, Ohio,
-# Pennsylvania, Rhode Island, South Carolina, eastern Tennessee,
-# Vermont, Virginia, West Virginia
-
-# From Dave Cantor (2004-11-02):
-# Early this summer I had the occasion to visit the Mount Washington
-# Observatory weather station atop (of course!) Mount Washington [, NH]....
-# One of the staff members said that the station was on Eastern Standard Time
-# and didn't change their clocks for Daylight Saving ... so that their
-# reports will always have times which are 5 hours behind UTC.
-
-# From Paul Eggert (2005-08-26):
-# According to today's Huntsville Times
-# <http://www.al.com/news/huntsvilletimes/index.ssf?/base/news/1125047783228320.xml&coll=1>
-# a few towns on Alabama's "eastern border with Georgia, such as Phenix City
-# in Russell County, Lanett in Chambers County and some towns in Lee County,
-# set their watches and clocks on Eastern time."  It quotes H.H. "Bubba"
-# Roberts, city administrator in Phenix City. as saying "We are in the Central
-# time zone, but we do go by the Eastern time zone because so many people work
-# in Columbus."
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER
-Rule	NYC	1920	only	-	Mar	lastSun	2:00	1:00	D
-Rule	NYC	1920	only	-	Oct	lastSun	2:00	0	S
-Rule	NYC	1921	1966	-	Apr	lastSun	2:00	1:00	D
-Rule	NYC	1921	1954	-	Sep	lastSun	2:00	0	S
-Rule	NYC	1955	1966	-	Oct	lastSun	2:00	0	S
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/New_York	-4:56:02 -	LMT	1883 Nov 18 12:03:58
-			-5:00	US	E%sT	1920
-			-5:00	NYC	E%sT	1942
-			-5:00	US	E%sT	1946
-			-5:00	NYC	E%sT	1967
-			-5:00	US	E%sT
-
-# US central time, represented by Chicago
-
-# Alabama, Arkansas, Florida panhandle (Bay, Calhoun, Escambia,
-# Gulf, Holmes, Jackson, Okaloosa, Santa Rosa, Walton, and
-# Washington counties), Illinois, western Indiana
-# (Gibson, Jasper, Lake, LaPorte, Newton, Porter, Posey, Spencer,
-# Vanderburgh, and Warrick counties), Iowa, most of Kansas, western
-# Kentucky, Louisiana, Minnesota, Mississippi, Missouri, eastern
-# Nebraska, eastern North Dakota, Oklahoma, eastern South Dakota,
-# western Tennessee, most of Texas, Wisconsin
-
-# From Larry M. Smith (2006-04-26) re Wisconsin:
-# http://www.legis.state.wi.us/statutes/Stat0175.pdf ...
-# is currently enforced at the 01:00 time of change.  Because the local
-# "bar time" in the state corresponds to 02:00, a number of citations
-# are issued for the "sale of class 'B' alcohol after prohibited
-# hours" within the deviated hour of this change every year....
-#
-# From Douglas R. Bomberg (2007-03-12):
-# Wisconsin has enacted (nearly eleventh-hour) legislation to get WI
-# Statue 175 closer in synch with the US Congress' intent....
-# http://www.legis.state.wi.us/2007/data/acts/07Act3.pdf
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER
-Rule	Chicago	1920	only	-	Jun	13	2:00	1:00	D
-Rule	Chicago	1920	1921	-	Oct	lastSun	2:00	0	S
-Rule	Chicago	1921	only	-	Mar	lastSun	2:00	1:00	D
-Rule	Chicago	1922	1966	-	Apr	lastSun	2:00	1:00	D
-Rule	Chicago	1922	1954	-	Sep	lastSun	2:00	0	S
-Rule	Chicago	1955	1966	-	Oct	lastSun	2:00	0	S
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/Chicago	-5:50:36 -	LMT	1883 Nov 18 12:09:24
-			-6:00	US	C%sT	1920
-			-6:00	Chicago	C%sT	1936 Mar  1 2:00
-			-5:00	-	EST	1936 Nov 15 2:00
-			-6:00	Chicago	C%sT	1942
-			-6:00	US	C%sT	1946
-			-6:00	Chicago	C%sT	1967
-			-6:00	US	C%sT
-# Oliver County, ND switched from mountain to central time on 1992-10-25.
-Zone America/North_Dakota/Center -6:45:12 - LMT	1883 Nov 18 12:14:48
-			-7:00	US	M%sT	1992 Oct 25 02:00
-			-6:00	US	C%sT
-# Morton County, ND, switched from mountain to central time on
-# 2003-10-26, except for the area around Mandan which was already central time.
-# See <http://dmses.dot.gov/docimages/p63/135818.pdf>.
-# Officially this switch also included part of Sioux County, and
-# Jones, Mellette, and Todd Counties in South Dakota;
-# but in practice these other counties were already observing central time.
-# See <http://www.epa.gov/fedrgstr/EPA-IMPACT/2003/October/Day-28/i27056.htm>.
-Zone America/North_Dakota/New_Salem -6:45:39 - LMT 1883 Nov 18 12:14:21
-			-7:00	US	M%sT	2003 Oct 26 02:00
-			-6:00	US	C%sT
-
-# US mountain time, represented by Denver
-#
-# Colorado, far western Kansas, Montana, western
-# Nebraska, Nevada border (Jackpot, Owyhee, and Mountain City),
-# New Mexico, southwestern North Dakota,
-# western South Dakota, far western Texas (El Paso County, Hudspeth County,
-# and Pine Springs and Nickel Creek in Culberson County), Utah, Wyoming
-#
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER
-Rule	Denver	1920	1921	-	Mar	lastSun	2:00	1:00	D
-Rule	Denver	1920	only	-	Oct	lastSun	2:00	0	S
-Rule	Denver	1921	only	-	May	22	2:00	0	S
-Rule	Denver	1965	1966	-	Apr	lastSun	2:00	1:00	D
-Rule	Denver	1965	1966	-	Oct	lastSun	2:00	0	S
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/Denver	-6:59:56 -	LMT	1883 Nov 18 12:00:04
-			-7:00	US	M%sT	1920
-			-7:00	Denver	M%sT	1942
-			-7:00	US	M%sT	1946
-			-7:00	Denver	M%sT	1967
-			-7:00	US	M%sT
-
-# US Pacific time, represented by Los Angeles
-#
-# California, northern Idaho (Benewah, Bonner, Boundary, Clearwater,
-# Idaho, Kootenai, Latah, Lewis, Nez Perce, and Shoshone counties,
-# and the northern three-quarters of Idaho county),
-# most of Nevada, most of Oregon, and Washington
-#
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER
-Rule	CA	1948	only	-	Mar	14	2:00	1:00	D
-Rule	CA	1949	only	-	Jan	 1	2:00	0	S
-Rule	CA	1950	1966	-	Apr	lastSun	2:00	1:00	D
-Rule	CA	1950	1961	-	Sep	lastSun	2:00	0	S
-Rule	CA	1962	1966	-	Oct	lastSun	2:00	0	S
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/Los_Angeles -7:52:58 -	LMT	1883 Nov 18 12:07:02
-			-8:00	US	P%sT	1946
-			-8:00	CA	P%sT	1967
-			-8:00	US	P%sT
-
-# Alaska
-# AK%sT is the modern abbreviation for -9:00 per USNO.
-#
-# From Paul Eggert (2001-05-30):
-# Howse writes that Alaska switched from the Julian to the Gregorian calendar,
-# and from east-of-GMT to west-of-GMT days, when the US bought it from Russia.
-# This was on 1867-10-18, a Friday; the previous day was 1867-10-06 Julian,
-# also a Friday.  Include only the time zone part of this transition,
-# ignoring the switch from Julian to Gregorian, since we can't represent
-# the Julian calendar.
-#
-# As far as we know, none of the exact locations mentioned below were
-# permanently inhabited in 1867 by anyone using either calendar.
-# (Yakutat was colonized by the Russians in 1799, but the settlement
-# was destroyed in 1805 by a Yakutat-kon war party.)  However, there
-# were nearby inhabitants in some cases and for our purposes perhaps
-# it's best to simply use the official transition.
-#
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/Juneau	 15:02:19 -	LMT	1867 Oct 18
-			 -8:57:41 -	LMT	1900 Aug 20 12:00
-			 -8:00	-	PST	1942
-			 -8:00	US	P%sT	1946
-			 -8:00	-	PST	1969
-			 -8:00	US	P%sT	1983 Oct 30 2:00
-			 -9:00	US	Y%sT	1983 Nov 30
-			 -9:00	US	AK%sT
-Zone America/Yakutat	 14:41:05 -	LMT	1867 Oct 18
-			 -9:18:55 -	LMT	1900 Aug 20 12:00
-			 -9:00	-	YST	1942
-			 -9:00	US	Y%sT	1946
-			 -9:00	-	YST	1969
-			 -9:00	US	Y%sT	1983 Nov 30
-			 -9:00	US	AK%sT
-Zone America/Anchorage	 14:00:24 -	LMT	1867 Oct 18
-			 -9:59:36 -	LMT	1900 Aug 20 12:00
-			-10:00	-	CAT	1942
-			-10:00	US	CAT/CAWT 1945 Aug 14 23:00u
-			-10:00	US	CAT/CAPT 1946 # Peace
-			-10:00	-	CAT	1967 Apr
-			-10:00	-	AHST	1969
-			-10:00	US	AH%sT	1983 Oct 30 2:00
-			 -9:00	US	Y%sT	1983 Nov 30
-			 -9:00	US	AK%sT
-Zone America/Nome	 12:58:21 -	LMT	1867 Oct 18
-			-11:01:38 -	LMT	1900 Aug 20 12:00
-			-11:00	-	NST	1942
-			-11:00	US	N%sT	1946
-			-11:00	-	NST	1967 Apr
-			-11:00	-	BST	1969
-			-11:00	US	B%sT	1983 Oct 30 2:00
-			 -9:00	US	Y%sT	1983 Nov 30
-			 -9:00	US	AK%sT
-Zone America/Adak	 12:13:21 -	LMT	1867 Oct 18
-			-11:46:38 -	LMT	1900 Aug 20 12:00
-			-11:00	-	NST	1942
-			-11:00	US	N%sT	1946
-			-11:00	-	NST	1967 Apr
-			-11:00	-	BST	1969
-			-11:00	US	B%sT	1983 Oct 30 2:00
-			-10:00	US	AH%sT	1983 Nov 30
-			-10:00	US	HA%sT
-# The following switches don't quite make our 1970 cutoff.
-#
-# Shanks writes that part of southwest Alaska (e.g. Aniak)
-# switched from -11:00 to -10:00 on 1968-09-22 at 02:00,
-# and another part (e.g. Akiak) made the same switch five weeks later.
-#
-# From David Flater (2004-11-09):
-# In e-mail, 2004-11-02, Ray Hudson, historian/liaison to the Unalaska
-# Historic Preservation Commission, provided this information, which
-# suggests that Unalaska deviated from statutory time from early 1967
-# possibly until 1983:
-#
-#  Minutes of the Unalaska City Council Meeting, January 10, 1967:
-#  "Except for St. Paul and Akutan, Unalaska is the only important
-#  location not on Alaska Standard Time.  The following resolution was
-#  made by William Robinson and seconded by Henry Swanson:  Be it
-#  resolved that the City of Unalaska hereby goes to Alaska Standard
-#  Time as of midnight Friday, January 13, 1967 (1 A.M. Saturday,
-#  January 14, Alaska Standard Time.)  This resolution was passed with
-#  three votes for and one against."
-
-# Hawaii
-#
-# From Arthur David Olson:
-# And then there's Hawaii.
-# DST was observed for one day in 1933;
-# standard time was changed by half an hour in 1947;
-# it's always standard as of 1986.
-#
-# From Paul Eggert:
-# Shanks says the 1933 experiment lasted for three weeks.  Go with Shanks.
-#
-Zone Pacific/Honolulu	-10:31:26 -	LMT	1900 Jan  1 12:00
-			-10:30	-	HST	1933 Apr 30 2:00
-			-10:30	1:00	HDT	1933 May 21 2:00
-			-10:30	US	H%sT	1947 Jun  8 2:00
-			-10:00	-	HST
-
-# Now we turn to US areas that have diverged from the consensus since 1970.
-
-# Arizona mostly uses MST.
-
-# From Paul Eggert (2002-10-20):
-#
-# The information in the rest of this paragraph is derived from the
-# <a href="http://www.dlapr.lib.az.us/links/daylight.htm">
-# Daylight Saving Time web page (2002-01-23)</a> maintained by the
-# Arizona State Library, Archives and Public Records.
-# Between 1944-01-01 and 1944-04-01 the State of Arizona used standard
-# time, but by federal law railroads, airlines, bus lines, military
-# personnel, and some engaged in interstate commerce continued to
-# observe war (i.e., daylight saving) time.  The 1944-03-17 Phoenix
-# Gazette says that was the date the law changed, and that 04-01 was
-# the date the state's clocks would change.  In 1945 the State of
-# Arizona used standard time all year, again with exceptions only as
-# mandated by federal law.  Arizona observed DST in 1967, but Arizona
-# Laws 1968, ch. 183 (effective 1968-03-21) repealed DST.
-#
-# Shanks says the 1944 experiment came to an end on 1944-03-17.
-# Go with the Arizona State Library instead.
-
-Zone America/Phoenix	-7:28:18 -	LMT	1883 Nov 18 11:31:42
-			-7:00	US	M%sT	1944 Jan  1 00:01
-			-7:00	-	MST	1944 Apr  1 00:01
-			-7:00	US	M%sT	1944 Oct  1 00:01
-			-7:00	-	MST	1967
-			-7:00	US	M%sT	1968 Mar 21
-			-7:00	-	MST
-# From Arthur David Olson (1988-02-13):
-# A writer from the Inter Tribal Council of Arizona, Inc.,
-# notes in private correspondence dated 1987-12-28 that "Presently, only the
-# Navajo Nation participates in the Daylight Saving Time policy, due to its
-# large size and location in three states."  (The "only" means that other
-# tribal nations don't use DST.)
-
-Link America/Denver America/Shiprock
-
-# Southern Idaho (Ada, Adams, Bannock, Bear Lake, Bingham, Blaine,
-# Boise, Bonneville, Butte, Camas, Canyon, Caribou, Cassia, Clark,
-# Custer, Elmore, Franklin, Fremont, Gem, Gooding, Jefferson, Jerome,
-# Lemhi, Lincoln, Madison, Minidoka, Oneida, Owyhee, Payette, Power,
-# Teton, Twin Falls, Valley, Washington counties, and the southern
-# quarter of Idaho county) and eastern Oregon (most of Malheur County)
-# switched four weeks late in 1974.
-#
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/Boise	-7:44:49 -	LMT	1883 Nov 18 12:15:11
-			-8:00	US	P%sT	1923 May 13 2:00
-			-7:00	US	M%sT	1974
-			-7:00	-	MST	1974 Feb  3 2:00
-			-7:00	US	M%sT
-
-# Indiana
-#
-# For a map of Indiana's time zone regions, see:
-# <a href="http://www.mccsc.edu/time.html">
-# What time is it in Indiana?
-# </a> (2006-03-01)
-#
-# From Paul Eggert (2007-08-17):
-# Since 1970, most of Indiana has been like America/Indiana/Indianapolis,
-# with the following exceptions:
-#
-# - Gibson, Jasper, Lake, LaPorte, Newton, Porter, Posey, Spencer,
-#   Vandenburgh, and Warrick counties have been like America/Chicago.
-#
-# - Dearborn and Ohio counties have been like America/New_York.
-#
-# - Clark, Floyd, and Harrison counties have been like
-#   America/Kentucky/Louisville.
-#
-# - Crawford, Daviess, Dubois, Knox, Martin, Perry, Pike, Pulaski, Starke,
-#   and Switzerland counties have their own time zone histories as noted below.
-#
-# Shanks partitioned Indiana into 345 regions, each with its own time history,
-# and wrote ``Even newspaper reports present contradictory information.''
-# Those Hoosiers!  Such a flighty and changeable people!
-# Fortunately, most of the complexity occurred before our cutoff date of 1970.
-#
-# Other than Indianapolis, the Indiana place names are so nondescript
-# that they would be ambiguous if we left them at the `America' level.
-# So we reluctantly put them all in a subdirectory `America/Indiana'.
-
-# From Paul Eggert (2005-08-16):
-# http://www.mccsc.edu/time.html says that Indiana will use DST starting 2006.
-
-# From Nathan Stratton Treadway (2006-03-30):
-# http://www.dot.gov/affairs/dot0406.htm [3705 B]
-# From Deborah Goldsmith (2006-01-18):
-# http://dmses.dot.gov/docimages/pdf95/382329_web.pdf [2.9 MB]
-# From Paul Eggert (2006-01-20):
-# It says "DOT is relocating the time zone boundary in Indiana to move Starke,
-# Pulaski, Knox, Daviess, Martin, Pike, Dubois, and Perry Counties from the
-# Eastern Time Zone to the Central Time Zone.... The effective date of
-# this rule is 2:OO a.m. EST Sunday, April 2, 2006, which is the
-# changeover date from standard time to Daylight Saving Time."
-# Strictly speaking, this means the affected counties will change their
-# clocks twice that night, but this obviously is in error.  The intent
-# is that 01:59:59 EST be followed by 02:00:00 CDT.
-
-# From Gwillim Law (2007-02-10):
-# The Associated Press has been reporting that Pulaski County, Indiana is
-# going to switch from Central to Eastern Time on March 11, 2007....
-# http://www.indystar.com/apps/pbcs.dll/article?AID=/20070207/LOCAL190108/702070524/0/LOCAL
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER
-Rule Indianapolis 1941	only	-	Jun	22	2:00	1:00	D
-Rule Indianapolis 1941	1954	-	Sep	lastSun	2:00	0	S
-Rule Indianapolis 1946	1954	-	Apr	lastSun	2:00	1:00	D
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/Indiana/Indianapolis -5:44:38 - LMT 1883 Nov 18 12:15:22
-			-6:00	US	C%sT	1920
-			-6:00 Indianapolis C%sT	1942
-			-6:00	US	C%sT	1946
-			-6:00 Indianapolis C%sT	1955 Apr 24 2:00
-			-5:00	-	EST	1957 Sep 29 2:00
-			-6:00	-	CST	1958 Apr 27 2:00
-			-5:00	-	EST	1969
-			-5:00	US	E%sT	1971
-			-5:00	-	EST	2006
-			-5:00	US	E%sT
-#
-# Eastern Crawford County, Indiana, left its clocks alone in 1974,
-# as well as from 1976 through 2005.
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER
-Rule	Marengo	1951	only	-	Apr	lastSun	2:00	1:00	D
-Rule	Marengo	1951	only	-	Sep	lastSun	2:00	0	S
-Rule	Marengo	1954	1960	-	Apr	lastSun	2:00	1:00	D
-Rule	Marengo	1954	1960	-	Sep	lastSun	2:00	0	S
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/Indiana/Marengo -5:45:23 -	LMT	1883 Nov 18 12:14:37
-			-6:00	US	C%sT	1951
-			-6:00	Marengo	C%sT	1961 Apr 30 2:00
-			-5:00	-	EST	1969
-			-5:00	US	E%sT	1974 Jan  6 2:00
-			-6:00	1:00	CDT	1974 Oct 27 2:00
-			-5:00	US	E%sT	1976
-			-5:00	-	EST	2006
-			-5:00	US	E%sT
-#
-# Daviess, Dubois, Knox, and Martin Counties, Indiana,
-# switched from eastern to central time in April 2006, then switched back
-# in November 2007.
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER
-Rule Vincennes	1946	only	-	Apr	lastSun	2:00	1:00	D
-Rule Vincennes	1946	only	-	Sep	lastSun	2:00	0	S
-Rule Vincennes	1953	1954	-	Apr	lastSun	2:00	1:00	D
-Rule Vincennes	1953	1959	-	Sep	lastSun	2:00	0	S
-Rule Vincennes	1955	only	-	May	 1	0:00	1:00	D
-Rule Vincennes	1956	1963	-	Apr	lastSun	2:00	1:00	D
-Rule Vincennes	1960	only	-	Oct	lastSun	2:00	0	S
-Rule Vincennes	1961	only	-	Sep	lastSun	2:00	0	S
-Rule Vincennes	1962	1963	-	Oct	lastSun	2:00	0	S
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/Indiana/Vincennes -5:50:07 - LMT	1883 Nov 18 12:09:53
-			-6:00	US	C%sT	1946
-			-6:00 Vincennes	C%sT	1964 Apr 26 2:00
-			-5:00	-	EST	1969
-			-5:00	US	E%sT	1971
-			-5:00	-	EST	2006 Apr  2 2:00
-			-6:00	US	C%sT	2007 Nov  4 2:00
-			-5:00	US	E%sT
-#
-# Perry County, Indiana, switched from eastern to central time in April 2006.
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER
-Rule Perry	1946	only	-	Apr	lastSun	2:00	1:00	D
-Rule Perry	1946	only	-	Sep	lastSun	2:00	0	S
-Rule Perry	1953	1954	-	Apr	lastSun	2:00	1:00	D
-Rule Perry	1953	1959	-	Sep	lastSun	2:00	0	S
-Rule Perry	1955	only	-	May	 1	0:00	1:00	D
-Rule Perry	1956	1963	-	Apr	lastSun	2:00	1:00	D
-Rule Perry	1960	only	-	Oct	lastSun	2:00	0	S
-Rule Perry	1961	only	-	Sep	lastSun	2:00	0	S
-Rule Perry	1962	1963	-	Oct	lastSun	2:00	0	S
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/Indiana/Tell_City -5:47:03 - LMT	1883 Nov 18 12:12:57
-			-6:00	US	C%sT	1946
-			-6:00 Perry	C%sT	1964 Apr 26 2:00
-			-5:00	-	EST	1969
-			-5:00	US	E%sT	1971
-			-5:00	-	EST	2006 Apr  2 2:00
-			-6:00	US	C%sT
-#
-# Pike County, Indiana moved from central to eastern time in 1977,
-# then switched back in 2006, then switched back again in 2007.
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER
-Rule	Pike	1955	only	-	May	 1	0:00	1:00	D
-Rule	Pike	1955	1960	-	Sep	lastSun	2:00	0	S
-Rule	Pike	1956	1964	-	Apr	lastSun	2:00	1:00	D
-Rule	Pike	1961	1964	-	Oct	lastSun	2:00	0	S
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/Indiana/Petersburg -5:49:07 - LMT	1883 Nov 18 12:10:53
-			-6:00	US	C%sT	1955
-			-6:00	Pike	C%sT	1965 Apr 25 2:00
-			-5:00	-	EST	1966 Oct 30 2:00
-			-6:00	US	C%sT	1977 Oct 30 2:00
-			-5:00	-	EST	2006 Apr  2 2:00
-			-6:00	US	C%sT	2007 Nov  4 2:00
-			-5:00	US	E%sT
-#
-# Starke County, Indiana moved from central to eastern time in 1991,
-# then switched back in 2006.
-# From Arthur David Olson (1991-10-28):
-# An article on page A3 of the Sunday, 1991-10-27 Washington Post
-# notes that Starke County switched from Central time to Eastern time as of
-# 1991-10-27.
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER
-Rule	Starke	1947	1961	-	Apr	lastSun	2:00	1:00	D
-Rule	Starke	1947	1954	-	Sep	lastSun	2:00	0	S
-Rule	Starke	1955	1956	-	Oct	lastSun	2:00	0	S
-Rule	Starke	1957	1958	-	Sep	lastSun	2:00	0	S
-Rule	Starke	1959	1961	-	Oct	lastSun	2:00	0	S
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/Indiana/Knox -5:46:30 -	LMT	1883 Nov 18 12:13:30
-			-6:00	US	C%sT	1947
-			-6:00	Starke	C%sT	1962 Apr 29 2:00
-			-5:00	-	EST	1963 Oct 27 2:00
-			-6:00	US	C%sT	1991 Oct 27 2:00
-			-5:00	-	EST	2006 Apr  2 2:00
-			-6:00	US	C%sT
-#
-# Pulaski County, Indiana, switched from eastern to central time in
-# April 2006 and then switched back in March 2007.
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER
-Rule	Pulaski	1946	1960	-	Apr	lastSun	2:00	1:00	D
-Rule	Pulaski	1946	1954	-	Sep	lastSun	2:00	0	S
-Rule	Pulaski	1955	1956	-	Oct	lastSun	2:00	0	S
-Rule	Pulaski	1957	1960	-	Sep	lastSun	2:00	0	S
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/Indiana/Winamac -5:46:25 - LMT	1883 Nov 18 12:13:35
-			-6:00	US	C%sT	1946
-			-6:00	Pulaski	C%sT	1961 Apr 30 2:00
-			-5:00	-	EST	1969
-			-5:00	US	E%sT	1971
-			-5:00	-	EST	2006 Apr  2 2:00
-			-6:00	US	C%sT	2007 Mar 11 2:00
-			-5:00	US	E%sT
-#
-# Switzerland County, Indiana, did not observe DST from 1973 through 2005.
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/Indiana/Vevay -5:40:16 -	LMT	1883 Nov 18 12:19:44
-			-6:00	US	C%sT	1954 Apr 25 2:00
-			-5:00	-	EST	1969
-			-5:00	US	E%sT	1973
-			-5:00	-	EST	2006
-			-5:00	US	E%sT
-
-# Part of Kentucky left its clocks alone in 1974.
-# This also includes Clark, Floyd, and Harrison counties in Indiana.
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER
-Rule Louisville	1921	only	-	May	1	2:00	1:00	D
-Rule Louisville	1921	only	-	Sep	1	2:00	0	S
-Rule Louisville	1941	1961	-	Apr	lastSun	2:00	1:00	D
-Rule Louisville	1941	only	-	Sep	lastSun	2:00	0	S
-Rule Louisville	1946	only	-	Jun	2	2:00	0	S
-Rule Louisville	1950	1955	-	Sep	lastSun	2:00	0	S
-Rule Louisville	1956	1960	-	Oct	lastSun	2:00	0	S
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/Kentucky/Louisville -5:43:02 -	LMT	1883 Nov 18 12:16:58
-			-6:00	US	C%sT	1921
-			-6:00 Louisville C%sT	1942
-			-6:00	US	C%sT	1946
-			-6:00 Louisville C%sT	1961 Jul 23 2:00
-			-5:00	-	EST	1968
-			-5:00	US	E%sT	1974 Jan  6 2:00
-			-6:00	1:00	CDT	1974 Oct 27 2:00
-			-5:00	US	E%sT
-#
-# Wayne County, Kentucky
-#
-# From
-# <a href="http://www.lake-cumberland.com/life/archive/news990129time.shtml">
-# Lake Cumberland LIFE
-# </a> (1999-01-29) via WKYM-101.7:
-# Clinton County has joined Wayne County in asking the DoT to change from
-# the Central to the Eastern time zone....  The Wayne County government made
-# the same request in December.  And while Russell County officials have not
-# taken action, the majority of respondents to a poll conducted there in
-# August indicated they would like to change to "fast time" also.
-# The three Lake Cumberland counties are the farthest east of any U.S.
-# location in the Central time zone.
-#
-# From Rich Wales (2000-08-29):
-# After prolonged debate, and despite continuing deep differences of opinion,
-# Wayne County (central Kentucky) is switching from Central (-0600) to Eastern
-# (-0500) time.  They won't "fall back" this year.  See Sara Shipley,
-# The difference an hour makes, Nando Times (2000-08-29 15:33 -0400).
-#
-# From Paul Eggert (2001-07-16):
-# The final rule was published in the
-# <a href="http://frwebgate.access.gpo.gov/cgi-bin/getdoc.cgi?dbname=2000_register&docid=fr17au00-22">
-# Federal Register 65, 160 (2000-08-17), page 50154-50158.
-# </a>
-#
-Zone America/Kentucky/Monticello -5:39:24 - LMT	1883 Nov 18 12:20:36
-			-6:00	US	C%sT	1946
-			-6:00	-	CST	1968
-			-6:00	US	C%sT	2000 Oct 29  2:00
-			-5:00	US	E%sT
-
-
-# From Rives McDow (2000-08-30):
-# Here ... are all the changes in the US since 1985.
-# Kearny County, KS (put all of county on central;
-#	previously split between MST and CST) ... 1990-10
-# Starke County, IN (from CST to EST) ... 1991-10
-# Oliver County, ND (from MST to CST) ... 1992-10
-# West Wendover, NV (from PST TO MST) ... 1999-10
-# Wayne County, KY (from CST to EST) ... 2000-10
-#
-# From Paul Eggert (2001-07-17):
-# We don't know where the line used to be within Kearny County, KS,
-# so omit that change for now.
-# See America/Indiana/Knox for the Starke County, IN change.
-# See America/North_Dakota/Center for the Oliver County, ND change.
-# West Wendover, NV officially switched from Pacific to mountain time on
-# 1999-10-31.  See the
-# <a href="http://frwebgate.access.gpo.gov/cgi-bin/getdoc.cgi?dbname=1999_register&docid=fr21oc99-15">
-# Federal Register 64, 203 (1999-10-21), page 56705-56707.
-# </a>
-# However, the Federal Register says that West Wendover already operated
-# on mountain time, and the rule merely made this official;
-# hence a separate tz entry is not needed.
-
-# Michigan
-#
-# From Bob Devine (1988-01-28):
-# Michigan didn't observe DST from 1968 to 1973.
-#
-# From Paul Eggert (1999-03-31):
-# Shanks writes that Michigan started using standard time on 1885-09-18,
-# but Howse writes (pp 124-125, referring to Popular Astronomy, 1901-01)
-# that Detroit kept
-#
-#	local time until 1900 when the City Council decreed that clocks should
-#	be put back twenty-eight minutes to Central Standard Time.  Half the
-#	city obeyed, half refused.  After considerable debate, the decision
-#	was rescinded and the city reverted to Sun time.  A derisive offer to
-#	erect a sundial in front of the city hall was referred to the
-#	Committee on Sewers.  Then, in 1905, Central time was adopted
-#	by city vote.
-#
-# This story is too entertaining to be false, so go with Howse over Shanks.
-#
-# From Paul Eggert (2001-03-06):
-# Garland (1927) writes ``Cleveland and Detroit advanced their clocks
-# one hour in 1914.''  This change is not in Shanks.  We have no more
-# info, so omit this for now.
-#
-# Most of Michigan observed DST from 1973 on, but was a bit late in 1975.
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER
-Rule	Detroit	1948	only	-	Apr	lastSun	2:00	1:00	D
-Rule	Detroit	1948	only	-	Sep	lastSun	2:00	0	S
-Rule	Detroit	1967	only	-	Jun	14	2:00	1:00	D
-Rule	Detroit	1967	only	-	Oct	lastSun	2:00	0	S
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/Detroit	-5:32:11 -	LMT	1905
-			-6:00	-	CST	1915 May 15 2:00
-			-5:00	-	EST	1942
-			-5:00	US	E%sT	1946
-			-5:00	Detroit	E%sT	1973
-			-5:00	US	E%sT	1975
-			-5:00	-	EST	1975 Apr 27 2:00
-			-5:00	US	E%sT
-#
-# Dickinson, Gogebic, Iron, and Menominee Counties, Michigan,
-# switched from EST to CST/CDT in 1973.
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER
-Rule Menominee	1946	only	-	Apr	lastSun	2:00	1:00	D
-Rule Menominee	1946	only	-	Sep	lastSun	2:00	0	S
-Rule Menominee	1966	only	-	Apr	lastSun	2:00	1:00	D
-Rule Menominee	1966	only	-	Oct	lastSun	2:00	0	S
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/Menominee	-5:50:27 -	LMT	1885 Sep 18 12:00
-			-6:00	US	C%sT	1946
-			-6:00 Menominee	C%sT	1969 Apr 27 2:00
-			-5:00	-	EST	1973 Apr 29 2:00
-			-6:00	US	C%sT
-
-# Navassa
-# administered by the US Fish and Wildlife Service
-# claimed by US under the provisions of the 1856 Guano Islands Act
-# also claimed by Haiti
-# occupied 1857/1900 by the Navassa Phosphate Co
-# US lighthouse 1917/1996-09
-# currently uninhabited
-# see Mark Fineman, ``An Isle Rich in Guano and Discord'',
-# _Los Angeles Times_ (1998-11-10), A1, A10; it cites
-# Jimmy Skaggs, _The Great Guano Rush_ (1994).
-
-################################################################################
-
-
-# From Paul Eggert (2006-03-22):
-# A good source for time zone historical data outside the U.S. is
-# Thomas G. Shanks and Rique Pottenger, The International Atlas (6th edition),
-# San Diego: ACS Publications, Inc. (2003).
-#
-# Gwillim Law writes that a good source
-# for recent time zone data is the International Air Transport
-# Association's Standard Schedules Information Manual (IATA SSIM),
-# published semiannually.  Law sent in several helpful summaries
-# of the IATA's data after 1990.
-#
-# Except where otherwise noted, Shanks & Pottenger is the source for
-# entries through 1990, and IATA SSIM is the source for entries afterwards.
-#
-# Other sources occasionally used include:
-#
-#	Edward W. Whitman, World Time Differences,
-#	Whitman Publishing Co, 2 Niagara Av, Ealing, London (undated),
-#	which I found in the UCLA library.
-#
-#	<a href="http://www.pettswoodvillage.co.uk/Daylight_Savings_William_Willett.pdf">
-#	William Willett, The Waste of Daylight, 19th edition
-#	</a> (1914-03)
-#
-# See the `europe' file for Greenland.
-
-# Canada
-
-# From Alain LaBont<e'> (1994-11-14):
-# I post here the time zone abbreviations standardized in Canada
-# for both English and French in the CAN/CSA-Z234.4-89 standard....
-#
-#	UTC	Standard time	Daylight savings time
-#	offset	French	English	French	English
-#	-2:30	-	-	HAT	NDT
-#	-3	-	-	HAA	ADT
-#	-3:30	HNT	NST	-	-
-#	-4	HNA	AST	HAE	EDT
-#	-5	HNE	EST	HAC	CDT
-#	-6	HNC	CST	HAR	MDT
-#	-7	HNR	MST	HAP	PDT
-#	-8	HNP	PST	HAY	YDT
-#	-9	HNY	YST	-	-
-#
-#	HN: Heure Normale	ST: Standard Time
-#	HA: Heure Avanc<e'>e	DT: Daylight saving Time
-#
-#	A: de l'Atlantique	Atlantic
-#	C: du Centre		Central
-#	E: de l'Est		Eastern
-#	M:			Mountain
-#	N:			Newfoundland
-#	P: du Pacifique		Pacific
-#	R: des Rocheuses
-#	T: de Terre-Neuve
-#	Y: du Yukon		Yukon
-#
-# From Paul Eggert (1994-11-22):
-# Alas, this sort of thing must be handled by localization software.
-
-# Unless otherwise specified, the data for Canada are all from Shanks
-# & Pottenger.
-
-# From Chris Walton (2006-04-01, 2006-04-25, 2006-06-26, 2007-01-31,
-# 2007-03-01):
-# The British Columbia government announced yesterday that it will
-# adjust daylight savings next year to align with changes in the
-# U.S. and the rest of Canada....
-# http://www2.news.gov.bc.ca/news_releases_2005-2009/2006AG0014-000330.htm
-# ...
-# Nova Scotia
-# Daylight saving time will be extended by four weeks starting in 2007....
-# http://www.gov.ns.ca/just/regulations/rg2/2006/ma1206.pdf
-#
-# [For New Brunswick] the new legislation dictates that the time change is to
-# be done at 02:00 instead of 00:01.
-# http://www.gnb.ca/0062/acts/BBA-2006/Chap-19.pdf
-# ...
-# Manitoba has traditionally changed the clock every fall at 03:00.
-# As of 2006, the transition is to take place one hour earlier at 02:00.
-# http://web2.gov.mb.ca/laws/statutes/ccsm/o030e.php
-# ...
-# [Alberta, Ontario, Quebec] will follow US rules.
-# http://www.qp.gov.ab.ca/documents/spring/CH03_06.CFM
-# http://www.e-laws.gov.on.ca/DBLaws/Source/Regs/English/2006/R06111_e.htm
-# http://www2.publicationsduquebec.gouv.qc.ca/dynamicSearch/telecharge.php?type=5&file=2006C39A.PDF
-# ...
-# P.E.I. will follow US rules....
-# http://www.assembly.pe.ca/bills/pdf_chapter/62/3/chapter-41.pdf
-# ...
-# Province of Newfoundland and Labrador....
-# http://www.hoa.gov.nl.ca/hoa/bills/Bill0634.htm
-# ...
-# Yukon
-# http://www.gov.yk.ca/legislation/regs/oic2006_127.pdf
-# ...
-# N.W.T. will follow US rules.  Whoever maintains the government web site
-# does not seem to believe in bookmarks.  To see the news release, click the
-# following link and search for "Daylight Savings Time Change".  Press the
-# "Daylight Savings Time Change" link; it will fire off a popup using
-# JavaScript.
-# http://www.exec.gov.nt.ca/currentnews/currentPR.asp?mode=archive
-# ...
-# Nunavut
-# An amendment to the Interpretation Act was registered on February 19/2007....
-# http://action.attavik.ca/home/justice-gn/attach/2007/gaz02part2.pdf
-
-# From Paul Eggert (2006-04-25):
-# H. David Matthews and Mary Vincent's map
-# <a href="http://www.canadiangeographic.ca/Magazine/SO98/geomap.asp">
-# "It's about TIME", _Canadian Geographic_ (September-October 1998)
-# </a> contains detailed boundaries for regions observing nonstandard
-# time and daylight saving time arrangements in Canada circa 1998.
-#
-# INMS, the Institute for National Measurement Standards in Ottawa, has <a
-# href="http://inms-ienm.nrc-cnrc.gc.ca/en/time_services/daylight_saving_e.php">
-# information about standard and daylight saving time zones in Canada.
-# </a> (updated periodically).
-# Its unofficial information is often taken from Matthews and Vincent.
-
-# From Paul Eggert (2006-06-27):
-# For now, assume all of DST-observing Canada will fall into line with the
-# new US DST rules,
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Canada	1918	only	-	Apr	14	2:00	1:00	D
-Rule	Canada	1918	only	-	Oct	31	2:00	0	S
-Rule	Canada	1942	only	-	Feb	 9	2:00	1:00	W # War
-Rule	Canada	1945	only	-	Aug	14	23:00u	1:00	P # Peace
-Rule	Canada	1945	only	-	Sep	30	2:00	0	S
-Rule	Canada	1974	1986	-	Apr	lastSun	2:00	1:00	D
-Rule	Canada	1974	2006	-	Oct	lastSun	2:00	0	S
-Rule	Canada	1987	2006	-	Apr	Sun>=1	2:00	1:00	D
-Rule	Canada	2007	max	-	Mar	Sun>=8	2:00	1:00	D
-Rule	Canada	2007	max	-	Nov	Sun>=1	2:00	0	S
-
-
-# Newfoundland and Labrador
-
-# From Paul Eggert (2000-10-02):
-# Matthews and Vincent (1998) write that Labrador should use NST/NDT,
-# but the only part of Labrador that follows the rules is the
-# southeast corner, including Port Hope Simpson and Mary's Harbour,
-# but excluding, say, Black Tickle.
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	StJohns	1917	only	-	Apr	 8	2:00	1:00	D
-Rule	StJohns	1917	only	-	Sep	17	2:00	0	S
-# Whitman gives 1919 Apr 5 and 1920 Apr 5; go with Shanks & Pottenger.
-Rule	StJohns	1919	only	-	May	 5	23:00	1:00	D
-Rule	StJohns	1919	only	-	Aug	12	23:00	0	S
-# For 1931-1935 Whitman gives Apr same date; go with Shanks & Pottenger.
-Rule	StJohns	1920	1935	-	May	Sun>=1	23:00	1:00	D
-Rule	StJohns	1920	1935	-	Oct	lastSun	23:00	0	S
-# For 1936-1941 Whitman gives May Sun>=8 and Oct Sun>=1; go with Shanks &
-# Pottenger.
-Rule	StJohns	1936	1941	-	May	Mon>=9	0:00	1:00	D
-Rule	StJohns	1936	1941	-	Oct	Mon>=2	0:00	0	S
-# Whitman gives the following transitions:
-# 1942 03-01/12-31, 1943 05-30/09-05, 1944 07-10/09-02, 1945 01-01/10-07
-# but go with Shanks & Pottenger and assume they used Canadian rules.
-# For 1946-9 Whitman gives May 5,4,9,1 - Oct 1,5,3,2, and for 1950 he gives
-# Apr 30 - Sep 24; go with Shanks & Pottenger.
-Rule	StJohns	1946	1950	-	May	Sun>=8	2:00	1:00	D
-Rule	StJohns	1946	1950	-	Oct	Sun>=2	2:00	0	S
-Rule	StJohns	1951	1986	-	Apr	lastSun	2:00	1:00	D
-Rule	StJohns	1951	1959	-	Sep	lastSun	2:00	0	S
-Rule	StJohns	1960	1986	-	Oct	lastSun	2:00	0	S
-# From Paul Eggert (2000-10-02):
-# INMS (2000-09-12) says that, since 1988 at least, Newfoundland switches
-# at 00:01 local time.  For now, assume it started in 1987.
-Rule	StJohns	1987	only	-	Apr	Sun>=1	0:01	1:00	D
-Rule	StJohns	1987	2006	-	Oct	lastSun	0:01	0	S
-Rule	StJohns	1988	only	-	Apr	Sun>=1	0:01	2:00	DD
-Rule	StJohns	1989	2006	-	Apr	Sun>=1	0:01	1:00	D
-Rule	StJohns	2007	max	-	Mar	Sun>=8	0:01	1:00	D
-Rule	StJohns	2007	max	-	Nov	Sun>=1	0:01	0	S
-#
-# St John's has an apostrophe, but Posix file names can't have apostrophes.
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/St_Johns	-3:30:52 -	LMT	1884
-			-3:30:52 StJohns N%sT	1918
-			-3:30:52 Canada	N%sT	1919
-			-3:30:52 StJohns N%sT	1935 Mar 30
-			-3:30	StJohns	N%sT	1942 May 11
-			-3:30	Canada	N%sT	1946
-			-3:30	StJohns	N%sT
-
-# most of east Labrador
-
-# The name `Happy Valley-Goose Bay' is too long; use `Goose Bay'.
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/Goose_Bay	-4:01:40 -	LMT	1884 # Happy Valley-Goose Bay
-			-3:30:52 -	NST	1918
-			-3:30:52 Canada N%sT	1919
-			-3:30:52 -	NST	1935 Mar 30
-			-3:30	-	NST	1936
-			-3:30	StJohns	N%sT	1942 May 11
-			-3:30	Canada	N%sT	1946
-			-3:30	StJohns	N%sT	1966 Mar 15 2:00
-			-4:00	StJohns	A%sT
-
-
-# west Labrador, Nova Scotia, Prince Edward I
-
-# From Paul Eggert (2006-03-22):
-# Shanks & Pottenger write that since 1970 most of this region has been like
-# Halifax.  Many locales did not observe peacetime DST until 1972;
-# Glace Bay, NS is the largest that we know of.
-# Shanks & Pottenger also write that Liverpool, NS was the only town
-# in Canada to observe DST in 1971 but not 1970; for now we'll assume
-# this is a typo.
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Halifax	1916	only	-	Apr	 1	0:00	1:00	D
-Rule	Halifax	1916	only	-	Oct	 1	0:00	0	S
-Rule	Halifax	1920	only	-	May	 9	0:00	1:00	D
-Rule	Halifax	1920	only	-	Aug	29	0:00	0	S
-Rule	Halifax	1921	only	-	May	 6	0:00	1:00	D
-Rule	Halifax	1921	1922	-	Sep	 5	0:00	0	S
-Rule	Halifax	1922	only	-	Apr	30	0:00	1:00	D
-Rule	Halifax	1923	1925	-	May	Sun>=1	0:00	1:00	D
-Rule	Halifax	1923	only	-	Sep	 4	0:00	0	S
-Rule	Halifax	1924	only	-	Sep	15	0:00	0	S
-Rule	Halifax	1925	only	-	Sep	28	0:00	0	S
-Rule	Halifax	1926	only	-	May	16	0:00	1:00	D
-Rule	Halifax	1926	only	-	Sep	13	0:00	0	S
-Rule	Halifax	1927	only	-	May	 1	0:00	1:00	D
-Rule	Halifax	1927	only	-	Sep	26	0:00	0	S
-Rule	Halifax	1928	1931	-	May	Sun>=8	0:00	1:00	D
-Rule	Halifax	1928	only	-	Sep	 9	0:00	0	S
-Rule	Halifax	1929	only	-	Sep	 3	0:00	0	S
-Rule	Halifax	1930	only	-	Sep	15	0:00	0	S
-Rule	Halifax	1931	1932	-	Sep	Mon>=24	0:00	0	S
-Rule	Halifax	1932	only	-	May	 1	0:00	1:00	D
-Rule	Halifax	1933	only	-	Apr	30	0:00	1:00	D
-Rule	Halifax	1933	only	-	Oct	 2	0:00	0	S
-Rule	Halifax	1934	only	-	May	20	0:00	1:00	D
-Rule	Halifax	1934	only	-	Sep	16	0:00	0	S
-Rule	Halifax	1935	only	-	Jun	 2	0:00	1:00	D
-Rule	Halifax	1935	only	-	Sep	30	0:00	0	S
-Rule	Halifax	1936	only	-	Jun	 1	0:00	1:00	D
-Rule	Halifax	1936	only	-	Sep	14	0:00	0	S
-Rule	Halifax	1937	1938	-	May	Sun>=1	0:00	1:00	D
-Rule	Halifax	1937	1941	-	Sep	Mon>=24	0:00	0	S
-Rule	Halifax	1939	only	-	May	28	0:00	1:00	D
-Rule	Halifax	1940	1941	-	May	Sun>=1	0:00	1:00	D
-Rule	Halifax	1946	1949	-	Apr	lastSun	2:00	1:00	D
-Rule	Halifax	1946	1949	-	Sep	lastSun	2:00	0	S
-Rule	Halifax	1951	1954	-	Apr	lastSun	2:00	1:00	D
-Rule	Halifax	1951	1954	-	Sep	lastSun	2:00	0	S
-Rule	Halifax	1956	1959	-	Apr	lastSun	2:00	1:00	D
-Rule	Halifax	1956	1959	-	Sep	lastSun	2:00	0	S
-Rule	Halifax	1962	1973	-	Apr	lastSun	2:00	1:00	D
-Rule	Halifax	1962	1973	-	Oct	lastSun	2:00	0	S
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/Halifax	-4:14:24 -	LMT	1902 Jun 15
-			-4:00	Halifax	A%sT	1918
-			-4:00	Canada	A%sT	1919
-			-4:00	Halifax	A%sT	1942 Feb  9 2:00s
-			-4:00	Canada	A%sT	1946
-			-4:00	Halifax	A%sT	1974
-			-4:00	Canada	A%sT
-Zone America/Glace_Bay	-3:59:48 -	LMT	1902 Jun 15
-			-4:00	Canada	A%sT	1953
-			-4:00	Halifax	A%sT	1954
-			-4:00	-	AST	1972
-			-4:00	Halifax	A%sT	1974
-			-4:00	Canada	A%sT
-
-# New Brunswick
-
-# From Paul Eggert (2007-01-31):
-# The Time Definition Act <http://www.gnb.ca/0062/PDF-acts/t-06.pdf>
-# says they changed at 00:01 through 2006, and
-# <http://www.canlii.org/nb/laws/sta/t-6/20030127/whole.html> makes it
-# clear that this was the case since at least 1993.
-# For now, assume it started in 1993.
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Moncton	1933	1935	-	Jun	Sun>=8	1:00	1:00	D
-Rule	Moncton	1933	1935	-	Sep	Sun>=8	1:00	0	S
-Rule	Moncton	1936	1938	-	Jun	Sun>=1	1:00	1:00	D
-Rule	Moncton	1936	1938	-	Sep	Sun>=1	1:00	0	S
-Rule	Moncton	1939	only	-	May	27	1:00	1:00	D
-Rule	Moncton	1939	1941	-	Sep	Sat>=21	1:00	0	S
-Rule	Moncton	1940	only	-	May	19	1:00	1:00	D
-Rule	Moncton	1941	only	-	May	 4	1:00	1:00	D
-Rule	Moncton	1946	1972	-	Apr	lastSun	2:00	1:00	D
-Rule	Moncton	1946	1956	-	Sep	lastSun	2:00	0	S
-Rule	Moncton	1957	1972	-	Oct	lastSun	2:00	0	S
-Rule	Moncton	1993	2006	-	Apr	Sun>=1	0:01	1:00	D
-Rule	Moncton	1993	2006	-	Oct	lastSun	0:01	0	S
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/Moncton	-4:19:08 -	LMT	1883 Dec  9
-			-5:00	-	EST	1902 Jun 15
-			-4:00	Canada	A%sT	1933
-			-4:00	Moncton	A%sT	1942
-			-4:00	Canada	A%sT	1946
-			-4:00	Moncton	A%sT	1973
-			-4:00	Canada	A%sT	1993
-			-4:00	Moncton	A%sT	2007
-			-4:00	Canada	A%sT
-
-# Quebec
-
-# From Paul Eggert (2006-07-09):
-# Shanks & Pottenger write that since 1970 most of Quebec has been
-# like Montreal.
-
-# From Paul Eggert (2006-06-27):
-# Matthews and Vincent (1998) also write that Quebec east of the -63
-# meridian is supposed to observe AST, but residents as far east as
-# Natashquan use EST/EDT, and residents east of Natashquan use AST.
-# In "Official time in Quebec" the Quebec department of justice writes in
-# http://www.justice.gouv.qc.ca/english/publications/generale/temps-regl-1-a.htm
-# that "The residents of the Municipality of the
-# Cote-Nord-du-Golfe-Saint-Laurent and the municipalities of Saint-Augustin,
-# Bonne-Esperance and Blanc-Sablon apply the Official Time Act as it is
-# written and use Atlantic standard time all year round. The same applies to
-# the residents of the Native facilities along the lower North Shore."
-# <http://www.assnat.qc.ca/eng/37legislature2/Projets-loi/Publics/06-a002.htm>
-# says this common practice was codified into law as of 2007.
-# For lack of better info, guess this practice began around 1970, contra to
-# Shanks & Pottenger who have this region observing AST/ADT.
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Mont	1917	only	-	Mar	25	2:00	1:00	D
-Rule	Mont	1917	only	-	Apr	24	0:00	0	S
-Rule	Mont	1919	only	-	Mar	31	2:30	1:00	D
-Rule	Mont	1919	only	-	Oct	25	2:30	0	S
-Rule	Mont	1920	only	-	May	 2	2:30	1:00	D
-Rule	Mont	1920	1922	-	Oct	Sun>=1	2:30	0	S
-Rule	Mont	1921	only	-	May	 1	2:00	1:00	D
-Rule	Mont	1922	only	-	Apr	30	2:00	1:00	D
-Rule	Mont	1924	only	-	May	17	2:00	1:00	D
-Rule	Mont	1924	1926	-	Sep	lastSun	2:30	0	S
-Rule	Mont	1925	1926	-	May	Sun>=1	2:00	1:00	D
-# The 1927-to-1937 rules can be expressed more simply as
-# Rule	Mont	1927	1937	-	Apr	lastSat	24:00	1:00	D
-# Rule	Mont	1927	1937	-	Sep	lastSat	24:00	0	S
-# The rules below avoid use of 24:00
-# (which pre-1998 versions of zic cannot handle).
-Rule	Mont	1927	only	-	May	1	0:00	1:00	D
-Rule	Mont	1927	1932	-	Sep	lastSun	0:00	0	S
-Rule	Mont	1928	1931	-	Apr	lastSun	0:00	1:00	D
-Rule	Mont	1932	only	-	May	1	0:00	1:00	D
-Rule	Mont	1933	1940	-	Apr	lastSun	0:00	1:00	D
-Rule	Mont	1933	only	-	Oct	1	0:00	0	S
-Rule	Mont	1934	1939	-	Sep	lastSun	0:00	0	S
-Rule	Mont	1946	1973	-	Apr	lastSun	2:00	1:00	D
-Rule	Mont	1945	1948	-	Sep	lastSun	2:00	0	S
-Rule	Mont	1949	1950	-	Oct	lastSun	2:00	0	S
-Rule	Mont	1951	1956	-	Sep	lastSun	2:00	0	S
-Rule	Mont	1957	1973	-	Oct	lastSun	2:00	0	S
-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/Blanc-Sablon -3:48:28 -	LMT	1884
-			-4:00	Canada	A%sT	1970
-			-4:00	-	AST
-Zone America/Montreal	-4:54:16 -	LMT	1884
-			-5:00	Mont	E%sT	1918
-			-5:00	Canada	E%sT	1919
-			-5:00	Mont	E%sT	1942 Feb  9 2:00s
-			-5:00	Canada	E%sT	1946
-			-5:00	Mont	E%sT	1974
-			-5:00	Canada	E%sT
-
-
-# Ontario
-
-# From Paul Eggert (2006-07-09):
-# Shanks & Pottenger write that since 1970 most of Ontario has been like
-# Toronto.
-# Thunder Bay skipped DST in 1973.
-# Many smaller locales did not observe peacetime DST until 1974;
-# Nipigon (EST) and Rainy River (CST) are the largest that we know of.
-# Far west Ontario is like Winnipeg; far east Quebec is like Halifax.
-
-# From Mark Brader (2003-07-26):
-# [According to the Toronto Star] Orillia, Ontario, adopted DST
-# effective Saturday, 1912-06-22, 22:00; the article mentions that
-# Port Arthur (now part of Thunder Bay, Ontario) as well as Moose Jaw
-# have already done so.  In Orillia DST was to run until Saturday,
-# 1912-08-31 (no time mentioned), but it was met with considerable
-# hostility from certain segments of the public, and was revoked after
-# only two weeks -- I copied it as Saturday, 1912-07-07, 22:00, but
-# presumably that should be -07-06.  (1912-06-19, -07-12; also letters
-# earlier in June).
-#
-# Kenora, Ontario, was to abandon DST on 1914-06-01 (-05-21).
-
-# From Paul Eggert (1997-10-17):
-# Mark Brader writes that an article in the 1997-10-14 Toronto Star
-# says that Atikokan, Ontario currently does not observe DST,
-# but will vote on 11-10 whether to use EST/EDT.
-# He also writes that the
-# <a href="http://www.gov.on.ca/MBS/english/publications/statregs/conttext.html">
-# Ontario Time Act (1990, Chapter T.9)
-# </a>
-# says that Ontario east of 90W uses EST/EDT, and west of 90W uses CST/CDT.
-# Officially Atikokan is therefore on CST/CDT, and most likely this report
-# concerns a non-official time observed as a matter of local practice.
-#
-# From Paul Eggert (2000-10-02):
-# Matthews and Vincent (1998) write that Atikokan, Pickle Lake, and
-# New Osnaburgh observe CST all year, that Big Trout Lake observes
-# CST/CDT, and that Upsala and Shebandowan observe EST/EDT, all in
-# violation of the official Ontario rules.
-#
-# From Paul Eggert (2006-07-09):
-# Chris Walton (2006-07-06) mentioned an article by Stephanie MacLellan in the
-# 2005-07-21 Chronicle-Journal, which said:
-#
-#	The clocks in Atikokan stay set on standard time year-round.
-#	This means they spend about half the time on central time and
-#	the other half on eastern time.
-#
-#	For the most part, the system works, Mayor Dennis Brown said.
-#
-#	"The majority of businesses in Atikokan deal more with Eastern
-#	Canada, but there are some that deal with Western Canada," he
-#	said.  "I don't see any changes happening here."
-#
-# Walton also writes "Supposedly Pickle Lake and Mishkeegogamang
-# [New Osnaburgh] follow the same practice."
-
-# From Garry McKinnon (2006-07-14) via Chris Walton:
-# I chatted with a member of my board who has an outstanding memory
-# and a long history in Atikokan (and in the telecom industry) and he
-# can say for certain that Atikokan has been practicing the current
-# time keeping since 1952, at least.
-
-# From Paul Eggert (2006-07-17):
-# Shanks & Pottenger say that Atikokan has agreed with Rainy River
-# ever since standard time was introduced, but the information from
-# McKinnon sounds more authoritative.  For now, assume that Atikokan
-# switched to EST immediately after WWII era daylight saving time
-# ended.  This matches the old (less-populous) America/Coral_Harbour
-# entry since our cutoff date of 1970, so we can move
-# America/Coral_Harbour to the 'backward' file.
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Toronto	1919	only	-	Mar	30	23:30	1:00	D
-Rule	Toronto	1919	only	-	Oct	26	0:00	0	S
-Rule	Toronto	1920	only	-	May	 2	2:00	1:00	D
-Rule	Toronto	1920	only	-	Sep	26	0:00	0	S
-Rule	Toronto	1921	only	-	May	15	2:00	1:00	D
-Rule	Toronto	1921	only	-	Sep	15	2:00	0	S
-Rule	Toronto	1922	1923	-	May	Sun>=8	2:00	1:00	D
-# Shanks & Pottenger say 1923-09-19; assume it's a typo and that "-16"
-# was meant.
-Rule	Toronto	1922	1926	-	Sep	Sun>=15	2:00	0	S
-Rule	Toronto	1924	1927	-	May	Sun>=1	2:00	1:00	D
-# The 1927-to-1939 rules can be expressed more simply as
-# Rule	Toronto	1927	1937	-	Sep	Sun>=25	2:00	0	S
-# Rule	Toronto	1928	1937	-	Apr	Sun>=25	2:00	1:00	D
-# Rule	Toronto	1938	1940	-	Apr	lastSun	2:00	1:00	D
-# Rule	Toronto	1938	1939	-	Sep	lastSun	2:00	0	S
-# The rules below avoid use of Sun>=25
-# (which pre-2004 versions of zic cannot handle).
-Rule	Toronto	1927	1932	-	Sep	lastSun	2:00	0	S
-Rule	Toronto	1928	1931	-	Apr	lastSun	2:00	1:00	D
-Rule	Toronto	1932	only	-	May	1	2:00	1:00	D
-Rule	Toronto	1933	1940	-	Apr	lastSun	2:00	1:00	D
-Rule	Toronto	1933	only	-	Oct	1	2:00	0	S
-Rule	Toronto	1934	1939	-	Sep	lastSun	2:00	0	S
-Rule	Toronto	1945	1946	-	Sep	lastSun	2:00	0	S
-Rule	Toronto	1946	only	-	Apr	lastSun	2:00	1:00	D
-Rule	Toronto	1947	1949	-	Apr	lastSun	0:00	1:00	D
-Rule	Toronto	1947	1948	-	Sep	lastSun	0:00	0	S
-Rule	Toronto	1949	only	-	Nov	lastSun	0:00	0	S
-Rule	Toronto	1950	1973	-	Apr	lastSun	2:00	1:00	D
-Rule	Toronto	1950	only	-	Nov	lastSun	2:00	0	S
-Rule	Toronto	1951	1956	-	Sep	lastSun	2:00	0	S
-# Shanks & Pottenger say Toronto ended DST a week early in 1971,
-# namely on 1971-10-24, but Mark Brader wrote (2003-05-31) that this
-# is wrong, and that he had confirmed it by checking the 1971-10-30
-# Toronto Star, which said that DST was ending 1971-10-31 as usual.
-Rule	Toronto	1957	1973	-	Oct	lastSun	2:00	0	S
-
-# From Paul Eggert (2003-07-27):
-# Willett (1914-03) writes (p. 17) "In the Cities of Fort William, and
-# Port Arthur, Ontario, the principle of the Bill has been in
-# operation for the past three years, and in the City of Moose Jaw,
-# Saskatchewan, for one year."
-
-# From David Bryan via Tory Tronrud, Director/Curator,
-# Thunder Bay Museum (2003-11-12):
-# There is some suggestion, however, that, by-law or not, daylight
-# savings time was being practiced in Fort William and Port Arthur
-# before 1909.... [I]n 1910, the line between the Eastern and Central
-# Time Zones was permanently moved about two hundred miles west to
-# include the Thunder Bay area....  When Canada adopted daylight
-# savings time in 1916, Fort William and Port Arthur, having done so
-# already, did not change their clocks....  During the Second World
-# War,... [t]he cities agreed to implement DST during the summer
-# months for the remainder of the war years.
-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/Toronto	-5:17:32 -	LMT	1895
-			-5:00	Canada	E%sT	1919
-			-5:00	Toronto	E%sT	1942 Feb  9 2:00s
-			-5:00	Canada	E%sT	1946
-			-5:00	Toronto	E%sT	1974
-			-5:00	Canada	E%sT
-Zone America/Thunder_Bay -5:57:00 -	LMT	1895
-			-6:00	-	CST	1910
-			-5:00	-	EST	1942
-			-5:00	Canada	E%sT	1970
-			-5:00	Mont	E%sT	1973
-			-5:00	-	EST	1974
-			-5:00	Canada	E%sT
-Zone America/Nipigon	-5:53:04 -	LMT	1895
-			-5:00	Canada	E%sT	1940 Sep 29
-			-5:00	1:00	EDT	1942 Feb  9 2:00s
-			-5:00	Canada	E%sT
-Zone America/Rainy_River -6:18:16 -	LMT	1895
-			-6:00	Canada	C%sT	1940 Sep 29
-			-6:00	1:00	CDT	1942 Feb  9 2:00s
-			-6:00	Canada	C%sT
-Zone America/Atikokan	-6:06:28 -	LMT	1895
-			-6:00	Canada	C%sT	1940 Sep 29
-			-6:00	1:00	CDT	1942 Feb  9 2:00s
-			-6:00	Canada	C%sT	1945 Sep 30 2:00
-			-5:00	-	EST
-
-
-# Manitoba
-
-# From Rob Douglas (2006-04-06):
-# the old Manitoba Time Act - as amended by Bill 2, assented to
-# March 27, 1987 ... said ...
-# "between two o'clock Central Standard Time in the morning of
-# the first Sunday of April of each year and two o'clock Central
-# Standard Time in the morning of the last Sunday of October next
-# following, one hour in advance of Central Standard Time."...
-# I believe that the English legislation [of the old time act] had =
-# been assented to (March 22, 1967)....
-# Also, as far as I can tell, there was no order-in-council varying
-# the time of Daylight Saving Time for 2005 and so the provisions of
-# the 1987 version would apply - the changeover was at 2:00 Central
-# Standard Time (i.e. not until 3:00 Central Daylight Time).
-
-# From Paul Eggert (2006-04-10):
-# Shanks & Pottenger say Manitoba switched at 02:00 (not 02:00s)
-# starting 1966.  Since 02:00s is clearly correct for 1967 on, assume
-# it was also 02:00s in 1966.
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Winn	1916	only	-	Apr	23	0:00	1:00	D
-Rule	Winn	1916	only	-	Sep	17	0:00	0	S
-Rule	Winn	1918	only	-	Apr	14	2:00	1:00	D
-Rule	Winn	1918	only	-	Oct	31	2:00	0	S
-Rule	Winn	1937	only	-	May	16	2:00	1:00	D
-Rule	Winn	1937	only	-	Sep	26	2:00	0	S
-Rule	Winn	1942	only	-	Feb	 9	2:00	1:00	W # War
-Rule	Winn	1945	only	-	Aug	14	23:00u	1:00	P # Peace
-Rule	Winn	1945	only	-	Sep	lastSun	2:00	0	S
-Rule	Winn	1946	only	-	May	12	2:00	1:00	D
-Rule	Winn	1946	only	-	Oct	13	2:00	0	S
-Rule	Winn	1947	1949	-	Apr	lastSun	2:00	1:00	D
-Rule	Winn	1947	1949	-	Sep	lastSun	2:00	0	S
-Rule	Winn	1950	only	-	May	 1	2:00	1:00	D
-Rule	Winn	1950	only	-	Sep	30	2:00	0	S
-Rule	Winn	1951	1960	-	Apr	lastSun	2:00	1:00	D
-Rule	Winn	1951	1958	-	Sep	lastSun	2:00	0	S
-Rule	Winn	1959	only	-	Oct	lastSun	2:00	0	S
-Rule	Winn	1960	only	-	Sep	lastSun	2:00	0	S
-Rule	Winn	1963	only	-	Apr	lastSun	2:00	1:00	D
-Rule	Winn	1963	only	-	Sep	22	2:00	0	S
-Rule	Winn	1966	1986	-	Apr	lastSun	2:00s	1:00	D
-Rule	Winn	1966	2005	-	Oct	lastSun	2:00s	0	S
-Rule	Winn	1987	2005	-	Apr	Sun>=1	2:00s	1:00	D
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/Winnipeg	-6:28:36 -	LMT	1887 Jul 16
-			-6:00	Winn	C%sT	2006
-			-6:00	Canada	C%sT
-
-
-# Saskatchewan
-
-# From Mark Brader (2003-07-26):
-# The first actual adoption of DST in Canada was at the municipal
-# level.  As the [Toronto] Star put it (1912-06-07), "While people
-# elsewhere have long been talking of legislation to save daylight,
-# the city of Moose Jaw [Saskatchewan] has acted on its own hook."
-# DST in Moose Jaw began on Saturday, 1912-06-01 (no time mentioned:
-# presumably late evening, as below), and would run until "the end of
-# the summer".  The discrepancy between municipal time and railroad
-# time was noted.
-
-# From Paul Eggert (2003-07-27):
-# Willett (1914-03) notes that DST "has been in operation ... in the
-# City of Moose Jaw, Saskatchewan, for one year."
-
-# From Paul Eggert (2006-03-22):
-# Shanks & Pottenger say that since 1970 this region has mostly been as Regina.
-# Some western towns (e.g. Swift Current) switched from MST/MDT to CST in 1972.
-# Other western towns (e.g. Lloydminster) are like Edmonton.
-# Matthews and Vincent (1998) write that Denare Beach and Creighton
-# are like Winnipeg, in violation of Saskatchewan law.
-
-# From W. Jones (1992-11-06):
-# The. . .below is based on information I got from our law library, the
-# provincial archives, and the provincial Community Services department.
-# A precise history would require digging through newspaper archives, and
-# since you didn't say what you wanted, I didn't bother.
-#
-# Saskatchewan is split by a time zone meridian (105W) and over the years
-# the boundary became pretty ragged as communities near it reevaluated
-# their affiliations in one direction or the other.  In 1965 a provincial
-# referendum favoured legislating common time practices.
-#
-# On 15 April 1966 the Time Act (c. T-14, Revised Statutes of
-# Saskatchewan 1978) was proclaimed, and established that the eastern
-# part of Saskatchewan would use CST year round, that districts in
-# northwest Saskatchewan would by default follow CST but could opt to
-# follow Mountain Time rules (thus 1 hour difference in the winter and
-# zero in the summer), and that districts in southwest Saskatchewan would
-# by default follow MT but could opt to follow CST.
-#
-# It took a few years for the dust to settle (I know one story of a town
-# on one time zone having its school in another, such that a mom had to
-# serve her family lunch in two shifts), but presently it seems that only
-# a few towns on the border with Alberta (e.g. Lloydminster) follow MT
-# rules any more; all other districts appear to have used CST year round
-# since sometime in the 1960s.
-
-# From Chris Walton (2006-06-26):
-# The Saskatchewan time act which was last updated in 1996 is about 30 pages
-# long and rather painful to read.
-# http://www.qp.gov.sk.ca/documents/English/Statutes/Statutes/T14.pdf
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Regina	1918	only	-	Apr	14	2:00	1:00	D
-Rule	Regina	1918	only	-	Oct	31	2:00	0	S
-Rule	Regina	1930	1934	-	May	Sun>=1	0:00	1:00	D
-Rule	Regina	1930	1934	-	Oct	Sun>=1	0:00	0	S
-Rule	Regina	1937	1941	-	Apr	Sun>=8	0:00	1:00	D
-Rule	Regina	1937	only	-	Oct	Sun>=8	0:00	0	S
-Rule	Regina	1938	only	-	Oct	Sun>=1	0:00	0	S
-Rule	Regina	1939	1941	-	Oct	Sun>=8	0:00	0	S
-Rule	Regina	1942	only	-	Feb	 9	2:00	1:00	W # War
-Rule	Regina	1945	only	-	Aug	14	23:00u	1:00	P # Peace
-Rule	Regina	1945	only	-	Sep	lastSun	2:00	0	S
-Rule	Regina	1946	only	-	Apr	Sun>=8	2:00	1:00	D
-Rule	Regina	1946	only	-	Oct	Sun>=8	2:00	0	S
-Rule	Regina	1947	1957	-	Apr	lastSun	2:00	1:00	D
-Rule	Regina	1947	1957	-	Sep	lastSun	2:00	0	S
-Rule	Regina	1959	only	-	Apr	lastSun	2:00	1:00	D
-Rule	Regina	1959	only	-	Oct	lastSun	2:00	0	S
-#
-Rule	Swift	1957	only	-	Apr	lastSun	2:00	1:00	D
-Rule	Swift	1957	only	-	Oct	lastSun	2:00	0	S
-Rule	Swift	1959	1961	-	Apr	lastSun	2:00	1:00	D
-Rule	Swift	1959	only	-	Oct	lastSun	2:00	0	S
-Rule	Swift	1960	1961	-	Sep	lastSun	2:00	0	S
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/Regina	-6:58:36 -	LMT	1905 Sep
-			-7:00	Regina	M%sT	1960 Apr lastSun 2:00
-			-6:00	-	CST
-Zone America/Swift_Current -7:11:20 -	LMT	1905 Sep
-			-7:00	Canada	M%sT	1946 Apr lastSun 2:00
-			-7:00	Regina	M%sT	1950
-			-7:00	Swift	M%sT	1972 Apr lastSun 2:00
-			-6:00	-	CST
-
-
-# Alberta
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Edm	1918	1919	-	Apr	Sun>=8	2:00	1:00	D
-Rule	Edm	1918	only	-	Oct	31	2:00	0	S
-Rule	Edm	1919	only	-	May	27	2:00	0	S
-Rule	Edm	1920	1923	-	Apr	lastSun	2:00	1:00	D
-Rule	Edm	1920	only	-	Oct	lastSun	2:00	0	S
-Rule	Edm	1921	1923	-	Sep	lastSun	2:00	0	S
-Rule	Edm	1942	only	-	Feb	 9	2:00	1:00	W # War
-Rule	Edm	1945	only	-	Aug	14	23:00u	1:00	P # Peace
-Rule	Edm	1945	only	-	Sep	lastSun	2:00	0	S
-Rule	Edm	1947	only	-	Apr	lastSun	2:00	1:00	D
-Rule	Edm	1947	only	-	Sep	lastSun	2:00	0	S
-Rule	Edm	1967	only	-	Apr	lastSun	2:00	1:00	D
-Rule	Edm	1967	only	-	Oct	lastSun	2:00	0	S
-Rule	Edm	1969	only	-	Apr	lastSun	2:00	1:00	D
-Rule	Edm	1969	only	-	Oct	lastSun	2:00	0	S
-Rule	Edm	1972	1986	-	Apr	lastSun	2:00	1:00	D
-Rule	Edm	1972	2006	-	Oct	lastSun	2:00	0	S
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/Edmonton	-7:33:52 -	LMT	1906 Sep
-			-7:00	Edm	M%sT	1987
-			-7:00	Canada	M%sT
-
-
-# British Columbia
-
-# From Paul Eggert (2006-03-22):
-# Shanks & Pottenger write that since 1970 most of this region has
-# been like Vancouver.
-# Dawson Creek uses MST.  Much of east BC is like Edmonton.
-# Matthews and Vincent (1998) write that Creston is like Dawson Creek.
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Vanc	1918	only	-	Apr	14	2:00	1:00	D
-Rule	Vanc	1918	only	-	Oct	31	2:00	0	S
-Rule	Vanc	1942	only	-	Feb	 9	2:00	1:00	W # War
-Rule	Vanc	1945	only	-	Aug	14	23:00u	1:00	P # Peace
-Rule	Vanc	1945	only	-	Sep	30	2:00	0	S
-Rule	Vanc	1946	1986	-	Apr	lastSun	2:00	1:00	D
-Rule	Vanc	1946	only	-	Oct	13	2:00	0	S
-Rule	Vanc	1947	1961	-	Sep	lastSun	2:00	0	S
-Rule	Vanc	1962	2006	-	Oct	lastSun	2:00	0	S
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/Vancouver	-8:12:28 -	LMT	1884
-			-8:00	Vanc	P%sT	1987
-			-8:00	Canada	P%sT
-Zone America/Dawson_Creek -8:00:56 -	LMT	1884
-			-8:00	Canada	P%sT	1947
-			-8:00	Vanc	P%sT	1972 Aug 30 2:00
-			-7:00	-	MST
-
-
-# Northwest Territories, Nunavut, Yukon
-
-# From Paul Eggert (2006-03-22):
-# Dawson switched to PST in 1973.  Inuvik switched to MST in 1979.
-# Mathew Englander (1996-10-07) gives the following refs:
-#	* 1967. Paragraph 28(34)(g) of the Interpretation Act, S.C. 1967-68,
-#	c. 7 defines Yukon standard time as UTC-9.  This is still valid;
-#	see Interpretation Act, R.S.C. 1985, c. I-21, s. 35(1).
-#	* C.O. 1973/214 switched Yukon to PST on 1973-10-28 00:00.
-#	* O.I.C. 1980/02 established DST.
-#	* O.I.C. 1987/056 changed DST to Apr firstSun 2:00 to Oct lastSun 2:00.
-# Shanks & Pottenger say Yukon's 1973-10-28 switch was at 2:00; go
-# with Englander.
-# From Chris Walton (2006-06-26):
-# Here is a link to the old daylight saving portion of the interpretation
-# act which was last updated in 1987:
-# http://www.gov.yk.ca/legislation/regs/oic1987_056.pdf
-
-# From Rives McDow (1999-09-04):
-# Nunavut ... moved ... to incorporate the whole territory into one time zone.
-# <a href="http://www.nunatsiaq.com/nunavut/nvt90903_13.html">
-# Nunavut moves to single time zone Oct. 31
-# </a>
-#
-# From Antoine Leca (1999-09-06):
-# We then need to create a new timezone for the Kitikmeot region of Nunavut
-# to differentiate it from the Yellowknife region.
-
-# From Paul Eggert (1999-09-20):
-# <a href="http://www.nunavut.com/basicfacts/english/basicfacts_1territory.html">
-# Basic Facts: The New Territory
-# </a> (1999) reports that Pangnirtung operates on eastern time,
-# and that Coral Harbour does not observe DST.  We don't know when
-# Pangnirtung switched to eastern time; we'll guess 1995.
-
-# From Rives McDow (1999-11-08):
-# On October 31, when the rest of Nunavut went to Central time,
-# Pangnirtung wobbled.  Here is the result of their wobble:
-#
-# The following businesses and organizations in Pangnirtung use Central Time:
-#
-#	First Air, Power Corp, Nunavut Construction, Health Center, RCMP,
-#	Eastern Arctic National Parks, A & D Specialist
-#
-# The following businesses and organizations in Pangnirtung use Eastern Time:
-#
-#	Hamlet office, All other businesses, Both schools, Airport operator
-#
-# This has made for an interesting situation there, which warranted the news.
-# No one there that I spoke with seems concerned, or has plans to
-# change the local methods of keeping time, as it evidently does not
-# really interfere with any activities or make things difficult locally.
-# They plan to celebrate New Year's turn-over twice, one hour apart,
-# so it appears that the situation will last at least that long.
-# The Nunavut Intergovernmental Affairs hopes that they will "come to
-# their senses", but the locals evidently don't see any problem with
-# the current state of affairs.
-
-# From Michaela Rodrigue, writing in the
-# <a href="http://www.nunatsiaq.com/archives/nunavut991130/nvt91119_17.html">
-# Nunatsiaq News (1999-11-19)</a>:
-# Clyde River, Pangnirtung and Sanikiluaq now operate with two time zones,
-# central - or Nunavut time - for government offices, and eastern time
-# for municipal offices and schools....  Igloolik [was similar but then]
-# made the switch to central time on Saturday, Nov. 6.
-
-# From Paul Eggert (2000-10-02):
-# Matthews and Vincent (1998) say the following, but we lack histories
-# for these potential new Zones.
-#
-# The Canadian Forces station at Alert uses Eastern Time while the
-# handful of residents at the Eureka weather station [in the Central
-# zone] skip daylight savings.  Baffin Island, which is crossed by the
-# Central, Eastern and Atlantic Time zones only uses Eastern Time.
-# Gjoa Haven, Taloyoak and Pelly Bay all use Mountain instead of
-# Central Time and Southampton Island [in the Central zone] is not
-# required to use daylight savings.
-
-# From
-# <a href="http://www.nunatsiaq.com/archives/nunavut001130/nvt21110_02.html">
-# Nunavut now has two time zones
-# </a> (2000-11-10):
-# The Nunavut government would allow its employees in Kugluktuk and
-# Cambridge Bay to operate on central time year-round, putting them
-# one hour behind the rest of Nunavut for six months during the winter.
-# At the end of October the two communities had rebelled against
-# Nunavut's unified time zone, refusing to shift to eastern time with
-# the rest of the territory for the winter.  Cambridge Bay remained on
-# central time, while Kugluktuk, even farther west, reverted to
-# mountain time, which they had used before the advent of Nunavut's
-# unified time zone in 1999.
-#
-# From Rives McDow (2001-01-20), quoting the Nunavut government:
-# The preceding decision came into effect at midnight, Saturday Nov 4, 2000.
-
-# From Paul Eggert (2000-12-04):
-# Let's just keep track of the official times for now.
-
-# From Rives McDow (2001-03-07):
-# The premier of Nunavut has issued a ministerial statement advising
-# that effective 2001-04-01, the territory of Nunavut will revert
-# back to three time zones (mountain, central, and eastern).  Of the
-# cities in Nunavut, Coral Harbor is the only one that I know of that
-# has said it will not observe dst, staying on EST year round.  I'm
-# checking for more info, and will get back to you if I come up with
-# more.
-# [Also see <http://www.nunatsiaq.com/nunavut/nvt10309_06.html> (2001-03-09).]
-
-# From Gwillim Law (2005-05-21):
-# According to maps at
-# http://inms-ienm.nrc-cnrc.gc.ca/images/time_services/TZ01SWE.jpg
-# http://inms-ienm.nrc-cnrc.gc.ca/images/time_services/TZ01SSE.jpg
-# (both dated 2003), and
-# http://www.canadiangeographic.ca/Magazine/SO98/geomap.asp
-# (from a 1998 Canadian Geographic article), the de facto and de jure time
-# for Southampton Island (at the north end of Hudson Bay) is UTC-5 all year
-# round.  Using Google, it's easy to find other websites that confirm this.
-# I wasn't able to find how far back this time regimen goes, but since it
-# predates the creation of Nunavut, it probably goes back many years....
-# The Inuktitut name of Coral Harbour is Sallit, but it's rarely used.
-#
-# From Paul Eggert (2005-07-26):
-# For lack of better information, assume that Southampton Island observed
-# daylight saving only during wartime.
-
-# From Chris Walton (2007-03-01):
-# ... the community of Resolute (located on Cornwallis Island in
-# Nunavut) moved from Central Time to Eastern Time last November.
-# Basically the community did not change its clocks at the end of
-# daylight saving....
-# http://www.nnsl.com/frames/newspapers/2006-11/nov13_06none.html
-
-# From Chris Walton (2007-03-14):
-# Today I phoned the "hamlet office" to find out what Resolute was doing with
-# its clocks.
-#
-# The individual that answered the phone confirmed that the clocks did not
-# move at the end of daylight saving on October 29/2006.  He also told me that
-# the clocks did not move this past weekend (March 11/2007)....
-#
-# America/Resolute should use the "Canada" Rule up to October 29/2006.
-# After that it should be fixed on Eastern Standard Time until further notice.
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	NT_YK	1918	only	-	Apr	14	2:00	1:00	D
-Rule	NT_YK	1918	only	-	Oct	27	2:00	0	S
-Rule	NT_YK	1919	only	-	May	25	2:00	1:00	D
-Rule	NT_YK	1919	only	-	Nov	 1	0:00	0	S
-Rule	NT_YK	1942	only	-	Feb	 9	2:00	1:00	W # War
-Rule	NT_YK	1945	only	-	Aug	14	23:00u	1:00	P # Peace
-Rule	NT_YK	1945	only	-	Sep	30	2:00	0	S
-Rule	NT_YK	1965	only	-	Apr	lastSun	0:00	2:00	DD
-Rule	NT_YK	1965	only	-	Oct	lastSun	2:00	0	S
-Rule	NT_YK	1980	1986	-	Apr	lastSun	2:00	1:00	D
-Rule	NT_YK	1980	2006	-	Oct	lastSun	2:00	0	S
-Rule	NT_YK	1987	2006	-	Apr	Sun>=1	2:00	1:00	D
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-# aka Panniqtuuq
-Zone America/Pangnirtung 0	-	zzz	1921 # trading post est.
-			-4:00	NT_YK	A%sT	1995 Apr Sun>=1 2:00
-			-5:00	Canada	E%sT	1999 Oct 31 2:00
-			-6:00	Canada	C%sT	2000 Oct 29 2:00
-			-5:00	Canada	E%sT
-# formerly Frobisher Bay
-Zone America/Iqaluit	0	-	zzz	1942 Aug # Frobisher Bay est.
-			-5:00	NT_YK	E%sT	1999 Oct 31 2:00
-			-6:00	Canada	C%sT	2000 Oct 29 2:00
-			-5:00	Canada	E%sT
-# aka Qausuittuq
-Zone America/Resolute	0	-	zzz	1947 Aug 31 # Resolute founded
-			-6:00	NT_YK	C%sT	2000 Oct 29 2:00
-			-5:00	-	EST	2001 Apr  1 3:00
-			-6:00	Canada	C%sT	2006 Oct 29 2:00
-			-5:00	-	EST
-# aka Kangiqiniq
-Zone America/Rankin_Inlet 0	-	zzz	1957 # Rankin Inlet founded
-			-6:00	NT_YK	C%sT	2000 Oct 29 2:00
-			-5:00	-	EST	2001 Apr  1 3:00
-			-6:00	Canada	C%sT
-# aka Iqaluktuuttiaq
-Zone America/Cambridge_Bay 0	-	zzz	1920 # trading post est.?
-			-7:00	NT_YK	M%sT	1999 Oct 31 2:00
-			-6:00	Canada	C%sT	2000 Oct 29 2:00
-			-5:00	-	EST	2000 Nov  5 0:00
-			-6:00	-	CST	2001 Apr  1 3:00
-			-7:00	Canada	M%sT
-Zone America/Yellowknife 0	-	zzz	1935 # Yellowknife founded?
-			-7:00	NT_YK	M%sT	1980
-			-7:00	Canada	M%sT
-Zone America/Inuvik	0	-	zzz	1953 # Inuvik founded
-			-8:00	NT_YK	P%sT	1979 Apr lastSun 2:00
-			-7:00	NT_YK	M%sT	1980
-			-7:00	Canada	M%sT
-Zone America/Whitehorse	-9:00:12 -	LMT	1900 Aug 20
-			-9:00	NT_YK	Y%sT	1966 Jul 1 2:00
-			-8:00	NT_YK	P%sT	1980
-			-8:00	Canada	P%sT
-Zone America/Dawson	-9:17:40 -	LMT	1900 Aug 20
-			-9:00	NT_YK	Y%sT	1973 Oct 28 0:00
-			-8:00	NT_YK	P%sT	1980
-			-8:00	Canada	P%sT
-
-
-###############################################################################
-
-# Mexico
-
-# From Paul Eggert (2001-03-05):
-# The Investigation and Analysis Service of the
-# Mexican Library of Congress (MLoC) has published a
-# <a href="http://www.cddhcu.gob.mx/bibliot/publica/inveyana/polisoc/horver/">
-# history of Mexican local time (in Spanish)
-# </a>.
-#
-# Here are the discrepancies between Shanks & Pottenger (S&P) and the MLoC.
-# (In all cases we go with the MLoC.)
-# S&P report that Baja was at -8:00 in 1922/1923.
-# S&P say the 1930 transition in Baja was 1930-11-16.
-# S&P report no DST during summer 1931.
-# S&P report a transition at 1932-03-30 23:00, not 1932-04-01.
-
-# From Gwillim Law (2001-02-20):
-# There are some other discrepancies between the Decrees page and the
-# tz database.  I think they can best be explained by supposing that
-# the researchers who prepared the Decrees page failed to find some of
-# the relevant documents.
-
-# From Alan Perry (1996-02-15):
-# A guy from our Mexico subsidiary finally found the Presidential Decree
-# outlining the timezone changes in Mexico.
-#
-# ------------- Begin Forwarded Message -------------
-#
-# I finally got my hands on the Official Presidential Decree that sets up the
-# rules for the DST changes. The rules are:
-#
-# 1. The country is divided in 3 timezones:
-#    - Baja California Norte (the Mexico/BajaNorte TZ)
-#    - Baja California Sur, Nayarit, Sinaloa and Sonora (the Mexico/BajaSur TZ)
-#    - The rest of the country (the Mexico/General TZ)
-#
-# 2. From the first Sunday in April at 2:00 AM to the last Sunday in October
-#    at 2:00 AM, the times in each zone are as follows:
-#    BajaNorte: GMT+7
-#    BajaSur:   GMT+6
-#    General:   GMT+5
-#
-# 3. The rest of the year, the times are as follows:
-#    BajaNorte: GMT+8
-#    BajaSur:   GMT+7
-#    General:   GMT+6
-#
-# The Decree was published in Mexico's Official Newspaper on January 4th.
-#
-# -------------- End Forwarded Message --------------
-# From Paul Eggert (1996-06-12):
-# For an English translation of the decree, see
-# <a href="http://mexico-travel.com/extra/timezone_eng.html">
-# ``Diario Oficial: Time Zone Changeover'' (1996-01-04).
-# </a>
-
-# From Rives McDow (1998-10-08):
-# The State of Quintana Roo has reverted back to central STD and DST times
-# (i.e. UTC -0600 and -0500 as of 1998-08-02).
-
-# From Rives McDow (2000-01-10):
-# Effective April 4, 1999 at 2:00 AM local time, Sonora changed to the time
-# zone 5 hours from the International Date Line, and will not observe daylight
-# savings time so as to stay on the same time zone as the southern part of
-# Arizona year round.
-
-# From Jesper Norgaard, translating
-# <http://www.reforma.com/nacional/articulo/064327/> (2001-01-17):
-# In Oaxaca, the 55.000 teachers from the Section 22 of the National
-# Syndicate of Education Workers, refuse to apply daylight saving each
-# year, so that the more than 10,000 schools work at normal hour the
-# whole year.
-
-# From Gwillim Law (2001-01-19):
-# <http://www.reforma.com/negocios_y_dinero/articulo/064481/> ... says
-# (translated):...
-# January 17, 2000 - The Energy Secretary, Ernesto Martens, announced
-# that Summer Time will be reduced from seven to five months, starting
-# this year....
-# <http://www.publico.com.mx/scripts/texto3.asp?action=pagina&pag=21&pos=p&secc=naci&date=01/17/2001>
-# [translated], says "summer time will ... take effect on the first Sunday
-# in May, and end on the last Sunday of September.
-
-# From Arthur David Olson (2001-01-25):
-# The 2001-01-24 traditional Washington Post contained the page one
-# story "Timely Issue Divides Mexicans."...
-# http://www.washingtonpost.com/wp-dyn/articles/A37383-2001Jan23.html
-# ... Mexico City Mayor Lopez Obrador "...is threatening to keep
-# Mexico City and its 20 million residents on a different time than
-# the rest of the country..." In particular, Lopez Obrador would abolish
-# observation of Daylight Saving Time.
-
-# <a href="http://www.conae.gob.mx/ahorro/decretohorver2001.html#decre">
-# Official statute published by the Energy Department
-# </a> (2001-02-01) shows Baja and Chihauhua as still using US DST rules,
-# and Sonora with no DST.  This was reported by Jesper Norgaard (2001-02-03).
-
-# From Paul Eggert (2001-03-03):
-#
-# <a href="http://www.latimes.com/news/nation/20010303/t000018766.html">
-# James F. Smith writes in today's LA Times
-# </a>
-# * Sonora will continue to observe standard time.
-# * Last week Mexico City's mayor Andres Manuel Lopez Obrador decreed that
-#   the Federal District will not adopt DST.
-# * 4 of 16 district leaders announced they'll ignore the decree.
-# * The decree does not affect federal-controlled facilities including
-#   the airport, banks, hospitals, and schools.
-#
-# For now we'll assume that the Federal District will bow to federal rules.
-
-# From Jesper Norgaard (2001-04-01):
-# I found some references to the Mexican application of daylight
-# saving, which modifies what I had already sent you, stating earlier
-# that a number of northern Mexican states would go on daylight
-# saving. The modification reverts this to only cover Baja California
-# (Norte), while all other states (except Sonora, who has no daylight
-# saving all year) will follow the original decree of president
-# Vicente Fox, starting daylight saving May 6, 2001 and ending
-# September 30, 2001.
-# References: "Diario de Monterrey" <www.diariodemonterrey.com/index.asp>
-# Palabra <http://palabra.infosel.com/010331/primera/ppri3101.pdf> (2001-03-31)
-
-# From Reuters (2001-09-04):
-# Mexico's Supreme Court on Tuesday declared that daylight savings was
-# unconstitutional in Mexico City, creating the possibility the
-# capital will be in a different time zone from the rest of the nation
-# next year....  The Supreme Court's ruling takes effect at 2:00
-# a.m. (0800 GMT) on Sept. 30, when Mexico is scheduled to revert to
-# standard time. "This is so residents of the Federal District are not
-# subject to unexpected time changes," a statement from the court said.
-
-# From Jesper Norgaard Welen (2002-03-12):
-# ... consulting my local grocery store(!) and my coworkers, they all insisted
-# that a new decision had been made to reinstate US style DST in Mexico....
-# http://www.conae.gob.mx/ahorro/horaver2001_m1_2002.html (2002-02-20)
-# confirms this.  Sonora as usual is the only state where DST is not applied.
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Mexico	1939	only	-	Feb	5	0:00	1:00	D
-Rule	Mexico	1939	only	-	Jun	25	0:00	0	S
-Rule	Mexico	1940	only	-	Dec	9	0:00	1:00	D
-Rule	Mexico	1941	only	-	Apr	1	0:00	0	S
-Rule	Mexico	1943	only	-	Dec	16	0:00	1:00	W # War
-Rule	Mexico	1944	only	-	May	1	0:00	0	S
-Rule	Mexico	1950	only	-	Feb	12	0:00	1:00	D
-Rule	Mexico	1950	only	-	Jul	30	0:00	0	S
-Rule	Mexico	1996	2000	-	Apr	Sun>=1	2:00	1:00	D
-Rule	Mexico	1996	2000	-	Oct	lastSun	2:00	0	S
-Rule	Mexico	2001	only	-	May	Sun>=1	2:00	1:00	D
-Rule	Mexico	2001	only	-	Sep	lastSun	2:00	0	S
-Rule	Mexico	2002	max	-	Apr	Sun>=1	2:00	1:00	D
-Rule	Mexico	2002	max	-	Oct	lastSun	2:00	0	S
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-# Quintana Roo
-Zone America/Cancun	-5:47:04 -	LMT	1922 Jan  1  0:12:56
-			-6:00	-	CST	1981 Dec 23
-			-5:00	Mexico	E%sT	1998 Aug  2  2:00
-			-6:00	Mexico	C%sT
-# Campeche, Yucatan
-Zone America/Merida	-5:58:28 -	LMT	1922 Jan  1  0:01:32
-			-6:00	-	CST	1981 Dec 23
-			-5:00	-	EST	1982 Dec  2
-			-6:00	Mexico	C%sT
-# Coahuila, Durango, Nuevo Leon, Tamaulipas
-Zone America/Monterrey	-6:41:16 -	LMT	1921 Dec 31 23:18:44
-			-6:00	-	CST	1988
-			-6:00	US	C%sT	1989
-			-6:00	Mexico	C%sT
-# Central Mexico
-Zone America/Mexico_City -6:36:36 -	LMT	1922 Jan  1  0:23:24
-			-7:00	-	MST	1927 Jun 10 23:00
-			-6:00	-	CST	1930 Nov 15
-			-7:00	-	MST	1931 May  1 23:00
-			-6:00	-	CST	1931 Oct
-			-7:00	-	MST	1932 Apr  1
-			-6:00	Mexico	C%sT	2001 Sep 30 02:00
-			-6:00	-	CST	2002 Feb 20
-			-6:00	Mexico	C%sT
-# Chihuahua
-Zone America/Chihuahua	-7:04:20 -	LMT	1921 Dec 31 23:55:40
-			-7:00	-	MST	1927 Jun 10 23:00
-			-6:00	-	CST	1930 Nov 15
-			-7:00	-	MST	1931 May  1 23:00
-			-6:00	-	CST	1931 Oct
-			-7:00	-	MST	1932 Apr  1
-			-6:00	-	CST	1996
-			-6:00	Mexico	C%sT	1998
-			-6:00	-	CST	1998 Apr Sun>=1 3:00
-			-7:00	Mexico	M%sT
-# Sonora
-Zone America/Hermosillo	-7:23:52 -	LMT	1921 Dec 31 23:36:08
-			-7:00	-	MST	1927 Jun 10 23:00
-			-6:00	-	CST	1930 Nov 15
-			-7:00	-	MST	1931 May  1 23:00
-			-6:00	-	CST	1931 Oct
-			-7:00	-	MST	1932 Apr  1
-			-6:00	-	CST	1942 Apr 24
-			-7:00	-	MST	1949 Jan 14
-			-8:00	-	PST	1970
-			-7:00	Mexico	M%sT	1999
-			-7:00	-	MST
-# Baja California Sur, Nayarit, Sinaloa
-Zone America/Mazatlan	-7:05:40 -	LMT	1921 Dec 31 23:54:20
-			-7:00	-	MST	1927 Jun 10 23:00
-			-6:00	-	CST	1930 Nov 15
-			-7:00	-	MST	1931 May  1 23:00
-			-6:00	-	CST	1931 Oct
-			-7:00	-	MST	1932 Apr  1
-			-6:00	-	CST	1942 Apr 24
-			-7:00	-	MST	1949 Jan 14
-			-8:00	-	PST	1970
-			-7:00	Mexico	M%sT
-# Baja California
-Zone America/Tijuana	-7:48:04 -	LMT	1922 Jan  1  0:11:56
-			-7:00	-	MST	1924
-			-8:00	-	PST	1927 Jun 10 23:00
-			-7:00	-	MST	1930 Nov 15
-			-8:00	-	PST	1931 Apr  1
-			-8:00	1:00	PDT	1931 Sep 30
-			-8:00	-	PST	1942 Apr 24
-			-8:00	1:00	PWT	1945 Aug 14 23:00u
-			-8:00	1:00	PPT	1945 Nov 12 # Peace
-			-8:00	-	PST	1948 Apr  5
-			-8:00	1:00	PDT	1949 Jan 14
-			-8:00	-	PST	1954
-			-8:00	CA	P%sT	1961
-			-8:00	-	PST	1976
-			-8:00	US	P%sT	1996
-			-8:00	Mexico	P%sT	2001
-			-8:00	US	P%sT	2002 Feb 20
-			-8:00	Mexico	P%sT
-# From Paul Eggert (2006-03-22):
-# Formerly there was an America/Ensenada zone, which differed from
-# America/Tijuana only in that it did not observe DST from 1976
-# through 1995.  This was as per Shanks (1999).  But Shanks & Pottenger say
-# Ensenada did not observe DST from 1948 through 1975.  Guy Harris reports
-# that the 1987 OAG says "Only Ensenada, Mexicale, San Felipe and
-# Tijuana observe DST," which agrees with Shanks & Pottenger but implies that
-# DST-observance was a town-by-town matter back then.  This concerns
-# data after 1970 so most likely there should be at least one Zone
-# other than America/Tijuana for Baja, but it's not clear yet what its
-# name or contents should be.
-#
-# Revillagigedo Is
-# no information
-
-###############################################################################
-
-# Anguilla
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/Anguilla	-4:12:16 -	LMT	1912 Mar 2
-			-4:00	-	AST
-
-# Antigua and Barbuda
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	America/Antigua	-4:07:12 -	LMT	1912 Mar 2
-			-5:00	-	EST	1951
-			-4:00	-	AST
-
-# Bahamas
-#
-# From Sue Williams (2006-12-07):
-# The Bahamas announced about a month ago that they plan to change their DST
-# rules to sync with the U.S. starting in 2007....
-# http://www.jonesbahamas.com/?c=45&a=10412
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Bahamas	1964	2006	-	Oct	lastSun	2:00	0	S
-Rule	Bahamas	1964	1986	-	Apr	lastSun	2:00	1:00	D
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	America/Nassau	-5:09:24 -	LMT	1912 Mar 2
-			-5:00	Bahamas	E%sT	1976
-			-5:00	US	E%sT
-
-# Barbados
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Barb	1977	only	-	Jun	12	2:00	1:00	D
-Rule	Barb	1977	1978	-	Oct	Sun>=1	2:00	0	S
-Rule	Barb	1978	1980	-	Apr	Sun>=15	2:00	1:00	D
-Rule	Barb	1979	only	-	Sep	30	2:00	0	S
-Rule	Barb	1980	only	-	Sep	25	2:00	0	S
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/Barbados	-3:58:28 -	LMT	1924		# Bridgetown
-			-3:58:28 -	BMT	1932	  # Bridgetown Mean Time
-			-4:00	Barb	A%sT
-
-# Belize
-# Whitman entirely disagrees with Shanks; go with Shanks & Pottenger.
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Belize	1918	1942	-	Oct	Sun>=2	0:00	0:30	HD
-Rule	Belize	1919	1943	-	Feb	Sun>=9	0:00	0	S
-Rule	Belize	1973	only	-	Dec	 5	0:00	1:00	D
-Rule	Belize	1974	only	-	Feb	 9	0:00	0	S
-Rule	Belize	1982	only	-	Dec	18	0:00	1:00	D
-Rule	Belize	1983	only	-	Feb	12	0:00	0	S
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	America/Belize	-5:52:48 -	LMT	1912 Apr
-			-6:00	Belize	C%sT
-
-# Bermuda
-
-# From Dan Jones, reporting in The Royal Gazette (2006-06-26):
-
-# Next year, however, clocks in the US will go forward on the second Sunday
-# in March, until the first Sunday in November.  And, after the Time Zone
-# (Seasonal Variation) Bill 2006 was passed in the House of Assembly on
-# Friday, the same thing will happen in Bermuda.
-# http://www.theroyalgazette.com/apps/pbcs.dll/article?AID=/20060529/NEWS/105290135
-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Atlantic/Bermuda	-4:19:04 -	LMT	1930 Jan  1 2:00    # Hamilton
-			-4:00	-	AST	1974 Apr 28 2:00
-			-4:00	Bahamas	A%sT	1976
-			-4:00	US	A%sT
-
-# Cayman Is
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	America/Cayman	-5:25:32 -	LMT	1890		# Georgetown
-			-5:07:12 -	KMT	1912 Feb    # Kingston Mean Time
-			-5:00	-	EST
-
-# Costa Rica
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	CR	1979	1980	-	Feb	lastSun	0:00	1:00	D
-Rule	CR	1979	1980	-	Jun	Sun>=1	0:00	0	S
-Rule	CR	1991	1992	-	Jan	Sat>=15	0:00	1:00	D
-# IATA SSIM (1991-09) says the following was at 1:00;
-# go with Shanks & Pottenger.
-Rule	CR	1991	only	-	Jul	 1	0:00	0	S
-Rule	CR	1992	only	-	Mar	15	0:00	0	S
-# There are too many San Joses elsewhere, so we'll use `Costa Rica'.
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/Costa_Rica	-5:36:20 -	LMT	1890		# San Jose
-			-5:36:20 -	SJMT	1921 Jan 15 # San Jose Mean Time
-			-6:00	CR	C%sT
-# Coco
-# no information; probably like America/Costa_Rica
-
-# Cuba
-
-# From Arthur David Olson (1999-03-29):
-# The 1999-03-28 exhibition baseball game held in Havana, Cuba, between
-# the Cuban National Team and the Baltimore Orioles was carried live on
-# the Orioles Radio Network, including affiliate WTOP in Washington, DC.
-# During the game, play-by-play announcer Jim Hunter noted that
-# "We'll be losing two hours of sleep...Cuba switched to Daylight Saving
-# Time today."  (The "two hour" remark referred to losing one hour of
-# sleep on 1999-03-28--when the announcers were in Cuba as it switched
-# to DST--and one more hour on 1999-04-04--when the announcers will have
-# returned to Baltimore, which switches on that date.)
-
-# From Evert van der Veer via Steffen Thorsen (2004-10-28):
-# Cuba is not going back to standard time this year.
-# From Paul Eggert (2006-03-22):
-# http://www.granma.cu/ingles/2004/septiembre/juev30/41medid-i.html
-# says that it's due to a problem at the Antonio Guiteras
-# thermoelectric plant, and says "This October there will be no return
-# to normal hours (after daylight saving time)".
-# For now, let's assume that it's a temporary measure.
-
-# From Carlos A. Carnero Delgado (2005-11-12):
-# This year (just like in 2004-2005) there's no change in time zone
-# adjustment in Cuba.  We will stay in daylight saving time:
-# http://www.granma.cu/espanol/2005/noviembre/mier9/horario.html
-
-# From Jesper Norgaard Welen (2006-10-21):
-# An article in GRANMA INTERNACIONAL claims that Cuba will end
-# the 3 years of permanent DST next weekend, see
-# http://www.granma.cu/ingles/2006/octubre/lun16/43horario.html
-# "On Saturday night, October 28 going into Sunday, October 29, at 01:00,
-# watches should be set back one hour -- going back to 00:00 hours -- returning
-# to the normal schedule....
-
-# From Paul Eggert (2007-03-02):
-# http://www.granma.cubaweb.cu/english/news/art89.html, dated yesterday,
-# says Cuban clocks will advance at midnight on March 10.
-# For lack of better information, assume Cuba will use US rules,
-# except that it switches at midnight standard time as usual.
-#
-# From Steffen Thorsen (2007-10-25):
-# Carlos Alberto Fonseca Arauz informed me that Cuba will end DST one week 
-# earlier - on the last Sunday of October, just like in 2006.
-# 
-# He supplied these references:
-# 
-# http://www.prensalatina.com.mx/article.asp?ID=%7B4CC32C1B-A9F7-42FB-8A07-8631AFC923AF%7D&language=ES
-# http://actualidad.terra.es/sociedad/articulo/cuba_llama_ahorrar_energia_cambio_1957044.htm
-# 
-# From Alex Kryvenishev (2007-10-25):
-# Here is also article from Granma (Cuba):
-# 
-# [Regira] el Horario Normal desde el [proximo] domingo 28 de octubre
-# http://www.granma.cubaweb.cu/2007/10/24/nacional/artic07.html
-# 
-# http://www.worldtimezone.com/dst_news/dst_news_cuba03.html
-
-# From Arthur David Olson (2008-03-09):
-# I'm in Maryland which is now observing United States Eastern Daylight
-# Time. At 9:44 local time I used RealPlayer to listen to
-# <a href="http://media.enet.cu/radioreloj">
-# http://media.enet.cu/radioreloj
-# </a>, a Cuban information station, and heard
-# the time announced as "ocho cuarenta y cuatro" ("eight forty-four"),
-# indicating that Cuba is still on standard time.
-
-# From Steffen Thorsen (2008-03-12):
-# It seems that Cuba will start DST on Sunday, 2007-03-16...
-# It was announced yesterday, according to this source (in Spanish):
-# <a href="http://www.nnc.cubaweb.cu/marzo-2008/cien-1-11-3-08.htm">
-# http://www.nnc.cubaweb.cu/marzo-2008/cien-1-11-3-08.htm
-# </a>
-#
-# Some more background information is posted here:
-# <a href="http://www.timeanddate.com/news/time/cuba-starts-dst-march-16.html">
-# http://www.timeanddate.com/news/time/cuba-starts-dst-march-16.html
-# </a>
-#
-# The article also says that Cuba has been observing DST since 1963,
-# while Shanks (and tzdata) has 1965 as the first date (except in the
-# 1940's). Many other web pages in Cuba also claim that it has been
-# observed since 1963, but with the exception of 1970 - an exception
-# which is not present in tzdata/Shanks. So there is a chance we need to
-# change some historic records as well.
-#
-# One example:
-# <a href="http://www.radiohc.cu/espanol/noticias/mar07/11mar/hor.htm">
-# http://www.radiohc.cu/espanol/noticias/mar07/11mar/hor.htm
-# </a>
-
-# From Jesper Norgaard Welen (2008-03-13):
-# The Cuban time change has just been confirmed on the most authoritative
-# web site, the Granma.  Please check out
-# <a href="http://www.granma.cubaweb.cu/2008/03/13/nacional/artic10.html">
-# http://www.granma.cubaweb.cu/2008/03/13/nacional/artic10.html
-# </a>
-#
-# Basically as expected after Steffen Thorsens information, the change
-# will take place midnight between Saturday and Sunday.
-
-# From Arthur David Olson (2008-03-12):
-# Assume Sun>=15 (third Sunday) going forward.
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Cuba	1928	only	-	Jun	10	0:00	1:00	D
-Rule	Cuba	1928	only	-	Oct	10	0:00	0	S
-Rule	Cuba	1940	1942	-	Jun	Sun>=1	0:00	1:00	D
-Rule	Cuba	1940	1942	-	Sep	Sun>=1	0:00	0	S
-Rule	Cuba	1945	1946	-	Jun	Sun>=1	0:00	1:00	D
-Rule	Cuba	1945	1946	-	Sep	Sun>=1	0:00	0	S
-Rule	Cuba	1965	only	-	Jun	1	0:00	1:00	D
-Rule	Cuba	1965	only	-	Sep	30	0:00	0	S
-Rule	Cuba	1966	only	-	May	29	0:00	1:00	D
-Rule	Cuba	1966	only	-	Oct	2	0:00	0	S
-Rule	Cuba	1967	only	-	Apr	8	0:00	1:00	D
-Rule	Cuba	1967	1968	-	Sep	Sun>=8	0:00	0	S
-Rule	Cuba	1968	only	-	Apr	14	0:00	1:00	D
-Rule	Cuba	1969	1977	-	Apr	lastSun	0:00	1:00	D
-Rule	Cuba	1969	1971	-	Oct	lastSun	0:00	0	S
-Rule	Cuba	1972	1974	-	Oct	8	0:00	0	S
-Rule	Cuba	1975	1977	-	Oct	lastSun	0:00	0	S
-Rule	Cuba	1978	only	-	May	7	0:00	1:00	D
-Rule	Cuba	1978	1990	-	Oct	Sun>=8	0:00	0	S
-Rule	Cuba	1979	1980	-	Mar	Sun>=15	0:00	1:00	D
-Rule	Cuba	1981	1985	-	May	Sun>=5	0:00	1:00	D
-Rule	Cuba	1986	1989	-	Mar	Sun>=14	0:00	1:00	D
-Rule	Cuba	1990	1997	-	Apr	Sun>=1	0:00	1:00	D
-Rule	Cuba	1991	1995	-	Oct	Sun>=8	0:00s	0	S
-Rule	Cuba	1996	only	-	Oct	 6	0:00s	0	S
-Rule	Cuba	1997	only	-	Oct	12	0:00s	0	S
-Rule	Cuba	1998	1999	-	Mar	lastSun	0:00s	1:00	D
-Rule	Cuba	1998	2003	-	Oct	lastSun	0:00s	0	S
-Rule	Cuba	2000	2006	-	Apr	Sun>=1	0:00s	1:00	D
-Rule	Cuba	2006	max	-	Oct	lastSun	0:00s	0	S
-Rule	Cuba	2007	only	-	Mar	Sun>=8	0:00s	1:00	D
-Rule	Cuba	2008	max	-	Mar	Sun>=15	0:00s	1:00	D
-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	America/Havana	-5:29:28 -	LMT	1890
-			-5:29:36 -	HMT	1925 Jul 19 12:00 # Havana MT
-			-5:00	Cuba	C%sT
-
-# Dominica
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/Dominica	-4:05:36 -	LMT	1911 Jul 1 0:01		# Roseau
-			-4:00	-	AST
-
-# Dominican Republic
-
-# From Steffen Thorsen (2000-10-30):
-# Enrique Morales reported to me that the Dominican Republic has changed the
-# time zone to Eastern Standard Time as of Sunday 29 at 2 am....
-# http://www.listin.com.do/antes/261000/republica/princi.html
-
-# From Paul Eggert (2000-12-04):
-# That URL (2000-10-26, in Spanish) says they planned to use US-style DST.
-
-# From Rives McDow (2000-12-01):
-# Dominican Republic changed its mind and presidential decree on Tuesday,
-# November 28, 2000, with a new decree.  On Sunday, December 3 at 1:00 AM the
-# Dominican Republic will be reverting to 8 hours from the International Date
-# Line, and will not be using DST in the foreseeable future.  The reason they
-# decided to use DST was to be in synch with Puerto Rico, who was also going
-# to implement DST.  When Puerto Rico didn't implement DST, the president
-# decided to revert.
-
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	DR	1966	only	-	Oct	30	0:00	1:00	D
-Rule	DR	1967	only	-	Feb	28	0:00	0	S
-Rule	DR	1969	1973	-	Oct	lastSun	0:00	0:30	HD
-Rule	DR	1970	only	-	Feb	21	0:00	0	S
-Rule	DR	1971	only	-	Jan	20	0:00	0	S
-Rule	DR	1972	1974	-	Jan	21	0:00	0	S
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/Santo_Domingo -4:39:36 -	LMT	1890
-			-4:40	-	SDMT	1933 Apr  1 12:00 # S. Dom. MT
-			-5:00	DR	E%sT	1974 Oct 27
-			-4:00	-	AST	2000 Oct 29 02:00
-			-5:00	US	E%sT	2000 Dec  3 01:00
-			-4:00	-	AST
-
-# El Salvador
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Salv	1987	1988	-	May	Sun>=1	0:00	1:00	D
-Rule	Salv	1987	1988	-	Sep	lastSun	0:00	0	S
-# There are too many San Salvadors elsewhere, so use America/El_Salvador
-# instead of America/San_Salvador.
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/El_Salvador -5:56:48 -	LMT	1921		# San Salvador
-			-6:00	Salv	C%sT
-
-# Grenada
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	America/Grenada	-4:07:00 -	LMT	1911 Jul	# St George's
-			-4:00	-	AST
-
-# Guadeloupe
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/Guadeloupe	-4:06:08 -	LMT	1911 Jun 8	# Pointe a Pitre
-			-4:00	-	AST
-# St Barthelemy
-Link America/Guadeloupe	America/St_Barthelemy
-# St Martin (French part)
-Link America/Guadeloupe	America/Marigot
-
-# Guatemala
-#
-# From Gwillim Law (2006-04-22), after a heads-up from Oscar van Vlijmen:
-# Diario Co Latino, at
-# http://www.diariocolatino.com/internacionales/detalles.asp?NewsID=8079,
-# says in an article dated 2006-04-19 that the Guatemalan government had
-# decided on that date to advance official time by 60 minutes, to lessen the
-# impact of the elevated cost of oil....  Daylight saving time will last from
-# 2006-04-29 24:00 (Guatemalan standard time) to 2006-09-30 (time unspecified).
-# From Paul Eggert (2006-06-22):
-# The Ministry of Energy and Mines, press release CP-15/2006
-# (2006-04-19), says DST ends at 24:00.  See
-# <http://www.sieca.org.gt/Sitio_publico/Energeticos/Doc/Medidas/Cambio_Horario_Nac_190406.pdf>.
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Guat	1973	only	-	Nov	25	0:00	1:00	D
-Rule	Guat	1974	only	-	Feb	24	0:00	0	S
-Rule	Guat	1983	only	-	May	21	0:00	1:00	D
-Rule	Guat	1983	only	-	Sep	22	0:00	0	S
-Rule	Guat	1991	only	-	Mar	23	0:00	1:00	D
-Rule	Guat	1991	only	-	Sep	 7	0:00	0	S
-Rule	Guat	2006	only	-	Apr	30	0:00	1:00	D
-Rule	Guat	2006	only	-	Oct	 1	0:00	0	S
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/Guatemala	-6:02:04 -	LMT	1918 Oct 5
-			-6:00	Guat	C%sT
-
-# Haiti
-# From Gwillim Law (2005-04-15):
-# Risto O. Nykanen wrote me that Haiti is now on DST.
-# I searched for confirmation, and I found a
-# <a href="http://www.haitianconsulate.org/time.doc"> press release
-# on the Web page of the Haitian Consulate in Chicago (2005-03-31),
-# </a>.  Translated from French, it says:
-#
-#  "The Prime Minister's Communication Office notifies the public in general
-#   and the press in particular that, following a decision of the Interior
-#   Ministry and the Territorial Collectivities [I suppose that means the
-#   provinces], Haiti will move to Eastern Daylight Time in the night from next
-#   Saturday the 2nd to Sunday the 3rd.
-#
-#  "Consequently, the Prime Minister's Communication Office wishes to inform
-#   the population that the country's clocks will be set forward one hour
-#   starting at midnight.  This provision will hold until the last Saturday in
-#   October 2005.
-#
-#  "Port-au-Prince, March 31, 2005"
-#
-# From Steffen Thorsen (2006-04-04):
-# I have been informed by users that Haiti observes DST this year like
-# last year, so the current "only" rule for 2005 might be changed to a
-# "max" rule or to last until 2006. (Who knows if they will observe DST
-# next year or if they will extend their DST like US/Canada next year).
-#
-# I have found this article about it (in French):
-# http://www.haitipressnetwork.com/news.cfm?articleID=7612
-#
-# The reason seems to be an energy crisis.
-
-# From Stephen Colebourne (2007-02-22):
-# Some IATA info: Haiti won't be having DST in 2007.
-
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Haiti	1983	only	-	May	8	0:00	1:00	D
-Rule	Haiti	1984	1987	-	Apr	lastSun	0:00	1:00	D
-Rule	Haiti	1983	1987	-	Oct	lastSun	0:00	0	S
-# Shanks & Pottenger say AT is 2:00, but IATA SSIM (1991/1997) says 1:00s.
-# Go with IATA.
-Rule	Haiti	1988	1997	-	Apr	Sun>=1	1:00s	1:00	D
-Rule	Haiti	1988	1997	-	Oct	lastSun	1:00s	0	S
-Rule	Haiti	2005	2006	-	Apr	Sun>=1	0:00	1:00	D
-Rule	Haiti	2005	2006	-	Oct	lastSun	0:00	0	S
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/Port-au-Prince -4:49:20 -	LMT	1890
-			-4:49	-	PPMT	1917 Jan 24 12:00 # P-a-P MT
-			-5:00	Haiti	E%sT
-
-# Honduras
-# Shanks & Pottenger say 1921 Jan 1; go with Whitman's more precise Apr 1.
-
-# From Paul Eggert (2006-05-05):
-# worldtimezone.com reports a 2006-05-02 Spanish-language AP article
-# saying Honduras will start using DST midnight Saturday, effective 4
-# months until September.  La Tribuna reported today
-# <http://www.latribuna.hn/99299.html> that Manuel Zelaya, the president
-# of Honduras, refused to back down on this.
-
-# From Jesper Norgaard Welen (2006-08-08):
-# It seems that Honduras has returned from DST to standard time this Monday at
-# 00:00 hours (prolonging Sunday to 25 hours duration).
-# http://www.worldtimezone.com/dst_news/dst_news_honduras04.html
-
-# From Paul Eggert (2006-08-08):
-# Also see Diario El Heraldo, The country returns to standard time (2006-08-08)
-# <http://www.elheraldo.hn/nota.php?nid=54941&sec=12>.
-# It mentions executive decree 18-2006.
-
-# From Steffen Thorsen (2006-08-17):
-# Honduras will observe DST from 2007 to 2009, exact dates are not
-# published, I have located this authoritative source:
-# http://www.presidencia.gob.hn/noticia.aspx?nId=47
-
-# From Steffen Thorsen (2007-03-30):
-# http://www.laprensahn.com/pais_nota.php?id04962=7386
-# So it seems that Honduras will not enter DST this year....
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Hond	1987	1988	-	May	Sun>=1	0:00	1:00	D
-Rule	Hond	1987	1988	-	Sep	lastSun	0:00	0	S
-Rule	Hond	2006	only	-	May	Sun>=1	0:00	1:00	D
-Rule	Hond	2006	only	-	Aug	Mon>=1	0:00	0	S
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/Tegucigalpa -5:48:52 -	LMT	1921 Apr
-			-6:00	Hond	C%sT
-#
-# Great Swan I ceded by US to Honduras in 1972
-
-# Jamaica
-
-# From Bob Devine (1988-01-28):
-# Follows US rules.
-
-# From U. S. Naval Observatory (1989-01-19):
-# JAMAICA             5 H  BEHIND UTC
-
-# From Shanks & Pottenger:
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	America/Jamaica	-5:07:12 -	LMT	1890		# Kingston
-			-5:07:12 -	KMT	1912 Feb    # Kingston Mean Time
-			-5:00	-	EST	1974 Apr 28 2:00
-			-5:00	US	E%sT	1984
-			-5:00	-	EST
-
-# Martinique
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/Martinique	-4:04:20 -      LMT	1890		# Fort-de-France
-			-4:04:20 -	FFMT	1911 May     # Fort-de-France MT
-			-4:00	-	AST	1980 Apr  6
-			-4:00	1:00	ADT	1980 Sep 28
-			-4:00	-	AST
-
-# Montserrat
-# From Paul Eggert (2006-03-22):
-# In 1995 volcanic eruptions forced evacuation of Plymouth, the capital.
-# world.gazetteer.com says Cork Hill is the most populous location now.
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/Montserrat	-4:08:52 -	LMT	1911 Jul 1 0:01   # Cork Hill
-			-4:00	-	AST
-
-# Nicaragua
-#
-# This uses Shanks & Pottenger for times before 2005.
-#
-# From Steffen Thorsen (2005-04-12):
-# I've got reports from 8 different people that Nicaragua just started
-# DST on Sunday 2005-04-10, in order to save energy because of
-# expensive petroleum.  The exact end date for DST is not yet
-# announced, only "September" but some sites also say "mid-September".
-# Some background information is available on the President's official site:
-# http://www.presidencia.gob.ni/Presidencia/Files_index/Secretaria/Notas%20de%20Prensa/Presidente/2005/ABRIL/Gobierno-de-nicaragua-adelanta-hora-oficial-06abril.htm
-# The Decree, no 23-2005 is available here:
-# http://www.presidencia.gob.ni/buscador_gaceta/BD/DECRETOS/2005/Decreto%2023-2005%20Se%20adelanta%20en%20una%20hora%20en%20todo%20el%20territorio%20nacional%20apartir%20de%20las%2024horas%20del%2009%20de%20Abril.pdf
-#
-# From Paul Eggert (2005-05-01):
-# The decree doesn't say anything about daylight saving, but for now let's
-# assume that it is daylight saving....
-#
-# From Gwillim Law (2005-04-21):
-# The Associated Press story on the time change, which can be found at
-# http://www.lapalmainteractivo.com/guias/content/gen/ap/America_Latina/AMC_GEN_NICARAGUA_HORA.html
-# and elsewhere, says (fifth paragraph, translated from Spanish):  "The last
-# time that a change of clocks was applied to save energy was in the year 2000
-# during the Arnoldo Aleman administration."...
-# The northamerica file says that Nicaragua has been on UTC-6 continuously
-# since December 1998.  I wasn't able to find any details of Nicaraguan time
-# changes in 2000.  Perhaps a note could be added to the northamerica file, to
-# the effect that we have indirect evidence that DST was observed in 2000.
-#
-# From Jesper Norgaard Welen (2005-11-02):
-# Nicaragua left DST the 2005-10-02 at 00:00 (local time).
-# http://www.presidencia.gob.ni/presidencia/files_index/secretaria/comunicados/2005/septiembre/26septiembre-cambio-hora.htm
-# (2005-09-26)
-#
-# From Jesper Norgaard Welen (2006-05-05):
-# http://www.elnuevodiario.com.ni/2006/05/01/nacionales/18410
-# (my informal translation)
-# By order of the president of the republic, Enrique Bolanos, Nicaragua
-# advanced by sixty minutes their official time, yesterday at 2 in the
-# morning, and will stay that way until 30.th. of september.
-#
-# From Jesper Norgaard Welen (2006-09-30):
-# http://www.presidencia.gob.ni/buscador_gaceta/BD/DECRETOS/2006/D-063-2006P-PRN-Cambio-Hora.pdf
-# My informal translation runs:
-# The natural sun time is restored in all the national territory, in that the
-# time is returned one hour at 01:00 am of October 1 of 2006.
-#
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Nic	1979	1980	-	Mar	Sun>=16	0:00	1:00	D
-Rule	Nic	1979	1980	-	Jun	Mon>=23	0:00	0	S
-Rule	Nic	2005	only	-	Apr	10	0:00	1:00	D
-Rule	Nic	2005	only	-	Oct	Sun>=1	0:00	0	S
-Rule	Nic	2006	only	-	Apr	30	2:00	1:00	D
-Rule	Nic	2006	only	-	Oct	Sun>=1	1:00	0	S
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	America/Managua	-5:45:08 -	LMT	1890
-			-5:45:12 -	MMT	1934 Jun 23 # Managua Mean Time?
-			-6:00	-	CST	1973 May
-			-5:00	-	EST	1975 Feb 16
-			-6:00	Nic	C%sT	1992 Jan  1 4:00
-			-5:00	-	EST	1992 Sep 24
-			-6:00	-	CST	1993
-			-5:00	-	EST	1997
-			-6:00	Nic	C%sT
-
-# Panama
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	America/Panama	-5:18:08 -	LMT	1890
-			-5:19:36 -	CMT	1908 Apr 22   # Colon Mean Time
-			-5:00	-	EST
-
-# Puerto Rico
-# There are too many San Juans elsewhere, so we'll use `Puerto_Rico'.
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/Puerto_Rico -4:24:25 -	LMT	1899 Mar 28 12:00    # San Juan
-			-4:00	-	AST	1942 May  3
-			-4:00	US	A%sT	1946
-			-4:00	-	AST
-
-# St Kitts-Nevis
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/St_Kitts	-4:10:52 -	LMT	1912 Mar 2	# Basseterre
-			-4:00	-	AST
-
-# St Lucia
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/St_Lucia	-4:04:00 -	LMT	1890		# Castries
-			-4:04:00 -	CMT	1912	    # Castries Mean Time
-			-4:00	-	AST
-
-# St Pierre and Miquelon
-# There are too many St Pierres elsewhere, so we'll use `Miquelon'.
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/Miquelon	-3:44:40 -	LMT	1911 May 15	# St Pierre
-			-4:00	-	AST	1980 May
-			-3:00	-	PMST	1987 # Pierre & Miquelon Time
-			-3:00	Canada	PM%sT
-
-# St Vincent and the Grenadines
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/St_Vincent	-4:04:56 -	LMT	1890		# Kingstown
-			-4:04:56 -	KMT	1912	   # Kingstown Mean Time
-			-4:00	-	AST
-
-# Turks and Caicos
-#
-# From Chris Dunn in
-# <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=415007>
-# (2007-03-15): In the Turks & Caicos Islands (America/Grand_Turk) the
-# daylight saving dates for time changes have been adjusted to match
-# the recent U.S. change of dates.
-#
-# From Brian Inglis (2007-04-28):
-# http://www.turksandcaicos.tc/calendar/index.htm [2007-04-26]
-# there is an entry for Nov 4 "Daylight Savings Time Ends 2007" and three
-# rows before that there is an out of date entry for Oct:
-# "Eastern Standard Times Begins 2007
-# Clocks are set back one hour at 2:00 a.m. local Daylight Saving Time"
-# indicating that the normal ET rules are followed.
-#
-# From Paul Eggert (2006-05-01):
-# Shanks & Pottenger say they use US DST rules, but IATA SSIM (1991/1998)
-# says they switch at midnight.  Go with Shanks & Pottenger.
-#
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	TC	1979	1986	-	Apr	lastSun	2:00	1:00	D
-Rule	TC	1979	2006	-	Oct	lastSun	2:00	0	S
-Rule	TC	1987	2006	-	Apr	Sun>=1	2:00	1:00	D
-Rule	TC	2007	max	-	Mar	Sun>=8	2:00	1:00	D
-Rule	TC	2007	max	-	Nov	Sun>=1	2:00	0	S
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/Grand_Turk	-4:44:32 -	LMT	1890
-			-5:07:12 -	KMT	1912 Feb    # Kingston Mean Time
-			-5:00	TC	E%sT
-
-# British Virgin Is
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/Tortola	-4:18:28 -	LMT	1911 Jul    # Road Town
-			-4:00	-	AST
-
-# Virgin Is
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/St_Thomas	-4:19:44 -	LMT	1911 Jul    # Charlotte Amalie
-			-4:00	-	AST
diff --git a/libkcal/libical/tzdata/pacificnew b/libkcal/libical/tzdata/pacificnew
deleted file mode 100644
index 667940bf..00000000
--- a/libkcal/libical/tzdata/pacificnew
+++ /dev/null
@@ -1,26 +0,0 @@
-# @(#)pacificnew	8.1
-
-# From Arthur David Olson (1989-04-05):
-# On 1989-04-05, the U. S. House of Representatives passed (238-154) a bill
-# establishing "Pacific Presidential Election Time"; it was not acted on
-# by the Senate or signed into law by the President.
-# You might want to change the "PE" (Presidential Election) below to
-# "Q" (Quadrennial) to maintain three-character zone abbreviations.
-# If you're really conservative, you might want to change it to "D".
-# Avoid "L" (Leap Year), which won't be true in 2100.
-
-# If Presidential Election Time is ever established, replace "XXXX" below
-# with the year the law takes effect and uncomment the "##" lines.
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-## Rule	Twilite	XXXX	max	-	Apr	Sun>=1	2:00	1:00	D
-## Rule	Twilite	XXXX	max	uspres	Oct	lastSun	2:00	1:00	PE
-## Rule	Twilite	XXXX	max	uspres	Nov	Sun>=7	2:00	0	S
-## Rule	Twilite	XXXX	max	nonpres	Oct	lastSun	2:00	0	S
-
-# Zone	NAME			GMTOFF	RULES/SAVE	FORMAT	[UNTIL]
-## Zone	America/Los_Angeles-PET	-8:00	US		P%sT	XXXX
-##				-8:00	Twilite		P%sT
-
-# For now...
-Link	America/Los_Angeles	US/Pacific-New	##
diff --git a/libkcal/libical/tzdata/solar87 b/libkcal/libical/tzdata/solar87
deleted file mode 100644
index 71839320..00000000
--- a/libkcal/libical/tzdata/solar87
+++ /dev/null
@@ -1,388 +0,0 @@
-# @(#)solar87	8.1
-
-# So much for footnotes about Saudi Arabia.
-# Apparent noon times below are for Riyadh; your mileage will vary.
-# Times were computed using formulas in the U.S. Naval Observatory's
-# Almanac for Computers 1987; the formulas "will give EqT to an accuracy of
-# [plus or minus two] seconds during the current year."
-#
-# Rounding to the nearest five seconds results in fewer than
-# 256 different "time types"--a limit that's faced because time types are
-# stored on disk as unsigned chars.
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	sol87	1987	only	-	Jan	1	12:03:20s -0:03:20 -
-Rule	sol87	1987	only	-	Jan	2	12:03:50s -0:03:50 -
-Rule	sol87	1987	only	-	Jan	3	12:04:15s -0:04:15 -
-Rule	sol87	1987	only	-	Jan	4	12:04:45s -0:04:45 -
-Rule	sol87	1987	only	-	Jan	5	12:05:10s -0:05:10 -
-Rule	sol87	1987	only	-	Jan	6	12:05:40s -0:05:40 -
-Rule	sol87	1987	only	-	Jan	7	12:06:05s -0:06:05 -
-Rule	sol87	1987	only	-	Jan	8	12:06:30s -0:06:30 -
-Rule	sol87	1987	only	-	Jan	9	12:06:55s -0:06:55 -
-Rule	sol87	1987	only	-	Jan	10	12:07:20s -0:07:20 -
-Rule	sol87	1987	only	-	Jan	11	12:07:45s -0:07:45 -
-Rule	sol87	1987	only	-	Jan	12	12:08:10s -0:08:10 -
-Rule	sol87	1987	only	-	Jan	13	12:08:30s -0:08:30 -
-Rule	sol87	1987	only	-	Jan	14	12:08:55s -0:08:55 -
-Rule	sol87	1987	only	-	Jan	15	12:09:15s -0:09:15 -
-Rule	sol87	1987	only	-	Jan	16	12:09:35s -0:09:35 -
-Rule	sol87	1987	only	-	Jan	17	12:09:55s -0:09:55 -
-Rule	sol87	1987	only	-	Jan	18	12:10:15s -0:10:15 -
-Rule	sol87	1987	only	-	Jan	19	12:10:35s -0:10:35 -
-Rule	sol87	1987	only	-	Jan	20	12:10:55s -0:10:55 -
-Rule	sol87	1987	only	-	Jan	21	12:11:10s -0:11:10 -
-Rule	sol87	1987	only	-	Jan	22	12:11:30s -0:11:30 -
-Rule	sol87	1987	only	-	Jan	23	12:11:45s -0:11:45 -
-Rule	sol87	1987	only	-	Jan	24	12:12:00s -0:12:00 -
-Rule	sol87	1987	only	-	Jan	25	12:12:15s -0:12:15 -
-Rule	sol87	1987	only	-	Jan	26	12:12:30s -0:12:30 -
-Rule	sol87	1987	only	-	Jan	27	12:12:40s -0:12:40 -
-Rule	sol87	1987	only	-	Jan	28	12:12:55s -0:12:55 -
-Rule	sol87	1987	only	-	Jan	29	12:13:05s -0:13:05 -
-Rule	sol87	1987	only	-	Jan	30	12:13:15s -0:13:15 -
-Rule	sol87	1987	only	-	Jan	31	12:13:25s -0:13:25 -
-Rule	sol87	1987	only	-	Feb	1	12:13:35s -0:13:35 -
-Rule	sol87	1987	only	-	Feb	2	12:13:40s -0:13:40 -
-Rule	sol87	1987	only	-	Feb	3	12:13:50s -0:13:50 -
-Rule	sol87	1987	only	-	Feb	4	12:13:55s -0:13:55 -
-Rule	sol87	1987	only	-	Feb	5	12:14:00s -0:14:00 -
-Rule	sol87	1987	only	-	Feb	6	12:14:05s -0:14:05 -
-Rule	sol87	1987	only	-	Feb	7	12:14:10s -0:14:10 -
-Rule	sol87	1987	only	-	Feb	8	12:14:10s -0:14:10 -
-Rule	sol87	1987	only	-	Feb	9	12:14:15s -0:14:15 -
-Rule	sol87	1987	only	-	Feb	10	12:14:15s -0:14:15 -
-Rule	sol87	1987	only	-	Feb	11	12:14:15s -0:14:15 -
-Rule	sol87	1987	only	-	Feb	12	12:14:15s -0:14:15 -
-Rule	sol87	1987	only	-	Feb	13	12:14:15s -0:14:15 -
-Rule	sol87	1987	only	-	Feb	14	12:14:15s -0:14:15 -
-Rule	sol87	1987	only	-	Feb	15	12:14:10s -0:14:10 -
-Rule	sol87	1987	only	-	Feb	16	12:14:10s -0:14:10 -
-Rule	sol87	1987	only	-	Feb	17	12:14:05s -0:14:05 -
-Rule	sol87	1987	only	-	Feb	18	12:14:00s -0:14:00 -
-Rule	sol87	1987	only	-	Feb	19	12:13:55s -0:13:55 -
-Rule	sol87	1987	only	-	Feb	20	12:13:50s -0:13:50 -
-Rule	sol87	1987	only	-	Feb	21	12:13:45s -0:13:45 -
-Rule	sol87	1987	only	-	Feb	22	12:13:35s -0:13:35 -
-Rule	sol87	1987	only	-	Feb	23	12:13:30s -0:13:30 -
-Rule	sol87	1987	only	-	Feb	24	12:13:20s -0:13:20 -
-Rule	sol87	1987	only	-	Feb	25	12:13:10s -0:13:10 -
-Rule	sol87	1987	only	-	Feb	26	12:13:00s -0:13:00 -
-Rule	sol87	1987	only	-	Feb	27	12:12:50s -0:12:50 -
-Rule	sol87	1987	only	-	Feb	28	12:12:40s -0:12:40 -
-Rule	sol87	1987	only	-	Mar	1	12:12:30s -0:12:30 -
-Rule	sol87	1987	only	-	Mar	2	12:12:20s -0:12:20 -
-Rule	sol87	1987	only	-	Mar	3	12:12:05s -0:12:05 -
-Rule	sol87	1987	only	-	Mar	4	12:11:55s -0:11:55 -
-Rule	sol87	1987	only	-	Mar	5	12:11:40s -0:11:40 -
-Rule	sol87	1987	only	-	Mar	6	12:11:25s -0:11:25 -
-Rule	sol87	1987	only	-	Mar	7	12:11:15s -0:11:15 -
-Rule	sol87	1987	only	-	Mar	8	12:11:00s -0:11:00 -
-Rule	sol87	1987	only	-	Mar	9	12:10:45s -0:10:45 -
-Rule	sol87	1987	only	-	Mar	10	12:10:30s -0:10:30 -
-Rule	sol87	1987	only	-	Mar	11	12:10:15s -0:10:15 -
-Rule	sol87	1987	only	-	Mar	12	12:09:55s -0:09:55 -
-Rule	sol87	1987	only	-	Mar	13	12:09:40s -0:09:40 -
-Rule	sol87	1987	only	-	Mar	14	12:09:25s -0:09:25 -
-Rule	sol87	1987	only	-	Mar	15	12:09:10s -0:09:10 -
-Rule	sol87	1987	only	-	Mar	16	12:08:50s -0:08:50 -
-Rule	sol87	1987	only	-	Mar	17	12:08:35s -0:08:35 -
-Rule	sol87	1987	only	-	Mar	18	12:08:15s -0:08:15 -
-Rule	sol87	1987	only	-	Mar	19	12:08:00s -0:08:00 -
-Rule	sol87	1987	only	-	Mar	20	12:07:40s -0:07:40 -
-Rule	sol87	1987	only	-	Mar	21	12:07:25s -0:07:25 -
-Rule	sol87	1987	only	-	Mar	22	12:07:05s -0:07:05 -
-Rule	sol87	1987	only	-	Mar	23	12:06:50s -0:06:50 -
-Rule	sol87	1987	only	-	Mar	24	12:06:30s -0:06:30 -
-Rule	sol87	1987	only	-	Mar	25	12:06:10s -0:06:10 -
-Rule	sol87	1987	only	-	Mar	26	12:05:55s -0:05:55 -
-Rule	sol87	1987	only	-	Mar	27	12:05:35s -0:05:35 -
-Rule	sol87	1987	only	-	Mar	28	12:05:15s -0:05:15 -
-Rule	sol87	1987	only	-	Mar	29	12:05:00s -0:05:00 -
-Rule	sol87	1987	only	-	Mar	30	12:04:40s -0:04:40 -
-Rule	sol87	1987	only	-	Mar	31	12:04:25s -0:04:25 -
-Rule	sol87	1987	only	-	Apr	1	12:04:05s -0:04:05 -
-Rule	sol87	1987	only	-	Apr	2	12:03:45s -0:03:45 -
-Rule	sol87	1987	only	-	Apr	3	12:03:30s -0:03:30 -
-Rule	sol87	1987	only	-	Apr	4	12:03:10s -0:03:10 -
-Rule	sol87	1987	only	-	Apr	5	12:02:55s -0:02:55 -
-Rule	sol87	1987	only	-	Apr	6	12:02:35s -0:02:35 -
-Rule	sol87	1987	only	-	Apr	7	12:02:20s -0:02:20 -
-Rule	sol87	1987	only	-	Apr	8	12:02:05s -0:02:05 -
-Rule	sol87	1987	only	-	Apr	9	12:01:45s -0:01:45 -
-Rule	sol87	1987	only	-	Apr	10	12:01:30s -0:01:30 -
-Rule	sol87	1987	only	-	Apr	11	12:01:15s -0:01:15 -
-Rule	sol87	1987	only	-	Apr	12	12:00:55s -0:00:55 -
-Rule	sol87	1987	only	-	Apr	13	12:00:40s -0:00:40 -
-Rule	sol87	1987	only	-	Apr	14	12:00:25s -0:00:25 -
-Rule	sol87	1987	only	-	Apr	15	12:00:10s -0:00:10 -
-Rule	sol87	1987	only	-	Apr	16	11:59:55s 0:00:05 -
-Rule	sol87	1987	only	-	Apr	17	11:59:45s 0:00:15 -
-Rule	sol87	1987	only	-	Apr	18	11:59:30s 0:00:30 -
-Rule	sol87	1987	only	-	Apr	19	11:59:15s 0:00:45 -
-Rule	sol87	1987	only	-	Apr	20	11:59:05s 0:00:55 -
-Rule	sol87	1987	only	-	Apr	21	11:58:50s 0:01:10 -
-Rule	sol87	1987	only	-	Apr	22	11:58:40s 0:01:20 -
-Rule	sol87	1987	only	-	Apr	23	11:58:25s 0:01:35 -
-Rule	sol87	1987	only	-	Apr	24	11:58:15s 0:01:45 -
-Rule	sol87	1987	only	-	Apr	25	11:58:05s 0:01:55 -
-Rule	sol87	1987	only	-	Apr	26	11:57:55s 0:02:05 -
-Rule	sol87	1987	only	-	Apr	27	11:57:45s 0:02:15 -
-Rule	sol87	1987	only	-	Apr	28	11:57:35s 0:02:25 -
-Rule	sol87	1987	only	-	Apr	29	11:57:25s 0:02:35 -
-Rule	sol87	1987	only	-	Apr	30	11:57:15s 0:02:45 -
-Rule	sol87	1987	only	-	May	1	11:57:10s 0:02:50 -
-Rule	sol87	1987	only	-	May	2	11:57:00s 0:03:00 -
-Rule	sol87	1987	only	-	May	3	11:56:55s 0:03:05 -
-Rule	sol87	1987	only	-	May	4	11:56:50s 0:03:10 -
-Rule	sol87	1987	only	-	May	5	11:56:45s 0:03:15 -
-Rule	sol87	1987	only	-	May	6	11:56:40s 0:03:20 -
-Rule	sol87	1987	only	-	May	7	11:56:35s 0:03:25 -
-Rule	sol87	1987	only	-	May	8	11:56:30s 0:03:30 -
-Rule	sol87	1987	only	-	May	9	11:56:25s 0:03:35 -
-Rule	sol87	1987	only	-	May	10	11:56:25s 0:03:35 -
-Rule	sol87	1987	only	-	May	11	11:56:20s 0:03:40 -
-Rule	sol87	1987	only	-	May	12	11:56:20s 0:03:40 -
-Rule	sol87	1987	only	-	May	13	11:56:20s 0:03:40 -
-Rule	sol87	1987	only	-	May	14	11:56:20s 0:03:40 -
-Rule	sol87	1987	only	-	May	15	11:56:20s 0:03:40 -
-Rule	sol87	1987	only	-	May	16	11:56:20s 0:03:40 -
-Rule	sol87	1987	only	-	May	17	11:56:20s 0:03:40 -
-Rule	sol87	1987	only	-	May	18	11:56:20s 0:03:40 -
-Rule	sol87	1987	only	-	May	19	11:56:25s 0:03:35 -
-Rule	sol87	1987	only	-	May	20	11:56:25s 0:03:35 -
-Rule	sol87	1987	only	-	May	21	11:56:30s 0:03:30 -
-Rule	sol87	1987	only	-	May	22	11:56:35s 0:03:25 -
-Rule	sol87	1987	only	-	May	23	11:56:40s 0:03:20 -
-Rule	sol87	1987	only	-	May	24	11:56:45s 0:03:15 -
-Rule	sol87	1987	only	-	May	25	11:56:50s 0:03:10 -
-Rule	sol87	1987	only	-	May	26	11:56:55s 0:03:05 -
-Rule	sol87	1987	only	-	May	27	11:57:00s 0:03:00 -
-Rule	sol87	1987	only	-	May	28	11:57:10s 0:02:50 -
-Rule	sol87	1987	only	-	May	29	11:57:15s 0:02:45 -
-Rule	sol87	1987	only	-	May	30	11:57:25s 0:02:35 -
-Rule	sol87	1987	only	-	May	31	11:57:30s 0:02:30 -
-Rule	sol87	1987	only	-	Jun	1	11:57:40s 0:02:20 -
-Rule	sol87	1987	only	-	Jun	2	11:57:50s 0:02:10 -
-Rule	sol87	1987	only	-	Jun	3	11:58:00s 0:02:00 -
-Rule	sol87	1987	only	-	Jun	4	11:58:10s 0:01:50 -
-Rule	sol87	1987	only	-	Jun	5	11:58:20s 0:01:40 -
-Rule	sol87	1987	only	-	Jun	6	11:58:30s 0:01:30 -
-Rule	sol87	1987	only	-	Jun	7	11:58:40s 0:01:20 -
-Rule	sol87	1987	only	-	Jun	8	11:58:50s 0:01:10 -
-Rule	sol87	1987	only	-	Jun	9	11:59:05s 0:00:55 -
-Rule	sol87	1987	only	-	Jun	10	11:59:15s 0:00:45 -
-Rule	sol87	1987	only	-	Jun	11	11:59:30s 0:00:30 -
-Rule	sol87	1987	only	-	Jun	12	11:59:40s 0:00:20 -
-Rule	sol87	1987	only	-	Jun	13	11:59:50s 0:00:10 -
-Rule	sol87	1987	only	-	Jun	14	12:00:05s -0:00:05 -
-Rule	sol87	1987	only	-	Jun	15	12:00:15s -0:00:15 -
-Rule	sol87	1987	only	-	Jun	16	12:00:30s -0:00:30 -
-Rule	sol87	1987	only	-	Jun	17	12:00:45s -0:00:45 -
-Rule	sol87	1987	only	-	Jun	18	12:00:55s -0:00:55 -
-Rule	sol87	1987	only	-	Jun	19	12:01:10s -0:01:10 -
-Rule	sol87	1987	only	-	Jun	20	12:01:20s -0:01:20 -
-Rule	sol87	1987	only	-	Jun	21	12:01:35s -0:01:35 -
-Rule	sol87	1987	only	-	Jun	22	12:01:50s -0:01:50 -
-Rule	sol87	1987	only	-	Jun	23	12:02:00s -0:02:00 -
-Rule	sol87	1987	only	-	Jun	24	12:02:15s -0:02:15 -
-Rule	sol87	1987	only	-	Jun	25	12:02:25s -0:02:25 -
-Rule	sol87	1987	only	-	Jun	26	12:02:40s -0:02:40 -
-Rule	sol87	1987	only	-	Jun	27	12:02:50s -0:02:50 -
-Rule	sol87	1987	only	-	Jun	28	12:03:05s -0:03:05 -
-Rule	sol87	1987	only	-	Jun	29	12:03:15s -0:03:15 -
-Rule	sol87	1987	only	-	Jun	30	12:03:30s -0:03:30 -
-Rule	sol87	1987	only	-	Jul	1	12:03:40s -0:03:40 -
-Rule	sol87	1987	only	-	Jul	2	12:03:50s -0:03:50 -
-Rule	sol87	1987	only	-	Jul	3	12:04:05s -0:04:05 -
-Rule	sol87	1987	only	-	Jul	4	12:04:15s -0:04:15 -
-Rule	sol87	1987	only	-	Jul	5	12:04:25s -0:04:25 -
-Rule	sol87	1987	only	-	Jul	6	12:04:35s -0:04:35 -
-Rule	sol87	1987	only	-	Jul	7	12:04:45s -0:04:45 -
-Rule	sol87	1987	only	-	Jul	8	12:04:55s -0:04:55 -
-Rule	sol87	1987	only	-	Jul	9	12:05:05s -0:05:05 -
-Rule	sol87	1987	only	-	Jul	10	12:05:15s -0:05:15 -
-Rule	sol87	1987	only	-	Jul	11	12:05:20s -0:05:20 -
-Rule	sol87	1987	only	-	Jul	12	12:05:30s -0:05:30 -
-Rule	sol87	1987	only	-	Jul	13	12:05:40s -0:05:40 -
-Rule	sol87	1987	only	-	Jul	14	12:05:45s -0:05:45 -
-Rule	sol87	1987	only	-	Jul	15	12:05:50s -0:05:50 -
-Rule	sol87	1987	only	-	Jul	16	12:06:00s -0:06:00 -
-Rule	sol87	1987	only	-	Jul	17	12:06:05s -0:06:05 -
-Rule	sol87	1987	only	-	Jul	18	12:06:10s -0:06:10 -
-Rule	sol87	1987	only	-	Jul	19	12:06:15s -0:06:15 -
-Rule	sol87	1987	only	-	Jul	20	12:06:15s -0:06:15 -
-Rule	sol87	1987	only	-	Jul	21	12:06:20s -0:06:20 -
-Rule	sol87	1987	only	-	Jul	22	12:06:25s -0:06:25 -
-Rule	sol87	1987	only	-	Jul	23	12:06:25s -0:06:25 -
-Rule	sol87	1987	only	-	Jul	24	12:06:25s -0:06:25 -
-Rule	sol87	1987	only	-	Jul	25	12:06:30s -0:06:30 -
-Rule	sol87	1987	only	-	Jul	26	12:06:30s -0:06:30 -
-Rule	sol87	1987	only	-	Jul	27	12:06:30s -0:06:30 -
-Rule	sol87	1987	only	-	Jul	28	12:06:30s -0:06:30 -
-Rule	sol87	1987	only	-	Jul	29	12:06:25s -0:06:25 -
-Rule	sol87	1987	only	-	Jul	30	12:06:25s -0:06:25 -
-Rule	sol87	1987	only	-	Jul	31	12:06:25s -0:06:25 -
-Rule	sol87	1987	only	-	Aug	1	12:06:20s -0:06:20 -
-Rule	sol87	1987	only	-	Aug	2	12:06:15s -0:06:15 -
-Rule	sol87	1987	only	-	Aug	3	12:06:10s -0:06:10 -
-Rule	sol87	1987	only	-	Aug	4	12:06:05s -0:06:05 -
-Rule	sol87	1987	only	-	Aug	5	12:06:00s -0:06:00 -
-Rule	sol87	1987	only	-	Aug	6	12:05:55s -0:05:55 -
-Rule	sol87	1987	only	-	Aug	7	12:05:50s -0:05:50 -
-Rule	sol87	1987	only	-	Aug	8	12:05:40s -0:05:40 -
-Rule	sol87	1987	only	-	Aug	9	12:05:35s -0:05:35 -
-Rule	sol87	1987	only	-	Aug	10	12:05:25s -0:05:25 -
-Rule	sol87	1987	only	-	Aug	11	12:05:15s -0:05:15 -
-Rule	sol87	1987	only	-	Aug	12	12:05:05s -0:05:05 -
-Rule	sol87	1987	only	-	Aug	13	12:04:55s -0:04:55 -
-Rule	sol87	1987	only	-	Aug	14	12:04:45s -0:04:45 -
-Rule	sol87	1987	only	-	Aug	15	12:04:35s -0:04:35 -
-Rule	sol87	1987	only	-	Aug	16	12:04:25s -0:04:25 -
-Rule	sol87	1987	only	-	Aug	17	12:04:10s -0:04:10 -
-Rule	sol87	1987	only	-	Aug	18	12:04:00s -0:04:00 -
-Rule	sol87	1987	only	-	Aug	19	12:03:45s -0:03:45 -
-Rule	sol87	1987	only	-	Aug	20	12:03:30s -0:03:30 -
-Rule	sol87	1987	only	-	Aug	21	12:03:15s -0:03:15 -
-Rule	sol87	1987	only	-	Aug	22	12:03:00s -0:03:00 -
-Rule	sol87	1987	only	-	Aug	23	12:02:45s -0:02:45 -
-Rule	sol87	1987	only	-	Aug	24	12:02:30s -0:02:30 -
-Rule	sol87	1987	only	-	Aug	25	12:02:15s -0:02:15 -
-Rule	sol87	1987	only	-	Aug	26	12:02:00s -0:02:00 -
-Rule	sol87	1987	only	-	Aug	27	12:01:40s -0:01:40 -
-Rule	sol87	1987	only	-	Aug	28	12:01:25s -0:01:25 -
-Rule	sol87	1987	only	-	Aug	29	12:01:05s -0:01:05 -
-Rule	sol87	1987	only	-	Aug	30	12:00:50s -0:00:50 -
-Rule	sol87	1987	only	-	Aug	31	12:00:30s -0:00:30 -
-Rule	sol87	1987	only	-	Sep	1	12:00:10s -0:00:10 -
-Rule	sol87	1987	only	-	Sep	2	11:59:50s 0:00:10 -
-Rule	sol87	1987	only	-	Sep	3	11:59:35s 0:00:25 -
-Rule	sol87	1987	only	-	Sep	4	11:59:15s 0:00:45 -
-Rule	sol87	1987	only	-	Sep	5	11:58:55s 0:01:05 -
-Rule	sol87	1987	only	-	Sep	6	11:58:35s 0:01:25 -
-Rule	sol87	1987	only	-	Sep	7	11:58:15s 0:01:45 -
-Rule	sol87	1987	only	-	Sep	8	11:57:55s 0:02:05 -
-Rule	sol87	1987	only	-	Sep	9	11:57:30s 0:02:30 -
-Rule	sol87	1987	only	-	Sep	10	11:57:10s 0:02:50 -
-Rule	sol87	1987	only	-	Sep	11	11:56:50s 0:03:10 -
-Rule	sol87	1987	only	-	Sep	12	11:56:30s 0:03:30 -
-Rule	sol87	1987	only	-	Sep	13	11:56:10s 0:03:50 -
-Rule	sol87	1987	only	-	Sep	14	11:55:45s 0:04:15 -
-Rule	sol87	1987	only	-	Sep	15	11:55:25s 0:04:35 -
-Rule	sol87	1987	only	-	Sep	16	11:55:05s 0:04:55 -
-Rule	sol87	1987	only	-	Sep	17	11:54:45s 0:05:15 -
-Rule	sol87	1987	only	-	Sep	18	11:54:20s 0:05:40 -
-Rule	sol87	1987	only	-	Sep	19	11:54:00s 0:06:00 -
-Rule	sol87	1987	only	-	Sep	20	11:53:40s 0:06:20 -
-Rule	sol87	1987	only	-	Sep	21	11:53:15s 0:06:45 -
-Rule	sol87	1987	only	-	Sep	22	11:52:55s 0:07:05 -
-Rule	sol87	1987	only	-	Sep	23	11:52:35s 0:07:25 -
-Rule	sol87	1987	only	-	Sep	24	11:52:15s 0:07:45 -
-Rule	sol87	1987	only	-	Sep	25	11:51:55s 0:08:05 -
-Rule	sol87	1987	only	-	Sep	26	11:51:35s 0:08:25 -
-Rule	sol87	1987	only	-	Sep	27	11:51:10s 0:08:50 -
-Rule	sol87	1987	only	-	Sep	28	11:50:50s 0:09:10 -
-Rule	sol87	1987	only	-	Sep	29	11:50:30s 0:09:30 -
-Rule	sol87	1987	only	-	Sep	30	11:50:10s 0:09:50 -
-Rule	sol87	1987	only	-	Oct	1	11:49:50s 0:10:10 -
-Rule	sol87	1987	only	-	Oct	2	11:49:35s 0:10:25 -
-Rule	sol87	1987	only	-	Oct	3	11:49:15s 0:10:45 -
-Rule	sol87	1987	only	-	Oct	4	11:48:55s 0:11:05 -
-Rule	sol87	1987	only	-	Oct	5	11:48:35s 0:11:25 -
-Rule	sol87	1987	only	-	Oct	6	11:48:20s 0:11:40 -
-Rule	sol87	1987	only	-	Oct	7	11:48:00s 0:12:00 -
-Rule	sol87	1987	only	-	Oct	8	11:47:45s 0:12:15 -
-Rule	sol87	1987	only	-	Oct	9	11:47:25s 0:12:35 -
-Rule	sol87	1987	only	-	Oct	10	11:47:10s 0:12:50 -
-Rule	sol87	1987	only	-	Oct	11	11:46:55s 0:13:05 -
-Rule	sol87	1987	only	-	Oct	12	11:46:40s 0:13:20 -
-Rule	sol87	1987	only	-	Oct	13	11:46:25s 0:13:35 -
-Rule	sol87	1987	only	-	Oct	14	11:46:10s 0:13:50 -
-Rule	sol87	1987	only	-	Oct	15	11:45:55s 0:14:05 -
-Rule	sol87	1987	only	-	Oct	16	11:45:45s 0:14:15 -
-Rule	sol87	1987	only	-	Oct	17	11:45:30s 0:14:30 -
-Rule	sol87	1987	only	-	Oct	18	11:45:20s 0:14:40 -
-Rule	sol87	1987	only	-	Oct	19	11:45:05s 0:14:55 -
-Rule	sol87	1987	only	-	Oct	20	11:44:55s 0:15:05 -
-Rule	sol87	1987	only	-	Oct	21	11:44:45s 0:15:15 -
-Rule	sol87	1987	only	-	Oct	22	11:44:35s 0:15:25 -
-Rule	sol87	1987	only	-	Oct	23	11:44:25s 0:15:35 -
-Rule	sol87	1987	only	-	Oct	24	11:44:20s 0:15:40 -
-Rule	sol87	1987	only	-	Oct	25	11:44:10s 0:15:50 -
-Rule	sol87	1987	only	-	Oct	26	11:44:05s 0:15:55 -
-Rule	sol87	1987	only	-	Oct	27	11:43:55s 0:16:05 -
-Rule	sol87	1987	only	-	Oct	28	11:43:50s 0:16:10 -
-Rule	sol87	1987	only	-	Oct	29	11:43:45s 0:16:15 -
-Rule	sol87	1987	only	-	Oct	30	11:43:45s 0:16:15 -
-Rule	sol87	1987	only	-	Oct	31	11:43:40s 0:16:20 -
-Rule	sol87	1987	only	-	Nov	1	11:43:40s 0:16:20 -
-Rule	sol87	1987	only	-	Nov	2	11:43:35s 0:16:25 -
-Rule	sol87	1987	only	-	Nov	3	11:43:35s 0:16:25 -
-Rule	sol87	1987	only	-	Nov	4	11:43:35s 0:16:25 -
-Rule	sol87	1987	only	-	Nov	5	11:43:35s 0:16:25 -
-Rule	sol87	1987	only	-	Nov	6	11:43:40s 0:16:20 -
-Rule	sol87	1987	only	-	Nov	7	11:43:40s 0:16:20 -
-Rule	sol87	1987	only	-	Nov	8	11:43:45s 0:16:15 -
-Rule	sol87	1987	only	-	Nov	9	11:43:50s 0:16:10 -
-Rule	sol87	1987	only	-	Nov	10	11:43:55s 0:16:05 -
-Rule	sol87	1987	only	-	Nov	11	11:44:00s 0:16:00 -
-Rule	sol87	1987	only	-	Nov	12	11:44:05s 0:15:55 -
-Rule	sol87	1987	only	-	Nov	13	11:44:15s 0:15:45 -
-Rule	sol87	1987	only	-	Nov	14	11:44:20s 0:15:40 -
-Rule	sol87	1987	only	-	Nov	15	11:44:30s 0:15:30 -
-Rule	sol87	1987	only	-	Nov	16	11:44:40s 0:15:20 -
-Rule	sol87	1987	only	-	Nov	17	11:44:50s 0:15:10 -
-Rule	sol87	1987	only	-	Nov	18	11:45:05s 0:14:55 -
-Rule	sol87	1987	only	-	Nov	19	11:45:15s 0:14:45 -
-Rule	sol87	1987	only	-	Nov	20	11:45:30s 0:14:30 -
-Rule	sol87	1987	only	-	Nov	21	11:45:45s 0:14:15 -
-Rule	sol87	1987	only	-	Nov	22	11:46:00s 0:14:00 -
-Rule	sol87	1987	only	-	Nov	23	11:46:15s 0:13:45 -
-Rule	sol87	1987	only	-	Nov	24	11:46:30s 0:13:30 -
-Rule	sol87	1987	only	-	Nov	25	11:46:50s 0:13:10 -
-Rule	sol87	1987	only	-	Nov	26	11:47:10s 0:12:50 -
-Rule	sol87	1987	only	-	Nov	27	11:47:25s 0:12:35 -
-Rule	sol87	1987	only	-	Nov	28	11:47:45s 0:12:15 -
-Rule	sol87	1987	only	-	Nov	29	11:48:05s 0:11:55 -
-Rule	sol87	1987	only	-	Nov	30	11:48:30s 0:11:30 -
-Rule	sol87	1987	only	-	Dec	1	11:48:50s 0:11:10 -
-Rule	sol87	1987	only	-	Dec	2	11:49:10s 0:10:50 -
-Rule	sol87	1987	only	-	Dec	3	11:49:35s 0:10:25 -
-Rule	sol87	1987	only	-	Dec	4	11:50:00s 0:10:00 -
-Rule	sol87	1987	only	-	Dec	5	11:50:25s 0:09:35 -
-Rule	sol87	1987	only	-	Dec	6	11:50:50s 0:09:10 -
-Rule	sol87	1987	only	-	Dec	7	11:51:15s 0:08:45 -
-Rule	sol87	1987	only	-	Dec	8	11:51:40s 0:08:20 -
-Rule	sol87	1987	only	-	Dec	9	11:52:05s 0:07:55 -
-Rule	sol87	1987	only	-	Dec	10	11:52:30s 0:07:30 -
-Rule	sol87	1987	only	-	Dec	11	11:53:00s 0:07:00 -
-Rule	sol87	1987	only	-	Dec	12	11:53:25s 0:06:35 -
-Rule	sol87	1987	only	-	Dec	13	11:53:55s 0:06:05 -
-Rule	sol87	1987	only	-	Dec	14	11:54:25s 0:05:35 -
-Rule	sol87	1987	only	-	Dec	15	11:54:50s 0:05:10 -
-Rule	sol87	1987	only	-	Dec	16	11:55:20s 0:04:40 -
-Rule	sol87	1987	only	-	Dec	17	11:55:50s 0:04:10 -
-Rule	sol87	1987	only	-	Dec	18	11:56:20s 0:03:40 -
-Rule	sol87	1987	only	-	Dec	19	11:56:50s 0:03:10 -
-Rule	sol87	1987	only	-	Dec	20	11:57:20s 0:02:40 -
-Rule	sol87	1987	only	-	Dec	21	11:57:50s 0:02:10 -
-Rule	sol87	1987	only	-	Dec	22	11:58:20s 0:01:40 -
-Rule	sol87	1987	only	-	Dec	23	11:58:50s 0:01:10 -
-Rule	sol87	1987	only	-	Dec	24	11:59:20s 0:00:40 -
-Rule	sol87	1987	only	-	Dec	25	11:59:50s 0:00:10 -
-Rule	sol87	1987	only	-	Dec	26	12:00:20s -0:00:20 -
-Rule	sol87	1987	only	-	Dec	27	12:00:45s -0:00:45 -
-Rule	sol87	1987	only	-	Dec	28	12:01:15s -0:01:15 -
-Rule	sol87	1987	only	-	Dec	29	12:01:45s -0:01:45 -
-Rule	sol87	1987	only	-	Dec	30	12:02:15s -0:02:15 -
-Rule	sol87	1987	only	-	Dec	31	12:02:45s -0:02:45 -
-
-# Riyadh is at about 46 degrees 46 minutes East:  3 hrs, 7 mins, 4 secs
-# Before and after 1987, we'll operate on local mean solar time.
-
-# Zone	NAME		GMTOFF	RULES/SAVE	FORMAT	[UNTIL]
-Zone	Asia/Riyadh87	3:07:04	-		zzz	1987
-			3:07:04	sol87		zzz	1988
-			3:07:04	-		zzz
-# For backward compatibility...
-Link	Asia/Riyadh87	Mideast/Riyadh87
diff --git a/libkcal/libical/tzdata/solar88 b/libkcal/libical/tzdata/solar88
deleted file mode 100644
index b4cfe8e3..00000000
--- a/libkcal/libical/tzdata/solar88
+++ /dev/null
@@ -1,388 +0,0 @@
-# @(#)solar88	8.1
-
-# Apparent noon times below are for Riyadh; they're a bit off for other places.
-# Times were computed using formulas in the U.S. Naval Observatory's
-# Almanac for Computers 1988; the formulas "will give EqT to an accuracy of
-# [plus or minus two] seconds during the current year."
-#
-# Rounding to the nearest five seconds results in fewer than
-# 256 different "time types"--a limit that's faced because time types are
-# stored on disk as unsigned chars.
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	sol88	1988	only	-	Jan	1	12:03:15s -0:03:15 -
-Rule	sol88	1988	only	-	Jan	2	12:03:40s -0:03:40 -
-Rule	sol88	1988	only	-	Jan	3	12:04:10s -0:04:10 -
-Rule	sol88	1988	only	-	Jan	4	12:04:40s -0:04:40 -
-Rule	sol88	1988	only	-	Jan	5	12:05:05s -0:05:05 -
-Rule	sol88	1988	only	-	Jan	6	12:05:30s -0:05:30 -
-Rule	sol88	1988	only	-	Jan	7	12:06:00s -0:06:00 -
-Rule	sol88	1988	only	-	Jan	8	12:06:25s -0:06:25 -
-Rule	sol88	1988	only	-	Jan	9	12:06:50s -0:06:50 -
-Rule	sol88	1988	only	-	Jan	10	12:07:15s -0:07:15 -
-Rule	sol88	1988	only	-	Jan	11	12:07:40s -0:07:40 -
-Rule	sol88	1988	only	-	Jan	12	12:08:05s -0:08:05 -
-Rule	sol88	1988	only	-	Jan	13	12:08:25s -0:08:25 -
-Rule	sol88	1988	only	-	Jan	14	12:08:50s -0:08:50 -
-Rule	sol88	1988	only	-	Jan	15	12:09:10s -0:09:10 -
-Rule	sol88	1988	only	-	Jan	16	12:09:30s -0:09:30 -
-Rule	sol88	1988	only	-	Jan	17	12:09:50s -0:09:50 -
-Rule	sol88	1988	only	-	Jan	18	12:10:10s -0:10:10 -
-Rule	sol88	1988	only	-	Jan	19	12:10:30s -0:10:30 -
-Rule	sol88	1988	only	-	Jan	20	12:10:50s -0:10:50 -
-Rule	sol88	1988	only	-	Jan	21	12:11:05s -0:11:05 -
-Rule	sol88	1988	only	-	Jan	22	12:11:25s -0:11:25 -
-Rule	sol88	1988	only	-	Jan	23	12:11:40s -0:11:40 -
-Rule	sol88	1988	only	-	Jan	24	12:11:55s -0:11:55 -
-Rule	sol88	1988	only	-	Jan	25	12:12:10s -0:12:10 -
-Rule	sol88	1988	only	-	Jan	26	12:12:25s -0:12:25 -
-Rule	sol88	1988	only	-	Jan	27	12:12:40s -0:12:40 -
-Rule	sol88	1988	only	-	Jan	28	12:12:50s -0:12:50 -
-Rule	sol88	1988	only	-	Jan	29	12:13:00s -0:13:00 -
-Rule	sol88	1988	only	-	Jan	30	12:13:10s -0:13:10 -
-Rule	sol88	1988	only	-	Jan	31	12:13:20s -0:13:20 -
-Rule	sol88	1988	only	-	Feb	1	12:13:30s -0:13:30 -
-Rule	sol88	1988	only	-	Feb	2	12:13:40s -0:13:40 -
-Rule	sol88	1988	only	-	Feb	3	12:13:45s -0:13:45 -
-Rule	sol88	1988	only	-	Feb	4	12:13:55s -0:13:55 -
-Rule	sol88	1988	only	-	Feb	5	12:14:00s -0:14:00 -
-Rule	sol88	1988	only	-	Feb	6	12:14:05s -0:14:05 -
-Rule	sol88	1988	only	-	Feb	7	12:14:10s -0:14:10 -
-Rule	sol88	1988	only	-	Feb	8	12:14:10s -0:14:10 -
-Rule	sol88	1988	only	-	Feb	9	12:14:15s -0:14:15 -
-Rule	sol88	1988	only	-	Feb	10	12:14:15s -0:14:15 -
-Rule	sol88	1988	only	-	Feb	11	12:14:15s -0:14:15 -
-Rule	sol88	1988	only	-	Feb	12	12:14:15s -0:14:15 -
-Rule	sol88	1988	only	-	Feb	13	12:14:15s -0:14:15 -
-Rule	sol88	1988	only	-	Feb	14	12:14:15s -0:14:15 -
-Rule	sol88	1988	only	-	Feb	15	12:14:10s -0:14:10 -
-Rule	sol88	1988	only	-	Feb	16	12:14:10s -0:14:10 -
-Rule	sol88	1988	only	-	Feb	17	12:14:05s -0:14:05 -
-Rule	sol88	1988	only	-	Feb	18	12:14:00s -0:14:00 -
-Rule	sol88	1988	only	-	Feb	19	12:13:55s -0:13:55 -
-Rule	sol88	1988	only	-	Feb	20	12:13:50s -0:13:50 -
-Rule	sol88	1988	only	-	Feb	21	12:13:45s -0:13:45 -
-Rule	sol88	1988	only	-	Feb	22	12:13:40s -0:13:40 -
-Rule	sol88	1988	only	-	Feb	23	12:13:30s -0:13:30 -
-Rule	sol88	1988	only	-	Feb	24	12:13:20s -0:13:20 -
-Rule	sol88	1988	only	-	Feb	25	12:13:15s -0:13:15 -
-Rule	sol88	1988	only	-	Feb	26	12:13:05s -0:13:05 -
-Rule	sol88	1988	only	-	Feb	27	12:12:55s -0:12:55 -
-Rule	sol88	1988	only	-	Feb	28	12:12:45s -0:12:45 -
-Rule	sol88	1988	only	-	Feb	29	12:12:30s -0:12:30 -
-Rule	sol88	1988	only	-	Mar	1	12:12:20s -0:12:20 -
-Rule	sol88	1988	only	-	Mar	2	12:12:10s -0:12:10 -
-Rule	sol88	1988	only	-	Mar	3	12:11:55s -0:11:55 -
-Rule	sol88	1988	only	-	Mar	4	12:11:45s -0:11:45 -
-Rule	sol88	1988	only	-	Mar	5	12:11:30s -0:11:30 -
-Rule	sol88	1988	only	-	Mar	6	12:11:15s -0:11:15 -
-Rule	sol88	1988	only	-	Mar	7	12:11:00s -0:11:00 -
-Rule	sol88	1988	only	-	Mar	8	12:10:45s -0:10:45 -
-Rule	sol88	1988	only	-	Mar	9	12:10:30s -0:10:30 -
-Rule	sol88	1988	only	-	Mar	10	12:10:15s -0:10:15 -
-Rule	sol88	1988	only	-	Mar	11	12:10:00s -0:10:00 -
-Rule	sol88	1988	only	-	Mar	12	12:09:45s -0:09:45 -
-Rule	sol88	1988	only	-	Mar	13	12:09:30s -0:09:30 -
-Rule	sol88	1988	only	-	Mar	14	12:09:10s -0:09:10 -
-Rule	sol88	1988	only	-	Mar	15	12:08:55s -0:08:55 -
-Rule	sol88	1988	only	-	Mar	16	12:08:40s -0:08:40 -
-Rule	sol88	1988	only	-	Mar	17	12:08:20s -0:08:20 -
-Rule	sol88	1988	only	-	Mar	18	12:08:05s -0:08:05 -
-Rule	sol88	1988	only	-	Mar	19	12:07:45s -0:07:45 -
-Rule	sol88	1988	only	-	Mar	20	12:07:30s -0:07:30 -
-Rule	sol88	1988	only	-	Mar	21	12:07:10s -0:07:10 -
-Rule	sol88	1988	only	-	Mar	22	12:06:50s -0:06:50 -
-Rule	sol88	1988	only	-	Mar	23	12:06:35s -0:06:35 -
-Rule	sol88	1988	only	-	Mar	24	12:06:15s -0:06:15 -
-Rule	sol88	1988	only	-	Mar	25	12:06:00s -0:06:00 -
-Rule	sol88	1988	only	-	Mar	26	12:05:40s -0:05:40 -
-Rule	sol88	1988	only	-	Mar	27	12:05:20s -0:05:20 -
-Rule	sol88	1988	only	-	Mar	28	12:05:05s -0:05:05 -
-Rule	sol88	1988	only	-	Mar	29	12:04:45s -0:04:45 -
-Rule	sol88	1988	only	-	Mar	30	12:04:25s -0:04:25 -
-Rule	sol88	1988	only	-	Mar	31	12:04:10s -0:04:10 -
-Rule	sol88	1988	only	-	Apr	1	12:03:50s -0:03:50 -
-Rule	sol88	1988	only	-	Apr	2	12:03:35s -0:03:35 -
-Rule	sol88	1988	only	-	Apr	3	12:03:15s -0:03:15 -
-Rule	sol88	1988	only	-	Apr	4	12:03:00s -0:03:00 -
-Rule	sol88	1988	only	-	Apr	5	12:02:40s -0:02:40 -
-Rule	sol88	1988	only	-	Apr	6	12:02:25s -0:02:25 -
-Rule	sol88	1988	only	-	Apr	7	12:02:05s -0:02:05 -
-Rule	sol88	1988	only	-	Apr	8	12:01:50s -0:01:50 -
-Rule	sol88	1988	only	-	Apr	9	12:01:35s -0:01:35 -
-Rule	sol88	1988	only	-	Apr	10	12:01:15s -0:01:15 -
-Rule	sol88	1988	only	-	Apr	11	12:01:00s -0:01:00 -
-Rule	sol88	1988	only	-	Apr	12	12:00:45s -0:00:45 -
-Rule	sol88	1988	only	-	Apr	13	12:00:30s -0:00:30 -
-Rule	sol88	1988	only	-	Apr	14	12:00:15s -0:00:15 -
-Rule	sol88	1988	only	-	Apr	15	12:00:00s 0:00:00 -
-Rule	sol88	1988	only	-	Apr	16	11:59:45s 0:00:15 -
-Rule	sol88	1988	only	-	Apr	17	11:59:30s 0:00:30 -
-Rule	sol88	1988	only	-	Apr	18	11:59:20s 0:00:40 -
-Rule	sol88	1988	only	-	Apr	19	11:59:05s 0:00:55 -
-Rule	sol88	1988	only	-	Apr	20	11:58:55s 0:01:05 -
-Rule	sol88	1988	only	-	Apr	21	11:58:40s 0:01:20 -
-Rule	sol88	1988	only	-	Apr	22	11:58:30s 0:01:30 -
-Rule	sol88	1988	only	-	Apr	23	11:58:15s 0:01:45 -
-Rule	sol88	1988	only	-	Apr	24	11:58:05s 0:01:55 -
-Rule	sol88	1988	only	-	Apr	25	11:57:55s 0:02:05 -
-Rule	sol88	1988	only	-	Apr	26	11:57:45s 0:02:15 -
-Rule	sol88	1988	only	-	Apr	27	11:57:35s 0:02:25 -
-Rule	sol88	1988	only	-	Apr	28	11:57:30s 0:02:30 -
-Rule	sol88	1988	only	-	Apr	29	11:57:20s 0:02:40 -
-Rule	sol88	1988	only	-	Apr	30	11:57:10s 0:02:50 -
-Rule	sol88	1988	only	-	May	1	11:57:05s 0:02:55 -
-Rule	sol88	1988	only	-	May	2	11:56:55s 0:03:05 -
-Rule	sol88	1988	only	-	May	3	11:56:50s 0:03:10 -
-Rule	sol88	1988	only	-	May	4	11:56:45s 0:03:15 -
-Rule	sol88	1988	only	-	May	5	11:56:40s 0:03:20 -
-Rule	sol88	1988	only	-	May	6	11:56:35s 0:03:25 -
-Rule	sol88	1988	only	-	May	7	11:56:30s 0:03:30 -
-Rule	sol88	1988	only	-	May	8	11:56:25s 0:03:35 -
-Rule	sol88	1988	only	-	May	9	11:56:25s 0:03:35 -
-Rule	sol88	1988	only	-	May	10	11:56:20s 0:03:40 -
-Rule	sol88	1988	only	-	May	11	11:56:20s 0:03:40 -
-Rule	sol88	1988	only	-	May	12	11:56:20s 0:03:40 -
-Rule	sol88	1988	only	-	May	13	11:56:20s 0:03:40 -
-Rule	sol88	1988	only	-	May	14	11:56:20s 0:03:40 -
-Rule	sol88	1988	only	-	May	15	11:56:20s 0:03:40 -
-Rule	sol88	1988	only	-	May	16	11:56:20s 0:03:40 -
-Rule	sol88	1988	only	-	May	17	11:56:20s 0:03:40 -
-Rule	sol88	1988	only	-	May	18	11:56:25s 0:03:35 -
-Rule	sol88	1988	only	-	May	19	11:56:25s 0:03:35 -
-Rule	sol88	1988	only	-	May	20	11:56:30s 0:03:30 -
-Rule	sol88	1988	only	-	May	21	11:56:35s 0:03:25 -
-Rule	sol88	1988	only	-	May	22	11:56:40s 0:03:20 -
-Rule	sol88	1988	only	-	May	23	11:56:45s 0:03:15 -
-Rule	sol88	1988	only	-	May	24	11:56:50s 0:03:10 -
-Rule	sol88	1988	only	-	May	25	11:56:55s 0:03:05 -
-Rule	sol88	1988	only	-	May	26	11:57:00s 0:03:00 -
-Rule	sol88	1988	only	-	May	27	11:57:05s 0:02:55 -
-Rule	sol88	1988	only	-	May	28	11:57:15s 0:02:45 -
-Rule	sol88	1988	only	-	May	29	11:57:20s 0:02:40 -
-Rule	sol88	1988	only	-	May	30	11:57:30s 0:02:30 -
-Rule	sol88	1988	only	-	May	31	11:57:40s 0:02:20 -
-Rule	sol88	1988	only	-	Jun	1	11:57:50s 0:02:10 -
-Rule	sol88	1988	only	-	Jun	2	11:57:55s 0:02:05 -
-Rule	sol88	1988	only	-	Jun	3	11:58:05s 0:01:55 -
-Rule	sol88	1988	only	-	Jun	4	11:58:15s 0:01:45 -
-Rule	sol88	1988	only	-	Jun	5	11:58:30s 0:01:30 -
-Rule	sol88	1988	only	-	Jun	6	11:58:40s 0:01:20 -
-Rule	sol88	1988	only	-	Jun	7	11:58:50s 0:01:10 -
-Rule	sol88	1988	only	-	Jun	8	11:59:00s 0:01:00 -
-Rule	sol88	1988	only	-	Jun	9	11:59:15s 0:00:45 -
-Rule	sol88	1988	only	-	Jun	10	11:59:25s 0:00:35 -
-Rule	sol88	1988	only	-	Jun	11	11:59:35s 0:00:25 -
-Rule	sol88	1988	only	-	Jun	12	11:59:50s 0:00:10 -
-Rule	sol88	1988	only	-	Jun	13	12:00:00s 0:00:00 -
-Rule	sol88	1988	only	-	Jun	14	12:00:15s -0:00:15 -
-Rule	sol88	1988	only	-	Jun	15	12:00:25s -0:00:25 -
-Rule	sol88	1988	only	-	Jun	16	12:00:40s -0:00:40 -
-Rule	sol88	1988	only	-	Jun	17	12:00:55s -0:00:55 -
-Rule	sol88	1988	only	-	Jun	18	12:01:05s -0:01:05 -
-Rule	sol88	1988	only	-	Jun	19	12:01:20s -0:01:20 -
-Rule	sol88	1988	only	-	Jun	20	12:01:30s -0:01:30 -
-Rule	sol88	1988	only	-	Jun	21	12:01:45s -0:01:45 -
-Rule	sol88	1988	only	-	Jun	22	12:02:00s -0:02:00 -
-Rule	sol88	1988	only	-	Jun	23	12:02:10s -0:02:10 -
-Rule	sol88	1988	only	-	Jun	24	12:02:25s -0:02:25 -
-Rule	sol88	1988	only	-	Jun	25	12:02:35s -0:02:35 -
-Rule	sol88	1988	only	-	Jun	26	12:02:50s -0:02:50 -
-Rule	sol88	1988	only	-	Jun	27	12:03:00s -0:03:00 -
-Rule	sol88	1988	only	-	Jun	28	12:03:15s -0:03:15 -
-Rule	sol88	1988	only	-	Jun	29	12:03:25s -0:03:25 -
-Rule	sol88	1988	only	-	Jun	30	12:03:40s -0:03:40 -
-Rule	sol88	1988	only	-	Jul	1	12:03:50s -0:03:50 -
-Rule	sol88	1988	only	-	Jul	2	12:04:00s -0:04:00 -
-Rule	sol88	1988	only	-	Jul	3	12:04:10s -0:04:10 -
-Rule	sol88	1988	only	-	Jul	4	12:04:25s -0:04:25 -
-Rule	sol88	1988	only	-	Jul	5	12:04:35s -0:04:35 -
-Rule	sol88	1988	only	-	Jul	6	12:04:45s -0:04:45 -
-Rule	sol88	1988	only	-	Jul	7	12:04:55s -0:04:55 -
-Rule	sol88	1988	only	-	Jul	8	12:05:05s -0:05:05 -
-Rule	sol88	1988	only	-	Jul	9	12:05:10s -0:05:10 -
-Rule	sol88	1988	only	-	Jul	10	12:05:20s -0:05:20 -
-Rule	sol88	1988	only	-	Jul	11	12:05:30s -0:05:30 -
-Rule	sol88	1988	only	-	Jul	12	12:05:35s -0:05:35 -
-Rule	sol88	1988	only	-	Jul	13	12:05:45s -0:05:45 -
-Rule	sol88	1988	only	-	Jul	14	12:05:50s -0:05:50 -
-Rule	sol88	1988	only	-	Jul	15	12:05:55s -0:05:55 -
-Rule	sol88	1988	only	-	Jul	16	12:06:00s -0:06:00 -
-Rule	sol88	1988	only	-	Jul	17	12:06:05s -0:06:05 -
-Rule	sol88	1988	only	-	Jul	18	12:06:10s -0:06:10 -
-Rule	sol88	1988	only	-	Jul	19	12:06:15s -0:06:15 -
-Rule	sol88	1988	only	-	Jul	20	12:06:20s -0:06:20 -
-Rule	sol88	1988	only	-	Jul	21	12:06:25s -0:06:25 -
-Rule	sol88	1988	only	-	Jul	22	12:06:25s -0:06:25 -
-Rule	sol88	1988	only	-	Jul	23	12:06:25s -0:06:25 -
-Rule	sol88	1988	only	-	Jul	24	12:06:30s -0:06:30 -
-Rule	sol88	1988	only	-	Jul	25	12:06:30s -0:06:30 -
-Rule	sol88	1988	only	-	Jul	26	12:06:30s -0:06:30 -
-Rule	sol88	1988	only	-	Jul	27	12:06:30s -0:06:30 -
-Rule	sol88	1988	only	-	Jul	28	12:06:30s -0:06:30 -
-Rule	sol88	1988	only	-	Jul	29	12:06:25s -0:06:25 -
-Rule	sol88	1988	only	-	Jul	30	12:06:25s -0:06:25 -
-Rule	sol88	1988	only	-	Jul	31	12:06:20s -0:06:20 -
-Rule	sol88	1988	only	-	Aug	1	12:06:15s -0:06:15 -
-Rule	sol88	1988	only	-	Aug	2	12:06:15s -0:06:15 -
-Rule	sol88	1988	only	-	Aug	3	12:06:10s -0:06:10 -
-Rule	sol88	1988	only	-	Aug	4	12:06:05s -0:06:05 -
-Rule	sol88	1988	only	-	Aug	5	12:05:55s -0:05:55 -
-Rule	sol88	1988	only	-	Aug	6	12:05:50s -0:05:50 -
-Rule	sol88	1988	only	-	Aug	7	12:05:45s -0:05:45 -
-Rule	sol88	1988	only	-	Aug	8	12:05:35s -0:05:35 -
-Rule	sol88	1988	only	-	Aug	9	12:05:25s -0:05:25 -
-Rule	sol88	1988	only	-	Aug	10	12:05:20s -0:05:20 -
-Rule	sol88	1988	only	-	Aug	11	12:05:10s -0:05:10 -
-Rule	sol88	1988	only	-	Aug	12	12:05:00s -0:05:00 -
-Rule	sol88	1988	only	-	Aug	13	12:04:50s -0:04:50 -
-Rule	sol88	1988	only	-	Aug	14	12:04:35s -0:04:35 -
-Rule	sol88	1988	only	-	Aug	15	12:04:25s -0:04:25 -
-Rule	sol88	1988	only	-	Aug	16	12:04:15s -0:04:15 -
-Rule	sol88	1988	only	-	Aug	17	12:04:00s -0:04:00 -
-Rule	sol88	1988	only	-	Aug	18	12:03:50s -0:03:50 -
-Rule	sol88	1988	only	-	Aug	19	12:03:35s -0:03:35 -
-Rule	sol88	1988	only	-	Aug	20	12:03:20s -0:03:20 -
-Rule	sol88	1988	only	-	Aug	21	12:03:05s -0:03:05 -
-Rule	sol88	1988	only	-	Aug	22	12:02:50s -0:02:50 -
-Rule	sol88	1988	only	-	Aug	23	12:02:35s -0:02:35 -
-Rule	sol88	1988	only	-	Aug	24	12:02:20s -0:02:20 -
-Rule	sol88	1988	only	-	Aug	25	12:02:00s -0:02:00 -
-Rule	sol88	1988	only	-	Aug	26	12:01:45s -0:01:45 -
-Rule	sol88	1988	only	-	Aug	27	12:01:30s -0:01:30 -
-Rule	sol88	1988	only	-	Aug	28	12:01:10s -0:01:10 -
-Rule	sol88	1988	only	-	Aug	29	12:00:50s -0:00:50 -
-Rule	sol88	1988	only	-	Aug	30	12:00:35s -0:00:35 -
-Rule	sol88	1988	only	-	Aug	31	12:00:15s -0:00:15 -
-Rule	sol88	1988	only	-	Sep	1	11:59:55s 0:00:05 -
-Rule	sol88	1988	only	-	Sep	2	11:59:35s 0:00:25 -
-Rule	sol88	1988	only	-	Sep	3	11:59:20s 0:00:40 -
-Rule	sol88	1988	only	-	Sep	4	11:59:00s 0:01:00 -
-Rule	sol88	1988	only	-	Sep	5	11:58:40s 0:01:20 -
-Rule	sol88	1988	only	-	Sep	6	11:58:20s 0:01:40 -
-Rule	sol88	1988	only	-	Sep	7	11:58:00s 0:02:00 -
-Rule	sol88	1988	only	-	Sep	8	11:57:35s 0:02:25 -
-Rule	sol88	1988	only	-	Sep	9	11:57:15s 0:02:45 -
-Rule	sol88	1988	only	-	Sep	10	11:56:55s 0:03:05 -
-Rule	sol88	1988	only	-	Sep	11	11:56:35s 0:03:25 -
-Rule	sol88	1988	only	-	Sep	12	11:56:15s 0:03:45 -
-Rule	sol88	1988	only	-	Sep	13	11:55:50s 0:04:10 -
-Rule	sol88	1988	only	-	Sep	14	11:55:30s 0:04:30 -
-Rule	sol88	1988	only	-	Sep	15	11:55:10s 0:04:50 -
-Rule	sol88	1988	only	-	Sep	16	11:54:50s 0:05:10 -
-Rule	sol88	1988	only	-	Sep	17	11:54:25s 0:05:35 -
-Rule	sol88	1988	only	-	Sep	18	11:54:05s 0:05:55 -
-Rule	sol88	1988	only	-	Sep	19	11:53:45s 0:06:15 -
-Rule	sol88	1988	only	-	Sep	20	11:53:25s 0:06:35 -
-Rule	sol88	1988	only	-	Sep	21	11:53:00s 0:07:00 -
-Rule	sol88	1988	only	-	Sep	22	11:52:40s 0:07:20 -
-Rule	sol88	1988	only	-	Sep	23	11:52:20s 0:07:40 -
-Rule	sol88	1988	only	-	Sep	24	11:52:00s 0:08:00 -
-Rule	sol88	1988	only	-	Sep	25	11:51:40s 0:08:20 -
-Rule	sol88	1988	only	-	Sep	26	11:51:15s 0:08:45 -
-Rule	sol88	1988	only	-	Sep	27	11:50:55s 0:09:05 -
-Rule	sol88	1988	only	-	Sep	28	11:50:35s 0:09:25 -
-Rule	sol88	1988	only	-	Sep	29	11:50:15s 0:09:45 -
-Rule	sol88	1988	only	-	Sep	30	11:49:55s 0:10:05 -
-Rule	sol88	1988	only	-	Oct	1	11:49:35s 0:10:25 -
-Rule	sol88	1988	only	-	Oct	2	11:49:20s 0:10:40 -
-Rule	sol88	1988	only	-	Oct	3	11:49:00s 0:11:00 -
-Rule	sol88	1988	only	-	Oct	4	11:48:40s 0:11:20 -
-Rule	sol88	1988	only	-	Oct	5	11:48:25s 0:11:35 -
-Rule	sol88	1988	only	-	Oct	6	11:48:05s 0:11:55 -
-Rule	sol88	1988	only	-	Oct	7	11:47:50s 0:12:10 -
-Rule	sol88	1988	only	-	Oct	8	11:47:30s 0:12:30 -
-Rule	sol88	1988	only	-	Oct	9	11:47:15s 0:12:45 -
-Rule	sol88	1988	only	-	Oct	10	11:47:00s 0:13:00 -
-Rule	sol88	1988	only	-	Oct	11	11:46:45s 0:13:15 -
-Rule	sol88	1988	only	-	Oct	12	11:46:30s 0:13:30 -
-Rule	sol88	1988	only	-	Oct	13	11:46:15s 0:13:45 -
-Rule	sol88	1988	only	-	Oct	14	11:46:00s 0:14:00 -
-Rule	sol88	1988	only	-	Oct	15	11:45:45s 0:14:15 -
-Rule	sol88	1988	only	-	Oct	16	11:45:35s 0:14:25 -
-Rule	sol88	1988	only	-	Oct	17	11:45:20s 0:14:40 -
-Rule	sol88	1988	only	-	Oct	18	11:45:10s 0:14:50 -
-Rule	sol88	1988	only	-	Oct	19	11:45:00s 0:15:00 -
-Rule	sol88	1988	only	-	Oct	20	11:44:45s 0:15:15 -
-Rule	sol88	1988	only	-	Oct	21	11:44:40s 0:15:20 -
-Rule	sol88	1988	only	-	Oct	22	11:44:30s 0:15:30 -
-Rule	sol88	1988	only	-	Oct	23	11:44:20s 0:15:40 -
-Rule	sol88	1988	only	-	Oct	24	11:44:10s 0:15:50 -
-Rule	sol88	1988	only	-	Oct	25	11:44:05s 0:15:55 -
-Rule	sol88	1988	only	-	Oct	26	11:44:00s 0:16:00 -
-Rule	sol88	1988	only	-	Oct	27	11:43:55s 0:16:05 -
-Rule	sol88	1988	only	-	Oct	28	11:43:50s 0:16:10 -
-Rule	sol88	1988	only	-	Oct	29	11:43:45s 0:16:15 -
-Rule	sol88	1988	only	-	Oct	30	11:43:40s 0:16:20 -
-Rule	sol88	1988	only	-	Oct	31	11:43:40s 0:16:20 -
-Rule	sol88	1988	only	-	Nov	1	11:43:35s 0:16:25 -
-Rule	sol88	1988	only	-	Nov	2	11:43:35s 0:16:25 -
-Rule	sol88	1988	only	-	Nov	3	11:43:35s 0:16:25 -
-Rule	sol88	1988	only	-	Nov	4	11:43:35s 0:16:25 -
-Rule	sol88	1988	only	-	Nov	5	11:43:40s 0:16:20 -
-Rule	sol88	1988	only	-	Nov	6	11:43:40s 0:16:20 -
-Rule	sol88	1988	only	-	Nov	7	11:43:45s 0:16:15 -
-Rule	sol88	1988	only	-	Nov	8	11:43:45s 0:16:15 -
-Rule	sol88	1988	only	-	Nov	9	11:43:50s 0:16:10 -
-Rule	sol88	1988	only	-	Nov	10	11:44:00s 0:16:00 -
-Rule	sol88	1988	only	-	Nov	11	11:44:05s 0:15:55 -
-Rule	sol88	1988	only	-	Nov	12	11:44:10s 0:15:50 -
-Rule	sol88	1988	only	-	Nov	13	11:44:20s 0:15:40 -
-Rule	sol88	1988	only	-	Nov	14	11:44:30s 0:15:30 -
-Rule	sol88	1988	only	-	Nov	15	11:44:40s 0:15:20 -
-Rule	sol88	1988	only	-	Nov	16	11:44:50s 0:15:10 -
-Rule	sol88	1988	only	-	Nov	17	11:45:00s 0:15:00 -
-Rule	sol88	1988	only	-	Nov	18	11:45:15s 0:14:45 -
-Rule	sol88	1988	only	-	Nov	19	11:45:25s 0:14:35 -
-Rule	sol88	1988	only	-	Nov	20	11:45:40s 0:14:20 -
-Rule	sol88	1988	only	-	Nov	21	11:45:55s 0:14:05 -
-Rule	sol88	1988	only	-	Nov	22	11:46:10s 0:13:50 -
-Rule	sol88	1988	only	-	Nov	23	11:46:30s 0:13:30 -
-Rule	sol88	1988	only	-	Nov	24	11:46:45s 0:13:15 -
-Rule	sol88	1988	only	-	Nov	25	11:47:05s 0:12:55 -
-Rule	sol88	1988	only	-	Nov	26	11:47:20s 0:12:40 -
-Rule	sol88	1988	only	-	Nov	27	11:47:40s 0:12:20 -
-Rule	sol88	1988	only	-	Nov	28	11:48:00s 0:12:00 -
-Rule	sol88	1988	only	-	Nov	29	11:48:25s 0:11:35 -
-Rule	sol88	1988	only	-	Nov	30	11:48:45s 0:11:15 -
-Rule	sol88	1988	only	-	Dec	1	11:49:05s 0:10:55 -
-Rule	sol88	1988	only	-	Dec	2	11:49:30s 0:10:30 -
-Rule	sol88	1988	only	-	Dec	3	11:49:55s 0:10:05 -
-Rule	sol88	1988	only	-	Dec	4	11:50:15s 0:09:45 -
-Rule	sol88	1988	only	-	Dec	5	11:50:40s 0:09:20 -
-Rule	sol88	1988	only	-	Dec	6	11:51:05s 0:08:55 -
-Rule	sol88	1988	only	-	Dec	7	11:51:35s 0:08:25 -
-Rule	sol88	1988	only	-	Dec	8	11:52:00s 0:08:00 -
-Rule	sol88	1988	only	-	Dec	9	11:52:25s 0:07:35 -
-Rule	sol88	1988	only	-	Dec	10	11:52:55s 0:07:05 -
-Rule	sol88	1988	only	-	Dec	11	11:53:20s 0:06:40 -
-Rule	sol88	1988	only	-	Dec	12	11:53:50s 0:06:10 -
-Rule	sol88	1988	only	-	Dec	13	11:54:15s 0:05:45 -
-Rule	sol88	1988	only	-	Dec	14	11:54:45s 0:05:15 -
-Rule	sol88	1988	only	-	Dec	15	11:55:15s 0:04:45 -
-Rule	sol88	1988	only	-	Dec	16	11:55:45s 0:04:15 -
-Rule	sol88	1988	only	-	Dec	17	11:56:15s 0:03:45 -
-Rule	sol88	1988	only	-	Dec	18	11:56:40s 0:03:20 -
-Rule	sol88	1988	only	-	Dec	19	11:57:10s 0:02:50 -
-Rule	sol88	1988	only	-	Dec	20	11:57:40s 0:02:20 -
-Rule	sol88	1988	only	-	Dec	21	11:58:10s 0:01:50 -
-Rule	sol88	1988	only	-	Dec	22	11:58:40s 0:01:20 -
-Rule	sol88	1988	only	-	Dec	23	11:59:10s 0:00:50 -
-Rule	sol88	1988	only	-	Dec	24	11:59:40s 0:00:20 -
-Rule	sol88	1988	only	-	Dec	25	12:00:10s -0:00:10 -
-Rule	sol88	1988	only	-	Dec	26	12:00:40s -0:00:40 -
-Rule	sol88	1988	only	-	Dec	27	12:01:10s -0:01:10 -
-Rule	sol88	1988	only	-	Dec	28	12:01:40s -0:01:40 -
-Rule	sol88	1988	only	-	Dec	29	12:02:10s -0:02:10 -
-Rule	sol88	1988	only	-	Dec	30	12:02:35s -0:02:35 -
-Rule	sol88	1988	only	-	Dec	31	12:03:05s -0:03:05 -
-
-# Riyadh is at about 46 degrees 46 minutes East:  3 hrs, 7 mins, 4 secs
-# Before and after 1988, we'll operate on local mean solar time.
-
-# Zone	NAME		GMTOFF	RULES/SAVE	FORMAT	[UNTIL]
-Zone	Asia/Riyadh88	3:07:04	-		zzz	1988
-			3:07:04	sol88		zzz	1989
-			3:07:04	-		zzz
-# For backward compatibility...
-Link	Asia/Riyadh88	Mideast/Riyadh88
diff --git a/libkcal/libical/tzdata/solar89 b/libkcal/libical/tzdata/solar89
deleted file mode 100644
index 8c485314..00000000
--- a/libkcal/libical/tzdata/solar89
+++ /dev/null
@@ -1,393 +0,0 @@
-# @(#)solar89	8.1
-
-# Apparent noon times below are for Riyadh; they're a bit off for other places.
-# Times were computed using a formula provided by the U. S. Naval Observatory:
-#	eqt = -105.8 * sin(l) + 596.2 * sin(2 * l) + 4.4 * sin(3 * l)
-#		-12.7 * sin(4 * l) - 429.0 * cos(l) - 2.1 * cos (2 * l)
-#		+ 19.3 * cos(3 * l);
-# where l is the "mean longitude of the Sun" given by
-#	l = 279.642 degrees + 0.985647 * d
-# and d is the interval in days from January 0, 0 hours Universal Time
-# (equaling the day of the year plus the fraction of a day from zero hours).
-# The accuracy of the formula is plus or minus three seconds.
-#
-# Rounding to the nearest five seconds results in fewer than
-# 256 different "time types"--a limit that's faced because time types are
-# stored on disk as unsigned chars.
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	sol89	1989	only	-	Jan	1	12:03:35s -0:03:35 -
-Rule	sol89	1989	only	-	Jan	2	12:04:05s -0:04:05 -
-Rule	sol89	1989	only	-	Jan	3	12:04:30s -0:04:30 -
-Rule	sol89	1989	only	-	Jan	4	12:05:00s -0:05:00 -
-Rule	sol89	1989	only	-	Jan	5	12:05:25s -0:05:25 -
-Rule	sol89	1989	only	-	Jan	6	12:05:50s -0:05:50 -
-Rule	sol89	1989	only	-	Jan	7	12:06:15s -0:06:15 -
-Rule	sol89	1989	only	-	Jan	8	12:06:45s -0:06:45 -
-Rule	sol89	1989	only	-	Jan	9	12:07:10s -0:07:10 -
-Rule	sol89	1989	only	-	Jan	10	12:07:35s -0:07:35 -
-Rule	sol89	1989	only	-	Jan	11	12:07:55s -0:07:55 -
-Rule	sol89	1989	only	-	Jan	12	12:08:20s -0:08:20 -
-Rule	sol89	1989	only	-	Jan	13	12:08:45s -0:08:45 -
-Rule	sol89	1989	only	-	Jan	14	12:09:05s -0:09:05 -
-Rule	sol89	1989	only	-	Jan	15	12:09:25s -0:09:25 -
-Rule	sol89	1989	only	-	Jan	16	12:09:45s -0:09:45 -
-Rule	sol89	1989	only	-	Jan	17	12:10:05s -0:10:05 -
-Rule	sol89	1989	only	-	Jan	18	12:10:25s -0:10:25 -
-Rule	sol89	1989	only	-	Jan	19	12:10:45s -0:10:45 -
-Rule	sol89	1989	only	-	Jan	20	12:11:05s -0:11:05 -
-Rule	sol89	1989	only	-	Jan	21	12:11:20s -0:11:20 -
-Rule	sol89	1989	only	-	Jan	22	12:11:35s -0:11:35 -
-Rule	sol89	1989	only	-	Jan	23	12:11:55s -0:11:55 -
-Rule	sol89	1989	only	-	Jan	24	12:12:10s -0:12:10 -
-Rule	sol89	1989	only	-	Jan	25	12:12:20s -0:12:20 -
-Rule	sol89	1989	only	-	Jan	26	12:12:35s -0:12:35 -
-Rule	sol89	1989	only	-	Jan	27	12:12:50s -0:12:50 -
-Rule	sol89	1989	only	-	Jan	28	12:13:00s -0:13:00 -
-Rule	sol89	1989	only	-	Jan	29	12:13:10s -0:13:10 -
-Rule	sol89	1989	only	-	Jan	30	12:13:20s -0:13:20 -
-Rule	sol89	1989	only	-	Jan	31	12:13:30s -0:13:30 -
-Rule	sol89	1989	only	-	Feb	1	12:13:40s -0:13:40 -
-Rule	sol89	1989	only	-	Feb	2	12:13:45s -0:13:45 -
-Rule	sol89	1989	only	-	Feb	3	12:13:55s -0:13:55 -
-Rule	sol89	1989	only	-	Feb	4	12:14:00s -0:14:00 -
-Rule	sol89	1989	only	-	Feb	5	12:14:05s -0:14:05 -
-Rule	sol89	1989	only	-	Feb	6	12:14:10s -0:14:10 -
-Rule	sol89	1989	only	-	Feb	7	12:14:10s -0:14:10 -
-Rule	sol89	1989	only	-	Feb	8	12:14:15s -0:14:15 -
-Rule	sol89	1989	only	-	Feb	9	12:14:15s -0:14:15 -
-Rule	sol89	1989	only	-	Feb	10	12:14:20s -0:14:20 -
-Rule	sol89	1989	only	-	Feb	11	12:14:20s -0:14:20 -
-Rule	sol89	1989	only	-	Feb	12	12:14:20s -0:14:20 -
-Rule	sol89	1989	only	-	Feb	13	12:14:15s -0:14:15 -
-Rule	sol89	1989	only	-	Feb	14	12:14:15s -0:14:15 -
-Rule	sol89	1989	only	-	Feb	15	12:14:10s -0:14:10 -
-Rule	sol89	1989	only	-	Feb	16	12:14:10s -0:14:10 -
-Rule	sol89	1989	only	-	Feb	17	12:14:05s -0:14:05 -
-Rule	sol89	1989	only	-	Feb	18	12:14:00s -0:14:00 -
-Rule	sol89	1989	only	-	Feb	19	12:13:55s -0:13:55 -
-Rule	sol89	1989	only	-	Feb	20	12:13:50s -0:13:50 -
-Rule	sol89	1989	only	-	Feb	21	12:13:40s -0:13:40 -
-Rule	sol89	1989	only	-	Feb	22	12:13:35s -0:13:35 -
-Rule	sol89	1989	only	-	Feb	23	12:13:25s -0:13:25 -
-Rule	sol89	1989	only	-	Feb	24	12:13:15s -0:13:15 -
-Rule	sol89	1989	only	-	Feb	25	12:13:05s -0:13:05 -
-Rule	sol89	1989	only	-	Feb	26	12:12:55s -0:12:55 -
-Rule	sol89	1989	only	-	Feb	27	12:12:45s -0:12:45 -
-Rule	sol89	1989	only	-	Feb	28	12:12:35s -0:12:35 -
-Rule	sol89	1989	only	-	Mar	1	12:12:25s -0:12:25 -
-Rule	sol89	1989	only	-	Mar	2	12:12:10s -0:12:10 -
-Rule	sol89	1989	only	-	Mar	3	12:12:00s -0:12:00 -
-Rule	sol89	1989	only	-	Mar	4	12:11:45s -0:11:45 -
-Rule	sol89	1989	only	-	Mar	5	12:11:35s -0:11:35 -
-Rule	sol89	1989	only	-	Mar	6	12:11:20s -0:11:20 -
-Rule	sol89	1989	only	-	Mar	7	12:11:05s -0:11:05 -
-Rule	sol89	1989	only	-	Mar	8	12:10:50s -0:10:50 -
-Rule	sol89	1989	only	-	Mar	9	12:10:35s -0:10:35 -
-Rule	sol89	1989	only	-	Mar	10	12:10:20s -0:10:20 -
-Rule	sol89	1989	only	-	Mar	11	12:10:05s -0:10:05 -
-Rule	sol89	1989	only	-	Mar	12	12:09:50s -0:09:50 -
-Rule	sol89	1989	only	-	Mar	13	12:09:30s -0:09:30 -
-Rule	sol89	1989	only	-	Mar	14	12:09:15s -0:09:15 -
-Rule	sol89	1989	only	-	Mar	15	12:09:00s -0:09:00 -
-Rule	sol89	1989	only	-	Mar	16	12:08:40s -0:08:40 -
-Rule	sol89	1989	only	-	Mar	17	12:08:25s -0:08:25 -
-Rule	sol89	1989	only	-	Mar	18	12:08:05s -0:08:05 -
-Rule	sol89	1989	only	-	Mar	19	12:07:50s -0:07:50 -
-Rule	sol89	1989	only	-	Mar	20	12:07:30s -0:07:30 -
-Rule	sol89	1989	only	-	Mar	21	12:07:15s -0:07:15 -
-Rule	sol89	1989	only	-	Mar	22	12:06:55s -0:06:55 -
-Rule	sol89	1989	only	-	Mar	23	12:06:35s -0:06:35 -
-Rule	sol89	1989	only	-	Mar	24	12:06:20s -0:06:20 -
-Rule	sol89	1989	only	-	Mar	25	12:06:00s -0:06:00 -
-Rule	sol89	1989	only	-	Mar	26	12:05:40s -0:05:40 -
-Rule	sol89	1989	only	-	Mar	27	12:05:25s -0:05:25 -
-Rule	sol89	1989	only	-	Mar	28	12:05:05s -0:05:05 -
-Rule	sol89	1989	only	-	Mar	29	12:04:50s -0:04:50 -
-Rule	sol89	1989	only	-	Mar	30	12:04:30s -0:04:30 -
-Rule	sol89	1989	only	-	Mar	31	12:04:10s -0:04:10 -
-Rule	sol89	1989	only	-	Apr	1	12:03:55s -0:03:55 -
-Rule	sol89	1989	only	-	Apr	2	12:03:35s -0:03:35 -
-Rule	sol89	1989	only	-	Apr	3	12:03:20s -0:03:20 -
-Rule	sol89	1989	only	-	Apr	4	12:03:00s -0:03:00 -
-Rule	sol89	1989	only	-	Apr	5	12:02:45s -0:02:45 -
-Rule	sol89	1989	only	-	Apr	6	12:02:25s -0:02:25 -
-Rule	sol89	1989	only	-	Apr	7	12:02:10s -0:02:10 -
-Rule	sol89	1989	only	-	Apr	8	12:01:50s -0:01:50 -
-Rule	sol89	1989	only	-	Apr	9	12:01:35s -0:01:35 -
-Rule	sol89	1989	only	-	Apr	10	12:01:20s -0:01:20 -
-Rule	sol89	1989	only	-	Apr	11	12:01:05s -0:01:05 -
-Rule	sol89	1989	only	-	Apr	12	12:00:50s -0:00:50 -
-Rule	sol89	1989	only	-	Apr	13	12:00:35s -0:00:35 -
-Rule	sol89	1989	only	-	Apr	14	12:00:20s -0:00:20 -
-Rule	sol89	1989	only	-	Apr	15	12:00:05s -0:00:05 -
-Rule	sol89	1989	only	-	Apr	16	11:59:50s 0:00:10 -
-Rule	sol89	1989	only	-	Apr	17	11:59:35s 0:00:25 -
-Rule	sol89	1989	only	-	Apr	18	11:59:20s 0:00:40 -
-Rule	sol89	1989	only	-	Apr	19	11:59:10s 0:00:50 -
-Rule	sol89	1989	only	-	Apr	20	11:58:55s 0:01:05 -
-Rule	sol89	1989	only	-	Apr	21	11:58:45s 0:01:15 -
-Rule	sol89	1989	only	-	Apr	22	11:58:30s 0:01:30 -
-Rule	sol89	1989	only	-	Apr	23	11:58:20s 0:01:40 -
-Rule	sol89	1989	only	-	Apr	24	11:58:10s 0:01:50 -
-Rule	sol89	1989	only	-	Apr	25	11:58:00s 0:02:00 -
-Rule	sol89	1989	only	-	Apr	26	11:57:50s 0:02:10 -
-Rule	sol89	1989	only	-	Apr	27	11:57:40s 0:02:20 -
-Rule	sol89	1989	only	-	Apr	28	11:57:30s 0:02:30 -
-Rule	sol89	1989	only	-	Apr	29	11:57:20s 0:02:40 -
-Rule	sol89	1989	only	-	Apr	30	11:57:15s 0:02:45 -
-Rule	sol89	1989	only	-	May	1	11:57:05s 0:02:55 -
-Rule	sol89	1989	only	-	May	2	11:57:00s 0:03:00 -
-Rule	sol89	1989	only	-	May	3	11:56:50s 0:03:10 -
-Rule	sol89	1989	only	-	May	4	11:56:45s 0:03:15 -
-Rule	sol89	1989	only	-	May	5	11:56:40s 0:03:20 -
-Rule	sol89	1989	only	-	May	6	11:56:35s 0:03:25 -
-Rule	sol89	1989	only	-	May	7	11:56:30s 0:03:30 -
-Rule	sol89	1989	only	-	May	8	11:56:30s 0:03:30 -
-Rule	sol89	1989	only	-	May	9	11:56:25s 0:03:35 -
-Rule	sol89	1989	only	-	May	10	11:56:25s 0:03:35 -
-Rule	sol89	1989	only	-	May	11	11:56:20s 0:03:40 -
-Rule	sol89	1989	only	-	May	12	11:56:20s 0:03:40 -
-Rule	sol89	1989	only	-	May	13	11:56:20s 0:03:40 -
-Rule	sol89	1989	only	-	May	14	11:56:20s 0:03:40 -
-Rule	sol89	1989	only	-	May	15	11:56:20s 0:03:40 -
-Rule	sol89	1989	only	-	May	16	11:56:20s 0:03:40 -
-Rule	sol89	1989	only	-	May	17	11:56:20s 0:03:40 -
-Rule	sol89	1989	only	-	May	18	11:56:25s 0:03:35 -
-Rule	sol89	1989	only	-	May	19	11:56:25s 0:03:35 -
-Rule	sol89	1989	only	-	May	20	11:56:30s 0:03:30 -
-Rule	sol89	1989	only	-	May	21	11:56:35s 0:03:25 -
-Rule	sol89	1989	only	-	May	22	11:56:35s 0:03:25 -
-Rule	sol89	1989	only	-	May	23	11:56:40s 0:03:20 -
-Rule	sol89	1989	only	-	May	24	11:56:45s 0:03:15 -
-Rule	sol89	1989	only	-	May	25	11:56:55s 0:03:05 -
-Rule	sol89	1989	only	-	May	26	11:57:00s 0:03:00 -
-Rule	sol89	1989	only	-	May	27	11:57:05s 0:02:55 -
-Rule	sol89	1989	only	-	May	28	11:57:15s 0:02:45 -
-Rule	sol89	1989	only	-	May	29	11:57:20s 0:02:40 -
-Rule	sol89	1989	only	-	May	30	11:57:30s 0:02:30 -
-Rule	sol89	1989	only	-	May	31	11:57:35s 0:02:25 -
-Rule	sol89	1989	only	-	Jun	1	11:57:45s 0:02:15 -
-Rule	sol89	1989	only	-	Jun	2	11:57:55s 0:02:05 -
-Rule	sol89	1989	only	-	Jun	3	11:58:05s 0:01:55 -
-Rule	sol89	1989	only	-	Jun	4	11:58:15s 0:01:45 -
-Rule	sol89	1989	only	-	Jun	5	11:58:25s 0:01:35 -
-Rule	sol89	1989	only	-	Jun	6	11:58:35s 0:01:25 -
-Rule	sol89	1989	only	-	Jun	7	11:58:45s 0:01:15 -
-Rule	sol89	1989	only	-	Jun	8	11:59:00s 0:01:00 -
-Rule	sol89	1989	only	-	Jun	9	11:59:10s 0:00:50 -
-Rule	sol89	1989	only	-	Jun	10	11:59:20s 0:00:40 -
-Rule	sol89	1989	only	-	Jun	11	11:59:35s 0:00:25 -
-Rule	sol89	1989	only	-	Jun	12	11:59:45s 0:00:15 -
-Rule	sol89	1989	only	-	Jun	13	12:00:00s 0:00:00 -
-Rule	sol89	1989	only	-	Jun	14	12:00:10s -0:00:10 -
-Rule	sol89	1989	only	-	Jun	15	12:00:25s -0:00:25 -
-Rule	sol89	1989	only	-	Jun	16	12:00:35s -0:00:35 -
-Rule	sol89	1989	only	-	Jun	17	12:00:50s -0:00:50 -
-Rule	sol89	1989	only	-	Jun	18	12:01:05s -0:01:05 -
-Rule	sol89	1989	only	-	Jun	19	12:01:15s -0:01:15 -
-Rule	sol89	1989	only	-	Jun	20	12:01:30s -0:01:30 -
-Rule	sol89	1989	only	-	Jun	21	12:01:40s -0:01:40 -
-Rule	sol89	1989	only	-	Jun	22	12:01:55s -0:01:55 -
-Rule	sol89	1989	only	-	Jun	23	12:02:10s -0:02:10 -
-Rule	sol89	1989	only	-	Jun	24	12:02:20s -0:02:20 -
-Rule	sol89	1989	only	-	Jun	25	12:02:35s -0:02:35 -
-Rule	sol89	1989	only	-	Jun	26	12:02:45s -0:02:45 -
-Rule	sol89	1989	only	-	Jun	27	12:03:00s -0:03:00 -
-Rule	sol89	1989	only	-	Jun	28	12:03:10s -0:03:10 -
-Rule	sol89	1989	only	-	Jun	29	12:03:25s -0:03:25 -
-Rule	sol89	1989	only	-	Jun	30	12:03:35s -0:03:35 -
-Rule	sol89	1989	only	-	Jul	1	12:03:45s -0:03:45 -
-Rule	sol89	1989	only	-	Jul	2	12:04:00s -0:04:00 -
-Rule	sol89	1989	only	-	Jul	3	12:04:10s -0:04:10 -
-Rule	sol89	1989	only	-	Jul	4	12:04:20s -0:04:20 -
-Rule	sol89	1989	only	-	Jul	5	12:04:30s -0:04:30 -
-Rule	sol89	1989	only	-	Jul	6	12:04:40s -0:04:40 -
-Rule	sol89	1989	only	-	Jul	7	12:04:50s -0:04:50 -
-Rule	sol89	1989	only	-	Jul	8	12:05:00s -0:05:00 -
-Rule	sol89	1989	only	-	Jul	9	12:05:10s -0:05:10 -
-Rule	sol89	1989	only	-	Jul	10	12:05:20s -0:05:20 -
-Rule	sol89	1989	only	-	Jul	11	12:05:25s -0:05:25 -
-Rule	sol89	1989	only	-	Jul	12	12:05:35s -0:05:35 -
-Rule	sol89	1989	only	-	Jul	13	12:05:40s -0:05:40 -
-Rule	sol89	1989	only	-	Jul	14	12:05:50s -0:05:50 -
-Rule	sol89	1989	only	-	Jul	15	12:05:55s -0:05:55 -
-Rule	sol89	1989	only	-	Jul	16	12:06:00s -0:06:00 -
-Rule	sol89	1989	only	-	Jul	17	12:06:05s -0:06:05 -
-Rule	sol89	1989	only	-	Jul	18	12:06:10s -0:06:10 -
-Rule	sol89	1989	only	-	Jul	19	12:06:15s -0:06:15 -
-Rule	sol89	1989	only	-	Jul	20	12:06:20s -0:06:20 -
-Rule	sol89	1989	only	-	Jul	21	12:06:20s -0:06:20 -
-Rule	sol89	1989	only	-	Jul	22	12:06:25s -0:06:25 -
-Rule	sol89	1989	only	-	Jul	23	12:06:25s -0:06:25 -
-Rule	sol89	1989	only	-	Jul	24	12:06:30s -0:06:30 -
-Rule	sol89	1989	only	-	Jul	25	12:06:30s -0:06:30 -
-Rule	sol89	1989	only	-	Jul	26	12:06:30s -0:06:30 -
-Rule	sol89	1989	only	-	Jul	27	12:06:30s -0:06:30 -
-Rule	sol89	1989	only	-	Jul	28	12:06:30s -0:06:30 -
-Rule	sol89	1989	only	-	Jul	29	12:06:25s -0:06:25 -
-Rule	sol89	1989	only	-	Jul	30	12:06:25s -0:06:25 -
-Rule	sol89	1989	only	-	Jul	31	12:06:20s -0:06:20 -
-Rule	sol89	1989	only	-	Aug	1	12:06:20s -0:06:20 -
-Rule	sol89	1989	only	-	Aug	2	12:06:15s -0:06:15 -
-Rule	sol89	1989	only	-	Aug	3	12:06:10s -0:06:10 -
-Rule	sol89	1989	only	-	Aug	4	12:06:05s -0:06:05 -
-Rule	sol89	1989	only	-	Aug	5	12:06:00s -0:06:00 -
-Rule	sol89	1989	only	-	Aug	6	12:05:50s -0:05:50 -
-Rule	sol89	1989	only	-	Aug	7	12:05:45s -0:05:45 -
-Rule	sol89	1989	only	-	Aug	8	12:05:35s -0:05:35 -
-Rule	sol89	1989	only	-	Aug	9	12:05:30s -0:05:30 -
-Rule	sol89	1989	only	-	Aug	10	12:05:20s -0:05:20 -
-Rule	sol89	1989	only	-	Aug	11	12:05:10s -0:05:10 -
-Rule	sol89	1989	only	-	Aug	12	12:05:00s -0:05:00 -
-Rule	sol89	1989	only	-	Aug	13	12:04:50s -0:04:50 -
-Rule	sol89	1989	only	-	Aug	14	12:04:40s -0:04:40 -
-Rule	sol89	1989	only	-	Aug	15	12:04:30s -0:04:30 -
-Rule	sol89	1989	only	-	Aug	16	12:04:15s -0:04:15 -
-Rule	sol89	1989	only	-	Aug	17	12:04:05s -0:04:05 -
-Rule	sol89	1989	only	-	Aug	18	12:03:50s -0:03:50 -
-Rule	sol89	1989	only	-	Aug	19	12:03:35s -0:03:35 -
-Rule	sol89	1989	only	-	Aug	20	12:03:25s -0:03:25 -
-Rule	sol89	1989	only	-	Aug	21	12:03:10s -0:03:10 -
-Rule	sol89	1989	only	-	Aug	22	12:02:55s -0:02:55 -
-Rule	sol89	1989	only	-	Aug	23	12:02:40s -0:02:40 -
-Rule	sol89	1989	only	-	Aug	24	12:02:20s -0:02:20 -
-Rule	sol89	1989	only	-	Aug	25	12:02:05s -0:02:05 -
-Rule	sol89	1989	only	-	Aug	26	12:01:50s -0:01:50 -
-Rule	sol89	1989	only	-	Aug	27	12:01:30s -0:01:30 -
-Rule	sol89	1989	only	-	Aug	28	12:01:15s -0:01:15 -
-Rule	sol89	1989	only	-	Aug	29	12:00:55s -0:00:55 -
-Rule	sol89	1989	only	-	Aug	30	12:00:40s -0:00:40 -
-Rule	sol89	1989	only	-	Aug	31	12:00:20s -0:00:20 -
-Rule	sol89	1989	only	-	Sep	1	12:00:00s 0:00:00 -
-Rule	sol89	1989	only	-	Sep	2	11:59:45s 0:00:15 -
-Rule	sol89	1989	only	-	Sep	3	11:59:25s 0:00:35 -
-Rule	sol89	1989	only	-	Sep	4	11:59:05s 0:00:55 -
-Rule	sol89	1989	only	-	Sep	5	11:58:45s 0:01:15 -
-Rule	sol89	1989	only	-	Sep	6	11:58:25s 0:01:35 -
-Rule	sol89	1989	only	-	Sep	7	11:58:05s 0:01:55 -
-Rule	sol89	1989	only	-	Sep	8	11:57:45s 0:02:15 -
-Rule	sol89	1989	only	-	Sep	9	11:57:20s 0:02:40 -
-Rule	sol89	1989	only	-	Sep	10	11:57:00s 0:03:00 -
-Rule	sol89	1989	only	-	Sep	11	11:56:40s 0:03:20 -
-Rule	sol89	1989	only	-	Sep	12	11:56:20s 0:03:40 -
-Rule	sol89	1989	only	-	Sep	13	11:56:00s 0:04:00 -
-Rule	sol89	1989	only	-	Sep	14	11:55:35s 0:04:25 -
-Rule	sol89	1989	only	-	Sep	15	11:55:15s 0:04:45 -
-Rule	sol89	1989	only	-	Sep	16	11:54:55s 0:05:05 -
-Rule	sol89	1989	only	-	Sep	17	11:54:35s 0:05:25 -
-Rule	sol89	1989	only	-	Sep	18	11:54:10s 0:05:50 -
-Rule	sol89	1989	only	-	Sep	19	11:53:50s 0:06:10 -
-Rule	sol89	1989	only	-	Sep	20	11:53:30s 0:06:30 -
-Rule	sol89	1989	only	-	Sep	21	11:53:10s 0:06:50 -
-Rule	sol89	1989	only	-	Sep	22	11:52:45s 0:07:15 -
-Rule	sol89	1989	only	-	Sep	23	11:52:25s 0:07:35 -
-Rule	sol89	1989	only	-	Sep	24	11:52:05s 0:07:55 -
-Rule	sol89	1989	only	-	Sep	25	11:51:45s 0:08:15 -
-Rule	sol89	1989	only	-	Sep	26	11:51:25s 0:08:35 -
-Rule	sol89	1989	only	-	Sep	27	11:51:05s 0:08:55 -
-Rule	sol89	1989	only	-	Sep	28	11:50:40s 0:09:20 -
-Rule	sol89	1989	only	-	Sep	29	11:50:20s 0:09:40 -
-Rule	sol89	1989	only	-	Sep	30	11:50:00s 0:10:00 -
-Rule	sol89	1989	only	-	Oct	1	11:49:45s 0:10:15 -
-Rule	sol89	1989	only	-	Oct	2	11:49:25s 0:10:35 -
-Rule	sol89	1989	only	-	Oct	3	11:49:05s 0:10:55 -
-Rule	sol89	1989	only	-	Oct	4	11:48:45s 0:11:15 -
-Rule	sol89	1989	only	-	Oct	5	11:48:30s 0:11:30 -
-Rule	sol89	1989	only	-	Oct	6	11:48:10s 0:11:50 -
-Rule	sol89	1989	only	-	Oct	7	11:47:50s 0:12:10 -
-Rule	sol89	1989	only	-	Oct	8	11:47:35s 0:12:25 -
-Rule	sol89	1989	only	-	Oct	9	11:47:20s 0:12:40 -
-Rule	sol89	1989	only	-	Oct	10	11:47:00s 0:13:00 -
-Rule	sol89	1989	only	-	Oct	11	11:46:45s 0:13:15 -
-Rule	sol89	1989	only	-	Oct	12	11:46:30s 0:13:30 -
-Rule	sol89	1989	only	-	Oct	13	11:46:15s 0:13:45 -
-Rule	sol89	1989	only	-	Oct	14	11:46:00s 0:14:00 -
-Rule	sol89	1989	only	-	Oct	15	11:45:50s 0:14:10 -
-Rule	sol89	1989	only	-	Oct	16	11:45:35s 0:14:25 -
-Rule	sol89	1989	only	-	Oct	17	11:45:20s 0:14:40 -
-Rule	sol89	1989	only	-	Oct	18	11:45:10s 0:14:50 -
-Rule	sol89	1989	only	-	Oct	19	11:45:00s 0:15:00 -
-Rule	sol89	1989	only	-	Oct	20	11:44:50s 0:15:10 -
-Rule	sol89	1989	only	-	Oct	21	11:44:40s 0:15:20 -
-Rule	sol89	1989	only	-	Oct	22	11:44:30s 0:15:30 -
-Rule	sol89	1989	only	-	Oct	23	11:44:20s 0:15:40 -
-Rule	sol89	1989	only	-	Oct	24	11:44:10s 0:15:50 -
-Rule	sol89	1989	only	-	Oct	25	11:44:05s 0:15:55 -
-Rule	sol89	1989	only	-	Oct	26	11:44:00s 0:16:00 -
-Rule	sol89	1989	only	-	Oct	27	11:43:50s 0:16:10 -
-Rule	sol89	1989	only	-	Oct	28	11:43:45s 0:16:15 -
-Rule	sol89	1989	only	-	Oct	29	11:43:40s 0:16:20 -
-Rule	sol89	1989	only	-	Oct	30	11:43:40s 0:16:20 -
-Rule	sol89	1989	only	-	Oct	31	11:43:35s 0:16:25 -
-Rule	sol89	1989	only	-	Nov	1	11:43:35s 0:16:25 -
-Rule	sol89	1989	only	-	Nov	2	11:43:35s 0:16:25 -
-Rule	sol89	1989	only	-	Nov	3	11:43:30s 0:16:30 -
-Rule	sol89	1989	only	-	Nov	4	11:43:35s 0:16:25 -
-Rule	sol89	1989	only	-	Nov	5	11:43:35s 0:16:25 -
-Rule	sol89	1989	only	-	Nov	6	11:43:35s 0:16:25 -
-Rule	sol89	1989	only	-	Nov	7	11:43:40s 0:16:20 -
-Rule	sol89	1989	only	-	Nov	8	11:43:45s 0:16:15 -
-Rule	sol89	1989	only	-	Nov	9	11:43:50s 0:16:10 -
-Rule	sol89	1989	only	-	Nov	10	11:43:55s 0:16:05 -
-Rule	sol89	1989	only	-	Nov	11	11:44:00s 0:16:00 -
-Rule	sol89	1989	only	-	Nov	12	11:44:05s 0:15:55 -
-Rule	sol89	1989	only	-	Nov	13	11:44:15s 0:15:45 -
-Rule	sol89	1989	only	-	Nov	14	11:44:25s 0:15:35 -
-Rule	sol89	1989	only	-	Nov	15	11:44:35s 0:15:25 -
-Rule	sol89	1989	only	-	Nov	16	11:44:45s 0:15:15 -
-Rule	sol89	1989	only	-	Nov	17	11:44:55s 0:15:05 -
-Rule	sol89	1989	only	-	Nov	18	11:45:10s 0:14:50 -
-Rule	sol89	1989	only	-	Nov	19	11:45:20s 0:14:40 -
-Rule	sol89	1989	only	-	Nov	20	11:45:35s 0:14:25 -
-Rule	sol89	1989	only	-	Nov	21	11:45:50s 0:14:10 -
-Rule	sol89	1989	only	-	Nov	22	11:46:05s 0:13:55 -
-Rule	sol89	1989	only	-	Nov	23	11:46:25s 0:13:35 -
-Rule	sol89	1989	only	-	Nov	24	11:46:40s 0:13:20 -
-Rule	sol89	1989	only	-	Nov	25	11:47:00s 0:13:00 -
-Rule	sol89	1989	only	-	Nov	26	11:47:20s 0:12:40 -
-Rule	sol89	1989	only	-	Nov	27	11:47:35s 0:12:25 -
-Rule	sol89	1989	only	-	Nov	28	11:47:55s 0:12:05 -
-Rule	sol89	1989	only	-	Nov	29	11:48:20s 0:11:40 -
-Rule	sol89	1989	only	-	Nov	30	11:48:40s 0:11:20 -
-Rule	sol89	1989	only	-	Dec	1	11:49:00s 0:11:00 -
-Rule	sol89	1989	only	-	Dec	2	11:49:25s 0:10:35 -
-Rule	sol89	1989	only	-	Dec	3	11:49:50s 0:10:10 -
-Rule	sol89	1989	only	-	Dec	4	11:50:15s 0:09:45 -
-Rule	sol89	1989	only	-	Dec	5	11:50:35s 0:09:25 -
-Rule	sol89	1989	only	-	Dec	6	11:51:00s 0:09:00 -
-Rule	sol89	1989	only	-	Dec	7	11:51:30s 0:08:30 -
-Rule	sol89	1989	only	-	Dec	8	11:51:55s 0:08:05 -
-Rule	sol89	1989	only	-	Dec	9	11:52:20s 0:07:40 -
-Rule	sol89	1989	only	-	Dec	10	11:52:50s 0:07:10 -
-Rule	sol89	1989	only	-	Dec	11	11:53:15s 0:06:45 -
-Rule	sol89	1989	only	-	Dec	12	11:53:45s 0:06:15 -
-Rule	sol89	1989	only	-	Dec	13	11:54:10s 0:05:50 -
-Rule	sol89	1989	only	-	Dec	14	11:54:40s 0:05:20 -
-Rule	sol89	1989	only	-	Dec	15	11:55:10s 0:04:50 -
-Rule	sol89	1989	only	-	Dec	16	11:55:40s 0:04:20 -
-Rule	sol89	1989	only	-	Dec	17	11:56:05s 0:03:55 -
-Rule	sol89	1989	only	-	Dec	18	11:56:35s 0:03:25 -
-Rule	sol89	1989	only	-	Dec	19	11:57:05s 0:02:55 -
-Rule	sol89	1989	only	-	Dec	20	11:57:35s 0:02:25 -
-Rule	sol89	1989	only	-	Dec	21	11:58:05s 0:01:55 -
-Rule	sol89	1989	only	-	Dec	22	11:58:35s 0:01:25 -
-Rule	sol89	1989	only	-	Dec	23	11:59:05s 0:00:55 -
-Rule	sol89	1989	only	-	Dec	24	11:59:35s 0:00:25 -
-Rule	sol89	1989	only	-	Dec	25	12:00:05s -0:00:05 -
-Rule	sol89	1989	only	-	Dec	26	12:00:35s -0:00:35 -
-Rule	sol89	1989	only	-	Dec	27	12:01:05s -0:01:05 -
-Rule	sol89	1989	only	-	Dec	28	12:01:35s -0:01:35 -
-Rule	sol89	1989	only	-	Dec	29	12:02:00s -0:02:00 -
-Rule	sol89	1989	only	-	Dec	30	12:02:30s -0:02:30 -
-Rule	sol89	1989	only	-	Dec	31	12:03:00s -0:03:00 -
-
-# Riyadh is at about 46 degrees 46 minutes East:  3 hrs, 7 mins, 4 secs
-# Before and after 1989, we'll operate on local mean solar time.
-
-# Zone	NAME		GMTOFF	RULES/SAVE	FORMAT	[UNTIL]
-Zone	Asia/Riyadh89	3:07:04	-		zzz	1989
-			3:07:04	sol89		zzz	1990
-			3:07:04	-		zzz
-# For backward compatibility...
-Link	Asia/Riyadh89	Mideast/Riyadh89
diff --git a/libkcal/libical/tzdata/southamerica b/libkcal/libical/tzdata/southamerica
deleted file mode 100644
index 43f73d32..00000000
--- a/libkcal/libical/tzdata/southamerica
+++ /dev/null
@@ -1,1259 +0,0 @@
-# @(#)southamerica	8.19
-# <pre>
-
-# This data is by no means authoritative; if you think you know better,
-# go ahead and edit the file (and please send any changes to
-# tz@elsie.nci.nih.gov for general use in the future).
-
-# From Paul Eggert (2006-03-22):
-# A good source for time zone historical data outside the U.S. is
-# Thomas G. Shanks and Rique Pottenger, The International Atlas (6th edition),
-# San Diego: ACS Publications, Inc. (2003).
-#
-# Gwillim Law writes that a good source
-# for recent time zone data is the International Air Transport
-# Association's Standard Schedules Information Manual (IATA SSIM),
-# published semiannually.  Law sent in several helpful summaries
-# of the IATA's data after 1990.
-#
-# Except where otherwise noted, Shanks & Pottenger is the source for
-# entries through 1990, and IATA SSIM is the source for entries afterwards.
-#
-# Earlier editions of these tables used the North American style (e.g. ARST and
-# ARDT for Argentine Standard and Daylight Time), but the following quote
-# suggests that it's better to use European style (e.g. ART and ARST).
-#	I suggest the use of _Summer time_ instead of the more cumbersome
-#	_daylight-saving time_.  _Summer time_ seems to be in general use
-#	in Europe and South America.
-#	-- E O Cutler, _New York Times_ (1937-02-14), quoted in
-#	H L Mencken, _The American Language: Supplement I_ (1960), p 466
-#
-# Earlier editions of these tables also used the North American style
-# for time zones in Brazil, but this was incorrect, as Brazilians say
-# "summer time".  Reinaldo Goulart, a Sao Paulo businessman active in
-# the railroad sector, writes (1999-07-06):
-#	The subject of time zones is currently a matter of discussion/debate in
-#	Brazil.  Let's say that "the Brasilia time" is considered the
-#	"official time" because Brasilia is the capital city.
-#	The other three time zones are called "Brasilia time "minus one" or
-#	"plus one" or "plus two".  As far as I know there is no such
-#	name/designation as "Eastern Time" or "Central Time".
-# So I invented the following (English-language) abbreviations for now.
-# Corrections are welcome!
-#		std	dst
-#	-2:00	FNT	FNST	Fernando de Noronha
-#	-3:00	BRT	BRST	Brasilia
-#	-4:00	AMT	AMST	Amazon
-#	-5:00	ACT	ACST	Acre
-
-###############################################################################
-
-###############################################################################
-
-# Argentina
-
-# From Bob Devine (1988-01-28):
-# Argentina: first Sunday in October to first Sunday in April since 1976.
-# Double Summer time from 1969 to 1974.  Switches at midnight.
-
-# From U. S. Naval Observatory (1988-01-199):
-# ARGENTINA           3 H BEHIND   UTC
-
-# From Hernan G. Otero (1995-06-26):
-# I am sending modifications to the Argentine time zone table...
-# AR was chosen because they are the ISO letters that represent Argentina.
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Arg	1930	only	-	Dec	 1	0:00	1:00	S
-Rule	Arg	1931	only	-	Apr	 1	0:00	0	-
-Rule	Arg	1931	only	-	Oct	15	0:00	1:00	S
-Rule	Arg	1932	1940	-	Mar	 1	0:00	0	-
-Rule	Arg	1932	1939	-	Nov	 1	0:00	1:00	S
-Rule	Arg	1940	only	-	Jul	 1	0:00	1:00	S
-Rule	Arg	1941	only	-	Jun	15	0:00	0	-
-Rule	Arg	1941	only	-	Oct	15	0:00	1:00	S
-Rule	Arg	1943	only	-	Aug	 1	0:00	0	-
-Rule	Arg	1943	only	-	Oct	15	0:00	1:00	S
-Rule	Arg	1946	only	-	Mar	 1	0:00	0	-
-Rule	Arg	1946	only	-	Oct	 1	0:00	1:00	S
-Rule	Arg	1963	only	-	Oct	 1	0:00	0	-
-Rule	Arg	1963	only	-	Dec	15	0:00	1:00	S
-Rule	Arg	1964	1966	-	Mar	 1	0:00	0	-
-Rule	Arg	1964	1966	-	Oct	15	0:00	1:00	S
-Rule	Arg	1967	only	-	Apr	 2	0:00	0	-
-Rule	Arg	1967	1968	-	Oct	Sun>=1	0:00	1:00	S
-Rule	Arg	1968	1969	-	Apr	Sun>=1	0:00	0	-
-Rule	Arg	1974	only	-	Jan	23	0:00	1:00	S
-Rule	Arg	1974	only	-	May	 1	0:00	0	-
-Rule	Arg	1988	only	-	Dec	 1	0:00	1:00	S
-#
-# From Hernan G. Otero (1995-06-26):
-# These corrections were contributed by InterSoft Argentina S.A.,
-# obtaining the data from the:
-# Talleres de Hidrografia Naval Argentina
-# (Argentine Naval Hydrography Institute)
-Rule	Arg	1989	1993	-	Mar	Sun>=1	0:00	0	-
-Rule	Arg	1989	1992	-	Oct	Sun>=15	0:00	1:00	S
-#
-# From Hernan G. Otero (1995-06-26):
-# From this moment on, the law that mandated the daylight saving
-# time corrections was derogated and no more modifications
-# to the time zones (for daylight saving) are now made.
-#
-# From Rives McDow (2000-01-10):
-# On October 3, 1999, 0:00 local, Argentina implemented daylight savings time,
-# which did not result in the switch of a time zone, as they stayed 9 hours
-# from the International Date Line.
-Rule	Arg	1999	only	-	Oct	Sun>=1	0:00	1:00	S
-# From Paul Eggert (2007-12-28):
-# DST was set to expire on March 5, not March 3, but since it was converted
-# to standard time on March 3 it's more convenient for us to pretend that
-# it ended on March 3.
-Rule	Arg	2000	only	-	Mar	3	0:00	0	-
-#
-# From Peter Gradelski via Steffen Thorsen (2000-03-01):
-# We just checked with our Sao Paulo office and they say the government of
-# Argentina decided not to become one of the countries that go on or off DST.
-# So Buenos Aires should be -3 hours from GMT at all times.
-#
-# From Fabian L. Arce Jofre (2000-04-04):
-# The law that claimed DST for Argentina was derogated by President Fernando
-# de la Rua on March 2, 2000, because it would make people spend more energy
-# in the winter time, rather than less.  The change took effect on March 3.
-#
-# From Mariano Absatz (2001-06-06):
-# one of the major newspapers here in Argentina said that the 1999
-# Timezone Law (which never was effectively applied) will (would?) be
-# in effect.... The article is at
-# http://ar.clarin.com/diario/2001-06-06/e-01701.htm
-# ... The Law itself is "Ley No 25155", sanctioned on 1999-08-25, enacted
-# 1999-09-17, and published 1999-09-21.  The official publication is at:
-# http://www.boletin.jus.gov.ar/BON/Primera/1999/09-Septiembre/21/PDF/BO21-09-99LEG.PDF
-# Regretfully, you have to subscribe (and pay) for the on-line version....
-#
-# (2001-06-12):
-# the timezone for Argentina will not change next Sunday.
-# Apparently it will do so on Sunday 24th....
-# http://ar.clarin.com/diario/2001-06-12/s-03501.htm
-#
-# (2001-06-25):
-# Last Friday (yes, the last working day before the date of the change), the
-# Senate annulled the 1999 law that introduced the changes later postponed.
-# http://www.clarin.com.ar/diario/2001-06-22/s-03601.htm
-# It remains the vote of the Deputies..., but it will be the same....
-# This kind of things had always been done this way in Argentina.
-# We are still -03:00 all year round in all of the country.
-#
-# From Steffen Thorsen (2007-12-21):
-# A user (Leonardo Chaim) reported that Argentina will adopt DST....
-# all of the country (all Zone-entries) are affected.  News reports like
-# http://www.lanacion.com.ar/opinion/nota.asp?nota_id=973037 indicate
-# that Argentina will use DST next year as well, from October to
-# March, although exact rules are not given.
-#
-# From Jesper Norgaard Welen (2007-12-26)
-# The last hurdle of Argentina DST is over, the proposal was approved in
-# the lower chamber too (Deputados) with a vote 192 for and 2 against.
-# By the way thanks to Mariano Absatz and Daniel Mario Vega for the link to
-# the original scanned proposal, where the dates and the zero hours are
-# clear and unambiguous...This is the article about final approval:
-# <a href="http://www.lanacion.com.ar/politica/nota.asp?nota_id=973996">
-# http://www.lanacion.com.ar/politica/nota.asp?nota_id=973996
-# </a>
-#
-# From Paul Eggert (2007-12-22):
-# For dates after mid-2008, the following rules are my guesses and
-# are quite possibly wrong, but are more likely than no DST at all.
-Rule	Arg	2007	only	-	Dec	30	0:00	1:00	S
-Rule	Arg	2008	max	-	Mar	Sun>=15	0:00	0	-
-Rule	Arg	2008	max	-	Oct	Sun>=1	0:00	1:00	S
- 
-# From Mariano Absatz (2004-05-21):
-# Today it was officially published that the Province of Mendoza is changing
-# its timezone this winter... starting tomorrow night....
-# http://www.gobernac.mendoza.gov.ar/boletin/pdf/20040521-27158-normas.pdf
-# From Paul Eggert (2004-05-24):
-# It's Law No. 7,210.  This change is due to a public power emergency, so for
-# now we'll assume it's for this year only.
-#
-# From Paul Eggert (2006-03-22):
-# <a href="http://www.spicasc.net/horvera.html">
-# Hora de verano para la Republica Argentina (2003-06-08)
-# </a> says that standard time in Argentina from 1894-10-31
-# to 1920-05-01 was -4:16:48.25.  Go with this more-precise value
-# over Shanks & Pottenger.
-#
-# From Mariano Absatz (2004-06-05):
-# These media articles from a major newspaper mostly cover the current state:
-# http://www.lanacion.com.ar/04/05/27/de_604825.asp
-# http://www.lanacion.com.ar/04/05/28/de_605203.asp
-#
-# The following eight (8) provinces pulled clocks back to UTC-04:00 at
-# midnight Monday May 31st. (that is, the night between 05/31 and 06/01).
-# Apparently, all nine provinces would go back to UTC-03:00 at the same
-# time in October 17th.
-#
-# Catamarca, Chubut, La Rioja, San Juan, San Luis, Santa Cruz,
-# Tierra del Fuego, Tucuman.
-#
-# From Mariano Absatz (2004-06-14):
-# ... this weekend, the Province of Tucuman decided it'd go back to UTC-03:00
-# yesterday midnight (that is, at 24:00 Saturday 12th), since the people's
-# annoyance with the change is much higher than the power savings obtained....
-#
-# From Gwillim Law (2004-06-14):
-# http://www.lanacion.com.ar/04/06/10/de_609078.asp ...
-#     "The time change in Tierra del Fuego was a conflicted decision from
-#   the start.  The government had decreed that the measure would take
-#   effect on June 1, but a normative error forced the new time to begin
-#   three days earlier, from a Saturday to a Sunday....
-# Our understanding was that the change was originally scheduled to take place
-# on June 1 at 00:00 in Chubut, Santa Cruz, Tierra del Fuego (and some other
-# provinces).  Sunday was May 30, only two days earlier.  So the article
-# contains a contradiction.  I would give more credence to the Saturday/Sunday
-# date than the "three days earlier" phrase, and conclude that Tierra del
-# Fuego set its clocks back at 2004-05-30 00:00.
-#
-# From Steffen Thorsen (2004-10-05):
-# The previous law 7210 which changed the province of Mendoza's time zone
-# back in May have been modified slightly in a new law 7277, which set the
-# new end date to 2004-09-26 (original date was 2004-10-17).
-# http://www.gobernac.mendoza.gov.ar/boletin/pdf/20040924-27244-normas.pdf
-#
-# From Mariano Absatz (2004-10-05):
-# San Juan changed from UTC-03:00 to UTC-04:00 at midnight between
-# Sunday, May 30th and Monday, May 31st.  It changed back to UTC-03:00
-# at midnight between Saturday, July 24th and Sunday, July 25th....
-# http://www.sanjuan.gov.ar/prensa/archivo/000329.html
-# http://www.sanjuan.gov.ar/prensa/archivo/000426.html
-# http://www.sanjuan.gov.ar/prensa/archivo/000441.html
-
-# From Alex Krivenyshev (2008-01-17):
-# Here are articles that Argentina Province San Luis is planning to end DST
-# as earlier as upcoming Monday January 21, 2008 or February 2008:
-#
-# Provincia argentina retrasa reloj y marca diferencia con resto del pais
-# (Argentine Province delayed clock and mark difference with the rest of the
-# country)
-# <a href="http://cl.invertia.com/noticias/noticia.aspx?idNoticia=200801171849_EFE_ET4373&idtel">
-# http://cl.invertia.com/noticias/noticia.aspx?idNoticia=200801171849_EFE_ET4373&idtel
-# </a>
-#
-# Es inminente que en San Luis atrasen una hora los relojes
-# (It is imminent in San Luis clocks one hour delay)
-# <a href="http://www.lagaceta.com.ar/vernotae.asp?id_nota=253414">
-# http://www.lagaceta.com.ar/vernotae.asp?id_nota=253414
-# </a>
-#
-# <a href="http://www.worldtimezone.net/dst_news/dst_news_argentina02.html">
-# http://www.worldtimezone.net/dst_news/dst_news_argentina02.html
-# </a>
-
-# From Jesper Norgaard Welen (2008-01-18):
-# The page of the San Luis provincial government
-# <a href="http://www.sanluis.gov.ar/notas.asp?idCanal=0&id=22812">
-# http://www.sanluis.gov.ar/notas.asp?idCanal=0&id=22812
-# </a>
-# confirms what Alex Krivenyshev has earlier sent to the tz
-# emailing list about that San Luis plans to return to standard
-# time much earlier than the rest of the country. It also
-# confirms that upon request the provinces San Juan and Mendoza 
-# refused to follow San Luis in this change. 
-# 
-# The change is supposed to take place Monday the 21.st at 0:00
-# hours. As far as I understand it if this goes ahead, we need
-# a new timezone for San Luis (although there are also documented
-# independent changes in the southamerica file of San Luis in
-# 1990 and 1991 which has not been confirmed).
-
-# From Jesper Norgaard Welen (2008-01-25):
-# Unfortunately the below page has become defunct, about the San Luis
-# time change. Perhaps because it now is part of a group of pages "Most
-# important pages of 2008."
-#
-# You can use
-# <a href="http://www.sanluis.gov.ar/notas.asp?idCanal=8141&id=22834">
-# http://www.sanluis.gov.ar/notas.asp?idCanal=8141&id=22834
-# </a>
-# instead it seems. Or use "Buscador" from the main page of the San Luis
-# government, and fill in "huso" and click OK, and you will get 3 pages
-# from which the first one is identical to the above.
-
-# From Mariano Absatz (2008-01-28):
-# I can confirm that the Province of San Luis (and so far only that
-# province) decided to go back to UTC-3 effective midnight Jan 20th 2008
-# (that is, Monday 21st at 0:00 is the time the clocks were delayed back
-# 1 hour), and they intend to keep UTC-3 as their timezone all year round
-# (that is, unless they change their mind any minute now).
-#
-# So we'll have to add yet another city to 'southamerica' (I think San
-# Luis city is the mos populated city in the Province, so it'd be
-# America/Argentina/San_Luis... of course I can't remember if San Luis's
-# history of particular changes goes along with Mendoza or San Juan :-(
-# (I only remember not being able to collect hard facts about San Luis
-# back in 2004, when these provinces changed to UTC-4 for a few days, I
-# mailed them personally and never got an answer).
-
-# From Arthur David Olson (2008-03-15):
-# Until there's better information, asssume San Luis was like San Juan
-# rather than Mendoza (since San Juan has a simpler DST history).
-
-# Unless otherwise specified, data are from Shanks & Pottenger through 1992,
-# from the IATA otherwise.  As noted below, Shanks & Pottenger say that
-# America/Cordoba split into 6 subregions during 1991/1992, but we
-# haven't verified this yet so for now we'll keep it a single region.
-#
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-#
-# Buenos Aires (BA), Capital Federal (CF),
-Zone America/Argentina/Buenos_Aires -3:53:48 - LMT 1894 Oct 31
-			-4:16:48 -	CMT	1920 May # Cordoba Mean Time
-			-4:00	-	ART	1930 Dec
-			-4:00	Arg	AR%sT	1969 Oct  5
-			-3:00	Arg	AR%sT	1999 Oct  3
-			-4:00	Arg	AR%sT	2000 Mar  3
-			-3:00	Arg	AR%sT
-#
-# Santa Fe (SF), Entre Rios (ER), Corrientes (CN), Misiones (MN), Chaco (CC),
-# Formosa (FM), Salta (SA), Santiago del Estero (SE), Cordoba (CB),
-# San Luis (SL), La Pampa (LP), Neuquen (NQ), Rio Negro (RN)
-#
-# Shanks & Pottenger also make the following claims, which we haven't verified:
-# - Formosa switched to -3:00 on 1991-01-07.
-# - Misiones switched to -3:00 on 1990-12-29.
-# - Chaco switched to -3:00 on 1991-01-04.
-# - San Luis switched to -4:00 on 1990-03-14, then to -3:00 on 1990-10-15,
-#   then to -4:00 on 1991-03-01, then to -3:00 on 1991-06-01.
-# - Santiago del Estero switched to -4:00 on 1991-04-01,
-#   then to -3:00 on 1991-04-26.
-#
-Zone America/Argentina/Cordoba -4:16:48 - LMT	1894 Oct 31
-			-4:16:48 -	CMT	1920 May
-			-4:00	-	ART	1930 Dec
-			-4:00	Arg	AR%sT	1969 Oct  5
-			-3:00	Arg	AR%sT	1991 Mar  3
-			-4:00	-	WART	1991 Oct 20
-			-3:00	Arg	AR%sT	1999 Oct  3
-			-4:00	Arg	AR%sT	2000 Mar  3
-			-3:00	Arg	AR%sT
-#
-# Tucuman (TM)
-Zone America/Argentina/Tucuman -4:20:52 - LMT	1894 Oct 31
-			-4:16:48 -	CMT	1920 May
-			-4:00	-	ART	1930 Dec
-			-4:00	Arg	AR%sT	1969 Oct  5
-			-3:00	Arg	AR%sT	1991 Mar  3
-			-4:00	-	WART	1991 Oct 20
-			-3:00	Arg	AR%sT	1999 Oct  3
-			-4:00	Arg	AR%sT	2000 Mar  3
-			-3:00	-	ART	2004 Jun  1
-			-4:00	-	WART	2004 Jun 13
-			-3:00	Arg	AR%sT
-#
-# La Rioja (LR)
-Zone America/Argentina/La_Rioja -4:27:24 - LMT	1894 Oct 31
-			-4:16:48 -	CMT	1920 May
-			-4:00	-	ART	1930 Dec
-			-4:00	Arg	AR%sT	1969 Oct  5
-			-3:00	Arg	AR%sT	1991 Mar  1
-			-4:00	-	WART	1991 May  7
-			-3:00	Arg	AR%sT	1999 Oct  3
-			-4:00	Arg	AR%sT	2000 Mar  3
-			-3:00	-	ART	2004 Jun  1
-			-4:00	-	WART	2004 Jun 20
-			-3:00	Arg	AR%sT
-#
-# San Juan (SJ)
-Zone America/Argentina/San_Juan -4:34:04 - LMT	1894 Oct 31
-			-4:16:48 -	CMT	1920 May
-			-4:00	-	ART	1930 Dec
-			-4:00	Arg	AR%sT	1969 Oct  5
-			-3:00	Arg	AR%sT	1991 Mar  1
-			-4:00	-	WART	1991 May  7
-			-3:00	Arg	AR%sT	1999 Oct  3
-			-4:00	Arg	AR%sT	2000 Mar  3
-			-3:00	-	ART	2004 May 31
-			-4:00	-	WART	2004 Jul 25
-			-3:00	Arg	AR%sT
-#
-# Jujuy (JY)
-Zone America/Argentina/Jujuy -4:21:12 -	LMT	1894 Oct 31
-			-4:16:48 -	CMT	1920 May
-			-4:00	-	ART	1930 Dec
-			-4:00	Arg	AR%sT	1969 Oct  5
-			-3:00	Arg	AR%sT	1990 Mar  4
-			-4:00	-	WART	1990 Oct 28
-			-4:00	1:00	WARST	1991 Mar 17
-			-4:00	-	WART	1991 Oct  6
-			-3:00	1:00	ARST	1992
-			-3:00	Arg	AR%sT	1999 Oct  3
-			-4:00	Arg	AR%sT	2000 Mar  3
-			-3:00	Arg	AR%sT
-#
-# Catamarca (CT), Chubut (CH)
-Zone America/Argentina/Catamarca -4:23:08 - LMT	1894 Oct 31
-			-4:16:48 -	CMT	1920 May
-			-4:00	-	ART	1930 Dec
-			-4:00	Arg	AR%sT	1969 Oct  5
-			-3:00	Arg	AR%sT	1991 Mar  3
-			-4:00	-	WART	1991 Oct 20
-			-3:00	Arg	AR%sT	1999 Oct  3
-			-4:00	Arg	AR%sT	2000 Mar  3
-			-3:00	-	ART	2004 Jun  1
-			-4:00	-	WART	2004 Jun 20
-			-3:00	Arg	AR%sT
-#
-# Mendoza (MZ)
-Zone America/Argentina/Mendoza -4:35:16 - LMT	1894 Oct 31
-			-4:16:48 -	CMT	1920 May
-			-4:00	-	ART	1930 Dec
-			-4:00	Arg	AR%sT	1969 Oct  5
-			-3:00	Arg	AR%sT	1990 Mar  4
-			-4:00	-	WART	1990 Oct 15
-			-4:00	1:00	WARST	1991 Mar  1
-			-4:00	-	WART	1991 Oct 15
-			-4:00	1:00	WARST	1992 Mar  1
-			-4:00	-	WART	1992 Oct 18
-			-3:00	Arg	AR%sT	1999 Oct  3
-			-4:00	Arg	AR%sT	2000 Mar  3
-			-3:00	-	ART	2004 May 23
-			-4:00	-	WART	2004 Sep 26
-			-3:00	Arg	AR%sT
-#
-# San Luis (SL)
-Zone America/Argentina/San_Luis -4:25:24 - LMT	1894 Oct 31
-			-4:16:48 -	CMT	1920 May
-			-4:00	-	ART	1930 Dec
-			-4:00	Arg	AR%sT	1969 Oct  5
-			-3:00	Arg	AR%sT	1991 Mar  1
-			-4:00	-	WART	1991 May  7
-			-3:00	Arg	AR%sT	1999 Oct  3
-			-4:00	Arg	AR%sT	2000 Mar  3
-			-3:00	-	ART	2004 May 31
-			-4:00	-	WART	2004 Jul 25
-			-3:00	Arg	AR%sT	2008 Jan 21
-			-3:00	-	ART
-#
-# Santa Cruz (SC)
-Zone America/Argentina/Rio_Gallegos -4:36:52 - LMT 1894 Oct 31
-			-4:16:48 -	CMT	1920 May # Cordoba Mean Time
-			-4:00	-	ART	1930 Dec
-			-4:00	Arg	AR%sT	1969 Oct  5
-			-3:00	Arg	AR%sT	1999 Oct  3
-			-4:00	Arg	AR%sT	2000 Mar  3
-			-3:00	-	ART	2004 Jun  1
-			-4:00	-	WART	2004 Jun 20
-			-3:00	Arg	AR%sT
-#
-# Tierra del Fuego, Antartida e Islas del Atlantico Sur (TF)
-Zone America/Argentina/Ushuaia -4:33:12 - LMT 1894 Oct 31
-			-4:16:48 -	CMT	1920 May # Cordoba Mean Time
-			-4:00	-	ART	1930 Dec
-			-4:00	Arg	AR%sT	1969 Oct  5
-			-3:00	Arg	AR%sT	1999 Oct  3
-			-4:00	Arg	AR%sT	2000 Mar  3
-			-3:00	-	ART	2004 May 30
-			-4:00	-	WART	2004 Jun 20
-			-3:00	Arg	AR%sT
-
-# Aruba
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	America/Aruba	-4:40:24 -	LMT	1912 Feb 12	# Oranjestad
-			-4:30	-	ANT	1965 # Netherlands Antilles Time
-			-4:00	-	AST
-
-# Bolivia
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	America/La_Paz	-4:32:36 -	LMT	1890
-			-4:32:36 -	CMT	1931 Oct 15 # Calamarca MT
-			-4:32:36 1:00	BOST	1932 Mar 21 # Bolivia ST
-			-4:00	-	BOT	# Bolivia Time
-
-# Brazil
-
-# From Paul Eggert (1993-11-18):
-# The mayor of Rio recently attempted to change the time zone rules
-# just in his city, in order to leave more summer time for the tourist trade.
-# The rule change lasted only part of the day;
-# the federal government refused to follow the city's rules, and business
-# was in a chaos, so the mayor backed down that afternoon.
-
-# From IATA SSIM (1996-02):
-# _Only_ the following states in BR1 observe DST: Rio Grande do Sul (RS),
-# Santa Catarina (SC), Parana (PR), Sao Paulo (SP), Rio de Janeiro (RJ),
-# Espirito Santo (ES), Minas Gerais (MG), Bahia (BA), Goias (GO),
-# Distrito Federal (DF), Tocantins (TO), Sergipe [SE] and Alagoas [AL].
-# [The last three states are new to this issue of the IATA SSIM.]
-
-# From Gwillim Law (1996-10-07):
-# Geography, history (Tocantins was part of Goias until 1989), and other
-# sources of time zone information lead me to believe that AL, SE, and TO were
-# always in BR1, and so the only change was whether or not they observed DST....
-# The earliest issue of the SSIM I have is 2/91.  Each issue from then until
-# 9/95 says that DST is observed only in the ten states I quoted from 9/95,
-# along with Mato Grosso (MT) and Mato Grosso do Sul (MS), which are in BR2
-# (UTC-4)....  The other two time zones given for Brazil are BR3, which is
-# UTC-5, no DST, and applies only in the state of Acre (AC); and BR4, which is
-# UTC-2, and applies to Fernando de Noronha (formerly FN, but I believe it's
-# become part of the state of Pernambuco).  The boundary between BR1 and BR2
-# has never been clearly stated.  They've simply been called East and West.
-# However, some conclusions can be drawn from another IATA manual: the Airline
-# Coding Directory, which lists close to 400 airports in Brazil.  For each
-# airport it gives a time zone which is coded to the SSIM.  From that
-# information, I'm led to conclude that the states of Amapa (AP), Ceara (CE),
-# Maranhao (MA), Paraiba (PR), Pernambuco (PE), Piaui (PI), and Rio Grande do
-# Norte (RN), and the eastern part of Para (PA) are all in BR1 without DST.
-
-# From Marcos Tadeu (1998-09-27):
-# <a href="http://pcdsh01.on.br/verao1.html">
-# Brazilian official page
-# </a>
-
-# From Jesper Norgaard (2000-11-03):
-# [For an official list of which regions in Brazil use which time zones, see:]
-# http://pcdsh01.on.br/Fusbr.htm
-# http://pcdsh01.on.br/Fusbrhv.htm
-
-# From Celso Doria via David Madeo (2002-10-09):
-# The reason for the delay this year has to do with elections in Brazil.
-#
-# Unlike in the United States, elections in Brazil are 100% computerized and
-# the results are known almost immediately.  Yesterday, it was the first
-# round of the elections when 115 million Brazilians voted for President,
-# Governor, Senators, Federal Deputies, and State Deputies.  Nobody is
-# counting (or re-counting) votes anymore and we know there will be a second
-# round for the Presidency and also for some Governors.  The 2nd round will
-# take place on October 27th.
-#
-# The reason why the DST will only begin November 3rd is that the thousands
-# of electoral machines used cannot have their time changed, and since the
-# Constitution says the elections must begin at 8:00 AM and end at 5:00 PM,
-# the Government decided to postpone DST, instead of changing the Constitution
-# (maybe, for the next elections, it will be possible to change the clock)...
-
-# From Rodrigo Severo (2004-10-04):
-# It's just the biannual change made necessary by the much hyped, supposedly
-# modern Brazilian eletronic voting machines which, apparently, can't deal
-# with a time change between the first and the second rounds of the elections.
-
-# From Steffen Thorsen (2007-09-20):
-# Brazil will start DST on 2007-10-14 00:00 and end on 2008-02-17 00:00:
-# http://www.mme.gov.br/site/news/detail.do;jsessionid=BBA06811AFCAAC28F0285210913513DA?newsId=13975
-
-# From Paul Eggert (2002-10-10):
-# The official decrees referenced below are mostly taken from
-# <a href="http://pcdsh01.on.br/DecHV.html">
-# Decretos sobre o Horario de Verao no Brasil
-# </a>.
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-# Decree <a href="http://pcdsh01.on.br/HV20466.htm">20,466</a> (1931-10-01)
-# Decree <a href="http://pcdsh01.on.br/HV21896.htm">21,896</a> (1932-01-10)
-Rule	Brazil	1931	only	-	Oct	 3	11:00	1:00	S
-Rule	Brazil	1932	1933	-	Apr	 1	 0:00	0	-
-Rule	Brazil	1932	only	-	Oct	 3	 0:00	1:00	S
-# Decree <a href="http://pcdsh01.on.br/HV23195.htm">23,195</a> (1933-10-10)
-# revoked DST.
-# Decree <a href="http://pcdsh01.on.br/HV27496.htm">27,496</a> (1949-11-24)
-# Decree <a href="http://pcdsh01.on.br/HV27998.htm">27,998</a> (1950-04-13)
-Rule	Brazil	1949	1952	-	Dec	 1	 0:00	1:00	S
-Rule	Brazil	1950	only	-	Apr	16	 1:00	0	-
-Rule	Brazil	1951	1952	-	Apr	 1	 0:00	0	-
-# Decree <a href="http://pcdsh01.on.br/HV32308.htm">32,308</a> (1953-02-24)
-Rule	Brazil	1953	only	-	Mar	 1	 0:00	0	-
-# Decree <a href="http://pcdsh01.on.br/HV34724.htm">34,724</a> (1953-11-30)
-# revoked DST.
-# Decree <a href="http://pcdsh01.on.br/HV52700.htm">52,700</a> (1963-10-18)
-# established DST from 1963-10-23 00:00 to 1964-02-29 00:00
-# in SP, RJ, GB, MG, ES, due to the prolongation of the drought.
-# Decree <a href="http://pcdsh01.on.br/HV53071.htm">53,071</a> (1963-12-03)
-# extended the above decree to all of the national territory on 12-09.
-Rule	Brazil	1963	only	-	Dec	 9	 0:00	1:00	S
-# Decree <a href="http://pcdsh01.on.br/HV53604.htm">53,604</a> (1964-02-25)
-# extended summer time by one day to 1964-03-01 00:00 (start of school).
-Rule	Brazil	1964	only	-	Mar	 1	 0:00	0	-
-# Decree <a href="http://pcdsh01.on.br/HV55639.htm">55,639</a> (1965-01-27)
-Rule	Brazil	1965	only	-	Jan	31	 0:00	1:00	S
-Rule	Brazil	1965	only	-	Mar	31	 0:00	0	-
-# Decree <a href="http://pcdsh01.on.br/HV57303.htm">57,303</a> (1965-11-22)
-Rule	Brazil	1965	only	-	Dec	 1	 0:00	1:00	S
-# Decree <a href="http://pcdsh01.on.br/HV57843.htm">57,843</a> (1966-02-18)
-Rule	Brazil	1966	1968	-	Mar	 1	 0:00	0	-
-Rule	Brazil	1966	1967	-	Nov	 1	 0:00	1:00	S
-# Decree <a href="http://pcdsh01.on.br/HV63429.htm">63,429</a> (1968-10-15)
-# revoked DST.
-# Decree <a href="http://pcdsh01.on.br/HV91698.htm">91,698</a> (1985-09-27)
-Rule	Brazil	1985	only	-	Nov	 2	 0:00	1:00	S
-# Decree 92,310 (1986-01-21)
-# Decree 92,463 (1986-03-13)
-Rule	Brazil	1986	only	-	Mar	15	 0:00	0	-
-# Decree 93,316 (1986-10-01)
-Rule	Brazil	1986	only	-	Oct	25	 0:00	1:00	S
-Rule	Brazil	1987	only	-	Feb	14	 0:00	0	-
-# Decree <a href="http://pcdsh01.on.br/HV94922.htm">94,922</a> (1987-09-22)
-Rule	Brazil	1987	only	-	Oct	25	 0:00	1:00	S
-Rule	Brazil	1988	only	-	Feb	 7	 0:00	0	-
-# Decree <a href="http://pcdsh01.on.br/HV96676.htm">96,676</a> (1988-09-12)
-# except for the states of AC, AM, PA, RR, RO, and AP (then a territory)
-Rule	Brazil	1988	only	-	Oct	16	 0:00	1:00	S
-Rule	Brazil	1989	only	-	Jan	29	 0:00	0	-
-# Decree <a href="http://pcdsh01.on.br/HV98077.htm">98,077</a> (1989-08-21)
-# with the same exceptions
-Rule	Brazil	1989	only	-	Oct	15	 0:00	1:00	S
-Rule	Brazil	1990	only	-	Feb	11	 0:00	0	-
-# Decree <a href="http://pcdsh01.on.br/HV99530.htm">99,530</a> (1990-09-17)
-# adopted by RS, SC, PR, SP, RJ, ES, MG, GO, MS, DF.
-# Decree 99,629 (1990-10-19) adds BA, MT.
-Rule	Brazil	1990	only	-	Oct	21	 0:00	1:00	S
-Rule	Brazil	1991	only	-	Feb	17	 0:00	0	-
-# <a href="http://pcdsh01.on.br/HV1991.htm">Unnumbered decree</a> (1991-09-25)
-# adopted by RS, SC, PR, SP, RJ, ES, MG, BA, GO, MT, MS, DF.
-Rule	Brazil	1991	only	-	Oct	20	 0:00	1:00	S
-Rule	Brazil	1992	only	-	Feb	 9	 0:00	0	-
-# <a href="http://pcdsh01.on.br/HV1992.htm">Unnumbered decree</a> (1992-10-16)
-# adopted by same states.
-Rule	Brazil	1992	only	-	Oct	25	 0:00	1:00	S
-Rule	Brazil	1993	only	-	Jan	31	 0:00	0	-
-# Decree <a href="http://pcdsh01.on.br/HV942.htm">942</a> (1993-09-28)
-# adopted by same states, plus AM.
-# Decree <a href="http://pcdsh01.on.br/HV1252.htm">1,252</a> (1994-09-22;
-# web page corrected 2004-01-07) adopted by same states, minus AM.
-# Decree <a href="http://pcdsh01.on.br/HV1636.htm">1,636</a> (1995-09-14)
-# adopted by same states, plus MT and TO.
-# Decree <a href="http://pcdsh01.on.br/HV1674.htm">1,674</a> (1995-10-13)
-# adds AL, SE.
-Rule	Brazil	1993	1995	-	Oct	Sun>=11	 0:00	1:00	S
-Rule	Brazil	1994	1995	-	Feb	Sun>=15	 0:00	0	-
-Rule	Brazil	1996	only	-	Feb	11	 0:00	0	-
-# Decree <a href="http://pcdsh01.on.br/HV2000.htm">2,000</a> (1996-09-04)
-# adopted by same states, minus AL, SE.
-Rule	Brazil	1996	only	-	Oct	 6	 0:00	1:00	S
-Rule	Brazil	1997	only	-	Feb	16	 0:00	0	-
-# From Daniel C. Sobral (1998-02-12):
-# In 1997, the DS began on October 6. The stated reason was that
-# because international television networks ignored Brazil's policy on DS,
-# they bought the wrong times on satellite for coverage of Pope's visit.
-# This year, the ending date of DS was postponed to March 1
-# to help dealing with the shortages of electric power.
-#
-# Decree 2,317 (1997-09-04), adopted by same states.
-Rule	Brazil	1997	only	-	Oct	 6	 0:00	1:00	S
-# Decree <a href="http://pcdsh01.on.br/figuras/HV2495.JPG">2,495</a>
-# (1998-02-10)
-Rule	Brazil	1998	only	-	Mar	 1	 0:00	0	-
-# Decree <a href="http://pcdsh01.on.br/figuras/Hv98.jpg">2,780</a> (1998-09-11)
-# adopted by the same states as before.
-Rule	Brazil	1998	only	-	Oct	11	 0:00	1:00	S
-Rule	Brazil	1999	only	-	Feb	21	 0:00	0	-
-# Decree <a href="http://pcdsh01.on.br/figuras/HV3150.gif">3,150</a>
-# (1999-08-23) adopted by same states.
-# Decree <a href="http://pcdsh01.on.br/DecHV99.gif">3,188</a> (1999-09-30)
-# adds SE, AL, PB, PE, RN, CE, PI, MA and RR.
-Rule	Brazil	1999	only	-	Oct	 3	 0:00	1:00	S
-Rule	Brazil	2000	only	-	Feb	27	 0:00	0	-
-# Decree <a href="http://pcdsh01.on.br/DEC3592.htm">3,592</a> (2000-09-06)
-# adopted by the same states as before.
-# Decree <a href="http://pcdsh01.on.br/Dec3630.jpg">3,630</a> (2000-10-13)
-# repeals DST in PE and RR, effective 2000-10-15 00:00.
-# Decree <a href="http://pcdsh01.on.br/Dec3632.jpg">3,632</a> (2000-10-17)
-# repeals DST in SE, AL, PB, RN, CE, PI and MA, effective 2000-10-22 00:00.
-# Decree <a href="http://pcdsh01.on.br/figuras/HV3916.gif">3,916</a>
-# (2001-09-13) reestablishes DST in AL, CE, MA, PB, PE, PI, RN, SE.
-Rule	Brazil	2000	2001	-	Oct	Sun>=8	 0:00	1:00	S
-Rule	Brazil	2001	2006	-	Feb	Sun>=15	 0:00	0	-
-# Decree 4,399 (2002-10-01) repeals DST in AL, CE, MA, PB, PE, PI, RN, SE.
-# <a href="http://www.presidencia.gov.br/CCIVIL/decreto/2002/D4399.htm"></a>
-Rule	Brazil	2002	only	-	Nov	 3	 0:00	1:00	S
-# Decree 4,844 (2003-09-24; corrected 2003-09-26) repeals DST in BA, MT, TO.
-# <a href="http://www.presidencia.gov.br/CCIVIL/decreto/2003/D4844.htm"></a>
-Rule	Brazil	2003	only	-	Oct	19	 0:00	1:00	S
-# Decree 5,223 (2004-10-01) reestablishes DST in MT.
-# <a href="http://www.planalto.gov.br/ccivil_03/_Ato2004-2006/2004/Decreto/D5223.htm"></a>
-Rule	Brazil	2004	only	-	Nov	 2	 0:00	1:00	S
-# Decree <a href="http://pcdsh01.on.br/DecHV5539.gif">5,539</a> (2005-09-19),
-# adopted by the same states as before.
-Rule	Brazil	2005	only	-	Oct	16	 0:00	1:00	S
-# Decree <a href="http://pcdsh01.on.br/DecHV5920.gif">5,920</a> (2006-10-03),
-# adopted by the same states as before.
-Rule	Brazil	2006	only	-	Nov	 5	 0:00	1:00	S
-Rule	Brazil	2007	only	-	Feb	25	 0:00	0	-
-# (Decree number not yet known)
-# http://www.brasil.gov.br/noticias/ultimas_noticias/horario_verao070920/
-# (2007-09-20) after a heads-up from Steffen Thorsen:
-Rule	Brazil	2007	max	-	Oct	Sun>=8	 0:00	1:00	S
-Rule	Brazil	2008	max	-	Feb	Sun>=15	 0:00	0	-
-# The latest ruleset listed above says that the following states observe DST:
-# DF, ES, GO, MG, MS, MT, PR, RJ, RS, SC, SP.
-# For dates after mid-2008, the above rules with TO="max" are guesses
-# and are quite possibly wrong, but are more likely than no DST at all.
-
-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-#
-# Fernando de Noronha (administratively part of PE)
-Zone America/Noronha	-2:09:40 -	LMT	1914
-			-2:00	Brazil	FN%sT	1990 Sep 17
-			-2:00	-	FNT	1999 Sep 30
-			-2:00	Brazil	FN%sT	2000 Oct 15
-			-2:00	-	FNT	2001 Sep 13
-			-2:00	Brazil	FN%sT	2002 Oct  1
-			-2:00	-	FNT
-# Other Atlantic islands have no permanent settlement.
-# These include Trindade and Martin Vaz (administratively part of ES),
-# Atol das Rocas (RN), and Penedos de Sao Pedro e Sao Paulo (PE).
-# Fernando de Noronha was a separate territory from 1942-09-02 to 1989-01-01;
-# it also included the Penedos.
-#
-# Amapa (AP), east Para (PA)
-# East Para includes Belem, Maraba, Serra Norte, and Sao Felix do Xingu.
-# The division between east and west Para is the river Xingu.
-# In the north a very small part from the river Javary (now Jari I guess,
-# the border with Amapa) to the Amazon, then to the Xingu.
-Zone America/Belem	-3:13:56 -	LMT	1914
-			-3:00	Brazil	BR%sT	1988 Sep 12
-			-3:00	-	BRT
-#
-# Maranhao (MA), Piaui (PI), Ceara (CE), Rio Grande do Norte (RN),
-# Paraiba (PB)
-Zone America/Fortaleza	-2:34:00 -	LMT	1914
-			-3:00	Brazil	BR%sT	1990 Sep 17
-			-3:00	-	BRT	1999 Sep 30
-			-3:00	Brazil	BR%sT	2000 Oct 22
-			-3:00	-	BRT	2001 Sep 13
-			-3:00	Brazil	BR%sT	2002 Oct  1
-			-3:00	-	BRT
-#
-# Pernambuco (PE) (except Atlantic islands)
-Zone America/Recife	-2:19:36 -	LMT	1914
-			-3:00	Brazil	BR%sT	1990 Sep 17
-			-3:00	-	BRT	1999 Sep 30
-			-3:00	Brazil	BR%sT	2000 Oct 15
-			-3:00	-	BRT	2001 Sep 13
-			-3:00	Brazil	BR%sT	2002 Oct  1
-			-3:00	-	BRT
-#
-# Tocantins (TO)
-Zone America/Araguaina	-3:12:48 -	LMT	1914
-			-3:00	Brazil	BR%sT	1990 Sep 17
-			-3:00	-	BRT	1995 Sep 14
-			-3:00	Brazil	BR%sT	2003 Sep 24
-			-3:00	-	BRT
-#
-# Alagoas (AL), Sergipe (SE)
-Zone America/Maceio	-2:22:52 -	LMT	1914
-			-3:00	Brazil	BR%sT	1990 Sep 17
-			-3:00	-	BRT	1995 Oct 13
-			-3:00	Brazil	BR%sT	1996 Sep  4
-			-3:00	-	BRT	1999 Sep 30
-			-3:00	Brazil	BR%sT	2000 Oct 22
-			-3:00	-	BRT	2001 Sep 13
-			-3:00	Brazil	BR%sT	2002 Oct  1
-			-3:00	-	BRT
-#
-# Bahia (BA)
-# There are too many Salvadors elsewhere, so use America/Bahia instead
-# of America/Salvador.
-Zone America/Bahia	-2:34:04 -	LMT	1914
-			-3:00	Brazil	BR%sT	2003 Sep 24
-			-3:00	-	BRT
-#
-# Goias (GO), Distrito Federal (DF), Minas Gerais (MG),
-# Espirito Santo (ES), Rio de Janeiro (RJ), Sao Paulo (SP), Parana (PR),
-# Santa Catarina (SC), Rio Grande do Sul (RS)
-Zone America/Sao_Paulo	-3:06:28 -	LMT	1914
-			-3:00	Brazil	BR%sT	1963 Oct 23 00:00
-			-3:00	1:00	BRST	1964
-			-3:00	Brazil	BR%sT
-#
-# Mato Grosso do Sul (MS)
-Zone America/Campo_Grande -3:38:28 -	LMT	1914
-			-4:00	Brazil	AM%sT
-#
-# Mato Grosso (MT)
-Zone America/Cuiaba	-3:44:20 -	LMT	1914
-			-4:00	Brazil	AM%sT	2003 Sep 24
-			-4:00	-	AMT	2004 Oct  1
-			-4:00	Brazil	AM%sT
-#
-# west Para (PA), Rondonia (RO)
-# West Para includes Altamira, Oribidos, Prainha, Oriximina, and Santarem.
-Zone America/Porto_Velho -4:15:36 -	LMT	1914
-			-4:00	Brazil	AM%sT	1988 Sep 12
-			-4:00	-	AMT
-#
-# Roraima (RR)
-Zone America/Boa_Vista	-4:02:40 -	LMT	1914
-			-4:00	Brazil	AM%sT	1988 Sep 12
-			-4:00	-	AMT	1999 Sep 30
-			-4:00	Brazil	AM%sT	2000 Oct 15
-			-4:00	-	AMT
-#
-# east Amazonas (AM): Boca do Acre, Jutai, Manaus, Floriano Peixoto
-# The great circle line from Tabatinga to Porto Acre divides
-# east from west Amazonas.
-Zone America/Manaus	-4:00:04 -	LMT	1914
-			-4:00	Brazil	AM%sT	1988 Sep 12
-			-4:00	-	AMT	1993 Sep 28
-			-4:00	Brazil	AM%sT	1994 Sep 22
-			-4:00	-	AMT
-#
-# west Amazonas (AM): Atalaia do Norte, Boca do Maoco, Benjamin Constant,
-#	Eirunepe, Envira, Ipixuna
-Zone America/Eirunepe	-4:39:28 -	LMT	1914
-			-5:00	Brazil	AC%sT	1988 Sep 12
-			-5:00	-	ACT	1993 Sep 28
-			-5:00	Brazil	AC%sT	1994 Sep 22
-			-5:00	-	ACT
-#
-# Acre (AC)
-Zone America/Rio_Branco	-4:31:12 -	LMT	1914
-			-5:00	Brazil	AC%sT	1988 Sep 12
-			-5:00	-	ACT
-
-
-# Chile
-
-# From Eduardo Krell (1995-10-19):
-# The law says to switch to DST at midnight [24:00] on the second SATURDAY
-# of October....  The law is the same for March and October.
-# (1998-09-29):
-# Because of the drought this year, the government decided to go into
-# DST earlier (saturday 9/26 at 24:00). This is a one-time change only ...
-# (unless there's another dry season next year, I guess).
-
-# From Julio I. Pacheco Troncoso (1999-03-18):
-# Because of the same drought, the government decided to end DST later,
-# on April 3, (one-time change).
-
-# From Oscar van Vlijmen (2006-10-08):
-# http://www.horaoficial.cl/cambio.htm
-
-# From Jesper Norgaard Welen (2006-10-08):
-# I think that there are some obvious mistakes in the suggested link
-# from Oscar van Vlijmen,... for instance entry 66 says that GMT-4
-# ended 1990-09-12 while entry 67 only begins GMT-3 at 1990-09-15
-# (they should have been 1990-09-15 and 1990-09-16 respectively), but
-# anyhow it clears up some doubts too.
-
-# From Paul Eggert (2006-12-27):
-# The following data for Chile and America/Santiago are from
-# <http://www.horaoficial.cl/horaof.htm> (2006-09-20), transcribed by
-# Jesper Norgaard Welen.  The data for Pacific/Easter are from Shanks
-# & Pottenger, except with DST transitions after 1932 cloned from
-# America/Santiago.  The pre-1980 Pacific/Easter data are dubious,
-# but we have no other source.
-
-# From German Poo-Caaman~o (2008-03-03):
-# Due to drought, Chile extends Daylight Time in three weeks.  This
-# is one-time change (Saturday 3/29 at 24:00 for America/Santiago
-# and Saturday 3/29 at 22:00 for Pacific/Easter)
-# The Supreme Decree is located at 
-# <a href="http://www.shoa.cl/servicios/supremo316.pdf">
-# http://www.shoa.cl/servicios/supremo316.pdf
-# </a>
-# and the instructions for 2008 are located in:
-# <a href="http://www.horaoficial.cl/cambio.htm">
-# http://www.horaoficial.cl/cambio.htm
-# </a>.
-
-# From José Miguel Garrido (2008-03-05):
-# ...
-# You could see the announces of the change on 
-# <a href="http://www.shoa.cl/noticias/2008/04hora/hora.htm">
-# http://www.shoa.cl/noticias/2008/04hora/hora.htm
-# </a>.
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Chile	1927	1932	-	Sep	 1	0:00	1:00	S
-Rule	Chile	1928	1932	-	Apr	 1	0:00	0	-
-Rule	Chile	1942	only	-	Jun	 1	4:00u	0	-
-Rule	Chile	1942	only	-	Aug	 1	5:00u	1:00	S
-Rule	Chile	1946	only	-	Jul	15	4:00u	1:00	S
-Rule	Chile	1946	only	-	Sep	 1	3:00u	0:00	-
-Rule	Chile	1947	only	-	Apr	 1	4:00u	0	-
-Rule	Chile	1968	only	-	Nov	 3	4:00u	1:00	S
-Rule	Chile	1969	only	-	Mar	30	3:00u	0	-
-Rule	Chile	1969	only	-	Nov	23	4:00u	1:00	S
-Rule	Chile	1970	only	-	Mar	29	3:00u	0	-
-Rule	Chile	1971	only	-	Mar	14	3:00u	0	-
-Rule	Chile	1970	1972	-	Oct	Sun>=9	4:00u	1:00	S
-Rule	Chile	1972	1986	-	Mar	Sun>=9	3:00u	0	-
-Rule	Chile	1973	only	-	Sep	30	4:00u	1:00	S
-Rule	Chile	1974	1987	-	Oct	Sun>=9	4:00u	1:00	S
-Rule	Chile	1987	only	-	Apr	12	3:00u	0	-
-Rule	Chile	1988	1989	-	Mar	Sun>=9	3:00u	0	-
-Rule	Chile	1988	only	-	Oct	Sun>=1	4:00u	1:00	S
-Rule	Chile	1989	only	-	Oct	Sun>=9	4:00u	1:00	S
-Rule	Chile	1990	only	-	Mar	18	3:00u	0	-
-Rule	Chile	1990	only	-	Sep	16	4:00u	1:00	S
-Rule	Chile	1991	1996	-	Mar	Sun>=9	3:00u	0	-
-Rule	Chile	1991	1997	-	Oct	Sun>=9	4:00u	1:00	S
-Rule	Chile	1997	only	-	Mar	30	3:00u	0	-
-Rule	Chile	1998	only	-	Mar	Sun>=9	3:00u	0	-
-Rule	Chile	1998	only	-	Sep	27	4:00u	1:00	S
-Rule	Chile	1999	only	-	Apr	 4	3:00u	0	-
-Rule	Chile	1999	max	-	Oct	Sun>=9	4:00u	1:00	S
-Rule	Chile	2000	2007	-	Mar	Sun>=9	3:00u	0	-
-# N.B.: the end of March 29 in Chile is March 30 in Universal time,
-# which is used below in specifying the transition.
-Rule	Chile	2008	only	-	Mar	30	3:00u	0	-
-Rule	Chile	2009	max	-	Mar	Sun>=9	3:00u	0	-
-# IATA SSIM anomalies: (1992-02) says 1992-03-14;
-# (1996-09) says 1998-03-08.  Ignore these.
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/Santiago	-4:42:46 -	LMT	1890
-			-4:42:46 -	SMT	1910 	    # Santiago Mean Time
-			-5:00	-	CLT	1916 Jul  1 # Chile Time
-			-4:42:46 -	SMT	1918 Sep  1 # Santiago Mean Time
-			-4:00	-	CLT	1919 Jul  1 # Chile Time
-			-4:42:46 -	SMT	1927 Sep  1 # Santiago Mean Time
-			-5:00	Chile	CL%sT	1947 May 22 # Chile Time
-			-4:00	Chile	CL%sT
-Zone Pacific/Easter	-7:17:44 -	LMT	1890
-			-7:17:28 -	EMT	1932 Sep    # Easter Mean Time
-			-7:00	Chile	EAS%sT	1982 Mar 13 21:00 # Easter I Time
-			-6:00	Chile	EAS%sT
-#
-# Sala y Gomez Island is like Pacific/Easter.
-# Other Chilean locations, including Juan Fernandez Is, San Ambrosio,
-# San Felix, and Antarctic bases, are like America/Santiago.
-
-# Colombia
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	CO	1992	only	-	May	 3	0:00	1:00	S
-Rule	CO	1993	only	-	Apr	 4	0:00	0	-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	America/Bogota	-4:56:20 -	LMT	1884 Mar 13
-			-4:56:20 -	BMT	1914 Nov 23 # Bogota Mean Time
-			-5:00	CO	CO%sT	# Colombia Time
-# Malpelo, Providencia, San Andres
-# no information; probably like America/Bogota
-
-# Curacao
-#
-# From Paul Eggert (2006-03-22):
-# Shanks & Pottenger say that The Bottom and Philipsburg have been at
-# -4:00 since standard time was introduced on 1912-03-02; and that
-# Kralendijk and Rincon used Kralendijk Mean Time (-4:33:08) from
-# 1912-02-02 to 1965-01-01.  The former is dubious, since S&P also say
-# Saba Island has been like Curacao.
-# This all predates our 1970 cutoff, though.
-#
-# By July 2007 Curacao and St Maarten are planned to become
-# associated states within the Netherlands, much like Aruba;
-# Bonaire, Saba and St Eustatius would become directly part of the
-# Netherlands as Kingdom Islands.  This won't affect their time zones
-# though, as far as we know.
-#
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	America/Curacao	-4:35:44 -	LMT	1912 Feb 12	# Willemstad
-			-4:30	-	ANT	1965 # Netherlands Antilles Time
-			-4:00	-	AST
-
-# Ecuador
-#
-# From Paul Eggert (2007-03-04):
-# Apparently Ecuador had a failed experiment with DST in 1992.
-# <http://midena.gov.ec/content/view/1261/208/> (2007-02-27) and
-# <http://www.hoy.com.ec/NoticiaNue.asp?row_id=249856> (2006-11-06) both
-# talk about "hora Sixto".  Leave this alone for now, as we have no data.
-#
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/Guayaquil	-5:19:20 -	LMT	1890
-			-5:14:00 -	QMT	1931 # Quito Mean Time
-			-5:00	-	ECT	     # Ecuador Time
-Zone Pacific/Galapagos	-5:58:24 -	LMT	1931 # Puerto Baquerizo Moreno
-			-5:00	-	ECT	1986
-			-6:00	-	GALT	     # Galapagos Time
-
-# Falklands
-
-# From Paul Eggert (2006-03-22):
-# Between 1990 and 2000 inclusive, Shanks & Pottenger and the IATA agree except
-# the IATA gives 1996-09-08.  Go with Shanks & Pottenger.
-
-# From Falkland Islands Government Office, London (2001-01-22)
-# via Jesper Norgaard:
-# ... the clocks revert back to Local Mean Time at 2 am on Sunday 15
-# April 2001 and advance one hour to summer time at 2 am on Sunday 2
-# September.  It is anticipated that the clocks will revert back at 2
-# am on Sunday 21 April 2002 and advance to summer time at 2 am on
-# Sunday 1 September.
-
-# From Rives McDow (2001-02-13):
-#
-# I have communicated several times with people there, and the last
-# time I had communications that was helpful was in 1998.  Here is
-# what was said then:
-#
-# "The general rule was that Stanley used daylight saving and the Camp
-# did not. However for various reasons many people in the Camp have
-# started to use daylight saving (known locally as 'Stanley Time')
-# There is no rule as to who uses daylight saving - it is a matter of
-# personal choice and so it is impossible to draw a map showing who
-# uses it and who does not. Any list would be out of date as soon as
-# it was produced. This year daylight saving ended on April 18/19th
-# and started again on September 12/13th.  I do not know what the rule
-# is, but can find out if you like.  We do not change at the same time
-# as UK or Chile."
-#
-# I did have in my notes that the rule was "Second Saturday in Sep at
-# 0:00 until third Saturday in Apr at 0:00".  I think that this does
-# not agree in some cases with Shanks; is this true?
-#
-# Also, there is no mention in the list that some areas in the
-# Falklands do not use DST.  I have found in my communications there
-# that these areas are on the western half of East Falkland and all of
-# West Falkland.  Stanley is the only place that consistently observes
-# DST.  Again, as in other places in the world, the farmers don't like
-# it.  West Falkland is almost entirely sheep farmers.
-#
-# I know one lady there that keeps a list of which farm keeps DST and
-# which doesn't each year.  She runs a shop in Stanley, and says that
-# the list changes each year.  She uses it to communicate to her
-# customers, catching them when they are home for lunch or dinner.
-
-# From Paul Eggert (2001-03-05):
-# For now, we'll just record the time in Stanley, since we have no
-# better info.
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Falk	1937	1938	-	Sep	lastSun	0:00	1:00	S
-Rule	Falk	1938	1942	-	Mar	Sun>=19	0:00	0	-
-Rule	Falk	1939	only	-	Oct	1	0:00	1:00	S
-Rule	Falk	1940	1942	-	Sep	lastSun	0:00	1:00	S
-Rule	Falk	1943	only	-	Jan	1	0:00	0	-
-Rule	Falk	1983	only	-	Sep	lastSun	0:00	1:00	S
-Rule	Falk	1984	1985	-	Apr	lastSun	0:00	0	-
-Rule	Falk	1984	only	-	Sep	16	0:00	1:00	S
-Rule	Falk	1985	2000	-	Sep	Sun>=9	0:00	1:00	S
-Rule	Falk	1986	2000	-	Apr	Sun>=16	0:00	0	-
-Rule	Falk	2001	max	-	Apr	Sun>=15	2:00	0	-
-Rule	Falk	2001	max	-	Sep	Sun>=1	2:00	1:00	S
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Atlantic/Stanley	-3:51:24 -	LMT	1890
-			-3:51:24 -	SMT	1912 Mar 12  # Stanley Mean Time
-			-4:00	Falk	FK%sT	1983 May     # Falkland Is Time
-			-3:00	Falk	FK%sT	1985 Sep 15
-			-4:00	Falk	FK%sT
-
-# French Guiana
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/Cayenne	-3:29:20 -	LMT	1911 Jul
-			-4:00	-	GFT	1967 Oct # French Guiana Time
-			-3:00	-	GFT
-
-# Guyana
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	America/Guyana	-3:52:40 -	LMT	1915 Mar	# Georgetown
-			-3:45	-	GBGT	1966 May 26 # Br Guiana Time
-			-3:45	-	GYT	1975 Jul 31 # Guyana Time
-			-3:00	-	GYT	1991
-# IATA SSIM (1996-06) says -4:00.  Assume a 1991 switch.
-			-4:00	-	GYT
-
-# Paraguay
-# From Paul Eggert (2006-03-22):
-# Shanks & Pottenger say that spring transitions are from 01:00 -> 02:00,
-# and autumn transitions are from 00:00 -> 23:00.  Go with pre-1999
-# editions of Shanks, and with the IATA, who say transitions occur at 00:00.
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Para	1975	1988	-	Oct	 1	0:00	1:00	S
-Rule	Para	1975	1978	-	Mar	 1	0:00	0	-
-Rule	Para	1979	1991	-	Apr	 1	0:00	0	-
-Rule	Para	1989	only	-	Oct	22	0:00	1:00	S
-Rule	Para	1990	only	-	Oct	 1	0:00	1:00	S
-Rule	Para	1991	only	-	Oct	 6	0:00	1:00	S
-Rule	Para	1992	only	-	Mar	 1	0:00	0	-
-Rule	Para	1992	only	-	Oct	 5	0:00	1:00	S
-Rule	Para	1993	only	-	Mar	31	0:00	0	-
-Rule	Para	1993	1995	-	Oct	 1	0:00	1:00	S
-Rule	Para	1994	1995	-	Feb	lastSun	0:00	0	-
-Rule	Para	1996	only	-	Mar	 1	0:00	0	-
-# IATA SSIM (2000-02) says 1999-10-10; ignore this for now.
-# From Steffen Thorsen (2000-10-02):
-# I have three independent reports that Paraguay changed to DST this Sunday
-# (10-01).
-#
-# Translated by Gwillim Law (2001-02-27) from
-# <a href="http://www.diarionoticias.com.py/011000/nacional/naciona1.htm">
-# Noticias, a daily paper in Asuncion, Paraguay (2000-10-01)
-# </a>:
-# Starting at 0:00 today, the clock will be set forward 60 minutes, in
-# fulfillment of Decree No. 7,273 of the Executive Power....  The time change
-# system has been operating for several years.  Formerly there was a separate
-# decree each year; the new law has the same effect, but permanently.  Every
-# year, the time will change on the first Sunday of October; likewise, the
-# clock will be set back on the first Sunday of March.
-#
-Rule	Para	1996	2001	-	Oct	Sun>=1	0:00	1:00	S
-# IATA SSIM (1997-09) says Mar 1; go with Shanks & Pottenger.
-Rule	Para	1997	only	-	Feb	lastSun	0:00	0	-
-# Shanks & Pottenger say 1999-02-28; IATA SSIM (1999-02) says 1999-02-27, but
-# (1999-09) reports no date; go with above sources and Gerd Knops (2001-02-27).
-Rule	Para	1998	2001	-	Mar	Sun>=1	0:00	0	-
-# From Rives McDow (2002-02-28):
-# A decree was issued in Paraguay (no. 16350) on 2002-02-26 that changed the
-# dst method to be from the first Sunday in September to the first Sunday in
-# April.
-Rule	Para	2002	2004	-	Apr	Sun>=1	0:00	0	-
-Rule	Para	2002	2003	-	Sep	Sun>=1	0:00	1:00	S
-#
-# From Jesper Norgaard Welen (2005-01-02):
-# There are several sources that claim that Paraguay made
-# a timezone rule change in autumn 2004.
-# From Steffen Thorsen (2005-01-05):
-# Decree 1,867 (2004-03-05)
-# From Carlos Raul Perasso via Jesper Norgaard Welen (2006-10-13)
-# <http://www.presidencia.gov.py/decretos/D1867.pdf>
-Rule	Para	2004	max	-	Oct	Sun>=15	0:00	1:00	S
-Rule	Para	2005	max	-	Mar	Sun>=8	0:00	0	-
-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/Asuncion	-3:50:40 -	LMT	1890
-			-3:50:40 -	AMT	1931 Oct 10 # Asuncion Mean Time
-			-4:00	-	PYT	1972 Oct # Paraguay Time
-			-3:00	-	PYT	1974 Apr
-			-4:00	Para	PY%sT
-
-# Peru
-#
-# <a href="news:xrGmb.39935$gA1.13896113@news4.srv.hcvlny.cv.net">
-# From Evelyn C. Leeper via Mark Brader (2003-10-26):</a>
-# When we were in Peru in 1985-1986, they apparently switched over
-# sometime between December 29 and January 3 while we were on the Amazon.
-#
-# From Paul Eggert (2006-03-22):
-# Shanks & Pottenger don't have this transition.  Assume 1986 was like 1987.
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Peru	1938	only	-	Jan	 1	0:00	1:00	S
-Rule	Peru	1938	only	-	Apr	 1	0:00	0	-
-Rule	Peru	1938	1939	-	Sep	lastSun	0:00	1:00	S
-Rule	Peru	1939	1940	-	Mar	Sun>=24	0:00	0	-
-Rule	Peru	1986	1987	-	Jan	 1	0:00	1:00	S
-Rule	Peru	1986	1987	-	Apr	 1	0:00	0	-
-Rule	Peru	1990	only	-	Jan	 1	0:00	1:00	S
-Rule	Peru	1990	only	-	Apr	 1	0:00	0	-
-# IATA is ambiguous for 1993/1995; go with Shanks & Pottenger.
-Rule	Peru	1994	only	-	Jan	 1	0:00	1:00	S
-Rule	Peru	1994	only	-	Apr	 1	0:00	0	-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	America/Lima	-5:08:12 -	LMT	1890
-			-5:08:36 -	LMT	1908 Jul 28 # Lima Mean Time?
-			-5:00	Peru	PE%sT	# Peru Time
-
-# South Georgia
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Atlantic/South_Georgia -2:26:08 -	LMT	1890		# Grytviken
-			-2:00	-	GST	# South Georgia Time
-
-# South Sandwich Is
-# uninhabited; scientific personnel have wintered
-
-# Suriname
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/Paramaribo	-3:40:40 -	LMT	1911
-			-3:40:52 -	PMT	1935     # Paramaribo Mean Time
-			-3:40:36 -	PMT	1945 Oct # The capital moved?
-			-3:30	-	NEGT	1975 Nov 20 # Dutch Guiana Time
-			-3:30	-	SRT	1984 Oct # Suriname Time
-			-3:00	-	SRT
-
-# Trinidad and Tobago
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/Port_of_Spain -4:06:04 -	LMT	1912 Mar 2
-			-4:00	-	AST
-
-# Uruguay
-# From Paul Eggert (1993-11-18):
-# Uruguay wins the prize for the strangest peacetime manipulation of the rules.
-# From Shanks & Pottenger:
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-# Whitman gives 1923 Oct 1; go with Shanks & Pottenger.
-Rule	Uruguay	1923	only	-	Oct	 2	 0:00	0:30	HS
-Rule	Uruguay	1924	1926	-	Apr	 1	 0:00	0	-
-Rule	Uruguay	1924	1925	-	Oct	 1	 0:00	0:30	HS
-Rule	Uruguay	1933	1935	-	Oct	lastSun	 0:00	0:30	HS
-# Shanks & Pottenger give 1935 Apr 1 0:00 & 1936 Mar 30 0:00; go with Whitman.
-Rule	Uruguay	1934	1936	-	Mar	Sat>=25	23:30s	0	-
-Rule	Uruguay	1936	only	-	Nov	 1	 0:00	0:30	HS
-Rule	Uruguay	1937	1941	-	Mar	lastSun	 0:00	0	-
-# Whitman gives 1937 Oct 3; go with Shanks & Pottenger.
-Rule	Uruguay	1937	1940	-	Oct	lastSun	 0:00	0:30	HS
-# Whitman gives 1941 Oct 24 - 1942 Mar 27, 1942 Dec 14 - 1943 Apr 13,
-# and 1943 Apr 13 ``to present time''; go with Shanks & Pottenger.
-Rule	Uruguay	1941	only	-	Aug	 1	 0:00	0:30	HS
-Rule	Uruguay	1942	only	-	Jan	 1	 0:00	0	-
-Rule	Uruguay	1942	only	-	Dec	14	 0:00	1:00	S
-Rule	Uruguay	1943	only	-	Mar	14	 0:00	0	-
-Rule	Uruguay	1959	only	-	May	24	 0:00	1:00	S
-Rule	Uruguay	1959	only	-	Nov	15	 0:00	0	-
-Rule	Uruguay	1960	only	-	Jan	17	 0:00	1:00	S
-Rule	Uruguay	1960	only	-	Mar	 6	 0:00	0	-
-Rule	Uruguay	1965	1967	-	Apr	Sun>=1	 0:00	1:00	S
-Rule	Uruguay	1965	only	-	Sep	26	 0:00	0	-
-Rule	Uruguay	1966	1967	-	Oct	31	 0:00	0	-
-Rule	Uruguay	1968	1970	-	May	27	 0:00	0:30	HS
-Rule	Uruguay	1968	1970	-	Dec	 2	 0:00	0	-
-Rule	Uruguay	1972	only	-	Apr	24	 0:00	1:00	S
-Rule	Uruguay	1972	only	-	Aug	15	 0:00	0	-
-Rule	Uruguay	1974	only	-	Mar	10	 0:00	0:30	HS
-Rule	Uruguay	1974	only	-	Dec	22	 0:00	1:00	S
-Rule	Uruguay	1976	only	-	Oct	 1	 0:00	0	-
-Rule	Uruguay	1977	only	-	Dec	 4	 0:00	1:00	S
-Rule	Uruguay	1978	only	-	Apr	 1	 0:00	0	-
-Rule	Uruguay	1979	only	-	Oct	 1	 0:00	1:00	S
-Rule	Uruguay	1980	only	-	May	 1	 0:00	0	-
-Rule	Uruguay	1987	only	-	Dec	14	 0:00	1:00	S
-Rule	Uruguay	1988	only	-	Mar	14	 0:00	0	-
-Rule	Uruguay	1988	only	-	Dec	11	 0:00	1:00	S
-Rule	Uruguay	1989	only	-	Mar	12	 0:00	0	-
-Rule	Uruguay	1989	only	-	Oct	29	 0:00	1:00	S
-# Shanks & Pottenger say no DST was observed in 1990/1 and 1991/2,
-# and that 1992/3's DST was from 10-25 to 03-01.  Go with IATA.
-Rule	Uruguay	1990	1992	-	Mar	Sun>=1	 0:00	0	-
-Rule	Uruguay	1990	1991	-	Oct	Sun>=21	 0:00	1:00	S
-Rule	Uruguay	1992	only	-	Oct	18	 0:00	1:00	S
-Rule	Uruguay	1993	only	-	Feb	28	 0:00	0	-
-# From Eduardo Cota (2004-09-20):
-# The uruguayan government has decreed a change in the local time....
-# http://www.presidencia.gub.uy/decretos/2004091502.htm
-Rule	Uruguay	2004	only	-	Sep	19	 0:00	1:00	S
-# From Steffen Thorsen (2005-03-11):
-# Uruguay's DST was scheduled to end on Sunday, 2005-03-13, but in order to
-# save energy ... it was postponed two weeks....
-# http://www.presidencia.gub.uy/_Web/noticias/2005/03/2005031005.htm
-Rule	Uruguay	2005	only	-	Mar	27	 2:00	0	-
-# From Eduardo Cota (2005-09-27):
-# http://www.presidencia.gub.uy/_Web/decretos/2005/09/CM%20119_09%2009%202005_00001.PDF
-# This means that from 2005-10-09 at 02:00 local time, until 2006-03-12 at
-# 02:00 local time, official time in Uruguay will be at GMT -2.
-Rule	Uruguay	2005	only	-	Oct	 9	 2:00	1:00	S
-Rule	Uruguay	2006	only	-	Mar	12	 2:00	0	-
-# From Jesper Norgaard Welen (2006-09-06):
-# http://www.presidencia.gub.uy/_web/decretos/2006/09/CM%20210_08%2006%202006_00001.PDF
-Rule	Uruguay	2006	max	-	Oct	Sun>=1	 2:00	1:00	S
-Rule	Uruguay	2007	max	-	Mar	Sun>=8	 2:00	0	-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/Montevideo	-3:44:44 -	LMT	1898 Jun 28
-			-3:44:44 -	MMT	1920 May  1	# Montevideo MT
-			-3:30	Uruguay	UY%sT	1942 Dec 14	# Uruguay Time
-			-3:00	Uruguay	UY%sT
-
-# Venezuela
-#
-# From John Stainforth (2007-11-28):
-# ... the change for Venezuela originally expected for 2007-12-31 has
-# been brought forward to 2007-12-09.  The official announcement was
-# published today in the "Gaceta Oficial de la Republica Bolivariana
-# de Venezuela, numero 38.819" (official document for all laws or
-# resolution publication)
-# http://www.globovision.com/news.php?nid=72208
-
-# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	America/Caracas	-4:27:44 -	LMT	1890
-			-4:27:40 -	CMT	1912 Feb 12 # Caracas Mean Time?
-			-4:30	-	VET	1965	     # Venezuela Time
-			-4:00	-	VET	2007 Dec  9 03:00
-			-4:30	-	VET
diff --git a/libkcal/libical/tzdata/systemv b/libkcal/libical/tzdata/systemv
deleted file mode 100644
index 6cf9645d..00000000
--- a/libkcal/libical/tzdata/systemv
+++ /dev/null
@@ -1,36 +0,0 @@
-# @(#)systemv	8.1
-
-# Old rules, should the need arise.
-# No attempt is made to handle Newfoundland, since it cannot be expressed
-# using the System V "TZ" scheme (half-hour offset), or anything outside
-# North America (no support for non-standard DST start/end dates), nor
-# the changes in the DST rules in the US after 1976 (which occurred after
-# the old rules were written).
-#
-# If you need the old rules, uncomment ## lines.
-# Compile this *without* leap second correction for true conformance.
-
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	SystemV	min	1973	-	Apr	lastSun	2:00	1:00	D
-Rule	SystemV	min	1973	-	Oct	lastSun	2:00	0	S
-Rule	SystemV	1974	only	-	Jan	6	2:00	1:00	D
-Rule	SystemV	1974	only	-	Nov	lastSun	2:00	0	S
-Rule	SystemV	1975	only	-	Feb	23	2:00	1:00	D
-Rule	SystemV	1975	only	-	Oct	lastSun	2:00	0	S
-Rule	SystemV	1976	max	-	Apr	lastSun	2:00	1:00	D
-Rule	SystemV	1976	max	-	Oct	lastSun	2:00	0	S
-
-# Zone	NAME		GMTOFF	RULES/SAVE	FORMAT	[UNTIL]
-## Zone	SystemV/AST4ADT	-4:00	SystemV		A%sT
-## Zone	SystemV/EST5EDT	-5:00	SystemV		E%sT
-## Zone	SystemV/CST6CDT	-6:00	SystemV		C%sT
-## Zone	SystemV/MST7MDT	-7:00	SystemV		M%sT
-## Zone	SystemV/PST8PDT	-8:00	SystemV		P%sT
-## Zone	SystemV/YST9YDT	-9:00	SystemV		Y%sT
-## Zone	SystemV/AST4	-4:00	-		AST
-## Zone	SystemV/EST5	-5:00	-		EST
-## Zone	SystemV/CST6	-6:00	-		CST
-## Zone	SystemV/MST7	-7:00	-		MST
-## Zone	SystemV/PST8	-8:00	-		PST
-## Zone	SystemV/YST9	-9:00	-		YST
-## Zone	SystemV/HST10	-10:00	-		HST
diff --git a/libkcal/libical/tzdata/yearistype.sh b/libkcal/libical/tzdata/yearistype.sh
deleted file mode 100644
index 66dbf89a..00000000
--- a/libkcal/libical/tzdata/yearistype.sh
+++ /dev/null
@@ -1,40 +0,0 @@
-#! /bin/sh
-
-: 'This file is in the public domain, so clarified as of'
-: '2006-07-17 by Arthur David Olson.'
-
-: '@(#)yearistype.sh	8.2'
-
-case $#-$1 in
-	2-|2-0*|2-*[!0-9]*)
-		echo "$0: wild year - $1" >&2
-		exit 1 ;;
-esac
-
-case $#-$2 in
-	2-even)
-		case $1 in
-			*[24680])			exit 0 ;;
-			*)				exit 1 ;;
-		esac ;;
-	2-nonpres|2-nonuspres)
-		case $1 in
-			*[02468][048]|*[13579][26])	exit 1 ;;
-			*)				exit 0 ;;
-		esac ;;
-	2-odd)
-		case $1 in
-			*[13579])			exit 0 ;;
-			*)				exit 1 ;;
-		esac ;;
-	2-uspres)
-		case $1 in
-			*[02468][048]|*[13579][26])	exit 0 ;;
-			*)				exit 1 ;;
-		esac ;;
-	2-*)
-		echo "$0: wild type - $2" >&2 ;;
-esac
-
-echo "$0: usage is $0 year even|odd|uspres|nonpres|nonuspres" >&2
-exit 1
diff --git a/libkcal/libical/tzdata/zone.tab b/libkcal/libical/tzdata/zone.tab
deleted file mode 100644
index 1647036c..00000000
--- a/libkcal/libical/tzdata/zone.tab
+++ /dev/null
@@ -1,423 +0,0 @@
-# @(#)zone.tab	8.16
-#
-# TZ zone descriptions
-#
-# From Paul Eggert (1996-08-05):
-#
-# This file contains a table with the following columns:
-# 1.  ISO 3166 2-character country code.  See the file `iso3166.tab'.
-# 2.  Latitude and longitude of the zone's principal location
-#     in ISO 6709 sign-degrees-minutes-seconds format,
-#     either +-DDMM+-DDDMM or +-DDMMSS+-DDDMMSS,
-#     first latitude (+ is north), then longitude (+ is east).
-# 3.  Zone name used in value of TZ environment variable.
-# 4.  Comments; present if and only if the country has multiple rows.
-#
-# Columns are separated by a single tab.
-# The table is sorted first by country, then an order within the country that
-# (1) makes some geographical sense, and
-# (2) puts the most populous zones first, where that does not contradict (1).
-#
-# Lines beginning with `#' are comments.
-#
-#country-
-#code	coordinates	TZ			comments
-AD	+4230+00131	Europe/Andorra
-AE	+2518+05518	Asia/Dubai
-AF	+3431+06912	Asia/Kabul
-AG	+1703-06148	America/Antigua
-AI	+1812-06304	America/Anguilla
-AL	+4120+01950	Europe/Tirane
-AM	+4011+04430	Asia/Yerevan
-AN	+1211-06900	America/Curacao
-AO	-0848+01314	Africa/Luanda
-AQ	-7750+16636	Antarctica/McMurdo	McMurdo Station, Ross Island
-AQ	-9000+00000	Antarctica/South_Pole	Amundsen-Scott Station, South Pole
-AQ	-6734-06808	Antarctica/Rothera	Rothera Station, Adelaide Island
-AQ	-6448-06406	Antarctica/Palmer	Palmer Station, Anvers Island
-AQ	-6736+06253	Antarctica/Mawson	Mawson Station, Holme Bay
-AQ	-6835+07758	Antarctica/Davis	Davis Station, Vestfold Hills
-AQ	-6617+11031	Antarctica/Casey	Casey Station, Bailey Peninsula
-AQ	-7824+10654	Antarctica/Vostok	Vostok Station, S Magnetic Pole
-AQ	-6640+14001	Antarctica/DumontDUrville	Dumont-d'Urville Station, Terre Adelie
-AQ	-690022+0393524	Antarctica/Syowa	Syowa Station, E Ongul I
-AR	-3436-05827	America/Argentina/Buenos_Aires	Buenos Aires (BA, CF)
-AR	-3124-06411	America/Argentina/Cordoba	most locations (CB, CC, CN, ER, FM, LP, MN, NQ, RN, SA, SE, SF)
-AR	-3319-06621	America/Argentina/San_Luis	San Luis (SL)
-AR	-2411-06518	America/Argentina/Jujuy	Jujuy (JY)
-AR	-2649-06513	America/Argentina/Tucuman	Tucuman (TM)
-AR	-2828-06547	America/Argentina/Catamarca	Catamarca (CT), Chubut (CH)
-AR	-2926-06651	America/Argentina/La_Rioja	La Rioja (LR)
-AR	-3132-06831	America/Argentina/San_Juan	San Juan (SJ)
-AR	-3253-06849	America/Argentina/Mendoza	Mendoza (MZ)
-AR	-5138-06913	America/Argentina/Rio_Gallegos	Santa Cruz (SC)
-AR	-5448-06818	America/Argentina/Ushuaia	Tierra del Fuego (TF)
-AS	-1416-17042	Pacific/Pago_Pago
-AT	+4813+01620	Europe/Vienna
-AU	-3133+15905	Australia/Lord_Howe	Lord Howe Island
-AU	-4253+14719	Australia/Hobart	Tasmania - most locations
-AU	-3956+14352	Australia/Currie	Tasmania - King Island
-AU	-3749+14458	Australia/Melbourne	Victoria
-AU	-3352+15113	Australia/Sydney	New South Wales - most locations
-AU	-3157+14127	Australia/Broken_Hill	New South Wales - Yancowinna
-AU	-2728+15302	Australia/Brisbane	Queensland - most locations
-AU	-2016+14900	Australia/Lindeman	Queensland - Holiday Islands
-AU	-3455+13835	Australia/Adelaide	South Australia
-AU	-1228+13050	Australia/Darwin	Northern Territory
-AU	-3157+11551	Australia/Perth	Western Australia - most locations
-AU	-3143+12852	Australia/Eucla	Western Australia - Eucla area
-AW	+1230-06958	America/Aruba
-AX	+6006+01957	Europe/Mariehamn
-AZ	+4023+04951	Asia/Baku
-BA	+4352+01825	Europe/Sarajevo
-BB	+1306-05937	America/Barbados
-BD	+2343+09025	Asia/Dhaka
-BE	+5050+00420	Europe/Brussels
-BF	+1222-00131	Africa/Ouagadougou
-BG	+4241+02319	Europe/Sofia
-BH	+2623+05035	Asia/Bahrain
-BI	-0323+02922	Africa/Bujumbura
-BJ	+0629+00237	Africa/Porto-Novo
-BL	+1753-06251	America/St_Barthelemy
-BM	+3217-06446	Atlantic/Bermuda
-BN	+0456+11455	Asia/Brunei
-BO	-1630-06809	America/La_Paz
-BR	-0351-03225	America/Noronha	Atlantic islands
-BR	-0127-04829	America/Belem	Amapa, E Para
-BR	-0343-03830	America/Fortaleza	NE Brazil (MA, PI, CE, RN, PB)
-BR	-0803-03454	America/Recife	Pernambuco
-BR	-0712-04812	America/Araguaina	Tocantins
-BR	-0940-03543	America/Maceio	Alagoas, Sergipe
-BR	-1259-03831	America/Bahia	Bahia
-BR	-2332-04637	America/Sao_Paulo	S & SE Brazil (GO, DF, MG, ES, RJ, SP, PR, SC, RS)
-BR	-2027-05437	America/Campo_Grande	Mato Grosso do Sul
-BR	-1535-05605	America/Cuiaba	Mato Grosso
-BR	-0846-06354	America/Porto_Velho	W Para, Rondonia
-BR	+0249-06040	America/Boa_Vista	Roraima
-BR	-0308-06001	America/Manaus	E Amazonas
-BR	-0640-06952	America/Eirunepe	W Amazonas
-BR	-0958-06748	America/Rio_Branco	Acre
-BS	+2505-07721	America/Nassau
-BT	+2728+08939	Asia/Thimphu
-BW	-2545+02555	Africa/Gaborone
-BY	+5354+02734	Europe/Minsk
-BZ	+1730-08812	America/Belize
-CA	+4734-05243	America/St_Johns	Newfoundland Time, including SE Labrador
-CA	+4439-06336	America/Halifax	Atlantic Time - Nova Scotia (most places), PEI
-CA	+4612-05957	America/Glace_Bay	Atlantic Time - Nova Scotia - places that did not observe DST 1966-1971
-CA	+4606-06447	America/Moncton	Atlantic Time - New Brunswick
-CA	+5320-06025	America/Goose_Bay	Atlantic Time - Labrador - most locations
-CA	+5125-05707	America/Blanc-Sablon	Atlantic Standard Time - Quebec - Lower North Shore
-CA	+4531-07334	America/Montreal	Eastern Time - Quebec - most locations
-CA	+4339-07923	America/Toronto	Eastern Time - Ontario - most locations
-CA	+4901-08816	America/Nipigon	Eastern Time - Ontario & Quebec - places that did not observe DST 1967-1973
-CA	+4823-08915	America/Thunder_Bay	Eastern Time - Thunder Bay, Ontario
-CA	+6344-06828	America/Iqaluit	Eastern Time - east Nunavut - most locations
-CA	+6608-06544	America/Pangnirtung	Eastern Time - Pangnirtung, Nunavut
-CA	+744144-0944945	America/Resolute	Eastern Time - Resolute, Nunavut
-CA	+484531-0913718	America/Atikokan	Eastern Standard Time - Atikokan, Ontario and Southampton I, Nunavut
-CA	+624900-0920459	America/Rankin_Inlet	Central Time - central Nunavut
-CA	+4953-09709	America/Winnipeg	Central Time - Manitoba & west Ontario
-CA	+4843-09434	America/Rainy_River	Central Time - Rainy River & Fort Frances, Ontario
-CA	+5024-10439	America/Regina	Central Standard Time - Saskatchewan - most locations
-CA	+5017-10750	America/Swift_Current	Central Standard Time - Saskatchewan - midwest
-CA	+5333-11328	America/Edmonton	Mountain Time - Alberta, east British Columbia & west Saskatchewan
-CA	+690650-1050310	America/Cambridge_Bay	Mountain Time - west Nunavut
-CA	+6227-11421	America/Yellowknife	Mountain Time - central Northwest Territories
-CA	+682059-1334300	America/Inuvik	Mountain Time - west Northwest Territories
-CA	+5946-12014	America/Dawson_Creek	Mountain Standard Time - Dawson Creek & Fort Saint John, British Columbia
-CA	+4916-12307	America/Vancouver	Pacific Time - west British Columbia
-CA	+6043-13503	America/Whitehorse	Pacific Time - south Yukon
-CA	+6404-13925	America/Dawson	Pacific Time - north Yukon
-CC	-1210+09655	Indian/Cocos
-CD	-0418+01518	Africa/Kinshasa	west Dem. Rep. of Congo
-CD	-1140+02728	Africa/Lubumbashi	east Dem. Rep. of Congo
-CF	+0422+01835	Africa/Bangui
-CG	-0416+01517	Africa/Brazzaville
-CH	+4723+00832	Europe/Zurich
-CI	+0519-00402	Africa/Abidjan
-CK	-2114-15946	Pacific/Rarotonga
-CL	-3327-07040	America/Santiago	most locations
-CL	-2709-10926	Pacific/Easter	Easter Island & Sala y Gomez
-CM	+0403+00942	Africa/Douala
-CN	+3114+12128	Asia/Shanghai	east China - Beijing, Guangdong, Shanghai, etc.
-CN	+4545+12641	Asia/Harbin	Heilongjiang (except Mohe), Jilin
-CN	+2934+10635	Asia/Chongqing	central China - Sichuan, Yunnan, Guangxi, Shaanxi, Guizhou, etc.
-CN	+4348+08735	Asia/Urumqi	most of Tibet & Xinjiang
-CN	+3929+07559	Asia/Kashgar	west Tibet & Xinjiang
-CO	+0436-07405	America/Bogota
-CR	+0956-08405	America/Costa_Rica
-CU	+2308-08222	America/Havana
-CV	+1455-02331	Atlantic/Cape_Verde
-CX	-1025+10543	Indian/Christmas
-CY	+3510+03322	Asia/Nicosia
-CZ	+5005+01426	Europe/Prague
-DE	+5230+01322	Europe/Berlin
-DJ	+1136+04309	Africa/Djibouti
-DK	+5540+01235	Europe/Copenhagen
-DM	+1518-06124	America/Dominica
-DO	+1828-06954	America/Santo_Domingo
-DZ	+3647+00303	Africa/Algiers
-EC	-0210-07950	America/Guayaquil	mainland
-EC	-0054-08936	Pacific/Galapagos	Galapagos Islands
-EE	+5925+02445	Europe/Tallinn
-EG	+3003+03115	Africa/Cairo
-EH	+2709-01312	Africa/El_Aaiun
-ER	+1520+03853	Africa/Asmara
-ES	+4024-00341	Europe/Madrid	mainland
-ES	+3553-00519	Africa/Ceuta	Ceuta & Melilla
-ES	+2806-01524	Atlantic/Canary	Canary Islands
-ET	+0902+03842	Africa/Addis_Ababa
-FI	+6010+02458	Europe/Helsinki
-FJ	-1808+17825	Pacific/Fiji
-FK	-5142-05751	Atlantic/Stanley
-FM	+0725+15147	Pacific/Truk	Truk (Chuuk) and Yap
-FM	+0658+15813	Pacific/Ponape	Ponape (Pohnpei)
-FM	+0519+16259	Pacific/Kosrae	Kosrae
-FO	+6201-00646	Atlantic/Faroe
-FR	+4852+00220	Europe/Paris
-GA	+0023+00927	Africa/Libreville
-GB	+513030-0000731	Europe/London
-GD	+1203-06145	America/Grenada
-GE	+4143+04449	Asia/Tbilisi
-GF	+0456-05220	America/Cayenne
-GG	+4927-00232	Europe/Guernsey
-GH	+0533-00013	Africa/Accra
-GI	+3608-00521	Europe/Gibraltar
-GL	+6411-05144	America/Godthab	most locations
-GL	+7646-01840	America/Danmarkshavn	east coast, north of Scoresbysund
-GL	+7029-02158	America/Scoresbysund	Scoresbysund / Ittoqqortoormiit
-GL	+7634-06847	America/Thule	Thule / Pituffik
-GM	+1328-01639	Africa/Banjul
-GN	+0931-01343	Africa/Conakry
-GP	+1614-06132	America/Guadeloupe
-GQ	+0345+00847	Africa/Malabo
-GR	+3758+02343	Europe/Athens
-GS	-5416-03632	Atlantic/South_Georgia
-GT	+1438-09031	America/Guatemala
-GU	+1328+14445	Pacific/Guam
-GW	+1151-01535	Africa/Bissau
-GY	+0648-05810	America/Guyana
-HK	+2217+11409	Asia/Hong_Kong
-HN	+1406-08713	America/Tegucigalpa
-HR	+4548+01558	Europe/Zagreb
-HT	+1832-07220	America/Port-au-Prince
-HU	+4730+01905	Europe/Budapest
-ID	-0610+10648	Asia/Jakarta	Java & Sumatra
-ID	-0002+10920	Asia/Pontianak	west & central Borneo
-ID	-0507+11924	Asia/Makassar	east & south Borneo, Celebes, Bali, Nusa Tengarra, west Timor
-ID	-0232+14042	Asia/Jayapura	Irian Jaya & the Moluccas
-IE	+5320-00615	Europe/Dublin
-IL	+3146+03514	Asia/Jerusalem
-IM	+5409-00428	Europe/Isle_of_Man
-IN	+2232+08822	Asia/Kolkata
-IO	-0720+07225	Indian/Chagos
-IQ	+3321+04425	Asia/Baghdad
-IR	+3540+05126	Asia/Tehran
-IS	+6409-02151	Atlantic/Reykjavik
-IT	+4154+01229	Europe/Rome
-JE	+4912-00207	Europe/Jersey
-JM	+1800-07648	America/Jamaica
-JO	+3157+03556	Asia/Amman
-JP	+353916+1394441	Asia/Tokyo
-KE	-0117+03649	Africa/Nairobi
-KG	+4254+07436	Asia/Bishkek
-KH	+1133+10455	Asia/Phnom_Penh
-KI	+0125+17300	Pacific/Tarawa	Gilbert Islands
-KI	-0308-17105	Pacific/Enderbury	Phoenix Islands
-KI	+0152-15720	Pacific/Kiritimati	Line Islands
-KM	-1141+04316	Indian/Comoro
-KN	+1718-06243	America/St_Kitts
-KP	+3901+12545	Asia/Pyongyang
-KR	+3733+12658	Asia/Seoul
-KW	+2920+04759	Asia/Kuwait
-KY	+1918-08123	America/Cayman
-KZ	+4315+07657	Asia/Almaty	most locations
-KZ	+4448+06528	Asia/Qyzylorda	Qyzylorda (Kyzylorda, Kzyl-Orda)
-KZ	+5017+05710	Asia/Aqtobe	Aqtobe (Aktobe)
-KZ	+4431+05016	Asia/Aqtau	Atyrau (Atirau, Gur'yev), Mangghystau (Mankistau)
-KZ	+5113+05121	Asia/Oral	West Kazakhstan
-LA	+1758+10236	Asia/Vientiane
-LB	+3353+03530	Asia/Beirut
-LC	+1401-06100	America/St_Lucia
-LI	+4709+00931	Europe/Vaduz
-LK	+0656+07951	Asia/Colombo
-LR	+0618-01047	Africa/Monrovia
-LS	-2928+02730	Africa/Maseru
-LT	+5441+02519	Europe/Vilnius
-LU	+4936+00609	Europe/Luxembourg
-LV	+5657+02406	Europe/Riga
-LY	+3254+01311	Africa/Tripoli
-MA	+3339-00735	Africa/Casablanca
-MC	+4342+00723	Europe/Monaco
-MD	+4700+02850	Europe/Chisinau
-ME	+4226+01916	Europe/Podgorica
-MF	+1804-06305	America/Marigot
-MG	-1855+04731	Indian/Antananarivo
-MH	+0709+17112	Pacific/Majuro	most locations
-MH	+0905+16720	Pacific/Kwajalein	Kwajalein
-MK	+4159+02126	Europe/Skopje
-ML	+1239-00800	Africa/Bamako
-MM	+1647+09610	Asia/Rangoon
-MN	+4755+10653	Asia/Ulaanbaatar	most locations
-MN	+4801+09139	Asia/Hovd	Bayan-Olgiy, Govi-Altai, Hovd, Uvs, Zavkhan
-MN	+4804+11430	Asia/Choibalsan	Dornod, Sukhbaatar
-MO	+2214+11335	Asia/Macau
-MP	+1512+14545	Pacific/Saipan
-MQ	+1436-06105	America/Martinique
-MR	+1806-01557	Africa/Nouakchott
-MS	+1643-06213	America/Montserrat
-MT	+3554+01431	Europe/Malta
-MU	-2010+05730	Indian/Mauritius
-MV	+0410+07330	Indian/Maldives
-MW	-1547+03500	Africa/Blantyre
-MX	+1924-09909	America/Mexico_City	Central Time - most locations
-MX	+2105-08646	America/Cancun	Central Time - Quintana Roo
-MX	+2058-08937	America/Merida	Central Time - Campeche, Yucatan
-MX	+2540-10019	America/Monterrey	Central Time - Coahuila, Durango, Nuevo Leon, Tamaulipas
-MX	+2313-10625	America/Mazatlan	Mountain Time - S Baja, Nayarit, Sinaloa
-MX	+2838-10605	America/Chihuahua	Mountain Time - Chihuahua
-MX	+2904-11058	America/Hermosillo	Mountain Standard Time - Sonora
-MX	+3232-11701	America/Tijuana	Pacific Time
-MY	+0310+10142	Asia/Kuala_Lumpur	peninsular Malaysia
-MY	+0133+11020	Asia/Kuching	Sabah & Sarawak
-MZ	-2558+03235	Africa/Maputo
-NA	-2234+01706	Africa/Windhoek
-NC	-2216+16530	Pacific/Noumea
-NE	+1331+00207	Africa/Niamey
-NF	-2903+16758	Pacific/Norfolk
-NG	+0627+00324	Africa/Lagos
-NI	+1209-08617	America/Managua
-NL	+5222+00454	Europe/Amsterdam
-NO	+5955+01045	Europe/Oslo
-NP	+2743+08519	Asia/Katmandu
-NR	-0031+16655	Pacific/Nauru
-NU	-1901+16955	Pacific/Niue
-NZ	-3652+17446	Pacific/Auckland	most locations
-NZ	-4357-17633	Pacific/Chatham	Chatham Islands
-OM	+2336+05835	Asia/Muscat
-PA	+0858-07932	America/Panama
-PE	-1203-07703	America/Lima
-PF	-1732-14934	Pacific/Tahiti	Society Islands
-PF	-0900-13930	Pacific/Marquesas	Marquesas Islands
-PF	-2308-13457	Pacific/Gambier	Gambier Islands
-PG	-0930+14710	Pacific/Port_Moresby
-PH	+1435+12100	Asia/Manila
-PK	+2452+06703	Asia/Karachi
-PL	+5215+02100	Europe/Warsaw
-PM	+4703-05620	America/Miquelon
-PN	-2504-13005	Pacific/Pitcairn
-PR	+182806-0660622	America/Puerto_Rico
-PS	+3130+03428	Asia/Gaza
-PT	+3843-00908	Europe/Lisbon	mainland
-PT	+3238-01654	Atlantic/Madeira	Madeira Islands
-PT	+3744-02540	Atlantic/Azores	Azores
-PW	+0720+13429	Pacific/Palau
-PY	-2516-05740	America/Asuncion
-QA	+2517+05132	Asia/Qatar
-RE	-2052+05528	Indian/Reunion
-RO	+4426+02606	Europe/Bucharest
-RS	+4450+02030	Europe/Belgrade
-RU	+5443+02030	Europe/Kaliningrad	Moscow-01 - Kaliningrad
-RU	+5545+03735	Europe/Moscow	Moscow+00 - west Russia
-RU	+4844+04425	Europe/Volgograd	Moscow+00 - Caspian Sea
-RU	+5312+05009	Europe/Samara	Moscow+01 - Samara, Udmurtia
-RU	+5651+06036	Asia/Yekaterinburg	Moscow+02 - Urals
-RU	+5500+07324	Asia/Omsk	Moscow+03 - west Siberia
-RU	+5502+08255	Asia/Novosibirsk	Moscow+03 - Novosibirsk
-RU	+5601+09250	Asia/Krasnoyarsk	Moscow+04 - Yenisei River
-RU	+5216+10420	Asia/Irkutsk	Moscow+05 - Lake Baikal
-RU	+6200+12940	Asia/Yakutsk	Moscow+06 - Lena River
-RU	+4310+13156	Asia/Vladivostok	Moscow+07 - Amur River
-RU	+4658+14242	Asia/Sakhalin	Moscow+07 - Sakhalin Island
-RU	+5934+15048	Asia/Magadan	Moscow+08 - Magadan
-RU	+5301+15839	Asia/Kamchatka	Moscow+09 - Kamchatka
-RU	+6445+17729	Asia/Anadyr	Moscow+10 - Bering Sea
-RW	-0157+03004	Africa/Kigali
-SA	+2438+04643	Asia/Riyadh
-SB	-0932+16012	Pacific/Guadalcanal
-SC	-0440+05528	Indian/Mahe
-SD	+1536+03232	Africa/Khartoum
-SE	+5920+01803	Europe/Stockholm
-SG	+0117+10351	Asia/Singapore
-SH	-1555-00542	Atlantic/St_Helena
-SI	+4603+01431	Europe/Ljubljana
-SJ	+7800+01600	Arctic/Longyearbyen
-SK	+4809+01707	Europe/Bratislava
-SL	+0830-01315	Africa/Freetown
-SM	+4355+01228	Europe/San_Marino
-SN	+1440-01726	Africa/Dakar
-SO	+0204+04522	Africa/Mogadishu
-SR	+0550-05510	America/Paramaribo
-ST	+0020+00644	Africa/Sao_Tome
-SV	+1342-08912	America/El_Salvador
-SY	+3330+03618	Asia/Damascus
-SZ	-2618+03106	Africa/Mbabane
-TC	+2128-07108	America/Grand_Turk
-TD	+1207+01503	Africa/Ndjamena
-TF	-492110+0701303	Indian/Kerguelen
-TG	+0608+00113	Africa/Lome
-TH	+1345+10031	Asia/Bangkok
-TJ	+3835+06848	Asia/Dushanbe
-TK	-0922-17114	Pacific/Fakaofo
-TL	-0833+12535	Asia/Dili
-TM	+3757+05823	Asia/Ashgabat
-TN	+3648+01011	Africa/Tunis
-TO	-2110+17510	Pacific/Tongatapu
-TR	+4101+02858	Europe/Istanbul
-TT	+1039-06131	America/Port_of_Spain
-TV	-0831+17913	Pacific/Funafuti
-TW	+2503+12130	Asia/Taipei
-TZ	-0648+03917	Africa/Dar_es_Salaam
-UA	+5026+03031	Europe/Kiev	most locations
-UA	+4837+02218	Europe/Uzhgorod	Ruthenia
-UA	+4750+03510	Europe/Zaporozhye	Zaporozh'ye, E Lugansk / Zaporizhia, E Luhansk
-UA	+4457+03406	Europe/Simferopol	central Crimea
-UG	+0019+03225	Africa/Kampala
-UM	+1645-16931	Pacific/Johnston	Johnston Atoll
-UM	+2813-17722	Pacific/Midway	Midway Islands
-UM	+1917+16637	Pacific/Wake	Wake Island
-US	+404251-0740023	America/New_York	Eastern Time
-US	+421953-0830245	America/Detroit	Eastern Time - Michigan - most locations
-US	+381515-0854534	America/Kentucky/Louisville	Eastern Time - Kentucky - Louisville area
-US	+364947-0845057	America/Kentucky/Monticello	Eastern Time - Kentucky - Wayne County
-US	+394606-0860929	America/Indiana/Indianapolis	Eastern Time - Indiana - most locations
-US	+384038-0873143	America/Indiana/Vincennes	Eastern Time - Indiana - Daviess, Dubois, Knox & Martin Counties
-US	+411745-0863730	America/Indiana/Knox	Eastern Time - Indiana - Starke County
-US	+410305-0863611	America/Indiana/Winamac	Eastern Time - Indiana - Pulaski County
-US	+382232-0862041	America/Indiana/Marengo	Eastern Time - Indiana - Crawford County
-US	+384452-0850402	America/Indiana/Vevay	Eastern Time - Indiana - Switzerland County
-US	+415100-0873900	America/Chicago	Central Time
-US	+375711-0864541	America/Indiana/Tell_City	Central Time - Indiana - Perry County
-US	+382931-0871643	America/Indiana/Petersburg	Central Time - Indiana - Pike County
-US	+450628-0873651	America/Menominee	Central Time - Michigan - Dickinson, Gogebic, Iron & Menominee Counties
-US	+470659-1011757	America/North_Dakota/Center	Central Time - North Dakota - Oliver County
-US	+465042-1012439	America/North_Dakota/New_Salem	Central Time - North Dakota - Morton County (except Mandan area)
-US	+394421-1045903	America/Denver	Mountain Time
-US	+433649-1161209	America/Boise	Mountain Time - south Idaho & east Oregon
-US	+364708-1084111	America/Shiprock	Mountain Time - Navajo
-US	+332654-1120424	America/Phoenix	Mountain Standard Time - Arizona
-US	+340308-1181434	America/Los_Angeles	Pacific Time
-US	+611305-1495401	America/Anchorage	Alaska Time
-US	+581807-1342511	America/Juneau	Alaska Time - Alaska panhandle
-US	+593249-1394338	America/Yakutat	Alaska Time - Alaska panhandle neck
-US	+643004-1652423	America/Nome	Alaska Time - west Alaska
-US	+515248-1763929	America/Adak	Aleutian Islands
-US	+211825-1575130	Pacific/Honolulu	Hawaii
-UY	-3453-05611	America/Montevideo
-UZ	+3940+06648	Asia/Samarkand	west Uzbekistan
-UZ	+4120+06918	Asia/Tashkent	east Uzbekistan
-VA	+4154+01227	Europe/Vatican
-VC	+1309-06114	America/St_Vincent
-VE	+1030-06656	America/Caracas
-VG	+1827-06437	America/Tortola
-VI	+1821-06456	America/St_Thomas
-VN	+1045+10640	Asia/Ho_Chi_Minh
-VU	-1740+16825	Pacific/Efate
-WF	-1318-17610	Pacific/Wallis
-WS	-1350-17144	Pacific/Apia
-YE	+1245+04512	Asia/Aden
-YT	-1247+04514	Indian/Mayotte
-ZA	-2615+02800	Africa/Johannesburg
-ZM	-1525+02817	Africa/Lusaka
-ZW	-1750+03103	Africa/Harare
diff --git a/libkcal/libical/vzic-1.3/ChangeLog b/libkcal/libical/vzic-1.3/ChangeLog
deleted file mode 100644
index f2d9569e..00000000
--- a/libkcal/libical/vzic-1.3/ChangeLog
+++ /dev/null
@@ -1,57 +0,0 @@
-2006-03-18  Damon Chaplin  <damon@gnome.org>
-
-	* Released Vzic 1.3
-
-2006-03-18  Damon Chaplin  <damon@gnome.org>
-
-	* vzic-output.c (expand_tzname): added special case for America/Nome.
-	(output_rrule): made hacks a bit more general, to handle Asia/Gaza
-	which now has a day=4 rule. At some point we should check what newer
-	versions of Outlook can handle so we can be more accurate.
-
-	* vzic-dump.c (dump_time_zone_names): try looking for timezone info
-	using original and linked name.
-
-	* README, *.c: fixed spelling 'compatable' -> 'compatible'.
-
-	* vzic.c: patch from Jonathan Guthrie to support a --olson-dir option.
-
-2003-10-25  Damon Chaplin  <damon@gnome.org>
-
-	* Released Vzic 1.2
-
-2003-10-25  Damon Chaplin  <damon@gnome.org>
-
-	* vzic-output.c: 
-	* Makefile: moved the PRODUCT_ID and TZID_PREFIX settings to the
-	Makefile and changed the default so people don't accidentally use
-	the same IDs as Evolution.
-
-	* vzic-parse.c (parse_time): substitute 23:59:59 when we read a time
-	of 24:00:00. This is a bit of a kludge to avoid problems, since
-	24:00:00 is not a valid iCalendar time. Since 24:00:00 is only used
-	for a few timezones in the 1930s it doesn't matter too much.
-	
-	To write a correct fix we'd need to review all the code that deals
-	with times to see if it would be affected, e.g. a time of 24:00 on
-	one day should be considered equal to 0:00 the next day.
-
-	We'd also need to adjust the output times to use 0:00 the next day
-	rather than 24:00. If we need to output recurrence rules that would
-	be a problem, since 'last saturday at 24:00' can't be easily
-	converted to another rule that uses 0:00 instead.
-
-2003-10-22  Damon Chaplin  <damon@gnome.org>
-
-	* Released Vzic 1.1
-
-2003-10-22  Damon Chaplin  <damon@gnome.org>
-
-	* vzic-parse.c (parse_time): allow a time of 24:00, as used in
-	the America/Montreal and America/Toronto rules in the 1930s!
-	I'm not 100% sure the rest of the code will handle this OK, but
-	it only affects the 'pure' output.
-
-2003-09-01  Damon Chaplin  <damon@gnome.org>
-
-	* Released Vzic 1.0
diff --git a/libkcal/libical/vzic-1.3/Makefile b/libkcal/libical/vzic-1.3/Makefile
deleted file mode 100644
index 7196c152..00000000
--- a/libkcal/libical/vzic-1.3/Makefile
+++ /dev/null
@@ -1,83 +0,0 @@
-
-#
-# You will need to set this to the directory that the Olson timezone data
-# files are in.
-#
-OLSON_DIR = ../tzdata
-
-
-# This is used as the PRODID property on the iCalendar files output.
-# It identifies the product which created the iCalendar objects.
-# So you need to substitute your own organization name and product.
-PRODUCT_ID = -//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-
-
-# This is used to create unique IDs for each VTIMEZONE component.
-# The prefix is put before each timezone city name. It should start and end
-# with a '/'. The first part, i.e. 'myorganization.org' below, should be
-# a unique vendor ID, e.g. use a hostname. The part after that can be
-# anything you want. We use a date and version number for libical. The %D
-# gets expanded to today's date. There is also a vzic-merge.pl which can be
-# used to merge changes into a master set of VTIMEZONEs. If a VTIMEZONE has
-# changed, it bumps the version number on the end of this prefix. */
-TZID_PREFIX = /kde.org/Olson_%D_1/
-
-
-# Set any -I include directories to find the libical header files, and the
-# libical library to link with. You only need these if you want to run the
-# tests. You may need to change the '#include <ical.h>' line at the top of
-# test-vzic.c as well.
-LIBICAL_CFLAGS =
-LIBICAL_LDADD = -lical-evolution
-
-
-#
-# You shouldn't need to change the rest of the file.
-#
-
-GLIB_CFLAGS = `pkg-config --cflags glib-2.0`
-GLIB_LDADD = `pkg-config --libs glib-2.0`
-
-CFLAGS = -g -DOLSON_DIR=\"$(OLSON_DIR)\" -DPRODUCT_ID='"$(PRODUCT_ID)"' -DTZID_PREFIX='"$(TZID_PREFIX)"' $(GLIB_CFLAGS) $(LIBICAL_CFLAGS)
-
-OBJECTS = vzic.o vzic-parse.o vzic-dump.o vzic-output.o
-
-all: vzic
-
-vzic: $(OBJECTS)
-	$(CC) $(OBJECTS) $(GLIB_LDADD) -o vzic
-
-test-vzic: test-vzic.o
-	$(CC) test-vzic.o $(LIBICAL_LDADD) -o test-vzic
-
-# Dependencies.
-$(OBJECTS): vzic.h
-vzic.o vzic-parse.o: vzic-parse.h
-vzic.o vzic-dump.o: vzic-dump.h
-vzic.o vzic-output.o: vzic-output.h
-
-test-parse: vzic
-	./vzic-dump.pl $(OLSON_DIR)
-	./vzic --dump --pure
-	@echo
-	@echo "#"
-	@echo "# If either of these diff commands outputs anything there may be a problem."
-	@echo "#"
-	diff -ru zoneinfo/ZonesPerl zoneinfo/ZonesVzic
-	diff -ru zoneinfo/RulesPerl zoneinfo/RulesVzic
-
-test-changes: vzic test-vzic
-	./test-vzic --dump-changes
-	./vzic --dump-changes --pure
-	@echo
-	@echo "#"
-	@echo "# If this diff command outputs anything there may be a problem."
-	@echo "#"
-	diff -ru zoneinfo/ChangesVzic test-output
-
-clean:
-	-rm -rf vzic $(OBJECTS) *~ ChangesVzic RulesVzic ZonesVzic RulesPerl ZonesPerl test-vzic test-vzic.o
-
-.PHONY: clean perl-dump test-parse
-
-
diff --git a/libkcal/libical/vzic-1.3/Makefile.org b/libkcal/libical/vzic-1.3/Makefile.org
deleted file mode 100644
index 4b5917c2..00000000
--- a/libkcal/libical/vzic-1.3/Makefile.org
+++ /dev/null
@@ -1,89 +0,0 @@
-
-#
-# You will need to set this to the directory that the Olson timezone data
-# files are in.
-#
-OLSON_DIR = /home/damon/src/olson/tzdata2006b
-
-
-# This is used as the PRODID property on the iCalendar files output.
-# It identifies the product which created the iCalendar objects.
-# So you need to substitute your own organization name and product.
-PRODUCT_ID = -//My Organization//NONSGML My Product//EN
-
-# This is what libical-evolution uses.
-#PRODUCT_ID = -//Ximian//NONSGML Evolution Olson-VTIMEZONE Converter//EN
-
-
-# This is used to create unique IDs for each VTIMEZONE component.
-# The prefix is put before each timezone city name. It should start and end
-# with a '/'. The first part, i.e. 'myorganization.org' below, should be
-# a unique vendor ID, e.g. use a hostname. The part after that can be
-# anything you want. We use a date and version number for libical. The %D
-# gets expanded to today's date. There is also a vzic-merge.pl which can be
-# used to merge changes into a master set of VTIMEZONEs. If a VTIMEZONE has
-# changed, it bumps the version number on the end of this prefix. */
-TZID_PREFIX = /myorganization.org/%D_1/
-
-# This is what libical-evolution uses.
-#TZID_PREFIX = /softwarestudio.org/Olson_%D_1/
-
-
-# Set any -I include directories to find the libical header files, and the
-# libical library to link with. You only need these if you want to run the
-# tests. You may need to change the '#include <ical.h>' line at the top of
-# test-vzic.c as well.
-LIBICAL_CFLAGS =
-LIBICAL_LDADD = -lical-evolution
-
-
-#
-# You shouldn't need to change the rest of the file.
-#
-
-GLIB_CFLAGS = `pkg-config --cflags glib-2.0`
-GLIB_LDADD = `pkg-config --libs glib-2.0`
-
-CFLAGS = -g -DOLSON_DIR=\"$(OLSON_DIR)\" -DPRODUCT_ID='"$(PRODUCT_ID)"' -DTZID_PREFIX='"$(TZID_PREFIX)"' $(GLIB_CFLAGS) $(LIBICAL_CFLAGS)
-
-OBJECTS = vzic.o vzic-parse.o vzic-dump.o vzic-output.o
-
-all: vzic
-
-vzic: $(OBJECTS)
-	$(CC) $(OBJECTS) $(GLIB_LDADD) -o vzic
-
-test-vzic: test-vzic.o
-	$(CC) test-vzic.o $(LIBICAL_LDADD) -o test-vzic
-
-# Dependencies.
-$(OBJECTS): vzic.h
-vzic.o vzic-parse.o: vzic-parse.h
-vzic.o vzic-dump.o: vzic-dump.h
-vzic.o vzic-output.o: vzic-output.h
-
-test-parse: vzic
-	./vzic-dump.pl $(OLSON_DIR)
-	./vzic --dump --pure
-	@echo
-	@echo "#"
-	@echo "# If either of these diff commands outputs anything there may be a problem."
-	@echo "#"
-	diff -ru zoneinfo/ZonesPerl zoneinfo/ZonesVzic
-	diff -ru zoneinfo/RulesPerl zoneinfo/RulesVzic
-
-test-changes: vzic test-vzic
-	./test-vzic --dump-changes
-	./vzic --dump-changes --pure
-	@echo
-	@echo "#"
-	@echo "# If this diff command outputs anything there may be a problem."
-	@echo "#"
-	diff -ru zoneinfo/ChangesVzic test-output
-
-clean:
-	-rm -rf vzic $(OBJECTS) *~ ChangesVzic RulesVzic ZonesVzic RulesPerl ZonesPerl test-vzic test-vzic.o
-
-.PHONY: clean perl-dump test-parse
-
-
diff --git a/libkcal/libical/vzic-1.3/README b/libkcal/libical/vzic-1.3/README
deleted file mode 100644
index 962ff2e6..00000000
--- a/libkcal/libical/vzic-1.3/README
+++ /dev/null
@@ -1,202 +0,0 @@
-
-
-VZIC README
-===========
-
-This is 'vzic', a program to convert the Olson timezone database files into
-VTIMEZONE files compatible with the iCalendar specification (RFC2445).
-
-(The name is based on the 'zic' program which converts the Olson files into
-time zone information files used by several Unix C libraries, including
-glibc. See zic(8) and tzfile(5).)
-
-
-
-REQUIREMENTS
-============
-
-You need the Olson timezone database files, which  can be found at:
-
-  ftp://elsie.nci.nih.gov/pub/
-
-  (Old versions can be found at ftp://munnari.oz.au/pub/oldtz/)
-
-
-Vzic also uses the GLib library (for hash tables, dynamic arrays, and date
-calculations). You need version 2.0 or higher. You can get this from:
-
-  http://www.gtk.org
-
-
-
-BUILDING
-========
-
-Edit the Makefile to set the OLSON_DIR, PRODUCT_ID and TZID_PREFIX variables.
-
-Then run 'make'.
-
-
-
-RUNNING
-=======
-
-Run 'vzic'.
-
-The output is placed in the zoneinfo subdirectory by default,
-but you can use the --output-dir options to set another toplevel output
-directory.
-
-By default it outputs VTIMEZONEs that try to be compatible with Outlook
-(2000, at least). Outlook can't handle certain iCalendar constructs in
-VTIMEZONEs, such as RRULEs using BYMONTHDAY, so it has to adjust the RRULEs
-slightly to get Outlook to parse them. Unfortunately this means they are
-slightly wrong. If given the --pure option, vzic outputs the exact data,
-without worrying about compatability.
-
-NOTE: We don't convert all the Olson files. We skip 'backward', 'etcetera',
-'leapseconds', 'pacificnew', 'solar87', 'solar88' and 'solar89', 'factory'
-and 'systemv', since these don't really provide any useful timezones.
-See vzic.c.
-
-
-
-MERGING CHANGES INTO A MASTER SET OF VTIMEZONES
-===============================================
-
-The Olson timezone files are updated fairly often, so we need to build new
-sets of VTIMEZONE files. Though we have to be careful to ensure that the TZID
-of updated timezones is also updated, since it must remain unique.
-
-We use a version number on the end of the TZID prefix (see the TZIDPrefix
-variable in vzic-output.c) to ensure this uniqueness.
-
-But we don't want to update the version numbers of VTIMEZONEs which have not
-changed. So we use the vzic-merge.pl Perl script. This merges in the new set
-of VTIMEZONEs with a 'master' set. It compares each new VTIMEZONE file with
-the one in the master set (ignoring changes to the TZID). If the new
-VTIMEZONE file is different, it copies it to the master set and sets the
-version number to the old VTIMEZONE's version number + 1.
-
-To use vzic-merge.pl you must change the $MASTER_ZONEINFO_DIR and
-$NEW_ZONEINFO_DIR variables at the top of the file to point to your 2 sets of
-VTIMEZONEs. You then just run the script. (I recommend you keep a backup of
-the old master VTIMEZONE files, and use diff to compare the new master set
-with the old one, in case anything goes wrong.)
-
-You must merge in changes to the zones.tab file by hand.
-
-Note that some timezones are renamed or removed occasionally, so applications
-should be able to cope with this.
-
-
-
-COMPATABILITY NOTES
-===================
-
-It seems that Microsoft Outlook is very picky about the iCalendar files it
-will accept. (I've been testing with Outlook 2000. I hope the other versions
-are no worse.) Here's a few problems we've had with the VTIMEZONEs:
-
- o Outlook doesn't like any years before 1600. We were using '1st Jan 0001'
-   in all VTIMEZONEs to specify the first UTC offset known for the timezone.
-   (The Olson data does not give a start date for this.)
-
-   Now we just skip this first component for most timezones. The UTC offset
-   can still be found from the TZOFFSETFROM property of the first component.
-
-   Though some timezones only specify one UTC offset that applies forever,
-   so in these cases we output '1st Jan 1970' (Indian/Cocos,
-   Pacific/Johnston).
-
- o Outlook doesn't like the BYMONTHDAY specifier in RRULEs.
-
-   We have changed most of the VTIMEZONEs to use things like 'BYDAY=2SU'
-   rather than 'BYMONTHDAY=8,9,10,11,12,13,14;BYDAY=SU', though some of
-   them were impossible to convert correctly so they are not always correct.
-
- o Outlook doesn't like TZOFFSETFROM/TZOFFSETTO properties which include a
-   seconds component, e.g. 'TZOFFSETFROM:+110628'.
-   Quite a lot of the Olson timezones include seconds in their UTC offsets,
-   though no timezones currently have a UTC offset that uses the seconds
-   value.
-
-   We've rounded all UTC offsets to the nearest minute. Since all timezone
-   offsets currently used have '00' as the seconds offset, this doesn't lose
-   us much.
-
- o Outlook doesn't like lines being split in certain places, even though
-   the iCalendar spec says they can be split anywhere.
-
- o Outlook can only handle one RDATE or a pair of RRULEs. So we had to remove
-   all historical data.
-
-
-TESTING
-=======
-
-Do a 'make test-vic', then run ./test-vic.
-
-The test-vzic program compares our libical code and VTIMEZONE data against
-the Unix functions like mktime(). It steps over a period of time (1970-2037)
-converting from UTC to a given timezone and back again every 15 minutes.
-Any differences are output into the test-output directory.
-
-The output matches for all of the timezones, except in a few places where the
-result can't be determined. So I think we can be fairly confident that the
-VTIMEZONEs are correct.
-
-Note that you must use the same Olson data in libical that the OS is using
-for mktime() etc. For example, I am using RedHat 9 which uses tzdata2002d,
-so I converted this to VTIMEZONE files and installed it into the libical
-timezone data directory before testing. (You need to use '--pure' when
-creating the VTIMEZONE files as well.)
-
-
-Testing the Parsing Code
-------------------------
-
-Run 'make test-parse'.
-
-This runs 'vzic --dump' and 'perl-dump' and compares the output. The diff
-commands should not produce any output.
-
-'vzic --dump' dumps all the parsed data out in the original Olson format,
-but without comments. The files are written into the ZonesVzic and RulesVzic
-subdirectories of the zoneinfo directory.
-
-'make perl-dump' runs the vzic-dump.pl perl script which outputs the files
-in the same format as 'vzic --dump' in the ZonesPerl and RulesPerl
-subdirectories. The perl script doesn't actually parse the fields; it only
-strips comments and massages the fields so we have the same output format.
-
-Currently they both produce exactly the same output so we know the parsing
-code is OK.
-
-
-Testing the VTIMEZONE Files
----------------------------
-
-Run 'make test-changes'.
-
-This runs 'vzic --dump-changes' and 'test-vzic --dump-changes' and compares
-the output. The diff command should not produce any output.
-
-Both commands output timezone changes for each zone up to a specific year
-(2030) into files for each timezone. It outputs the timezone changes in a
-list in this format:
-
-  Timezone Name        Date and Time of Change in UTC   New Offset from UTC
-
-  America/Dawson	26 Oct 1986	 2:00:00	-0800
-
-Unfortunately there are some differences here, but they all happen before
-1970 so it doesn't matter too much. It looks like the libical code has
-problems determining things like 'last Sunday of the month' before 1970.
-This is because it uses mktime() etc. which can't really handle dates
-before 1970.
-
-
-
-Damon Chaplin <damon@gnome.org>, 25 Oct 2003.
-
diff --git a/libkcal/libical/vzic-1.3/test-vzic.c b/libkcal/libical/vzic-1.3/test-vzic.c
deleted file mode 100644
index c06f2738..00000000
--- a/libkcal/libical/vzic-1.3/test-vzic.c
+++ /dev/null
@@ -1,422 +0,0 @@
-/*
- * Vzic - a program to convert Olson timezone database files into VZTIMEZONE
- * files compatible with the iCalendar specification (RFC2445).
- *
- * Copyright (C) 2000-2001 Ximian, Inc.
- * Copyright (C) 2003 Damon Chaplin.
- *
- * Author: Damon Chaplin <damon@gnome.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-/*
- * test-vzic.c - test vzic + libical against mktime() and friends.
- *
- * Note that when we output VCALENDAR data compatible with Outlook the
- * results aren't all correct.
- *
- * We have to modify some RRULEs which makes these timezones incorrect:
- *
- *   Africa/Cairo
- *   America/Godthab
- *   America/Santiago
- *   Antarctica/Palmer
- *   Asia/Baghdad
- *   Asia/Damascus
- *   Asia/Jerusalem
- *
- * Also, we can only output one RDATE or a pair of RRULEs which may make some
- * other timezones incorrect sometimes (e.g. if they change).
- */
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <unistd.h>
-#include <errno.h>
-
-#include <ical.h>
-/*#include <evolution/ical.h>*/
-
-#define CHANGES_MAX_YEAR 2030
-
-/* These are the years between which we test against the Unix timezone
-   functions, inclusive. When using 'vzic --pure' you can test the full
-   range from 1970 to 2037 and it should match against mktime() etc.
-   (assuming you are using the same Olson timezone data for both).
-
-   But when using VTIMEZONE's that are compatible with Outlook, it is only
-   worth testing times in the future. There will be lots of differences in
-   the past, since we can't include any historical changes in the files. */
-#if 1
-#define DUMP_START_YEAR 2003
-#define DUMP_END_YEAR	2037
-#else
-#define DUMP_START_YEAR 1970
-#define DUMP_END_YEAR	2037
-#endif
-
-/* The maximum size of any complete pathname. */
-#define PATHNAME_BUFFER_SIZE	1024
-
-#ifndef	FALSE
-#define	FALSE	(0)
-#endif
-
-#ifndef	TRUE
-#define	TRUE	(!FALSE)
-#endif
-
-int VzicDumpChanges		= FALSE;
-
-/* We output beneath the current directory for now. */
-char *directory = "test-output";
-
-static void	usage				(void);
-static int	parse_zone_name			(char		*name,
-						 char	       **directory,
-						 char	       **subdirectory,
-						 char	       **filename);
-static void	ensure_directory_exists		(char		*directory);
-static void	dump_local_times		(icaltimezone	*zone,
-						 FILE		*fp);
-
-
-int main(int argc, char* argv[])
-{
-  icalarray *zones;
-  icaltimezone *zone;
-  char *zone_directory, *zone_subdirectory, *zone_filename, *location;
-  char output_directory[PATHNAME_BUFFER_SIZE];
-  char filename[PATHNAME_BUFFER_SIZE];
-  FILE *fp;
-  int i;
-  int skipping = TRUE;
-
-  /*
-   * Command-Line Option Parsing.
-   */
-  for (i = 1; i < argc; i++) {
-    /* --dump-changes: Dumps a list of times when each timezone changed,
-       and the new local time offset from UTC. */
-    if (!strcmp (argv[i], "--dump-changes"))
-      VzicDumpChanges = TRUE;
-
-    else
-      usage ();
-  }
-
-
-  zones = icaltimezone_get_builtin_timezones ();
-
-  ensure_directory_exists (directory);
-
-  for (i = 0; i < zones->num_elements; i++) {
-    zone = icalarray_element_at (zones, i);
-
-    location = icaltimezone_get_location (zone);
-
-#if 0
-    /* Use this to start at a certain zone. */
-    if (skipping && strcmp (location, "America/Boise"))
-      continue;
-#endif
-
-    skipping = FALSE;
-
-    /* Use this to only output data for certain timezones. */
-#if 0
-    if (strcmp (location, "America/Cancun")
-	&& strcmp (location, "Asia/Baku")
-	&& strcmp (location, "Asia/Nicosia")
-	&& strcmp (location, "Asia/Novosibirsk")
-	&& strcmp (location, "Asia/Samarkand")
-	&& strcmp (location, "Asia/Tashkent")
-	&& strcmp (location, "Asia/Tbilisi")
-	&& strcmp (location, "Asia/Yerevan")
-	&& strcmp (location, "Australia/Broken_Hill")
-	&& strcmp (location, "Europe/Simferopol")
-	&& strcmp (location, "Europe/Tallinn")
-	&& strcmp (location, "Europe/Zaporozhye")
-	)
-      continue;
-#endif
-
-#if 0
-    printf ("%s\n", location);
-#endif
-
-    parse_zone_name (location, &zone_directory, &zone_subdirectory,
-		     &zone_filename);
-
-    sprintf (output_directory, "%s/%s", directory, zone_directory);
-    ensure_directory_exists (output_directory);
-    sprintf (filename, "%s/%s", output_directory, zone_filename);
-
-    if (zone_subdirectory) {
-      sprintf (output_directory, "%s/%s/%s", directory, zone_directory,
-	       zone_subdirectory);
-      ensure_directory_exists (output_directory);
-      sprintf (filename, "%s/%s", output_directory, zone_filename);
-    }
-
-    fp = fopen (filename, "w");
-    if (!fp) {
-      fprintf (stderr, "Couldn't create file: %s\n", filename);
-      exit (1);
-    }
-
-    /* We can run 2 different tests - output all changes for each zone, or
-       test against mktime()/localtime(). Should have a command-line option
-       or something. */
-    if (VzicDumpChanges)
-      icaltimezone_dump_changes (zone, CHANGES_MAX_YEAR, fp);
-    else
-      dump_local_times (zone, fp);
-
-    if (ferror (fp)) {
-      fprintf (stderr, "Error writing file: %s\n", filename);
-      exit (1);
-    }
-
-    fclose (fp);
-  }
-
-  return 0;
-}
-
-
-static void
-usage				(void)
-{
-  fprintf (stderr, "Usage: test-vzic [--dump-changes]\n");
-
-  exit (1);
-}
-
-
-/* This checks that the Zone name only uses the characters in [-+_/a-zA-Z0-9],
-   and outputs a warning if it isn't. */
-static int
-parse_zone_name			(char		*name,
-				 char	       **directory,
-				 char	       **subdirectory,
-				 char	       **filename)
-{
-  static int invalid_zone_num = 1;
-
-  char *p, ch, *first_slash_pos = NULL, *second_slash_pos = NULL;
-  int invalid = FALSE;
-
-  for (p = name; (ch = *p) != 0; p++) {
-    if ((ch < 'a' || ch > 'z') && (ch < 'A' || ch > 'Z')
-	&& (ch < '0' || ch > '9') && ch != '/' && ch != '_'
-	&& ch != '-' && ch != '+') {
-      fprintf (stderr, "Warning: Unusual Zone name: %s\n", name);
-      invalid = TRUE;
-      break;
-    }
-
-    if (ch == '/') {
-      if (!first_slash_pos) {
-	first_slash_pos = p;
-      } else if (!second_slash_pos) {
-	second_slash_pos = p;
-      } else {
-	fprintf (stderr, "Warning: More than 2 '/' characters in Zone name: %s\n", name);
-	invalid = TRUE;
-	break;
-      }
-    }
-  }
-
-  if (!first_slash_pos) {
-	fprintf (stderr, "No '/' character in Zone name: %s. Skipping.\n", name);
-	return FALSE;
-  }
-
-  if (invalid) {
-    fprintf (stderr, "Invalid zone name: %s\n", name);
-    exit (0);
-  } else {
-    *first_slash_pos = '\0';
-    *directory = icalmemory_strdup (name);
-    *first_slash_pos = '/';
-
-    if (second_slash_pos) {
-      *second_slash_pos = '\0';
-      *subdirectory = icalmemory_strdup (first_slash_pos + 1);
-      *second_slash_pos = '/';
-
-      *filename = icalmemory_strdup (second_slash_pos + 1);
-    } else {
-      *subdirectory = NULL;
-      *filename = icalmemory_strdup (first_slash_pos + 1);
-    }
-  }
-}
-
-
-static void
-ensure_directory_exists		(char		*directory)
-{
-  struct stat filestat;
-
-  if (stat (directory, &filestat) != 0) {
-    /* If the directory doesn't exist, try to create it. */
-    if (errno == ENOENT) {
-      if (mkdir (directory, 0777) != 0) {
-	fprintf (stderr, "Can't create directory: %s\n", directory);
-	exit (1);
-      }
-    } else {
-      fprintf (stderr, "Error calling stat() on directory: %s\n", directory);
-      exit (1);
-    }
-  } else if (!S_ISDIR (filestat.st_mode)) {
-    fprintf (stderr, "Can't create directory, already exists: %s\n",
-	     directory);
-    exit (1);
-  }
-}
-
-
-static void
-dump_local_times (icaltimezone *zone, FILE *fp)
-{
-  static char *months[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun",
-			    "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
-  icaltimezone *utc_timezone;
-  struct icaltimetype tt, tt_copy;
-  struct tm tm, local_tm;
-  time_t t;
-  char tzstring[256], *location;
-  int last_year_output = 0;
-  int total_error = 0, total_error2 = 0;
-
-  utc_timezone = icaltimezone_get_utc_timezone ();
-
-  /* This is our UTC time that we will use to iterate over the period. */
-  tt.year = DUMP_START_YEAR;
-  tt.month = 1;
-  tt.day = 1;
-  tt.hour = 0;
-  tt.minute = 0;
-  tt.second = 0;
-  tt.is_utc = 0;
-  tt.is_date = 0;
-  tt.zone = "";
-
-  tm.tm_year = tt.year - 1900;
-  tm.tm_mon = tt.month - 1;
-  tm.tm_mday = tt.day;
-  tm.tm_hour = tt.hour;
-  tm.tm_min = tt.minute;
-  tm.tm_sec = tt.second;
-  tm.tm_isdst = -1;
-
-  /* Convert it to a time_t by saying it is in UTC. */
-  putenv ("TZ=UTC");
-  t = mktime (&tm);
-
-  location = icaltimezone_get_location (zone);
-  sprintf (tzstring, "TZ=%s", location);
-
-  /*printf ("Zone: %s\n", location);*/
-  putenv (tzstring);
-
-  /* Loop around converting the UTC time to local time, outputting it, and
-     then adding on 15 minutes to the UTC time. */
-  while (tt.year <= DUMP_END_YEAR) {
-    if (tt.year > last_year_output) {
-      last_year_output = tt.year;
-#if 0
-      printf ("  %i\n", last_year_output);
-      fprintf (fp, "  %i\n", last_year_output);
-#endif
-    }
-
-#if 1
-    /* First use the Unix functions. */
-    /* Now convert it to a local time in the given timezone. */
-    local_tm = *localtime (&t);
-#endif
-
-#if 1
-    /* Now use libical. */
-    tt_copy = tt;
-    icaltimezone_convert_time (&tt_copy, utc_timezone, zone);
-#endif
-
-#if 1
-    if (local_tm.tm_year + 1900 != tt_copy.year
-	|| local_tm.tm_mon + 1 != tt_copy.month
-	|| local_tm.tm_mday != tt_copy.day
-	|| local_tm.tm_hour != tt_copy.hour
-	|| local_tm.tm_min != tt_copy.minute
-	|| local_tm.tm_sec != tt_copy.second) {
-
-      /* The error format is:
-
-     ERROR: Original-UTC-Time  Local-Time-From-mktime  Local-Time-From-Libical
-
-      */
-
-      total_error++;
-
-      fprintf (fp, "ERROR:%2i %s %04i %2i:%02i:%02i UTC",
-	       tt.day, months[tt.month - 1], tt.year,
-	       tt.hour, tt.minute, tt.second);
-      fprintf (fp, " ->%2i %s %04i %2i:%02i:%02i",
-	       local_tm.tm_mday, months[local_tm.tm_mon],
-	       local_tm.tm_year + 1900,
-	       local_tm.tm_hour, local_tm.tm_min, local_tm.tm_sec);
-      fprintf (fp, " Us:%2i %s %04i %2i:%02i:%02i\n",
-	       tt_copy.day, months[tt_copy.month - 1], tt_copy.year,
-	       tt_copy.hour, tt_copy.minute, tt_copy.second);
-    }
-#endif
-
-    /* Now convert it back, and check we get the original time. */
-    icaltimezone_convert_time (&tt_copy, zone, utc_timezone);
-    if (tt.year != tt_copy.year
-	|| tt.month != tt_copy.month
-	|| tt.day != tt_copy.day
-	|| tt.hour != tt_copy.hour
-	|| tt.minute != tt_copy.minute
-	|| tt.second != tt_copy.second) {
-
-      total_error2++;
-
-      fprintf (fp, "ERROR 2: %2i %s %04i %2i:%02i:%02i UTC",
-	       tt.day, months[tt.month - 1], tt.year,
-	       tt.hour, tt.minute, tt.second);
-      fprintf (fp, " Us:%2i %s %04i %2i:%02i:%02i UTC\n",
-	       tt_copy.day, months[tt_copy.month - 1], tt_copy.year,
-	       tt_copy.hour, tt_copy.minute, tt_copy.second);
-    }
-
-
-    /* Increment the time. */
-    icaltime_adjust (&tt, 0, 0, 15, 0);
-
-    /* We assume leap seconds are not included in time_t values, which should
-       be true on POSIX systems. */
-    t += 15 * 60;
-  }
-
-  printf ("Zone: %40s  Errors: %i (%i)\n", icaltimezone_get_location (zone),
-	  total_error, total_error2);
-}
diff --git a/libkcal/libical/vzic-1.3/vzic-dump.c b/libkcal/libical/vzic-1.3/vzic-dump.c
deleted file mode 100644
index 8e76aa80..00000000
--- a/libkcal/libical/vzic-1.3/vzic-dump.c
+++ /dev/null
@@ -1,409 +0,0 @@
-/*
- * Vzic - a program to convert Olson timezone database files into VZTIMEZONE
- * files compatible with the iCalendar specification (RFC2445).
- *
- * Copyright (C) 2000-2001 Ximian, Inc.
- * Copyright (C) 2003 Damon Chaplin.
- *
- * Author: Damon Chaplin <damon@gnome.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-/*
- * These functions are for dumping all the parsed Zones and Rules to
- * files, to be compared with the output of vzic-dump.pl to check our parsing
- * code is OK. Some of the functions are also used for producing debugging
- * output.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "vzic.h"
-#include "vzic-dump.h"
-
-
-static void	dump_add_rule			(char		*name,
-						 GArray		*rule_array,
-						 GPtrArray	*name_array);
-static int	dump_compare_strings		(const void	*arg1,
-						 const void	*arg2);
-
-
-void
-dump_zone_data			(GArray		*zone_data,
-				 char		*filename)
-{
-  static char *months[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun",
-			    "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
-  FILE *fp;
-  ZoneData *zone;
-  ZoneLineData *zone_line;
-  int i, j;
-  gboolean output_month, output_day, output_time;
-
-  fp = fopen (filename, "w");
-  if (!fp) {
-    fprintf (stderr, "Couldn't create file: %s\n", filename);
-    exit (1);
-  }
-
-  for (i = 0; i < zone_data->len; i++) {
-    zone = &g_array_index (zone_data, ZoneData, i);
-
-    fprintf (fp, "Zone\t%s\t", zone->zone_name);
-
-    for (j = 0; j < zone->zone_line_data->len; j++) {
-      zone_line = &g_array_index (zone->zone_line_data, ZoneLineData, j);
-
-      if (j != 0)
-	fprintf (fp, "\t\t\t");
-
-      fprintf (fp, "%s\t", dump_time (zone_line->stdoff_seconds, TIME_WALL,
-				      FALSE));
-
-      if (zone_line->rules)
-	fprintf (fp, "%s\t", zone_line->rules);
-      else if (zone_line->save_seconds != 0)
-	fprintf (fp, "%s\t", dump_time (zone_line->save_seconds, TIME_WALL,
-					FALSE));
-      else
-	fprintf (fp, "-\t");
-
-      fprintf (fp, "%s\t", zone_line->format ? zone_line->format : "-");
-
-      if (zone_line->until_set) {
-	fprintf (fp, "%s\t", dump_year (zone_line->until_year));
-
-	output_month = output_day = output_time = FALSE;
-
-	if (zone_line->until_time_code != TIME_WALL
-	    || zone_line->until_time_seconds != 0)
-	  output_month = output_day = output_time = TRUE;
-	else if (zone_line->until_day_code != DAY_SIMPLE
-		 || zone_line->until_day_number != 1)
-	  output_month = output_day = TRUE;
-	else if (zone_line->until_month != 0)
-	  output_month = TRUE;
-
-	if (output_month)
-	  fprintf (fp, "%s", months[zone_line->until_month]);
-
-	fprintf (fp, "\t");
-
-	if (output_day)
-	  fprintf (fp, "%s", dump_day_coded (zone_line->until_day_code,
-					     zone_line->until_day_number,
-					     zone_line->until_day_weekday));
-
-	fprintf (fp, "\t");
-
-	if (output_time)
-	  fprintf (fp, "%s", dump_time (zone_line->until_time_seconds,
-					zone_line->until_time_code, FALSE));
-
-      } else {
-	fprintf (fp, "\t\t\t");
-      }
-
-      fprintf (fp, "\n");
-    }
-  }
-
-  fclose (fp);
-}
-
-
-void
-dump_rule_data			(GHashTable	*rule_data,
-				 char		*filename)
-{
-  FILE *fp;
-  GPtrArray *name_array;
-  GArray *rule_array;
-  int i;
-  char *name;
-
-  fp = fopen (filename, "w");
-  if (!fp) {
-    fprintf (stderr, "Couldn't create file: %s\n", filename);
-    exit (1);
-  }
-
-  /* We need to sort the rules by their names, so they are in the same order
-     as the Perl output. So we place all the names in a temporary GPtrArray,
-     sort it, then output them. */
-  name_array = g_ptr_array_new ();
-  g_hash_table_foreach (rule_data, (GHFunc) dump_add_rule, name_array);
-  qsort (name_array->pdata, name_array->len, sizeof (char*),
-	 dump_compare_strings);
-
-  for (i = 0; i < name_array->len; i++) {
-    name = g_ptr_array_index (name_array, i);
-    rule_array = g_hash_table_lookup (rule_data, name);
-    if (!rule_array) {
-      fprintf (stderr, "Couldn't access rules: %s\n", name);
-      exit (1);
-    }
-    dump_rule_array (name, rule_array, fp);
-  }
-
-  g_ptr_array_free (name_array, TRUE);
-
-  fclose (fp);
-}
-
-
-static void
-dump_add_rule			(char		*name,
-				 GArray		*rule_array,
-				 GPtrArray	*name_array)
-{
-  g_ptr_array_add (name_array, name);
-}
-
-
-static int
-dump_compare_strings		(const void	*arg1,
-				 const void	*arg2)
-{
-  char **a, **b;
-
-  a = (char**) arg1;
-  b = (char**) arg2;
-
-  return strcmp (*a, *b);
-}
-
-
-void
-dump_rule_array			(char		*name,
-				 GArray		*rule_array,
-				 FILE		*fp)
-{
-  static char *months[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun",
-			    "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
-
-  RuleData *rule;
-  int i;
-
-#if 0
-  fprintf (fp, "\n# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S");
-#endif
-
-  for (i = 0; i < rule_array->len; i++) {
-    rule = &g_array_index (rule_array, RuleData, i);
-
-    fprintf (fp, "Rule\t%s\t%s\t", name, dump_year (rule->from_year));
-
-    if (rule->to_year == rule->from_year)
-      fprintf (fp, "only\t");
-    else
-      fprintf (fp, "%s\t", dump_year (rule->to_year));
-
-    fprintf (fp, "%s\t", rule->type ? rule->type : "-");
-
-    fprintf (fp, "%s\t", months[rule->in_month]);
-
-    fprintf (fp, "%s\t",
-	     dump_day_coded (rule->on_day_code, rule->on_day_number,
-			     rule->on_day_weekday));
-
-    fprintf (fp, "%s\t", dump_time (rule->at_time_seconds, rule->at_time_code,
-				    FALSE));
-
-    fprintf (fp, "%s\t", dump_time (rule->save_seconds, TIME_WALL, TRUE));
-
-    fprintf (fp, "%s", rule->letter_s ? rule->letter_s : "-");
-
-    fprintf (fp, "\n");
-  }
-}
-
-
-char*
-dump_time			(int		 seconds,
-				 TimeCode	 time_code,
-				 gboolean	 use_zero)
-{
-  static char buffer[256], *sign;
-  int hours, minutes;
-  char *code;
-
-  if (time_code == TIME_STANDARD)
-    code = "s";
-  else if (time_code == TIME_UNIVERSAL)
-    code = "u";
-  else
-    code = "";
-
-  if (seconds < 0) {
-    seconds = -seconds;
-    sign = "-";
-  } else {
-    sign = "";
-  }
-
-  hours = seconds / 3600;
-  minutes = (seconds % 3600) / 60;
-  seconds = seconds % 60;
-
-  if (use_zero && hours == 0 && minutes == 0 && seconds == 0)
-    return "0";
-  else if (seconds == 0)
-    sprintf (buffer, "%s%i:%02i%s", sign, hours, minutes, code);
-  else
-    sprintf (buffer, "%s%i:%02i:%02i%s", sign, hours, minutes, seconds, code);
-
-  return buffer;
-}
-
-
-char*
-dump_day_coded			(DayCode	day_code,
-				 int		day_number,
-				 int		day_weekday)
-{
-  static char buffer[256];
-  static char *weekdays[] = { "Sun", "Mon", "Tue", "Wed",
-			      "Thu", "Fri", "Sat" };
-
-  switch (day_code) {
-  case DAY_SIMPLE:
-    sprintf (buffer, "%i", day_number);
-    break;
-  case DAY_WEEKDAY_ON_OR_AFTER:
-    sprintf (buffer, "%s>=%i", weekdays[day_weekday], day_number);
-    break;
-  case DAY_WEEKDAY_ON_OR_BEFORE:
-    sprintf (buffer, "%s<=%i", weekdays[day_weekday], day_number);
-    break;
-  case DAY_LAST_WEEKDAY:
-    sprintf (buffer, "last%s", weekdays[day_weekday]);
-    break;
-  default:
-    fprintf (stderr, "Invalid day code: %i\n", day_code);
-    exit (1);
-  }
-
-  return buffer;
-}
-
-
-char*
-dump_year			(int		year)
-{
-  static char buffer[256];
-
-  if (year == YEAR_MINIMUM)
-    return "min";
-  if (year == YEAR_MAXIMUM)
-    return "max";
-
-  sprintf (buffer, "%i", year);
-  return buffer;
-}
-
-
-void
-dump_time_zone_names		(GList		*names,
-				 char		*output_dir,
-				 GHashTable	*zones_hash)
-{
-  char filename[PATHNAME_BUFFER_SIZE], *zone_name, *zone_name_in_hash = NULL;
-  char strings_filename[PATHNAME_BUFFER_SIZE];
-  FILE *fp, *strings_fp = NULL;
-  GList *elem;
-  ZoneDescription *zone_desc;
-
-  sprintf (filename, "%s/zones.tab", output_dir);
-  sprintf (strings_filename, "%s/zones.h", output_dir);
-
-  fp = fopen (filename, "w");
-  if (!fp) {
-    fprintf (stderr, "Couldn't create file: %s\n", filename);
-    exit (1);
-  }
-
-  if (VzicDumpZoneTranslatableStrings) {
-    strings_fp = fopen (strings_filename, "w");
-    if (!strings_fp) {
-      fprintf (stderr, "Couldn't create file: %s\n", strings_filename);
-      exit (1);
-    }
-  }
-
-  names = g_list_sort (names, (GCompareFunc) strcmp);
-
-  elem = names;
-  while (elem) {
-    zone_name = (char*) elem->data;
-
-    zone_desc = g_hash_table_lookup (zones_hash, zone_name);
-
-    /* SPECIAL CASES: These timezones are links from other zones and are
-       almost exactly the same - they are basically there so users can find
-       them a bit easier. But they don't have entries in the zone.tab file,
-       so we use the entry from the timezone linked from. */
-    if (!zone_desc) {
-      if (!strcmp (zone_name, "America/Indiana/Indianapolis"))
-	zone_name_in_hash = "America/Indianapolis";
-      else if (!strcmp (zone_name, "America/Kentucky/Louisville"))
-	zone_name_in_hash = "America/Louisville";
-      else if (!strcmp (zone_name, "Asia/Istanbul"))
-	zone_name_in_hash = "Europe/Istanbul";
-      else if (!strcmp (zone_name, "Europe/Nicosia"))
-	zone_name_in_hash = "Asia/Nicosia";
-
-      if (zone_name_in_hash)
-	zone_desc = g_hash_table_lookup (zones_hash, zone_name_in_hash);
-    }
-
-    if (zone_desc) {
-      fprintf (fp, "%+04i%02i%02i %+04i%02i%02i %s\n",
-	       zone_desc->latitude[0], zone_desc->latitude[1],
-	       zone_desc->latitude[2],
-	       zone_desc->longitude[0], zone_desc->longitude[1],
-	       zone_desc->longitude[2],
-	       zone_name);
-    } else {
-      g_print ("Zone description not found for: %s\n", zone_name);
-      fprintf (fp, "%s\n", zone_name);
-    }
-
-
-    if (VzicDumpZoneTranslatableStrings) {
-#if 0
-      char zone_name_buffer[1024], *src, *dest;
-
-      for (src = zone_name, dest = zone_name_buffer; *src; src++, dest++)
-	*dest = (*src == '_') ? ' ' : *src;
-      *dest = '\0';
-#endif
-
-      fprintf (strings_fp, "N_(\"%s\");\n", zone_name);
-    }
-
-    elem = elem->next;
-  }
-
-  fclose (fp);
-
-  if (VzicDumpZoneTranslatableStrings)
-    fclose (strings_fp);
-}
-
diff --git a/libkcal/libical/vzic-1.3/vzic-dump.h b/libkcal/libical/vzic-1.3/vzic-dump.h
deleted file mode 100644
index b37741a1..00000000
--- a/libkcal/libical/vzic-1.3/vzic-dump.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Vzic - a program to convert Olson timezone database files into VZTIMEZONE
- * files compatible with the iCalendar specification (RFC2445).
- *
- * Copyright (C) 2000-2001 Ximian, Inc.
- * Copyright (C) 2003 Damon Chaplin.
- *
- * Author: Damon Chaplin <damon@gnome.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-/*
- * These functions are for dumping all the parsed Zones and Rules to
- * files, to be compared with the output of vzic-dump.pl to check our parsing
- * code is OK. Some of the functions are also used for producing debugging
- * output.
- */
-
-#ifndef _VZIC_DUMP_H_
-#define _VZIC_DUMP_H_
-
-#include <glib.h>
-
-void		dump_zone_data			(GArray		*zone_data,
-						 char		*filename);
-void		dump_rule_data			(GHashTable	*rule_data,
-						 char		*filename);
-
-void		dump_rule_array			(char		*name,
-						 GArray		*rule_array,
-						 FILE		*fp);
-
-char*		dump_year			(int		year);
-char*		dump_day_coded			(DayCode	day_code,
-						 int		day_number,
-						 int		day_weekday);
-char*		dump_time			(int		 seconds,
-						 TimeCode	 time_code,
-						 gboolean	 use_zero);
-
-void		dump_time_zone_names		(GList		*names,
-						 char		*output_dir,
-						 GHashTable	*zones_hash);
-
-#endif /* _VZIC_DUMP_H_ */
diff --git a/libkcal/libical/vzic-1.3/vzic-dump.pl b/libkcal/libical/vzic-1.3/vzic-dump.pl
deleted file mode 100755
index e73185ca..00000000
--- a/libkcal/libical/vzic-1.3/vzic-dump.pl
+++ /dev/null
@@ -1,222 +0,0 @@
-#!/usr/bin/perl -w
-
-#
-# Vzic - a program to convert Olson timezone database files into VZTIMEZONE
-# files compatible with the iCalendar specification (RFC2445).
-#
-# Copyright (C) 2000-2001 Ximian, Inc.
-# Copyright (C) 2003 Damon Chaplin.
-#
-# Author: Damon Chaplin <damon@gnome.org>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-
-#
-# This reads the Olson timezone files, strips any comments, and outputs them
-# in a very simple format with tab-separated fields. It is used to compare
-# with the output of dump_zone_data() and dump_rule_data() to double-check
-# that we have parsed the files correctly.
-#
-
-my $zones_fh = "zonesfile";
-my $rules_fh = "rulesfile";
-
-my %Rules;
-
-if ($#ARGV != 0) {
-    die "Usage: $0 <OlsonDirectory>";
-}
-
-my $OLSON_DIR = $ARGV[0];
-
-# We place output in subdirectories of the current directory.
-my $OUTPUT_DIR = "zoneinfo";
-
-if (! -d "$OUTPUT_DIR") {
-    mkdir ("$OUTPUT_DIR", 0777)
-	|| die "Can't create directory: $OUTPUT_DIR";
-}
-if (! -d "$OUTPUT_DIR/ZonesPerl") {
-    mkdir ("$OUTPUT_DIR/ZonesPerl", 0777)
-	|| die "Can't create directory: $OUTPUT_DIR/ZonesPerl";
-}
-if (! -d "$OUTPUT_DIR/RulesPerl") {
-    mkdir ("$OUTPUT_DIR/RulesPerl", 0777)
-	|| die "Can't create directory: $OUTPUT_DIR/RulesPerl";
-}
-
-
-&ReadOlsonFile ("africa");
-&ReadOlsonFile ("antarctica");
-&ReadOlsonFile ("asia");
-&ReadOlsonFile ("australasia");
-&ReadOlsonFile ("europe");
-&ReadOlsonFile ("northamerica");
-&ReadOlsonFile ("southamerica");
-
-# These are backwards-compatability and weird stuff.
-#&ReadOlsonFile ("backward");
-#&ReadOlsonFile ("etcetera");
-#&ReadOlsonFile ("leapseconds");
-#&ReadOlsonFile ("pacificnew");
-#&ReadOlsonFile ("solar87");
-#&ReadOlsonFile ("solar88");
-#&ReadOlsonFile ("solar89");
-
-# We don't do this one since it is not useful and the use of '"' in the Zone
-# line messes up our split() command.
-#&ReadOlsonFile ("factory");
-
-# We don't do this since the vzic program can't do it.
-#&ReadOlsonFile ("systemv");
-
-
-
-
-1;
-
-
-sub ReadOlsonFile {
-    my ($file) = @_;
-
-#    print ("Reading olson file: $file\n");
-
-    open (OLSONFILE, "$OLSON_DIR/$file")
-	|| die "Can't open file: $file";
-
-    open ($zones_fh, ">$OUTPUT_DIR/ZonesPerl/$file")
-	|| die "Can't open file: $OUTPUT_DIR/ZonesPerl/$file";
-
-    open ($rules_fh, ">$OUTPUT_DIR/RulesPerl/$file")
-	|| die "Can't open file: $OUTPUT_DIR/RulesPerl/$file";
-
-    %Rules = ();
-
-    my $zone_continues = 0;
-
-    while (<OLSONFILE>) {
-	next if (m/^#/);
-
-	# '#' characters can appear in strings, but the Olson files don't use
-	# that feature at present so we treat all '#' as comments for now.
-	s/#.*//;
-
-	next if (m/^\s*$/);
-
-	if ($zone_continues) {
-	    $zone_continues = &ReadZoneContinuationLine;
-
-	} elsif (m/^Rule\s/) {
-	    &ReadRuleLine;
-
-	} elsif (m/^Zone\s/) {
-	    $zone_continues = &ReadZoneLine;
-
-	} elsif (m/^Link\s/) {
-#	    print "Link: $link_from, $link_to\n";
-
-	} elsif (m/^Leap\s/) {
-#	    print "Leap\n";
-
-	} else {
-	    die "Invalid line: $_";
-	}
-    }
-
-#    print ("Read olson file: $file\n");
-
-    foreach $key (sort (keys (%Rules))) {
-	print $rules_fh "$Rules{$key}"
-    }
-
-    close ($zones_fh);
-    close ($rules_fh);
-    close (OLSONFILE);
-}
-
-
-sub ReadZoneLine {
-    my ($zone, $name, $gmtoff, $rules_save, $format,
-	$until_year, $until_month, $until_day, $until_time, $remainder)
-	= split ' ', $_, 10;
-
-    return &ReadZoneLineCommon ($zone, $name, $gmtoff, $rules_save, $format,
-				$until_year, $until_month, $until_day,
-				$until_time);
-}
-
-
-sub ReadZoneContinuationLine {
-    my ($gmtoff, $rules_save, $format,
-	$until_year, $until_month, $until_day, $until_time, $remainder)
-	= split ' ', $_, 8;
-
-    return &ReadZoneLineCommon ("", "", $gmtoff, $rules_save, $format,
-				$until_year, $until_month, $until_day,
-				$until_time);
-}
-
-
-sub ReadZoneLineCommon {
-    my ($zone, $name, $gmtoff, $rules_save, $format,
-	$until_year, $until_month, $until_day, $until_time) = @_;
-
-    if (!defined ($until_year)) { $until_year = ""; }
-    if (!defined ($until_month)) { $until_month = ""; }
-    if (!defined ($until_day)) { $until_day = ""; }
-    if (!defined ($until_time)) { $until_time = ""; }
-
-    # A few of the gmtoffsets have an unnecessary :00 seconds.
-    $gmtoff =~ s/(\d+):(\d+):00/$1:$2/;
-
-    # Make sure the gmtoff does have minutes.
-    $gmtoff =~ s/^(-?\d+)$/$1:00/;
-
-    # Fix a few other bits so they all use the same format.
-    if ($gmtoff eq "0") { $gmtoff = "0:00"; }
-    $until_time =~ s/^0(\d):/$1:/;
-    if ($until_time eq "0:00") { $until_time = ""; }
-    if ($until_day eq "1" && $until_time eq "") { $until_day = ""; }
-    if ($until_month eq "Jan" && $until_day eq "" && $until_time eq "") {
-	$until_month = "";
-    }
-
-    # For Zone continuation lines we need to insert an extra TAB.
-    if (!$zone) { $zone = "\t" };
-
-    print $zones_fh "$zone\t$name\t$gmtoff\t$rules_save\t$format\t$until_year\t$until_month\t$until_day\t$until_time\n";
-
-    if (defined ($until_year) && $until_year) {
-	return 1;
-    } else {
-	return 0;
-    }
-}
-
-
-sub ReadRuleLine {
-    my ($rule, $name, $from, $to, $type, $in, $on, $at, $save, $letter_s,
-	$remainder) = split;
-
-    $at =~ s/(\d+:\d+):00/$1/;
-    $save =~ s/(\d+:\d+):00/$1/;
-    if ($save eq "0:00") { $save = "0"; }
-
-    $Rules{$name} .= "$rule\t$name\t$from\t$to\t$type\t$in\t$on\t$at\t$save\t$letter_s\n";
-
-#    print $rules_fh "$rule\t$name\t$from\t$to\t$type\t$in\t$on\t$at\t$save\t$letter_s\n";
-}
-
diff --git a/libkcal/libical/vzic-1.3/vzic-merge.pl b/libkcal/libical/vzic-1.3/vzic-merge.pl
deleted file mode 100755
index 020f5708..00000000
--- a/libkcal/libical/vzic-1.3/vzic-merge.pl
+++ /dev/null
@@ -1,127 +0,0 @@
-#!/usr/bin/perl -w
-
-#
-# Vzic - a program to convert Olson timezone database files into VZTIMEZONE
-# files compatible with the iCalendar specification (RFC2445).
-#
-# Copyright (C) 2001 Ximian, Inc.
-# Copyright (C) 2003 Damon Chaplin.
-#
-# Author: Damon Chaplin <damon@gnome.org>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-
-#
-# This merges in a new set of VTIMEZONE files with the 'master' set. It only
-# updates the files in the master set if the VTIMEZONE component has really
-# been changes. Note that the TZID normally includes the date the VTIMEZONE
-# file was generated on, so we have to ignore this when comparing the files.
-#
-
-# Set these to the toplevel directories of the 2 sets of VTIMEZONE files.
-#$MASTER_ZONEINFO_DIR = "/home/damon/cvs/libical/zoneinfo";
-$MASTER_ZONEINFO_DIR = "/usr/share/libical-evolution/zoneinfo";
-$NEW_ZONEINFO_DIR = "/home/damon/src/vzic-1.0/zoneinfo";
-
-# Set this to 1 if you have version numbers in the TZID like libical.
-$LIBICAL_VERSIONING = 1;
-
-# Set this to 0 for dry-runs, and 1 to actually update.
-$DO_UPDATES = 1;
-
-# Save this so we can restore it later.
-$input_record_separator = $/;
-
-chdir $NEW_ZONEINFO_DIR
-    || die "Can't cd to $NEW_ZONEINFO_DIR";
-
-foreach $new_file (`find -name "*.ics"`) {
-    # Get rid of './' at start and whitespace at end.
-    $new_file =~ s/^\.\///;
-    $new_file =~ s/\s+$//;
-
-#    print "File: $new_file\n";
-
-    open (NEWZONEFILE, "$new_file")
-	|| die "Can't open file: $NEW_ZONEINFO_DIR/$new_file";
-    undef $/;
-    $new_contents = <NEWZONEFILE>;
-    $/ = $input_record_separator;
-    close (NEWZONEFILE);
-
-    $master_file = $MASTER_ZONEINFO_DIR . "/$new_file";
-
-#    print "Master File: $master_file\n";
-
-    $copy_to_master = 0;
-
-    # If the ics file exists in the master copy we have to compare them,
-    # otherwise we can just copy the new file into the master directory.
-    if (-e $master_file) {
-	open (MASTERZONEFILE, "$master_file")
-	    || die "Can't open file: $master_file";
-	undef $/;
-	$master_contents = <MASTERZONEFILE>;
-	$/ = $input_record_separator;
-	close (MASTERZONEFILE);
-	
-	$new_contents_copy = $new_contents;
-
-	# Strip the TZID from both contents.
-	$new_contents_copy =~ s/^TZID:\S+$//m;
-	$new_tzid = $&;
-	$master_contents =~ s/^TZID:\S+$//m;
-	$master_tzid = $&;
-
-#	print "Matched: $master_tzid\n";
-
-
-	if ($new_contents_copy ne $master_contents) {
-	    print "$new_file has changed. Updating...\n";
-	    $copy_to_master = 1;
-
-	    if ($LIBICAL_VERSIONING) {
-		# We bump the version number in the new file.
-		$master_tzid =~ m%_(\d+)/%;
-		$version_num = $1;
-#		print "Version: $version_num\n";
-
-		$version_num++;
-		$new_tzid =~ s%_(\d+)/%_$version_num/%;
-
-#		print "New TZID: $new_tzid\n";
-		$new_contents =~ s/^TZID:\S+$/$new_tzid/m;
-	    }
-	}
-
-    } else {
-	print "$new_file doesn't exist in master directory. Copying...\n";
-	$copy_to_master = 1;
-    }
-
-    if ($copy_to_master) {
-#	print "Updating: $new_file\n";
-
-	if ($DO_UPDATES) {
-	    open (MASTERZONEFILE, ">$master_file")
-		|| die "Can't create file: $master_file";
-	    print MASTERZONEFILE $new_contents;
-	    close (MASTERZONEFILE);
-	}
-    }
-
-}
-
diff --git a/libkcal/libical/vzic-1.3/vzic-output.c b/libkcal/libical/vzic-1.3/vzic-output.c
deleted file mode 100644
index 87dd7529..00000000
--- a/libkcal/libical/vzic-1.3/vzic-output.c
+++ /dev/null
@@ -1,2325 +0,0 @@
-/*
- * Vzic - a program to convert Olson timezone database files into VZTIMEZONE
- * files compatible with the iCalendar specification (RFC2445).
- *
- * Copyright (C) 2000-2001 Ximian, Inc.
- * Copyright (C) 2003 Damon Chaplin.
- *
- * Author: Damon Chaplin <damon@gnome.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-/* ALGORITHM:
- *
- * First we expand all the Rule arrays, so that each element only represents 1
- * year. If a Rule extends to infinity we expand it up to a few years past the
- * maximum UNTIL year used in any of the timezones. We do this to make sure
- * that the last of the expanded Rules (which may be infinite) is only used
- * in the last of the time periods (i.e. the last Zone line).
- *
- * The Rule arrays are also sorted by the start time (FROM + IN + ON + AT).
- * Doing all this makes it much easier to find which rules apply to which
- * periods.
- *
- * For each timezone (i.e. ZoneData element), we step through each of the
- * time periods, the ZoneLineData elements (which represent each Zone line
- * from the Olson file.)
- *
- * We calculate the start & end time of the period.
- * - For the first line the start time is -infinity.
- * - For the last line the end time is +infinity.
- * - The end time of each line is also the start time of the next.
- * 
- * We create an array of time changes which occur in this period, including
- * the one implied by the Zone line itself (though this is later taken out
- * if it is found to be at exactly the same time as the first Rule).
- *
- * Now we iterate over the time changes, outputting them as STANDARD or
- * DAYLIGHT components. We also try to merge them together into RRULEs or
- * use RDATEs.
- */
-
-
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-#include <sys/stat.h>
-#include <unistd.h>
-
-#include "vzic.h"
-#include "vzic-output.h"
-
-#include "vzic-dump.h"
-
-
-/* These come from the Makefile. See the comments there. */
-char *ProductID = PRODUCT_ID;
-char *TZIDPrefix = TZID_PREFIX;
-
-/* We expand the TZIDPrefix, replacing %D with the date, in here. */
-char TZIDPrefixExpanded[1024];
-
-
-/* We only use RRULEs if there are at least MIN_RRULE_OCCURRENCES occurrences,
-   since otherwise RDATEs are more efficient. Actually, I've set this high
-   so we only use RRULEs for infinite recurrences. Since expanding RRULEs is
-   very time-consuming, this seems sensible. */
-#define MIN_RRULE_OCCURRENCES	100
-
-
-/* The year we go up to when dumping the list of timezone changes (used
-   for testing & debugging). */
-#define MAX_CHANGES_YEAR	2030
-
-/* This is the maximum year that time_t value can typically hold on 32-bit
-   systems. */
-#define MAX_TIME_T_YEAR		2037
-
-
-/* The year we use to start RRULEs. */
-#define RRULE_START_YEAR	1970
-
-/* The year we use for RDATEs. */
-#define RDATE_YEAR		1970
-
-
-static char *WeekDays[] = { "SU", "MO", "TU", "WE", "TH", "FR", "SA" };
-static int DaysInMonth[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
-
-char *CurrentZoneName;
-
-
-typedef struct _VzicTime VzicTime;
-struct _VzicTime
-{
-  /* Normal years, e.g. 2001. */
-  int year;
-
-  /* 0 (Jan) to 11 (Dec). */
-  int month;
-
-  /* The day, either a simple month day number, 1-31, or a rule such as
-     the last Sunday, or the first Monday on or after the 8th. */
-  DayCode	day_code;
-  int		day_number;		/* 1 to 31. */
-  int		day_weekday;		/* 0 (Sun) to 6 (Sat). */
-
-  /* The time, in seconds from midnight. The code specifies whether the
-     time is a wall clock time, local standard time, or universal time. */
-  int		time_seconds;
-  TimeCode	time_code;
-
-  /* The offset from UTC for local standard time. */
-  int		stdoff;
-
-  /* The offset from UTC for local wall clock time. If this is different to
-     stdoff then this is a DAYLIGHT component. This is TZOFFSETTO. */
-  int		walloff;
-
-  /* TRUE if the time change recurs every year to infinity. */
-  gboolean	is_infinite;
-
-  /* TRUE if the change has already been output. */
-  gboolean	output;
-
-  /* These are the offsets of the previous VzicTime, and are used when
-     calculating the time of the change. We place them here in
-     output_zone_components() to simplify the output code. */
-  int		prev_stdoff;
-  int		prev_walloff;
-
-  /* The abbreviated form of the timezone name. Note that this may not be
-     unique. */
-  char	       *tzname;
-};
-
-
-static void	expand_and_sort_rule_array	(gpointer	 key,
-						 gpointer	 value,
-						 gpointer	 data);
-static int	rule_sort_func			(const void	*arg1,
-						 const void	*arg2);
-static void	output_zone			(char		*directory,
-						 ZoneData	*zone,
-						 char		*zone_name,
-						 GHashTable	*rule_data);
-static gboolean	parse_zone_name			(char		*name,
-						 char	       **directory,
-						 char	       **subdirectory,
-						 char	       **filename);
-static void	output_zone_to_files		(ZoneData	*zone,
-						 char		*zone_name,
-						 GHashTable	*rule_data,
-						 FILE		*fp,
-						 FILE		*changes_fp);
-static gboolean	add_rule_changes		(ZoneLineData	*zone_line,
-						 char		*zone_name,
-						 GArray		*changes,
-						 GHashTable	*rule_data,
-						 VzicTime	*start,
-						 VzicTime	*end,
-						 char	       **start_letter_s,
-						 int		*save_seconds);
-static char*	expand_tzname			(char		*zone_name,
-						 char		*format,
-						 gboolean	 have_letter_s,
-						 char		*letter_s,
-						 gboolean	 is_daylight);
-static int	compare_times			(VzicTime	*time1,
-						 int		 stdoff1,
-						 int		 walloff1,
-						 VzicTime	*time2,
-						 int		 stdoff2,
-						 int		 walloff2);
-static gboolean times_match			(VzicTime	*time1,
-						 int		 stdoff1,
-						 int		 walloff1,
-						 VzicTime	*time2,
-						 int		 stdoff2,
-						 int		 walloff2);
-static void	output_zone_components		(FILE		*fp,
-						 char		*name,
-						 GArray		*changes);
-static void	set_previous_offsets		(GArray		*changes);
-static gboolean	check_for_recurrence		(FILE		*fp,
-						 GArray		*changes,
-						 int		 idx);
-static void	check_for_rdates		(FILE		*fp,
-						 GArray		*changes,
-						 int		 idx);
-static gboolean	timezones_match			(char		*tzname1,
-						 char		*tzname2);
-static int	output_component_start		(char		*buffer,
-						 VzicTime	*vzictime,
-						 gboolean	 output_rdate,
-						 gboolean	 use_same_tz_offset);
-static void	output_component_end		(FILE		*fp,
-						 VzicTime	*vzictime);
-
-static void	vzictime_init			(VzicTime	*vzictime);
-static int	calculate_actual_time		(VzicTime	*vzictime,
-						 TimeCode	 time_code,
-						 int		 stdoff,
-						 int		 walloff);
-static int	calculate_wall_time		(int		 time,
-						 TimeCode	 time_code,
-						 int		 stdoff,
-						 int		 walloff,
-						 int		*day_offset);
-static int	calculate_until_time		(int		 time,
-						 TimeCode	 time_code,
-						 int		 stdoff,
-						 int		 walloff,
-						 int		*year,
-						 int		*month,
-						 int		*day);
-static void	fix_time_overflow		(int		*year,
-						 int		*month,
-						 int		*day,
-						 int		 day_offset);
-
-static char*	format_time			(int		 year,
-						 int		 month,
-						 int		 day,
-						 int		 time);
-static char*	format_tz_offset		(int		 tz_offset,
-						 gboolean	 round_seconds);
-static gboolean output_rrule			(char	        *rrule_buffer,
-						 int		 month,
-						 DayCode	 day_code,
-						 int		 day_number,
-						 int		 day_weekday,
-						 int		 day_offset,
-						 char		*until);
-static gboolean	output_rrule_2			(char		*buffer,
-						 int		 month,
-						 int		 day_number,
-						 int		 day_weekday);
-
-static char*	format_vzictime			(VzicTime	*vzictime);
-
-static void	dump_changes			(FILE		*fp,
-						 char		*zone_name,
-						 GArray		*changes);
-static void	dump_change			(FILE		*fp,
-						 char		*zone_name,
-						 VzicTime	*vzictime,
-						 int		 year);
-
-static void	expand_tzid_prefix		(void);
-
-
-void
-output_vtimezone_files		(char		*directory,
-				 GArray		*zone_data,
-				 GHashTable	*rule_data,
-				 GHashTable	*link_data,
-				 int		 max_until_year)
-{
-  ZoneData *zone;
-  GList *links;
-  char *link_to;
-  int i;
-
-  /* Insert today's date into the TZIDs we output. */
-  expand_tzid_prefix ();
-
-  /* Expand the rule data so that each entry specifies only one year, and
-     sort it so we can easily find the rules applicable to each Zone span. */
-  g_hash_table_foreach (rule_data, expand_and_sort_rule_array,
-			GINT_TO_POINTER (max_until_year));
-
-  /* Output each timezone. */
-  for (i = 0; i < zone_data->len; i++) {
-    zone = &g_array_index (zone_data, ZoneData, i);
-    output_zone (directory, zone, zone->zone_name, rule_data);
-
-    /* Look for any links from this zone. */
-    links = g_hash_table_lookup (link_data, zone->zone_name);
-
-    while (links) {
-      link_to = links->data;
-
-      /* We ignore Links that don't have a '/' in them (things like 'EST5EDT').
-       */
-      if (strchr (link_to, '/')) {
-	output_zone (directory, zone, link_to, rule_data);
-      }
-
-      links = links->next;
-    }
-  }
-}
-
-
-static void
-expand_and_sort_rule_array	(gpointer	 key,
-				 gpointer	 value,
-				 gpointer	 data)
-{
-  char *name = key;
-  GArray *rule_array = value;
-  RuleData *rule, tmp_rule;
-  int len, max_year, i, from, to, year;
-  gboolean is_infinite;
-
-  /* We expand the rule data to a year greater than any year used in a Zone
-     UNTIL value. This is so that we can easily get parts of the array to
-     use for each Zone line. */
-  max_year = GPOINTER_TO_INT (data) + 2;
-
-  /* If any of the rules apply to several years, we turn it into a single rule
-     for each year. If the Rule is infinite we go up to max_year.
-     We change the FROM field in the copies of the Rule, setting it to each
-     of the years, and set TO to FROM, except if TO was YEAR_MAXIMUM we set
-     the last TO to YEAR_MAXIMUM, so we still know the Rule is infinite. */
-  len = rule_array->len;
-  for (i = 0; i < len; i++) {
-    rule = &g_array_index (rule_array, RuleData, i);
-
-    /* None of the Rules currently use the TYPE field, but we'd better check.
-     */
-    if (rule->type) {
-      fprintf (stderr, "Rules %s has a TYPE: %s\n", name, rule->type);
-      exit (1);
-    }
-
-    if (rule->from_year != rule->to_year) {
-      from = rule->from_year;
-      to = rule->to_year;
-
-      tmp_rule = *rule;
-
-      /* Flag that this is a shallow copy so we don't free anything twice. */
-      tmp_rule.is_shallow_copy = TRUE;
-
-      /* See if it is an infinite Rule. */
-      if (to == YEAR_MAXIMUM) {
-	is_infinite = TRUE;
-	to = max_year;
-	if (from < to)
-	  rule->to_year = rule->from_year;
-      } else {
-	is_infinite = FALSE;
-      }
-
-      /* Create a copy of the Rule for each year. */
-      for (year = from + 1; year <= to; year++) {
-	tmp_rule.from_year = year;
-
-	/* If the Rule is infinite, mark the last copy as infinite. */
-	if (year == to && is_infinite)
-	  tmp_rule.to_year = YEAR_MAXIMUM;
-	else
-	  tmp_rule.to_year = year;
-
-	g_array_append_val (rule_array, tmp_rule);
-      }
-    }
-  }
-
-  /* Now sort the rules. */
-  qsort (rule_array->data, rule_array->len, sizeof (RuleData), rule_sort_func);
-
-#if 0
-  dump_rule_array (name, rule_array, stdout);
-#endif
-}
-
-
-/* This is used to sort the rules, after the rules have all been expanded so
-   that each one is only for one year. */
-static int
-rule_sort_func			(const void	*arg1,
-				 const void	*arg2)
-{
-  RuleData *rule1, *rule2;
-  int time1_year, time1_month, time1_day;
-  int time2_year, time2_month, time2_day;
-  int month_diff, result;
-  VzicTime t1, t2;
-
-  rule1 = (RuleData*) arg1;
-  rule2 = (RuleData*) arg2;
-
-  time1_year = rule1->from_year;
-  time1_month = rule1->in_month;
-  time2_year = rule2->from_year;
-  time2_month = rule2->in_month;
-
-  /* If there is more that one month difference we don't need to calculate
-     the day or time. */
-  month_diff = (time1_year - time2_year) * 12 + time1_month - time2_month;
-
-  if (month_diff > 1)
-    return 1;
-  if (month_diff < -1)
-    return -1;
-
-  /* Now we have to calculate the day and time of the Rule start and the
-     VzicTime, using the given offsets. */
-  t1.year = time1_year;
-  t1.month = time1_month;
-  t1.day_code = rule1->on_day_code;
-  t1.day_number = rule1->on_day_number;
-  t1.day_weekday = rule1->on_day_weekday;
-  t1.time_code = rule1->at_time_code;
-  t1.time_seconds = rule1->at_time_seconds;
-
-  t2.year = time2_year;
-  t2.month = time2_month;
-  t2.day_code = rule2->on_day_code;
-  t2.day_number = rule2->on_day_number;
-  t2.day_weekday = rule2->on_day_weekday;
-  t2.time_code = rule2->at_time_code;
-  t2.time_seconds = rule2->at_time_seconds;
-
-  /* FIXME: We don't know the offsets yet, but I don't think any Rules are
-     close enough together that the offsets can make a difference. Should
-     check this. */
-  calculate_actual_time (&t1, TIME_WALL, 0, 0);
-  calculate_actual_time (&t2, TIME_WALL, 0, 0);
-
-  /* Now we can compare the entire time. */
-  if (t1.year > t2.year)
-    result = 1;
-  else if (t1.year < t2.year)
-    result = -1;
-
-  else if (t1.month > t2.month)
-    result = 1;
-  else if (t1.month < t2.month)
-    result = -1;
-
-  else if (t1.day_number > t2.day_number)
-    result = 1;
-  else if (t1.day_number < t2.day_number)
-    result = -1;
-
-  else if (t1.time_seconds > t2.time_seconds)
-    result = 1;
-  else if (t1.time_seconds < t2.time_seconds)
-    result = -1;
-
-  else {
-    printf ("WARNING: Rule dates matched.\n");
-    result = 0;
-  }
-
-  return result;
-}
-
-
-static void
-output_zone			(char		*directory,
-				 ZoneData	*zone,
-				 char		*zone_name,
-				 GHashTable	*rule_data)
-{
-  FILE *fp, *changes_fp = NULL;
-  char output_directory[PATHNAME_BUFFER_SIZE];
-  char filename[PATHNAME_BUFFER_SIZE];
-  char changes_filename[PATHNAME_BUFFER_SIZE];
-  char *zone_directory, *zone_subdirectory, *zone_filename;
-
-  /* Set a global for the zone_name, to be used only for debug messages. */
-  CurrentZoneName = zone_name;
-
-  /* Use this to only output a particular zone. */
-#if 0
-  if (strcmp (zone_name, "Atlantic/Azores"))
-    return;
-#endif
-
-#if 0
-  printf ("Outputting Zone: %s\n", zone_name);
-#endif
-
-  if (!parse_zone_name (zone_name, &zone_directory, &zone_subdirectory,
-			&zone_filename))
-    return;
-
-  if (VzicDumpZoneNamesAndCoords) {
-    VzicTimeZoneNames = g_list_prepend (VzicTimeZoneNames,
-					g_strdup (zone_name));
-  }
-
-  sprintf (output_directory, "%s/%s", directory, zone_directory);
-  ensure_directory_exists (output_directory);
-  sprintf (filename, "%s/%s.ics", output_directory, zone_filename);
-
-  if (VzicDumpChanges) {
-    sprintf (output_directory, "%s/ChangesVzic/%s", directory, zone_directory);
-    ensure_directory_exists (output_directory);
-    sprintf (changes_filename, "%s/%s", output_directory, zone_filename);
-  }
-
-  if (zone_subdirectory) {
-    sprintf (output_directory, "%s/%s/%s", directory, zone_directory,
-	     zone_subdirectory);
-    ensure_directory_exists (output_directory);
-    sprintf (filename, "%s/%s.ics", output_directory, zone_filename);
-
-    if (VzicDumpChanges) {
-      sprintf (output_directory, "%s/ChangesVzic/%s/%s", directory,
-	       zone_directory, zone_subdirectory);
-      ensure_directory_exists (output_directory);
-      sprintf (changes_filename, "%s/%s", output_directory, zone_filename);
-    }
-  }
-
-  /* Create the files. */
-  fp = fopen (filename, "w");
-  if (!fp) {
-    fprintf (stderr, "Couldn't create file: %s\n", filename);
-    exit (1);
-  }
-
-  if (VzicDumpChanges) {
-    changes_fp = fopen (changes_filename, "w");
-    if (!changes_fp) {
-      fprintf (stderr, "Couldn't create file: %s\n", changes_filename);
-      exit (1);
-    }
-  }
-
-  fprintf (fp, "BEGIN:VCALENDAR\nPRODID:%s\nVERSION:2.0\n", ProductID);
-
-  output_zone_to_files (zone, zone_name, rule_data, fp, changes_fp);
-
-  if (ferror (fp)) {
-    fprintf (stderr, "Error writing file: %s\n", filename);
-    exit (1);
-  }
-
-  fprintf (fp, "END:VCALENDAR\n");
-
-  fclose (fp);
-
-  g_free (zone_directory);
-  g_free (zone_subdirectory);
-  g_free (zone_filename);
-}
-
-
-/* This checks that the Zone name only uses the characters in [-+_/a-zA-Z0-9],
-   and outputs a warning if it isn't. */
-static gboolean
-parse_zone_name			(char		*name,
-				 char	       **directory,
-				 char	       **subdirectory,
-				 char	       **filename)
-{
-  static int invalid_zone_num = 1;
-
-  char *p, ch, *first_slash_pos = NULL, *second_slash_pos = NULL;
-  gboolean invalid = FALSE;
-
-  for (p = name; (ch = *p) != 0; p++) {
-    if ((ch < 'a' || ch > 'z') && (ch < 'A' || ch > 'Z')
-	&& (ch < '0' || ch > '9') && ch != '/' && ch != '_'
-	&& ch != '-' && ch != '+') {
-      fprintf (stderr, "WARNING: Unusual Zone name: %s\n", name);
-      invalid = TRUE;
-      break;
-    }
-
-    if (ch == '/') {
-      if (!first_slash_pos) {
-	first_slash_pos = p;
-      } else if (!second_slash_pos) {
-	second_slash_pos = p;
-      } else {
-	fprintf (stderr, "WARNING: More than 2 '/' characters in Zone name: %s\n", name);
-	invalid = TRUE;
-	break;
-      }
-    }
-  }
-
-  if (!first_slash_pos) {
-#if 0
-	fprintf (stderr, "No '/' character in Zone name: %s. Skipping.\n", name);
-#endif
-	return FALSE;
-  }
-
-  if (invalid) {
-    *directory = g_strdup ("Invalid");
-    *filename = g_strdup_printf ("Zone%i", invalid_zone_num++);
-  } else {
-    *first_slash_pos = '\0';
-    *directory = g_strdup (name);
-    *first_slash_pos = '/';
-
-    if (second_slash_pos) {
-      *second_slash_pos = '\0';
-      *subdirectory = g_strdup (first_slash_pos + 1);
-      *second_slash_pos = '/';
-
-      *filename = g_strdup (second_slash_pos + 1);
-    } else {
-      *subdirectory = NULL;
-      *filename = g_strdup (first_slash_pos + 1);
-    }
-  }
-
-  return invalid ? FALSE : TRUE;
-}
-
-
-static void
-output_zone_to_files		(ZoneData	*zone,
-				 char		*zone_name,
-				 GHashTable	*rule_data,
-				 FILE		*fp,
-				 FILE		*changes_fp)
-{
-  ZoneLineData *zone_line;
-  GArray *changes;
-  int i, stdoff, walloff, start_index, save_seconds;
-  VzicTime start, end, *vzictime_start, *vzictime, *vzictime_first_rule_change;
-  gboolean is_daylight, found_letter_s;
-  char *start_letter_s;
-
-  changes = g_array_new (FALSE, FALSE, sizeof (VzicTime));
-
-  vzictime_init (&start);
-  vzictime_init (&end);
-
-  /* The first period starts at -infinity. */
-  start.year = YEAR_MINIMUM;
-
-  for (i = 0; i < zone->zone_line_data->len; i++) {
-    zone_line = &g_array_index (zone->zone_line_data, ZoneLineData, i);
-
-    /* This is the local standard time offset from GMT for this period. */
-    start.stdoff = stdoff = zone_line->stdoff_seconds;
-    start.walloff = walloff = stdoff + zone_line->save_seconds;
-
-    if (zone_line->until_set) {
-      end.year = zone_line->until_year;
-      end.month = zone_line->until_month;
-      end.day_code = zone_line->until_day_code;
-      end.day_number = zone_line->until_day_number;
-      end.day_weekday = zone_line->until_day_weekday;
-      end.time_seconds = zone_line->until_time_seconds;
-      end.time_code = zone_line->until_time_code;
-    } else {
-      /* The last period ends at +infinity. */
-      end.year = YEAR_MAXIMUM;
-    }
-
-    /* Add a time change for the start of the period. This may be removed
-       later if one of the rules expands to exactly the same time. */
-    start_index = changes->len;
-    g_array_append_val (changes, start);
-
-    /* If there are Rules associated with this period, add all the relevant
-       time changes. */
-    save_seconds = 0;
-    if (zone_line->rules)
-      found_letter_s = add_rule_changes (zone_line, zone_name, changes,
-					 rule_data, &start, &end,
-					 &start_letter_s, &save_seconds);
-    else
-      found_letter_s = FALSE;
-
-    /* FIXME: I'm not really sure what to do about finding a LETTER_S for the
-       first part of the period (i.e. before the first Rule comes into effect).
-       Currently we try to use the same LETTER_S as the first Rule of the
-       period which is in local standard time. */
-    if (zone_line->save_seconds)
-      save_seconds = zone_line->save_seconds;
-    is_daylight = save_seconds ? TRUE : FALSE;
-    vzictime_start = &g_array_index (changes, VzicTime, start_index);
-    walloff = vzictime_start->walloff = stdoff + save_seconds;
-
-    /* TEST: See if the first Rule time is exactly the same as the change from
-       the Zone line. In which case we can remove the Zone line change. */
-    if (changes->len > start_index + 1) {
-      int prev_stdoff, prev_walloff;
-
-      if (start_index > 0) {
-	VzicTime *v = &g_array_index (changes, VzicTime, start_index - 1);
-	prev_stdoff = v->stdoff;
-	prev_walloff = v->walloff;
-      } else {
-	prev_stdoff = 0;
-	prev_walloff = 0;
-      }
-      vzictime_first_rule_change = &g_array_index (changes, VzicTime,
-						   start_index + 1);
-      if (times_match (vzictime_start, prev_stdoff, prev_walloff,
-		       vzictime_first_rule_change, stdoff, walloff)) {
-#if 0
-	printf ("Removing zone-line change (using new offsets)\n");
-#endif
-	g_array_remove_index (changes, start_index);
-	vzictime_start = NULL;
-      } else if (times_match (vzictime_start, prev_stdoff, prev_walloff,
-			      vzictime_first_rule_change, prev_stdoff, prev_walloff)) {
-#if 0
-	printf ("Removing zone-line change (using previous offsets)\n");
-#endif
-	g_array_remove_index (changes, start_index);
-	vzictime_start = NULL;
-      }
-    }
-
-
-    if (vzictime_start) {
-      vzictime_start->tzname = expand_tzname (zone_name, zone_line->format,
-					      found_letter_s,
-					      start_letter_s, is_daylight);
-    }
-
-    /* The start of the next Zone line is the end time of this one. */
-    start = end;
-  }
-
-  set_previous_offsets (changes);
-
-  output_zone_components (fp, zone_name, changes);
-
-  if (VzicDumpChanges)
-    dump_changes (changes_fp, zone_name, changes);
-
-  /* Free all the TZNAME fields. */
-  for (i = 0; i < changes->len; i++) {
-    vzictime = &g_array_index (changes, VzicTime, i);
-    g_free (vzictime->tzname);
-  }
-
-  g_array_free (changes, TRUE);
-}
-
-
-/* This appends any timezone changes specified by the rules associated with
-   the timezone, that happen between the start and end times.
-   It returns the letter_s field of the first STANDARD rule found in the
-   search. We need this to fill in any %s in the FORMAT field of the first
-   component of the time period (the Zone line). */
-static gboolean
-add_rule_changes			(ZoneLineData	*zone_line,
-					 char		*zone_name,
-					 GArray		*changes,
-					 GHashTable	*rule_data,
-					 VzicTime	*start,
-					 VzicTime	*end,
-					 char	       **start_letter_s,
-					 int		*save_seconds)
-{
-  GArray *rule_array;
-  RuleData *rule, *prev_rule = NULL;
-  int stdoff, walloff, i, prev_stdoff, prev_walloff;
-  VzicTime vzictime;
-  gboolean is_daylight, found_start_letter_s = FALSE;
-  gboolean checked_for_previous = FALSE;
-
-  *save_seconds = 0;
-
-  rule_array = g_hash_table_lookup (rule_data, zone_line->rules);
-  if (!rule_array) {
-    fprintf (stderr, "Couldn't access rules: %s\n", zone_line->rules);
-    exit (1);
-  }
-
-  /* The stdoff is the same for all the rules. */
-  stdoff = start->stdoff;
-
-  /* The walloff changes as we go through the rules. */
-  walloff = start->walloff;
-
-  /* Get the stdoff & walloff from the last change before this period. */
-  if (changes->len >= 2) {
-    VzicTime *change = &g_array_index (changes, VzicTime, changes->len - 2);
-    prev_stdoff = change->stdoff;
-    prev_walloff = change->walloff;
-  } else {
-    prev_stdoff = prev_walloff = 0;
-  }
-
-
-  for (i = 0; i < rule_array->len; i++) {
-    rule = &g_array_index (rule_array, RuleData, i);
-
-    is_daylight = rule->save_seconds != 0 ? TRUE : FALSE;
-
-    vzictime_init (&vzictime);
-    vzictime.year = rule->from_year;
-    vzictime.month = rule->in_month;
-    vzictime.day_code = rule->on_day_code;
-    vzictime.day_number = rule->on_day_number;
-    vzictime.day_weekday = rule->on_day_weekday;
-    vzictime.time_seconds = rule->at_time_seconds;
-    vzictime.time_code = rule->at_time_code;
-    vzictime.stdoff = stdoff;
-    vzictime.walloff = stdoff + rule->save_seconds;
-    vzictime.is_infinite = (rule->to_year == YEAR_MAXIMUM) ? TRUE : FALSE;
-
-    /* If the rule time is before the given start time, skip it. */
-    if (compare_times (&vzictime, stdoff, walloff,
-		       start, prev_stdoff, prev_walloff) < 0)
-      continue;
-
-    /* If the previous Rule was a daylight Rule, then we may want to use the
-       walloff from that. */
-    if (!checked_for_previous) {
-      checked_for_previous = TRUE;
-      if (i > 0) {
-	prev_rule = &g_array_index (rule_array, RuleData, i - 1);
-	if (prev_rule->save_seconds) {
-	  walloff = start->walloff = stdoff + prev_rule->save_seconds;
-	  *save_seconds = prev_rule->save_seconds;
-	  found_start_letter_s = TRUE;
-	  *start_letter_s = prev_rule->letter_s;
-#if 0
-	  printf ("Could use save_seconds from previous Rule: %s\n",
-		  zone_name);
-#endif
-	}
-      }
-    }
-
-    /* If an end time has been given, then if the rule time is on or after it
-       break out of the loop. */
-    if (end->year != YEAR_MAXIMUM
-	&& compare_times (&vzictime, stdoff, walloff,
-			  end, stdoff, walloff) >= 0)
-      break;
-
-    vzictime.tzname = expand_tzname (zone_name, zone_line->format, TRUE,
-				     rule->letter_s, is_daylight);
-
-    g_array_append_val (changes, vzictime);
-
-    /* When we find the first STANDARD time we set letter_s. */
-    if (!found_start_letter_s && !is_daylight) {
-      found_start_letter_s = TRUE;
-      *start_letter_s = rule->letter_s;
-    }
-
-    /* Now that we have added the Rule, the new walloff comes into effect
-       for any following Rules. */
-    walloff = vzictime.walloff;
-  }
-
-  return found_start_letter_s;
-}
-
-
-/* This expands the Zone line FORMAT field, using the given LETTER_S from a
-   Rule line. There are 3 types of FORMAT field:
-   1. a string with an %s in, e.g. "WE%sT". The %s is replaced with LETTER_S.
-   2. a string with an '/' in, e.g. "CAT/CAWT". The first part is used for
-      standard time and the second part for when daylight-saving is in effect.
-   3. a plain string, e.g. "LMT", which we leave as-is.
-   Note that (1) is the only type in which letter_s is required.
-*/
-static char*
-expand_tzname				(char		*zone_name,
-					 char		*format,
-					 gboolean	 have_letter_s,
-					 char		*letter_s,
-					 gboolean	 is_daylight)
-{
-  char *p, buffer[256], *guess = NULL;
-  int len;
-
-#if 0
-  printf ("Expanding %s with %s\n", format, letter_s);
-#endif
-
-  if (!format || !format[0]) {
-    fprintf (stderr, "Missing FORMAT\n");
-    exit (1);
-  }
-
-  /* 1. Look for a "%s". */
-  p = strchr (format, '%');
-  if (p && *(p + 1) == 's') {
-    if (!have_letter_s) {
-
-      /* NOTE: These are a few hard-coded TZNAMEs that I've looked up myself.
-	 These are needed in a few places where a Zone line comes into effect
-	 but no Rule has been found, so we have no LETTER_S to use.
-	 I've tried to use whatever is the normal LETTER_S in the Rules for
-	 the particular zone, in local standard time. */
-      if (!strcmp (zone_name, "Asia/Macao")
-	  && !strcmp (format, "C%sT"))
-	guess = "CST";
-      else if (!strcmp (zone_name, "Asia/Macau")
-	       && !strcmp (format, "C%sT"))
-	guess = "CST";
-      else if (!strcmp (zone_name, "Asia/Ashgabat")
-	       && !strcmp (format, "ASH%sT"))
-	guess = "ASHT";
-      else if (!strcmp (zone_name, "Asia/Ashgabat")
-	       && !strcmp (format, "TM%sT"))
-	guess = "TMT";
-      else if (!strcmp (zone_name, "Asia/Samarkand")
-	       && !strcmp (format, "TAS%sT"))
-	guess = "TAST";
-      else if (!strcmp (zone_name, "Atlantic/Azores")
-	       && !strcmp (format, "WE%sT"))
-	guess = "WET";
-      else if (!strcmp (zone_name, "Europe/Paris")
-	       && !strcmp (format, "WE%sT"))
-	guess = "WET";
-      else if (!strcmp (zone_name, "Europe/Warsaw")
-	       && !strcmp (format, "CE%sT"))
-	guess = "CET";
-      else if (!strcmp (zone_name, "America/Phoenix")
-	       && !strcmp (format, "M%sT"))
-	guess = "MST";
-      else if (!strcmp (zone_name, "America/Nome")
-	       && !strcmp (format, "Y%sT"))
-	guess = "YST";
-
-      if (guess) {
-#if 0
-	fprintf (stderr,
-		 "WARNING: Couldn't find a LETTER_S to use in FORMAT: %s in Zone: %s Guessing: %s\n",
-		 format, zone_name, guess);
-#endif
-	return g_strdup (guess);
-      }
-
-#if 1
-      fprintf (stderr,
-	       "WARNING: Couldn't find a LETTER_S to use in FORMAT: %s in Zone: %s Leaving TZNAME empty\n",
-	       format, zone_name);
-#endif
-
-#if 0
-      /* This is useful to spot exactly which component had a problem. */
-      sprintf (buffer, "FIXME: %s", format);
-      return g_strdup (buffer);
-#else
-      /* We give up and don't output a TZNAME. */
-      return NULL;
-#endif
-    }
-
-    sprintf (buffer, format, letter_s ? letter_s : "");
-    return g_strdup (buffer);
-  }
-
-  /* 2. Look for a "/". */
-  p = strchr (format, '/');
-  if (p) {
-    if (is_daylight) {
-      return g_strdup (p + 1);
-    } else {
-      len = p - format;
-      strncpy (buffer, format, len);
-      buffer[len] = '\0';
-      return g_strdup (buffer);
-    }
-  }
-
-  /* 3. Just use format as it is. */
-  return g_strdup (format);
-}
-
-
-/* Compares 2 VzicTimes, returning strcmp()-like values, i.e. 0 if equal, 
-   1 if the 1st is after the 2nd and -1 if the 1st is before the 2nd. */
-static int
-compare_times				(VzicTime	*time1,
-					 int		 stdoff1,
-					 int		 walloff1,
-					 VzicTime	*time2,
-					 int		 stdoff2,
-					 int		 walloff2)
-{
-  VzicTime t1, t2;
-  int result;
-
-  t1 = *time1;
-  t2 = *time2;
-
-  calculate_actual_time (&t1, TIME_UNIVERSAL, stdoff1, walloff1);
-  calculate_actual_time (&t2, TIME_UNIVERSAL, stdoff2, walloff2);
-
-  /* Now we can compare the entire time. */
-  if (t1.year > t2.year)
-    result = 1;
-  else if (t1.year < t2.year)
-    result = -1;
-
-  else if (t1.month > t2.month)
-    result = 1;
-  else if (t1.month < t2.month)
-    result = -1;
-
-  else if (t1.day_number > t2.day_number)
-    result = 1;
-  else if (t1.day_number < t2.day_number)
-    result = -1;
-
-  else if (t1.time_seconds > t2.time_seconds)
-    result = 1;
-  else if (t1.time_seconds < t2.time_seconds)
-    result = -1;
-
-  else
-    result = 0;
-
-#if 0
-  printf ("%i/%i/%i %i <=> %i/%i/%i %i  -> %i\n",
-	  t1.day_number, t1.month + 1, t1.year, t1.time_seconds,
-	  t2.day_number, t2.month + 1, t2.year, t2.time_seconds,
-	  result);
-#endif
-
-  return result;
-}
-
-
-/* Returns TRUE if the 2 times are exactly the same. It will calculate the
-   actual day, but doesn't convert times. */
-static gboolean
-times_match				(VzicTime	*time1,
-					 int		 stdoff1,
-					 int		 walloff1,
-					 VzicTime	*time2,
-					 int		 stdoff2,
-					 int		 walloff2)
-{
-  VzicTime t1, t2;
-
-  t1 = *time1;
-  t2 = *time2;
-
-  calculate_actual_time (&t1, TIME_UNIVERSAL, stdoff1, walloff1);
-  calculate_actual_time (&t2, TIME_UNIVERSAL, stdoff2, walloff2);
-
-  if (t1.year == t2.year
-      && t1.month == t2.month
-      && t1.day_number == t2.day_number
-      && t1.time_seconds == t2.time_seconds)
-    return TRUE;
-
-  return FALSE;
-}
-
-
-static void
-output_zone_components			(FILE		*fp,
-					 char		*name,
-					 GArray		*changes)
-{
-  VzicTime *vzictime;
-  int i, start_index = 0;
-  gboolean only_one_change = FALSE;
-  char start_buffer[1024];
-
-  fprintf (fp, "BEGIN:VTIMEZONE\nTZID:%s%s\n", TZIDPrefixExpanded, name);
-
-  if (VzicUrlPrefix != NULL)
-      fprintf (fp, "TZURL:%s/%s\n", VzicUrlPrefix, name);
-
-  /* We use an 'X-' property to place the city name in. */
-  fprintf (fp, "X-LIC-LOCATION:%s\n", name);
-
-  /* We try to find any recurring components first, or they may get output
-     as lots of RDATES instead. */
-  if (!VzicNoRRules) {
-    int num_rrules_output = 0;
-
-    for (i = 1; i < changes->len; i++) {
-      if (check_for_recurrence (fp, changes, i)) {
-	num_rrules_output++;
-      }
-    }
-
-#if 0
-    printf ("Zone: %s had %i infinite RRULEs\n", CurrentZoneName,
-	    num_rrules_output);
-#endif
-
-    if (!VzicPureOutput && num_rrules_output == 2) {
-#if 0
-      printf ("Zone: %s using 2 RRULEs\n", CurrentZoneName);
-#endif
-      fprintf (fp, "END:VTIMEZONE\n");
-      return;
-    }
-  }
-
-  /* We skip the first change, which starts at -infinity, unless it is the only
-     change for the timezone. */
-  if (changes->len > 1)
-    start_index = 1;
-  else
-    only_one_change = TRUE;
-
-  /* For pure output, we start at the start of the array and step through it
-     outputting RDATEs. For Outlook-compatible output we start at the end
-     and step backwards to find the first STANDARD time to output. */
-  if (VzicPureOutput)
-    i = start_index - 1;
-  else
-    i = changes->len;
-
-  for (;;) {
-    if (VzicPureOutput)
-      i++;
-    else
-      i--;
-
-    if (VzicPureOutput) {
-      if (i >= changes->len)
-	break;
-    } else {
-      if (i < start_index)
-	break;
-    }
-
-    vzictime = &g_array_index (changes, VzicTime, i);
-
-    /* If we have already output this component as part of an RRULE or RDATE,
-       then we skip it. */
-    if (vzictime->output)
-      continue;
-
-    /* For Outlook-compatible output we only want to output the last STANDARD
-       time as a DTSTART, so skip any DAYLIGHT changes. */
-    if (!VzicPureOutput && vzictime->stdoff != vzictime->walloff) {
-      printf ("Skipping DAYLIGHT change\n");
-      continue;
-    }
-
-#if 0
-    printf ("Zone: %s using DTSTART Year: %i\n", CurrentZoneName,
-	    vzictime->year);
-#endif
-
-    if (VzicPureOutput) {
-      output_component_start (start_buffer, vzictime, TRUE, only_one_change);
-    } else {
-    /* For Outlook compatability we don't output the RDATE and use the same
-       TZOFFSET for TZOFFSETFROM and TZOFFSETTO. */
-      vzictime->year         = RDATE_YEAR;
-      vzictime->month        = 0;
-      vzictime->day_code     = DAY_SIMPLE;
-      vzictime->day_number   = 1;
-      vzictime->time_code    = TIME_WALL;
-      vzictime->time_seconds = 0;
-
-      output_component_start (start_buffer, vzictime, FALSE, TRUE);
-    }
-
-    fprintf (fp, "%s", start_buffer);
-
-    /* This will look for matching components and output them as RDATEs
-       instead of separate components. */
-    if (VzicPureOutput && !VzicNoRDates)
-      check_for_rdates (fp, changes, i);
-
-    output_component_end (fp, vzictime);
-
-    vzictime->output = TRUE;
-
-    if (!VzicPureOutput)
-      break;
-  }
-
-  fprintf (fp, "END:VTIMEZONE\n");
-}
-
-
-/* This sets the prev_stdoff and prev_walloff (i.e. the TZOFFSETFROM) of each
-   VzicTime, using the stdoff and walloff of the previous VzicTime. It makes
-   the rest of the code much simpler. */
-static void
-set_previous_offsets		(GArray		*changes)
-{
-  VzicTime *vzictime, *prev_vzictime;
-  int i;
-
-  prev_vzictime = &g_array_index (changes, VzicTime, 0);
-  prev_vzictime->prev_stdoff = 0;
-  prev_vzictime->prev_walloff = 0;
-
-  for (i = 1; i < changes->len; i++) {
-    vzictime = &g_array_index (changes, VzicTime, i);
-
-    vzictime->prev_stdoff = prev_vzictime->stdoff;
-    vzictime->prev_walloff = prev_vzictime->walloff;
-
-    prev_vzictime = vzictime;
-  }
-}
-
-
-/* Returns TRUE if we output an infinite recurrence. */
-static gboolean
-check_for_recurrence		(FILE		*fp,
-				 GArray		*changes,
-				 int		 idx)
-{
-  VzicTime *vzictime_start, *vzictime, vzictime_start_copy;
-  gboolean is_daylight_start, is_daylight;
-  int last_match, i, next_year, day_offset;
-  char until[256], rrule_buffer[2048], start_buffer[1024];
-  GList *matching_elements = NULL, *elem;
-
-  vzictime_start = &g_array_index (changes, VzicTime, idx);
-
-  /* If this change has already been output, skip it. */
-  if (vzictime_start->output)
-    return FALSE;
-
-  /* There can't possibly be an RRULE starting from YEAR_MINIMUM. */
-  if (vzictime_start->year == YEAR_MINIMUM)
-    return FALSE;
-
-  is_daylight_start = (vzictime_start->stdoff != vzictime_start->walloff)
-    ? TRUE : FALSE;
-
-#if 0
-  printf ("\nChecking: %s OFFSETFROM: %i %s\n",
-	  format_vzictime (vzictime_start), vzictime_start->prev_walloff,
-	  is_daylight_start ? "DAYLIGHT" : "");
-#endif
-
-  /* If this is an infinitely recurring change, output the RRULE and return.
-     There won't be any changes after it that we could merge. */
-  if (vzictime_start->is_infinite) {
-
-    /* Change the year to our minimum start year. */
-    vzictime_start_copy = *vzictime_start;
-    if (!VzicPureOutput)
-      vzictime_start_copy.year = RRULE_START_YEAR;
-
-    day_offset = output_component_start (start_buffer, &vzictime_start_copy,
-					 FALSE, FALSE);
-
-    if (!output_rrule (rrule_buffer, vzictime_start_copy.month,
-		       vzictime_start_copy.day_code,
-		       vzictime_start_copy.day_number,
-		       vzictime_start_copy.day_weekday, day_offset, "")) {
-      if (vzictime_start->year != MAX_TIME_T_YEAR) {
-	fprintf (stderr, "WARNING: Failed to output infinite recurrence with start year: %i\n", vzictime_start->year);
-      }
-      return TRUE;
-    }
-
-    fprintf (fp, "%s%s", start_buffer, rrule_buffer);
-    output_component_end (fp, vzictime_start);
-    vzictime_start->output = TRUE;
-    return TRUE;
-  }
-
-  last_match = idx;
-  next_year = vzictime_start->year + 1;
-  for (i = idx + 1; i < changes->len; i++) {
-    vzictime = &g_array_index (changes, VzicTime, i);
-
-    is_daylight = (vzictime->stdoff != vzictime->walloff) ? TRUE : FALSE;
-
-    if (vzictime->output)
-      continue;
-
-#if 0
-    printf ("          %s OFFSETFROM: %i %s\n",
-	    format_vzictime (vzictime), vzictime->prev_walloff,
-	    is_daylight ? "DAYLIGHT" : "");
-#endif
-
-    /* If it is more than one year ahead, we are finished, since we want
-       consecutive years. */
-    if (vzictime->year > next_year) {
-      break;
-    }
-
-    /* It must be the same type of component - STANDARD or DAYLIGHT. */
-    if (is_daylight != is_daylight_start) {
-      continue;
-    }
-
-    /* It must be the following year, with the same month, day & time.
-       It is possible that the time has a different code but does in fact
-       match when normalized, but we don't care (for now at least). */
-    if (vzictime->year != next_year
-	|| vzictime->month != vzictime_start->month
-	|| vzictime->day_code != vzictime_start->day_code
-	|| vzictime->day_number != vzictime_start->day_number
-	|| vzictime->day_weekday != vzictime_start->day_weekday
-	|| vzictime->time_seconds != vzictime_start->time_seconds
-	|| vzictime->time_code != vzictime_start->time_code) {
-      continue;
-    }
-
-    /* The TZOFFSETFROM and TZOFFSETTO must match. */
-    if (vzictime->prev_walloff != vzictime_start->prev_walloff) {
-      continue;
-    }
-
-    if (vzictime->walloff != vzictime_start->walloff) {
-      continue;
-    }
-
-    /* TZNAME must match. */
-    if (!timezones_match (vzictime->tzname, vzictime_start->tzname)) {
-      continue;
-    }
-
-    /* We have a match. */
-    last_match = i;
-    next_year = vzictime->year + 1;
-
-    matching_elements = g_list_prepend (matching_elements, vzictime);
-  }
-
-  if (last_match == idx)
-    return FALSE;
-
-#if 0
-  printf ("Found recurrence %i - %i!!!\n", vzictime_start->year,
-	  next_year - 1);
-#endif
-
-  vzictime = &g_array_index (changes, VzicTime, last_match);
-
-/* We only use RRULEs if there are at least MIN_RRULE_OCCURRENCES occurrences,
-   since otherwise RDATEs are more efficient. */
-  if (!vzictime->is_infinite) {
-    int years = vzictime->year - vzictime_start->year + 1;
-#if 0
-    printf ("RRULE Years: %i\n", years);
-#endif
-    if (years < MIN_RRULE_OCCURRENCES)
-      return FALSE;
-  }
-
-  if (vzictime->is_infinite) {
-    until[0] = '\0';
-  } else {
-    VzicTime t1 = *vzictime;
-
-    printf ("RRULE with UNTIL - aborting\n");
-    abort ();
-
-    calculate_actual_time (&t1, TIME_UNIVERSAL, vzictime->prev_stdoff,
-			   vzictime->prev_walloff);
-
-    /* Output UNTIL, in UTC. */
-    sprintf (until, ";UNTIL=%sZ", format_time (t1.year, t1.month,
-					       t1.day_number,
-					       t1.time_seconds));
-  }
-
-  /* Change the year to our minimum start year. */
-  vzictime_start_copy = *vzictime_start;
-  if (!VzicPureOutput)
-    vzictime_start_copy.year = RRULE_START_YEAR;
-
-  day_offset = output_component_start (start_buffer, &vzictime_start_copy,
-				       FALSE, FALSE);
-  if (output_rrule (rrule_buffer, vzictime_start_copy.month,
-		    vzictime_start_copy.day_code,
-		    vzictime_start_copy.day_number,
-		    vzictime_start_copy.day_weekday, day_offset, until)) {
-    fprintf (fp, "%s%s", start_buffer, rrule_buffer);
-    output_component_end (fp, vzictime_start);
-
-    /* Mark all the changes as output. */
-    vzictime_start->output = TRUE;
-    for (elem = matching_elements; elem; elem = elem->next) {
-      vzictime = elem->data;
-      vzictime->output = TRUE;
-    }
-  }
-
-  g_list_free (matching_elements);
-
-  return TRUE;
-}
-
-
-static void
-check_for_rdates		(FILE		*fp,
-				 GArray		*changes,
-				 int		 idx)
-{
-  VzicTime *vzictime_start, *vzictime, tmp_vzictime;
-  gboolean is_daylight_start, is_daylight;
-  int i, year, month, day, time;
-
-  vzictime_start = &g_array_index (changes, VzicTime, idx);
-
-  is_daylight_start = (vzictime_start->stdoff != vzictime_start->walloff)
-    ? TRUE : FALSE;
-
-#if 0
-  printf ("\nChecking: %s OFFSETFROM: %i %s\n",
-	  format_vzictime (vzictime_start), vzictime_start->prev_walloff,
-	  is_daylight_start ? "DAYLIGHT" : "");
-#endif
-
-  /* We want to go backwards through the array now, for Outlook compatability.
-     (It only looks at the first DTSTART/RDATE.) */
-  for (i = idx + 1; i < changes->len; i++) {
-    vzictime = &g_array_index (changes, VzicTime, i);
-
-    is_daylight = (vzictime->stdoff != vzictime->walloff) ? TRUE : FALSE;
-
-    if (vzictime->output)
-      continue;
-
-#if 0
-    printf ("          %s OFFSETFROM: %i %s\n", format_vzictime (vzictime),
-	    vzictime->prev_walloff, is_daylight ? "DAYLIGHT" : "");
-#endif
-
-    /* It must be the same type of component - STANDARD or DAYLIGHT. */
-    if (is_daylight != is_daylight_start) {
-      continue;
-    }
-
-    /* The TZOFFSETFROM and TZOFFSETTO must match. */
-    if (vzictime->prev_walloff != vzictime_start->prev_walloff) {
-      continue;
-    }
-
-    if (vzictime->walloff != vzictime_start->walloff) {
-      continue;
-    }
-
-    /* TZNAME must match. */
-    if (!timezones_match (vzictime->tzname, vzictime_start->tzname)) {
-      continue;
-    }
-
-    /* We have a match. */
-    
-    tmp_vzictime = *vzictime;
-    calculate_actual_time (&tmp_vzictime, TIME_WALL, vzictime->prev_stdoff,
-			   vzictime->prev_walloff);
-
-    fprintf (fp, "RDATE:%s\n", format_time (tmp_vzictime.year,
-					    tmp_vzictime.month,
-					    tmp_vzictime.day_number,
-					    tmp_vzictime.time_seconds));
-
-    vzictime->output = TRUE;
-  }
-}
-
-
-static gboolean
-timezones_match				(char		*tzname1,
-					 char		*tzname2)
-{
-  if (tzname1 && tzname2 && !strcmp (tzname1, tzname2))
-    return TRUE;
-
-  if (!tzname1 && !tzname2)
-    return TRUE;
-
-  return FALSE;
-}
-
-
-/* Outputs the start of a VTIMEZONE component, with the BEGIN line,
-   the DTSTART, TZOFFSETFROM, TZOFFSETTO & TZNAME properties. */
-static int
-output_component_start			(char		*buffer,
-					 VzicTime	*vzictime,
-					 gboolean	 output_rdate,
-					 gboolean	 use_same_tz_offset)
-{
-  gboolean is_daylight, skip_day_offset = FALSE;
-  gint year, month, day, time, day_offset = 0;
-  GDate old_date, new_date;
-  char *formatted_time;
-  char line1[1024], line2[1024], line3[1024];
-  char line4[1024], line5[1024], line6[1024];
-  VzicTime tmp_vzictime;
-  int prev_walloff;
-
-  is_daylight = (vzictime->stdoff != vzictime->walloff) ? TRUE : FALSE;
-
-  tmp_vzictime = *vzictime;
-  day_offset = calculate_actual_time (&tmp_vzictime, TIME_WALL,
-				      vzictime->prev_stdoff,
-				      vzictime->prev_walloff);
-
-  sprintf (line1, "BEGIN:%s\n", is_daylight ? "DAYLIGHT" : "STANDARD");
-
-  /* If the timezone only has one change, that means it uses the same offset
-     forever, so we use the same TZOFFSETFROM as the TZOFFSETTO. (If the zone
-     has more than one change, we don't output the first one.) */
-  if (use_same_tz_offset)
-    prev_walloff = vzictime->walloff;
-  else
-    prev_walloff = vzictime->prev_walloff;
-
-  sprintf (line2, "TZOFFSETFROM:%s\n",
-	   format_tz_offset (prev_walloff, !VzicPureOutput));
-
-  sprintf (line3, "TZOFFSETTO:%s\n",
-	   format_tz_offset (vzictime->walloff, !VzicPureOutput));
-
-  if (vzictime->tzname)
-    sprintf (line4, "TZNAME:%s\n", vzictime->tzname);
-  else
-    line4[0] = '\0';
-
-  formatted_time = format_time (tmp_vzictime.year, tmp_vzictime.month,
-				tmp_vzictime.day_number,
-				tmp_vzictime.time_seconds);
-  sprintf (line5, "DTSTART:%s\n", formatted_time);
-  if (output_rdate)
-    sprintf (line6, "RDATE:%s\n", formatted_time);
-  else
-    line6[0] = '\0';
-
-  sprintf (buffer, "%s%s%s%s%s%s", line1, line2, line3, line4, line5, line6);
-
-  return day_offset;
-}
-
-
-/* Outputs the END line of the VTIMEZONE component. */
-static void
-output_component_end			(FILE		*fp,
-					 VzicTime	*vzictime)
-{
-  gboolean is_daylight;
-
-  is_daylight = (vzictime->stdoff != vzictime->walloff) ? TRUE : FALSE;
-
-  fprintf (fp, "END:%s\n", is_daylight ? "DAYLIGHT" : "STANDARD");
-}
-
-
-/* Initializes a VzicTime to 1st Jan in YEAR_MINIMUM at midnight, with all
-   offsets set to 0. */
-static void
-vzictime_init				(VzicTime	*vzictime)
-{
-  vzictime->year = YEAR_MINIMUM;
-  vzictime->month = 0;
-  vzictime->day_code = DAY_SIMPLE;
-  vzictime->day_number = 1;
-  vzictime->day_weekday = 0;
-  vzictime->time_seconds = 0;
-  vzictime->time_code = TIME_UNIVERSAL;
-  vzictime->stdoff = 0;
-  vzictime->walloff = 0;
-  vzictime->is_infinite = FALSE;
-  vzictime->output = FALSE;
-  vzictime->prev_stdoff = 0;
-  vzictime->prev_walloff = 0;
-  vzictime->tzname = NULL;
-}
-
-
-/* This calculates the actual local time that a change will occur, given
-   the offsets from standard and wall-clock time. It returns -1 or 1 if it
-   had to move backwards or forwards one day while converting to local time.
-   If it does this then we need to change the RRULEs we output. */
-static int
-calculate_actual_time		(VzicTime	*vzictime,
-				 TimeCode	 time_code,
-				 int		 stdoff,
-				 int		 walloff)
-{
-  GDate date;
-  gint day_offset, days_in_month, weekday, offset, result;
-
-  vzictime->time_seconds = calculate_wall_time (vzictime->time_seconds,
-						vzictime->time_code,
-						stdoff, walloff, &day_offset);
-
-  if (vzictime->day_code != DAY_SIMPLE) {
-    if (vzictime->year == YEAR_MINIMUM || vzictime->year == YEAR_MAXIMUM) {
-      fprintf (stderr, "In calculate_actual_time: invalid year\n");
-      exit (0);
-    }
-
-    g_date_clear (&date, 1);
-    days_in_month = g_date_days_in_month (vzictime->month + 1, vzictime->year);
-
-  /* Note that the day_code refers to the date before we convert it to
-     a wall-clock date and time. So we find the day it was referring to,
-     then make any adjustments needed due to converting the time. */
-    if (vzictime->day_code == DAY_LAST_WEEKDAY) {
-      /* Find out what day the last day of the month is. */
-      g_date_set_dmy (&date, days_in_month, vzictime->month + 1,
-		      vzictime->year);
-      weekday = g_date_weekday (&date) % 7;
-
-      /* Calculate how many days we have to go back to get to day_weekday. */
-      offset = (weekday + 7 - vzictime->day_weekday) % 7;
-
-      vzictime->day_number = days_in_month - offset;
-    } else {
-      /* Find out what day day_number actually is. */
-      g_date_set_dmy (&date, vzictime->day_number, vzictime->month + 1,
-		      vzictime->year);
-      weekday = g_date_weekday (&date) % 7;
-
-      if (vzictime->day_code == DAY_WEEKDAY_ON_OR_AFTER)
-	offset = (vzictime->day_weekday + 7 - weekday) % 7;
-      else
-	offset = - ((weekday + 7 - vzictime->day_weekday) % 7);
-
-      vzictime->day_number = vzictime->day_number + offset;
-    }
-
-    vzictime->day_code = DAY_SIMPLE;
-
-    if (vzictime->day_number <= 0 || vzictime->day_number > days_in_month) {
-      fprintf (stderr, "Day overflow: %i\n", vzictime->day_number);
-      exit (1);
-    }
-  }
-
-#if 0
-  fprintf (stderr, "%s -> %i/%i/%i\n",
-	   dump_day_coded (vzictime->day_code, vzictime->day_number,
-			   vzictime->day_weekday),
-	   vzictime->day_number, vzictime->month + 1, vzictime->year);
-#endif
-
-  fix_time_overflow (&vzictime->year, &vzictime->month,
-		     &vzictime->day_number, day_offset);
-
-  /* If we want UTC time, we have to convert it now. */
-  if (time_code == TIME_UNIVERSAL) {
-    vzictime->time_seconds = calculate_until_time (vzictime->time_seconds,
-						   TIME_WALL, stdoff, walloff,
-						   &vzictime->year,
-						   &vzictime->month,
-						   &vzictime->day_number);
-  }
-
-  return day_offset;
-}
-
-
-/* This converts the given time into universal time (UTC), to be used in
-   the UNTIL property. */
-static int
-calculate_until_time			(int		 time,
-					 TimeCode	 time_code,
-					 int		 stdoff,
-					 int		 walloff,
-					 int		*year,
-					 int		*month,
-					 int		*day)
-{
-  int result, day_offset;
-
-  day_offset = 0;
-
-  switch (time_code) {
-  case TIME_WALL:
-    result = time - walloff;
-    break;
-  case TIME_STANDARD:
-    result = time - stdoff;
-    break;
-  case TIME_UNIVERSAL:
-    return time;
-  default:
-    fprintf (stderr, "Invalid time code\n");
-    exit (1);
-  }
-
-  if (result < 0) {
-    result += 24 * 60 * 60;
-    day_offset = -1;
-  } else if (result >= 24 * 60 * 60) {
-    result -= 24 * 60 * 60;
-    day_offset = 1;
-  }
-
-  /* Sanity check - we shouldn't have an overflow any more. */
-  if (result < 0 || result >= 24 * 60 * 60) {
-    fprintf (stderr, "Time overflow: %i\n", result);
-    abort ();
-  }
-
-  fix_time_overflow (year, month, day, day_offset);
-
-  return result;
-}
-
-
-/* This converts the given time into wall clock time (the local standard time
-   with any adjustment for daylight-saving). */
-static int
-calculate_wall_time			(int		 time,
-					 TimeCode	 time_code,
-					 int		 stdoff,
-					 int		 walloff,
-					 int		*day_offset)
-{
-  int result;
-
-  *day_offset = 0;
-
-  switch (time_code) {
-  case TIME_WALL:
-    return time;
-  case TIME_STANDARD:
-    /* We have a local standard time, so we have to subtract stdoff to get
-       back to UTC, then add walloff to get wall time. */
-    result = time - stdoff + walloff;
-    break;
-  case TIME_UNIVERSAL:
-    result = time + walloff;
-    break;
-  default:
-    fprintf (stderr, "Invalid time code\n");
-    exit (1);
-  }
-
-  if (result < 0) {
-    result += 24 * 60 * 60;
-    *day_offset = -1;
-  } else if (result >= 24 * 60 * 60) {
-    result -= 24 * 60 * 60;
-    *day_offset = 1;
-  }
-
-  /* Sanity check - we shouldn't have an overflow any more. */
-  if (result < 0 || result >= 24 * 60 * 60) {
-    fprintf (stderr, "Time overflow: %i\n", result);
-    exit (1);
-  }
-
-#if 0
-  printf ("%s -> ", dump_time (time, time_code, TRUE));
-  printf ("%s (%i)\n", dump_time (result, TIME_WALL, TRUE), *day_offset);
-#endif
-
-  return result;
-}
-
-
-static void
-fix_time_overflow			(int		*year,
-					 int		*month,
-					 int		*day,
-					 int		 day_offset)
-{
-  if (day_offset == -1) {
-    *day = *day - 1;
-
-    if (*day == 0) {
-      *month = *month - 1;
-      if (*month == -1) {
-	*month = 11;
-	*year = *year - 1;
-      }
-      *day = g_date_days_in_month (*month + 1, *year);
-    }
-  } else if (day_offset == 1) {
-    *day = *day + 1;
-
-    if (*day > g_date_days_in_month (*month + 1, *year)) {
-      *month = *month + 1;
-      if (*month == 12) {
-	*month = 0;
-	*year = *year + 1;
-      }
-      *day = 1;
-    }
-  }
-}
-
-
-static char*
-format_time				(int		 year,
-					 int		 month,
-					 int		 day,
-					 int		 time)
-{
-  static char buffer[128];
-  int hour, minute, second;
-
-  /* When we are outputting the first component year will be YEAR_MINIMUM.
-     We used to use 1 when outputting this, but Outlook doesn't like any years
-     less that 1600, so we use 1600 instead. We don't output the first change
-     for most zones now, so it doesn't matter too much. */
-  if (year == YEAR_MINIMUM)
-    year = 1601;
-
-  /* We just use 9999 here, so we keep to 4 characters. But this should only
-     be needed when debugging - it shouldn't be needed in the VTIMEZONEs. */
-  if (year == YEAR_MAXIMUM) {
-    fprintf (stderr, "format_time: YEAR_MAXIMUM used\n");
-    year = 9999;
-  }
-
-  hour = time / 3600;
-  minute = (time % 3600) / 60;
-  second = time % 60;
-
-  sprintf (buffer, "%04i%02i%02iT%02i%02i%02i",
-	   year, month + 1, day, hour, minute, second);
-
-  return buffer;
-}
-
-
-/* Outlook doesn't support 6-digit values, i.e. including the seconds, so
-   we round to the nearest minute. No current offsets use the seconds value,
-   so we aren't losing much. */
-static char*
-format_tz_offset			(int		 tz_offset,
-					 gboolean	 round_seconds)
-{
-  static char buffer[128];
-  char *sign = "+";
-  int hours, minutes, seconds;
-
-  if (tz_offset < 0) {
-    tz_offset = -tz_offset;
-    sign = "-";
-  }
-
-  if (round_seconds)
-    tz_offset += 30;
-
-  hours = tz_offset / 3600;
-  minutes = (tz_offset % 3600) / 60;
-  seconds = tz_offset % 60;
-
-  if (round_seconds)
-    seconds = 0;
-
-  /* Sanity check. Standard timezone offsets shouldn't be much more than 12
-     hours, and daylight saving shouldn't change it by more than a few hours.
-     (The maximum offset is 15 hours 56 minutes at present.) */
-  if (hours < 0 || hours >= 24 || minutes < 0 || minutes >= 60
-      || seconds < 0 || seconds >= 60) {
-    fprintf (stderr, "WARNING: Strange timezone offset: H:%i M:%i S:%i\n",
-	     hours, minutes, seconds);
-  }
-
-  if (seconds == 0)
-    sprintf (buffer, "%s%02i%02i", sign, hours, minutes);
-  else
-    sprintf (buffer, "%s%02i%02i%02i", sign, hours, minutes, seconds);
-
-  return buffer;
-}
-
-
-static gboolean
-output_rrule				(char	        *rrule_buffer,
-					 int		 month,
-					 DayCode	 day_code,
-					 int		 day_number,
-					 int		 day_weekday,
-					 int		 day_offset,
-					 char		*until)
-{
-  char buffer[1024], buffer2[1024];
-
-  buffer[0] = '\0';
-
-  if (day_offset > 1 || day_offset < -1) {
-    fprintf (stderr, "Invalid day_offset: %i\n", day_offset);
-      exit (0);
-  }
-
-  /* If the DTSTART time was moved to another day when converting to local
-     time, we need to adjust the RRULE accordingly. e.g. If the original RRULE
-     was on the 19th of the month, but DTSTART was moved 1 day forward, then
-     we output the 20th of the month instead. */
-  if (day_offset == 1) {
-    if (day_code != DAY_LAST_WEEKDAY)
-      day_number++;
-    day_weekday = (day_weekday + 1) % 7;
-
-    /* Check we don't use February 29th. */
-    if (month == 1 && day_number > 28) {
-      fprintf (stderr, "Can't format RRULE - out of bounds. Month: %i Day number: %i\n", month + 1, day_number);
-      exit (0);
-    }
-
-    /* If we go past the end of the month, move to the next month. */
-    if (day_code != DAY_LAST_WEEKDAY && day_number > DaysInMonth[month]) {
-      month++;
-      day_number = 1;
-    }
-
-  } else if (day_offset == -1) {
-    if (day_code != DAY_LAST_WEEKDAY)
-      day_number--;
-    day_weekday = (day_weekday + 6) % 7;
-
-    if (day_code != DAY_LAST_WEEKDAY && day_number < 1)
-      fprintf (stderr, "Month: %i Day number: %i\n", month + 1, day_number);
-  }
-
-  switch (day_code) {
-  case DAY_SIMPLE:
-    /* Outlook (2000) will not parse the simple YEARLY RRULEs in VTIMEZONEs,
-       or BYMONTHDAY, or BYYEARDAY, which makes this option difficult!
-       Currently we use something like BYDAY=1SU, which will be incorrect
-       at times. This only affects Asia/Baghdad, Asia/Gaza, Asia/Jerusalem &
-       Asia/Damascus at present (and Jerusalem doesn't have specific rules
-       at the moment anyway, so that isn't a big loss). */
-    if (!VzicPureOutput) {
-      if (day_number < 8) {
-	printf ("WARNING: %s: Outputting BYDAY=1SU instead of BYMONTHDAY=1-7 for Outlook compatability\n", CurrentZoneName);
-	sprintf (buffer, "RRULE:FREQ=YEARLY;BYMONTH=%i;BYDAY=1SU",
-		 month + 1);
-      } else if (day_number < 15) {
-	printf ("WARNING: %s: Outputting BYDAY=2SU instead of BYMONTHDAY=8-14 for Outlook compatability\n", CurrentZoneName);
-	sprintf (buffer, "RRULE:FREQ=YEARLY;BYMONTH=%i;BYDAY=2SU",
-		 month + 1);
-      } else if (day_number < 22) {
-	printf ("WARNING: %s: Outputting BYDAY=3SU instead of BYMONTHDAY=15-21 for Outlook compatability\n", CurrentZoneName);
-	sprintf (buffer, "RRULE:FREQ=YEARLY;BYMONTH=%i;BYDAY=3SU",
-		 month + 1);
-      } else {
-	printf ("ERROR: %s: Couldn't output RRULE (day=%i) compatible with Outlook\n", CurrentZoneName, day_number);
-	exit (1);
-      }
-    } else {
-	sprintf (buffer, "RRULE:FREQ=YEARLY");
-    }
-    break;
-
-  case DAY_WEEKDAY_ON_OR_AFTER:
-    if (day_number > DaysInMonth[month] - 6) {
-      /* This isn't actually needed at present. */
-#if 0
-      fprintf (stderr, "DAY_WEEKDAY_ON_OR_AFTER: %i %i\n", day_number,
-	       month + 1);
-#endif
-
-      if (!VzicPureOutput) {
-	printf ("ERROR: %s: Couldn't output RRULE (day>=x) compatible with Outlook\n", CurrentZoneName);
-	exit (1);
-      } else {
-	/* We do 6 days at the end of this month, and 1 at the start of the
-	   next. We can't do this if we want Outlook compatability, as it
-	   needs BYMONTHDAY, which Outlook doesn't support. */
-	sprintf (buffer,
-		 "RRULE:FREQ=YEARLY;BYMONTH=%i;BYMONTHDAY=%i,%i,%i,%i,%i,%i;BYDAY=%s",
-		 month + 1,
-		 day_number, day_number + 1, day_number + 2, day_number + 3,
-		 day_number + 4, day_number + 5,
-		 WeekDays[day_weekday]);
-
-	sprintf (buffer2,
-		 "RRULE:FREQ=YEARLY;BYMONTH=%i;BYMONTHDAY=1;BYDAY=%s",
-		 (month + 1) % 12 + 1,
-		 WeekDays[day_weekday]);
-
-	sprintf (rrule_buffer, "%s%s\n%s%s\n",
-		 buffer, until, buffer2, until);
-
-	return TRUE;
-      }
-    }
-
-    if (!output_rrule_2 (buffer, month, day_number, day_weekday))
-      return FALSE;
-
-    break;
-
-  case DAY_WEEKDAY_ON_OR_BEFORE:
-    if (day_number < 7) {
-      /* FIXME: This is unimplemented, but it isn't needed at present anway. */
-      fprintf (stderr, "DAY_WEEKDAY_ON_OR_BEFORE: %i. Unimplemented. Exiting...\n", day_number);
-      exit (0);
-    }
-
-    if (!output_rrule_2 (buffer, month, day_number - 6, day_weekday))
-      return FALSE;
-
-    break;
-
-  case DAY_LAST_WEEKDAY:
-    if (day_offset == 1) {
-      if (month == 1) {
-	fprintf (stderr, "DAY_LAST_WEEKDAY - day moved, in February - can't fix\n");
-	exit (0);
-      }
-
-      /* This is only used once at present, for Africa/Cairo. */
-#if 0
-      fprintf (stderr, "DAY_LAST_WEEKDAY - day moved\n");
-#endif
-
-      if (!VzicPureOutput) {
-	printf ("WARNING: %s: Modifying RRULE (last weekday) for Outlook compatability\n", CurrentZoneName);
-	sprintf (buffer,
-		 "RRULE:FREQ=YEARLY;BYMONTH=%i;BYDAY=-1%s",
-		 month + 1, WeekDays[day_weekday]);
-	printf ("  Outputting: %s\n", buffer);
-      } else {
-	/* We do 6 days at the end of this month, and 1 at the start of the
-	   next. We can't do this if we want Outlook compatability, as it needs
-	   BYMONTHDAY, which Outlook doesn't support. */
-	day_number = DaysInMonth[month];
-	sprintf (buffer,
-		 "RRULE:FREQ=YEARLY;BYMONTH=%i;BYMONTHDAY=%i,%i,%i,%i,%i,%i;BYDAY=%s",
-		 month + 1,
-		 day_number - 5, day_number - 4, day_number - 3,
-		 day_number - 2, day_number - 1, day_number,
-		 WeekDays[day_weekday]);
-
-	sprintf (buffer2,
-		 "RRULE:FREQ=YEARLY;BYMONTH=%i;BYMONTHDAY=1;BYDAY=%s",
-		 (month + 1) % 12 + 1,
-		 WeekDays[day_weekday]);
-
-	sprintf (rrule_buffer, "%s%s\n%s%s\n",
-		 buffer, until, buffer2, until);
-
-	return TRUE;
-      }
-
-    } else if (day_offset == -1) {
-      /* We do 7 days 1 day before the end of this month. */
-      day_number = DaysInMonth[month];
-
-      if (!output_rrule_2 (buffer, month, day_number - 7, day_weekday))
-	return FALSE;
-
-      sprintf (rrule_buffer, "%s%s\n", buffer, until);
-      return TRUE;
-    }
-
-    sprintf (buffer,
-	     "RRULE:FREQ=YEARLY;BYMONTH=%i;BYDAY=-1%s",
-	     month + 1, WeekDays[day_weekday]);
-    break;
-
-  default:
-    fprintf (stderr, "Invalid day code\n");
-    exit (1);
-  }
-
-  sprintf (rrule_buffer, "%s%s\n", buffer, until);
-  return TRUE;
-}
-
-
-/* This tries to convert a RRULE like 'BYMONTHDAY=8,9,10,11,12,13,14;BYDAY=FR'
-   into 'BYDAY=2FR'. We need this since Outlook doesn't accept BYMONTHDAY.
-   It returns FALSE if conversion is not possible. */
-static gboolean
-output_rrule_2				(char		*buffer,
-					 int		 month,
-					 int		 day_number,
-					 int		 day_weekday)
-{
-
-  if (day_number == 1) {
-    /* Convert it to a BYDAY=1SU type of RRULE. */
-    sprintf (buffer, "RRULE:FREQ=YEARLY;BYMONTH=%i;BYDAY=1%s",
-	     month + 1, WeekDays[day_weekday]);
-
-  } else if (day_number == 8) {
-    /* Convert it to a BYDAY=2SU type of RRULE. */
-    sprintf (buffer, "RRULE:FREQ=YEARLY;BYMONTH=%i;BYDAY=2%s",
-	     month + 1, WeekDays[day_weekday]);
-
-  } else if (day_number == 15) {
-    /* Convert it to a BYDAY=3SU type of RRULE. */
-    sprintf (buffer, "RRULE:FREQ=YEARLY;BYMONTH=%i;BYDAY=3%s",
-	     month + 1, WeekDays[day_weekday]);
-
-  } else if (day_number == 22) {
-    /* Convert it to a BYDAY=4SU type of RRULE. (Currently not used.) */
-    sprintf (buffer, "RRULE:FREQ=YEARLY;BYMONTH=%i;BYDAY=4%s",
-	     month + 1, WeekDays[day_weekday]);
-
-  } else if (month != 1 && day_number == DaysInMonth[month] - 6) {
-    /* Convert it to a BYDAY=-1SU type of RRULE. (But never for February.) */
-    sprintf (buffer, "RRULE:FREQ=YEARLY;BYMONTH=%i;BYDAY=-1%s",
-	     month + 1, WeekDays[day_weekday]);
-
-  } else {
-    /* Can't convert to a correct RRULE. If we want Outlook compatability we
-       have to use a slightly incorrect RRULE, so the time change will be 1
-       week out every 7 or so years. Alternatively we could possibly move the
-       change by an hour or so so we would always be 1 or 2 hours out, but
-       never 1 week out. Yes, that sounds a better idea. */
-    if (!VzicPureOutput) {
-      printf ("WARNING: %s: Modifying RRULE to be compatible with Outlook (day >= %i, month = %i)\n", CurrentZoneName, day_number, month + 1);
-
-      if (day_number == 2) {
-	/* Convert it to a BYDAY=1SU type of RRULE.
-	   This is needed for Asia/Karachi. */
-	sprintf (buffer, "RRULE:FREQ=YEARLY;BYMONTH=%i;BYDAY=1%s",
-		 month + 1, WeekDays[day_weekday]);
-      } else if (day_number == 9) {
-	/* Convert it to a BYDAY=2SU type of RRULE.
-	   This is needed for Antarctica/Palmer & America/Santiago. */
-	sprintf (buffer, "RRULE:FREQ=YEARLY;BYMONTH=%i;BYDAY=2%s",
-		 month + 1, WeekDays[day_weekday]);
-      } else if (month != 1 && day_number == DaysInMonth[month] - 7) {
-	/* Convert it to a BYDAY=-1SU type of RRULE. (But never for February.)
-	   This is needed for America/Godthab. */
-	sprintf (buffer, "RRULE:FREQ=YEARLY;BYMONTH=%i;BYDAY=-1%s",
-		 month + 1, WeekDays[day_weekday]);
-      } else {
-	printf ("ERROR: %s: Couldn't modify RRULE to be compatible with Outlook (day >= %i, month = %i)\n", CurrentZoneName, day_number, month + 1);
-	exit (1);
-      }
-
-    } else {
-      sprintf (buffer,
-	       "RRULE:FREQ=YEARLY;BYMONTH=%i;BYMONTHDAY=%i,%i,%i,%i,%i,%i,%i;BYDAY=%s",
-	       month + 1,
-	       day_number, day_number + 1, day_number + 2, day_number + 3,
-	       day_number + 4, day_number + 5, day_number + 6,
-	       WeekDays[day_weekday]);
-    }
-  }
-
-  return TRUE;
-}
-
-
-static char*
-format_vzictime				(VzicTime	*vzictime)
-{
-  static char buffer[1024];
-
-  sprintf (buffer, "%s %2i %s %s %i %i %s",
-	   dump_year (vzictime->year), vzictime->month + 1,
-	   dump_day_coded (vzictime->day_code, vzictime->day_number,
-			   vzictime->day_weekday),
-	   dump_time (vzictime->time_seconds, vzictime->time_code, TRUE),
-	   vzictime->stdoff, vzictime->walloff,
-	   vzictime->is_infinite ? "INFINITE" : "");
-
-  return buffer;
-}
-
-
-static void
-dump_changes				(FILE		*fp,
-					 char		*zone_name,
-					 GArray		*changes)
-{
-  VzicTime *vzictime, *vzictime2 = NULL;
-  int i, year_offset, year;
-
-  for (i = 0; i < changes->len; i++) {
-    vzictime = &g_array_index (changes, VzicTime, i);
-
-    if (vzictime->year > MAX_CHANGES_YEAR)
-      return;
-
-    dump_change (fp, zone_name, vzictime, vzictime->year);
-  }
-
-  if (changes->len < 2)
-    return;
-
-  /* Now see if the changes array ends with a pair of recurring changes. */
-  vzictime = &g_array_index (changes, VzicTime, changes->len - 2);
-  vzictime2 = &g_array_index (changes, VzicTime, changes->len - 1);
-  if (!vzictime->is_infinite || !vzictime2->is_infinite)
-    return;
-
-  year_offset = 1;
-  for (;;) {
-    year = vzictime->year + year_offset;
-    if (year > MAX_CHANGES_YEAR)
-      break;
-    dump_change (fp, zone_name, vzictime, year);
-
-    year = vzictime2->year + year_offset;
-    if (year > MAX_CHANGES_YEAR)
-      break;
-    dump_change (fp, zone_name, vzictime2, year);
-
-    year_offset++;
-  }
-}
-
-
-static void
-dump_change				(FILE		*fp,
-					 char		*zone_name,
-					 VzicTime	*vzictime,
-					 int		 year)
-{
-  int hour, minute, second;
-  VzicTime tmp_vzictime;
-  static char *months[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun",
-			    "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
-
-  /* Output format is:
-
-	Zone-Name [tab] Date [tab] Time [tab] UTC-Offset
-
-     The Date and Time fields specify the time change in UTC.
-
-     The UTC Offset is for local (wall-clock) time. It is the amount of time
-     to add to UTC to get local time.
-  */
-
-  fprintf (fp, "%s\t", zone_name);
-
-  if (year == YEAR_MINIMUM) {
-    fprintf (fp, " 1 Jan 0001\t 0:00:00", zone_name);
-  } else if (year == YEAR_MAXIMUM) {
-    fprintf (stderr, "Maximum year found in change time\n");
-    exit (1);
-  } else {
-    tmp_vzictime = *vzictime;
-    tmp_vzictime.year = year;
-    calculate_actual_time (&tmp_vzictime, TIME_UNIVERSAL,
-			   vzictime->prev_stdoff, vzictime->prev_walloff);
-
-    hour = tmp_vzictime.time_seconds / 3600;
-    minute = (tmp_vzictime.time_seconds % 3600) / 60;
-    second = tmp_vzictime.time_seconds % 60;
-
-    fprintf (fp, "%2i %s %04i\t%2i:%02i:%02i",
-	     tmp_vzictime.day_number, months[tmp_vzictime.month],
-	     tmp_vzictime.year, hour, minute, second);
-  }
-
-  fprintf (fp, "\t%s", format_tz_offset (vzictime->walloff, FALSE));
-
-  fprintf (fp, "\n");
-}
-
-
-void
-ensure_directory_exists		(char		*directory)
-{
-  struct stat filestat;
-
-  if (stat (directory, &filestat) != 0) {
-    /* If the directory doesn't exist, try to create it. */
-    if (errno == ENOENT) {
-      if (mkdir (directory, 0777) != 0) {
-	fprintf (stderr, "Can't create directory: %s\n", directory);
-	exit (1);
-      }
-    } else {
-      fprintf (stderr, "Error calling stat() on directory: %s\n", directory);
-      exit (1);
-    }
-  } else if (!S_ISDIR (filestat.st_mode)) {
-    fprintf (stderr, "Can't create directory, already exists: %s\n",
-	     directory);
-    exit (1);
-  }
-}
-
-
-static void
-expand_tzid_prefix		(void)
-{
-  char *src, *dest;
-  char date_buf[16];
-  char ch1, ch2;
-  time_t t;
-  struct tm *tm;
-
-  /* Get today's date as a string in the format "YYYYMMDD". */
-  t = time (NULL);
-  tm = localtime (&t);
-  sprintf (date_buf, "%4i%02i%02i", tm->tm_year + 1900,
-	   tm->tm_mon + 1, tm->tm_mday);
-
-  src = TZIDPrefix;
-  dest = TZIDPrefixExpanded;
-
-  while (ch1 = *src++) {
-
-    /* Look for a '%'. */
-    if (ch1 == '%') {
-      ch2 = *src++;
-
-      if (ch2 == 'D') {
-	/* '%D' gets expanded into the date string. */
-	strcpy (dest, date_buf);
-	dest += strlen (dest);
-      } else if (ch2 == '%') {
-	/* '%%' gets converted into one '%'. */
-	*dest++ = '%';
-      } else {
-	/* Anything else is output as is. */
-	*dest++ = '%';
-	*dest++ = ch2;
-      }
-    } else {
-      *dest++ = ch1;
-    }
-  }
-
-#if 0
-  printf ("TZID    : %s\n", TZIDPrefix);
-  printf ("Expanded: %s\n", TZIDPrefixExpanded);
-#endif
-}
diff --git a/libkcal/libical/vzic-1.3/vzic-output.h b/libkcal/libical/vzic-1.3/vzic-output.h
deleted file mode 100644
index 1e2df9f8..00000000
--- a/libkcal/libical/vzic-1.3/vzic-output.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Vzic - a program to convert Olson timezone database files into VZTIMEZONE
- * files compatible with the iCalendar specification (RFC2445).
- *
- * Copyright (C) 2000-2001 Ximian, Inc.
- * Copyright (C) 2003 Damon Chaplin.
- *
- * Author: Damon Chaplin <damon@gnome.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef _VZIC_OUTPUT_H_
-#define _VZIC_OUTPUT_H_
-
-#include <glib.h>
-
-void		output_vtimezone_files		(char		*directory,
-						 GArray		*zone_data,
-						 GHashTable	*rule_data,
-						 GHashTable	*link_data,
-						 int		 max_until_year);
-
-void		ensure_directory_exists		(char		*directory);
-
-#endif /* _VZIC_OUTPUT_H_ */
diff --git a/libkcal/libical/vzic-1.3/vzic-parse.c b/libkcal/libical/vzic-1.3/vzic-parse.c
deleted file mode 100644
index aa50ff26..00000000
--- a/libkcal/libical/vzic-1.3/vzic-parse.c
+++ /dev/null
@@ -1,901 +0,0 @@
-/*
- * Vzic - a program to convert Olson timezone database files into VZTIMEZONE
- * files compatible with the iCalendar specification (RFC2445).
- *
- * Copyright (C) 2000-2001 Ximian, Inc.
- * Copyright (C) 2003 Damon Chaplin.
- *
- * Author: Damon Chaplin <damon@gnome.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include <ctype.h>
-#include <limits.h>
-#include <stdio.h>
-#include <string.h>
-
-#include "vzic.h"
-#include "vzic-parse.h"
-
-/* This is the maximum line length we allow. */
-#define MAX_LINE_LEN	1024
-
-/* The maximum number of fields on a line. */
-#define MAX_FIELDS	12
-
-
-typedef enum
-{
-  ZONE_ID		= 0,	/* The 'Zone' at the start of the line. */
-  ZONE_NAME		= 1,
-  ZONE_GMTOFF		= 2,
-  ZONE_RULES_SAVE	= 3,
-  ZONE_FORMAT		= 4,
-  ZONE_UNTIL_YEAR	= 5,
-  ZONE_UNTIL_MONTH	= 6,
-  ZONE_UNTIL_DAY	= 7,
-  ZONE_UNTIL_TIME	= 8
-} ZoneFieldNumber;
-
-
-typedef enum
-{
-  RULE_ID		= 0,	/* The 'Rule' at the start of the line. */
-  RULE_NAME		= 1,
-  RULE_FROM		= 2,
-  RULE_TO		= 3,
-  RULE_TYPE		= 4,
-  RULE_IN		= 5,
-  RULE_ON		= 6,
-  RULE_AT		= 7,
-  RULE_SAVE		= 8,
-  RULE_LETTER_S		= 9
-} RuleFieldNumber;
-
-
-typedef enum
-{
-  LINK_ID		= 0,	/* The 'Link' at the start of the line. */
-  LINK_FROM		= 1,
-  LINK_TO		= 2
-} LinkFieldNumber;
-
-
-/* This struct contains information used while parsing the files, and is
-   passed to most parsing functions. */
-typedef struct _ParsingData ParsingData;
-struct _ParsingData
-{
-  /* This is the line being parsed. buffer is a copy that we break into fields
-     and sub-fields as it is parsed. */
-  char	line[MAX_LINE_LEN];
-  char	buffer[MAX_LINE_LEN];
-
-  /* These are pointers to the start of each field in buffer. */
-  char *fields[MAX_FIELDS];
-  int	num_fields;
-
-  /* These are just for producing error messages. */
-  char *filename;
-  int	line_number;
-
-
-  /* This is an array of ZoneData structs, 1 for each timezone read. */
-  GArray *zone_data;
-
-  /* This is a hash table of arrays of RuleData structs. As each Rule line is
-     read in, a new RuleData struct is filled in and appended to the
-     appropriate GArray in the hash table. */
-  GHashTable *rule_data;
-
-  /* A hash containing data on the Link lines. The keys are the timezones
-     where the link is from (i.e. the timezone we will be outputting anyway)
-     and the data is a GList of timezones to link to (where we will copy the
-     timezone data to). */
-  GHashTable *link_data;
-
-  int	max_until_year;
-};
-
-
-/*
- * Parsing functions, used when reading the Olson timezone data file.
- */
-static void	parse_fields			(ParsingData	*data);
-static gboolean	parse_zone_line			(ParsingData	*data);
-static gboolean	parse_zone_continuation_line	(ParsingData	*data);
-static gboolean parse_zone_common		(ParsingData	*data,
-						 int		 offset);
-static void	parse_rule_line			(ParsingData	*data);
-static void	parse_link_line			(ParsingData	*data);
-
-static int	parse_year			(ParsingData	*data,
-						 char		*field,
-						 gboolean	 accept_only,
-						 int		 only_value);
-static int	parse_month			(ParsingData	*data,
-						 char		*field);
-static DayCode	parse_day			(ParsingData	*data,
-						 char		*field,
-						 int		*day,
-						 int		*weekday);
-static int	parse_weekday			(ParsingData	*data,
-						 char		*field);
-static int	parse_time			(ParsingData	*data,
-						 char		*field,
-						 TimeCode	*time_code);
-static int	parse_number			(ParsingData	*data,
-						 char	       **num);
-static int	parse_rules_save		(ParsingData	*data,
-						 char		*field,
-						 char	       **rules);
-
-static void	parse_coord			(char		*coord,
-						 int		 len,
-						 int		*result);
-
-void
-parse_olson_file		(char		*filename,
-				 GArray	       **zone_data,
-				 GHashTable    **rule_data,
-				 GHashTable    **link_data,
-				 int		*max_until_year)
-{
-  ParsingData data;
-  FILE *fp;
-  int zone_continues = 0;
-
-  *zone_data = g_array_new (FALSE, FALSE, sizeof (ZoneData));
-  *rule_data = g_hash_table_new (g_str_hash, g_str_equal);
-  *link_data = g_hash_table_new (g_str_hash, g_str_equal);
-
-  fp = fopen (filename, "r");
-  if (!fp) {
-    fprintf (stderr, "Couldn't open file: %s\n", filename);
-    exit (1);
-  }
-
-  data.filename = filename;
-  data.zone_data = *zone_data;
-  data.rule_data = *rule_data;
-  data.link_data = *link_data;
-  data.max_until_year = 0;
-
-  for (data.line_number = 0; ; data.line_number++) {
-    if (fgets (data.line, sizeof (data.line), fp) != data.line)
-      break;
-
-    strcpy (data.buffer, data.line);
-
-    parse_fields (&data);
-    if (data.num_fields == 0)
-      continue;
-
-    if (zone_continues) {
-      zone_continues = parse_zone_continuation_line (&data);
-    } else if (!strcmp (data.fields[0], "Zone")) {
-      zone_continues = parse_zone_line (&data);
-    } else if (!strcmp (data.fields[0], "Rule")) {
-      parse_rule_line (&data);
-    } else if (!strcmp (data.fields[0], "Link")) {
-      parse_link_line (&data);
-    } else if (!strcmp (data.fields[0], "Leap")) {
-      /* We don't care about Leap lines. */
-    } else {
-      fprintf (stderr, "%s:%i: Invalid line.\n%s\n", filename,
-	       data.line_number, data.line);
-      exit (1);
-    }
-  }
-
-  if (ferror (fp)) {
-    fprintf (stderr, "Error reading file: %s\n", filename);
-    exit (1);
-  }
-
-  if (zone_continues) {
-    fprintf (stderr, "%s:%i: Zone continuation line expected.\n%s\n",
-	     filename, data.line_number, data.line);
-    exit (1);
-  }
-
-  fclose (fp);
-
-#if 0
-  printf ("Max UNTIL year: %i\n", data.max_until_year);
-#endif
-  *max_until_year = data.max_until_year;
-}
-
-
-/* Converts the line into fields. */
-static void
-parse_fields			(ParsingData	*data)
-{
-  int i;
-  char *p, *s, ch;
-
-  /* Reset all fields to NULL. */
-  for (i = 0; i < MAX_FIELDS; i++)
-    data->fields[i] = 0;
-
-  data->num_fields = 0;
-  p = data->buffer;
-
-  for (;;) {
-    /* Skip whitespace. */
-    while (isspace (*p))
-      p++;
-
-    /* See if we have reached the end of the line or a comment. */
-    if (*p == '\0' || *p == '#')
-      break;
-
-    /* We must have another field, so save the start position. */
-    data->fields[data->num_fields++] = p;
-
-    /* Now find the end of the field. If the field contains '"' characters
-       they are removed and we have to move the rest of the chars back. */
-    s = p;
-    for (;;) {
-      ch = *p;
-      if (ch == '\0' || ch == '#') {
-	/* Don't move p on since this is the end of the line. */
-	*s = '\0';
-	break;
-      } else if (isspace (ch)) {
-	*s = '\0';
-	p++;
-	break;
-      } else if (ch == '"') {
-	p++;
-	for (;;) {
-	  ch = *p;
-	  if (ch == '\0') {
-	    fprintf (stderr,
-		     "%s:%i: Closing quote character ('\"') missing.\n%s\n",
-		     data->filename, data->line_number, data->line);
-	    exit (1);
-	  } else if (ch == '"') {
-	    p++;
-	    break;
-	  } else {
-	    *s++ = ch;
-	  }
-	  p++;
-	}	  
-      } else {
-	*s++ = ch;
-      }
-      p++;
-    }
-  }
-
-#if 0
-  printf ("%i fields: ", data->num_fields);
-  for (i = 0; i < data->num_fields; i++)
-    printf ("'%s' ", data->fields[i]);
-  printf ("\n");
-#endif
-}
-
-
-static gboolean
-parse_zone_line			(ParsingData	*data)
-{
-  ZoneData zone;
-
-  /* All 5 fields up to FORMAT must be present. */
-  if (data->num_fields < 5 || data->num_fields > 9) {
-	fprintf (stderr, "%s:%i: Invalid Zone line - %i fields.\n%s\n",
-		 data->filename, data->line_number, data->num_fields,
-		 data->line);
-	exit (1);
-  }
-
-  zone.zone_name = g_strdup (data->fields[ZONE_NAME]);
-  zone.zone_line_data = g_array_new (FALSE, FALSE, sizeof (ZoneLineData));
-
-  g_array_append_val (data->zone_data, zone);
-
-  return parse_zone_common (data, 0);
-}
-
-
-static gboolean
-parse_zone_continuation_line	(ParsingData	*data)
-{
-  /* All 3 fields up to FORMAT must be present. */
-  if (data->num_fields < 3 || data->num_fields > 7) {
-	fprintf (stderr,
-		 "%s:%i: Invalid Zone continuation line - %i fields.\n%s\n",
-		 data->filename, data->line_number, data->num_fields,
-		 data->line);
-	exit (1);
-  }
-
-  return parse_zone_common (data, -2);
-}
-
-
-static gboolean
-parse_zone_common		(ParsingData	*data,
-				 int		 offset)
-{
-  ZoneData *zone;
-  ZoneLineData zone_line;
-  TimeCode time_code;
-
-  zone_line.stdoff_seconds = parse_time (data,
-					 data->fields[ZONE_GMTOFF + offset],
-					 &time_code);
-  zone_line.save_seconds = parse_rules_save (data,
-					     data->fields[ZONE_RULES_SAVE + offset],
-					     &zone_line.rules);
-
-  if (!VzicPureOutput) {
-    /* We round the UTC offsets to the nearest minute, to be compatible with
-       Outlook. This also works with -ve numbers, I think.
-       -56 % 60 = -59. -61 % 60 = -1. */
-    if (zone_line.stdoff_seconds >= 0)
-      zone_line.stdoff_seconds += 30;
-    else
-      zone_line.stdoff_seconds -= 29;
-    zone_line.stdoff_seconds -= zone_line.stdoff_seconds % 60;
-
-    if (zone_line.save_seconds >= 0)
-      zone_line.save_seconds += 30;
-    else
-      zone_line.save_seconds -= 29;
-    zone_line.save_seconds -= zone_line.save_seconds % 60;
-  }
-
-  zone_line.format = g_strdup (data->fields[ZONE_FORMAT + offset]);
-
-  if (data->num_fields - offset >= 6) {
-    zone_line.until_set = TRUE;
-    zone_line.until_year = parse_year (data,
-				       data->fields[ZONE_UNTIL_YEAR + offset],
-				       FALSE, 0);
-    zone_line.until_month = parse_month (data,
-					 data->fields[ZONE_UNTIL_MONTH + offset]);
-    zone_line.until_day_code = parse_day (data,
-					  data->fields[ZONE_UNTIL_DAY + offset],
-					  &zone_line.until_day_number,
-					  &zone_line.until_day_weekday);
-    zone_line.until_time_seconds = parse_time (data,
-					       data->fields[ZONE_UNTIL_TIME + offset],
-					       &zone_line.until_time_code);
-
-    /* We also want to know the maximum year used in any UNTIL value, so we
-       know where to expand all the infinite Rule data to. */
-    if (zone_line.until_year != YEAR_MAXIMUM
-	&& zone_line.until_year != YEAR_MINIMUM)
-      data->max_until_year = MAX (data->max_until_year, zone_line.until_year);
-
-  } else {
-    zone_line.until_set = FALSE;
-  }
-
-  /* Append it to the last Zone, since that is the one we are currently
-     reading. */
-  zone = &g_array_index (data->zone_data, ZoneData, data->zone_data->len - 1);
-  g_array_append_val (zone->zone_line_data, zone_line);
-
-  return zone_line.until_set;
-}
-
-
-static void
-parse_rule_line			(ParsingData	*data)
-{
-  GArray *rule_array;
-  RuleData rule;
-  char *name;
-  TimeCode time_code;
-
-  /* All 10 fields must be present. */
-  if (data->num_fields != 10) {
-	fprintf (stderr, "%s:%i: Invalid Rule line - %i fields.\n%s\n",
-		 data->filename, data->line_number, data->num_fields,
-		 data->line);
-	exit (1);
-  }
-
-  name = data->fields[RULE_NAME];
-
-  /* Create the GArray and add it to the hash table if it doesn't already
-     exist. */
-  rule_array = g_hash_table_lookup (data->rule_data, name);
-  if (!rule_array) {
-    rule_array = g_array_new (FALSE, FALSE, sizeof (RuleData));
-    g_hash_table_insert (data->rule_data, g_strdup (name), rule_array);
-  }
-
-  rule.from_year = parse_year (data, data->fields[RULE_FROM], FALSE, 0);
-  if (rule.from_year == YEAR_MAXIMUM) {
-    fprintf (stderr, "%s:%i: Invalid Rule FROM value: '%s'\n",
-	     data->filename, data->line_number, data->fields[RULE_FROM]);
-    exit (1);
-  }
-
-  rule.to_year = parse_year (data, data->fields[RULE_TO], TRUE,
-			     rule.from_year);
-  if (rule.to_year == YEAR_MINIMUM) {
-    fprintf (stderr, "%s:%i: Invalid Rule TO value: %s\n",
-	     data->filename, data->line_number, data->fields[RULE_TO]);
-    exit (1);
-  }
-
-  if (!strcmp (data->fields[RULE_TYPE], "-"))
-    rule.type = NULL;
-  else {
-    printf ("Type: %s\n", data->fields[RULE_TYPE]);
-    rule.type = g_strdup (data->fields[RULE_TYPE]);
-  }
-
-  rule.in_month = parse_month (data, data->fields[RULE_IN]);
-  rule.on_day_code = parse_day (data, data->fields[RULE_ON],
-				&rule.on_day_number, &rule.on_day_weekday);
-  rule.at_time_seconds = parse_time (data, data->fields[RULE_AT],
-				     &rule.at_time_code);
-  rule.save_seconds = parse_time (data, data->fields[RULE_SAVE], &time_code);
-
-  if (!strcmp (data->fields[RULE_LETTER_S], "-")) {
-    rule.letter_s = NULL;
-  } else {
-    rule.letter_s = g_strdup (data->fields[RULE_LETTER_S]);
-  }
-
-  rule.is_shallow_copy = FALSE;
-
-  g_array_append_val (rule_array, rule);
-}
-
-
-static void
-parse_link_line			(ParsingData	*data)
-{
-  char *from, *to, *old_from;
-  GList *zone_list;
-
-  /* We must have 3 fields for a Link. */
-  if (data->num_fields != 3) {
-	fprintf (stderr, "%s:%i: Invalid Rule line - %i fields.\n%s\n",
-		 data->filename, data->line_number, data->num_fields,
-		 data->line);
-	exit (1);
-  }
-
-  from = data->fields[LINK_FROM];
-  to = data->fields[LINK_TO];
-
-#if 0
-  printf ("LINK FROM: %s\tTO: %s\n", from, to);
-#endif
-
-  if (g_hash_table_lookup_extended (data->link_data, from,
-				    (gpointer) &old_from,
-				    (gpointer) &zone_list)) {
-    from = old_from;
-  } else {
-    from = g_strdup (from);
-    zone_list = NULL;
-  }
-
-  zone_list = g_list_prepend (zone_list, g_strdup (to));
-
-  g_hash_table_insert (data->link_data, from, zone_list);
-}
-
-
-static int
-parse_year			(ParsingData	*data,
-				 char		*field,
-				 gboolean	 accept_only,
-				 int		 only_value)
-{
-  int len, year = 0;
-  char *p;
-
-  if (!field) {
-    fprintf (stderr, "%s:%i: Missing year.\n%s\n", data->filename,
-	     data->line_number, data->line);
-    exit (1);
-  }
-
-  len = strlen (field);
-  if (accept_only && !strncmp (field, "only", len))
-    return only_value;
-  if (len >= 2) {
-    if (!strncmp (field, "maximum", len))
-      return YEAR_MAXIMUM;
-    else if (!strncmp (field, "minimum", len))
-      return YEAR_MINIMUM;
-  }
-
-  for (p = field; *p; p++) {
-    if (*p < '0' || *p > '9') {
-	fprintf (stderr, "%s:%i: Invalid year: %s\n%s\n", data->filename,
-		 data->line_number, field, data->line);
-	exit (1);
-    }
-
-    year = year * 10 + *p - '0';
-  }
-
-  if (year < 1000 || year > 2037) {
-	fprintf (stderr, "%s:%i: Strange year: %s\n%s\n", data->filename,
-		 data->line_number, field, data->line);
-	exit (1);
-  }
-
-  return year;
-}
-
-
-/* Parses a month name, returning 0 (Jan) to 11 (Dec). */
-static int
-parse_month			(ParsingData	*data,
-				 char		*field)
-{
-  static char* months[] = { "january", "february", "march", "april", "may",
-			    "june", "july", "august", "september", "october",
-			    "november", "december" };
-  char *p;
-  int len, i;
-
-  /* If the field is missing, it must be the optional UNTIL month, so we return
-     0 for January. */
-  if (!field)
-    return 0;
-
-  for (p = field, len = 0; *p; p++, len++) {
-    *p = tolower (*p);
-  }
-
-  for (i = 0; i < 12; i++) {
-    if (!strncmp (field, months[i], len))
-      return i;
-  }
-
-  fprintf (stderr, "%s:%i: Invalid month: %s\n%s\n", data->filename,
-	   data->line_number, field, data->line);
-  exit (1);
-}
-
-
-/* Parses a day specifier, returning a code representing the type of match
-   together with a day of the month and a weekday number (0=Sun). */
-static DayCode
-parse_day			(ParsingData	*data,
-				 char		*field,
-				 int		*day,
-				 int		*weekday)
-{
-  char *day_part, *p;
-  DayCode day_code;
-
-  if (!field) {
-    *day = 1;
-    return DAY_SIMPLE;
-  }
-
-  *day = *weekday = 0;
-
-  if (!strncmp (field, "last", 4)) {
-    *weekday = parse_weekday (data, field + 4);
-    /* We set the day to the end of the month to make sorting Rules easy. */
-    *day = 31;
-    return DAY_LAST_WEEKDAY;
-  }
-
-  day_part = field;
-  day_code = DAY_SIMPLE;
-
-  for (p = field; *p; p++) {
-    if (*p == '<' || *p == '>') {
-      if (*(p + 1) == '=') {
-	day_code = (*p == '<') ? DAY_WEEKDAY_ON_OR_BEFORE
-	  : DAY_WEEKDAY_ON_OR_AFTER;
-	*p = '\0';
-	*weekday = parse_weekday (data, field);
-	day_part = p + 2;
-	break;
-      }
-      
-      fprintf (stderr, "%s:%i: Invalid day: %s\n%s\n", data->filename,
-	       data->line_number, field, data->line);
-      exit (1);
-    }
-  }
-
-  for (p = day_part; *p; p++) {
-    if (*p < '0' || *p > '9') {
-	fprintf (stderr, "%s:%i: Invalid day: %s\n%s\n", data->filename,
-		 data->line_number, field, data->line);
-	exit (1);
-    }
-
-    *day = *day * 10 + *p - '0';
-  }
-
-  if (*day < 1 || *day > 31) {
-    fprintf (stderr, "%s:%i: Invalid day: %s\n%s\n", data->filename,
-	     data->line_number, field, data->line);
-    exit (1);
-  }
-
-  return day_code;
-}
-
-
-/* Parses a weekday name, returning 0 (Sun) to 6 (Sat). */
-static int
-parse_weekday			(ParsingData	*data,
-				 char		*field)
-{
-  static char* weekdays[] = { "sunday", "monday", "tuesday", "wednesday",
-			      "thursday", "friday", "saturday" };
-  char *p;
-  int len, i;
-
-  for (p = field, len = 0; *p; p++, len++) {
-    *p = tolower (*p);
-  }
-
-  for (i = 0; i < 7; i++) {
-    if (!strncmp (field, weekdays[i], len))
-      return i;
-  }
-
-  fprintf (stderr, "%s:%i: Invalid weekday: %s\n%s\n", data->filename,
-	   data->line_number, field, data->line);
-  exit (1);
-}
-
-
-/* Parses a time (hour + minute + second) and returns the result in seconds,
-   together with a time code specifying whether it is Wall clock time,
-   local standard time, or universal time.
-   The time can start with a '-' in which case it will be negative. */
-static int
-parse_time			(ParsingData	*data,
-				 char		*field,
-				 TimeCode	*time_code)
-{
-  char *p;
-  int hours = 0, minutes = 0, seconds = 0, result, negative = 0;
-
-  if (!field) {
-    *time_code = TIME_WALL;
-    return 0;
-  }
-
-  p = field;
-  if (*p == '-') {
-    p++;
-    negative = 1;
-  }
-
-  hours = parse_number (data, &p);
-
-  if (*p == ':') {
-    p++;
-    minutes = parse_number (data, &p);
-
-    if (*p == ':') {
-      p++;
-      seconds = parse_number (data, &p);
-    }
-  }
-
-  if (hours < 0 || hours > 24
-      || minutes < 0 || minutes > 59
-      || seconds < 0 || seconds > 59
-      || (hours == 24 && (minutes != 0 || seconds != 0))) {
-    fprintf (stderr, "%s:%i: Invalid time: %s\n%s\n", data->filename,
-	     data->line_number, field, data->line);
-    exit (1);
-  }
-
-  if (hours == 24) {
-    hours = 23;
-    minutes = 59;
-    seconds = 59;
-  }
-
-#if 0
-  printf ("Time: %s -> %i:%02i:%02i\n", field, hours, minutes, seconds);
-#endif
-
-  result = hours * 3600 + minutes * 60 + seconds;
-  if (negative)
-    result = -result;
-
-  if (*p == '\0') {
-    *time_code = TIME_WALL;
-    return result;
-  }
-
-  if (*(p + 1) == '\0') {
-    if (*p == 'w') {
-      *time_code = TIME_WALL;
-      return result;
-    } else if (*p == 's') {
-      *time_code = TIME_STANDARD;
-      return result;
-    } else if (*p == 'u' || *p == 'g' || *p == 'z') {
-      *time_code = TIME_UNIVERSAL;
-      return result;
-    }
-  }
-
-  fprintf (stderr, "%s:%i: Invalid time: %s\n%s\n", data->filename,
-	   data->line_number, field, data->line);
-  exit (1);
-}
-
-
-/* Parses a simple number and returns the result. The pointer argument
-   is moved to the first character after the number. */
-static int
-parse_number			(ParsingData	*data,
-				 char	       **num)
-{
-  char *p;
-  int result;
-
-  p = *num;
-
-#if 0
-  printf ("In parse_number p:%s\n", p);
-#endif
-
-  if (*p < '0' || *p > '9') {
-    fprintf (stderr, "%s:%i: Invalid number: %s\n%s\n", data->filename,
-	     data->line_number, *num, data->line);
-    exit (1);
-  }
-
-  result = *p++ - '0';
-
-  while (*p >= '0' && *p <= '9')
-    result = result * 10 + *p++ - '0';
-
-  *num = p;
-  return result;
-}
-
-
-static int
-parse_rules_save		(ParsingData	*data,
-				 char		*field,
-				 char	       **rules)
-{
-  TimeCode time_code;
-
-  *rules = NULL;
-
-  /* Check for just "-". */
-  if (field[0] == '-' && field[1] == '\0')
-    return 0;
-
-  /* Check for a time to add to local standard time. We don't care about a
-     time code here, since it is just an offset. */
-  if (*field == '-' || (*field >= '0' && *field <= '9'))
-    return parse_time (data, field, &time_code);
-
-  /* It must be a rules name. */
-  *rules = g_strdup (field);
-  return 0;
-}
-
-
-
-
-
-GHashTable*
-parse_zone_tab			(char		*filename)
-{
-  GHashTable *zones_hash;
-  ZoneDescription *zone_desc;
-  FILE *fp;
-  char buf[4096];
-  gchar **fields, *zone_name, *latitude, *longitude, *p;
-
-
-  fp = fopen (filename, "r");
-  if (!fp) {
-    fprintf (stderr, "Couldn't open file: %s\n", filename);
-    exit (1);
-  }
-
-  zones_hash = g_hash_table_new (g_str_hash, g_str_equal);
-
-  while (fgets (buf, sizeof(buf), fp)) {
-    if (*buf == '#') continue;
-
-    g_strchomp (buf);
-    fields = g_strsplit (buf,"\t", 4);
-
-    if (strlen (fields[0]) != 2) {
-      fprintf (stderr, "Invalid zone description line: %s\n", buf);
-      exit (1);
-    }
-
-    zone_name = g_strdup (fields[2]);
-
-    zone_desc = g_new (ZoneDescription, 1);
-    zone_desc->country_code[0] = fields[0][0];
-    zone_desc->country_code[1] = fields[0][1];
-    zone_desc->comment = (fields[3] && fields[3][0]) ? g_strdup (fields[3])
-      : NULL;
-
-    /* Now parse the latitude and longitude. */
-    latitude = fields[1];
-    longitude = latitude + 1;
-    while (*longitude != '+' && *longitude != '-')
-      longitude++;
-
-    parse_coord (latitude, longitude - latitude, zone_desc->latitude);
-    parse_coord (longitude, strlen (longitude), zone_desc->longitude);
-
-    g_hash_table_insert (zones_hash, zone_name, zone_desc);
-
-#if 0
-    g_print ("Found zone: %s %i %02i %02i,%i %02i %02i\n", zone_name,
-	     zone_desc->latitude[0], zone_desc->latitude[1],
-	     zone_desc->latitude[2],
-	     zone_desc->longitude[0], zone_desc->longitude[1],
-	     zone_desc->longitude[2]);
-#endif
-  }
-
-  fclose (fp);
-
-  return zones_hash;
-}
-
-
-static void
-parse_coord			(char		*coord,
-				 int		 len,
-				 int		*result)
-{
-  int degrees = 0, minutes = 0, seconds = 0;
-
-  if (len == 5)
-    sscanf (coord + 1, "%2d%2d", &degrees, &minutes);
-  else if (len == 6)
-    sscanf (coord + 1, "%3d%2d", &degrees, &minutes);
-  else if (len == 7)
-    sscanf (coord + 1, "%2d%2d%2d", &degrees, &minutes, &seconds);
-  else if (len == 8)
-    sscanf (coord + 1, "%3d%2d%2d", &degrees, &minutes, &seconds);
-  else {
-    fprintf (stderr, "Invalid coordinate: %s\n", coord);
-    exit (1);
-  }
-
-  if (coord[0] == '-')
-    degrees = -degrees;
-
-  result[0] = degrees;
-  result[1] = minutes;
-  result[2] = seconds;
-}
-
diff --git a/libkcal/libical/vzic-1.3/vzic-parse.h b/libkcal/libical/vzic-1.3/vzic-parse.h
deleted file mode 100644
index c6d7c1be..00000000
--- a/libkcal/libical/vzic-1.3/vzic-parse.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Vzic - a program to convert Olson timezone database files into VZTIMEZONE
- * files compatible with the iCalendar specification (RFC2445).
- *
- * Copyright (C) 2000-2001 Ximian, Inc.
- * Copyright (C) 2003 Damon Chaplin.
- *
- * Author: Damon Chaplin <damon@gnome.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef _VZIC_PARSE_H_
-#define _VZIC_PARSE_H_
-
-#include <glib.h>
-
-void		parse_olson_file		(char		*filename,
-						 GArray	       **zone_data,
-						 GHashTable    **rule_data,
-						 GHashTable    **link_data,
-						 int		*max_until_year);
-
-GHashTable*	parse_zone_tab			(char		*filename);
-
-#endif /* _VZIC_PARSE_H_ */
diff --git a/libkcal/libical/vzic-1.3/vzic-test.pl b/libkcal/libical/vzic-1.3/vzic-test.pl
deleted file mode 100755
index 0bf20ea7..00000000
--- a/libkcal/libical/vzic-1.3/vzic-test.pl
+++ /dev/null
@@ -1,164 +0,0 @@
-#!/usr/bin/perl -w
-
-#
-# Vzic - a program to convert Olson timezone database files into VZTIMEZONE
-# files compatible with the iCalendar specification (RFC2445).
-#
-# Copyright (C) 2001 Ximian, Inc.
-# Copyright (C) 2003 Damon Chaplin.
-#
-# Author: Damon Chaplin <damon@gnome.org>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-
-#
-# This outputs an iCalendar file containing one event in each timezone,
-# as well as all the VTIMEZONEs. We use it for testing compatability with
-# other iCalendar apps like Outlook, by trying to import it there.
-#
-# Currently we have 377 timezones (with tzdata2001d).
-#
-
-# Set this to the toplevel directory of the VTIMEZONE files.
-$ZONEINFO_DIR = "/home/damon/src/zoneinfo";
-
-$output_file = "calendar.ics";
-
-
-# Save this so we can restore it later.
-$input_record_separator = $/;
-
-chdir $ZONEINFO_DIR
-    || die "Can't cd to $ZONEINFO_DIR";
-
-# Create the output file, to contain all the VEVENTs & VTIMEZONEs.
-open (OUTPUTFILE, ">$output_file")
-    || die "Can't create file: $output_file";
-
-# Output the standard header.
-    print OUTPUTFILE <<EOF;
-BEGIN:VCALENDAR
-PRODID:-//Ximian//NONSGML Vzic Test//EN
-VERSION:2.0
-METHOD:PUBLISH
-EOF
-
-$zone_num = 0;
-
-# 365 days in a non-leap year.
-@days_in_month = ( 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 );
-
-foreach $file (`find -name "*.ics"`) {
-    # Get rid of './' at start and whitespace at end.
-    $file =~ s/^\.\///;
-    $file =~ s/\s+$//;
-
-    if ($file eq $output_file) {
-	next;
-    }
-
-#    print "File: $file\n";
-
-    # Get the VTIMEZONE data.
-    open (ZONEFILE, "$file")
-	|| die "Can't open file: $ZONEINFO_DIR/$file";
-    undef $/;
-    $vtimezone = <ZONEFILE>;
-    $/ = $input_record_separator;
-    close (ZONEFILE);
-
-    # Strip the stuff before and after the VTIMEZONE component
-    $vtimezone =~ s/^.*BEGIN:VTIMEZONE/BEGIN:VTIMEZONE/s;
-    $vtimezone =~ s/END:VTIMEZONE.*$/END:VTIMEZONE\n/s;
-
-    print OUTPUTFILE $vtimezone;
-
-    # Find the TZID.
-    $vtimezone =~ m/TZID:(.*)/;
-    $tzid = $1;
-#    print "TZID: $tzid\n";
-
-    # Find the location.
-    $file =~ m/(.*)\.ics/;
-    $location = $1;
-#    print "LOCATION: $location\n";
-
-    # Try to find the current UTC offset that Outlook will use.
-    # If there is an RRULE, we look for the first 2 TZOFFSETTO properties,
-    # else we just get the first one.
-    if ($vtimezone =~ m/RRULE/) {
-	$vtimezone =~ m/TZOFFSETTO:([+-]?\d+)/;
-	$tzoffsetto = $1;
-	$vtimezone =~ m/TZOFFSETFROM:([+-]?\d+)/;
-	$tzoffsetfrom = $1;
-	$tzoffset = "$tzoffsetfrom/$tzoffsetto";
-    } else {
-	$vtimezone =~ m/TZOFFSETTO:([+-]?\d+)/s;
-	$tzoffset = $1;
-    }
-#    print "TZOFFSET: $tzoffset\n";
-
-    # We put each event on a separate day in 2001 and Jan 2002.
-    $day_num = $zone_num;
-    if ($day_num >= 365) {
-	$year = 2002;
-	$day_num -= 365;
-    } else {
-	$year = 2001;
-    }
-    $month = -1;
-    for ($i = 0; $i < 12; $i++) {
-	if ($day_num < $days_in_month[$i]) {
-	    $month = $i;
-	    last;
-	}
-	$day_num -= $days_in_month[$i]
-    }
-    if ($month == -1) {
-	die "month = -1";
-    }
-
-    $month++;
-    $day_num++;
-    $date = sprintf ("%i%02i%02i", $year, $month, $day_num);
-#    print "Date: $date\n";
-
-    # Output a VEVENT using the timezone.
-    print OUTPUTFILE <<EOF;
-BEGIN:VEVENT
-UID:vzic-test-${zone_num}
-DTSTAMP:20010101T000000Z
-DTSTART;TZID=${tzid}:${date}T120000
-DTEND;TZID=${tzid}:${date}T130000
-RRULE:FREQ=MONTHLY;BYMONTHDAY=${day_num}
-SUMMARY:($tzoffset) ${location} 12:00-13:00 UTC 
-SEQUENCE:1
-END:VEVENT
-EOF
-
-    $zone_num++;
-
-    # Use this to stop after a certain number.
-#    last if ($zone_num == 100);
-}
-
-# Output the standard footer.
-    print OUTPUTFILE <<EOF;
-END:VCALENDAR
-EOF
-
-close (OUTPUTFILE);
-
diff --git a/libkcal/libical/vzic-1.3/vzic.c b/libkcal/libical/vzic-1.3/vzic.c
deleted file mode 100644
index 41bfa3b4..00000000
--- a/libkcal/libical/vzic-1.3/vzic.c
+++ /dev/null
@@ -1,320 +0,0 @@
-/*
- * Vzic - a program to convert Olson timezone database files into VZTIMEZONE
- * files compatible with the iCalendar specification (RFC2445).
- *
- * Copyright (C) 2000-2001 Ximian, Inc.
- * Copyright (C) 2003 Damon Chaplin.
- *
- * Author: Damon Chaplin <damon@gnome.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include <stdio.h>
-#include <string.h>
-
-#include "vzic.h"
-#include "vzic-parse.h"
-#include "vzic-dump.h"
-#include "vzic-output.h"
-
-
-/*
- * Global command-line options.
- */
-
-/* By default we output Outlook-compatible output. If --pure is used we
-   output pure output, with no changes to be compatible with Outlook. */
-gboolean VzicPureOutput			= FALSE;
-
-gboolean VzicDumpOutput			= FALSE;
-gboolean VzicDumpChanges		= FALSE;
-gboolean VzicDumpZoneNamesAndCoords	= TRUE;
-gboolean VzicDumpZoneTranslatableStrings= TRUE;
-gboolean VzicNoRRules			= FALSE;
-gboolean VzicNoRDates			= FALSE;
-char*    VzicOutputDir			= "zoneinfo";
-char*    VzicUrlPrefix                  = NULL;
-char*    VzicOlsonDir                   = OLSON_DIR;
-
-GList*	 VzicTimeZoneNames		= NULL;
-
-static void	convert_olson_file		(char		*olson_file);
-
-static void	usage				(void);
-
-static void	free_zone_data			(GArray		*zone_data);
-static void	free_rule_array			(gpointer	 key,
-						 gpointer	 value,
-						 gpointer	 data);
-static void	free_link_data			(gpointer	 key,
-						 gpointer	 value,
-						 gpointer	 data);
-
-
-int
-main				(int		 argc,
-				 char		*argv[])
-{
-  int i;
-  char directory[PATHNAME_BUFFER_SIZE];
-  char filename[PATHNAME_BUFFER_SIZE];
-  GHashTable *zones_hash;
-
-  /*
-   * Command-Line Option Parsing.
-   */
-  for (i = 1; i < argc; i++) {
-    /*
-     * User Options.
-     */
-
-    /* --pure: Output the perfect VCALENDAR data, which Outlook won't parse
-       as it has problems with certain iCalendar constructs. */
-    if (!strcmp (argv[i], "--pure"))
-      VzicPureOutput = TRUE;
-
-    /* --output-dir: specify where to output all the files beneath. The
-       default is the current directory. */
-    else if (argc > i + 1 && !strcmp (argv[i], "--output-dir"))
-      VzicOutputDir = argv[++i];
-
-    /* --url-prefix: Used as the base for the TZURL property in each
-       VTIMEZONE. The default is to not output TZURL properties. */
-    else if (argc > i + 1 && !strcmp (argv[i], "--url-prefix")) {
-      int length;
-      VzicUrlPrefix = argv[++i];
-      /* remove the trailing '/' if there is one */
-      length = strlen (VzicUrlPrefix);
-      if (VzicUrlPrefix[length - 1] == '/')
-          VzicUrlPrefix[length - 1] = '\0';
-    }
-
-    else if (argc > i + 1 && !strcmp (argv[i], "--olson-dir")) {
-      VzicOlsonDir = argv[++i];
-    }
-
-    /*
-     * Debugging Options.
-     */
-
-    /* --dump: Dump the Rule and Zone data that we parsed from the Olson
-       timezone files. This is used to test the parsing code. */
-    else if (!strcmp (argv[i], "--dump"))
-      VzicDumpOutput = TRUE;
-
-    /* --dump-changes: Dumps a list of times when each timezone changed,
-       and the new local time offset from UTC. */
-    else if (!strcmp (argv[i], "--dump-changes"))
-      VzicDumpChanges = TRUE;
-
-    /* --no-rrules: Don't output RRULE properties in the VTIMEZONEs. Instead
-       it will just output RDATEs for each year up to a certain year. */
-    else if (!strcmp (argv[i], "--no-rrules"))
-      VzicNoRRules = TRUE;
-
-    /* --no-rdates: Don't output multiple RDATEs in a single VTIMEZONE
-       component. Instead they will be output separately. */
-    else if (!strcmp (argv[i], "--no-rdates"))
-      VzicNoRDates = TRUE;
-
-    else
-      usage ();
-  }
-
-  /*
-   * Create any necessary directories.
-   */
-  ensure_directory_exists (VzicOutputDir);
-
-  if (VzicDumpOutput) {
-    /* Create the directories for the dump output, if they don't exist. */
-    sprintf (directory, "%s/ZonesVzic", VzicOutputDir);
-    ensure_directory_exists (directory);
-    sprintf (directory, "%s/RulesVzic", VzicOutputDir);
-    ensure_directory_exists (directory);
-  }
-
-  if (VzicDumpChanges) {
-    /* Create the directory for the changes output, if it doesn't exist. */
-    sprintf (directory, "%s/ChangesVzic", VzicOutputDir);
-    ensure_directory_exists (directory);
-  }
-
-  /*
-   * Convert the Olson timezone files.
-   */
-  convert_olson_file ("africa");
-  convert_olson_file ("antarctica");
-  convert_olson_file ("asia");
-  convert_olson_file ("australasia");
-  convert_olson_file ("europe");
-  convert_olson_file ("northamerica");
-  convert_olson_file ("southamerica");
-
-  /* These are backwards-compatability and weird stuff. */
-#if 0
-  convert_olson_file ("backward");
-  convert_olson_file ("etcetera");
-  convert_olson_file ("leapseconds");
-  convert_olson_file ("pacificnew");
-  convert_olson_file ("solar87");
-  convert_olson_file ("solar88");
-  convert_olson_file ("solar89");
-#endif
-
-  /* This doesn't really do anything and it messes up vzic-dump.pl so we
-     don't bother. */
-#if 0
-  convert_olson_file ("factory");
-#endif
-
-  /* This is old System V stuff, which we don't currently support since it
-     uses 'min' as a Rule FROM value which messes up our algorithm, making
-     it too slow and use too much memory. */
-#if 0
-  convert_olson_file ("systemv");
-#endif
-
-  /* Output the timezone names and coordinates in a zone.tab file, and
-     the translatable strings to feed to gettext. */
-  if (VzicDumpZoneNamesAndCoords) {
-    sprintf (filename, "%s/zone.tab", VzicOlsonDir);
-    zones_hash = parse_zone_tab (filename);
-
-    dump_time_zone_names (VzicTimeZoneNames, VzicOutputDir, zones_hash);
-  }
-
-  return 0;
-}
-
-
-static void
-convert_olson_file		(char		*olson_file)
-{
-  char input_filename[PATHNAME_BUFFER_SIZE];
-  GArray *zone_data;
-  GHashTable *rule_data, *link_data;
-  char dump_filename[PATHNAME_BUFFER_SIZE];
-  ZoneData *zone;
-  int i, max_until_year;
-
-  sprintf (input_filename, "%s/%s", VzicOlsonDir, olson_file);
-
-  parse_olson_file (input_filename, &zone_data, &rule_data, &link_data,
-		    &max_until_year);
-
-  if (VzicDumpOutput) {
-    sprintf (dump_filename, "%s/ZonesVzic/%s", VzicOutputDir, olson_file);
-    dump_zone_data (zone_data, dump_filename);
-
-    sprintf (dump_filename, "%s/RulesVzic/%s", VzicOutputDir, olson_file);
-    dump_rule_data (rule_data, dump_filename);
-  }
-
-  output_vtimezone_files (VzicOutputDir, zone_data, rule_data, link_data,
-			  max_until_year);
-
-  free_zone_data (zone_data);
-  g_hash_table_foreach (rule_data, free_rule_array, NULL);
-  g_hash_table_destroy (rule_data);
-  g_hash_table_foreach (link_data, free_link_data, NULL);
-  g_hash_table_destroy (link_data);
-}
-
-
-static void
-usage				(void)
-{
-  fprintf (stderr, "Usage: vzic [--dump] [--dump-changes] [--no-rrules] [--no-rdates] [--pure] [--output-dir <directory>] [--url-prefix <url>] [--olson-dir <directory>]\n");
-
-  exit (1);
-}
-
-
-
-
-/*
- * Functions to free the data structures.
- */
-
-static void
-free_zone_data			(GArray		*zone_data)
-{
-  ZoneData *zone;
-  ZoneLineData *zone_line;
-  int i, j;
-
-  for (i = 0; i < zone_data->len; i++) {
-    zone = &g_array_index (zone_data, ZoneData, i);
-
-    g_free (zone->zone_name);
-
-    for (j = 0; j < zone->zone_line_data->len; j++) {
-      zone_line = &g_array_index (zone->zone_line_data, ZoneLineData, j);
-
-      g_free (zone_line->rules);
-      g_free (zone_line->format);
-    }
-
-    g_array_free (zone->zone_line_data, TRUE);
-  }
-
-  g_array_free (zone_data, TRUE);
-}
-
-
-static void
-free_rule_array			(gpointer	 key,
-				 gpointer	 value,
-				 gpointer	 data)
-{
-  char *name = key;
-  GArray *rule_array = value;
-  RuleData *rule;
-  int i;
-
-  for (i = 0; i < rule_array->len; i++) {
-    rule = &g_array_index (rule_array, RuleData, i);
-
-    if (!rule->is_shallow_copy) {
-      g_free (rule->type);
-      g_free (rule->letter_s);
-    }
-  }
-
-  g_array_free (rule_array, TRUE);
-
-  g_free (name);
-}
-
-
-static void
-free_link_data			(gpointer	 key,
-				 gpointer	 value,
-				 gpointer	 data)
-{
-  GList *link = data;
-
-  g_free (key);
-
-  while (link) {
-    g_free (link->data);
-    link = link->next;
-  }
-
-  g_list_free (data);
-}
-
diff --git a/libkcal/libical/vzic-1.3/vzic.h b/libkcal/libical/vzic-1.3/vzic.h
deleted file mode 100644
index 3d0daf89..00000000
--- a/libkcal/libical/vzic-1.3/vzic.h
+++ /dev/null
@@ -1,196 +0,0 @@
-/*
- * Vzic - a program to convert Olson timezone database files into VZTIMEZONE
- * files compatible with the iCalendar specification (RFC2445).
- *
- * Copyright (C) 2000-2001 Ximian, Inc.
- * Copyright (C) 2003 Damon Chaplin.
- *
- * Author: Damon Chaplin <damon@gnome.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef _VZIC_H_
-#define _VZIC_H_
-
-#include <glib.h>
-
-
-/*
- * Global command-line options.
- */
-
-/* By default we output Outlook-compatible output. If --pure is used we output
-   pure output, with no changes to be compatible with Outlook. */
-extern gboolean VzicPureOutput;
-
-extern gboolean VzicDumpOutput;
-extern gboolean VzicDumpChanges;
-extern gboolean VzicDumpZoneNamesAndCoords;
-extern gboolean VzicDumpZoneTranslatableStrings;
-extern gboolean VzicNoRRules;
-extern gboolean VzicNoRDates;
-extern char*    VzicUrlPrefix;
-
-extern GList*	VzicTimeZoneNames;
-
-/* The minimum & maximum years we can use. */
-#define YEAR_MINIMUM	G_MININT
-#define YEAR_MAXIMUM	G_MAXINT
-
-/* The maximum size of any complete pathname. */
-#define PATHNAME_BUFFER_SIZE	1024
-
-/* Days can be expressed either as a simple month day number, 1-31, or a rule
-   such as the last Sunday, or the first Monday on or after the 8th. */
-typedef enum
-{
-  DAY_SIMPLE,
-  DAY_WEEKDAY_ON_OR_AFTER,
-  DAY_WEEKDAY_ON_OR_BEFORE,
-  DAY_LAST_WEEKDAY
-} DayCode;
-
-
-/* Times can be given either as universal time (UTC), local standard time
-   (without daylight-saving adjustments) or wall clock time (local standard
-   time plus daylight-saving adjustments, i.e. what you would see on a clock
-   on the wall!). */
-typedef enum
-{
-  TIME_WALL,
-  TIME_STANDARD,
-  TIME_UNIVERSAL
-} TimeCode;
-
-
-/* This represents one timezone, e.g. "Africa/Algiers".
-   It contains the timezone name, and an array of ZoneLineData structs which
-   hold data from each Zone line, including the continuation lines. */
-typedef struct _ZoneData ZoneData;
-struct _ZoneData
-{
-  char *zone_name;
-
-  /* An array of ZoneLineData, one for each Zone & Zone continuation line
-     read in. */
-  GArray *zone_line_data;
-};
-
-
-typedef struct _ZoneLineData ZoneLineData;
-struct _ZoneLineData
-{
-  /* The amount of time to add to UTC to get local standard time for the
-     current time range, in seconds. */
-  int		stdoff_seconds;
-
-  /* Either rules is set to the name of a set of rules, or rules is NULL and
-     save is set to the time to add to local standard time to get wall time, in
-     seconds. If save is 0 as well, then standard time always applies. */
-  char	       *rules;
-  int		save_seconds;
-
-  /* The format to use for the abbreviated timezone name, e.g. WE%sT.
-     The %s is replaced by variable part of the name. (See the letter_s field
-     in the RuleData struct below). */
-  char	       *format;
-
-  /* TRUE if an UNTIL time is given. */
-  gboolean	until_set;
-
-  /* The UNTIL year, e.g. 2000. */
-  int		until_year;
-
-  /* The UNTIL month 0 (Jan) to 11 (Dec). */
-  int		until_month;
-
-  /* The UNTIL day, either a simple month day number, 1-31, or a rule such as
-     the last Sunday, or the first Monday on or after the 8th. */
-  DayCode	until_day_code;
-  int		until_day_number;	/* 1 to 31. */
-  int		until_day_weekday;	/* 0 (Sun) to 6 (Sat). */
-
-  /* The UNTIL time, in seconds from midnight. The code specifies whether the
-     time is a wall clock time, local standard time, or universal time. */
-  int		until_time_seconds;
-  TimeCode	until_time_code;
-};
-
-
-typedef struct _RuleData RuleData;
-struct _RuleData
-{
-  /* The first year that the rule applies to, e.g. 1996.
-     Can also be YEAR_MINIMUM. */
-  int		from_year;
-
-  /* The last year that the rule applies to, e.g. 1996.
-     Can also be YEAR_MAXIMUM. */
-  int		to_year;
-
-  /* A string used to only match certain years between from and to.
-     The rule only applies to the years which match. If type is NULL the rule
-     applies to all years betweeen from and to.
-     zic uses an external program called yearistype to check the string.
-     Currently it is not used in the Olson database. */
-  char	       *type;
-
-  /* The month of the rule 0 (Jan) to 11 (Dec). */
-  int		in_month;
-
-  /* The day, either a simple month day number, 1-31, or a rule such as
-     the last Sunday, or the first Monday on or after the 8th. */
-  DayCode	on_day_code;
-  int		on_day_number;
-  int		on_day_weekday;		/* 0 (Sun) to 6 (Sat). */
-
-  /* The time, in seconds from midnight. The code specifies whether the
-     time is a wall clock time, local standard time, or universal time. */
-  int		at_time_seconds;
-  TimeCode	at_time_code;
-
-  /* The amount of time to add to local standard time when the rule is in
-     effect, in seconds. If this is not 0 then it must be a daylight-saving
-     time. */
-  int		save_seconds;
-
-  /* The letter(s) to use as the variable part in the abbreviated timezone
-     name. If this is NULL then no variable part is used. (See the format field
-     in the ZoneLineData struct above.) */
-  char	       *letter_s;
-
-
-  /* This is set to TRUE if this element is a shallow copy of another one,
-     in which case we don't free any of the fields. */
-  gboolean	is_shallow_copy;
-};
-
-
-typedef struct _ZoneDescription ZoneDescription;
-struct _ZoneDescription
-{
-  /* 2-letter ISO 3166 country code. */
-  char		country_code[2];
-
-  /* latitude and longitude in degrees, minutes & seconds. The degrees value
-     holds the sign of the entire latitude/longitude. */
-  int		latitude[3];
-  int		longitude[3];
-
-  char	       *comment;
-};
-
-#endif /* _VZIC_H_ */
diff --git a/libkcal/libical/zoneinfo/Africa/Abidjan.ics b/libkcal/libical/zoneinfo/Africa/Abidjan.ics
deleted file mode 100644
index 9eef562f..00000000
--- a/libkcal/libical/zoneinfo/Africa/Abidjan.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/Abidjan
-X-LIC-LOCATION:Africa/Abidjan
-BEGIN:STANDARD
-TZOFFSETFROM:-001608
-TZOFFSETTO:+0000
-TZNAME:GMT
-DTSTART:19120101T000000
-RDATE:19120101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Africa/Accra.ics b/libkcal/libical/zoneinfo/Africa/Accra.ics
deleted file mode 100644
index 93bb65bc..00000000
--- a/libkcal/libical/zoneinfo/Africa/Accra.ics
+++ /dev/null
@@ -1,41 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/Accra
-X-LIC-LOCATION:Africa/Accra
-BEGIN:STANDARD
-TZOFFSETFROM:-000052
-TZOFFSETTO:+0000
-TZNAME:GMT
-DTSTART:19180101T000000
-RDATE:19180101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0020
-TZNAME:GHST
-DTSTART:19360901T000000
-RDATE:19360901T000000
-RDATE:19370901T000000
-RDATE:19380901T000000
-RDATE:19390901T000000
-RDATE:19400901T000000
-RDATE:19410901T000000
-RDATE:19420901T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0020
-TZOFFSETTO:+0000
-TZNAME:GMT
-DTSTART:19361231T000000
-RDATE:19361231T000000
-RDATE:19371231T000000
-RDATE:19381231T000000
-RDATE:19391231T000000
-RDATE:19401231T000000
-RDATE:19411231T000000
-RDATE:19421231T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Africa/Addis_Ababa.ics b/libkcal/libical/zoneinfo/Africa/Addis_Ababa.ics
deleted file mode 100644
index 7cc623ee..00000000
--- a/libkcal/libical/zoneinfo/Africa/Addis_Ababa.ics
+++ /dev/null
@@ -1,22 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/Addis_Ababa
-X-LIC-LOCATION:Africa/Addis_Ababa
-BEGIN:STANDARD
-TZOFFSETFROM:+023448
-TZOFFSETTO:+023520
-TZNAME:ADMT
-DTSTART:18700101T000000
-RDATE:18700101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+023520
-TZOFFSETTO:+0300
-TZNAME:EAT
-DTSTART:19360505T000000
-RDATE:19360505T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Africa/Algiers.ics b/libkcal/libical/zoneinfo/Africa/Algiers.ics
deleted file mode 100644
index 2a9b039f..00000000
--- a/libkcal/libical/zoneinfo/Africa/Algiers.ics
+++ /dev/null
@@ -1,90 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/Algiers
-X-LIC-LOCATION:Africa/Algiers
-BEGIN:STANDARD
-TZOFFSETFROM:+001212
-TZOFFSETTO:+000921
-TZNAME:PMT
-DTSTART:18910315T000100
-RDATE:18910315T000100
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+000921
-TZOFFSETTO:+0000
-TZNAME:WET
-DTSTART:19110311T000000
-RDATE:19110311T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0100
-TZNAME:WEST
-DTSTART:19160614T230000
-RDATE:19160614T230000
-RDATE:19170324T230000
-RDATE:19180309T230000
-RDATE:19190301T230000
-RDATE:19200214T230000
-RDATE:19210314T230000
-RDATE:19390911T230000
-RDATE:19710425T230000
-RDATE:19770506T000000
-RDATE:19800425T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0000
-TZNAME:WET
-DTSTART:19161002T000000
-RDATE:19161002T000000
-RDATE:19171008T000000
-RDATE:19181007T000000
-RDATE:19191006T000000
-RDATE:19201024T000000
-RDATE:19210622T000000
-RDATE:19391119T010000
-RDATE:19461007T000000
-RDATE:19630414T000000
-RDATE:19710927T000000
-RDATE:19791026T000000
-RDATE:19801031T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19400225T020000
-RDATE:19400225T020000
-RDATE:19560129T000000
-RDATE:19810501T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19440403T020000
-RDATE:19440403T020000
-RDATE:19450402T020000
-RDATE:19780324T010000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19441008T020000
-RDATE:19441008T020000
-RDATE:19450916T010000
-RDATE:19780922T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19771021T000000
-RDATE:19771021T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Africa/Asmara.ics b/libkcal/libical/zoneinfo/Africa/Asmara.ics
deleted file mode 100644
index dadf9b1e..00000000
--- a/libkcal/libical/zoneinfo/Africa/Asmara.ics
+++ /dev/null
@@ -1,29 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/Asmara
-X-LIC-LOCATION:Africa/Asmara
-BEGIN:STANDARD
-TZOFFSETFROM:+023532
-TZOFFSETTO:+023532
-TZNAME:AMT
-DTSTART:18700101T000000
-RDATE:18700101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+023532
-TZOFFSETTO:+023520
-TZNAME:ADMT
-DTSTART:18900101T000000
-RDATE:18900101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+023520
-TZOFFSETTO:+0300
-TZNAME:EAT
-DTSTART:19360505T000000
-RDATE:19360505T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Africa/Bamako.ics b/libkcal/libical/zoneinfo/Africa/Bamako.ics
deleted file mode 100644
index 72b75fcc..00000000
--- a/libkcal/libical/zoneinfo/Africa/Bamako.ics
+++ /dev/null
@@ -1,29 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/Bamako
-X-LIC-LOCATION:Africa/Bamako
-BEGIN:STANDARD
-TZOFFSETFROM:-0032
-TZOFFSETTO:+0000
-TZNAME:GMT
-DTSTART:19120101T000000
-RDATE:19120101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0000
-TZOFFSETTO:-0100
-TZNAME:WAT
-DTSTART:19340226T000000
-RDATE:19340226T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0100
-TZOFFSETTO:+0000
-TZNAME:GMT
-DTSTART:19600620T000000
-RDATE:19600620T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Africa/Bangui.ics b/libkcal/libical/zoneinfo/Africa/Bangui.ics
deleted file mode 100644
index 27ce2e16..00000000
--- a/libkcal/libical/zoneinfo/Africa/Bangui.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/Bangui
-X-LIC-LOCATION:Africa/Bangui
-BEGIN:STANDARD
-TZOFFSETFROM:+011420
-TZOFFSETTO:+0100
-TZNAME:WAT
-DTSTART:19120101T000000
-RDATE:19120101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Africa/Banjul.ics b/libkcal/libical/zoneinfo/Africa/Banjul.ics
deleted file mode 100644
index e5a52982..00000000
--- a/libkcal/libical/zoneinfo/Africa/Banjul.ics
+++ /dev/null
@@ -1,29 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/Banjul
-X-LIC-LOCATION:Africa/Banjul
-BEGIN:STANDARD
-TZOFFSETFROM:-010636
-TZOFFSETTO:-010636
-TZNAME:BMT
-DTSTART:19120101T000000
-RDATE:19120101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-010636
-TZOFFSETTO:-0100
-TZNAME:WAT
-DTSTART:19350101T000000
-RDATE:19350101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0100
-TZOFFSETTO:+0000
-TZNAME:GMT
-DTSTART:19640101T000000
-RDATE:19640101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Africa/Bissau.ics b/libkcal/libical/zoneinfo/Africa/Bissau.ics
deleted file mode 100644
index bc50677b..00000000
--- a/libkcal/libical/zoneinfo/Africa/Bissau.ics
+++ /dev/null
@@ -1,22 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/Bissau
-X-LIC-LOCATION:Africa/Bissau
-BEGIN:STANDARD
-TZOFFSETFROM:-010220
-TZOFFSETTO:-0100
-TZNAME:WAT
-DTSTART:19110526T000000
-RDATE:19110526T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0100
-TZOFFSETTO:+0000
-TZNAME:GMT
-DTSTART:19750101T000000
-RDATE:19750101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Africa/Blantyre.ics b/libkcal/libical/zoneinfo/Africa/Blantyre.ics
deleted file mode 100644
index 3a88e08b..00000000
--- a/libkcal/libical/zoneinfo/Africa/Blantyre.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/Blantyre
-X-LIC-LOCATION:Africa/Blantyre
-BEGIN:STANDARD
-TZOFFSETFROM:+0220
-TZOFFSETTO:+0200
-TZNAME:CAT
-DTSTART:19030301T000000
-RDATE:19030301T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Africa/Brazzaville.ics b/libkcal/libical/zoneinfo/Africa/Brazzaville.ics
deleted file mode 100644
index fec4b9ea..00000000
--- a/libkcal/libical/zoneinfo/Africa/Brazzaville.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/Brazzaville
-X-LIC-LOCATION:Africa/Brazzaville
-BEGIN:STANDARD
-TZOFFSETFROM:+010108
-TZOFFSETTO:+0100
-TZNAME:WAT
-DTSTART:19120101T000000
-RDATE:19120101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Africa/Bujumbura.ics b/libkcal/libical/zoneinfo/Africa/Bujumbura.ics
deleted file mode 100644
index e9d5e0ac..00000000
--- a/libkcal/libical/zoneinfo/Africa/Bujumbura.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/Bujumbura
-X-LIC-LOCATION:Africa/Bujumbura
-BEGIN:STANDARD
-TZOFFSETFROM:+015728
-TZOFFSETTO:+0200
-TZNAME:CAT
-DTSTART:18900101T000000
-RDATE:18900101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Africa/Cairo.ics b/libkcal/libical/zoneinfo/Africa/Cairo.ics
deleted file mode 100644
index 4ee8198e..00000000
--- a/libkcal/libical/zoneinfo/Africa/Cairo.ics
+++ /dev/null
@@ -1,148 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/Cairo
-X-LIC-LOCATION:Africa/Cairo
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19950428T000000
-RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=-1FR
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:20080828T230000
-RRULE:FREQ=YEARLY;BYMONTH=8;BYDAY=-1TH
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0205
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19001001T000000
-RDATE:19001001T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19400715T000000
-RDATE:19400715T000000
-RDATE:19410415T000000
-RDATE:19420401T000000
-RDATE:19430401T000000
-RDATE:19440401T000000
-RDATE:19450416T000000
-RDATE:19570510T000000
-RDATE:19580501T000000
-RDATE:19590501T010000
-RDATE:19600501T010000
-RDATE:19610501T010000
-RDATE:19620501T010000
-RDATE:19630501T010000
-RDATE:19640501T010000
-RDATE:19650501T010000
-RDATE:19660501T010000
-RDATE:19670501T010000
-RDATE:19680501T010000
-RDATE:19690501T010000
-RDATE:19700501T010000
-RDATE:19710501T010000
-RDATE:19720501T010000
-RDATE:19730501T010000
-RDATE:19740501T010000
-RDATE:19750501T010000
-RDATE:19760501T010000
-RDATE:19770501T010000
-RDATE:19780501T010000
-RDATE:19790501T010000
-RDATE:19800501T010000
-RDATE:19810501T010000
-RDATE:19820725T010000
-RDATE:19830712T010000
-RDATE:19840501T010000
-RDATE:19850501T010000
-RDATE:19860501T010000
-RDATE:19870501T010000
-RDATE:19880501T010000
-RDATE:19890506T010000
-RDATE:19900501T010000
-RDATE:19910501T010000
-RDATE:19920501T010000
-RDATE:19930501T010000
-RDATE:19940501T010000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19401001T000000
-RDATE:19401001T000000
-RDATE:19410916T000000
-RDATE:19421027T000000
-RDATE:19431101T000000
-RDATE:19441101T000000
-RDATE:19451101T000000
-RDATE:19571001T000000
-RDATE:19581001T000000
-RDATE:19590930T030000
-RDATE:19600930T030000
-RDATE:19610930T030000
-RDATE:19620930T030000
-RDATE:19630930T030000
-RDATE:19640930T030000
-RDATE:19650930T030000
-RDATE:19661001T030000
-RDATE:19671001T030000
-RDATE:19681001T030000
-RDATE:19691001T030000
-RDATE:19701001T030000
-RDATE:19711001T030000
-RDATE:19721001T030000
-RDATE:19731001T030000
-RDATE:19741001T030000
-RDATE:19751001T030000
-RDATE:19761001T030000
-RDATE:19771001T030000
-RDATE:19781001T030000
-RDATE:19791001T030000
-RDATE:19801001T030000
-RDATE:19811001T030000
-RDATE:19821001T030000
-RDATE:19831001T030000
-RDATE:19841001T030000
-RDATE:19851001T030000
-RDATE:19861001T030000
-RDATE:19871001T030000
-RDATE:19881001T030000
-RDATE:19891001T030000
-RDATE:19901001T030000
-RDATE:19911001T030000
-RDATE:19921001T030000
-RDATE:19931001T030000
-RDATE:19941001T030000
-RDATE:19950929T000000
-RDATE:19960927T000000
-RDATE:19970926T000000
-RDATE:19980925T000000
-RDATE:19991001T000000
-RDATE:20000929T000000
-RDATE:20010928T000000
-RDATE:20020927T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:20030925T230000
-RDATE:20030925T230000
-RDATE:20040930T230000
-RDATE:20050929T230000
-RDATE:20060921T230000
-RDATE:20070906T230000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Africa/Casablanca.ics b/libkcal/libical/zoneinfo/Africa/Casablanca.ics
deleted file mode 100644
index 0ba6bd00..00000000
--- a/libkcal/libical/zoneinfo/Africa/Casablanca.ics
+++ /dev/null
@@ -1,51 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/Casablanca
-X-LIC-LOCATION:Africa/Casablanca
-BEGIN:STANDARD
-TZOFFSETFROM:-003020
-TZOFFSETTO:+0000
-TZNAME:WET
-DTSTART:19131026T000000
-RDATE:19131026T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0100
-TZNAME:WEST
-DTSTART:19390912T000000
-RDATE:19390912T000000
-RDATE:19400225T000000
-RDATE:19500611T000000
-RDATE:19670603T120000
-RDATE:19740624T000000
-RDATE:19760501T000000
-RDATE:19770501T000000
-RDATE:19780601T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0000
-TZNAME:WET
-DTSTART:19391119T000000
-RDATE:19391119T000000
-RDATE:19451118T000000
-RDATE:19501029T000000
-RDATE:19671001T000000
-RDATE:19740901T000000
-RDATE:19760801T000000
-RDATE:19770928T000000
-RDATE:19780804T000000
-RDATE:19860101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19840316T000000
-RDATE:19840316T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Africa/Ceuta.ics b/libkcal/libical/zoneinfo/Africa/Ceuta.ics
deleted file mode 100644
index adf26c99..00000000
--- a/libkcal/libical/zoneinfo/Africa/Ceuta.ics
+++ /dev/null
@@ -1,99 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/Ceuta
-X-LIC-LOCATION:Africa/Ceuta
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19860330T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19961027T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-002116
-TZOFFSETTO:+0000
-TZNAME:WET
-DTSTART:19010101T000000
-RDATE:19010101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0100
-TZNAME:WEST
-DTSTART:19180506T230000
-RDATE:19180506T230000
-RDATE:19240416T230000
-RDATE:19260417T230000
-RDATE:19270409T230000
-RDATE:19280414T230000
-RDATE:19670603T120000
-RDATE:19740624T000000
-RDATE:19760501T000000
-RDATE:19770501T000000
-RDATE:19780601T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0000
-TZNAME:WET
-DTSTART:19181007T230000
-RDATE:19181007T230000
-RDATE:19241005T000000
-RDATE:19261003T000000
-RDATE:19271002T000000
-RDATE:19281007T000000
-RDATE:19671001T000000
-RDATE:19740901T000000
-RDATE:19760801T000000
-RDATE:19770928T000000
-RDATE:19780804T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0000
-TZNAME:WET
-DTSTART:19240101T000000
-RDATE:19240101T000000
-RDATE:19290101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19840316T000000
-RDATE:19840316T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19860101T000000
-RDATE:19860101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19860928T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19910929T030000
-RDATE:19920927T030000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Africa/Conakry.ics b/libkcal/libical/zoneinfo/Africa/Conakry.ics
deleted file mode 100644
index ad55c750..00000000
--- a/libkcal/libical/zoneinfo/Africa/Conakry.ics
+++ /dev/null
@@ -1,29 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/Conakry
-X-LIC-LOCATION:Africa/Conakry
-BEGIN:STANDARD
-TZOFFSETFROM:-005452
-TZOFFSETTO:+0000
-TZNAME:GMT
-DTSTART:19120101T000000
-RDATE:19120101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0000
-TZOFFSETTO:-0100
-TZNAME:WAT
-DTSTART:19340226T000000
-RDATE:19340226T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0100
-TZOFFSETTO:+0000
-TZNAME:GMT
-DTSTART:19600101T000000
-RDATE:19600101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Africa/Dakar.ics b/libkcal/libical/zoneinfo/Africa/Dakar.ics
deleted file mode 100644
index f7920fd9..00000000
--- a/libkcal/libical/zoneinfo/Africa/Dakar.ics
+++ /dev/null
@@ -1,22 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/Dakar
-X-LIC-LOCATION:Africa/Dakar
-BEGIN:STANDARD
-TZOFFSETFROM:-010944
-TZOFFSETTO:-0100
-TZNAME:WAT
-DTSTART:19120101T000000
-RDATE:19120101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0100
-TZOFFSETTO:+0000
-TZNAME:GMT
-DTSTART:19410601T000000
-RDATE:19410601T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Africa/Dar_es_Salaam.ics b/libkcal/libical/zoneinfo/Africa/Dar_es_Salaam.ics
deleted file mode 100644
index 9a55ed72..00000000
--- a/libkcal/libical/zoneinfo/Africa/Dar_es_Salaam.ics
+++ /dev/null
@@ -1,29 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/Dar_es_Salaam
-X-LIC-LOCATION:Africa/Dar_es_Salaam
-BEGIN:STANDARD
-TZOFFSETFROM:+023708
-TZOFFSETTO:+0300
-TZNAME:EAT
-DTSTART:19310101T000000
-RDATE:19310101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+024445
-TZNAME:BEAUT
-DTSTART:19480101T000000
-RDATE:19480101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+024445
-TZOFFSETTO:+0300
-TZNAME:EAT
-DTSTART:19610101T000000
-RDATE:19610101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Africa/Djibouti.ics b/libkcal/libical/zoneinfo/Africa/Djibouti.ics
deleted file mode 100644
index a3cec464..00000000
--- a/libkcal/libical/zoneinfo/Africa/Djibouti.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/Djibouti
-X-LIC-LOCATION:Africa/Djibouti
-BEGIN:STANDARD
-TZOFFSETFROM:+025236
-TZOFFSETTO:+0300
-TZNAME:EAT
-DTSTART:19110701T000000
-RDATE:19110701T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Africa/Douala.ics b/libkcal/libical/zoneinfo/Africa/Douala.ics
deleted file mode 100644
index c3a7b7a6..00000000
--- a/libkcal/libical/zoneinfo/Africa/Douala.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/Douala
-X-LIC-LOCATION:Africa/Douala
-BEGIN:STANDARD
-TZOFFSETFROM:+003848
-TZOFFSETTO:+0100
-TZNAME:WAT
-DTSTART:19120101T000000
-RDATE:19120101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Africa/El_Aaiun.ics b/libkcal/libical/zoneinfo/Africa/El_Aaiun.ics
deleted file mode 100644
index aca7b03f..00000000
--- a/libkcal/libical/zoneinfo/Africa/El_Aaiun.ics
+++ /dev/null
@@ -1,22 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/El_Aaiun
-X-LIC-LOCATION:Africa/El_Aaiun
-BEGIN:STANDARD
-TZOFFSETFROM:-005248
-TZOFFSETTO:-0100
-TZNAME:WAT
-DTSTART:19340101T000000
-RDATE:19340101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0100
-TZOFFSETTO:+0000
-TZNAME:WET
-DTSTART:19760414T000000
-RDATE:19760414T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Africa/Freetown.ics b/libkcal/libical/zoneinfo/Africa/Freetown.ics
deleted file mode 100644
index 492a464a..00000000
--- a/libkcal/libical/zoneinfo/Africa/Freetown.ics
+++ /dev/null
@@ -1,81 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/Freetown
-X-LIC-LOCATION:Africa/Freetown
-BEGIN:STANDARD
-TZOFFSETFROM:-0053
-TZOFFSETTO:-0053
-TZNAME:FMT
-DTSTART:18820101T000000
-RDATE:18820101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0053
-TZOFFSETTO:-0100
-TZNAME:WAT
-DTSTART:19130601T000000
-RDATE:19130601T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0100
-TZOFFSETTO:-0020
-TZNAME:SLST
-DTSTART:19350601T000000
-RDATE:19350601T000000
-RDATE:19360601T000000
-RDATE:19370601T000000
-RDATE:19380601T000000
-RDATE:19390601T000000
-RDATE:19400601T000000
-RDATE:19410601T000000
-RDATE:19420601T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0020
-TZOFFSETTO:-0100
-TZNAME:WAT
-DTSTART:19351001T000000
-RDATE:19351001T000000
-RDATE:19361001T000000
-RDATE:19371001T000000
-RDATE:19381001T000000
-RDATE:19391001T000000
-RDATE:19401001T000000
-RDATE:19411001T000000
-RDATE:19421001T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0100
-TZOFFSETTO:+0000
-TZNAME:GMT
-DTSTART:19570101T000000
-RDATE:19570101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0100
-TZNAME:SLST
-DTSTART:19570601T000000
-RDATE:19570601T000000
-RDATE:19580601T000000
-RDATE:19590601T000000
-RDATE:19600601T000000
-RDATE:19610601T000000
-RDATE:19620601T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0000
-TZNAME:GMT
-DTSTART:19570901T000000
-RDATE:19570901T000000
-RDATE:19580901T000000
-RDATE:19590901T000000
-RDATE:19600901T000000
-RDATE:19610901T000000
-RDATE:19620901T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Africa/Gaborone.ics b/libkcal/libical/zoneinfo/Africa/Gaborone.ics
deleted file mode 100644
index 91c494ab..00000000
--- a/libkcal/libical/zoneinfo/Africa/Gaborone.ics
+++ /dev/null
@@ -1,29 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/Gaborone
-X-LIC-LOCATION:Africa/Gaborone
-BEGIN:STANDARD
-TZOFFSETFROM:+014340
-TZOFFSETTO:+0200
-TZNAME:CAT
-DTSTART:18850101T000000
-RDATE:18850101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:CAST
-DTSTART:19430919T020000
-RDATE:19430919T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:CAT
-DTSTART:19440319T020000
-RDATE:19440319T020000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Africa/Harare.ics b/libkcal/libical/zoneinfo/Africa/Harare.ics
deleted file mode 100644
index 264796d7..00000000
--- a/libkcal/libical/zoneinfo/Africa/Harare.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/Harare
-X-LIC-LOCATION:Africa/Harare
-BEGIN:STANDARD
-TZOFFSETFROM:+020412
-TZOFFSETTO:+0200
-TZNAME:CAT
-DTSTART:19030301T000000
-RDATE:19030301T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Africa/Johannesburg.ics b/libkcal/libical/zoneinfo/Africa/Johannesburg.ics
deleted file mode 100644
index 95a0eb5c..00000000
--- a/libkcal/libical/zoneinfo/Africa/Johannesburg.ics
+++ /dev/null
@@ -1,38 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/Johannesburg
-X-LIC-LOCATION:Africa/Johannesburg
-BEGIN:STANDARD
-TZOFFSETFROM:+0152
-TZOFFSETTO:+0130
-TZNAME:SAST
-DTSTART:18920208T000000
-RDATE:18920208T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0130
-TZOFFSETTO:+0200
-TZNAME:SAST
-DTSTART:19030301T000000
-RDATE:19030301T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:SAST
-DTSTART:19420920T020000
-RDATE:19420920T020000
-RDATE:19430919T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:SAST
-DTSTART:19430321T020000
-RDATE:19430321T020000
-RDATE:19440319T020000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Africa/Kampala.ics b/libkcal/libical/zoneinfo/Africa/Kampala.ics
deleted file mode 100644
index c332713d..00000000
--- a/libkcal/libical/zoneinfo/Africa/Kampala.ics
+++ /dev/null
@@ -1,36 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/Kampala
-X-LIC-LOCATION:Africa/Kampala
-BEGIN:STANDARD
-TZOFFSETFROM:+020940
-TZOFFSETTO:+0300
-TZNAME:EAT
-DTSTART:19280701T000000
-RDATE:19280701T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0230
-TZNAME:BEAT
-DTSTART:19300101T000000
-RDATE:19300101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0230
-TZOFFSETTO:+024445
-TZNAME:BEAUT
-DTSTART:19480101T000000
-RDATE:19480101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+024445
-TZOFFSETTO:+0300
-TZNAME:EAT
-DTSTART:19570101T000000
-RDATE:19570101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Africa/Khartoum.ics b/libkcal/libical/zoneinfo/Africa/Khartoum.ics
deleted file mode 100644
index 7b1aa4c5..00000000
--- a/libkcal/libical/zoneinfo/Africa/Khartoum.ics
+++ /dev/null
@@ -1,66 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/Khartoum
-X-LIC-LOCATION:Africa/Khartoum
-BEGIN:STANDARD
-TZOFFSETFROM:+021008
-TZOFFSETTO:+0200
-TZNAME:CAT
-DTSTART:19310101T000000
-RDATE:19310101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:CAST
-DTSTART:19700501T000000
-RDATE:19700501T000000
-RDATE:19710430T000000
-RDATE:19720430T000000
-RDATE:19730429T000000
-RDATE:19740428T000000
-RDATE:19750427T000000
-RDATE:19760425T000000
-RDATE:19770424T000000
-RDATE:19780430T000000
-RDATE:19790429T000000
-RDATE:19800427T000000
-RDATE:19810426T000000
-RDATE:19820425T000000
-RDATE:19830424T000000
-RDATE:19840429T000000
-RDATE:19850428T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:CAT
-DTSTART:19701015T000000
-RDATE:19701015T000000
-RDATE:19711015T000000
-RDATE:19721015T000000
-RDATE:19731015T000000
-RDATE:19741015T000000
-RDATE:19751015T000000
-RDATE:19761015T000000
-RDATE:19771015T000000
-RDATE:19781015T000000
-RDATE:19791015T000000
-RDATE:19801015T000000
-RDATE:19811015T000000
-RDATE:19821015T000000
-RDATE:19831015T000000
-RDATE:19841015T000000
-RDATE:19851015T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EAT
-DTSTART:20000115T120000
-RDATE:20000115T120000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Africa/Kigali.ics b/libkcal/libical/zoneinfo/Africa/Kigali.ics
deleted file mode 100644
index 5a88f680..00000000
--- a/libkcal/libical/zoneinfo/Africa/Kigali.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/Kigali
-X-LIC-LOCATION:Africa/Kigali
-BEGIN:STANDARD
-TZOFFSETFROM:+020016
-TZOFFSETTO:+0200
-TZNAME:CAT
-DTSTART:19350601T000000
-RDATE:19350601T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Africa/Kinshasa.ics b/libkcal/libical/zoneinfo/Africa/Kinshasa.ics
deleted file mode 100644
index 1120c1a9..00000000
--- a/libkcal/libical/zoneinfo/Africa/Kinshasa.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/Kinshasa
-X-LIC-LOCATION:Africa/Kinshasa
-BEGIN:STANDARD
-TZOFFSETFROM:+010112
-TZOFFSETTO:+0100
-TZNAME:WAT
-DTSTART:18971109T000000
-RDATE:18971109T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Africa/Lagos.ics b/libkcal/libical/zoneinfo/Africa/Lagos.ics
deleted file mode 100644
index 66b9a040..00000000
--- a/libkcal/libical/zoneinfo/Africa/Lagos.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/Lagos
-X-LIC-LOCATION:Africa/Lagos
-BEGIN:STANDARD
-TZOFFSETFROM:+001336
-TZOFFSETTO:+0100
-TZNAME:WAT
-DTSTART:19190901T000000
-RDATE:19190901T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Africa/Libreville.ics b/libkcal/libical/zoneinfo/Africa/Libreville.ics
deleted file mode 100644
index 937dc157..00000000
--- a/libkcal/libical/zoneinfo/Africa/Libreville.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/Libreville
-X-LIC-LOCATION:Africa/Libreville
-BEGIN:STANDARD
-TZOFFSETFROM:+003748
-TZOFFSETTO:+0100
-TZNAME:WAT
-DTSTART:19120101T000000
-RDATE:19120101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Africa/Lome.ics b/libkcal/libical/zoneinfo/Africa/Lome.ics
deleted file mode 100644
index 8b535f82..00000000
--- a/libkcal/libical/zoneinfo/Africa/Lome.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/Lome
-X-LIC-LOCATION:Africa/Lome
-BEGIN:STANDARD
-TZOFFSETFROM:+000452
-TZOFFSETTO:+0000
-TZNAME:GMT
-DTSTART:18930101T000000
-RDATE:18930101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Africa/Luanda.ics b/libkcal/libical/zoneinfo/Africa/Luanda.ics
deleted file mode 100644
index d48392b1..00000000
--- a/libkcal/libical/zoneinfo/Africa/Luanda.ics
+++ /dev/null
@@ -1,22 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/Luanda
-X-LIC-LOCATION:Africa/Luanda
-BEGIN:STANDARD
-TZOFFSETFROM:+005256
-TZOFFSETTO:+005204
-TZNAME:AOT
-DTSTART:18920101T000000
-RDATE:18920101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+005204
-TZOFFSETTO:+0100
-TZNAME:WAT
-DTSTART:19110526T000000
-RDATE:19110526T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Africa/Lubumbashi.ics b/libkcal/libical/zoneinfo/Africa/Lubumbashi.ics
deleted file mode 100644
index 9ea66469..00000000
--- a/libkcal/libical/zoneinfo/Africa/Lubumbashi.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/Lubumbashi
-X-LIC-LOCATION:Africa/Lubumbashi
-BEGIN:STANDARD
-TZOFFSETFROM:+014952
-TZOFFSETTO:+0200
-TZNAME:CAT
-DTSTART:18971109T000000
-RDATE:18971109T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Africa/Lusaka.ics b/libkcal/libical/zoneinfo/Africa/Lusaka.ics
deleted file mode 100644
index 9f2c43aa..00000000
--- a/libkcal/libical/zoneinfo/Africa/Lusaka.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/Lusaka
-X-LIC-LOCATION:Africa/Lusaka
-BEGIN:STANDARD
-TZOFFSETFROM:+015308
-TZOFFSETTO:+0200
-TZNAME:CAT
-DTSTART:19030301T000000
-RDATE:19030301T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Africa/Malabo.ics b/libkcal/libical/zoneinfo/Africa/Malabo.ics
deleted file mode 100644
index 0f057dfb..00000000
--- a/libkcal/libical/zoneinfo/Africa/Malabo.ics
+++ /dev/null
@@ -1,22 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/Malabo
-X-LIC-LOCATION:Africa/Malabo
-BEGIN:STANDARD
-TZOFFSETFROM:+003508
-TZOFFSETTO:+0000
-TZNAME:GMT
-DTSTART:19120101T000000
-RDATE:19120101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0100
-TZNAME:WAT
-DTSTART:19631215T000000
-RDATE:19631215T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Africa/Maputo.ics b/libkcal/libical/zoneinfo/Africa/Maputo.ics
deleted file mode 100644
index 63cfe3ae..00000000
--- a/libkcal/libical/zoneinfo/Africa/Maputo.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/Maputo
-X-LIC-LOCATION:Africa/Maputo
-BEGIN:STANDARD
-TZOFFSETFROM:+021020
-TZOFFSETTO:+0200
-TZNAME:CAT
-DTSTART:19030301T000000
-RDATE:19030301T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Africa/Maseru.ics b/libkcal/libical/zoneinfo/Africa/Maseru.ics
deleted file mode 100644
index ea185e3f..00000000
--- a/libkcal/libical/zoneinfo/Africa/Maseru.ics
+++ /dev/null
@@ -1,29 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/Maseru
-X-LIC-LOCATION:Africa/Maseru
-BEGIN:STANDARD
-TZOFFSETFROM:+0150
-TZOFFSETTO:+0200
-TZNAME:SAST
-DTSTART:19030301T000000
-RDATE:19030301T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:SAST
-DTSTART:19430919T020000
-RDATE:19430919T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:SAST
-DTSTART:19440319T020000
-RDATE:19440319T020000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Africa/Mbabane.ics b/libkcal/libical/zoneinfo/Africa/Mbabane.ics
deleted file mode 100644
index 808b6a7a..00000000
--- a/libkcal/libical/zoneinfo/Africa/Mbabane.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/Mbabane
-X-LIC-LOCATION:Africa/Mbabane
-BEGIN:STANDARD
-TZOFFSETFROM:+020424
-TZOFFSETTO:+0200
-TZNAME:SAST
-DTSTART:19030301T000000
-RDATE:19030301T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Africa/Mogadishu.ics b/libkcal/libical/zoneinfo/Africa/Mogadishu.ics
deleted file mode 100644
index 941a65ae..00000000
--- a/libkcal/libical/zoneinfo/Africa/Mogadishu.ics
+++ /dev/null
@@ -1,29 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/Mogadishu
-X-LIC-LOCATION:Africa/Mogadishu
-BEGIN:STANDARD
-TZOFFSETFROM:+030128
-TZOFFSETTO:+0300
-TZNAME:EAT
-DTSTART:18931101T000000
-RDATE:18931101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0230
-TZNAME:BEAT
-DTSTART:19310101T000000
-RDATE:19310101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0230
-TZOFFSETTO:+0300
-TZNAME:EAT
-DTSTART:19570101T000000
-RDATE:19570101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Africa/Monrovia.ics b/libkcal/libical/zoneinfo/Africa/Monrovia.ics
deleted file mode 100644
index 9a36a003..00000000
--- a/libkcal/libical/zoneinfo/Africa/Monrovia.ics
+++ /dev/null
@@ -1,29 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/Monrovia
-X-LIC-LOCATION:Africa/Monrovia
-BEGIN:STANDARD
-TZOFFSETFROM:-004308
-TZOFFSETTO:-004308
-TZNAME:MMT
-DTSTART:18820101T000000
-RDATE:18820101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-004308
-TZOFFSETTO:-004430
-TZNAME:LRT
-DTSTART:19190301T000000
-RDATE:19190301T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-004430
-TZOFFSETTO:+0000
-TZNAME:GMT
-DTSTART:19720501T000000
-RDATE:19720501T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Africa/Nairobi.ics b/libkcal/libical/zoneinfo/Africa/Nairobi.ics
deleted file mode 100644
index a9b3c728..00000000
--- a/libkcal/libical/zoneinfo/Africa/Nairobi.ics
+++ /dev/null
@@ -1,36 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/Nairobi
-X-LIC-LOCATION:Africa/Nairobi
-BEGIN:STANDARD
-TZOFFSETFROM:+022716
-TZOFFSETTO:+0300
-TZNAME:EAT
-DTSTART:19280701T000000
-RDATE:19280701T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0230
-TZNAME:BEAT
-DTSTART:19300101T000000
-RDATE:19300101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0230
-TZOFFSETTO:+024445
-TZNAME:BEAUT
-DTSTART:19400101T000000
-RDATE:19400101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+024445
-TZOFFSETTO:+0300
-TZNAME:EAT
-DTSTART:19600101T000000
-RDATE:19600101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Africa/Ndjamena.ics b/libkcal/libical/zoneinfo/Africa/Ndjamena.ics
deleted file mode 100644
index afb48661..00000000
--- a/libkcal/libical/zoneinfo/Africa/Ndjamena.ics
+++ /dev/null
@@ -1,29 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/Ndjamena
-X-LIC-LOCATION:Africa/Ndjamena
-BEGIN:STANDARD
-TZOFFSETFROM:+010012
-TZOFFSETTO:+0100
-TZNAME:WAT
-DTSTART:19120101T000000
-RDATE:19120101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:WAST
-DTSTART:19791014T000000
-RDATE:19791014T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:WAT
-DTSTART:19800308T000000
-RDATE:19800308T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Africa/Niamey.ics b/libkcal/libical/zoneinfo/Africa/Niamey.ics
deleted file mode 100644
index 09248ce9..00000000
--- a/libkcal/libical/zoneinfo/Africa/Niamey.ics
+++ /dev/null
@@ -1,29 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/Niamey
-X-LIC-LOCATION:Africa/Niamey
-BEGIN:STANDARD
-TZOFFSETFROM:+000828
-TZOFFSETTO:-0100
-TZNAME:WAT
-DTSTART:19120101T000000
-RDATE:19120101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0100
-TZOFFSETTO:+0000
-TZNAME:GMT
-DTSTART:19340226T000000
-RDATE:19340226T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0100
-TZNAME:WAT
-DTSTART:19600101T000000
-RDATE:19600101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Africa/Nouakchott.ics b/libkcal/libical/zoneinfo/Africa/Nouakchott.ics
deleted file mode 100644
index 4ee701a2..00000000
--- a/libkcal/libical/zoneinfo/Africa/Nouakchott.ics
+++ /dev/null
@@ -1,29 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/Nouakchott
-X-LIC-LOCATION:Africa/Nouakchott
-BEGIN:STANDARD
-TZOFFSETFROM:-010348
-TZOFFSETTO:+0000
-TZNAME:GMT
-DTSTART:19120101T000000
-RDATE:19120101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0000
-TZOFFSETTO:-0100
-TZNAME:WAT
-DTSTART:19340226T000000
-RDATE:19340226T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0100
-TZOFFSETTO:+0000
-TZNAME:GMT
-DTSTART:19601128T000000
-RDATE:19601128T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Africa/Ouagadougou.ics b/libkcal/libical/zoneinfo/Africa/Ouagadougou.ics
deleted file mode 100644
index 5e6d2256..00000000
--- a/libkcal/libical/zoneinfo/Africa/Ouagadougou.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/Ouagadougou
-X-LIC-LOCATION:Africa/Ouagadougou
-BEGIN:STANDARD
-TZOFFSETFROM:-000604
-TZOFFSETTO:+0000
-TZNAME:GMT
-DTSTART:19120101T000000
-RDATE:19120101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Africa/Porto-Novo.ics b/libkcal/libical/zoneinfo/Africa/Porto-Novo.ics
deleted file mode 100644
index 60dec201..00000000
--- a/libkcal/libical/zoneinfo/Africa/Porto-Novo.ics
+++ /dev/null
@@ -1,22 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/Porto-Novo
-X-LIC-LOCATION:Africa/Porto-Novo
-BEGIN:STANDARD
-TZOFFSETFROM:+001028
-TZOFFSETTO:+0000
-TZNAME:GMT
-DTSTART:19120101T000000
-RDATE:19120101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0100
-TZNAME:WAT
-DTSTART:19340226T000000
-RDATE:19340226T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Africa/Sao_Tome.ics b/libkcal/libical/zoneinfo/Africa/Sao_Tome.ics
deleted file mode 100644
index 9135c17a..00000000
--- a/libkcal/libical/zoneinfo/Africa/Sao_Tome.ics
+++ /dev/null
@@ -1,22 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/Sao_Tome
-X-LIC-LOCATION:Africa/Sao_Tome
-BEGIN:STANDARD
-TZOFFSETFROM:+002656
-TZOFFSETTO:-003632
-TZNAME:LMT
-DTSTART:18840101T000000
-RDATE:18840101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-003632
-TZOFFSETTO:+0000
-TZNAME:GMT
-DTSTART:19120101T000000
-RDATE:19120101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Africa/Tripoli.ics b/libkcal/libical/zoneinfo/Africa/Tripoli.ics
deleted file mode 100644
index 0398b040..00000000
--- a/libkcal/libical/zoneinfo/Africa/Tripoli.ics
+++ /dev/null
@@ -1,67 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/Tripoli
-X-LIC-LOCATION:Africa/Tripoli
-BEGIN:STANDARD
-TZOFFSETFROM:+005244
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19200101T000000
-RDATE:19200101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19511014T020000
-RDATE:19511014T020000
-RDATE:19531009T020000
-RDATE:19550930T000000
-RDATE:19820401T000000
-RDATE:19830401T000000
-RDATE:19840401T000000
-RDATE:19850406T000000
-RDATE:19860404T000000
-RDATE:19870401T000000
-RDATE:19880401T000000
-RDATE:19890401T000000
-RDATE:19970404T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19520101T000000
-RDATE:19520101T000000
-RDATE:19540101T000000
-RDATE:19560101T000000
-RDATE:19820101T000000
-RDATE:19821001T000000
-RDATE:19831001T000000
-RDATE:19841001T000000
-RDATE:19851001T000000
-RDATE:19861003T000000
-RDATE:19871001T000000
-RDATE:19881001T000000
-RDATE:19891001T000000
-RDATE:19960930T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19590101T000000
-RDATE:19590101T000000
-RDATE:19900504T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19971004T000000
-RDATE:19971004T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Africa/Tunis.ics b/libkcal/libical/zoneinfo/Africa/Tunis.ics
deleted file mode 100644
index 6029fff7..00000000
--- a/libkcal/libical/zoneinfo/Africa/Tunis.ics
+++ /dev/null
@@ -1,74 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/Tunis
-X-LIC-LOCATION:Africa/Tunis
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:20060326T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:20061029T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+004044
-TZOFFSETTO:+000921
-TZNAME:PMT
-DTSTART:18810512T000000
-RDATE:18810512T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+000921
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19110311T000000
-RDATE:19110311T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19390415T230000
-RDATE:19390415T230000
-RDATE:19400225T230000
-RDATE:19420309T000000
-RDATE:19430329T020000
-RDATE:19430425T020000
-RDATE:19440403T020000
-RDATE:19450402T020000
-RDATE:19770430T000000
-RDATE:19780501T000000
-RDATE:19880601T000000
-RDATE:19890326T000000
-RDATE:19900501T000000
-RDATE:20050501T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19391119T000000
-RDATE:19391119T000000
-RDATE:19411006T000000
-RDATE:19421102T030000
-RDATE:19430417T020000
-RDATE:19431004T020000
-RDATE:19441008T000000
-RDATE:19450916T000000
-RDATE:19770924T010000
-RDATE:19781001T010000
-RDATE:19880925T010000
-RDATE:19890924T010000
-RDATE:19900930T010000
-RDATE:20050930T020000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Africa/Windhoek.ics b/libkcal/libical/zoneinfo/Africa/Windhoek.ics
deleted file mode 100644
index b9faf0bf..00000000
--- a/libkcal/libical/zoneinfo/Africa/Windhoek.ics
+++ /dev/null
@@ -1,64 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Africa/Windhoek
-X-LIC-LOCATION:Africa/Windhoek
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:WAST
-DTSTART:19940904T020000
-RRULE:FREQ=YEARLY;BYMONTH=9;BYDAY=1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:WAT
-DTSTART:19950402T020000
-RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+010824
-TZOFFSETTO:+0130
-TZNAME:SWAT
-DTSTART:18920208T000000
-RDATE:18920208T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0130
-TZOFFSETTO:+0200
-TZNAME:SAST
-DTSTART:19030301T000000
-RDATE:19030301T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:SAST
-DTSTART:19420920T020000
-RDATE:19420920T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:SAST
-DTSTART:19430321T020000
-RDATE:19430321T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0200
-TZNAME:CAT
-DTSTART:19900321T000000
-RDATE:19900321T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:WAT
-DTSTART:19940403T000000
-RDATE:19940403T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Adak.ics b/libkcal/libical/zoneinfo/America/Adak.ics
deleted file mode 100644
index 2350c268..00000000
--- a/libkcal/libical/zoneinfo/America/Adak.ics
+++ /dev/null
@@ -1,186 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Adak
-X-LIC-LOCATION:America/Adak
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-1000
-TZOFFSETTO:-0900
-TZNAME:HADT
-DTSTART:20070311T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0900
-TZOFFSETTO:-1000
-TZNAME:HAST
-DTSTART:20071104T020000
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+121321
-TZOFFSETTO:-114638
-TZNAME:LMT
-DTSTART:18671018T000000
-RDATE:18671018T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-114638
-TZOFFSETTO:-1100
-TZNAME:NST
-DTSTART:19000820T120000
-RDATE:19000820T120000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-1100
-TZOFFSETTO:-1100
-TZNAME:NST
-DTSTART:19420101T000000
-RDATE:19420101T000000
-RDATE:19460101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-1100
-TZOFFSETTO:-1000
-TZNAME:NWT
-DTSTART:19420209T020000
-RDATE:19420209T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-1000
-TZOFFSETTO:-1000
-TZNAME:NPT
-DTSTART:19450814T130000
-RDATE:19450814T130000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-1000
-TZOFFSETTO:-1100
-TZNAME:NST
-DTSTART:19450930T020000
-RDATE:19450930T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-1100
-TZOFFSETTO:-1100
-TZNAME:BST
-DTSTART:19670401T000000
-RDATE:19670401T000000
-RDATE:19690101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-1100
-TZOFFSETTO:-1000
-TZNAME:BDT
-DTSTART:19690427T020000
-RDATE:19690427T020000
-RDATE:19700426T020000
-RDATE:19710425T020000
-RDATE:19720430T020000
-RDATE:19730429T020000
-RDATE:19740106T020000
-RDATE:19750223T020000
-RDATE:19760425T020000
-RDATE:19770424T020000
-RDATE:19780430T020000
-RDATE:19790429T020000
-RDATE:19800427T020000
-RDATE:19810426T020000
-RDATE:19820425T020000
-RDATE:19830424T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-1000
-TZOFFSETTO:-1100
-TZNAME:BST
-DTSTART:19691026T020000
-RDATE:19691026T020000
-RDATE:19701025T020000
-RDATE:19711031T020000
-RDATE:19721029T020000
-RDATE:19731028T020000
-RDATE:19741027T020000
-RDATE:19751026T020000
-RDATE:19761031T020000
-RDATE:19771030T020000
-RDATE:19781029T020000
-RDATE:19791028T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-1000
-TZOFFSETTO:-1000
-TZNAME:AHST
-DTSTART:19831030T020000
-RDATE:19831030T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-1000
-TZOFFSETTO:-1000
-TZNAME:HAST
-DTSTART:19831130T000000
-RDATE:19831130T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-1000
-TZOFFSETTO:-0900
-TZNAME:HADT
-DTSTART:19840429T020000
-RDATE:19840429T020000
-RDATE:19850428T020000
-RDATE:19860427T020000
-RDATE:19870405T020000
-RDATE:19880403T020000
-RDATE:19890402T020000
-RDATE:19900401T020000
-RDATE:19910407T020000
-RDATE:19920405T020000
-RDATE:19930404T020000
-RDATE:19940403T020000
-RDATE:19950402T020000
-RDATE:19960407T020000
-RDATE:19970406T020000
-RDATE:19980405T020000
-RDATE:19990404T020000
-RDATE:20000402T020000
-RDATE:20010401T020000
-RDATE:20020407T020000
-RDATE:20030406T020000
-RDATE:20040404T020000
-RDATE:20050403T020000
-RDATE:20060402T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0900
-TZOFFSETTO:-1000
-TZNAME:HAST
-DTSTART:19841028T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861026T020000
-RDATE:19871025T020000
-RDATE:19881030T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931031T020000
-RDATE:19941030T020000
-RDATE:19951029T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:19991031T020000
-RDATE:20001029T020000
-RDATE:20011028T020000
-RDATE:20021027T020000
-RDATE:20031026T020000
-RDATE:20041031T020000
-RDATE:20051030T020000
-RDATE:20061029T020000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Anchorage.ics b/libkcal/libical/zoneinfo/America/Anchorage.ics
deleted file mode 100644
index d3c83bed..00000000
--- a/libkcal/libical/zoneinfo/America/Anchorage.ics
+++ /dev/null
@@ -1,186 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Anchorage
-X-LIC-LOCATION:America/Anchorage
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0900
-TZOFFSETTO:-0800
-TZNAME:AKDT
-DTSTART:20070311T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0800
-TZOFFSETTO:-0900
-TZNAME:AKST
-DTSTART:20071104T020000
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+140024
-TZOFFSETTO:-095936
-TZNAME:LMT
-DTSTART:18671018T000000
-RDATE:18671018T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-095936
-TZOFFSETTO:-1000
-TZNAME:CAT
-DTSTART:19000820T120000
-RDATE:19000820T120000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-1000
-TZOFFSETTO:-1000
-TZNAME:CAT
-DTSTART:19420101T000000
-RDATE:19420101T000000
-RDATE:19460101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-1000
-TZOFFSETTO:-0900
-TZNAME:CAWT
-DTSTART:19420209T020000
-RDATE:19420209T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0900
-TZOFFSETTO:-0900
-TZNAME:CAPT
-DTSTART:19450814T140000
-RDATE:19450814T140000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0900
-TZOFFSETTO:-1000
-TZNAME:CAT
-DTSTART:19450930T020000
-RDATE:19450930T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-1000
-TZOFFSETTO:-1000
-TZNAME:AHST
-DTSTART:19670401T000000
-RDATE:19670401T000000
-RDATE:19690101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-1000
-TZOFFSETTO:-0900
-TZNAME:AHDT
-DTSTART:19690427T020000
-RDATE:19690427T020000
-RDATE:19700426T020000
-RDATE:19710425T020000
-RDATE:19720430T020000
-RDATE:19730429T020000
-RDATE:19740106T020000
-RDATE:19750223T020000
-RDATE:19760425T020000
-RDATE:19770424T020000
-RDATE:19780430T020000
-RDATE:19790429T020000
-RDATE:19800427T020000
-RDATE:19810426T020000
-RDATE:19820425T020000
-RDATE:19830424T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0900
-TZOFFSETTO:-1000
-TZNAME:AHST
-DTSTART:19691026T020000
-RDATE:19691026T020000
-RDATE:19701025T020000
-RDATE:19711031T020000
-RDATE:19721029T020000
-RDATE:19731028T020000
-RDATE:19741027T020000
-RDATE:19751026T020000
-RDATE:19761031T020000
-RDATE:19771030T020000
-RDATE:19781029T020000
-RDATE:19791028T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0900
-TZOFFSETTO:-0900
-TZNAME:YST
-DTSTART:19831030T020000
-RDATE:19831030T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0900
-TZOFFSETTO:-0900
-TZNAME:AKST
-DTSTART:19831130T000000
-RDATE:19831130T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0900
-TZOFFSETTO:-0800
-TZNAME:AKDT
-DTSTART:19840429T020000
-RDATE:19840429T020000
-RDATE:19850428T020000
-RDATE:19860427T020000
-RDATE:19870405T020000
-RDATE:19880403T020000
-RDATE:19890402T020000
-RDATE:19900401T020000
-RDATE:19910407T020000
-RDATE:19920405T020000
-RDATE:19930404T020000
-RDATE:19940403T020000
-RDATE:19950402T020000
-RDATE:19960407T020000
-RDATE:19970406T020000
-RDATE:19980405T020000
-RDATE:19990404T020000
-RDATE:20000402T020000
-RDATE:20010401T020000
-RDATE:20020407T020000
-RDATE:20030406T020000
-RDATE:20040404T020000
-RDATE:20050403T020000
-RDATE:20060402T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0800
-TZOFFSETTO:-0900
-TZNAME:AKST
-DTSTART:19841028T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861026T020000
-RDATE:19871025T020000
-RDATE:19881030T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931031T020000
-RDATE:19941030T020000
-RDATE:19951029T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:19991031T020000
-RDATE:20001029T020000
-RDATE:20011028T020000
-RDATE:20021027T020000
-RDATE:20031026T020000
-RDATE:20041031T020000
-RDATE:20051030T020000
-RDATE:20061029T020000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Anguilla.ics b/libkcal/libical/zoneinfo/America/Anguilla.ics
deleted file mode 100644
index 040235f8..00000000
--- a/libkcal/libical/zoneinfo/America/Anguilla.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Anguilla
-X-LIC-LOCATION:America/Anguilla
-BEGIN:STANDARD
-TZOFFSETFROM:-041216
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:19120302T000000
-RDATE:19120302T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Antigua.ics b/libkcal/libical/zoneinfo/America/Antigua.ics
deleted file mode 100644
index bb999579..00000000
--- a/libkcal/libical/zoneinfo/America/Antigua.ics
+++ /dev/null
@@ -1,22 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Antigua
-X-LIC-LOCATION:America/Antigua
-BEGIN:STANDARD
-TZOFFSETFROM:-040712
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19120302T000000
-RDATE:19120302T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:19510101T000000
-RDATE:19510101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Araguaina.ics b/libkcal/libical/zoneinfo/America/Araguaina.ics
deleted file mode 100644
index 7bb34fba..00000000
--- a/libkcal/libical/zoneinfo/America/Araguaina.ics
+++ /dev/null
@@ -1,84 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Araguaina
-X-LIC-LOCATION:America/Araguaina
-BEGIN:STANDARD
-TZOFFSETFROM:-031248
-TZOFFSETTO:-0300
-TZNAME:BRT
-DTSTART:19140101T000000
-RDATE:19140101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0200
-TZNAME:BRST
-DTSTART:19311003T110000
-RDATE:19311003T110000
-RDATE:19321003T000000
-RDATE:19491201T000000
-RDATE:19501201T000000
-RDATE:19511201T000000
-RDATE:19521201T000000
-RDATE:19631209T000000
-RDATE:19650131T000000
-RDATE:19651201T000000
-RDATE:19661101T000000
-RDATE:19671101T000000
-RDATE:19851102T000000
-RDATE:19861025T000000
-RDATE:19871025T000000
-RDATE:19881016T000000
-RDATE:19891015T000000
-RDATE:19951015T000000
-RDATE:19961006T000000
-RDATE:19971006T000000
-RDATE:19981011T000000
-RDATE:19991003T000000
-RDATE:20001008T000000
-RDATE:20011014T000000
-RDATE:20021103T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0300
-TZNAME:BRT
-DTSTART:19320401T000000
-RDATE:19320401T000000
-RDATE:19330401T000000
-RDATE:19500416T010000
-RDATE:19510401T000000
-RDATE:19520401T000000
-RDATE:19530301T000000
-RDATE:19640301T000000
-RDATE:19650331T000000
-RDATE:19660301T000000
-RDATE:19670301T000000
-RDATE:19680301T000000
-RDATE:19860315T000000
-RDATE:19870214T000000
-RDATE:19880207T000000
-RDATE:19890129T000000
-RDATE:19900211T000000
-RDATE:19960211T000000
-RDATE:19970216T000000
-RDATE:19980301T000000
-RDATE:19990221T000000
-RDATE:20000227T000000
-RDATE:20010218T000000
-RDATE:20020217T000000
-RDATE:20030216T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0300
-TZNAME:BRT
-DTSTART:19900917T000000
-RDATE:19900917T000000
-RDATE:19950914T000000
-RDATE:20030924T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Argentina/Buenos_Aires.ics b/libkcal/libical/zoneinfo/America/Argentina/Buenos_Aires.ics
deleted file mode 100644
index 0a53523f..00000000
--- a/libkcal/libical/zoneinfo/America/Argentina/Buenos_Aires.ics
+++ /dev/null
@@ -1,134 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Argentina/Buenos_Aires
-X-LIC-LOCATION:America/Argentina/Buenos_Aires
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0300
-TZNAME:ART
-DTSTART:20080316T000000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=3SU
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0200
-TZNAME:ARST
-DTSTART:20081005T000000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-035348
-TZOFFSETTO:-041648
-TZNAME:CMT
-DTSTART:18941031T000000
-RDATE:18941031T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-041648
-TZOFFSETTO:-0400
-TZNAME:ART
-DTSTART:19200501T000000
-RDATE:19200501T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:ARST
-DTSTART:19301201T000000
-RDATE:19301201T000000
-RDATE:19311015T000000
-RDATE:19321101T000000
-RDATE:19331101T000000
-RDATE:19341101T000000
-RDATE:19351101T000000
-RDATE:19361101T000000
-RDATE:19371101T000000
-RDATE:19381101T000000
-RDATE:19391101T000000
-RDATE:19400701T000000
-RDATE:19411015T000000
-RDATE:19431015T000000
-RDATE:19461001T000000
-RDATE:19631215T000000
-RDATE:19641015T000000
-RDATE:19651015T000000
-RDATE:19661015T000000
-RDATE:19671001T000000
-RDATE:19681006T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:ART
-DTSTART:19310401T000000
-RDATE:19310401T000000
-RDATE:19320301T000000
-RDATE:19330301T000000
-RDATE:19340301T000000
-RDATE:19350301T000000
-RDATE:19360301T000000
-RDATE:19370301T000000
-RDATE:19380301T000000
-RDATE:19390301T000000
-RDATE:19400301T000000
-RDATE:19410615T000000
-RDATE:19430801T000000
-RDATE:19460301T000000
-RDATE:19631001T000000
-RDATE:19640301T000000
-RDATE:19650301T000000
-RDATE:19660301T000000
-RDATE:19670402T000000
-RDATE:19680407T000000
-RDATE:19690406T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:ART
-DTSTART:19691005T000000
-RDATE:19691005T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0200
-TZNAME:ARST
-DTSTART:19740123T000000
-RDATE:19740123T000000
-RDATE:19881201T000000
-RDATE:19891015T000000
-RDATE:19901021T000000
-RDATE:19911020T000000
-RDATE:19921018T000000
-RDATE:20071230T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0300
-TZNAME:ART
-DTSTART:19740501T000000
-RDATE:19740501T000000
-RDATE:19890305T000000
-RDATE:19900304T000000
-RDATE:19910303T000000
-RDATE:19920301T000000
-RDATE:19930307T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0300
-TZNAME:ARST
-DTSTART:19991003T000000
-RDATE:19991003T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0300
-TZNAME:ART
-DTSTART:20000303T000000
-RDATE:20000303T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Argentina/Catamarca.ics b/libkcal/libical/zoneinfo/America/Argentina/Catamarca.ics
deleted file mode 100644
index 362f94d4..00000000
--- a/libkcal/libical/zoneinfo/America/Argentina/Catamarca.ics
+++ /dev/null
@@ -1,154 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Argentina/Catamarca
-X-LIC-LOCATION:America/Argentina/Catamarca
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0300
-TZNAME:ART
-DTSTART:20080316T000000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=3SU
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0200
-TZNAME:ARST
-DTSTART:20081005T000000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-042308
-TZOFFSETTO:-041648
-TZNAME:CMT
-DTSTART:18941031T000000
-RDATE:18941031T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-041648
-TZOFFSETTO:-0400
-TZNAME:ART
-DTSTART:19200501T000000
-RDATE:19200501T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:ARST
-DTSTART:19301201T000000
-RDATE:19301201T000000
-RDATE:19311015T000000
-RDATE:19321101T000000
-RDATE:19331101T000000
-RDATE:19341101T000000
-RDATE:19351101T000000
-RDATE:19361101T000000
-RDATE:19371101T000000
-RDATE:19381101T000000
-RDATE:19391101T000000
-RDATE:19400701T000000
-RDATE:19411015T000000
-RDATE:19431015T000000
-RDATE:19461001T000000
-RDATE:19631215T000000
-RDATE:19641015T000000
-RDATE:19651015T000000
-RDATE:19661015T000000
-RDATE:19671001T000000
-RDATE:19681006T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:ART
-DTSTART:19310401T000000
-RDATE:19310401T000000
-RDATE:19320301T000000
-RDATE:19330301T000000
-RDATE:19340301T000000
-RDATE:19350301T000000
-RDATE:19360301T000000
-RDATE:19370301T000000
-RDATE:19380301T000000
-RDATE:19390301T000000
-RDATE:19400301T000000
-RDATE:19410615T000000
-RDATE:19430801T000000
-RDATE:19460301T000000
-RDATE:19631001T000000
-RDATE:19640301T000000
-RDATE:19650301T000000
-RDATE:19660301T000000
-RDATE:19670402T000000
-RDATE:19680407T000000
-RDATE:19690406T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:ART
-DTSTART:19691005T000000
-RDATE:19691005T000000
-RDATE:20040620T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0200
-TZNAME:ARST
-DTSTART:19740123T000000
-RDATE:19740123T000000
-RDATE:19881201T000000
-RDATE:19891015T000000
-RDATE:19901021T000000
-RDATE:19921018T000000
-RDATE:20071230T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0300
-TZNAME:ART
-DTSTART:19740501T000000
-RDATE:19740501T000000
-RDATE:19890305T000000
-RDATE:19900304T000000
-RDATE:19920301T000000
-RDATE:19930307T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0400
-TZNAME:WART
-DTSTART:19910303T000000
-RDATE:19910303T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0200
-TZNAME:ARST
-DTSTART:19911020T000000
-RDATE:19911020T000000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0300
-TZNAME:ARST
-DTSTART:19991003T000000
-RDATE:19991003T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0300
-TZNAME:ART
-DTSTART:20000303T000000
-RDATE:20000303T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:WART
-DTSTART:20040601T000000
-RDATE:20040601T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Argentina/Cordoba.ics b/libkcal/libical/zoneinfo/America/Argentina/Cordoba.ics
deleted file mode 100644
index 923fcafc..00000000
--- a/libkcal/libical/zoneinfo/America/Argentina/Cordoba.ics
+++ /dev/null
@@ -1,146 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Argentina/Cordoba
-X-LIC-LOCATION:America/Argentina/Cordoba
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0300
-TZNAME:ART
-DTSTART:20080316T000000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=3SU
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0200
-TZNAME:ARST
-DTSTART:20081005T000000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-041648
-TZOFFSETTO:-041648
-TZNAME:CMT
-DTSTART:18941031T000000
-RDATE:18941031T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-041648
-TZOFFSETTO:-0400
-TZNAME:ART
-DTSTART:19200501T000000
-RDATE:19200501T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:ARST
-DTSTART:19301201T000000
-RDATE:19301201T000000
-RDATE:19311015T000000
-RDATE:19321101T000000
-RDATE:19331101T000000
-RDATE:19341101T000000
-RDATE:19351101T000000
-RDATE:19361101T000000
-RDATE:19371101T000000
-RDATE:19381101T000000
-RDATE:19391101T000000
-RDATE:19400701T000000
-RDATE:19411015T000000
-RDATE:19431015T000000
-RDATE:19461001T000000
-RDATE:19631215T000000
-RDATE:19641015T000000
-RDATE:19651015T000000
-RDATE:19661015T000000
-RDATE:19671001T000000
-RDATE:19681006T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:ART
-DTSTART:19310401T000000
-RDATE:19310401T000000
-RDATE:19320301T000000
-RDATE:19330301T000000
-RDATE:19340301T000000
-RDATE:19350301T000000
-RDATE:19360301T000000
-RDATE:19370301T000000
-RDATE:19380301T000000
-RDATE:19390301T000000
-RDATE:19400301T000000
-RDATE:19410615T000000
-RDATE:19430801T000000
-RDATE:19460301T000000
-RDATE:19631001T000000
-RDATE:19640301T000000
-RDATE:19650301T000000
-RDATE:19660301T000000
-RDATE:19670402T000000
-RDATE:19680407T000000
-RDATE:19690406T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:ART
-DTSTART:19691005T000000
-RDATE:19691005T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0200
-TZNAME:ARST
-DTSTART:19740123T000000
-RDATE:19740123T000000
-RDATE:19881201T000000
-RDATE:19891015T000000
-RDATE:19901021T000000
-RDATE:19921018T000000
-RDATE:20071230T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0300
-TZNAME:ART
-DTSTART:19740501T000000
-RDATE:19740501T000000
-RDATE:19890305T000000
-RDATE:19900304T000000
-RDATE:19920301T000000
-RDATE:19930307T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0400
-TZNAME:WART
-DTSTART:19910303T000000
-RDATE:19910303T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0200
-TZNAME:ARST
-DTSTART:19911020T000000
-RDATE:19911020T000000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0300
-TZNAME:ARST
-DTSTART:19991003T000000
-RDATE:19991003T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0300
-TZNAME:ART
-DTSTART:20000303T000000
-RDATE:20000303T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Argentina/Jujuy.ics b/libkcal/libical/zoneinfo/America/Argentina/Jujuy.ics
deleted file mode 100644
index f3fc0abe..00000000
--- a/libkcal/libical/zoneinfo/America/Argentina/Jujuy.ics
+++ /dev/null
@@ -1,165 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Argentina/Jujuy
-X-LIC-LOCATION:America/Argentina/Jujuy
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0300
-TZNAME:ART
-DTSTART:20080316T000000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=3SU
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0200
-TZNAME:ARST
-DTSTART:20081005T000000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-042112
-TZOFFSETTO:-041648
-TZNAME:CMT
-DTSTART:18941031T000000
-RDATE:18941031T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-041648
-TZOFFSETTO:-0400
-TZNAME:ART
-DTSTART:19200501T000000
-RDATE:19200501T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:ARST
-DTSTART:19301201T000000
-RDATE:19301201T000000
-RDATE:19311015T000000
-RDATE:19321101T000000
-RDATE:19331101T000000
-RDATE:19341101T000000
-RDATE:19351101T000000
-RDATE:19361101T000000
-RDATE:19371101T000000
-RDATE:19381101T000000
-RDATE:19391101T000000
-RDATE:19400701T000000
-RDATE:19411015T000000
-RDATE:19431015T000000
-RDATE:19461001T000000
-RDATE:19631215T000000
-RDATE:19641015T000000
-RDATE:19651015T000000
-RDATE:19661015T000000
-RDATE:19671001T000000
-RDATE:19681006T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:ART
-DTSTART:19310401T000000
-RDATE:19310401T000000
-RDATE:19320301T000000
-RDATE:19330301T000000
-RDATE:19340301T000000
-RDATE:19350301T000000
-RDATE:19360301T000000
-RDATE:19370301T000000
-RDATE:19380301T000000
-RDATE:19390301T000000
-RDATE:19400301T000000
-RDATE:19410615T000000
-RDATE:19430801T000000
-RDATE:19460301T000000
-RDATE:19631001T000000
-RDATE:19640301T000000
-RDATE:19650301T000000
-RDATE:19660301T000000
-RDATE:19670402T000000
-RDATE:19680407T000000
-RDATE:19690406T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:ART
-DTSTART:19691005T000000
-RDATE:19691005T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0200
-TZNAME:ARST
-DTSTART:19740123T000000
-RDATE:19740123T000000
-RDATE:19881201T000000
-RDATE:19891015T000000
-RDATE:19921018T000000
-RDATE:20071230T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0300
-TZNAME:ART
-DTSTART:19740501T000000
-RDATE:19740501T000000
-RDATE:19890305T000000
-RDATE:19920301T000000
-RDATE:19930307T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0400
-TZNAME:WART
-DTSTART:19900304T000000
-RDATE:19900304T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:WARST
-DTSTART:19901028T000000
-RDATE:19901028T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:WART
-DTSTART:19910317T000000
-RDATE:19910317T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0200
-TZNAME:ARST
-DTSTART:19911006T000000
-RDATE:19911006T000000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0200
-TZNAME:ARST
-DTSTART:19920101T000000
-RDATE:19920101T000000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0300
-TZNAME:ARST
-DTSTART:19991003T000000
-RDATE:19991003T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0300
-TZNAME:ART
-DTSTART:20000303T000000
-RDATE:20000303T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Argentina/La_Rioja.ics b/libkcal/libical/zoneinfo/America/Argentina/La_Rioja.ics
deleted file mode 100644
index 7a0b3bc5..00000000
--- a/libkcal/libical/zoneinfo/America/Argentina/La_Rioja.ics
+++ /dev/null
@@ -1,149 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Argentina/La_Rioja
-X-LIC-LOCATION:America/Argentina/La_Rioja
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0300
-TZNAME:ART
-DTSTART:20080316T000000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=3SU
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0200
-TZNAME:ARST
-DTSTART:20081005T000000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-042724
-TZOFFSETTO:-041648
-TZNAME:CMT
-DTSTART:18941031T000000
-RDATE:18941031T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-041648
-TZOFFSETTO:-0400
-TZNAME:ART
-DTSTART:19200501T000000
-RDATE:19200501T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:ARST
-DTSTART:19301201T000000
-RDATE:19301201T000000
-RDATE:19311015T000000
-RDATE:19321101T000000
-RDATE:19331101T000000
-RDATE:19341101T000000
-RDATE:19351101T000000
-RDATE:19361101T000000
-RDATE:19371101T000000
-RDATE:19381101T000000
-RDATE:19391101T000000
-RDATE:19400701T000000
-RDATE:19411015T000000
-RDATE:19431015T000000
-RDATE:19461001T000000
-RDATE:19631215T000000
-RDATE:19641015T000000
-RDATE:19651015T000000
-RDATE:19661015T000000
-RDATE:19671001T000000
-RDATE:19681006T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:ART
-DTSTART:19310401T000000
-RDATE:19310401T000000
-RDATE:19320301T000000
-RDATE:19330301T000000
-RDATE:19340301T000000
-RDATE:19350301T000000
-RDATE:19360301T000000
-RDATE:19370301T000000
-RDATE:19380301T000000
-RDATE:19390301T000000
-RDATE:19400301T000000
-RDATE:19410615T000000
-RDATE:19430801T000000
-RDATE:19460301T000000
-RDATE:19631001T000000
-RDATE:19640301T000000
-RDATE:19650301T000000
-RDATE:19660301T000000
-RDATE:19670402T000000
-RDATE:19680407T000000
-RDATE:19690406T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:ART
-DTSTART:19691005T000000
-RDATE:19691005T000000
-RDATE:19910507T000000
-RDATE:20040620T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0200
-TZNAME:ARST
-DTSTART:19740123T000000
-RDATE:19740123T000000
-RDATE:19881201T000000
-RDATE:19891015T000000
-RDATE:19901021T000000
-RDATE:19911020T000000
-RDATE:19921018T000000
-RDATE:20071230T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0300
-TZNAME:ART
-DTSTART:19740501T000000
-RDATE:19740501T000000
-RDATE:19890305T000000
-RDATE:19900304T000000
-RDATE:19920301T000000
-RDATE:19930307T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0400
-TZNAME:WART
-DTSTART:19910301T000000
-RDATE:19910301T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0300
-TZNAME:ARST
-DTSTART:19991003T000000
-RDATE:19991003T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0300
-TZNAME:ART
-DTSTART:20000303T000000
-RDATE:20000303T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:WART
-DTSTART:20040601T000000
-RDATE:20040601T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Argentina/Mendoza.ics b/libkcal/libical/zoneinfo/America/Argentina/Mendoza.ics
deleted file mode 100644
index 43c632e7..00000000
--- a/libkcal/libical/zoneinfo/America/Argentina/Mendoza.ics
+++ /dev/null
@@ -1,160 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Argentina/Mendoza
-X-LIC-LOCATION:America/Argentina/Mendoza
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0300
-TZNAME:ART
-DTSTART:20080316T000000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=3SU
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0200
-TZNAME:ARST
-DTSTART:20081005T000000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-043516
-TZOFFSETTO:-041648
-TZNAME:CMT
-DTSTART:18941031T000000
-RDATE:18941031T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-041648
-TZOFFSETTO:-0400
-TZNAME:ART
-DTSTART:19200501T000000
-RDATE:19200501T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:ARST
-DTSTART:19301201T000000
-RDATE:19301201T000000
-RDATE:19311015T000000
-RDATE:19321101T000000
-RDATE:19331101T000000
-RDATE:19341101T000000
-RDATE:19351101T000000
-RDATE:19361101T000000
-RDATE:19371101T000000
-RDATE:19381101T000000
-RDATE:19391101T000000
-RDATE:19400701T000000
-RDATE:19411015T000000
-RDATE:19431015T000000
-RDATE:19461001T000000
-RDATE:19631215T000000
-RDATE:19641015T000000
-RDATE:19651015T000000
-RDATE:19661015T000000
-RDATE:19671001T000000
-RDATE:19681006T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:ART
-DTSTART:19310401T000000
-RDATE:19310401T000000
-RDATE:19320301T000000
-RDATE:19330301T000000
-RDATE:19340301T000000
-RDATE:19350301T000000
-RDATE:19360301T000000
-RDATE:19370301T000000
-RDATE:19380301T000000
-RDATE:19390301T000000
-RDATE:19400301T000000
-RDATE:19410615T000000
-RDATE:19430801T000000
-RDATE:19460301T000000
-RDATE:19631001T000000
-RDATE:19640301T000000
-RDATE:19650301T000000
-RDATE:19660301T000000
-RDATE:19670402T000000
-RDATE:19680407T000000
-RDATE:19690406T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:ART
-DTSTART:19691005T000000
-RDATE:19691005T000000
-RDATE:20040926T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0200
-TZNAME:ARST
-DTSTART:19740123T000000
-RDATE:19740123T000000
-RDATE:19881201T000000
-RDATE:19891015T000000
-RDATE:20071230T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0300
-TZNAME:ART
-DTSTART:19740501T000000
-RDATE:19740501T000000
-RDATE:19890305T000000
-RDATE:19930307T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0400
-TZNAME:WART
-DTSTART:19900304T000000
-RDATE:19900304T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:WARST
-DTSTART:19901015T000000
-RDATE:19901015T000000
-RDATE:19911015T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:WART
-DTSTART:19910301T000000
-RDATE:19910301T000000
-RDATE:19920301T000000
-RDATE:20040523T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0200
-TZNAME:ARST
-DTSTART:19921018T000000
-RDATE:19921018T000000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0300
-TZNAME:ARST
-DTSTART:19991003T000000
-RDATE:19991003T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0300
-TZNAME:ART
-DTSTART:20000303T000000
-RDATE:20000303T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Argentina/Rio_Gallegos.ics b/libkcal/libical/zoneinfo/America/Argentina/Rio_Gallegos.ics
deleted file mode 100644
index b2a59cd2..00000000
--- a/libkcal/libical/zoneinfo/America/Argentina/Rio_Gallegos.ics
+++ /dev/null
@@ -1,142 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Argentina/Rio_Gallegos
-X-LIC-LOCATION:America/Argentina/Rio_Gallegos
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0300
-TZNAME:ART
-DTSTART:20080316T000000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=3SU
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0200
-TZNAME:ARST
-DTSTART:20081005T000000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-043652
-TZOFFSETTO:-041648
-TZNAME:CMT
-DTSTART:18941031T000000
-RDATE:18941031T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-041648
-TZOFFSETTO:-0400
-TZNAME:ART
-DTSTART:19200501T000000
-RDATE:19200501T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:ARST
-DTSTART:19301201T000000
-RDATE:19301201T000000
-RDATE:19311015T000000
-RDATE:19321101T000000
-RDATE:19331101T000000
-RDATE:19341101T000000
-RDATE:19351101T000000
-RDATE:19361101T000000
-RDATE:19371101T000000
-RDATE:19381101T000000
-RDATE:19391101T000000
-RDATE:19400701T000000
-RDATE:19411015T000000
-RDATE:19431015T000000
-RDATE:19461001T000000
-RDATE:19631215T000000
-RDATE:19641015T000000
-RDATE:19651015T000000
-RDATE:19661015T000000
-RDATE:19671001T000000
-RDATE:19681006T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:ART
-DTSTART:19310401T000000
-RDATE:19310401T000000
-RDATE:19320301T000000
-RDATE:19330301T000000
-RDATE:19340301T000000
-RDATE:19350301T000000
-RDATE:19360301T000000
-RDATE:19370301T000000
-RDATE:19380301T000000
-RDATE:19390301T000000
-RDATE:19400301T000000
-RDATE:19410615T000000
-RDATE:19430801T000000
-RDATE:19460301T000000
-RDATE:19631001T000000
-RDATE:19640301T000000
-RDATE:19650301T000000
-RDATE:19660301T000000
-RDATE:19670402T000000
-RDATE:19680407T000000
-RDATE:19690406T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:ART
-DTSTART:19691005T000000
-RDATE:19691005T000000
-RDATE:20040620T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0200
-TZNAME:ARST
-DTSTART:19740123T000000
-RDATE:19740123T000000
-RDATE:19881201T000000
-RDATE:19891015T000000
-RDATE:19901021T000000
-RDATE:19911020T000000
-RDATE:19921018T000000
-RDATE:20071230T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0300
-TZNAME:ART
-DTSTART:19740501T000000
-RDATE:19740501T000000
-RDATE:19890305T000000
-RDATE:19900304T000000
-RDATE:19910303T000000
-RDATE:19920301T000000
-RDATE:19930307T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0300
-TZNAME:ARST
-DTSTART:19991003T000000
-RDATE:19991003T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0300
-TZNAME:ART
-DTSTART:20000303T000000
-RDATE:20000303T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:WART
-DTSTART:20040601T000000
-RDATE:20040601T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Argentina/San_Juan.ics b/libkcal/libical/zoneinfo/America/Argentina/San_Juan.ics
deleted file mode 100644
index 29641141..00000000
--- a/libkcal/libical/zoneinfo/America/Argentina/San_Juan.ics
+++ /dev/null
@@ -1,149 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Argentina/San_Juan
-X-LIC-LOCATION:America/Argentina/San_Juan
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0300
-TZNAME:ART
-DTSTART:20080316T000000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=3SU
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0200
-TZNAME:ARST
-DTSTART:20081005T000000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-043404
-TZOFFSETTO:-041648
-TZNAME:CMT
-DTSTART:18941031T000000
-RDATE:18941031T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-041648
-TZOFFSETTO:-0400
-TZNAME:ART
-DTSTART:19200501T000000
-RDATE:19200501T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:ARST
-DTSTART:19301201T000000
-RDATE:19301201T000000
-RDATE:19311015T000000
-RDATE:19321101T000000
-RDATE:19331101T000000
-RDATE:19341101T000000
-RDATE:19351101T000000
-RDATE:19361101T000000
-RDATE:19371101T000000
-RDATE:19381101T000000
-RDATE:19391101T000000
-RDATE:19400701T000000
-RDATE:19411015T000000
-RDATE:19431015T000000
-RDATE:19461001T000000
-RDATE:19631215T000000
-RDATE:19641015T000000
-RDATE:19651015T000000
-RDATE:19661015T000000
-RDATE:19671001T000000
-RDATE:19681006T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:ART
-DTSTART:19310401T000000
-RDATE:19310401T000000
-RDATE:19320301T000000
-RDATE:19330301T000000
-RDATE:19340301T000000
-RDATE:19350301T000000
-RDATE:19360301T000000
-RDATE:19370301T000000
-RDATE:19380301T000000
-RDATE:19390301T000000
-RDATE:19400301T000000
-RDATE:19410615T000000
-RDATE:19430801T000000
-RDATE:19460301T000000
-RDATE:19631001T000000
-RDATE:19640301T000000
-RDATE:19650301T000000
-RDATE:19660301T000000
-RDATE:19670402T000000
-RDATE:19680407T000000
-RDATE:19690406T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:ART
-DTSTART:19691005T000000
-RDATE:19691005T000000
-RDATE:19910507T000000
-RDATE:20040725T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0200
-TZNAME:ARST
-DTSTART:19740123T000000
-RDATE:19740123T000000
-RDATE:19881201T000000
-RDATE:19891015T000000
-RDATE:19901021T000000
-RDATE:19911020T000000
-RDATE:19921018T000000
-RDATE:20071230T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0300
-TZNAME:ART
-DTSTART:19740501T000000
-RDATE:19740501T000000
-RDATE:19890305T000000
-RDATE:19900304T000000
-RDATE:19920301T000000
-RDATE:19930307T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0400
-TZNAME:WART
-DTSTART:19910301T000000
-RDATE:19910301T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0300
-TZNAME:ARST
-DTSTART:19991003T000000
-RDATE:19991003T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0300
-TZNAME:ART
-DTSTART:20000303T000000
-RDATE:20000303T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:WART
-DTSTART:20040531T000000
-RDATE:20040531T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Argentina/San_Luis.ics b/libkcal/libical/zoneinfo/America/Argentina/San_Luis.ics
deleted file mode 100644
index cefad3a9..00000000
--- a/libkcal/libical/zoneinfo/America/Argentina/San_Luis.ics
+++ /dev/null
@@ -1,141 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Argentina/San_Luis
-X-LIC-LOCATION:America/Argentina/San_Luis
-BEGIN:STANDARD
-TZOFFSETFROM:-042524
-TZOFFSETTO:-041648
-TZNAME:CMT
-DTSTART:18941031T000000
-RDATE:18941031T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-041648
-TZOFFSETTO:-0400
-TZNAME:ART
-DTSTART:19200501T000000
-RDATE:19200501T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:ARST
-DTSTART:19301201T000000
-RDATE:19301201T000000
-RDATE:19311015T000000
-RDATE:19321101T000000
-RDATE:19331101T000000
-RDATE:19341101T000000
-RDATE:19351101T000000
-RDATE:19361101T000000
-RDATE:19371101T000000
-RDATE:19381101T000000
-RDATE:19391101T000000
-RDATE:19400701T000000
-RDATE:19411015T000000
-RDATE:19431015T000000
-RDATE:19461001T000000
-RDATE:19631215T000000
-RDATE:19641015T000000
-RDATE:19651015T000000
-RDATE:19661015T000000
-RDATE:19671001T000000
-RDATE:19681006T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:ART
-DTSTART:19310401T000000
-RDATE:19310401T000000
-RDATE:19320301T000000
-RDATE:19330301T000000
-RDATE:19340301T000000
-RDATE:19350301T000000
-RDATE:19360301T000000
-RDATE:19370301T000000
-RDATE:19380301T000000
-RDATE:19390301T000000
-RDATE:19400301T000000
-RDATE:19410615T000000
-RDATE:19430801T000000
-RDATE:19460301T000000
-RDATE:19631001T000000
-RDATE:19640301T000000
-RDATE:19650301T000000
-RDATE:19660301T000000
-RDATE:19670402T000000
-RDATE:19680407T000000
-RDATE:19690406T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:ART
-DTSTART:19691005T000000
-RDATE:19691005T000000
-RDATE:19910507T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0200
-TZNAME:ARST
-DTSTART:19740123T000000
-RDATE:19740123T000000
-RDATE:19881201T000000
-RDATE:19891015T000000
-RDATE:19901021T000000
-RDATE:19911020T000000
-RDATE:19921018T000000
-RDATE:20071230T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0300
-TZNAME:ART
-DTSTART:19740501T000000
-RDATE:19740501T000000
-RDATE:19890305T000000
-RDATE:19900304T000000
-RDATE:19920301T000000
-RDATE:19930307T000000
-RDATE:20080121T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0400
-TZNAME:WART
-DTSTART:19910301T000000
-RDATE:19910301T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0300
-TZNAME:ARST
-DTSTART:19991003T000000
-RDATE:19991003T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0300
-TZNAME:ART
-DTSTART:20000303T000000
-RDATE:20000303T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:WART
-DTSTART:20040531T000000
-RDATE:20040531T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-DTSTART:20040725T000000
-RDATE:20040725T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Argentina/Tucuman.ics b/libkcal/libical/zoneinfo/America/Argentina/Tucuman.ics
deleted file mode 100644
index 0a49b030..00000000
--- a/libkcal/libical/zoneinfo/America/Argentina/Tucuman.ics
+++ /dev/null
@@ -1,154 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Argentina/Tucuman
-X-LIC-LOCATION:America/Argentina/Tucuman
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0300
-TZNAME:ART
-DTSTART:20080316T000000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=3SU
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0200
-TZNAME:ARST
-DTSTART:20081005T000000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-042052
-TZOFFSETTO:-041648
-TZNAME:CMT
-DTSTART:18941031T000000
-RDATE:18941031T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-041648
-TZOFFSETTO:-0400
-TZNAME:ART
-DTSTART:19200501T000000
-RDATE:19200501T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:ARST
-DTSTART:19301201T000000
-RDATE:19301201T000000
-RDATE:19311015T000000
-RDATE:19321101T000000
-RDATE:19331101T000000
-RDATE:19341101T000000
-RDATE:19351101T000000
-RDATE:19361101T000000
-RDATE:19371101T000000
-RDATE:19381101T000000
-RDATE:19391101T000000
-RDATE:19400701T000000
-RDATE:19411015T000000
-RDATE:19431015T000000
-RDATE:19461001T000000
-RDATE:19631215T000000
-RDATE:19641015T000000
-RDATE:19651015T000000
-RDATE:19661015T000000
-RDATE:19671001T000000
-RDATE:19681006T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:ART
-DTSTART:19310401T000000
-RDATE:19310401T000000
-RDATE:19320301T000000
-RDATE:19330301T000000
-RDATE:19340301T000000
-RDATE:19350301T000000
-RDATE:19360301T000000
-RDATE:19370301T000000
-RDATE:19380301T000000
-RDATE:19390301T000000
-RDATE:19400301T000000
-RDATE:19410615T000000
-RDATE:19430801T000000
-RDATE:19460301T000000
-RDATE:19631001T000000
-RDATE:19640301T000000
-RDATE:19650301T000000
-RDATE:19660301T000000
-RDATE:19670402T000000
-RDATE:19680407T000000
-RDATE:19690406T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:ART
-DTSTART:19691005T000000
-RDATE:19691005T000000
-RDATE:20040613T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0200
-TZNAME:ARST
-DTSTART:19740123T000000
-RDATE:19740123T000000
-RDATE:19881201T000000
-RDATE:19891015T000000
-RDATE:19901021T000000
-RDATE:19921018T000000
-RDATE:20071230T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0300
-TZNAME:ART
-DTSTART:19740501T000000
-RDATE:19740501T000000
-RDATE:19890305T000000
-RDATE:19900304T000000
-RDATE:19920301T000000
-RDATE:19930307T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0400
-TZNAME:WART
-DTSTART:19910303T000000
-RDATE:19910303T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0200
-TZNAME:ARST
-DTSTART:19911020T000000
-RDATE:19911020T000000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0300
-TZNAME:ARST
-DTSTART:19991003T000000
-RDATE:19991003T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0300
-TZNAME:ART
-DTSTART:20000303T000000
-RDATE:20000303T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:WART
-DTSTART:20040601T000000
-RDATE:20040601T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Argentina/Ushuaia.ics b/libkcal/libical/zoneinfo/America/Argentina/Ushuaia.ics
deleted file mode 100644
index 615a9b80..00000000
--- a/libkcal/libical/zoneinfo/America/Argentina/Ushuaia.ics
+++ /dev/null
@@ -1,142 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Argentina/Ushuaia
-X-LIC-LOCATION:America/Argentina/Ushuaia
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0300
-TZNAME:ART
-DTSTART:20080316T000000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=3SU
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0200
-TZNAME:ARST
-DTSTART:20081005T000000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-043312
-TZOFFSETTO:-041648
-TZNAME:CMT
-DTSTART:18941031T000000
-RDATE:18941031T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-041648
-TZOFFSETTO:-0400
-TZNAME:ART
-DTSTART:19200501T000000
-RDATE:19200501T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:ARST
-DTSTART:19301201T000000
-RDATE:19301201T000000
-RDATE:19311015T000000
-RDATE:19321101T000000
-RDATE:19331101T000000
-RDATE:19341101T000000
-RDATE:19351101T000000
-RDATE:19361101T000000
-RDATE:19371101T000000
-RDATE:19381101T000000
-RDATE:19391101T000000
-RDATE:19400701T000000
-RDATE:19411015T000000
-RDATE:19431015T000000
-RDATE:19461001T000000
-RDATE:19631215T000000
-RDATE:19641015T000000
-RDATE:19651015T000000
-RDATE:19661015T000000
-RDATE:19671001T000000
-RDATE:19681006T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:ART
-DTSTART:19310401T000000
-RDATE:19310401T000000
-RDATE:19320301T000000
-RDATE:19330301T000000
-RDATE:19340301T000000
-RDATE:19350301T000000
-RDATE:19360301T000000
-RDATE:19370301T000000
-RDATE:19380301T000000
-RDATE:19390301T000000
-RDATE:19400301T000000
-RDATE:19410615T000000
-RDATE:19430801T000000
-RDATE:19460301T000000
-RDATE:19631001T000000
-RDATE:19640301T000000
-RDATE:19650301T000000
-RDATE:19660301T000000
-RDATE:19670402T000000
-RDATE:19680407T000000
-RDATE:19690406T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:ART
-DTSTART:19691005T000000
-RDATE:19691005T000000
-RDATE:20040620T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0200
-TZNAME:ARST
-DTSTART:19740123T000000
-RDATE:19740123T000000
-RDATE:19881201T000000
-RDATE:19891015T000000
-RDATE:19901021T000000
-RDATE:19911020T000000
-RDATE:19921018T000000
-RDATE:20071230T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0300
-TZNAME:ART
-DTSTART:19740501T000000
-RDATE:19740501T000000
-RDATE:19890305T000000
-RDATE:19900304T000000
-RDATE:19910303T000000
-RDATE:19920301T000000
-RDATE:19930307T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0300
-TZNAME:ARST
-DTSTART:19991003T000000
-RDATE:19991003T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0300
-TZNAME:ART
-DTSTART:20000303T000000
-RDATE:20000303T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:WART
-DTSTART:20040530T000000
-RDATE:20040530T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Aruba.ics b/libkcal/libical/zoneinfo/America/Aruba.ics
deleted file mode 100644
index dd17d79e..00000000
--- a/libkcal/libical/zoneinfo/America/Aruba.ics
+++ /dev/null
@@ -1,22 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Aruba
-X-LIC-LOCATION:America/Aruba
-BEGIN:STANDARD
-TZOFFSETFROM:-044024
-TZOFFSETTO:-0430
-TZNAME:ANT
-DTSTART:19120212T000000
-RDATE:19120212T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0430
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:19650101T000000
-RDATE:19650101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Asuncion.ics b/libkcal/libical/zoneinfo/America/Asuncion.ics
deleted file mode 100644
index 041f5532..00000000
--- a/libkcal/libical/zoneinfo/America/Asuncion.ics
+++ /dev/null
@@ -1,121 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Asuncion
-X-LIC-LOCATION:America/Asuncion
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:PYST
-DTSTART:20041017T000000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=3SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:PYT
-DTSTART:20050313T000000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-035040
-TZOFFSETTO:-035040
-TZNAME:AMT
-DTSTART:18900101T000000
-RDATE:18900101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-035040
-TZOFFSETTO:-0400
-TZNAME:PYT
-DTSTART:19311010T000000
-RDATE:19311010T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:PYT
-DTSTART:19721001T000000
-RDATE:19721001T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:PYT
-DTSTART:19740401T000000
-RDATE:19740401T000000
-RDATE:19760301T000000
-RDATE:19770301T000000
-RDATE:19780301T000000
-RDATE:19790401T000000
-RDATE:19800401T000000
-RDATE:19810401T000000
-RDATE:19820401T000000
-RDATE:19830401T000000
-RDATE:19840401T000000
-RDATE:19850401T000000
-RDATE:19860401T000000
-RDATE:19870401T000000
-RDATE:19880401T000000
-RDATE:19890401T000000
-RDATE:19900401T000000
-RDATE:19910401T000000
-RDATE:19920301T000000
-RDATE:19930331T000000
-RDATE:19940227T000000
-RDATE:19950226T000000
-RDATE:19960301T000000
-RDATE:19970223T000000
-RDATE:19980301T000000
-RDATE:19990307T000000
-RDATE:20000305T000000
-RDATE:20010304T000000
-RDATE:20020407T000000
-RDATE:20030406T000000
-RDATE:20040404T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0400
-TZNAME:PYT
-DTSTART:19750301T000000
-RDATE:19750301T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:PYST
-DTSTART:19751001T000000
-RDATE:19751001T000000
-RDATE:19761001T000000
-RDATE:19771001T000000
-RDATE:19781001T000000
-RDATE:19791001T000000
-RDATE:19801001T000000
-RDATE:19811001T000000
-RDATE:19821001T000000
-RDATE:19831001T000000
-RDATE:19841001T000000
-RDATE:19851001T000000
-RDATE:19861001T000000
-RDATE:19871001T000000
-RDATE:19881001T000000
-RDATE:19891022T000000
-RDATE:19901001T000000
-RDATE:19911006T000000
-RDATE:19921005T000000
-RDATE:19931001T000000
-RDATE:19941001T000000
-RDATE:19951001T000000
-RDATE:19961006T000000
-RDATE:19971005T000000
-RDATE:19981004T000000
-RDATE:19991003T000000
-RDATE:20001001T000000
-RDATE:20011007T000000
-RDATE:20020901T000000
-RDATE:20030907T000000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Atikokan.ics b/libkcal/libical/zoneinfo/America/Atikokan.ics
deleted file mode 100644
index 3bb60bd1..00000000
--- a/libkcal/libical/zoneinfo/America/Atikokan.ics
+++ /dev/null
@@ -1,51 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Atikokan
-X-LIC-LOCATION:America/Atikokan
-BEGIN:STANDARD
-TZOFFSETFROM:-060628
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:18950101T000000
-RDATE:18950101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:19180414T020000
-RDATE:19180414T020000
-RDATE:19400929T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19181031T020000
-RDATE:19181031T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:CWT
-DTSTART:19420209T020000
-RDATE:19420209T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:CPT
-DTSTART:19450814T180000
-RDATE:19450814T180000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19450930T020000
-RDATE:19450930T020000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Bahia.ics b/libkcal/libical/zoneinfo/America/Bahia.ics
deleted file mode 100644
index a9583408..00000000
--- a/libkcal/libical/zoneinfo/America/Bahia.ics
+++ /dev/null
@@ -1,92 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Bahia
-X-LIC-LOCATION:America/Bahia
-BEGIN:STANDARD
-TZOFFSETFROM:-023404
-TZOFFSETTO:-0300
-TZNAME:BRT
-DTSTART:19140101T000000
-RDATE:19140101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0200
-TZNAME:BRST
-DTSTART:19311003T110000
-RDATE:19311003T110000
-RDATE:19321003T000000
-RDATE:19491201T000000
-RDATE:19501201T000000
-RDATE:19511201T000000
-RDATE:19521201T000000
-RDATE:19631209T000000
-RDATE:19650131T000000
-RDATE:19651201T000000
-RDATE:19661101T000000
-RDATE:19671101T000000
-RDATE:19851102T000000
-RDATE:19861025T000000
-RDATE:19871025T000000
-RDATE:19881016T000000
-RDATE:19891015T000000
-RDATE:19901021T000000
-RDATE:19911020T000000
-RDATE:19921025T000000
-RDATE:19931017T000000
-RDATE:19941016T000000
-RDATE:19951015T000000
-RDATE:19961006T000000
-RDATE:19971006T000000
-RDATE:19981011T000000
-RDATE:19991003T000000
-RDATE:20001008T000000
-RDATE:20011014T000000
-RDATE:20021103T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0300
-TZNAME:BRT
-DTSTART:19320401T000000
-RDATE:19320401T000000
-RDATE:19330401T000000
-RDATE:19500416T010000
-RDATE:19510401T000000
-RDATE:19520401T000000
-RDATE:19530301T000000
-RDATE:19640301T000000
-RDATE:19650331T000000
-RDATE:19660301T000000
-RDATE:19670301T000000
-RDATE:19680301T000000
-RDATE:19860315T000000
-RDATE:19870214T000000
-RDATE:19880207T000000
-RDATE:19890129T000000
-RDATE:19900211T000000
-RDATE:19910217T000000
-RDATE:19920209T000000
-RDATE:19930131T000000
-RDATE:19940220T000000
-RDATE:19950219T000000
-RDATE:19960211T000000
-RDATE:19970216T000000
-RDATE:19980301T000000
-RDATE:19990221T000000
-RDATE:20000227T000000
-RDATE:20010218T000000
-RDATE:20020217T000000
-RDATE:20030216T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0300
-TZNAME:BRT
-DTSTART:20030924T000000
-RDATE:20030924T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Barbados.ics b/libkcal/libical/zoneinfo/America/Barbados.ics
deleted file mode 100644
index e28d7fa7..00000000
--- a/libkcal/libical/zoneinfo/America/Barbados.ics
+++ /dev/null
@@ -1,42 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Barbados
-X-LIC-LOCATION:America/Barbados
-BEGIN:STANDARD
-TZOFFSETFROM:-035828
-TZOFFSETTO:-035828
-TZNAME:BMT
-DTSTART:19240101T000000
-RDATE:19240101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-035828
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:19320101T000000
-RDATE:19320101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:ADT
-DTSTART:19770612T020000
-RDATE:19770612T020000
-RDATE:19780416T020000
-RDATE:19790415T020000
-RDATE:19800420T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:19771002T020000
-RDATE:19771002T020000
-RDATE:19781001T020000
-RDATE:19790930T020000
-RDATE:19800925T020000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Belem.ics b/libkcal/libical/zoneinfo/America/Belem.ics
deleted file mode 100644
index 5a437224..00000000
--- a/libkcal/libical/zoneinfo/America/Belem.ics
+++ /dev/null
@@ -1,62 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Belem
-X-LIC-LOCATION:America/Belem
-BEGIN:STANDARD
-TZOFFSETFROM:-031356
-TZOFFSETTO:-0300
-TZNAME:BRT
-DTSTART:19140101T000000
-RDATE:19140101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0200
-TZNAME:BRST
-DTSTART:19311003T110000
-RDATE:19311003T110000
-RDATE:19321003T000000
-RDATE:19491201T000000
-RDATE:19501201T000000
-RDATE:19511201T000000
-RDATE:19521201T000000
-RDATE:19631209T000000
-RDATE:19650131T000000
-RDATE:19651201T000000
-RDATE:19661101T000000
-RDATE:19671101T000000
-RDATE:19851102T000000
-RDATE:19861025T000000
-RDATE:19871025T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0300
-TZNAME:BRT
-DTSTART:19320401T000000
-RDATE:19320401T000000
-RDATE:19330401T000000
-RDATE:19500416T010000
-RDATE:19510401T000000
-RDATE:19520401T000000
-RDATE:19530301T000000
-RDATE:19640301T000000
-RDATE:19650331T000000
-RDATE:19660301T000000
-RDATE:19670301T000000
-RDATE:19680301T000000
-RDATE:19860315T000000
-RDATE:19870214T000000
-RDATE:19880207T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0300
-TZNAME:BRT
-DTSTART:19880912T000000
-RDATE:19880912T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Belize.ics b/libkcal/libical/zoneinfo/America/Belize.ics
deleted file mode 100644
index b1b5fef8..00000000
--- a/libkcal/libical/zoneinfo/America/Belize.ics
+++ /dev/null
@@ -1,93 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Belize
-X-LIC-LOCATION:America/Belize
-BEGIN:STANDARD
-TZOFFSETFROM:-055248
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19120401T000000
-RDATE:19120401T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0530
-TZNAME:CHDT
-DTSTART:19181006T000000
-RDATE:19181006T000000
-RDATE:19191005T000000
-RDATE:19201003T000000
-RDATE:19211002T000000
-RDATE:19221008T000000
-RDATE:19231007T000000
-RDATE:19241005T000000
-RDATE:19251004T000000
-RDATE:19261003T000000
-RDATE:19271002T000000
-RDATE:19281007T000000
-RDATE:19291006T000000
-RDATE:19301005T000000
-RDATE:19311004T000000
-RDATE:19321002T000000
-RDATE:19331008T000000
-RDATE:19341007T000000
-RDATE:19351006T000000
-RDATE:19361004T000000
-RDATE:19371003T000000
-RDATE:19381002T000000
-RDATE:19391008T000000
-RDATE:19401006T000000
-RDATE:19411005T000000
-RDATE:19421004T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0530
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19190209T000000
-RDATE:19190209T000000
-RDATE:19200215T000000
-RDATE:19210213T000000
-RDATE:19220212T000000
-RDATE:19230211T000000
-RDATE:19240210T000000
-RDATE:19250215T000000
-RDATE:19260214T000000
-RDATE:19270213T000000
-RDATE:19280212T000000
-RDATE:19290210T000000
-RDATE:19300209T000000
-RDATE:19310215T000000
-RDATE:19320214T000000
-RDATE:19330212T000000
-RDATE:19340211T000000
-RDATE:19350210T000000
-RDATE:19360209T000000
-RDATE:19370214T000000
-RDATE:19380213T000000
-RDATE:19390212T000000
-RDATE:19400211T000000
-RDATE:19410209T000000
-RDATE:19420215T000000
-RDATE:19430214T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:19731205T000000
-RDATE:19731205T000000
-RDATE:19821218T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19740209T000000
-RDATE:19740209T000000
-RDATE:19830212T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Blanc-Sablon.ics b/libkcal/libical/zoneinfo/America/Blanc-Sablon.ics
deleted file mode 100644
index 5d5304f0..00000000
--- a/libkcal/libical/zoneinfo/America/Blanc-Sablon.ics
+++ /dev/null
@@ -1,51 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Blanc-Sablon
-X-LIC-LOCATION:America/Blanc-Sablon
-BEGIN:STANDARD
-TZOFFSETFROM:-034828
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:18840101T000000
-RDATE:18840101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:ADT
-DTSTART:19180414T020000
-RDATE:19180414T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:19181031T020000
-RDATE:19181031T020000
-RDATE:19450930T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:AWT
-DTSTART:19420209T020000
-RDATE:19420209T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0300
-TZNAME:APT
-DTSTART:19450814T200000
-RDATE:19450814T200000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:19700101T000000
-RDATE:19700101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Boa_Vista.ics b/libkcal/libical/zoneinfo/America/Boa_Vista.ics
deleted file mode 100644
index 155c5a56..00000000
--- a/libkcal/libical/zoneinfo/America/Boa_Vista.ics
+++ /dev/null
@@ -1,67 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Boa_Vista
-X-LIC-LOCATION:America/Boa_Vista
-BEGIN:STANDARD
-TZOFFSETFROM:-040240
-TZOFFSETTO:-0400
-TZNAME:AMT
-DTSTART:19140101T000000
-RDATE:19140101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:AMST
-DTSTART:19311003T110000
-RDATE:19311003T110000
-RDATE:19321003T000000
-RDATE:19491201T000000
-RDATE:19501201T000000
-RDATE:19511201T000000
-RDATE:19521201T000000
-RDATE:19631209T000000
-RDATE:19650131T000000
-RDATE:19651201T000000
-RDATE:19661101T000000
-RDATE:19671101T000000
-RDATE:19851102T000000
-RDATE:19861025T000000
-RDATE:19871025T000000
-RDATE:19991003T000000
-RDATE:20001008T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:AMT
-DTSTART:19320401T000000
-RDATE:19320401T000000
-RDATE:19330401T000000
-RDATE:19500416T010000
-RDATE:19510401T000000
-RDATE:19520401T000000
-RDATE:19530301T000000
-RDATE:19640301T000000
-RDATE:19650331T000000
-RDATE:19660301T000000
-RDATE:19670301T000000
-RDATE:19680301T000000
-RDATE:19860315T000000
-RDATE:19870214T000000
-RDATE:19880207T000000
-RDATE:20000227T000000
-RDATE:20001015T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0400
-TZNAME:AMT
-DTSTART:19880912T000000
-RDATE:19880912T000000
-RDATE:19990930T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Bogota.ics b/libkcal/libical/zoneinfo/America/Bogota.ics
deleted file mode 100644
index 4ce5b467..00000000
--- a/libkcal/libical/zoneinfo/America/Bogota.ics
+++ /dev/null
@@ -1,36 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Bogota
-X-LIC-LOCATION:America/Bogota
-BEGIN:STANDARD
-TZOFFSETFROM:-045620
-TZOFFSETTO:-045620
-TZNAME:BMT
-DTSTART:18840313T000000
-RDATE:18840313T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-045620
-TZOFFSETTO:-0500
-TZNAME:COT
-DTSTART:19141123T000000
-RDATE:19141123T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:COST
-DTSTART:19920503T000000
-RDATE:19920503T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0500
-TZNAME:COT
-DTSTART:19930404T000000
-RDATE:19930404T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Boise.ics b/libkcal/libical/zoneinfo/America/Boise.ics
deleted file mode 100644
index 1572dfa0..00000000
--- a/libkcal/libical/zoneinfo/America/Boise.ics
+++ /dev/null
@@ -1,166 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Boise
-X-LIC-LOCATION:America/Boise
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0600
-TZNAME:MDT
-DTSTART:20070311T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:20071104T020000
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-074449
-TZOFFSETTO:-0800
-TZNAME:PST
-DTSTART:18831118T121511
-RDATE:18831118T121511
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0800
-TZOFFSETTO:-0700
-TZNAME:PDT
-DTSTART:19180331T020000
-RDATE:19180331T020000
-RDATE:19190330T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0800
-TZNAME:PST
-DTSTART:19181027T020000
-RDATE:19181027T020000
-RDATE:19191026T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0800
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:19230513T020000
-RDATE:19230513T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0600
-TZNAME:MWT
-DTSTART:19420209T020000
-RDATE:19420209T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0600
-TZNAME:MPT
-DTSTART:19450814T170000
-RDATE:19450814T170000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:19450930T020000
-RDATE:19450930T020000
-RDATE:19671029T020000
-RDATE:19681027T020000
-RDATE:19691026T020000
-RDATE:19701025T020000
-RDATE:19711031T020000
-RDATE:19721029T020000
-RDATE:19731028T020000
-RDATE:19741027T020000
-RDATE:19751026T020000
-RDATE:19761031T020000
-RDATE:19771030T020000
-RDATE:19781029T020000
-RDATE:19791028T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-RDATE:19831030T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861026T020000
-RDATE:19871025T020000
-RDATE:19881030T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931031T020000
-RDATE:19941030T020000
-RDATE:19951029T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:19991031T020000
-RDATE:20001029T020000
-RDATE:20011028T020000
-RDATE:20021027T020000
-RDATE:20031026T020000
-RDATE:20041031T020000
-RDATE:20051030T020000
-RDATE:20061029T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0600
-TZNAME:MDT
-DTSTART:19670430T020000
-RDATE:19670430T020000
-RDATE:19680428T020000
-RDATE:19690427T020000
-RDATE:19700426T020000
-RDATE:19710425T020000
-RDATE:19720430T020000
-RDATE:19730429T020000
-RDATE:19740203T020000
-RDATE:19750223T020000
-RDATE:19760425T020000
-RDATE:19770424T020000
-RDATE:19780430T020000
-RDATE:19790429T020000
-RDATE:19800427T020000
-RDATE:19810426T020000
-RDATE:19820425T020000
-RDATE:19830424T020000
-RDATE:19840429T020000
-RDATE:19850428T020000
-RDATE:19860427T020000
-RDATE:19870405T020000
-RDATE:19880403T020000
-RDATE:19890402T020000
-RDATE:19900401T020000
-RDATE:19910407T020000
-RDATE:19920405T020000
-RDATE:19930404T020000
-RDATE:19940403T020000
-RDATE:19950402T020000
-RDATE:19960407T020000
-RDATE:19970406T020000
-RDATE:19980405T020000
-RDATE:19990404T020000
-RDATE:20000402T020000
-RDATE:20010401T020000
-RDATE:20020407T020000
-RDATE:20030406T020000
-RDATE:20040404T020000
-RDATE:20050403T020000
-RDATE:20060402T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:19740101T000000
-RDATE:19740101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Cambridge_Bay.ics b/libkcal/libical/zoneinfo/America/Cambridge_Bay.ics
deleted file mode 100644
index 63ac1725..00000000
--- a/libkcal/libical/zoneinfo/America/Cambridge_Bay.ics
+++ /dev/null
@@ -1,155 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Cambridge_Bay
-X-LIC-LOCATION:America/Cambridge_Bay
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0600
-TZNAME:MDT
-DTSTART:20070311T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:20071104T020000
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0000
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:19200101T000000
-RDATE:19200101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0600
-TZNAME:MWT
-DTSTART:19420209T020000
-RDATE:19420209T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0600
-TZNAME:MPT
-DTSTART:19450814T170000
-RDATE:19450814T170000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:19450930T020000
-RDATE:19450930T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-RDATE:19831030T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861026T020000
-RDATE:19871025T020000
-RDATE:19881030T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931031T020000
-RDATE:19941030T020000
-RDATE:19951029T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:20011028T020000
-RDATE:20021027T020000
-RDATE:20031026T020000
-RDATE:20041031T020000
-RDATE:20051030T020000
-RDATE:20061029T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0500
-TZNAME:MDDT
-DTSTART:19650425T000000
-RDATE:19650425T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:19651031T020000
-RDATE:19651031T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0600
-TZNAME:MDT
-DTSTART:19800427T020000
-RDATE:19800427T020000
-RDATE:19810426T020000
-RDATE:19820425T020000
-RDATE:19830424T020000
-RDATE:19840429T020000
-RDATE:19850428T020000
-RDATE:19860427T020000
-RDATE:19870405T020000
-RDATE:19880403T020000
-RDATE:19890402T020000
-RDATE:19900401T020000
-RDATE:19910407T020000
-RDATE:19920405T020000
-RDATE:19930404T020000
-RDATE:19940403T020000
-RDATE:19950402T020000
-RDATE:19960407T020000
-RDATE:19970406T020000
-RDATE:19980405T020000
-RDATE:19990404T020000
-RDATE:20020407T020000
-RDATE:20030406T020000
-RDATE:20040404T020000
-RDATE:20050403T020000
-RDATE:20060402T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19991031T020000
-RDATE:19991031T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:20000402T020000
-RDATE:20000402T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:20001029T020000
-RDATE:20001029T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:20001105T000000
-RDATE:20001105T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0600
-TZNAME:MDT
-DTSTART:20010401T020000
-RDATE:20010401T020000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Campo_Grande.ics b/libkcal/libical/zoneinfo/America/Campo_Grande.ics
deleted file mode 100644
index cdc28226..00000000
--- a/libkcal/libical/zoneinfo/America/Campo_Grande.ics
+++ /dev/null
@@ -1,107 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Campo_Grande
-X-LIC-LOCATION:America/Campo_Grande
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:AMST
-DTSTART:20071014T000000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:AMT
-DTSTART:20080217T000000
-RRULE:FREQ=YEARLY;BYMONTH=2;BYDAY=3SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-033828
-TZOFFSETTO:-0400
-TZNAME:AMT
-DTSTART:19140101T000000
-RDATE:19140101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:AMST
-DTSTART:19311003T110000
-RDATE:19311003T110000
-RDATE:19321003T000000
-RDATE:19491201T000000
-RDATE:19501201T000000
-RDATE:19511201T000000
-RDATE:19521201T000000
-RDATE:19631209T000000
-RDATE:19650131T000000
-RDATE:19651201T000000
-RDATE:19661101T000000
-RDATE:19671101T000000
-RDATE:19851102T000000
-RDATE:19861025T000000
-RDATE:19871025T000000
-RDATE:19881016T000000
-RDATE:19891015T000000
-RDATE:19901021T000000
-RDATE:19911020T000000
-RDATE:19921025T000000
-RDATE:19931017T000000
-RDATE:19941016T000000
-RDATE:19951015T000000
-RDATE:19961006T000000
-RDATE:19971006T000000
-RDATE:19981011T000000
-RDATE:19991003T000000
-RDATE:20001008T000000
-RDATE:20011014T000000
-RDATE:20021103T000000
-RDATE:20031019T000000
-RDATE:20041102T000000
-RDATE:20051016T000000
-RDATE:20061105T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:AMT
-DTSTART:19320401T000000
-RDATE:19320401T000000
-RDATE:19330401T000000
-RDATE:19500416T010000
-RDATE:19510401T000000
-RDATE:19520401T000000
-RDATE:19530301T000000
-RDATE:19640301T000000
-RDATE:19650331T000000
-RDATE:19660301T000000
-RDATE:19670301T000000
-RDATE:19680301T000000
-RDATE:19860315T000000
-RDATE:19870214T000000
-RDATE:19880207T000000
-RDATE:19890129T000000
-RDATE:19900211T000000
-RDATE:19910217T000000
-RDATE:19920209T000000
-RDATE:19930131T000000
-RDATE:19940220T000000
-RDATE:19950219T000000
-RDATE:19960211T000000
-RDATE:19970216T000000
-RDATE:19980301T000000
-RDATE:19990221T000000
-RDATE:20000227T000000
-RDATE:20010218T000000
-RDATE:20020217T000000
-RDATE:20030216T000000
-RDATE:20040215T000000
-RDATE:20050220T000000
-RDATE:20060219T000000
-RDATE:20070225T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Cancun.ics b/libkcal/libical/zoneinfo/America/Cancun.ics
deleted file mode 100644
index 841c7b31..00000000
--- a/libkcal/libical/zoneinfo/America/Cancun.ics
+++ /dev/null
@@ -1,79 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Cancun
-X-LIC-LOCATION:America/Cancun
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:20020407T020000
-RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:20021027T020000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-054704
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19220101T001256
-RDATE:19220101T001256
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19811223T000000
-RDATE:19811223T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:EDT
-DTSTART:19960407T020000
-RDATE:19960407T020000
-RDATE:19970406T020000
-RDATE:19980405T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19961027T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:19980802T020000
-RDATE:19980802T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19981025T020000
-RDATE:19981025T020000
-RDATE:19991031T020000
-RDATE:20001029T020000
-RDATE:20010930T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:19990404T020000
-RDATE:19990404T020000
-RDATE:20000402T020000
-RDATE:20010506T020000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Caracas.ics b/libkcal/libical/zoneinfo/America/Caracas.ics
deleted file mode 100644
index 0cb8bbd8..00000000
--- a/libkcal/libical/zoneinfo/America/Caracas.ics
+++ /dev/null
@@ -1,36 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Caracas
-X-LIC-LOCATION:America/Caracas
-BEGIN:STANDARD
-TZOFFSETFROM:-042744
-TZOFFSETTO:-042740
-TZNAME:CMT
-DTSTART:18900101T000000
-RDATE:18900101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-042740
-TZOFFSETTO:-0430
-TZNAME:VET
-DTSTART:19120212T000000
-RDATE:19120212T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0430
-TZOFFSETTO:-0400
-TZNAME:VET
-DTSTART:19650101T000000
-RDATE:19650101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0430
-TZNAME:VET
-DTSTART:20071209T030000
-RDATE:20071209T030000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Cayenne.ics b/libkcal/libical/zoneinfo/America/Cayenne.ics
deleted file mode 100644
index 1f800ffb..00000000
--- a/libkcal/libical/zoneinfo/America/Cayenne.ics
+++ /dev/null
@@ -1,22 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Cayenne
-X-LIC-LOCATION:America/Cayenne
-BEGIN:STANDARD
-TZOFFSETFROM:-032920
-TZOFFSETTO:-0400
-TZNAME:GFT
-DTSTART:19110701T000000
-RDATE:19110701T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:GFT
-DTSTART:19671001T000000
-RDATE:19671001T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Cayman.ics b/libkcal/libical/zoneinfo/America/Cayman.ics
deleted file mode 100644
index 8509d674..00000000
--- a/libkcal/libical/zoneinfo/America/Cayman.ics
+++ /dev/null
@@ -1,22 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Cayman
-X-LIC-LOCATION:America/Cayman
-BEGIN:STANDARD
-TZOFFSETFROM:-052532
-TZOFFSETTO:-050712
-TZNAME:KMT
-DTSTART:18900101T000000
-RDATE:18900101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-050712
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19120201T000000
-RDATE:19120201T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Chicago.ics b/libkcal/libical/zoneinfo/America/Chicago.ics
deleted file mode 100644
index 3de82b36..00000000
--- a/libkcal/libical/zoneinfo/America/Chicago.ics
+++ /dev/null
@@ -1,242 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Chicago
-X-LIC-LOCATION:America/Chicago
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:20070311T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:20071104T020000
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-055036
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:18831118T120924
-RDATE:18831118T120924
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:19180331T020000
-RDATE:19180331T020000
-RDATE:19190330T020000
-RDATE:19200613T020000
-RDATE:19210327T020000
-RDATE:19220430T020000
-RDATE:19230429T020000
-RDATE:19240427T020000
-RDATE:19250426T020000
-RDATE:19260425T020000
-RDATE:19270424T020000
-RDATE:19280429T020000
-RDATE:19290428T020000
-RDATE:19300427T020000
-RDATE:19310426T020000
-RDATE:19320424T020000
-RDATE:19330430T020000
-RDATE:19340429T020000
-RDATE:19350428T020000
-RDATE:19370425T020000
-RDATE:19380424T020000
-RDATE:19390430T020000
-RDATE:19400428T020000
-RDATE:19410427T020000
-RDATE:19460428T020000
-RDATE:19470427T020000
-RDATE:19480425T020000
-RDATE:19490424T020000
-RDATE:19500430T020000
-RDATE:19510429T020000
-RDATE:19520427T020000
-RDATE:19530426T020000
-RDATE:19540425T020000
-RDATE:19550424T020000
-RDATE:19560429T020000
-RDATE:19570428T020000
-RDATE:19580427T020000
-RDATE:19590426T020000
-RDATE:19600424T020000
-RDATE:19610430T020000
-RDATE:19620429T020000
-RDATE:19630428T020000
-RDATE:19640426T020000
-RDATE:19650425T020000
-RDATE:19660424T020000
-RDATE:19670430T020000
-RDATE:19680428T020000
-RDATE:19690427T020000
-RDATE:19700426T020000
-RDATE:19710425T020000
-RDATE:19720430T020000
-RDATE:19730429T020000
-RDATE:19740106T020000
-RDATE:19750223T020000
-RDATE:19760425T020000
-RDATE:19770424T020000
-RDATE:19780430T020000
-RDATE:19790429T020000
-RDATE:19800427T020000
-RDATE:19810426T020000
-RDATE:19820425T020000
-RDATE:19830424T020000
-RDATE:19840429T020000
-RDATE:19850428T020000
-RDATE:19860427T020000
-RDATE:19870405T020000
-RDATE:19880403T020000
-RDATE:19890402T020000
-RDATE:19900401T020000
-RDATE:19910407T020000
-RDATE:19920405T020000
-RDATE:19930404T020000
-RDATE:19940403T020000
-RDATE:19950402T020000
-RDATE:19960407T020000
-RDATE:19970406T020000
-RDATE:19980405T020000
-RDATE:19990404T020000
-RDATE:20000402T020000
-RDATE:20010401T020000
-RDATE:20020407T020000
-RDATE:20030406T020000
-RDATE:20040404T020000
-RDATE:20050403T020000
-RDATE:20060402T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19181027T020000
-RDATE:19181027T020000
-RDATE:19191026T020000
-RDATE:19201031T020000
-RDATE:19211030T020000
-RDATE:19220924T020000
-RDATE:19230930T020000
-RDATE:19240928T020000
-RDATE:19250927T020000
-RDATE:19260926T020000
-RDATE:19270925T020000
-RDATE:19280930T020000
-RDATE:19290929T020000
-RDATE:19300928T020000
-RDATE:19310927T020000
-RDATE:19320925T020000
-RDATE:19330924T020000
-RDATE:19340930T020000
-RDATE:19350929T020000
-RDATE:19361115T020000
-RDATE:19370926T020000
-RDATE:19380925T020000
-RDATE:19390924T020000
-RDATE:19400929T020000
-RDATE:19410928T020000
-RDATE:19450930T020000
-RDATE:19460929T020000
-RDATE:19470928T020000
-RDATE:19480926T020000
-RDATE:19490925T020000
-RDATE:19500924T020000
-RDATE:19510930T020000
-RDATE:19520928T020000
-RDATE:19530927T020000
-RDATE:19540926T020000
-RDATE:19551030T020000
-RDATE:19561028T020000
-RDATE:19571027T020000
-RDATE:19581026T020000
-RDATE:19591025T020000
-RDATE:19601030T020000
-RDATE:19611029T020000
-RDATE:19621028T020000
-RDATE:19631027T020000
-RDATE:19641025T020000
-RDATE:19651031T020000
-RDATE:19661030T020000
-RDATE:19671029T020000
-RDATE:19681027T020000
-RDATE:19691026T020000
-RDATE:19701025T020000
-RDATE:19711031T020000
-RDATE:19721029T020000
-RDATE:19731028T020000
-RDATE:19741027T020000
-RDATE:19751026T020000
-RDATE:19761031T020000
-RDATE:19771030T020000
-RDATE:19781029T020000
-RDATE:19791028T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-RDATE:19831030T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861026T020000
-RDATE:19871025T020000
-RDATE:19881030T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931031T020000
-RDATE:19941030T020000
-RDATE:19951029T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:19991031T020000
-RDATE:20001029T020000
-RDATE:20011028T020000
-RDATE:20021027T020000
-RDATE:20031026T020000
-RDATE:20041031T020000
-RDATE:20051030T020000
-RDATE:20061029T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19200101T000000
-RDATE:19200101T000000
-RDATE:19420101T000000
-RDATE:19460101T000000
-RDATE:19670101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19360301T020000
-RDATE:19360301T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CWT
-DTSTART:19420209T020000
-RDATE:19420209T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:CPT
-DTSTART:19450814T180000
-RDATE:19450814T180000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Chihuahua.ics b/libkcal/libical/zoneinfo/America/Chihuahua.ics
deleted file mode 100644
index 97fbedcc..00000000
--- a/libkcal/libical/zoneinfo/America/Chihuahua.ics
+++ /dev/null
@@ -1,90 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Chihuahua
-X-LIC-LOCATION:America/Chihuahua
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0600
-TZNAME:MDT
-DTSTART:20020407T020000
-RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:20021027T020000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-070420
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:19211231T235540
-RDATE:19211231T235540
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19270610T230000
-RDATE:19270610T230000
-RDATE:19310501T230000
-RDATE:19320401T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:19301115T000000
-RDATE:19301115T000000
-RDATE:19311001T000000
-RDATE:19981025T020000
-RDATE:19991031T020000
-RDATE:20001029T020000
-RDATE:20010930T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19960101T000000
-RDATE:19960101T000000
-RDATE:19980101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:19960407T020000
-RDATE:19960407T020000
-RDATE:19970406T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19961027T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0600
-TZNAME:MDT
-DTSTART:19980405T020000
-RDATE:19980405T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0600
-TZNAME:MDT
-DTSTART:19990404T020000
-RDATE:19990404T020000
-RDATE:20000402T020000
-RDATE:20010506T020000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Costa_Rica.ics b/libkcal/libical/zoneinfo/America/Costa_Rica.ics
deleted file mode 100644
index 7c667f6a..00000000
--- a/libkcal/libical/zoneinfo/America/Costa_Rica.ics
+++ /dev/null
@@ -1,42 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Costa_Rica
-X-LIC-LOCATION:America/Costa_Rica
-BEGIN:STANDARD
-TZOFFSETFROM:-053620
-TZOFFSETTO:-053620
-TZNAME:SJMT
-DTSTART:18900101T000000
-RDATE:18900101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-053620
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19210115T000000
-RDATE:19210115T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:19790225T000000
-RDATE:19790225T000000
-RDATE:19800224T000000
-RDATE:19910119T000000
-RDATE:19920118T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19790603T000000
-RDATE:19790603T000000
-RDATE:19800601T000000
-RDATE:19910701T000000
-RDATE:19920315T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Cuiaba.ics b/libkcal/libical/zoneinfo/America/Cuiaba.ics
deleted file mode 100644
index 58583970..00000000
--- a/libkcal/libical/zoneinfo/America/Cuiaba.ics
+++ /dev/null
@@ -1,113 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Cuiaba
-X-LIC-LOCATION:America/Cuiaba
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:AMST
-DTSTART:20071014T000000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:AMT
-DTSTART:20080217T000000
-RRULE:FREQ=YEARLY;BYMONTH=2;BYDAY=3SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-034420
-TZOFFSETTO:-0400
-TZNAME:AMT
-DTSTART:19140101T000000
-RDATE:19140101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:AMST
-DTSTART:19311003T110000
-RDATE:19311003T110000
-RDATE:19321003T000000
-RDATE:19491201T000000
-RDATE:19501201T000000
-RDATE:19511201T000000
-RDATE:19521201T000000
-RDATE:19631209T000000
-RDATE:19650131T000000
-RDATE:19651201T000000
-RDATE:19661101T000000
-RDATE:19671101T000000
-RDATE:19851102T000000
-RDATE:19861025T000000
-RDATE:19871025T000000
-RDATE:19881016T000000
-RDATE:19891015T000000
-RDATE:19901021T000000
-RDATE:19911020T000000
-RDATE:19921025T000000
-RDATE:19931017T000000
-RDATE:19941016T000000
-RDATE:19951015T000000
-RDATE:19961006T000000
-RDATE:19971006T000000
-RDATE:19981011T000000
-RDATE:19991003T000000
-RDATE:20001008T000000
-RDATE:20011014T000000
-RDATE:20021103T000000
-RDATE:20041102T000000
-RDATE:20051016T000000
-RDATE:20061105T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:AMT
-DTSTART:19320401T000000
-RDATE:19320401T000000
-RDATE:19330401T000000
-RDATE:19500416T010000
-RDATE:19510401T000000
-RDATE:19520401T000000
-RDATE:19530301T000000
-RDATE:19640301T000000
-RDATE:19650331T000000
-RDATE:19660301T000000
-RDATE:19670301T000000
-RDATE:19680301T000000
-RDATE:19860315T000000
-RDATE:19870214T000000
-RDATE:19880207T000000
-RDATE:19890129T000000
-RDATE:19900211T000000
-RDATE:19910217T000000
-RDATE:19920209T000000
-RDATE:19930131T000000
-RDATE:19940220T000000
-RDATE:19950219T000000
-RDATE:19960211T000000
-RDATE:19970216T000000
-RDATE:19980301T000000
-RDATE:19990221T000000
-RDATE:20000227T000000
-RDATE:20010218T000000
-RDATE:20020217T000000
-RDATE:20030216T000000
-RDATE:20050220T000000
-RDATE:20060219T000000
-RDATE:20070225T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0400
-TZNAME:AMT
-DTSTART:20030924T000000
-RDATE:20030924T000000
-RDATE:20041001T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Curacao.ics b/libkcal/libical/zoneinfo/America/Curacao.ics
deleted file mode 100644
index 2bf9aa06..00000000
--- a/libkcal/libical/zoneinfo/America/Curacao.ics
+++ /dev/null
@@ -1,22 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Curacao
-X-LIC-LOCATION:America/Curacao
-BEGIN:STANDARD
-TZOFFSETFROM:-043544
-TZOFFSETTO:-0430
-TZNAME:ANT
-DTSTART:19120212T000000
-RDATE:19120212T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0430
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:19650101T000000
-RDATE:19650101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Danmarkshavn.ics b/libkcal/libical/zoneinfo/America/Danmarkshavn.ics
deleted file mode 100644
index cf26fd4a..00000000
--- a/libkcal/libical/zoneinfo/America/Danmarkshavn.ics
+++ /dev/null
@@ -1,66 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Danmarkshavn
-X-LIC-LOCATION:America/Danmarkshavn
-BEGIN:STANDARD
-TZOFFSETFROM:-011440
-TZOFFSETTO:-0300
-TZNAME:WGT
-DTSTART:19160728T000000
-RDATE:19160728T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0200
-TZNAME:WGST
-DTSTART:19800406T020000
-RDATE:19800406T020000
-RDATE:19810328T220000
-RDATE:19820327T220000
-RDATE:19830326T220000
-RDATE:19840324T220000
-RDATE:19850330T220000
-RDATE:19860329T220000
-RDATE:19870328T220000
-RDATE:19880326T220000
-RDATE:19890325T220000
-RDATE:19900324T220000
-RDATE:19910330T220000
-RDATE:19920328T220000
-RDATE:19930327T220000
-RDATE:19940326T220000
-RDATE:19950325T220000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0300
-TZNAME:WGT
-DTSTART:19800927T230000
-RDATE:19800927T230000
-RDATE:19810926T230000
-RDATE:19820925T230000
-RDATE:19830924T230000
-RDATE:19840929T230000
-RDATE:19850928T230000
-RDATE:19860927T230000
-RDATE:19870926T230000
-RDATE:19880924T230000
-RDATE:19890923T230000
-RDATE:19900929T230000
-RDATE:19910928T230000
-RDATE:19920926T230000
-RDATE:19930925T230000
-RDATE:19940924T230000
-RDATE:19950923T230000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:+0000
-TZNAME:GMT
-DTSTART:19960101T000000
-RDATE:19960101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Dawson.ics b/libkcal/libical/zoneinfo/America/Dawson.ics
deleted file mode 100644
index 8ab18cd3..00000000
--- a/libkcal/libical/zoneinfo/America/Dawson.ics
+++ /dev/null
@@ -1,153 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Dawson
-X-LIC-LOCATION:America/Dawson
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0800
-TZOFFSETTO:-0700
-TZNAME:PDT
-DTSTART:20070311T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0800
-TZNAME:PST
-DTSTART:20071104T020000
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-091740
-TZOFFSETTO:-0900
-TZNAME:YST
-DTSTART:19000820T000000
-RDATE:19000820T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0900
-TZOFFSETTO:-0800
-TZNAME:YDT
-DTSTART:19180414T020000
-RDATE:19180414T020000
-RDATE:19190525T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0800
-TZOFFSETTO:-0900
-TZNAME:YST
-DTSTART:19181027T020000
-RDATE:19181027T020000
-RDATE:19191101T000000
-RDATE:19450930T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0900
-TZOFFSETTO:-0800
-TZNAME:YWT
-DTSTART:19420209T020000
-RDATE:19420209T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0800
-TZOFFSETTO:-0800
-TZNAME:YPT
-DTSTART:19450814T150000
-RDATE:19450814T150000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0900
-TZOFFSETTO:-0700
-TZNAME:YDDT
-DTSTART:19650425T000000
-RDATE:19650425T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0900
-TZNAME:YST
-DTSTART:19651031T020000
-RDATE:19651031T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0900
-TZOFFSETTO:-0800
-DTSTART:19731028T000000
-RDATE:19731028T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0800
-TZOFFSETTO:-0800
-TZNAME:PST
-DTSTART:19800101T000000
-RDATE:19800101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0800
-TZOFFSETTO:-0700
-TZNAME:PDT
-DTSTART:19800427T020000
-RDATE:19800427T020000
-RDATE:19810426T020000
-RDATE:19820425T020000
-RDATE:19830424T020000
-RDATE:19840429T020000
-RDATE:19850428T020000
-RDATE:19860427T020000
-RDATE:19870405T020000
-RDATE:19880403T020000
-RDATE:19890402T020000
-RDATE:19900401T020000
-RDATE:19910407T020000
-RDATE:19920405T020000
-RDATE:19930404T020000
-RDATE:19940403T020000
-RDATE:19950402T020000
-RDATE:19960407T020000
-RDATE:19970406T020000
-RDATE:19980405T020000
-RDATE:19990404T020000
-RDATE:20000402T020000
-RDATE:20010401T020000
-RDATE:20020407T020000
-RDATE:20030406T020000
-RDATE:20040404T020000
-RDATE:20050403T020000
-RDATE:20060402T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0800
-TZNAME:PST
-DTSTART:19801026T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-RDATE:19831030T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861026T020000
-RDATE:19871025T020000
-RDATE:19881030T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931031T020000
-RDATE:19941030T020000
-RDATE:19951029T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:19991031T020000
-RDATE:20001029T020000
-RDATE:20011028T020000
-RDATE:20021027T020000
-RDATE:20031026T020000
-RDATE:20041031T020000
-RDATE:20051030T020000
-RDATE:20061029T020000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Dawson_Creek.ics b/libkcal/libical/zoneinfo/America/Dawson_Creek.ics
deleted file mode 100644
index 9b27cc19..00000000
--- a/libkcal/libical/zoneinfo/America/Dawson_Creek.ics
+++ /dev/null
@@ -1,109 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Dawson_Creek
-X-LIC-LOCATION:America/Dawson_Creek
-BEGIN:STANDARD
-TZOFFSETFROM:-080056
-TZOFFSETTO:-0800
-TZNAME:PST
-DTSTART:18840101T000000
-RDATE:18840101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0800
-TZOFFSETTO:-0700
-TZNAME:PDT
-DTSTART:19180414T020000
-RDATE:19180414T020000
-RDATE:19470427T020000
-RDATE:19480425T020000
-RDATE:19490424T020000
-RDATE:19500430T020000
-RDATE:19510429T020000
-RDATE:19520427T020000
-RDATE:19530426T020000
-RDATE:19540425T020000
-RDATE:19550424T020000
-RDATE:19560429T020000
-RDATE:19570428T020000
-RDATE:19580427T020000
-RDATE:19590426T020000
-RDATE:19600424T020000
-RDATE:19610430T020000
-RDATE:19620429T020000
-RDATE:19630428T020000
-RDATE:19640426T020000
-RDATE:19650425T020000
-RDATE:19660424T020000
-RDATE:19670430T020000
-RDATE:19680428T020000
-RDATE:19690427T020000
-RDATE:19700426T020000
-RDATE:19710425T020000
-RDATE:19720430T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0800
-TZNAME:PST
-DTSTART:19181031T020000
-RDATE:19181031T020000
-RDATE:19450930T020000
-RDATE:19470928T020000
-RDATE:19480926T020000
-RDATE:19490925T020000
-RDATE:19500924T020000
-RDATE:19510930T020000
-RDATE:19520928T020000
-RDATE:19530927T020000
-RDATE:19540926T020000
-RDATE:19550925T020000
-RDATE:19560930T020000
-RDATE:19570929T020000
-RDATE:19580928T020000
-RDATE:19590927T020000
-RDATE:19600925T020000
-RDATE:19610924T020000
-RDATE:19621028T020000
-RDATE:19631027T020000
-RDATE:19641025T020000
-RDATE:19651031T020000
-RDATE:19661030T020000
-RDATE:19671029T020000
-RDATE:19681027T020000
-RDATE:19691026T020000
-RDATE:19701025T020000
-RDATE:19711031T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0800
-TZOFFSETTO:-0700
-TZNAME:PWT
-DTSTART:19420209T020000
-RDATE:19420209T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0700
-TZNAME:PPT
-DTSTART:19450814T160000
-RDATE:19450814T160000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0800
-TZOFFSETTO:-0800
-TZNAME:PST
-DTSTART:19470101T000000
-RDATE:19470101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:19720830T020000
-RDATE:19720830T020000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Denver.ics b/libkcal/libical/zoneinfo/America/Denver.ics
deleted file mode 100644
index 0dfeb68e..00000000
--- a/libkcal/libical/zoneinfo/America/Denver.ics
+++ /dev/null
@@ -1,158 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Denver
-X-LIC-LOCATION:America/Denver
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0600
-TZNAME:MDT
-DTSTART:20070311T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:20071104T020000
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-065956
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:18831118T120004
-RDATE:18831118T120004
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0600
-TZNAME:MDT
-DTSTART:19180331T020000
-RDATE:19180331T020000
-RDATE:19190330T020000
-RDATE:19200328T020000
-RDATE:19210327T020000
-RDATE:19650425T020000
-RDATE:19660424T020000
-RDATE:19670430T020000
-RDATE:19680428T020000
-RDATE:19690427T020000
-RDATE:19700426T020000
-RDATE:19710425T020000
-RDATE:19720430T020000
-RDATE:19730429T020000
-RDATE:19740106T020000
-RDATE:19750223T020000
-RDATE:19760425T020000
-RDATE:19770424T020000
-RDATE:19780430T020000
-RDATE:19790429T020000
-RDATE:19800427T020000
-RDATE:19810426T020000
-RDATE:19820425T020000
-RDATE:19830424T020000
-RDATE:19840429T020000
-RDATE:19850428T020000
-RDATE:19860427T020000
-RDATE:19870405T020000
-RDATE:19880403T020000
-RDATE:19890402T020000
-RDATE:19900401T020000
-RDATE:19910407T020000
-RDATE:19920405T020000
-RDATE:19930404T020000
-RDATE:19940403T020000
-RDATE:19950402T020000
-RDATE:19960407T020000
-RDATE:19970406T020000
-RDATE:19980405T020000
-RDATE:19990404T020000
-RDATE:20000402T020000
-RDATE:20010401T020000
-RDATE:20020407T020000
-RDATE:20030406T020000
-RDATE:20040404T020000
-RDATE:20050403T020000
-RDATE:20060402T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:19181027T020000
-RDATE:19181027T020000
-RDATE:19191026T020000
-RDATE:19201031T020000
-RDATE:19210522T020000
-RDATE:19450930T020000
-RDATE:19651031T020000
-RDATE:19661030T020000
-RDATE:19671029T020000
-RDATE:19681027T020000
-RDATE:19691026T020000
-RDATE:19701025T020000
-RDATE:19711031T020000
-RDATE:19721029T020000
-RDATE:19731028T020000
-RDATE:19741027T020000
-RDATE:19751026T020000
-RDATE:19761031T020000
-RDATE:19771030T020000
-RDATE:19781029T020000
-RDATE:19791028T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-RDATE:19831030T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861026T020000
-RDATE:19871025T020000
-RDATE:19881030T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931031T020000
-RDATE:19941030T020000
-RDATE:19951029T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:19991031T020000
-RDATE:20001029T020000
-RDATE:20011028T020000
-RDATE:20021027T020000
-RDATE:20031026T020000
-RDATE:20041031T020000
-RDATE:20051030T020000
-RDATE:20061029T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:19200101T000000
-RDATE:19200101T000000
-RDATE:19420101T000000
-RDATE:19460101T000000
-RDATE:19670101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0600
-TZNAME:MWT
-DTSTART:19420209T020000
-RDATE:19420209T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0600
-TZNAME:MPT
-DTSTART:19450814T170000
-RDATE:19450814T170000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Detroit.ics b/libkcal/libical/zoneinfo/America/Detroit.ics
deleted file mode 100644
index 0930f31e..00000000
--- a/libkcal/libical/zoneinfo/America/Detroit.ics
+++ /dev/null
@@ -1,145 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Detroit
-X-LIC-LOCATION:America/Detroit
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:EDT
-DTSTART:20070311T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:20071104T020000
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-053211
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19050101T000000
-RDATE:19050101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19150515T020000
-RDATE:19150515T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19420101T000000
-RDATE:19420101T000000
-RDATE:19460101T000000
-RDATE:19730101T000000
-RDATE:19750101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:EWT
-DTSTART:19420209T020000
-RDATE:19420209T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0400
-TZNAME:EPT
-DTSTART:19450814T190000
-RDATE:19450814T190000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19450930T020000
-RDATE:19450930T020000
-RDATE:19480926T020000
-RDATE:19671029T020000
-RDATE:19731028T020000
-RDATE:19741027T020000
-RDATE:19751026T020000
-RDATE:19761031T020000
-RDATE:19771030T020000
-RDATE:19781029T020000
-RDATE:19791028T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-RDATE:19831030T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861026T020000
-RDATE:19871025T020000
-RDATE:19881030T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931031T020000
-RDATE:19941030T020000
-RDATE:19951029T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:19991031T020000
-RDATE:20001029T020000
-RDATE:20011028T020000
-RDATE:20021027T020000
-RDATE:20031026T020000
-RDATE:20041031T020000
-RDATE:20051030T020000
-RDATE:20061029T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:EDT
-DTSTART:19480425T020000
-RDATE:19480425T020000
-RDATE:19670614T020000
-RDATE:19730429T020000
-RDATE:19740106T020000
-RDATE:19750427T020000
-RDATE:19760425T020000
-RDATE:19770424T020000
-RDATE:19780430T020000
-RDATE:19790429T020000
-RDATE:19800427T020000
-RDATE:19810426T020000
-RDATE:19820425T020000
-RDATE:19830424T020000
-RDATE:19840429T020000
-RDATE:19850428T020000
-RDATE:19860427T020000
-RDATE:19870405T020000
-RDATE:19880403T020000
-RDATE:19890402T020000
-RDATE:19900401T020000
-RDATE:19910407T020000
-RDATE:19920405T020000
-RDATE:19930404T020000
-RDATE:19940403T020000
-RDATE:19950402T020000
-RDATE:19960407T020000
-RDATE:19970406T020000
-RDATE:19980405T020000
-RDATE:19990404T020000
-RDATE:20000402T020000
-RDATE:20010401T020000
-RDATE:20020407T020000
-RDATE:20030406T020000
-RDATE:20040404T020000
-RDATE:20050403T020000
-RDATE:20060402T020000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Dominica.ics b/libkcal/libical/zoneinfo/America/Dominica.ics
deleted file mode 100644
index bb08df29..00000000
--- a/libkcal/libical/zoneinfo/America/Dominica.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Dominica
-X-LIC-LOCATION:America/Dominica
-BEGIN:STANDARD
-TZOFFSETFROM:-040536
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:19110701T000100
-RDATE:19110701T000100
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Edmonton.ics b/libkcal/libical/zoneinfo/America/Edmonton.ics
deleted file mode 100644
index 5ed27cd4..00000000
--- a/libkcal/libical/zoneinfo/America/Edmonton.ics
+++ /dev/null
@@ -1,151 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Edmonton
-X-LIC-LOCATION:America/Edmonton
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0600
-TZNAME:MDT
-DTSTART:20070311T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:20071104T020000
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-073352
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:19060901T000000
-RDATE:19060901T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0600
-TZNAME:MDT
-DTSTART:19180414T020000
-RDATE:19180414T020000
-RDATE:19190413T020000
-RDATE:19200425T020000
-RDATE:19210424T020000
-RDATE:19220430T020000
-RDATE:19230429T020000
-RDATE:19470427T020000
-RDATE:19670430T020000
-RDATE:19690427T020000
-RDATE:19720430T020000
-RDATE:19730429T020000
-RDATE:19740428T020000
-RDATE:19750427T020000
-RDATE:19760425T020000
-RDATE:19770424T020000
-RDATE:19780430T020000
-RDATE:19790429T020000
-RDATE:19800427T020000
-RDATE:19810426T020000
-RDATE:19820425T020000
-RDATE:19830424T020000
-RDATE:19840429T020000
-RDATE:19850428T020000
-RDATE:19860427T020000
-RDATE:19870405T020000
-RDATE:19880403T020000
-RDATE:19890402T020000
-RDATE:19900401T020000
-RDATE:19910407T020000
-RDATE:19920405T020000
-RDATE:19930404T020000
-RDATE:19940403T020000
-RDATE:19950402T020000
-RDATE:19960407T020000
-RDATE:19970406T020000
-RDATE:19980405T020000
-RDATE:19990404T020000
-RDATE:20000402T020000
-RDATE:20010401T020000
-RDATE:20020407T020000
-RDATE:20030406T020000
-RDATE:20040404T020000
-RDATE:20050403T020000
-RDATE:20060402T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:19181031T020000
-RDATE:19181031T020000
-RDATE:19190527T020000
-RDATE:19201031T020000
-RDATE:19210925T020000
-RDATE:19220924T020000
-RDATE:19230930T020000
-RDATE:19450930T020000
-RDATE:19470928T020000
-RDATE:19671029T020000
-RDATE:19691026T020000
-RDATE:19721029T020000
-RDATE:19731028T020000
-RDATE:19741027T020000
-RDATE:19751026T020000
-RDATE:19761031T020000
-RDATE:19771030T020000
-RDATE:19781029T020000
-RDATE:19791028T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-RDATE:19831030T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861026T020000
-RDATE:19871025T020000
-RDATE:19881030T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931031T020000
-RDATE:19941030T020000
-RDATE:19951029T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:19991031T020000
-RDATE:20001029T020000
-RDATE:20011028T020000
-RDATE:20021027T020000
-RDATE:20031026T020000
-RDATE:20041031T020000
-RDATE:20051030T020000
-RDATE:20061029T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0600
-TZNAME:MWT
-DTSTART:19420209T020000
-RDATE:19420209T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0600
-TZNAME:MPT
-DTSTART:19450814T170000
-RDATE:19450814T170000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:19870101T000000
-RDATE:19870101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Eirunepe.ics b/libkcal/libical/zoneinfo/America/Eirunepe.ics
deleted file mode 100644
index 6cdfe44b..00000000
--- a/libkcal/libical/zoneinfo/America/Eirunepe.ics
+++ /dev/null
@@ -1,66 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Eirunepe
-X-LIC-LOCATION:America/Eirunepe
-BEGIN:STANDARD
-TZOFFSETFROM:-043928
-TZOFFSETTO:-0500
-TZNAME:ACT
-DTSTART:19140101T000000
-RDATE:19140101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:ACST
-DTSTART:19311003T110000
-RDATE:19311003T110000
-RDATE:19321003T000000
-RDATE:19491201T000000
-RDATE:19501201T000000
-RDATE:19511201T000000
-RDATE:19521201T000000
-RDATE:19631209T000000
-RDATE:19650131T000000
-RDATE:19651201T000000
-RDATE:19661101T000000
-RDATE:19671101T000000
-RDATE:19851102T000000
-RDATE:19861025T000000
-RDATE:19871025T000000
-RDATE:19931017T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0500
-TZNAME:ACT
-DTSTART:19320401T000000
-RDATE:19320401T000000
-RDATE:19330401T000000
-RDATE:19500416T010000
-RDATE:19510401T000000
-RDATE:19520401T000000
-RDATE:19530301T000000
-RDATE:19640301T000000
-RDATE:19650331T000000
-RDATE:19660301T000000
-RDATE:19670301T000000
-RDATE:19680301T000000
-RDATE:19860315T000000
-RDATE:19870214T000000
-RDATE:19880207T000000
-RDATE:19940220T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:ACT
-DTSTART:19880912T000000
-RDATE:19880912T000000
-RDATE:19930928T000000
-RDATE:19940922T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/El_Salvador.ics b/libkcal/libical/zoneinfo/America/El_Salvador.ics
deleted file mode 100644
index ed412780..00000000
--- a/libkcal/libical/zoneinfo/America/El_Salvador.ics
+++ /dev/null
@@ -1,31 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/El_Salvador
-X-LIC-LOCATION:America/El_Salvador
-BEGIN:STANDARD
-TZOFFSETFROM:-055648
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19210101T000000
-RDATE:19210101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:19870503T000000
-RDATE:19870503T000000
-RDATE:19880501T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19870927T000000
-RDATE:19870927T000000
-RDATE:19880925T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Fortaleza.ics b/libkcal/libical/zoneinfo/America/Fortaleza.ics
deleted file mode 100644
index a72a627b..00000000
--- a/libkcal/libical/zoneinfo/America/Fortaleza.ics
+++ /dev/null
@@ -1,75 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Fortaleza
-X-LIC-LOCATION:America/Fortaleza
-BEGIN:STANDARD
-TZOFFSETFROM:-0234
-TZOFFSETTO:-0300
-TZNAME:BRT
-DTSTART:19140101T000000
-RDATE:19140101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0200
-TZNAME:BRST
-DTSTART:19311003T110000
-RDATE:19311003T110000
-RDATE:19321003T000000
-RDATE:19491201T000000
-RDATE:19501201T000000
-RDATE:19511201T000000
-RDATE:19521201T000000
-RDATE:19631209T000000
-RDATE:19650131T000000
-RDATE:19651201T000000
-RDATE:19661101T000000
-RDATE:19671101T000000
-RDATE:19851102T000000
-RDATE:19861025T000000
-RDATE:19871025T000000
-RDATE:19881016T000000
-RDATE:19891015T000000
-RDATE:19991003T000000
-RDATE:20001008T000000
-RDATE:20011014T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0300
-TZNAME:BRT
-DTSTART:19320401T000000
-RDATE:19320401T000000
-RDATE:19330401T000000
-RDATE:19500416T010000
-RDATE:19510401T000000
-RDATE:19520401T000000
-RDATE:19530301T000000
-RDATE:19640301T000000
-RDATE:19650331T000000
-RDATE:19660301T000000
-RDATE:19670301T000000
-RDATE:19680301T000000
-RDATE:19860315T000000
-RDATE:19870214T000000
-RDATE:19880207T000000
-RDATE:19890129T000000
-RDATE:19900211T000000
-RDATE:20000227T000000
-RDATE:20001022T000000
-RDATE:20020217T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0300
-TZNAME:BRT
-DTSTART:19900917T000000
-RDATE:19900917T000000
-RDATE:19990930T000000
-RDATE:20010913T000000
-RDATE:20021001T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Glace_Bay.ics b/libkcal/libical/zoneinfo/America/Glace_Bay.ics
deleted file mode 100644
index 5c025d90..00000000
--- a/libkcal/libical/zoneinfo/America/Glace_Bay.ics
+++ /dev/null
@@ -1,140 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Glace_Bay
-X-LIC-LOCATION:America/Glace_Bay
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:ADT
-DTSTART:20070311T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:20071104T020000
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-035948
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:19020615T000000
-RDATE:19020615T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:ADT
-DTSTART:19180414T020000
-RDATE:19180414T020000
-RDATE:19530426T020000
-RDATE:19720430T020000
-RDATE:19730429T020000
-RDATE:19740428T020000
-RDATE:19750427T020000
-RDATE:19760425T020000
-RDATE:19770424T020000
-RDATE:19780430T020000
-RDATE:19790429T020000
-RDATE:19800427T020000
-RDATE:19810426T020000
-RDATE:19820425T020000
-RDATE:19830424T020000
-RDATE:19840429T020000
-RDATE:19850428T020000
-RDATE:19860427T020000
-RDATE:19870405T020000
-RDATE:19880403T020000
-RDATE:19890402T020000
-RDATE:19900401T020000
-RDATE:19910407T020000
-RDATE:19920405T020000
-RDATE:19930404T020000
-RDATE:19940403T020000
-RDATE:19950402T020000
-RDATE:19960407T020000
-RDATE:19970406T020000
-RDATE:19980405T020000
-RDATE:19990404T020000
-RDATE:20000402T020000
-RDATE:20010401T020000
-RDATE:20020407T020000
-RDATE:20030406T020000
-RDATE:20040404T020000
-RDATE:20050403T020000
-RDATE:20060402T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:19181031T020000
-RDATE:19181031T020000
-RDATE:19450930T020000
-RDATE:19530927T020000
-RDATE:19721029T020000
-RDATE:19731028T020000
-RDATE:19741027T020000
-RDATE:19751026T020000
-RDATE:19761031T020000
-RDATE:19771030T020000
-RDATE:19781029T020000
-RDATE:19791028T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-RDATE:19831030T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861026T020000
-RDATE:19871025T020000
-RDATE:19881030T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931031T020000
-RDATE:19941030T020000
-RDATE:19951029T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:19991031T020000
-RDATE:20001029T020000
-RDATE:20011028T020000
-RDATE:20021027T020000
-RDATE:20031026T020000
-RDATE:20041031T020000
-RDATE:20051030T020000
-RDATE:20061029T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:AWT
-DTSTART:19420209T020000
-RDATE:19420209T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0300
-TZNAME:APT
-DTSTART:19450814T200000
-RDATE:19450814T200000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:19530101T000000
-RDATE:19530101T000000
-RDATE:19540101T000000
-RDATE:19720101T000000
-RDATE:19740101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Godthab.ics b/libkcal/libical/zoneinfo/America/Godthab.ics
deleted file mode 100644
index 9e562d22..00000000
--- a/libkcal/libical/zoneinfo/America/Godthab.ics
+++ /dev/null
@@ -1,58 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Godthab
-X-LIC-LOCATION:America/Godthab
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0200
-TZNAME:WGST
-DTSTART:19810328T220000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYMONTHDAY=24,25,26,27,28,29,30;BYDAY=SA
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0300
-TZNAME:WGT
-DTSTART:19961026T230000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYMONTHDAY=24,25,26,27,28,29,30;BYDAY=SA
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-032656
-TZOFFSETTO:-0300
-TZNAME:WGT
-DTSTART:19160728T000000
-RDATE:19160728T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0200
-TZNAME:WGST
-DTSTART:19800406T020000
-RDATE:19800406T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0300
-TZNAME:WGT
-DTSTART:19800927T230000
-RDATE:19800927T230000
-RDATE:19810926T230000
-RDATE:19820925T230000
-RDATE:19830924T230000
-RDATE:19840929T230000
-RDATE:19850928T230000
-RDATE:19860927T230000
-RDATE:19870926T230000
-RDATE:19880924T230000
-RDATE:19890923T230000
-RDATE:19900929T230000
-RDATE:19910928T230000
-RDATE:19920926T230000
-RDATE:19930925T230000
-RDATE:19940924T230000
-RDATE:19950923T230000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Goose_Bay.ics b/libkcal/libical/zoneinfo/America/Goose_Bay.ics
deleted file mode 100644
index fde693a2..00000000
--- a/libkcal/libical/zoneinfo/America/Goose_Bay.ics
+++ /dev/null
@@ -1,258 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Goose_Bay
-X-LIC-LOCATION:America/Goose_Bay
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:ADT
-DTSTART:20070311T000100
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:20071104T000100
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-040140
-TZOFFSETTO:-033052
-TZNAME:NST
-DTSTART:18840101T000000
-RDATE:18840101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-033052
-TZOFFSETTO:-033052
-TZNAME:NST
-DTSTART:19180101T000000
-RDATE:19180101T000000
-RDATE:19190101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-033052
-TZOFFSETTO:-023052
-TZNAME:NDT
-DTSTART:19180414T020000
-RDATE:19180414T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-023052
-TZOFFSETTO:-033052
-TZNAME:NST
-DTSTART:19181031T020000
-RDATE:19181031T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-033052
-TZOFFSETTO:-0330
-TZNAME:NST
-DTSTART:19350330T000000
-RDATE:19350330T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0330
-TZOFFSETTO:-0330
-TZNAME:NST
-DTSTART:19360101T000000
-RDATE:19360101T000000
-RDATE:19460101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0330
-TZOFFSETTO:-0230
-TZNAME:NDT
-DTSTART:19360511T000000
-RDATE:19360511T000000
-RDATE:19370510T000000
-RDATE:19380509T000000
-RDATE:19390515T000000
-RDATE:19400513T000000
-RDATE:19410512T000000
-RDATE:19460512T020000
-RDATE:19470511T020000
-RDATE:19480509T020000
-RDATE:19490508T020000
-RDATE:19500514T020000
-RDATE:19510429T020000
-RDATE:19520427T020000
-RDATE:19530426T020000
-RDATE:19540425T020000
-RDATE:19550424T020000
-RDATE:19560429T020000
-RDATE:19570428T020000
-RDATE:19580427T020000
-RDATE:19590426T020000
-RDATE:19600424T020000
-RDATE:19610430T020000
-RDATE:19620429T020000
-RDATE:19630428T020000
-RDATE:19640426T020000
-RDATE:19650425T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0230
-TZOFFSETTO:-0330
-TZNAME:NST
-DTSTART:19361005T000000
-RDATE:19361005T000000
-RDATE:19371004T000000
-RDATE:19381003T000000
-RDATE:19391002T000000
-RDATE:19401007T000000
-RDATE:19411006T000000
-RDATE:19450930T020000
-RDATE:19461006T020000
-RDATE:19471005T020000
-RDATE:19481003T020000
-RDATE:19491002T020000
-RDATE:19501008T020000
-RDATE:19510930T020000
-RDATE:19520928T020000
-RDATE:19530927T020000
-RDATE:19540926T020000
-RDATE:19550925T020000
-RDATE:19560930T020000
-RDATE:19570929T020000
-RDATE:19580928T020000
-RDATE:19590927T020000
-RDATE:19601030T020000
-RDATE:19611029T020000
-RDATE:19621028T020000
-RDATE:19631027T020000
-RDATE:19641025T020000
-RDATE:19651031T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0330
-TZOFFSETTO:-0230
-TZNAME:NWT
-DTSTART:19420511T000000
-RDATE:19420511T000000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0230
-TZOFFSETTO:-0230
-TZNAME:NPT
-DTSTART:19450814T203000
-RDATE:19450814T203000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0330
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:19660315T020000
-RDATE:19660315T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:ADT
-DTSTART:19660424T020000
-RDATE:19660424T020000
-RDATE:19670430T020000
-RDATE:19680428T020000
-RDATE:19690427T020000
-RDATE:19700426T020000
-RDATE:19710425T020000
-RDATE:19720430T020000
-RDATE:19730429T020000
-RDATE:19740428T020000
-RDATE:19750427T020000
-RDATE:19760425T020000
-RDATE:19770424T020000
-RDATE:19780430T020000
-RDATE:19790429T020000
-RDATE:19800427T020000
-RDATE:19810426T020000
-RDATE:19820425T020000
-RDATE:19830424T020000
-RDATE:19840429T020000
-RDATE:19850428T020000
-RDATE:19860427T020000
-RDATE:19870405T000100
-RDATE:19890402T000100
-RDATE:19900401T000100
-RDATE:19910407T000100
-RDATE:19920405T000100
-RDATE:19930404T000100
-RDATE:19940403T000100
-RDATE:19950402T000100
-RDATE:19960407T000100
-RDATE:19970406T000100
-RDATE:19980405T000100
-RDATE:19990404T000100
-RDATE:20000402T000100
-RDATE:20010401T000100
-RDATE:20020407T000100
-RDATE:20030406T000100
-RDATE:20040404T000100
-RDATE:20050403T000100
-RDATE:20060402T000100
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:19661030T020000
-RDATE:19661030T020000
-RDATE:19671029T020000
-RDATE:19681027T020000
-RDATE:19691026T020000
-RDATE:19701025T020000
-RDATE:19711031T020000
-RDATE:19721029T020000
-RDATE:19731028T020000
-RDATE:19741027T020000
-RDATE:19751026T020000
-RDATE:19761031T020000
-RDATE:19771030T020000
-RDATE:19781029T020000
-RDATE:19791028T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-RDATE:19831030T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861026T020000
-RDATE:19871025T000100
-RDATE:19891029T000100
-RDATE:19901028T000100
-RDATE:19911027T000100
-RDATE:19921025T000100
-RDATE:19931031T000100
-RDATE:19941030T000100
-RDATE:19951029T000100
-RDATE:19961027T000100
-RDATE:19971026T000100
-RDATE:19981025T000100
-RDATE:19991031T000100
-RDATE:20001029T000100
-RDATE:20011028T000100
-RDATE:20021027T000100
-RDATE:20031026T000100
-RDATE:20041031T000100
-RDATE:20051030T000100
-RDATE:20061029T000100
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0200
-TZNAME:ADDT
-DTSTART:19880403T000100
-RDATE:19880403T000100
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:19881030T000100
-RDATE:19881030T000100
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Grand_Turk.ics b/libkcal/libical/zoneinfo/America/Grand_Turk.ics
deleted file mode 100644
index d36e4eaf..00000000
--- a/libkcal/libical/zoneinfo/America/Grand_Turk.ics
+++ /dev/null
@@ -1,104 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Grand_Turk
-X-LIC-LOCATION:America/Grand_Turk
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:EDT
-DTSTART:20070311T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:20071104T020000
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-044432
-TZOFFSETTO:-050712
-TZNAME:KMT
-DTSTART:18900101T000000
-RDATE:18900101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-050712
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19120201T000000
-RDATE:19120201T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:EDT
-DTSTART:19790429T020000
-RDATE:19790429T020000
-RDATE:19800427T020000
-RDATE:19810426T020000
-RDATE:19820425T020000
-RDATE:19830424T020000
-RDATE:19840429T020000
-RDATE:19850428T020000
-RDATE:19860427T020000
-RDATE:19870405T020000
-RDATE:19880403T020000
-RDATE:19890402T020000
-RDATE:19900401T020000
-RDATE:19910407T020000
-RDATE:19920405T020000
-RDATE:19930404T020000
-RDATE:19940403T020000
-RDATE:19950402T020000
-RDATE:19960407T020000
-RDATE:19970406T020000
-RDATE:19980405T020000
-RDATE:19990404T020000
-RDATE:20000402T020000
-RDATE:20010401T020000
-RDATE:20020407T020000
-RDATE:20030406T020000
-RDATE:20040404T020000
-RDATE:20050403T020000
-RDATE:20060402T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19791028T020000
-RDATE:19791028T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-RDATE:19831030T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861026T020000
-RDATE:19871025T020000
-RDATE:19881030T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931031T020000
-RDATE:19941030T020000
-RDATE:19951029T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:19991031T020000
-RDATE:20001029T020000
-RDATE:20011028T020000
-RDATE:20021027T020000
-RDATE:20031026T020000
-RDATE:20041031T020000
-RDATE:20051030T020000
-RDATE:20061029T020000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Grenada.ics b/libkcal/libical/zoneinfo/America/Grenada.ics
deleted file mode 100644
index da3fefcc..00000000
--- a/libkcal/libical/zoneinfo/America/Grenada.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Grenada
-X-LIC-LOCATION:America/Grenada
-BEGIN:STANDARD
-TZOFFSETFROM:-0407
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:19110701T000000
-RDATE:19110701T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Guadeloupe.ics b/libkcal/libical/zoneinfo/America/Guadeloupe.ics
deleted file mode 100644
index a5dc937f..00000000
--- a/libkcal/libical/zoneinfo/America/Guadeloupe.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Guadeloupe
-X-LIC-LOCATION:America/Guadeloupe
-BEGIN:STANDARD
-TZOFFSETFROM:-040608
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:19110608T000000
-RDATE:19110608T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Guatemala.ics b/libkcal/libical/zoneinfo/America/Guatemala.ics
deleted file mode 100644
index 2357724b..00000000
--- a/libkcal/libical/zoneinfo/America/Guatemala.ics
+++ /dev/null
@@ -1,35 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Guatemala
-X-LIC-LOCATION:America/Guatemala
-BEGIN:STANDARD
-TZOFFSETFROM:-060204
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19181005T000000
-RDATE:19181005T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:19731125T000000
-RDATE:19731125T000000
-RDATE:19830521T000000
-RDATE:19910323T000000
-RDATE:20060430T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19740224T000000
-RDATE:19740224T000000
-RDATE:19830922T000000
-RDATE:19910907T000000
-RDATE:20061001T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Guayaquil.ics b/libkcal/libical/zoneinfo/America/Guayaquil.ics
deleted file mode 100644
index 621b18f6..00000000
--- a/libkcal/libical/zoneinfo/America/Guayaquil.ics
+++ /dev/null
@@ -1,22 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Guayaquil
-X-LIC-LOCATION:America/Guayaquil
-BEGIN:STANDARD
-TZOFFSETFROM:-051920
-TZOFFSETTO:-0514
-TZNAME:QMT
-DTSTART:18900101T000000
-RDATE:18900101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0514
-TZOFFSETTO:-0500
-TZNAME:ECT
-DTSTART:19310101T000000
-RDATE:19310101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Guyana.ics b/libkcal/libical/zoneinfo/America/Guyana.ics
deleted file mode 100644
index 4177e407..00000000
--- a/libkcal/libical/zoneinfo/America/Guyana.ics
+++ /dev/null
@@ -1,36 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Guyana
-X-LIC-LOCATION:America/Guyana
-BEGIN:STANDARD
-TZOFFSETFROM:-035240
-TZOFFSETTO:-0345
-TZNAME:GBGT
-DTSTART:19150301T000000
-RDATE:19150301T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0345
-TZOFFSETTO:-0345
-TZNAME:GYT
-DTSTART:19660526T000000
-RDATE:19660526T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0345
-TZOFFSETTO:-0300
-TZNAME:GYT
-DTSTART:19750731T000000
-RDATE:19750731T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:GYT
-DTSTART:19910101T000000
-RDATE:19910101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Halifax.ics b/libkcal/libical/zoneinfo/America/Halifax.ics
deleted file mode 100644
index cff8c41f..00000000
--- a/libkcal/libical/zoneinfo/America/Halifax.ics
+++ /dev/null
@@ -1,228 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Halifax
-X-LIC-LOCATION:America/Halifax
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:ADT
-DTSTART:20070311T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:20071104T020000
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-041424
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:19020615T000000
-RDATE:19020615T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:ADT
-DTSTART:19160401T000000
-RDATE:19160401T000000
-RDATE:19180414T020000
-RDATE:19200509T000000
-RDATE:19210506T000000
-RDATE:19220430T000000
-RDATE:19230506T000000
-RDATE:19240504T000000
-RDATE:19250503T000000
-RDATE:19260516T000000
-RDATE:19270501T000000
-RDATE:19280513T000000
-RDATE:19290512T000000
-RDATE:19300511T000000
-RDATE:19310510T000000
-RDATE:19320501T000000
-RDATE:19330430T000000
-RDATE:19340520T000000
-RDATE:19350602T000000
-RDATE:19360601T000000
-RDATE:19370502T000000
-RDATE:19380501T000000
-RDATE:19390528T000000
-RDATE:19400505T000000
-RDATE:19410504T000000
-RDATE:19460428T020000
-RDATE:19470427T020000
-RDATE:19480425T020000
-RDATE:19490424T020000
-RDATE:19510429T020000
-RDATE:19520427T020000
-RDATE:19530426T020000
-RDATE:19540425T020000
-RDATE:19560429T020000
-RDATE:19570428T020000
-RDATE:19580427T020000
-RDATE:19590426T020000
-RDATE:19620429T020000
-RDATE:19630428T020000
-RDATE:19640426T020000
-RDATE:19650425T020000
-RDATE:19660424T020000
-RDATE:19670430T020000
-RDATE:19680428T020000
-RDATE:19690427T020000
-RDATE:19700426T020000
-RDATE:19710425T020000
-RDATE:19720430T020000
-RDATE:19730429T020000
-RDATE:19740428T020000
-RDATE:19750427T020000
-RDATE:19760425T020000
-RDATE:19770424T020000
-RDATE:19780430T020000
-RDATE:19790429T020000
-RDATE:19800427T020000
-RDATE:19810426T020000
-RDATE:19820425T020000
-RDATE:19830424T020000
-RDATE:19840429T020000
-RDATE:19850428T020000
-RDATE:19860427T020000
-RDATE:19870405T020000
-RDATE:19880403T020000
-RDATE:19890402T020000
-RDATE:19900401T020000
-RDATE:19910407T020000
-RDATE:19920405T020000
-RDATE:19930404T020000
-RDATE:19940403T020000
-RDATE:19950402T020000
-RDATE:19960407T020000
-RDATE:19970406T020000
-RDATE:19980405T020000
-RDATE:19990404T020000
-RDATE:20000402T020000
-RDATE:20010401T020000
-RDATE:20020407T020000
-RDATE:20030406T020000
-RDATE:20040404T020000
-RDATE:20050403T020000
-RDATE:20060402T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:19161001T000000
-RDATE:19161001T000000
-RDATE:19181031T020000
-RDATE:19200829T000000
-RDATE:19210905T000000
-RDATE:19220905T000000
-RDATE:19230904T000000
-RDATE:19240915T000000
-RDATE:19250928T000000
-RDATE:19260913T000000
-RDATE:19270926T000000
-RDATE:19280909T000000
-RDATE:19290903T000000
-RDATE:19300915T000000
-RDATE:19310928T000000
-RDATE:19320926T000000
-RDATE:19331002T000000
-RDATE:19340916T000000
-RDATE:19350930T000000
-RDATE:19360914T000000
-RDATE:19370927T000000
-RDATE:19380926T000000
-RDATE:19390925T000000
-RDATE:19400930T000000
-RDATE:19410929T000000
-RDATE:19450930T020000
-RDATE:19460929T020000
-RDATE:19470928T020000
-RDATE:19480926T020000
-RDATE:19490925T020000
-RDATE:19510930T020000
-RDATE:19520928T020000
-RDATE:19530927T020000
-RDATE:19540926T020000
-RDATE:19560930T020000
-RDATE:19570929T020000
-RDATE:19580928T020000
-RDATE:19590927T020000
-RDATE:19621028T020000
-RDATE:19631027T020000
-RDATE:19641025T020000
-RDATE:19651031T020000
-RDATE:19661030T020000
-RDATE:19671029T020000
-RDATE:19681027T020000
-RDATE:19691026T020000
-RDATE:19701025T020000
-RDATE:19711031T020000
-RDATE:19721029T020000
-RDATE:19731028T020000
-RDATE:19741027T020000
-RDATE:19751026T020000
-RDATE:19761031T020000
-RDATE:19771030T020000
-RDATE:19781029T020000
-RDATE:19791028T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-RDATE:19831030T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861026T020000
-RDATE:19871025T020000
-RDATE:19881030T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931031T020000
-RDATE:19941030T020000
-RDATE:19951029T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:19991031T020000
-RDATE:20001029T020000
-RDATE:20011028T020000
-RDATE:20021027T020000
-RDATE:20031026T020000
-RDATE:20041031T020000
-RDATE:20051030T020000
-RDATE:20061029T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:19180101T000000
-RDATE:19180101T000000
-RDATE:19190101T000000
-RDATE:19460101T000000
-RDATE:19740101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:AWT
-DTSTART:19420209T020000
-RDATE:19420209T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0300
-TZNAME:APT
-DTSTART:19450814T200000
-RDATE:19450814T200000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Havana.ics b/libkcal/libical/zoneinfo/America/Havana.ics
deleted file mode 100644
index f75460b5..00000000
--- a/libkcal/libical/zoneinfo/America/Havana.ics
+++ /dev/null
@@ -1,148 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Havana
-X-LIC-LOCATION:America/Havana
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0500
-TZNAME:CST
-DTSTART:20061029T010000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:CDT
-DTSTART:20080316T000000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=3SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-052928
-TZOFFSETTO:-052936
-TZNAME:HMT
-DTSTART:18900101T000000
-RDATE:18900101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-052936
-TZOFFSETTO:-0500
-TZNAME:CST
-DTSTART:19250719T120000
-RDATE:19250719T120000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:CDT
-DTSTART:19280610T000000
-RDATE:19280610T000000
-RDATE:19400602T000000
-RDATE:19410601T000000
-RDATE:19420607T000000
-RDATE:19450603T000000
-RDATE:19460602T000000
-RDATE:19650601T000000
-RDATE:19660529T000000
-RDATE:19670408T000000
-RDATE:19680414T000000
-RDATE:19690427T000000
-RDATE:19700426T000000
-RDATE:19710425T000000
-RDATE:19720430T000000
-RDATE:19730429T000000
-RDATE:19740428T000000
-RDATE:19750427T000000
-RDATE:19760425T000000
-RDATE:19770424T000000
-RDATE:19780507T000000
-RDATE:19790318T000000
-RDATE:19800316T000000
-RDATE:19810510T000000
-RDATE:19820509T000000
-RDATE:19830508T000000
-RDATE:19840506T000000
-RDATE:19850505T000000
-RDATE:19860316T000000
-RDATE:19870315T000000
-RDATE:19880320T000000
-RDATE:19890319T000000
-RDATE:19900401T000000
-RDATE:19910407T000000
-RDATE:19920405T000000
-RDATE:19930404T000000
-RDATE:19940403T000000
-RDATE:19950402T000000
-RDATE:19960407T000000
-RDATE:19970406T000000
-RDATE:19980329T000000
-RDATE:19990328T000000
-RDATE:20000402T000000
-RDATE:20010401T000000
-RDATE:20020407T000000
-RDATE:20030406T000000
-RDATE:20040404T000000
-RDATE:20070311T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0500
-TZNAME:CST
-DTSTART:19281010T000000
-RDATE:19281010T000000
-RDATE:19400901T000000
-RDATE:19410907T000000
-RDATE:19420906T000000
-RDATE:19450902T000000
-RDATE:19460901T000000
-RDATE:19650930T000000
-RDATE:19661002T000000
-RDATE:19670910T000000
-RDATE:19680908T000000
-RDATE:19691026T000000
-RDATE:19701025T000000
-RDATE:19711031T000000
-RDATE:19721008T000000
-RDATE:19731008T000000
-RDATE:19741008T000000
-RDATE:19751026T000000
-RDATE:19761031T000000
-RDATE:19771030T000000
-RDATE:19781008T000000
-RDATE:19791014T000000
-RDATE:19801012T000000
-RDATE:19811011T000000
-RDATE:19821010T000000
-RDATE:19831009T000000
-RDATE:19841014T000000
-RDATE:19851013T000000
-RDATE:19861012T000000
-RDATE:19871011T000000
-RDATE:19881009T000000
-RDATE:19891008T000000
-RDATE:19901014T000000
-RDATE:19911013T010000
-RDATE:19921011T010000
-RDATE:19931010T010000
-RDATE:19941009T010000
-RDATE:19951008T010000
-RDATE:19961006T010000
-RDATE:19971012T010000
-RDATE:19981025T010000
-RDATE:19991031T010000
-RDATE:20001029T010000
-RDATE:20011028T010000
-RDATE:20021027T010000
-RDATE:20031026T010000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0400
-TZNAME:CDT
-DTSTART:20050403T010000
-RDATE:20050403T010000
-RDATE:20060402T010000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Hermosillo.ics b/libkcal/libical/zoneinfo/America/Hermosillo.ics
deleted file mode 100644
index ca07efe8..00000000
--- a/libkcal/libical/zoneinfo/America/Hermosillo.ics
+++ /dev/null
@@ -1,66 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Hermosillo
-X-LIC-LOCATION:America/Hermosillo
-BEGIN:STANDARD
-TZOFFSETFROM:-072352
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:19211231T233608
-RDATE:19211231T233608
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19270610T230000
-RDATE:19270610T230000
-RDATE:19310501T230000
-RDATE:19320401T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:19301115T000000
-RDATE:19301115T000000
-RDATE:19311001T000000
-RDATE:19420424T000000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0800
-TZNAME:PST
-DTSTART:19490114T000000
-RDATE:19490114T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0800
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:19700101T000000
-RDATE:19700101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0600
-TZNAME:MDT
-DTSTART:19960407T020000
-RDATE:19960407T020000
-RDATE:19970406T020000
-RDATE:19980405T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:19990101T000000
-RDATE:19990101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Indiana/Indianapolis.ics b/libkcal/libical/zoneinfo/America/Indiana/Indianapolis.ics
deleted file mode 100644
index 5df8b898..00000000
--- a/libkcal/libical/zoneinfo/America/Indiana/Indianapolis.ics
+++ /dev/null
@@ -1,125 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Indiana/Indianapolis
-X-LIC-LOCATION:America/Indiana/Indianapolis
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:EDT
-DTSTART:20070311T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:20071104T020000
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-054438
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:18831118T121522
-RDATE:18831118T121522
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:19180331T020000
-RDATE:19180331T020000
-RDATE:19190330T020000
-RDATE:19410622T020000
-RDATE:19460428T020000
-RDATE:19470427T020000
-RDATE:19480425T020000
-RDATE:19490424T020000
-RDATE:19500430T020000
-RDATE:19510429T020000
-RDATE:19520427T020000
-RDATE:19530426T020000
-RDATE:19540425T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19181027T020000
-RDATE:19181027T020000
-RDATE:19191026T020000
-RDATE:19410928T020000
-RDATE:19450930T020000
-RDATE:19460929T020000
-RDATE:19470928T020000
-RDATE:19480926T020000
-RDATE:19490925T020000
-RDATE:19500924T020000
-RDATE:19510930T020000
-RDATE:19520928T020000
-RDATE:19530927T020000
-RDATE:19540926T020000
-RDATE:19570929T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19200101T000000
-RDATE:19200101T000000
-RDATE:19420101T000000
-RDATE:19460101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CWT
-DTSTART:19420209T020000
-RDATE:19420209T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:CPT
-DTSTART:19450814T180000
-RDATE:19450814T180000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19550424T020000
-RDATE:19550424T020000
-RDATE:19580427T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19690101T000000
-RDATE:19690101T000000
-RDATE:19710101T000000
-RDATE:20060101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:EDT
-DTSTART:19690427T020000
-RDATE:19690427T020000
-RDATE:19700426T020000
-RDATE:20060402T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19691026T020000
-RDATE:19691026T020000
-RDATE:19701025T020000
-RDATE:20061029T020000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Indiana/Knox.ics b/libkcal/libical/zoneinfo/America/Indiana/Knox.ics
deleted file mode 100644
index 91b9e238..00000000
--- a/libkcal/libical/zoneinfo/America/Indiana/Knox.ics
+++ /dev/null
@@ -1,169 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Indiana/Knox
-X-LIC-LOCATION:America/Indiana/Knox
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:20070311T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:20071104T020000
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-054630
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:18831118T121330
-RDATE:18831118T121330
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:19180331T020000
-RDATE:19180331T020000
-RDATE:19190330T020000
-RDATE:19470427T020000
-RDATE:19480425T020000
-RDATE:19490424T020000
-RDATE:19500430T020000
-RDATE:19510429T020000
-RDATE:19520427T020000
-RDATE:19530426T020000
-RDATE:19540425T020000
-RDATE:19550424T020000
-RDATE:19560429T020000
-RDATE:19570428T020000
-RDATE:19580427T020000
-RDATE:19590426T020000
-RDATE:19600424T020000
-RDATE:19610430T020000
-RDATE:19670430T020000
-RDATE:19680428T020000
-RDATE:19690427T020000
-RDATE:19700426T020000
-RDATE:19710425T020000
-RDATE:19720430T020000
-RDATE:19730429T020000
-RDATE:19740106T020000
-RDATE:19750223T020000
-RDATE:19760425T020000
-RDATE:19770424T020000
-RDATE:19780430T020000
-RDATE:19790429T020000
-RDATE:19800427T020000
-RDATE:19810426T020000
-RDATE:19820425T020000
-RDATE:19830424T020000
-RDATE:19840429T020000
-RDATE:19850428T020000
-RDATE:19860427T020000
-RDATE:19870405T020000
-RDATE:19880403T020000
-RDATE:19890402T020000
-RDATE:19900401T020000
-RDATE:19910407T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19181027T020000
-RDATE:19181027T020000
-RDATE:19191026T020000
-RDATE:19450930T020000
-RDATE:19470928T020000
-RDATE:19480926T020000
-RDATE:19490925T020000
-RDATE:19500924T020000
-RDATE:19510930T020000
-RDATE:19520928T020000
-RDATE:19530927T020000
-RDATE:19540926T020000
-RDATE:19551030T020000
-RDATE:19561028T020000
-RDATE:19570929T020000
-RDATE:19580928T020000
-RDATE:19591025T020000
-RDATE:19601030T020000
-RDATE:19611029T020000
-RDATE:19631027T020000
-RDATE:19671029T020000
-RDATE:19681027T020000
-RDATE:19691026T020000
-RDATE:19701025T020000
-RDATE:19711031T020000
-RDATE:19721029T020000
-RDATE:19731028T020000
-RDATE:19741027T020000
-RDATE:19751026T020000
-RDATE:19761031T020000
-RDATE:19771030T020000
-RDATE:19781029T020000
-RDATE:19791028T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-RDATE:19831030T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861026T020000
-RDATE:19871025T020000
-RDATE:19881030T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:20061029T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CWT
-DTSTART:19420209T020000
-RDATE:19420209T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:CPT
-DTSTART:19450814T180000
-RDATE:19450814T180000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19470101T000000
-RDATE:19470101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19620429T020000
-RDATE:19620429T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19911027T020000
-RDATE:19911027T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:20060402T020000
-RDATE:20060402T020000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Indiana/Marengo.ics b/libkcal/libical/zoneinfo/America/Indiana/Marengo.ics
deleted file mode 100644
index 11e41f7f..00000000
--- a/libkcal/libical/zoneinfo/America/Indiana/Marengo.ics
+++ /dev/null
@@ -1,133 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Indiana/Marengo
-X-LIC-LOCATION:America/Indiana/Marengo
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:EDT
-DTSTART:20070311T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:20071104T020000
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-054523
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:18831118T121437
-RDATE:18831118T121437
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:19180331T020000
-RDATE:19180331T020000
-RDATE:19190330T020000
-RDATE:19510429T020000
-RDATE:19540425T020000
-RDATE:19550424T020000
-RDATE:19560429T020000
-RDATE:19570428T020000
-RDATE:19580427T020000
-RDATE:19590426T020000
-RDATE:19600424T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19181027T020000
-RDATE:19181027T020000
-RDATE:19191026T020000
-RDATE:19450930T020000
-RDATE:19510930T020000
-RDATE:19540926T020000
-RDATE:19550925T020000
-RDATE:19560930T020000
-RDATE:19570929T020000
-RDATE:19580928T020000
-RDATE:19590927T020000
-RDATE:19600925T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CWT
-DTSTART:19420209T020000
-RDATE:19420209T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:CPT
-DTSTART:19450814T180000
-RDATE:19450814T180000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19510101T000000
-RDATE:19510101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19610430T020000
-RDATE:19610430T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19690101T000000
-RDATE:19690101T000000
-RDATE:19741027T020000
-RDATE:19760101T000000
-RDATE:20060101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:EDT
-DTSTART:19690427T020000
-RDATE:19690427T020000
-RDATE:19700426T020000
-RDATE:19710425T020000
-RDATE:19720430T020000
-RDATE:19730429T020000
-RDATE:19750223T020000
-RDATE:20060402T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19691026T020000
-RDATE:19691026T020000
-RDATE:19701025T020000
-RDATE:19711031T020000
-RDATE:19721029T020000
-RDATE:19731028T020000
-RDATE:19751026T020000
-RDATE:20061029T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:19740106T020000
-RDATE:19740106T020000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Indiana/Petersburg.ics b/libkcal/libical/zoneinfo/America/Indiana/Petersburg.ics
deleted file mode 100644
index 8427c1aa..00000000
--- a/libkcal/libical/zoneinfo/America/Indiana/Petersburg.ics
+++ /dev/null
@@ -1,133 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Indiana/Petersburg
-X-LIC-LOCATION:America/Indiana/Petersburg
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:EDT
-DTSTART:20080309T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:20081102T020000
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-054907
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:18831118T121053
-RDATE:18831118T121053
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:19180331T020000
-RDATE:19180331T020000
-RDATE:19190330T020000
-RDATE:19550501T000000
-RDATE:19560429T020000
-RDATE:19570428T020000
-RDATE:19580427T020000
-RDATE:19590426T020000
-RDATE:19600424T020000
-RDATE:19610430T020000
-RDATE:19620429T020000
-RDATE:19630428T020000
-RDATE:19640426T020000
-RDATE:19670430T020000
-RDATE:19680428T020000
-RDATE:19690427T020000
-RDATE:19700426T020000
-RDATE:19710425T020000
-RDATE:19720430T020000
-RDATE:19730429T020000
-RDATE:19740106T020000
-RDATE:19750223T020000
-RDATE:19760425T020000
-RDATE:19770424T020000
-RDATE:20070311T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19181027T020000
-RDATE:19181027T020000
-RDATE:19191026T020000
-RDATE:19450930T020000
-RDATE:19550925T020000
-RDATE:19560930T020000
-RDATE:19570929T020000
-RDATE:19580928T020000
-RDATE:19590927T020000
-RDATE:19600925T020000
-RDATE:19611029T020000
-RDATE:19621028T020000
-RDATE:19631027T020000
-RDATE:19641025T020000
-RDATE:19661030T020000
-RDATE:19671029T020000
-RDATE:19681027T020000
-RDATE:19691026T020000
-RDATE:19701025T020000
-RDATE:19711031T020000
-RDATE:19721029T020000
-RDATE:19731028T020000
-RDATE:19741027T020000
-RDATE:19751026T020000
-RDATE:19761031T020000
-RDATE:20061029T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CWT
-DTSTART:19420209T020000
-RDATE:19420209T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:CPT
-DTSTART:19450814T180000
-RDATE:19450814T180000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19550101T000000
-RDATE:19550101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19650425T020000
-RDATE:19650425T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19771030T020000
-RDATE:19771030T020000
-RDATE:20071104T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:20060402T020000
-RDATE:20060402T020000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Indiana/Tell_City.ics b/libkcal/libical/zoneinfo/America/Indiana/Tell_City.ics
deleted file mode 100644
index 3c431cd7..00000000
--- a/libkcal/libical/zoneinfo/America/Indiana/Tell_City.ics
+++ /dev/null
@@ -1,130 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Indiana/Tell_City
-X-LIC-LOCATION:America/Indiana/Tell_City
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:20070311T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:20071104T020000
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-054703
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:18831118T121257
-RDATE:18831118T121257
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:19180331T020000
-RDATE:19180331T020000
-RDATE:19190330T020000
-RDATE:19460428T020000
-RDATE:19530426T020000
-RDATE:19540425T020000
-RDATE:19550501T000000
-RDATE:19560429T020000
-RDATE:19570428T020000
-RDATE:19580427T020000
-RDATE:19590426T020000
-RDATE:19600424T020000
-RDATE:19610430T020000
-RDATE:19620429T020000
-RDATE:19630428T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19181027T020000
-RDATE:19181027T020000
-RDATE:19191026T020000
-RDATE:19450930T020000
-RDATE:19460929T020000
-RDATE:19530927T020000
-RDATE:19540926T020000
-RDATE:19550925T020000
-RDATE:19560930T020000
-RDATE:19570929T020000
-RDATE:19580928T020000
-RDATE:19590927T020000
-RDATE:19601030T020000
-RDATE:19610924T020000
-RDATE:19621028T020000
-RDATE:19631027T020000
-RDATE:20061029T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CWT
-DTSTART:19420209T020000
-RDATE:19420209T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:CPT
-DTSTART:19450814T180000
-RDATE:19450814T180000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19460101T000000
-RDATE:19460101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19640426T020000
-RDATE:19640426T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19690101T000000
-RDATE:19690101T000000
-RDATE:19710101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:EDT
-DTSTART:19690427T020000
-RDATE:19690427T020000
-RDATE:19700426T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19691026T020000
-RDATE:19691026T020000
-RDATE:19701025T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:20060402T020000
-RDATE:20060402T020000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Indiana/Vevay.ics b/libkcal/libical/zoneinfo/America/Indiana/Vevay.ics
deleted file mode 100644
index 40cd5e63..00000000
--- a/libkcal/libical/zoneinfo/America/Indiana/Vevay.ics
+++ /dev/null
@@ -1,98 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Indiana/Vevay
-X-LIC-LOCATION:America/Indiana/Vevay
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:EDT
-DTSTART:20070311T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:20071104T020000
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-054016
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:18831118T121944
-RDATE:18831118T121944
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:19180331T020000
-RDATE:19180331T020000
-RDATE:19190330T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19181027T020000
-RDATE:19181027T020000
-RDATE:19191026T020000
-RDATE:19450930T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CWT
-DTSTART:19420209T020000
-RDATE:19420209T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:CPT
-DTSTART:19450814T180000
-RDATE:19450814T180000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19540425T020000
-RDATE:19540425T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19690101T000000
-RDATE:19690101T000000
-RDATE:19730101T000000
-RDATE:20060101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:EDT
-DTSTART:19690427T020000
-RDATE:19690427T020000
-RDATE:19700426T020000
-RDATE:19710425T020000
-RDATE:19720430T020000
-RDATE:20060402T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19691026T020000
-RDATE:19691026T020000
-RDATE:19701025T020000
-RDATE:19711031T020000
-RDATE:19721029T020000
-RDATE:20061029T020000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Indiana/Vincennes.ics b/libkcal/libical/zoneinfo/America/Indiana/Vincennes.ics
deleted file mode 100644
index 3cdf3805..00000000
--- a/libkcal/libical/zoneinfo/America/Indiana/Vincennes.ics
+++ /dev/null
@@ -1,132 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Indiana/Vincennes
-X-LIC-LOCATION:America/Indiana/Vincennes
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:EDT
-DTSTART:20080309T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:20081102T020000
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-055007
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:18831118T120953
-RDATE:18831118T120953
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:19180331T020000
-RDATE:19180331T020000
-RDATE:19190330T020000
-RDATE:19460428T020000
-RDATE:19530426T020000
-RDATE:19540425T020000
-RDATE:19550501T000000
-RDATE:19560429T020000
-RDATE:19570428T020000
-RDATE:19580427T020000
-RDATE:19590426T020000
-RDATE:19600424T020000
-RDATE:19610430T020000
-RDATE:19620429T020000
-RDATE:19630428T020000
-RDATE:20070311T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19181027T020000
-RDATE:19181027T020000
-RDATE:19191026T020000
-RDATE:19450930T020000
-RDATE:19460929T020000
-RDATE:19530927T020000
-RDATE:19540926T020000
-RDATE:19550925T020000
-RDATE:19560930T020000
-RDATE:19570929T020000
-RDATE:19580928T020000
-RDATE:19590927T020000
-RDATE:19601030T020000
-RDATE:19610924T020000
-RDATE:19621028T020000
-RDATE:19631027T020000
-RDATE:20061029T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CWT
-DTSTART:19420209T020000
-RDATE:19420209T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:CPT
-DTSTART:19450814T180000
-RDATE:19450814T180000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19460101T000000
-RDATE:19460101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19640426T020000
-RDATE:19640426T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19690101T000000
-RDATE:19690101T000000
-RDATE:19710101T000000
-RDATE:20071104T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:EDT
-DTSTART:19690427T020000
-RDATE:19690427T020000
-RDATE:19700426T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19691026T020000
-RDATE:19691026T020000
-RDATE:19701025T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:20060402T020000
-RDATE:20060402T020000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Indiana/Winamac.ics b/libkcal/libical/zoneinfo/America/Indiana/Winamac.ics
deleted file mode 100644
index 935f4530..00000000
--- a/libkcal/libical/zoneinfo/America/Indiana/Winamac.ics
+++ /dev/null
@@ -1,143 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Indiana/Winamac
-X-LIC-LOCATION:America/Indiana/Winamac
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:20071104T020000
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:EDT
-DTSTART:20080309T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-054625
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:18831118T121335
-RDATE:18831118T121335
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:19180331T020000
-RDATE:19180331T020000
-RDATE:19190330T020000
-RDATE:19460428T020000
-RDATE:19470427T020000
-RDATE:19480425T020000
-RDATE:19490424T020000
-RDATE:19500430T020000
-RDATE:19510429T020000
-RDATE:19520427T020000
-RDATE:19530426T020000
-RDATE:19540425T020000
-RDATE:19550424T020000
-RDATE:19560429T020000
-RDATE:19570428T020000
-RDATE:19580427T020000
-RDATE:19590426T020000
-RDATE:19600424T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19181027T020000
-RDATE:19181027T020000
-RDATE:19191026T020000
-RDATE:19450930T020000
-RDATE:19460929T020000
-RDATE:19470928T020000
-RDATE:19480926T020000
-RDATE:19490925T020000
-RDATE:19500924T020000
-RDATE:19510930T020000
-RDATE:19520928T020000
-RDATE:19530927T020000
-RDATE:19540926T020000
-RDATE:19551030T020000
-RDATE:19561028T020000
-RDATE:19570929T020000
-RDATE:19580928T020000
-RDATE:19590927T020000
-RDATE:19600925T020000
-RDATE:20061029T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CWT
-DTSTART:19420209T020000
-RDATE:19420209T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:CPT
-DTSTART:19450814T180000
-RDATE:19450814T180000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19460101T000000
-RDATE:19460101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19610430T020000
-RDATE:19610430T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19690101T000000
-RDATE:19690101T000000
-RDATE:19710101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:EDT
-DTSTART:19690427T020000
-RDATE:19690427T020000
-RDATE:19700426T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19691026T020000
-RDATE:19691026T020000
-RDATE:19701025T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:20060402T020000
-RDATE:20060402T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0400
-TZNAME:EDT
-DTSTART:20070311T020000
-RDATE:20070311T020000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Inuvik.ics b/libkcal/libical/zoneinfo/America/Inuvik.ics
deleted file mode 100644
index bbbb49e0..00000000
--- a/libkcal/libical/zoneinfo/America/Inuvik.ics
+++ /dev/null
@@ -1,122 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Inuvik
-X-LIC-LOCATION:America/Inuvik
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0600
-TZNAME:MDT
-DTSTART:20070311T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:20071104T020000
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0000
-TZOFFSETTO:-0800
-TZNAME:PST
-DTSTART:19530101T000000
-RDATE:19530101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0800
-TZOFFSETTO:-0600
-TZNAME:PDDT
-DTSTART:19650425T000000
-RDATE:19650425T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0800
-TZNAME:PST
-DTSTART:19651031T020000
-RDATE:19651031T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0800
-TZOFFSETTO:-0700
-DTSTART:19790429T020000
-RDATE:19790429T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:19800101T000000
-RDATE:19800101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0600
-TZNAME:MDT
-DTSTART:19800427T020000
-RDATE:19800427T020000
-RDATE:19810426T020000
-RDATE:19820425T020000
-RDATE:19830424T020000
-RDATE:19840429T020000
-RDATE:19850428T020000
-RDATE:19860427T020000
-RDATE:19870405T020000
-RDATE:19880403T020000
-RDATE:19890402T020000
-RDATE:19900401T020000
-RDATE:19910407T020000
-RDATE:19920405T020000
-RDATE:19930404T020000
-RDATE:19940403T020000
-RDATE:19950402T020000
-RDATE:19960407T020000
-RDATE:19970406T020000
-RDATE:19980405T020000
-RDATE:19990404T020000
-RDATE:20000402T020000
-RDATE:20010401T020000
-RDATE:20020407T020000
-RDATE:20030406T020000
-RDATE:20040404T020000
-RDATE:20050403T020000
-RDATE:20060402T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:19801026T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-RDATE:19831030T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861026T020000
-RDATE:19871025T020000
-RDATE:19881030T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931031T020000
-RDATE:19941030T020000
-RDATE:19951029T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:19991031T020000
-RDATE:20001029T020000
-RDATE:20011028T020000
-RDATE:20021027T020000
-RDATE:20031026T020000
-RDATE:20041031T020000
-RDATE:20051030T020000
-RDATE:20061029T020000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Iqaluit.ics b/libkcal/libical/zoneinfo/America/Iqaluit.ics
deleted file mode 100644
index a6d927ca..00000000
--- a/libkcal/libical/zoneinfo/America/Iqaluit.ics
+++ /dev/null
@@ -1,135 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Iqaluit
-X-LIC-LOCATION:America/Iqaluit
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:EDT
-DTSTART:20070311T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:20071104T020000
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0000
-TZOFFSETTO:-0400
-TZNAME:EWT
-DTSTART:19420801T000000
-RDATE:19420801T000000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0400
-TZNAME:EPT
-DTSTART:19450814T190000
-RDATE:19450814T190000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19450930T020000
-RDATE:19450930T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-RDATE:19831030T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861026T020000
-RDATE:19871025T020000
-RDATE:19881030T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931031T020000
-RDATE:19941030T020000
-RDATE:19951029T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:20011028T020000
-RDATE:20021027T020000
-RDATE:20031026T020000
-RDATE:20041031T020000
-RDATE:20051030T020000
-RDATE:20061029T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0300
-TZNAME:EDDT
-DTSTART:19650425T000000
-RDATE:19650425T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19651031T020000
-RDATE:19651031T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:EDT
-DTSTART:19800427T020000
-RDATE:19800427T020000
-RDATE:19810426T020000
-RDATE:19820425T020000
-RDATE:19830424T020000
-RDATE:19840429T020000
-RDATE:19850428T020000
-RDATE:19860427T020000
-RDATE:19870405T020000
-RDATE:19880403T020000
-RDATE:19890402T020000
-RDATE:19900401T020000
-RDATE:19910407T020000
-RDATE:19920405T020000
-RDATE:19930404T020000
-RDATE:19940403T020000
-RDATE:19950402T020000
-RDATE:19960407T020000
-RDATE:19970406T020000
-RDATE:19980405T020000
-RDATE:19990404T020000
-RDATE:20010401T020000
-RDATE:20020407T020000
-RDATE:20030406T020000
-RDATE:20040404T020000
-RDATE:20050403T020000
-RDATE:20060402T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19991031T020000
-RDATE:19991031T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:20000402T020000
-RDATE:20000402T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:20001029T020000
-RDATE:20001029T020000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Jamaica.ics b/libkcal/libical/zoneinfo/America/Jamaica.ics
deleted file mode 100644
index d70aa9ae..00000000
--- a/libkcal/libical/zoneinfo/America/Jamaica.ics
+++ /dev/null
@@ -1,61 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Jamaica
-X-LIC-LOCATION:America/Jamaica
-BEGIN:STANDARD
-TZOFFSETFROM:-050712
-TZOFFSETTO:-050712
-TZNAME:KMT
-DTSTART:18900101T000000
-RDATE:18900101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-050712
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19120201T000000
-RDATE:19120201T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:EDT
-DTSTART:19740428T020000
-RDATE:19740428T020000
-RDATE:19750223T020000
-RDATE:19760425T020000
-RDATE:19770424T020000
-RDATE:19780430T020000
-RDATE:19790429T020000
-RDATE:19800427T020000
-RDATE:19810426T020000
-RDATE:19820425T020000
-RDATE:19830424T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19741027T020000
-RDATE:19741027T020000
-RDATE:19751026T020000
-RDATE:19761031T020000
-RDATE:19771030T020000
-RDATE:19781029T020000
-RDATE:19791028T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-RDATE:19831030T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19840101T000000
-RDATE:19840101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Juneau.ics b/libkcal/libical/zoneinfo/America/Juneau.ics
deleted file mode 100644
index 3b98b229..00000000
--- a/libkcal/libical/zoneinfo/America/Juneau.ics
+++ /dev/null
@@ -1,173 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Juneau
-X-LIC-LOCATION:America/Juneau
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0900
-TZOFFSETTO:-0800
-TZNAME:AKDT
-DTSTART:20070311T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0800
-TZOFFSETTO:-0900
-TZNAME:AKST
-DTSTART:20071104T020000
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+150219
-TZOFFSETTO:-085741
-TZNAME:LMT
-DTSTART:18671018T000000
-RDATE:18671018T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-085741
-TZOFFSETTO:-0800
-TZNAME:PST
-DTSTART:19000820T120000
-RDATE:19000820T120000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0800
-TZOFFSETTO:-0800
-TZNAME:PST
-DTSTART:19420101T000000
-RDATE:19420101T000000
-RDATE:19460101T000000
-RDATE:19690101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0800
-TZOFFSETTO:-0700
-TZNAME:PWT
-DTSTART:19420209T020000
-RDATE:19420209T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0700
-TZNAME:PPT
-DTSTART:19450814T160000
-RDATE:19450814T160000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0800
-TZNAME:PST
-DTSTART:19450930T020000
-RDATE:19450930T020000
-RDATE:19691026T020000
-RDATE:19701025T020000
-RDATE:19711031T020000
-RDATE:19721029T020000
-RDATE:19731028T020000
-RDATE:19741027T020000
-RDATE:19751026T020000
-RDATE:19761031T020000
-RDATE:19771030T020000
-RDATE:19781029T020000
-RDATE:19791028T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0800
-TZOFFSETTO:-0700
-TZNAME:PDT
-DTSTART:19690427T020000
-RDATE:19690427T020000
-RDATE:19700426T020000
-RDATE:19710425T020000
-RDATE:19720430T020000
-RDATE:19730429T020000
-RDATE:19740106T020000
-RDATE:19750223T020000
-RDATE:19760425T020000
-RDATE:19770424T020000
-RDATE:19780430T020000
-RDATE:19790429T020000
-RDATE:19800427T020000
-RDATE:19810426T020000
-RDATE:19820425T020000
-RDATE:19830424T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0900
-TZNAME:YST
-DTSTART:19831030T020000
-RDATE:19831030T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0900
-TZOFFSETTO:-0900
-TZNAME:AKST
-DTSTART:19831130T000000
-RDATE:19831130T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0900
-TZOFFSETTO:-0800
-TZNAME:AKDT
-DTSTART:19840429T020000
-RDATE:19840429T020000
-RDATE:19850428T020000
-RDATE:19860427T020000
-RDATE:19870405T020000
-RDATE:19880403T020000
-RDATE:19890402T020000
-RDATE:19900401T020000
-RDATE:19910407T020000
-RDATE:19920405T020000
-RDATE:19930404T020000
-RDATE:19940403T020000
-RDATE:19950402T020000
-RDATE:19960407T020000
-RDATE:19970406T020000
-RDATE:19980405T020000
-RDATE:19990404T020000
-RDATE:20000402T020000
-RDATE:20010401T020000
-RDATE:20020407T020000
-RDATE:20030406T020000
-RDATE:20040404T020000
-RDATE:20050403T020000
-RDATE:20060402T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0800
-TZOFFSETTO:-0900
-TZNAME:AKST
-DTSTART:19841028T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861026T020000
-RDATE:19871025T020000
-RDATE:19881030T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931031T020000
-RDATE:19941030T020000
-RDATE:19951029T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:19991031T020000
-RDATE:20001029T020000
-RDATE:20011028T020000
-RDATE:20021027T020000
-RDATE:20031026T020000
-RDATE:20041031T020000
-RDATE:20051030T020000
-RDATE:20061029T020000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Kentucky/Louisville.ics b/libkcal/libical/zoneinfo/America/Kentucky/Louisville.ics
deleted file mode 100644
index 14e07ac2..00000000
--- a/libkcal/libical/zoneinfo/America/Kentucky/Louisville.ics
+++ /dev/null
@@ -1,205 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Kentucky/Louisville
-X-LIC-LOCATION:America/Kentucky/Louisville
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:EDT
-DTSTART:20070311T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:20071104T020000
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-054302
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:18831118T121658
-RDATE:18831118T121658
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:19180331T020000
-RDATE:19180331T020000
-RDATE:19190330T020000
-RDATE:19210501T020000
-RDATE:19410427T020000
-RDATE:19460101T000000
-RDATE:19470427T020000
-RDATE:19510429T020000
-RDATE:19520427T020000
-RDATE:19530426T020000
-RDATE:19540425T020000
-RDATE:19550424T020000
-RDATE:19560429T020000
-RDATE:19570428T020000
-RDATE:19580427T020000
-RDATE:19590426T020000
-RDATE:19600424T020000
-RDATE:19610430T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19181027T020000
-RDATE:19181027T020000
-RDATE:19191026T020000
-RDATE:19210901T020000
-RDATE:19410928T020000
-RDATE:19450930T020000
-RDATE:19460602T020000
-RDATE:19500924T020000
-RDATE:19510930T020000
-RDATE:19520928T020000
-RDATE:19530927T020000
-RDATE:19540926T020000
-RDATE:19550925T020000
-RDATE:19561028T020000
-RDATE:19571027T020000
-RDATE:19581026T020000
-RDATE:19591025T020000
-RDATE:19601030T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19210101T000000
-RDATE:19210101T000000
-RDATE:19420101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CWT
-DTSTART:19420209T020000
-RDATE:19420209T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:CPT
-DTSTART:19450814T180000
-RDATE:19450814T180000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:19460428T020000
-RDATE:19460428T020000
-RDATE:19480425T020000
-RDATE:19490424T020000
-RDATE:19500430T020000
-RDATE:19740106T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19610723T020000
-RDATE:19610723T020000
-RDATE:19680101T000000
-RDATE:19741027T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:EDT
-DTSTART:19680428T020000
-RDATE:19680428T020000
-RDATE:19690427T020000
-RDATE:19700426T020000
-RDATE:19710425T020000
-RDATE:19720430T020000
-RDATE:19730429T020000
-RDATE:19750223T020000
-RDATE:19760425T020000
-RDATE:19770424T020000
-RDATE:19780430T020000
-RDATE:19790429T020000
-RDATE:19800427T020000
-RDATE:19810426T020000
-RDATE:19820425T020000
-RDATE:19830424T020000
-RDATE:19840429T020000
-RDATE:19850428T020000
-RDATE:19860427T020000
-RDATE:19870405T020000
-RDATE:19880403T020000
-RDATE:19890402T020000
-RDATE:19900401T020000
-RDATE:19910407T020000
-RDATE:19920405T020000
-RDATE:19930404T020000
-RDATE:19940403T020000
-RDATE:19950402T020000
-RDATE:19960407T020000
-RDATE:19970406T020000
-RDATE:19980405T020000
-RDATE:19990404T020000
-RDATE:20000402T020000
-RDATE:20010401T020000
-RDATE:20020407T020000
-RDATE:20030406T020000
-RDATE:20040404T020000
-RDATE:20050403T020000
-RDATE:20060402T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19681027T020000
-RDATE:19681027T020000
-RDATE:19691026T020000
-RDATE:19701025T020000
-RDATE:19711031T020000
-RDATE:19721029T020000
-RDATE:19731028T020000
-RDATE:19751026T020000
-RDATE:19761031T020000
-RDATE:19771030T020000
-RDATE:19781029T020000
-RDATE:19791028T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-RDATE:19831030T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861026T020000
-RDATE:19871025T020000
-RDATE:19881030T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931031T020000
-RDATE:19941030T020000
-RDATE:19951029T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:19991031T020000
-RDATE:20001029T020000
-RDATE:20011028T020000
-RDATE:20021027T020000
-RDATE:20031026T020000
-RDATE:20041031T020000
-RDATE:20051030T020000
-RDATE:20061029T020000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Kentucky/Monticello.ics b/libkcal/libical/zoneinfo/America/Kentucky/Monticello.ics
deleted file mode 100644
index 99f05c82..00000000
--- a/libkcal/libical/zoneinfo/America/Kentucky/Monticello.ics
+++ /dev/null
@@ -1,164 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Kentucky/Monticello
-X-LIC-LOCATION:America/Kentucky/Monticello
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:EDT
-DTSTART:20070311T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:20071104T020000
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-053924
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:18831118T122036
-RDATE:18831118T122036
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:19180331T020000
-RDATE:19180331T020000
-RDATE:19190330T020000
-RDATE:19680428T020000
-RDATE:19690427T020000
-RDATE:19700426T020000
-RDATE:19710425T020000
-RDATE:19720430T020000
-RDATE:19730429T020000
-RDATE:19740106T020000
-RDATE:19750223T020000
-RDATE:19760425T020000
-RDATE:19770424T020000
-RDATE:19780430T020000
-RDATE:19790429T020000
-RDATE:19800427T020000
-RDATE:19810426T020000
-RDATE:19820425T020000
-RDATE:19830424T020000
-RDATE:19840429T020000
-RDATE:19850428T020000
-RDATE:19860427T020000
-RDATE:19870405T020000
-RDATE:19880403T020000
-RDATE:19890402T020000
-RDATE:19900401T020000
-RDATE:19910407T020000
-RDATE:19920405T020000
-RDATE:19930404T020000
-RDATE:19940403T020000
-RDATE:19950402T020000
-RDATE:19960407T020000
-RDATE:19970406T020000
-RDATE:19980405T020000
-RDATE:19990404T020000
-RDATE:20000402T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19181027T020000
-RDATE:19181027T020000
-RDATE:19191026T020000
-RDATE:19450930T020000
-RDATE:19681027T020000
-RDATE:19691026T020000
-RDATE:19701025T020000
-RDATE:19711031T020000
-RDATE:19721029T020000
-RDATE:19731028T020000
-RDATE:19741027T020000
-RDATE:19751026T020000
-RDATE:19761031T020000
-RDATE:19771030T020000
-RDATE:19781029T020000
-RDATE:19791028T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-RDATE:19831030T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861026T020000
-RDATE:19871025T020000
-RDATE:19881030T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931031T020000
-RDATE:19941030T020000
-RDATE:19951029T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:19991031T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CWT
-DTSTART:19420209T020000
-RDATE:19420209T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:CPT
-DTSTART:19450814T180000
-RDATE:19450814T180000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19460101T000000
-RDATE:19460101T000000
-RDATE:19680101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:20001029T020000
-RDATE:20001029T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:EDT
-DTSTART:20010401T020000
-RDATE:20010401T020000
-RDATE:20020407T020000
-RDATE:20030406T020000
-RDATE:20040404T020000
-RDATE:20050403T020000
-RDATE:20060402T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:20011028T020000
-RDATE:20011028T020000
-RDATE:20021027T020000
-RDATE:20031026T020000
-RDATE:20041031T020000
-RDATE:20051030T020000
-RDATE:20061029T020000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/La_Paz.ics b/libkcal/libical/zoneinfo/America/La_Paz.ics
deleted file mode 100644
index 10a92213..00000000
--- a/libkcal/libical/zoneinfo/America/La_Paz.ics
+++ /dev/null
@@ -1,29 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/La_Paz
-X-LIC-LOCATION:America/La_Paz
-BEGIN:STANDARD
-TZOFFSETFROM:-043236
-TZOFFSETTO:-043236
-TZNAME:CMT
-DTSTART:18900101T000000
-RDATE:18900101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-043236
-TZOFFSETTO:-033236
-TZNAME:BOST
-DTSTART:19311015T000000
-RDATE:19311015T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-033236
-TZOFFSETTO:-0400
-TZNAME:BOT
-DTSTART:19320321T000000
-RDATE:19320321T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Lima.ics b/libkcal/libical/zoneinfo/America/Lima.ics
deleted file mode 100644
index ce63f4f4..00000000
--- a/libkcal/libical/zoneinfo/America/Lima.ics
+++ /dev/null
@@ -1,48 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Lima
-X-LIC-LOCATION:America/Lima
-BEGIN:STANDARD
-TZOFFSETFROM:-050812
-TZOFFSETTO:-050836
-TZNAME:LMT
-DTSTART:18900101T000000
-RDATE:18900101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-050836
-TZOFFSETTO:-0500
-TZNAME:PET
-DTSTART:19080728T000000
-RDATE:19080728T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:PEST
-DTSTART:19380101T000000
-RDATE:19380101T000000
-RDATE:19380925T000000
-RDATE:19390924T000000
-RDATE:19860101T000000
-RDATE:19870101T000000
-RDATE:19900101T000000
-RDATE:19940101T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0500
-TZNAME:PET
-DTSTART:19380401T000000
-RDATE:19380401T000000
-RDATE:19390326T000000
-RDATE:19400324T000000
-RDATE:19860401T000000
-RDATE:19870401T000000
-RDATE:19900401T000000
-RDATE:19940401T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Los_Angeles.ics b/libkcal/libical/zoneinfo/America/Los_Angeles.ics
deleted file mode 100644
index 15f048fd..00000000
--- a/libkcal/libical/zoneinfo/America/Los_Angeles.ics
+++ /dev/null
@@ -1,184 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Los_Angeles
-X-LIC-LOCATION:America/Los_Angeles
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0800
-TZOFFSETTO:-0700
-TZNAME:PDT
-DTSTART:20070311T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0800
-TZNAME:PST
-DTSTART:20071104T020000
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-075258
-TZOFFSETTO:-0800
-TZNAME:PST
-DTSTART:18831118T120702
-RDATE:18831118T120702
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0800
-TZOFFSETTO:-0700
-TZNAME:PDT
-DTSTART:19180331T020000
-RDATE:19180331T020000
-RDATE:19190330T020000
-RDATE:19480314T020000
-RDATE:19500430T020000
-RDATE:19510429T020000
-RDATE:19520427T020000
-RDATE:19530426T020000
-RDATE:19540425T020000
-RDATE:19550424T020000
-RDATE:19560429T020000
-RDATE:19570428T020000
-RDATE:19580427T020000
-RDATE:19590426T020000
-RDATE:19600424T020000
-RDATE:19610430T020000
-RDATE:19620429T020000
-RDATE:19630428T020000
-RDATE:19640426T020000
-RDATE:19650425T020000
-RDATE:19660424T020000
-RDATE:19670430T020000
-RDATE:19680428T020000
-RDATE:19690427T020000
-RDATE:19700426T020000
-RDATE:19710425T020000
-RDATE:19720430T020000
-RDATE:19730429T020000
-RDATE:19740106T020000
-RDATE:19750223T020000
-RDATE:19760425T020000
-RDATE:19770424T020000
-RDATE:19780430T020000
-RDATE:19790429T020000
-RDATE:19800427T020000
-RDATE:19810426T020000
-RDATE:19820425T020000
-RDATE:19830424T020000
-RDATE:19840429T020000
-RDATE:19850428T020000
-RDATE:19860427T020000
-RDATE:19870405T020000
-RDATE:19880403T020000
-RDATE:19890402T020000
-RDATE:19900401T020000
-RDATE:19910407T020000
-RDATE:19920405T020000
-RDATE:19930404T020000
-RDATE:19940403T020000
-RDATE:19950402T020000
-RDATE:19960407T020000
-RDATE:19970406T020000
-RDATE:19980405T020000
-RDATE:19990404T020000
-RDATE:20000402T020000
-RDATE:20010401T020000
-RDATE:20020407T020000
-RDATE:20030406T020000
-RDATE:20040404T020000
-RDATE:20050403T020000
-RDATE:20060402T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0800
-TZNAME:PST
-DTSTART:19181027T020000
-RDATE:19181027T020000
-RDATE:19191026T020000
-RDATE:19450930T020000
-RDATE:19490101T020000
-RDATE:19500924T020000
-RDATE:19510930T020000
-RDATE:19520928T020000
-RDATE:19530927T020000
-RDATE:19540926T020000
-RDATE:19550925T020000
-RDATE:19560930T020000
-RDATE:19570929T020000
-RDATE:19580928T020000
-RDATE:19590927T020000
-RDATE:19600925T020000
-RDATE:19610924T020000
-RDATE:19621028T020000
-RDATE:19631027T020000
-RDATE:19641025T020000
-RDATE:19651031T020000
-RDATE:19661030T020000
-RDATE:19671029T020000
-RDATE:19681027T020000
-RDATE:19691026T020000
-RDATE:19701025T020000
-RDATE:19711031T020000
-RDATE:19721029T020000
-RDATE:19731028T020000
-RDATE:19741027T020000
-RDATE:19751026T020000
-RDATE:19761031T020000
-RDATE:19771030T020000
-RDATE:19781029T020000
-RDATE:19791028T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-RDATE:19831030T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861026T020000
-RDATE:19871025T020000
-RDATE:19881030T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931031T020000
-RDATE:19941030T020000
-RDATE:19951029T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:19991031T020000
-RDATE:20001029T020000
-RDATE:20011028T020000
-RDATE:20021027T020000
-RDATE:20031026T020000
-RDATE:20041031T020000
-RDATE:20051030T020000
-RDATE:20061029T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0800
-TZOFFSETTO:-0700
-TZNAME:PWT
-DTSTART:19420209T020000
-RDATE:19420209T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0700
-TZNAME:PPT
-DTSTART:19450814T160000
-RDATE:19450814T160000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0800
-TZOFFSETTO:-0800
-TZNAME:PST
-DTSTART:19460101T000000
-RDATE:19460101T000000
-RDATE:19670101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Maceio.ics b/libkcal/libical/zoneinfo/America/Maceio.ics
deleted file mode 100644
index f03e5d4c..00000000
--- a/libkcal/libical/zoneinfo/America/Maceio.ics
+++ /dev/null
@@ -1,79 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Maceio
-X-LIC-LOCATION:America/Maceio
-BEGIN:STANDARD
-TZOFFSETFROM:-022252
-TZOFFSETTO:-0300
-TZNAME:BRT
-DTSTART:19140101T000000
-RDATE:19140101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0200
-TZNAME:BRST
-DTSTART:19311003T110000
-RDATE:19311003T110000
-RDATE:19321003T000000
-RDATE:19491201T000000
-RDATE:19501201T000000
-RDATE:19511201T000000
-RDATE:19521201T000000
-RDATE:19631209T000000
-RDATE:19650131T000000
-RDATE:19651201T000000
-RDATE:19661101T000000
-RDATE:19671101T000000
-RDATE:19851102T000000
-RDATE:19861025T000000
-RDATE:19871025T000000
-RDATE:19881016T000000
-RDATE:19891015T000000
-RDATE:19951015T000000
-RDATE:19991003T000000
-RDATE:20001008T000000
-RDATE:20011014T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0300
-TZNAME:BRT
-DTSTART:19320401T000000
-RDATE:19320401T000000
-RDATE:19330401T000000
-RDATE:19500416T010000
-RDATE:19510401T000000
-RDATE:19520401T000000
-RDATE:19530301T000000
-RDATE:19640301T000000
-RDATE:19650331T000000
-RDATE:19660301T000000
-RDATE:19670301T000000
-RDATE:19680301T000000
-RDATE:19860315T000000
-RDATE:19870214T000000
-RDATE:19880207T000000
-RDATE:19890129T000000
-RDATE:19900211T000000
-RDATE:19960211T000000
-RDATE:20000227T000000
-RDATE:20001022T000000
-RDATE:20020217T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0300
-TZNAME:BRT
-DTSTART:19900917T000000
-RDATE:19900917T000000
-RDATE:19951013T000000
-RDATE:19960904T000000
-RDATE:19990930T000000
-RDATE:20010913T000000
-RDATE:20021001T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Managua.ics b/libkcal/libical/zoneinfo/America/Managua.ics
deleted file mode 100644
index 7645bb9c..00000000
--- a/libkcal/libical/zoneinfo/America/Managua.ics
+++ /dev/null
@@ -1,54 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Managua
-X-LIC-LOCATION:America/Managua
-BEGIN:STANDARD
-TZOFFSETFROM:-054508
-TZOFFSETTO:-054512
-TZNAME:MMT
-DTSTART:18900101T000000
-RDATE:18900101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-054512
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19340623T000000
-RDATE:19340623T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19730501T000000
-RDATE:19730501T000000
-RDATE:19920101T040000
-RDATE:19930101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19750216T000000
-RDATE:19750216T000000
-RDATE:19790625T000000
-RDATE:19800623T000000
-RDATE:19920924T000000
-RDATE:19970101T000000
-RDATE:20051002T000000
-RDATE:20061001T010000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:19790318T000000
-RDATE:19790318T000000
-RDATE:19800316T000000
-RDATE:20050410T000000
-RDATE:20060430T020000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Manaus.ics b/libkcal/libical/zoneinfo/America/Manaus.ics
deleted file mode 100644
index 08bc9532..00000000
--- a/libkcal/libical/zoneinfo/America/Manaus.ics
+++ /dev/null
@@ -1,66 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Manaus
-X-LIC-LOCATION:America/Manaus
-BEGIN:STANDARD
-TZOFFSETFROM:-040004
-TZOFFSETTO:-0400
-TZNAME:AMT
-DTSTART:19140101T000000
-RDATE:19140101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:AMST
-DTSTART:19311003T110000
-RDATE:19311003T110000
-RDATE:19321003T000000
-RDATE:19491201T000000
-RDATE:19501201T000000
-RDATE:19511201T000000
-RDATE:19521201T000000
-RDATE:19631209T000000
-RDATE:19650131T000000
-RDATE:19651201T000000
-RDATE:19661101T000000
-RDATE:19671101T000000
-RDATE:19851102T000000
-RDATE:19861025T000000
-RDATE:19871025T000000
-RDATE:19931017T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:AMT
-DTSTART:19320401T000000
-RDATE:19320401T000000
-RDATE:19330401T000000
-RDATE:19500416T010000
-RDATE:19510401T000000
-RDATE:19520401T000000
-RDATE:19530301T000000
-RDATE:19640301T000000
-RDATE:19650331T000000
-RDATE:19660301T000000
-RDATE:19670301T000000
-RDATE:19680301T000000
-RDATE:19860315T000000
-RDATE:19870214T000000
-RDATE:19880207T000000
-RDATE:19940220T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0400
-TZNAME:AMT
-DTSTART:19880912T000000
-RDATE:19880912T000000
-RDATE:19930928T000000
-RDATE:19940922T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Marigot.ics b/libkcal/libical/zoneinfo/America/Marigot.ics
deleted file mode 100644
index 8fa755a5..00000000
--- a/libkcal/libical/zoneinfo/America/Marigot.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Marigot
-X-LIC-LOCATION:America/Marigot
-BEGIN:STANDARD
-TZOFFSETFROM:-040608
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:19110608T000000
-RDATE:19110608T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Martinique.ics b/libkcal/libical/zoneinfo/America/Martinique.ics
deleted file mode 100644
index d5abdcd1..00000000
--- a/libkcal/libical/zoneinfo/America/Martinique.ics
+++ /dev/null
@@ -1,36 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Martinique
-X-LIC-LOCATION:America/Martinique
-BEGIN:STANDARD
-TZOFFSETFROM:-040420
-TZOFFSETTO:-040420
-TZNAME:FFMT
-DTSTART:18900101T000000
-RDATE:18900101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-040420
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:19110501T000000
-RDATE:19110501T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:ADT
-DTSTART:19800406T000000
-RDATE:19800406T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:19800928T000000
-RDATE:19800928T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Mazatlan.ics b/libkcal/libical/zoneinfo/America/Mazatlan.ics
deleted file mode 100644
index fcd4c1a1..00000000
--- a/libkcal/libical/zoneinfo/America/Mazatlan.ics
+++ /dev/null
@@ -1,79 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Mazatlan
-X-LIC-LOCATION:America/Mazatlan
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0600
-TZNAME:MDT
-DTSTART:20020407T020000
-RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:20021027T020000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-070540
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:19211231T235420
-RDATE:19211231T235420
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19270610T230000
-RDATE:19270610T230000
-RDATE:19310501T230000
-RDATE:19320401T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:19301115T000000
-RDATE:19301115T000000
-RDATE:19311001T000000
-RDATE:19420424T000000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:19991031T020000
-RDATE:20001029T020000
-RDATE:20010930T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0800
-TZNAME:PST
-DTSTART:19490114T000000
-RDATE:19490114T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0800
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:19700101T000000
-RDATE:19700101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0600
-TZNAME:MDT
-DTSTART:19960407T020000
-RDATE:19960407T020000
-RDATE:19970406T020000
-RDATE:19980405T020000
-RDATE:19990404T020000
-RDATE:20000402T020000
-RDATE:20010506T020000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Menominee.ics b/libkcal/libical/zoneinfo/America/Menominee.ics
deleted file mode 100644
index 1b02d706..00000000
--- a/libkcal/libical/zoneinfo/America/Menominee.ics
+++ /dev/null
@@ -1,152 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Menominee
-X-LIC-LOCATION:America/Menominee
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:20070311T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:20071104T020000
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-055027
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:18850918T120000
-RDATE:18850918T120000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:19180331T020000
-RDATE:19180331T020000
-RDATE:19190330T020000
-RDATE:19460428T020000
-RDATE:19660424T020000
-RDATE:19740106T020000
-RDATE:19750223T020000
-RDATE:19760425T020000
-RDATE:19770424T020000
-RDATE:19780430T020000
-RDATE:19790429T020000
-RDATE:19800427T020000
-RDATE:19810426T020000
-RDATE:19820425T020000
-RDATE:19830424T020000
-RDATE:19840429T020000
-RDATE:19850428T020000
-RDATE:19860427T020000
-RDATE:19870405T020000
-RDATE:19880403T020000
-RDATE:19890402T020000
-RDATE:19900401T020000
-RDATE:19910407T020000
-RDATE:19920405T020000
-RDATE:19930404T020000
-RDATE:19940403T020000
-RDATE:19950402T020000
-RDATE:19960407T020000
-RDATE:19970406T020000
-RDATE:19980405T020000
-RDATE:19990404T020000
-RDATE:20000402T020000
-RDATE:20010401T020000
-RDATE:20020407T020000
-RDATE:20030406T020000
-RDATE:20040404T020000
-RDATE:20050403T020000
-RDATE:20060402T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19181027T020000
-RDATE:19181027T020000
-RDATE:19191026T020000
-RDATE:19450930T020000
-RDATE:19460929T020000
-RDATE:19661030T020000
-RDATE:19731028T020000
-RDATE:19741027T020000
-RDATE:19751026T020000
-RDATE:19761031T020000
-RDATE:19771030T020000
-RDATE:19781029T020000
-RDATE:19791028T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-RDATE:19831030T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861026T020000
-RDATE:19871025T020000
-RDATE:19881030T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931031T020000
-RDATE:19941030T020000
-RDATE:19951029T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:19991031T020000
-RDATE:20001029T020000
-RDATE:20011028T020000
-RDATE:20021027T020000
-RDATE:20031026T020000
-RDATE:20041031T020000
-RDATE:20051030T020000
-RDATE:20061029T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CWT
-DTSTART:19420209T020000
-RDATE:19420209T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:CPT
-DTSTART:19450814T180000
-RDATE:19450814T180000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19460101T000000
-RDATE:19460101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19690427T020000
-RDATE:19690427T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:19730429T020000
-RDATE:19730429T020000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Merida.ics b/libkcal/libical/zoneinfo/America/Merida.ics
deleted file mode 100644
index 97db7d99..00000000
--- a/libkcal/libical/zoneinfo/America/Merida.ics
+++ /dev/null
@@ -1,61 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Merida
-X-LIC-LOCATION:America/Merida
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:20020407T020000
-RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:20021027T020000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-055828
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19220101T000132
-RDATE:19220101T000132
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19811223T000000
-RDATE:19811223T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19821202T000000
-RDATE:19821202T000000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:19991031T020000
-RDATE:20001029T020000
-RDATE:20010930T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:19960407T020000
-RDATE:19960407T020000
-RDATE:19970406T020000
-RDATE:19980405T020000
-RDATE:19990404T020000
-RDATE:20000402T020000
-RDATE:20010506T020000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Mexico_City.ics b/libkcal/libical/zoneinfo/America/Mexico_City.ics
deleted file mode 100644
index a825c018..00000000
--- a/libkcal/libical/zoneinfo/America/Mexico_City.ics
+++ /dev/null
@@ -1,91 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Mexico_City
-X-LIC-LOCATION:America/Mexico_City
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:20020407T020000
-RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:20021027T020000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-063636
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:19220101T002324
-RDATE:19220101T002324
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19270610T230000
-RDATE:19270610T230000
-RDATE:19310501T230000
-RDATE:19320401T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:19301115T000000
-RDATE:19301115T000000
-RDATE:19311001T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:19390205T000000
-RDATE:19390205T000000
-RDATE:19401209T000000
-RDATE:19500212T000000
-RDATE:19960407T020000
-RDATE:19970406T020000
-RDATE:19980405T020000
-RDATE:19990404T020000
-RDATE:20000402T020000
-RDATE:20010506T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19390625T000000
-RDATE:19390625T000000
-RDATE:19410401T000000
-RDATE:19440501T000000
-RDATE:19500730T000000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:19991031T020000
-RDATE:20001029T020000
-RDATE:20010930T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CWT
-DTSTART:19431216T000000
-RDATE:19431216T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:20020220T000000
-RDATE:20020220T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Miquelon.ics b/libkcal/libical/zoneinfo/America/Miquelon.ics
deleted file mode 100644
index 131e2618..00000000
--- a/libkcal/libical/zoneinfo/America/Miquelon.ics
+++ /dev/null
@@ -1,95 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Miquelon
-X-LIC-LOCATION:America/Miquelon
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0200
-TZNAME:PMDT
-DTSTART:20070311T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0300
-TZNAME:PMST
-DTSTART:20071104T020000
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-034440
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:19110515T000000
-RDATE:19110515T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:PMST
-DTSTART:19800501T000000
-RDATE:19800501T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0300
-TZNAME:PMST
-DTSTART:19870101T000000
-RDATE:19870101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0200
-TZNAME:PMDT
-DTSTART:19870405T020000
-RDATE:19870405T020000
-RDATE:19880403T020000
-RDATE:19890402T020000
-RDATE:19900401T020000
-RDATE:19910407T020000
-RDATE:19920405T020000
-RDATE:19930404T020000
-RDATE:19940403T020000
-RDATE:19950402T020000
-RDATE:19960407T020000
-RDATE:19970406T020000
-RDATE:19980405T020000
-RDATE:19990404T020000
-RDATE:20000402T020000
-RDATE:20010401T020000
-RDATE:20020407T020000
-RDATE:20030406T020000
-RDATE:20040404T020000
-RDATE:20050403T020000
-RDATE:20060402T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0300
-TZNAME:PMST
-DTSTART:19871025T020000
-RDATE:19871025T020000
-RDATE:19881030T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931031T020000
-RDATE:19941030T020000
-RDATE:19951029T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:19991031T020000
-RDATE:20001029T020000
-RDATE:20011028T020000
-RDATE:20021027T020000
-RDATE:20031026T020000
-RDATE:20041031T020000
-RDATE:20051030T020000
-RDATE:20061029T020000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Moncton.ics b/libkcal/libical/zoneinfo/America/Moncton.ics
deleted file mode 100644
index a6cc7786..00000000
--- a/libkcal/libical/zoneinfo/America/Moncton.ics
+++ /dev/null
@@ -1,215 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Moncton
-X-LIC-LOCATION:America/Moncton
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:ADT
-DTSTART:20070311T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:20071104T020000
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-041908
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:18831209T000000
-RDATE:18831209T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:19020615T000000
-RDATE:19020615T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:ADT
-DTSTART:19180414T020000
-RDATE:19180414T020000
-RDATE:19330611T010000
-RDATE:19340610T010000
-RDATE:19350609T010000
-RDATE:19360607T010000
-RDATE:19370606T010000
-RDATE:19380605T010000
-RDATE:19390527T010000
-RDATE:19400519T010000
-RDATE:19410504T010000
-RDATE:19460428T020000
-RDATE:19470427T020000
-RDATE:19480425T020000
-RDATE:19490424T020000
-RDATE:19500430T020000
-RDATE:19510429T020000
-RDATE:19520427T020000
-RDATE:19530426T020000
-RDATE:19540425T020000
-RDATE:19550424T020000
-RDATE:19560429T020000
-RDATE:19570428T020000
-RDATE:19580427T020000
-RDATE:19590426T020000
-RDATE:19600424T020000
-RDATE:19610430T020000
-RDATE:19620429T020000
-RDATE:19630428T020000
-RDATE:19640426T020000
-RDATE:19650425T020000
-RDATE:19660424T020000
-RDATE:19670430T020000
-RDATE:19680428T020000
-RDATE:19690427T020000
-RDATE:19700426T020000
-RDATE:19710425T020000
-RDATE:19720430T020000
-RDATE:19740428T020000
-RDATE:19750427T020000
-RDATE:19760425T020000
-RDATE:19770424T020000
-RDATE:19780430T020000
-RDATE:19790429T020000
-RDATE:19800427T020000
-RDATE:19810426T020000
-RDATE:19820425T020000
-RDATE:19830424T020000
-RDATE:19840429T020000
-RDATE:19850428T020000
-RDATE:19860427T020000
-RDATE:19870405T020000
-RDATE:19880403T020000
-RDATE:19890402T020000
-RDATE:19900401T020000
-RDATE:19910407T020000
-RDATE:19920405T020000
-RDATE:19930404T000100
-RDATE:19940403T000100
-RDATE:19950402T000100
-RDATE:19960407T000100
-RDATE:19970406T000100
-RDATE:19980405T000100
-RDATE:19990404T000100
-RDATE:20000402T000100
-RDATE:20010401T000100
-RDATE:20020407T000100
-RDATE:20030406T000100
-RDATE:20040404T000100
-RDATE:20050403T000100
-RDATE:20060402T000100
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:19181031T020000
-RDATE:19181031T020000
-RDATE:19330910T010000
-RDATE:19340909T010000
-RDATE:19350908T010000
-RDATE:19360906T010000
-RDATE:19370905T010000
-RDATE:19380904T010000
-RDATE:19390923T010000
-RDATE:19400921T010000
-RDATE:19410927T010000
-RDATE:19450930T020000
-RDATE:19460929T020000
-RDATE:19470928T020000
-RDATE:19480926T020000
-RDATE:19490925T020000
-RDATE:19500924T020000
-RDATE:19510930T020000
-RDATE:19520928T020000
-RDATE:19530927T020000
-RDATE:19540926T020000
-RDATE:19550925T020000
-RDATE:19560930T020000
-RDATE:19571027T020000
-RDATE:19581026T020000
-RDATE:19591025T020000
-RDATE:19601030T020000
-RDATE:19611029T020000
-RDATE:19621028T020000
-RDATE:19631027T020000
-RDATE:19641025T020000
-RDATE:19651031T020000
-RDATE:19661030T020000
-RDATE:19671029T020000
-RDATE:19681027T020000
-RDATE:19691026T020000
-RDATE:19701025T020000
-RDATE:19711031T020000
-RDATE:19721029T020000
-RDATE:19741027T020000
-RDATE:19751026T020000
-RDATE:19761031T020000
-RDATE:19771030T020000
-RDATE:19781029T020000
-RDATE:19791028T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-RDATE:19831030T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861026T020000
-RDATE:19871025T020000
-RDATE:19881030T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931031T000100
-RDATE:19941030T000100
-RDATE:19951029T000100
-RDATE:19961027T000100
-RDATE:19971026T000100
-RDATE:19981025T000100
-RDATE:19991031T000100
-RDATE:20001029T000100
-RDATE:20011028T000100
-RDATE:20021027T000100
-RDATE:20031026T000100
-RDATE:20041031T000100
-RDATE:20051030T000100
-RDATE:20061029T000100
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:19330101T000000
-RDATE:19330101T000000
-RDATE:19420101T000000
-RDATE:19460101T000000
-RDATE:19730101T000000
-RDATE:19930101T000000
-RDATE:20070101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:AWT
-DTSTART:19420209T020000
-RDATE:19420209T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0300
-TZNAME:APT
-DTSTART:19450814T200000
-RDATE:19450814T200000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Monterrey.ics b/libkcal/libical/zoneinfo/America/Monterrey.ics
deleted file mode 100644
index d7a76004..00000000
--- a/libkcal/libical/zoneinfo/America/Monterrey.ics
+++ /dev/null
@@ -1,63 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Monterrey
-X-LIC-LOCATION:America/Monterrey
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:20020407T020000
-RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:20021027T020000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-064116
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19211231T231844
-RDATE:19211231T231844
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19880101T000000
-RDATE:19880101T000000
-RDATE:19890101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:19880403T020000
-RDATE:19880403T020000
-RDATE:19960407T020000
-RDATE:19970406T020000
-RDATE:19980405T020000
-RDATE:19990404T020000
-RDATE:20000402T020000
-RDATE:20010506T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19881030T020000
-RDATE:19881030T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:19991031T020000
-RDATE:20001029T020000
-RDATE:20010930T020000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Montevideo.ics b/libkcal/libical/zoneinfo/America/Montevideo.ics
deleted file mode 100644
index be87059b..00000000
--- a/libkcal/libical/zoneinfo/America/Montevideo.ics
+++ /dev/null
@@ -1,151 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Montevideo
-X-LIC-LOCATION:America/Montevideo
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0200
-TZNAME:UYST
-DTSTART:20061001T020000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0300
-TZNAME:UYT
-DTSTART:20070311T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-034444
-TZOFFSETTO:-034444
-TZNAME:MMT
-DTSTART:18980628T000000
-RDATE:18980628T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-034444
-TZOFFSETTO:-0330
-TZNAME:UYT
-DTSTART:19200501T000000
-RDATE:19200501T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0330
-TZOFFSETTO:-0300
-TZNAME:UYHST
-DTSTART:19231002T000000
-RDATE:19231002T000000
-RDATE:19241001T000000
-RDATE:19251001T000000
-RDATE:19331029T000000
-RDATE:19341028T000000
-RDATE:19351027T000000
-RDATE:19361101T000000
-RDATE:19371031T000000
-RDATE:19381030T000000
-RDATE:19391029T000000
-RDATE:19401027T000000
-RDATE:19410801T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0330
-TZNAME:UYT
-DTSTART:19240401T000000
-RDATE:19240401T000000
-RDATE:19250401T000000
-RDATE:19260401T000000
-RDATE:19340401T000000
-RDATE:19350331T000000
-RDATE:19360329T000000
-RDATE:19370328T000000
-RDATE:19380327T000000
-RDATE:19390326T000000
-RDATE:19400331T000000
-RDATE:19410330T000000
-RDATE:19420101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0330
-TZOFFSETTO:-0200
-TZNAME:UYST
-DTSTART:19421214T000000
-RDATE:19421214T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0300
-TZNAME:UYT
-DTSTART:19430314T000000
-RDATE:19430314T000000
-RDATE:19591115T000000
-RDATE:19600306T000000
-RDATE:19650926T000000
-RDATE:19661031T000000
-RDATE:19671031T000000
-RDATE:19720815T000000
-RDATE:19761001T000000
-RDATE:19780401T000000
-RDATE:19800501T000000
-RDATE:19880314T000000
-RDATE:19890312T000000
-RDATE:19900304T000000
-RDATE:19910303T000000
-RDATE:19920301T000000
-RDATE:19930228T000000
-RDATE:20050327T020000
-RDATE:20060312T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0200
-TZNAME:UYST
-DTSTART:19590524T000000
-RDATE:19590524T000000
-RDATE:19600117T000000
-RDATE:19650404T000000
-RDATE:19660403T000000
-RDATE:19670402T000000
-RDATE:19720424T000000
-RDATE:19771204T000000
-RDATE:19791001T000000
-RDATE:19871214T000000
-RDATE:19881211T000000
-RDATE:19891029T000000
-RDATE:19901021T000000
-RDATE:19911027T000000
-RDATE:19921018T000000
-RDATE:20040919T000000
-RDATE:20051009T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0230
-TZNAME:UYHST
-DTSTART:19680527T000000
-RDATE:19680527T000000
-RDATE:19690527T000000
-RDATE:19700527T000000
-RDATE:19740310T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0230
-TZOFFSETTO:-0300
-TZNAME:UYT
-DTSTART:19681202T000000
-RDATE:19681202T000000
-RDATE:19691202T000000
-RDATE:19701202T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0230
-TZOFFSETTO:-0200
-TZNAME:UYST
-DTSTART:19741222T000000
-RDATE:19741222T000000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Montreal.ics b/libkcal/libical/zoneinfo/America/Montreal.ics
deleted file mode 100644
index 03b2719b..00000000
--- a/libkcal/libical/zoneinfo/America/Montreal.ics
+++ /dev/null
@@ -1,233 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Montreal
-X-LIC-LOCATION:America/Montreal
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:EDT
-DTSTART:20070311T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:20071104T020000
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-045416
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:18840101T000000
-RDATE:18840101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:EDT
-DTSTART:19170325T020000
-RDATE:19170325T020000
-RDATE:19180414T020000
-RDATE:19190331T023000
-RDATE:19200502T023000
-RDATE:19210501T020000
-RDATE:19220430T020000
-RDATE:19240517T020000
-RDATE:19250503T020000
-RDATE:19260502T020000
-RDATE:19270501T000000
-RDATE:19280429T000000
-RDATE:19290428T000000
-RDATE:19300427T000000
-RDATE:19310426T000000
-RDATE:19320501T000000
-RDATE:19330430T000000
-RDATE:19340429T000000
-RDATE:19350428T000000
-RDATE:19360426T000000
-RDATE:19370425T000000
-RDATE:19380424T000000
-RDATE:19390430T000000
-RDATE:19400428T000000
-RDATE:19460428T020000
-RDATE:19470427T020000
-RDATE:19480425T020000
-RDATE:19490424T020000
-RDATE:19500430T020000
-RDATE:19510429T020000
-RDATE:19520427T020000
-RDATE:19530426T020000
-RDATE:19540425T020000
-RDATE:19550424T020000
-RDATE:19560429T020000
-RDATE:19570428T020000
-RDATE:19580427T020000
-RDATE:19590426T020000
-RDATE:19600424T020000
-RDATE:19610430T020000
-RDATE:19620429T020000
-RDATE:19630428T020000
-RDATE:19640426T020000
-RDATE:19650425T020000
-RDATE:19660424T020000
-RDATE:19670430T020000
-RDATE:19680428T020000
-RDATE:19690427T020000
-RDATE:19700426T020000
-RDATE:19710425T020000
-RDATE:19720430T020000
-RDATE:19730429T020000
-RDATE:19740428T020000
-RDATE:19750427T020000
-RDATE:19760425T020000
-RDATE:19770424T020000
-RDATE:19780430T020000
-RDATE:19790429T020000
-RDATE:19800427T020000
-RDATE:19810426T020000
-RDATE:19820425T020000
-RDATE:19830424T020000
-RDATE:19840429T020000
-RDATE:19850428T020000
-RDATE:19860427T020000
-RDATE:19870405T020000
-RDATE:19880403T020000
-RDATE:19890402T020000
-RDATE:19900401T020000
-RDATE:19910407T020000
-RDATE:19920405T020000
-RDATE:19930404T020000
-RDATE:19940403T020000
-RDATE:19950402T020000
-RDATE:19960407T020000
-RDATE:19970406T020000
-RDATE:19980405T020000
-RDATE:19990404T020000
-RDATE:20000402T020000
-RDATE:20010401T020000
-RDATE:20020407T020000
-RDATE:20030406T020000
-RDATE:20040404T020000
-RDATE:20050403T020000
-RDATE:20060402T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19170424T000000
-RDATE:19170424T000000
-RDATE:19181031T020000
-RDATE:19191025T023000
-RDATE:19201003T023000
-RDATE:19211002T023000
-RDATE:19221001T023000
-RDATE:19240928T023000
-RDATE:19250927T023000
-RDATE:19260926T023000
-RDATE:19270925T000000
-RDATE:19280930T000000
-RDATE:19290929T000000
-RDATE:19300928T000000
-RDATE:19310927T000000
-RDATE:19320925T000000
-RDATE:19331001T000000
-RDATE:19340930T000000
-RDATE:19350929T000000
-RDATE:19360927T000000
-RDATE:19370926T000000
-RDATE:19380925T000000
-RDATE:19390924T000000
-RDATE:19450930T020000
-RDATE:19460929T020000
-RDATE:19470928T020000
-RDATE:19480926T020000
-RDATE:19491030T020000
-RDATE:19501029T020000
-RDATE:19510930T020000
-RDATE:19520928T020000
-RDATE:19530927T020000
-RDATE:19540926T020000
-RDATE:19550925T020000
-RDATE:19560930T020000
-RDATE:19571027T020000
-RDATE:19581026T020000
-RDATE:19591025T020000
-RDATE:19601030T020000
-RDATE:19611029T020000
-RDATE:19621028T020000
-RDATE:19631027T020000
-RDATE:19641025T020000
-RDATE:19651031T020000
-RDATE:19661030T020000
-RDATE:19671029T020000
-RDATE:19681027T020000
-RDATE:19691026T020000
-RDATE:19701025T020000
-RDATE:19711031T020000
-RDATE:19721029T020000
-RDATE:19731028T020000
-RDATE:19741027T020000
-RDATE:19751026T020000
-RDATE:19761031T020000
-RDATE:19771030T020000
-RDATE:19781029T020000
-RDATE:19791028T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-RDATE:19831030T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861026T020000
-RDATE:19871025T020000
-RDATE:19881030T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931031T020000
-RDATE:19941030T020000
-RDATE:19951029T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:19991031T020000
-RDATE:20001029T020000
-RDATE:20011028T020000
-RDATE:20021027T020000
-RDATE:20031026T020000
-RDATE:20041031T020000
-RDATE:20051030T020000
-RDATE:20061029T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19180101T000000
-RDATE:19180101T000000
-RDATE:19190101T000000
-RDATE:19460101T000000
-RDATE:19740101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0400
-TZNAME:EWT
-DTSTART:19420209T020000
-RDATE:19420209T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0400
-TZNAME:EPT
-DTSTART:19450814T190000
-RDATE:19450814T190000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Montserrat.ics b/libkcal/libical/zoneinfo/America/Montserrat.ics
deleted file mode 100644
index 178aed90..00000000
--- a/libkcal/libical/zoneinfo/America/Montserrat.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Montserrat
-X-LIC-LOCATION:America/Montserrat
-BEGIN:STANDARD
-TZOFFSETFROM:-040852
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:19110701T000100
-RDATE:19110701T000100
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Nassau.ics b/libkcal/libical/zoneinfo/America/Nassau.ics
deleted file mode 100644
index bba157cb..00000000
--- a/libkcal/libical/zoneinfo/America/Nassau.ics
+++ /dev/null
@@ -1,134 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Nassau
-X-LIC-LOCATION:America/Nassau
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:EDT
-DTSTART:20070311T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:20071104T020000
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-050924
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19120302T000000
-RDATE:19120302T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:EDT
-DTSTART:19640426T020000
-RDATE:19640426T020000
-RDATE:19650425T020000
-RDATE:19660424T020000
-RDATE:19670430T020000
-RDATE:19680428T020000
-RDATE:19690427T020000
-RDATE:19700426T020000
-RDATE:19710425T020000
-RDATE:19720430T020000
-RDATE:19730429T020000
-RDATE:19740428T020000
-RDATE:19750427T020000
-RDATE:19760425T020000
-RDATE:19770424T020000
-RDATE:19780430T020000
-RDATE:19790429T020000
-RDATE:19800427T020000
-RDATE:19810426T020000
-RDATE:19820425T020000
-RDATE:19830424T020000
-RDATE:19840429T020000
-RDATE:19850428T020000
-RDATE:19860427T020000
-RDATE:19870405T020000
-RDATE:19880403T020000
-RDATE:19890402T020000
-RDATE:19900401T020000
-RDATE:19910407T020000
-RDATE:19920405T020000
-RDATE:19930404T020000
-RDATE:19940403T020000
-RDATE:19950402T020000
-RDATE:19960407T020000
-RDATE:19970406T020000
-RDATE:19980405T020000
-RDATE:19990404T020000
-RDATE:20000402T020000
-RDATE:20010401T020000
-RDATE:20020407T020000
-RDATE:20030406T020000
-RDATE:20040404T020000
-RDATE:20050403T020000
-RDATE:20060402T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19641025T020000
-RDATE:19641025T020000
-RDATE:19651031T020000
-RDATE:19661030T020000
-RDATE:19671029T020000
-RDATE:19681027T020000
-RDATE:19691026T020000
-RDATE:19701025T020000
-RDATE:19711031T020000
-RDATE:19721029T020000
-RDATE:19731028T020000
-RDATE:19741027T020000
-RDATE:19751026T020000
-RDATE:19761031T020000
-RDATE:19771030T020000
-RDATE:19781029T020000
-RDATE:19791028T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-RDATE:19831030T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861026T020000
-RDATE:19871025T020000
-RDATE:19881030T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931031T020000
-RDATE:19941030T020000
-RDATE:19951029T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:19991031T020000
-RDATE:20001029T020000
-RDATE:20011028T020000
-RDATE:20021027T020000
-RDATE:20031026T020000
-RDATE:20041031T020000
-RDATE:20051030T020000
-RDATE:20061029T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19760101T000000
-RDATE:19760101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/New_York.ics b/libkcal/libical/zoneinfo/America/New_York.ics
deleted file mode 100644
index 5167c498..00000000
--- a/libkcal/libical/zoneinfo/America/New_York.ics
+++ /dev/null
@@ -1,236 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/New_York
-X-LIC-LOCATION:America/New_York
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:EDT
-DTSTART:20070311T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:20071104T020000
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-045602
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:18831118T120358
-RDATE:18831118T120358
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:EDT
-DTSTART:19180331T020000
-RDATE:19180331T020000
-RDATE:19190330T020000
-RDATE:19200328T020000
-RDATE:19210424T020000
-RDATE:19220430T020000
-RDATE:19230429T020000
-RDATE:19240427T020000
-RDATE:19250426T020000
-RDATE:19260425T020000
-RDATE:19270424T020000
-RDATE:19280429T020000
-RDATE:19290428T020000
-RDATE:19300427T020000
-RDATE:19310426T020000
-RDATE:19320424T020000
-RDATE:19330430T020000
-RDATE:19340429T020000
-RDATE:19350428T020000
-RDATE:19360426T020000
-RDATE:19370425T020000
-RDATE:19380424T020000
-RDATE:19390430T020000
-RDATE:19400428T020000
-RDATE:19410427T020000
-RDATE:19460428T020000
-RDATE:19470427T020000
-RDATE:19480425T020000
-RDATE:19490424T020000
-RDATE:19500430T020000
-RDATE:19510429T020000
-RDATE:19520427T020000
-RDATE:19530426T020000
-RDATE:19540425T020000
-RDATE:19550424T020000
-RDATE:19560429T020000
-RDATE:19570428T020000
-RDATE:19580427T020000
-RDATE:19590426T020000
-RDATE:19600424T020000
-RDATE:19610430T020000
-RDATE:19620429T020000
-RDATE:19630428T020000
-RDATE:19640426T020000
-RDATE:19650425T020000
-RDATE:19660424T020000
-RDATE:19670430T020000
-RDATE:19680428T020000
-RDATE:19690427T020000
-RDATE:19700426T020000
-RDATE:19710425T020000
-RDATE:19720430T020000
-RDATE:19730429T020000
-RDATE:19740106T020000
-RDATE:19750223T020000
-RDATE:19760425T020000
-RDATE:19770424T020000
-RDATE:19780430T020000
-RDATE:19790429T020000
-RDATE:19800427T020000
-RDATE:19810426T020000
-RDATE:19820425T020000
-RDATE:19830424T020000
-RDATE:19840429T020000
-RDATE:19850428T020000
-RDATE:19860427T020000
-RDATE:19870405T020000
-RDATE:19880403T020000
-RDATE:19890402T020000
-RDATE:19900401T020000
-RDATE:19910407T020000
-RDATE:19920405T020000
-RDATE:19930404T020000
-RDATE:19940403T020000
-RDATE:19950402T020000
-RDATE:19960407T020000
-RDATE:19970406T020000
-RDATE:19980405T020000
-RDATE:19990404T020000
-RDATE:20000402T020000
-RDATE:20010401T020000
-RDATE:20020407T020000
-RDATE:20030406T020000
-RDATE:20040404T020000
-RDATE:20050403T020000
-RDATE:20060402T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19181027T020000
-RDATE:19181027T020000
-RDATE:19191026T020000
-RDATE:19201031T020000
-RDATE:19210925T020000
-RDATE:19220924T020000
-RDATE:19230930T020000
-RDATE:19240928T020000
-RDATE:19250927T020000
-RDATE:19260926T020000
-RDATE:19270925T020000
-RDATE:19280930T020000
-RDATE:19290929T020000
-RDATE:19300928T020000
-RDATE:19310927T020000
-RDATE:19320925T020000
-RDATE:19330924T020000
-RDATE:19340930T020000
-RDATE:19350929T020000
-RDATE:19360927T020000
-RDATE:19370926T020000
-RDATE:19380925T020000
-RDATE:19390924T020000
-RDATE:19400929T020000
-RDATE:19410928T020000
-RDATE:19450930T020000
-RDATE:19460929T020000
-RDATE:19470928T020000
-RDATE:19480926T020000
-RDATE:19490925T020000
-RDATE:19500924T020000
-RDATE:19510930T020000
-RDATE:19520928T020000
-RDATE:19530927T020000
-RDATE:19540926T020000
-RDATE:19551030T020000
-RDATE:19561028T020000
-RDATE:19571027T020000
-RDATE:19581026T020000
-RDATE:19591025T020000
-RDATE:19601030T020000
-RDATE:19611029T020000
-RDATE:19621028T020000
-RDATE:19631027T020000
-RDATE:19641025T020000
-RDATE:19651031T020000
-RDATE:19661030T020000
-RDATE:19671029T020000
-RDATE:19681027T020000
-RDATE:19691026T020000
-RDATE:19701025T020000
-RDATE:19711031T020000
-RDATE:19721029T020000
-RDATE:19731028T020000
-RDATE:19741027T020000
-RDATE:19751026T020000
-RDATE:19761031T020000
-RDATE:19771030T020000
-RDATE:19781029T020000
-RDATE:19791028T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-RDATE:19831030T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861026T020000
-RDATE:19871025T020000
-RDATE:19881030T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931031T020000
-RDATE:19941030T020000
-RDATE:19951029T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:19991031T020000
-RDATE:20001029T020000
-RDATE:20011028T020000
-RDATE:20021027T020000
-RDATE:20031026T020000
-RDATE:20041031T020000
-RDATE:20051030T020000
-RDATE:20061029T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19200101T000000
-RDATE:19200101T000000
-RDATE:19420101T000000
-RDATE:19460101T000000
-RDATE:19670101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:EWT
-DTSTART:19420209T020000
-RDATE:19420209T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0400
-TZNAME:EPT
-DTSTART:19450814T190000
-RDATE:19450814T190000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Nipigon.ics b/libkcal/libical/zoneinfo/America/Nipigon.ics
deleted file mode 100644
index d82cb2fe..00000000
--- a/libkcal/libical/zoneinfo/America/Nipigon.ics
+++ /dev/null
@@ -1,125 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Nipigon
-X-LIC-LOCATION:America/Nipigon
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:EDT
-DTSTART:20070311T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:20071104T020000
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-055304
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:18950101T000000
-RDATE:18950101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:EDT
-DTSTART:19180414T020000
-RDATE:19180414T020000
-RDATE:19400929T000000
-RDATE:19740428T020000
-RDATE:19750427T020000
-RDATE:19760425T020000
-RDATE:19770424T020000
-RDATE:19780430T020000
-RDATE:19790429T020000
-RDATE:19800427T020000
-RDATE:19810426T020000
-RDATE:19820425T020000
-RDATE:19830424T020000
-RDATE:19840429T020000
-RDATE:19850428T020000
-RDATE:19860427T020000
-RDATE:19870405T020000
-RDATE:19880403T020000
-RDATE:19890402T020000
-RDATE:19900401T020000
-RDATE:19910407T020000
-RDATE:19920405T020000
-RDATE:19930404T020000
-RDATE:19940403T020000
-RDATE:19950402T020000
-RDATE:19960407T020000
-RDATE:19970406T020000
-RDATE:19980405T020000
-RDATE:19990404T020000
-RDATE:20000402T020000
-RDATE:20010401T020000
-RDATE:20020407T020000
-RDATE:20030406T020000
-RDATE:20040404T020000
-RDATE:20050403T020000
-RDATE:20060402T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19181031T020000
-RDATE:19181031T020000
-RDATE:19450930T020000
-RDATE:19741027T020000
-RDATE:19751026T020000
-RDATE:19761031T020000
-RDATE:19771030T020000
-RDATE:19781029T020000
-RDATE:19791028T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-RDATE:19831030T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861026T020000
-RDATE:19871025T020000
-RDATE:19881030T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931031T020000
-RDATE:19941030T020000
-RDATE:19951029T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:19991031T020000
-RDATE:20001029T020000
-RDATE:20011028T020000
-RDATE:20021027T020000
-RDATE:20031026T020000
-RDATE:20041031T020000
-RDATE:20051030T020000
-RDATE:20061029T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0400
-TZNAME:EWT
-DTSTART:19420209T020000
-RDATE:19420209T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0400
-TZNAME:EPT
-DTSTART:19450814T190000
-RDATE:19450814T190000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Nome.ics b/libkcal/libical/zoneinfo/America/Nome.ics
deleted file mode 100644
index a3965435..00000000
--- a/libkcal/libical/zoneinfo/America/Nome.ics
+++ /dev/null
@@ -1,186 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Nome
-X-LIC-LOCATION:America/Nome
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0900
-TZOFFSETTO:-0800
-TZNAME:AKDT
-DTSTART:20070311T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0800
-TZOFFSETTO:-0900
-TZNAME:AKST
-DTSTART:20071104T020000
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+125821
-TZOFFSETTO:-110138
-TZNAME:LMT
-DTSTART:18671018T000000
-RDATE:18671018T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-110138
-TZOFFSETTO:-1100
-TZNAME:NST
-DTSTART:19000820T120000
-RDATE:19000820T120000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-1100
-TZOFFSETTO:-1100
-TZNAME:NST
-DTSTART:19420101T000000
-RDATE:19420101T000000
-RDATE:19460101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-1100
-TZOFFSETTO:-1000
-TZNAME:NWT
-DTSTART:19420209T020000
-RDATE:19420209T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-1000
-TZOFFSETTO:-1000
-TZNAME:NPT
-DTSTART:19450814T130000
-RDATE:19450814T130000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-1000
-TZOFFSETTO:-1100
-TZNAME:NST
-DTSTART:19450930T020000
-RDATE:19450930T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-1100
-TZOFFSETTO:-1100
-TZNAME:BST
-DTSTART:19670401T000000
-RDATE:19670401T000000
-RDATE:19690101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-1100
-TZOFFSETTO:-1000
-TZNAME:BDT
-DTSTART:19690427T020000
-RDATE:19690427T020000
-RDATE:19700426T020000
-RDATE:19710425T020000
-RDATE:19720430T020000
-RDATE:19730429T020000
-RDATE:19740106T020000
-RDATE:19750223T020000
-RDATE:19760425T020000
-RDATE:19770424T020000
-RDATE:19780430T020000
-RDATE:19790429T020000
-RDATE:19800427T020000
-RDATE:19810426T020000
-RDATE:19820425T020000
-RDATE:19830424T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-1000
-TZOFFSETTO:-1100
-TZNAME:BST
-DTSTART:19691026T020000
-RDATE:19691026T020000
-RDATE:19701025T020000
-RDATE:19711031T020000
-RDATE:19721029T020000
-RDATE:19731028T020000
-RDATE:19741027T020000
-RDATE:19751026T020000
-RDATE:19761031T020000
-RDATE:19771030T020000
-RDATE:19781029T020000
-RDATE:19791028T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-1000
-TZOFFSETTO:-0900
-TZNAME:YST
-DTSTART:19831030T020000
-RDATE:19831030T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0900
-TZOFFSETTO:-0900
-TZNAME:AKST
-DTSTART:19831130T000000
-RDATE:19831130T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0900
-TZOFFSETTO:-0800
-TZNAME:AKDT
-DTSTART:19840429T020000
-RDATE:19840429T020000
-RDATE:19850428T020000
-RDATE:19860427T020000
-RDATE:19870405T020000
-RDATE:19880403T020000
-RDATE:19890402T020000
-RDATE:19900401T020000
-RDATE:19910407T020000
-RDATE:19920405T020000
-RDATE:19930404T020000
-RDATE:19940403T020000
-RDATE:19950402T020000
-RDATE:19960407T020000
-RDATE:19970406T020000
-RDATE:19980405T020000
-RDATE:19990404T020000
-RDATE:20000402T020000
-RDATE:20010401T020000
-RDATE:20020407T020000
-RDATE:20030406T020000
-RDATE:20040404T020000
-RDATE:20050403T020000
-RDATE:20060402T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0800
-TZOFFSETTO:-0900
-TZNAME:AKST
-DTSTART:19841028T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861026T020000
-RDATE:19871025T020000
-RDATE:19881030T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931031T020000
-RDATE:19941030T020000
-RDATE:19951029T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:19991031T020000
-RDATE:20001029T020000
-RDATE:20011028T020000
-RDATE:20021027T020000
-RDATE:20031026T020000
-RDATE:20041031T020000
-RDATE:20051030T020000
-RDATE:20061029T020000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Noronha.ics b/libkcal/libical/zoneinfo/America/Noronha.ics
deleted file mode 100644
index f73e93ec..00000000
--- a/libkcal/libical/zoneinfo/America/Noronha.ics
+++ /dev/null
@@ -1,75 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Noronha
-X-LIC-LOCATION:America/Noronha
-BEGIN:STANDARD
-TZOFFSETFROM:-020940
-TZOFFSETTO:-0200
-TZNAME:FNT
-DTSTART:19140101T000000
-RDATE:19140101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0100
-TZNAME:FNST
-DTSTART:19311003T110000
-RDATE:19311003T110000
-RDATE:19321003T000000
-RDATE:19491201T000000
-RDATE:19501201T000000
-RDATE:19511201T000000
-RDATE:19521201T000000
-RDATE:19631209T000000
-RDATE:19650131T000000
-RDATE:19651201T000000
-RDATE:19661101T000000
-RDATE:19671101T000000
-RDATE:19851102T000000
-RDATE:19861025T000000
-RDATE:19871025T000000
-RDATE:19881016T000000
-RDATE:19891015T000000
-RDATE:19991003T000000
-RDATE:20001008T000000
-RDATE:20011014T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0100
-TZOFFSETTO:-0200
-TZNAME:FNT
-DTSTART:19320401T000000
-RDATE:19320401T000000
-RDATE:19330401T000000
-RDATE:19500416T010000
-RDATE:19510401T000000
-RDATE:19520401T000000
-RDATE:19530301T000000
-RDATE:19640301T000000
-RDATE:19650331T000000
-RDATE:19660301T000000
-RDATE:19670301T000000
-RDATE:19680301T000000
-RDATE:19860315T000000
-RDATE:19870214T000000
-RDATE:19880207T000000
-RDATE:19890129T000000
-RDATE:19900211T000000
-RDATE:20000227T000000
-RDATE:20001015T000000
-RDATE:20020217T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0200
-TZNAME:FNT
-DTSTART:19900917T000000
-RDATE:19900917T000000
-RDATE:19990930T000000
-RDATE:20010913T000000
-RDATE:20021001T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/North_Dakota/Center.ics b/libkcal/libical/zoneinfo/America/North_Dakota/Center.ics
deleted file mode 100644
index 8270353c..00000000
--- a/libkcal/libical/zoneinfo/America/North_Dakota/Center.ics
+++ /dev/null
@@ -1,158 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/North_Dakota/Center
-X-LIC-LOCATION:America/North_Dakota/Center
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:20070311T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:20071104T020000
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-064512
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:18831118T121448
-RDATE:18831118T121448
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0600
-TZNAME:MDT
-DTSTART:19180331T020000
-RDATE:19180331T020000
-RDATE:19190330T020000
-RDATE:19670430T020000
-RDATE:19680428T020000
-RDATE:19690427T020000
-RDATE:19700426T020000
-RDATE:19710425T020000
-RDATE:19720430T020000
-RDATE:19730429T020000
-RDATE:19740106T020000
-RDATE:19750223T020000
-RDATE:19760425T020000
-RDATE:19770424T020000
-RDATE:19780430T020000
-RDATE:19790429T020000
-RDATE:19800427T020000
-RDATE:19810426T020000
-RDATE:19820425T020000
-RDATE:19830424T020000
-RDATE:19840429T020000
-RDATE:19850428T020000
-RDATE:19860427T020000
-RDATE:19870405T020000
-RDATE:19880403T020000
-RDATE:19890402T020000
-RDATE:19900401T020000
-RDATE:19910407T020000
-RDATE:19920405T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:19181027T020000
-RDATE:19181027T020000
-RDATE:19191026T020000
-RDATE:19450930T020000
-RDATE:19671029T020000
-RDATE:19681027T020000
-RDATE:19691026T020000
-RDATE:19701025T020000
-RDATE:19711031T020000
-RDATE:19721029T020000
-RDATE:19731028T020000
-RDATE:19741027T020000
-RDATE:19751026T020000
-RDATE:19761031T020000
-RDATE:19771030T020000
-RDATE:19781029T020000
-RDATE:19791028T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-RDATE:19831030T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861026T020000
-RDATE:19871025T020000
-RDATE:19881030T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0600
-TZNAME:MWT
-DTSTART:19420209T020000
-RDATE:19420209T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0600
-TZNAME:MPT
-DTSTART:19450814T170000
-RDATE:19450814T170000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19921025T020000
-RDATE:19921025T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:19930404T020000
-RDATE:19930404T020000
-RDATE:19940403T020000
-RDATE:19950402T020000
-RDATE:19960407T020000
-RDATE:19970406T020000
-RDATE:19980405T020000
-RDATE:19990404T020000
-RDATE:20000402T020000
-RDATE:20010401T020000
-RDATE:20020407T020000
-RDATE:20030406T020000
-RDATE:20040404T020000
-RDATE:20050403T020000
-RDATE:20060402T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19931031T020000
-RDATE:19931031T020000
-RDATE:19941030T020000
-RDATE:19951029T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:19991031T020000
-RDATE:20001029T020000
-RDATE:20011028T020000
-RDATE:20021027T020000
-RDATE:20031026T020000
-RDATE:20041031T020000
-RDATE:20051030T020000
-RDATE:20061029T020000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/North_Dakota/New_Salem.ics b/libkcal/libical/zoneinfo/America/North_Dakota/New_Salem.ics
deleted file mode 100644
index 45eb0175..00000000
--- a/libkcal/libical/zoneinfo/America/North_Dakota/New_Salem.ics
+++ /dev/null
@@ -1,158 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/North_Dakota/New_Salem
-X-LIC-LOCATION:America/North_Dakota/New_Salem
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:20070311T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:20071104T020000
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-064539
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:18831118T121421
-RDATE:18831118T121421
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0600
-TZNAME:MDT
-DTSTART:19180331T020000
-RDATE:19180331T020000
-RDATE:19190330T020000
-RDATE:19670430T020000
-RDATE:19680428T020000
-RDATE:19690427T020000
-RDATE:19700426T020000
-RDATE:19710425T020000
-RDATE:19720430T020000
-RDATE:19730429T020000
-RDATE:19740106T020000
-RDATE:19750223T020000
-RDATE:19760425T020000
-RDATE:19770424T020000
-RDATE:19780430T020000
-RDATE:19790429T020000
-RDATE:19800427T020000
-RDATE:19810426T020000
-RDATE:19820425T020000
-RDATE:19830424T020000
-RDATE:19840429T020000
-RDATE:19850428T020000
-RDATE:19860427T020000
-RDATE:19870405T020000
-RDATE:19880403T020000
-RDATE:19890402T020000
-RDATE:19900401T020000
-RDATE:19910407T020000
-RDATE:19920405T020000
-RDATE:19930404T020000
-RDATE:19940403T020000
-RDATE:19950402T020000
-RDATE:19960407T020000
-RDATE:19970406T020000
-RDATE:19980405T020000
-RDATE:19990404T020000
-RDATE:20000402T020000
-RDATE:20010401T020000
-RDATE:20020407T020000
-RDATE:20030406T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:19181027T020000
-RDATE:19181027T020000
-RDATE:19191026T020000
-RDATE:19450930T020000
-RDATE:19671029T020000
-RDATE:19681027T020000
-RDATE:19691026T020000
-RDATE:19701025T020000
-RDATE:19711031T020000
-RDATE:19721029T020000
-RDATE:19731028T020000
-RDATE:19741027T020000
-RDATE:19751026T020000
-RDATE:19761031T020000
-RDATE:19771030T020000
-RDATE:19781029T020000
-RDATE:19791028T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-RDATE:19831030T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861026T020000
-RDATE:19871025T020000
-RDATE:19881030T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931031T020000
-RDATE:19941030T020000
-RDATE:19951029T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:19991031T020000
-RDATE:20001029T020000
-RDATE:20011028T020000
-RDATE:20021027T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0600
-TZNAME:MWT
-DTSTART:19420209T020000
-RDATE:19420209T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0600
-TZNAME:MPT
-DTSTART:19450814T170000
-RDATE:19450814T170000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:20031026T020000
-RDATE:20031026T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:20040404T020000
-RDATE:20040404T020000
-RDATE:20050403T020000
-RDATE:20060402T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:20041031T020000
-RDATE:20041031T020000
-RDATE:20051030T020000
-RDATE:20061029T020000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Panama.ics b/libkcal/libical/zoneinfo/America/Panama.ics
deleted file mode 100644
index b31674d7..00000000
--- a/libkcal/libical/zoneinfo/America/Panama.ics
+++ /dev/null
@@ -1,22 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Panama
-X-LIC-LOCATION:America/Panama
-BEGIN:STANDARD
-TZOFFSETFROM:-051808
-TZOFFSETTO:-051936
-TZNAME:CMT
-DTSTART:18900101T000000
-RDATE:18900101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-051936
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19080422T000000
-RDATE:19080422T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Pangnirtung.ics b/libkcal/libical/zoneinfo/America/Pangnirtung.ics
deleted file mode 100644
index e73db19c..00000000
--- a/libkcal/libical/zoneinfo/America/Pangnirtung.ics
+++ /dev/null
@@ -1,160 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Pangnirtung
-X-LIC-LOCATION:America/Pangnirtung
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:EDT
-DTSTART:20070311T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:20071104T020000
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0000
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:19210101T000000
-RDATE:19210101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:AWT
-DTSTART:19420209T020000
-RDATE:19420209T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0300
-TZNAME:APT
-DTSTART:19450814T200000
-RDATE:19450814T200000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:19450930T020000
-RDATE:19450930T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-RDATE:19831030T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861026T020000
-RDATE:19871025T020000
-RDATE:19881030T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931031T020000
-RDATE:19941030T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0200
-TZNAME:ADDT
-DTSTART:19650425T000000
-RDATE:19650425T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:19651031T020000
-RDATE:19651031T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:ADT
-DTSTART:19800427T020000
-RDATE:19800427T020000
-RDATE:19810426T020000
-RDATE:19820425T020000
-RDATE:19830424T020000
-RDATE:19840429T020000
-RDATE:19850428T020000
-RDATE:19860427T020000
-RDATE:19870405T020000
-RDATE:19880403T020000
-RDATE:19890402T020000
-RDATE:19900401T020000
-RDATE:19910407T020000
-RDATE:19920405T020000
-RDATE:19930404T020000
-RDATE:19940403T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0400
-TZNAME:EDT
-DTSTART:19950402T020000
-RDATE:19950402T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19951029T020000
-RDATE:19951029T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:20011028T020000
-RDATE:20021027T020000
-RDATE:20031026T020000
-RDATE:20041031T020000
-RDATE:20051030T020000
-RDATE:20061029T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:EDT
-DTSTART:19960407T020000
-RDATE:19960407T020000
-RDATE:19970406T020000
-RDATE:19980405T020000
-RDATE:19990404T020000
-RDATE:20010401T020000
-RDATE:20020407T020000
-RDATE:20030406T020000
-RDATE:20040404T020000
-RDATE:20050403T020000
-RDATE:20060402T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19991031T020000
-RDATE:19991031T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:20000402T020000
-RDATE:20000402T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:20001029T020000
-RDATE:20001029T020000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Paramaribo.ics b/libkcal/libical/zoneinfo/America/Paramaribo.ics
deleted file mode 100644
index 1a0afa2f..00000000
--- a/libkcal/libical/zoneinfo/America/Paramaribo.ics
+++ /dev/null
@@ -1,43 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Paramaribo
-X-LIC-LOCATION:America/Paramaribo
-BEGIN:STANDARD
-TZOFFSETFROM:-034040
-TZOFFSETTO:-034052
-TZNAME:PMT
-DTSTART:19110101T000000
-RDATE:19110101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-034052
-TZOFFSETTO:-034036
-TZNAME:PMT
-DTSTART:19350101T000000
-RDATE:19350101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-034036
-TZOFFSETTO:-0330
-TZNAME:NEGT
-DTSTART:19451001T000000
-RDATE:19451001T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0330
-TZOFFSETTO:-0330
-TZNAME:SRT
-DTSTART:19751120T000000
-RDATE:19751120T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0330
-TZOFFSETTO:-0300
-TZNAME:SRT
-DTSTART:19841001T000000
-RDATE:19841001T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Phoenix.ics b/libkcal/libical/zoneinfo/America/Phoenix.ics
deleted file mode 100644
index 359a5c25..00000000
--- a/libkcal/libical/zoneinfo/America/Phoenix.ics
+++ /dev/null
@@ -1,51 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Phoenix
-X-LIC-LOCATION:America/Phoenix
-BEGIN:STANDARD
-TZOFFSETFROM:-072818
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:18831118T113142
-RDATE:18831118T113142
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0600
-TZNAME:MDT
-DTSTART:19180331T020000
-RDATE:19180331T020000
-RDATE:19190330T020000
-RDATE:19670430T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:19181027T020000
-RDATE:19181027T020000
-RDATE:19191026T020000
-RDATE:19440101T000100
-RDATE:19441001T000100
-RDATE:19671029T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0600
-TZNAME:MWT
-DTSTART:19420209T020000
-RDATE:19420209T020000
-RDATE:19440401T000100
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:19670101T000000
-RDATE:19670101T000000
-RDATE:19680321T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Port-au-Prince.ics b/libkcal/libical/zoneinfo/America/Port-au-Prince.ics
deleted file mode 100644
index 886e9273..00000000
--- a/libkcal/libical/zoneinfo/America/Port-au-Prince.ics
+++ /dev/null
@@ -1,68 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Port-au-Prince
-X-LIC-LOCATION:America/Port-au-Prince
-BEGIN:STANDARD
-TZOFFSETFROM:-044920
-TZOFFSETTO:-0449
-TZNAME:PPMT
-DTSTART:18900101T000000
-RDATE:18900101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0449
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19170124T120000
-RDATE:19170124T120000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:EDT
-DTSTART:19830508T000000
-RDATE:19830508T000000
-RDATE:19840429T000000
-RDATE:19850428T000000
-RDATE:19860427T000000
-RDATE:19870426T000000
-RDATE:19880403T010000
-RDATE:19890402T010000
-RDATE:19900401T010000
-RDATE:19910407T010000
-RDATE:19920405T010000
-RDATE:19930404T010000
-RDATE:19940403T010000
-RDATE:19950402T010000
-RDATE:19960407T010000
-RDATE:19970406T010000
-RDATE:20050403T000000
-RDATE:20060402T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19831030T000000
-RDATE:19831030T000000
-RDATE:19841028T000000
-RDATE:19851027T000000
-RDATE:19861026T000000
-RDATE:19871025T000000
-RDATE:19881030T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931031T020000
-RDATE:19941030T020000
-RDATE:19951029T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:20051030T000000
-RDATE:20061029T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Port_of_Spain.ics b/libkcal/libical/zoneinfo/America/Port_of_Spain.ics
deleted file mode 100644
index 2b8a39ae..00000000
--- a/libkcal/libical/zoneinfo/America/Port_of_Spain.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Port_of_Spain
-X-LIC-LOCATION:America/Port_of_Spain
-BEGIN:STANDARD
-TZOFFSETFROM:-040604
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:19120302T000000
-RDATE:19120302T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Porto_Velho.ics b/libkcal/libical/zoneinfo/America/Porto_Velho.ics
deleted file mode 100644
index 2036bb9a..00000000
--- a/libkcal/libical/zoneinfo/America/Porto_Velho.ics
+++ /dev/null
@@ -1,62 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Porto_Velho
-X-LIC-LOCATION:America/Porto_Velho
-BEGIN:STANDARD
-TZOFFSETFROM:-041536
-TZOFFSETTO:-0400
-TZNAME:AMT
-DTSTART:19140101T000000
-RDATE:19140101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:AMST
-DTSTART:19311003T110000
-RDATE:19311003T110000
-RDATE:19321003T000000
-RDATE:19491201T000000
-RDATE:19501201T000000
-RDATE:19511201T000000
-RDATE:19521201T000000
-RDATE:19631209T000000
-RDATE:19650131T000000
-RDATE:19651201T000000
-RDATE:19661101T000000
-RDATE:19671101T000000
-RDATE:19851102T000000
-RDATE:19861025T000000
-RDATE:19871025T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:AMT
-DTSTART:19320401T000000
-RDATE:19320401T000000
-RDATE:19330401T000000
-RDATE:19500416T010000
-RDATE:19510401T000000
-RDATE:19520401T000000
-RDATE:19530301T000000
-RDATE:19640301T000000
-RDATE:19650331T000000
-RDATE:19660301T000000
-RDATE:19670301T000000
-RDATE:19680301T000000
-RDATE:19860315T000000
-RDATE:19870214T000000
-RDATE:19880207T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0400
-TZNAME:AMT
-DTSTART:19880912T000000
-RDATE:19880912T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Puerto_Rico.ics b/libkcal/libical/zoneinfo/America/Puerto_Rico.ics
deleted file mode 100644
index d8ad163a..00000000
--- a/libkcal/libical/zoneinfo/America/Puerto_Rico.ics
+++ /dev/null
@@ -1,43 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Puerto_Rico
-X-LIC-LOCATION:America/Puerto_Rico
-BEGIN:STANDARD
-TZOFFSETFROM:-042425
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:18990328T120000
-RDATE:18990328T120000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:AWT
-DTSTART:19420503T000000
-RDATE:19420503T000000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0300
-TZNAME:APT
-DTSTART:19450814T200000
-RDATE:19450814T200000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:19450930T020000
-RDATE:19450930T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:19460101T000000
-RDATE:19460101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Rainy_River.ics b/libkcal/libical/zoneinfo/America/Rainy_River.ics
deleted file mode 100644
index 63eef3cb..00000000
--- a/libkcal/libical/zoneinfo/America/Rainy_River.ics
+++ /dev/null
@@ -1,125 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Rainy_River
-X-LIC-LOCATION:America/Rainy_River
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:20070311T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:20071104T020000
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-061816
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:18950101T000000
-RDATE:18950101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:19180414T020000
-RDATE:19180414T020000
-RDATE:19400929T000000
-RDATE:19740428T020000
-RDATE:19750427T020000
-RDATE:19760425T020000
-RDATE:19770424T020000
-RDATE:19780430T020000
-RDATE:19790429T020000
-RDATE:19800427T020000
-RDATE:19810426T020000
-RDATE:19820425T020000
-RDATE:19830424T020000
-RDATE:19840429T020000
-RDATE:19850428T020000
-RDATE:19860427T020000
-RDATE:19870405T020000
-RDATE:19880403T020000
-RDATE:19890402T020000
-RDATE:19900401T020000
-RDATE:19910407T020000
-RDATE:19920405T020000
-RDATE:19930404T020000
-RDATE:19940403T020000
-RDATE:19950402T020000
-RDATE:19960407T020000
-RDATE:19970406T020000
-RDATE:19980405T020000
-RDATE:19990404T020000
-RDATE:20000402T020000
-RDATE:20010401T020000
-RDATE:20020407T020000
-RDATE:20030406T020000
-RDATE:20040404T020000
-RDATE:20050403T020000
-RDATE:20060402T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19181031T020000
-RDATE:19181031T020000
-RDATE:19450930T020000
-RDATE:19741027T020000
-RDATE:19751026T020000
-RDATE:19761031T020000
-RDATE:19771030T020000
-RDATE:19781029T020000
-RDATE:19791028T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-RDATE:19831030T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861026T020000
-RDATE:19871025T020000
-RDATE:19881030T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931031T020000
-RDATE:19941030T020000
-RDATE:19951029T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:19991031T020000
-RDATE:20001029T020000
-RDATE:20011028T020000
-RDATE:20021027T020000
-RDATE:20031026T020000
-RDATE:20041031T020000
-RDATE:20051030T020000
-RDATE:20061029T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:CWT
-DTSTART:19420209T020000
-RDATE:19420209T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:CPT
-DTSTART:19450814T180000
-RDATE:19450814T180000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Rankin_Inlet.ics b/libkcal/libical/zoneinfo/America/Rankin_Inlet.ics
deleted file mode 100644
index 613981b1..00000000
--- a/libkcal/libical/zoneinfo/America/Rankin_Inlet.ics
+++ /dev/null
@@ -1,121 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Rankin_Inlet
-X-LIC-LOCATION:America/Rankin_Inlet
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:20070311T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:20071104T020000
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0000
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19570101T000000
-RDATE:19570101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0400
-TZNAME:CDDT
-DTSTART:19650425T000000
-RDATE:19650425T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19651031T020000
-RDATE:19651031T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:19800427T020000
-RDATE:19800427T020000
-RDATE:19810426T020000
-RDATE:19820425T020000
-RDATE:19830424T020000
-RDATE:19840429T020000
-RDATE:19850428T020000
-RDATE:19860427T020000
-RDATE:19870405T020000
-RDATE:19880403T020000
-RDATE:19890402T020000
-RDATE:19900401T020000
-RDATE:19910407T020000
-RDATE:19920405T020000
-RDATE:19930404T020000
-RDATE:19940403T020000
-RDATE:19950402T020000
-RDATE:19960407T020000
-RDATE:19970406T020000
-RDATE:19980405T020000
-RDATE:19990404T020000
-RDATE:20000402T020000
-RDATE:20020407T020000
-RDATE:20030406T020000
-RDATE:20040404T020000
-RDATE:20050403T020000
-RDATE:20060402T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19801026T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-RDATE:19831030T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861026T020000
-RDATE:19871025T020000
-RDATE:19881030T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931031T020000
-RDATE:19941030T020000
-RDATE:19951029T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:19991031T020000
-RDATE:20011028T020000
-RDATE:20021027T020000
-RDATE:20031026T020000
-RDATE:20041031T020000
-RDATE:20051030T020000
-RDATE:20061029T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:20001029T020000
-RDATE:20001029T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:20010401T020000
-RDATE:20010401T020000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Recife.ics b/libkcal/libical/zoneinfo/America/Recife.ics
deleted file mode 100644
index f7e938dd..00000000
--- a/libkcal/libical/zoneinfo/America/Recife.ics
+++ /dev/null
@@ -1,75 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Recife
-X-LIC-LOCATION:America/Recife
-BEGIN:STANDARD
-TZOFFSETFROM:-021936
-TZOFFSETTO:-0300
-TZNAME:BRT
-DTSTART:19140101T000000
-RDATE:19140101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0200
-TZNAME:BRST
-DTSTART:19311003T110000
-RDATE:19311003T110000
-RDATE:19321003T000000
-RDATE:19491201T000000
-RDATE:19501201T000000
-RDATE:19511201T000000
-RDATE:19521201T000000
-RDATE:19631209T000000
-RDATE:19650131T000000
-RDATE:19651201T000000
-RDATE:19661101T000000
-RDATE:19671101T000000
-RDATE:19851102T000000
-RDATE:19861025T000000
-RDATE:19871025T000000
-RDATE:19881016T000000
-RDATE:19891015T000000
-RDATE:19991003T000000
-RDATE:20001008T000000
-RDATE:20011014T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0300
-TZNAME:BRT
-DTSTART:19320401T000000
-RDATE:19320401T000000
-RDATE:19330401T000000
-RDATE:19500416T010000
-RDATE:19510401T000000
-RDATE:19520401T000000
-RDATE:19530301T000000
-RDATE:19640301T000000
-RDATE:19650331T000000
-RDATE:19660301T000000
-RDATE:19670301T000000
-RDATE:19680301T000000
-RDATE:19860315T000000
-RDATE:19870214T000000
-RDATE:19880207T000000
-RDATE:19890129T000000
-RDATE:19900211T000000
-RDATE:20000227T000000
-RDATE:20001015T000000
-RDATE:20020217T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0300
-TZNAME:BRT
-DTSTART:19900917T000000
-RDATE:19900917T000000
-RDATE:19990930T000000
-RDATE:20010913T000000
-RDATE:20021001T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Regina.ics b/libkcal/libical/zoneinfo/America/Regina.ics
deleted file mode 100644
index fe23ab8c..00000000
--- a/libkcal/libical/zoneinfo/America/Regina.ics
+++ /dev/null
@@ -1,97 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Regina
-X-LIC-LOCATION:America/Regina
-BEGIN:STANDARD
-TZOFFSETFROM:-065836
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:19050901T000000
-RDATE:19050901T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0600
-TZNAME:MDT
-DTSTART:19180414T020000
-RDATE:19180414T020000
-RDATE:19300504T000000
-RDATE:19310503T000000
-RDATE:19320501T000000
-RDATE:19330507T000000
-RDATE:19340506T000000
-RDATE:19370411T000000
-RDATE:19380410T000000
-RDATE:19390409T000000
-RDATE:19400414T000000
-RDATE:19410413T000000
-RDATE:19460414T020000
-RDATE:19470427T020000
-RDATE:19480425T020000
-RDATE:19490424T020000
-RDATE:19500430T020000
-RDATE:19510429T020000
-RDATE:19520427T020000
-RDATE:19530426T020000
-RDATE:19540425T020000
-RDATE:19550424T020000
-RDATE:19560429T020000
-RDATE:19570428T020000
-RDATE:19590426T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:19181031T020000
-RDATE:19181031T020000
-RDATE:19301005T000000
-RDATE:19311004T000000
-RDATE:19321002T000000
-RDATE:19331001T000000
-RDATE:19341007T000000
-RDATE:19371010T000000
-RDATE:19381002T000000
-RDATE:19391008T000000
-RDATE:19401013T000000
-RDATE:19411012T000000
-RDATE:19450930T020000
-RDATE:19461013T020000
-RDATE:19470928T020000
-RDATE:19480926T020000
-RDATE:19490925T020000
-RDATE:19500924T020000
-RDATE:19510930T020000
-RDATE:19520928T020000
-RDATE:19530927T020000
-RDATE:19540926T020000
-RDATE:19550925T020000
-RDATE:19560930T020000
-RDATE:19570929T020000
-RDATE:19591025T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0600
-TZNAME:MWT
-DTSTART:19420209T020000
-RDATE:19420209T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0600
-TZNAME:MPT
-DTSTART:19450814T170000
-RDATE:19450814T170000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19600424T020000
-RDATE:19600424T020000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Resolute.ics b/libkcal/libical/zoneinfo/America/Resolute.ics
deleted file mode 100644
index 73729801..00000000
--- a/libkcal/libical/zoneinfo/America/Resolute.ics
+++ /dev/null
@@ -1,107 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Resolute
-X-LIC-LOCATION:America/Resolute
-BEGIN:STANDARD
-TZOFFSETFROM:+0000
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19470831T000000
-RDATE:19470831T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0400
-TZNAME:CDDT
-DTSTART:19650425T000000
-RDATE:19650425T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19651031T020000
-RDATE:19651031T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:19800427T020000
-RDATE:19800427T020000
-RDATE:19810426T020000
-RDATE:19820425T020000
-RDATE:19830424T020000
-RDATE:19840429T020000
-RDATE:19850428T020000
-RDATE:19860427T020000
-RDATE:19870405T020000
-RDATE:19880403T020000
-RDATE:19890402T020000
-RDATE:19900401T020000
-RDATE:19910407T020000
-RDATE:19920405T020000
-RDATE:19930404T020000
-RDATE:19940403T020000
-RDATE:19950402T020000
-RDATE:19960407T020000
-RDATE:19970406T020000
-RDATE:19980405T020000
-RDATE:19990404T020000
-RDATE:20000402T020000
-RDATE:20020407T020000
-RDATE:20030406T020000
-RDATE:20040404T020000
-RDATE:20050403T020000
-RDATE:20060402T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19801026T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-RDATE:19831030T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861026T020000
-RDATE:19871025T020000
-RDATE:19881030T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931031T020000
-RDATE:19941030T020000
-RDATE:19951029T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:19991031T020000
-RDATE:20011028T020000
-RDATE:20021027T020000
-RDATE:20031026T020000
-RDATE:20041031T020000
-RDATE:20051030T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:20001029T020000
-RDATE:20001029T020000
-RDATE:20061029T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:20010401T020000
-RDATE:20010401T020000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Rio_Branco.ics b/libkcal/libical/zoneinfo/America/Rio_Branco.ics
deleted file mode 100644
index ec3a8644..00000000
--- a/libkcal/libical/zoneinfo/America/Rio_Branco.ics
+++ /dev/null
@@ -1,62 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Rio_Branco
-X-LIC-LOCATION:America/Rio_Branco
-BEGIN:STANDARD
-TZOFFSETFROM:-043112
-TZOFFSETTO:-0500
-TZNAME:ACT
-DTSTART:19140101T000000
-RDATE:19140101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:ACST
-DTSTART:19311003T110000
-RDATE:19311003T110000
-RDATE:19321003T000000
-RDATE:19491201T000000
-RDATE:19501201T000000
-RDATE:19511201T000000
-RDATE:19521201T000000
-RDATE:19631209T000000
-RDATE:19650131T000000
-RDATE:19651201T000000
-RDATE:19661101T000000
-RDATE:19671101T000000
-RDATE:19851102T000000
-RDATE:19861025T000000
-RDATE:19871025T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0500
-TZNAME:ACT
-DTSTART:19320401T000000
-RDATE:19320401T000000
-RDATE:19330401T000000
-RDATE:19500416T010000
-RDATE:19510401T000000
-RDATE:19520401T000000
-RDATE:19530301T000000
-RDATE:19640301T000000
-RDATE:19650331T000000
-RDATE:19660301T000000
-RDATE:19670301T000000
-RDATE:19680301T000000
-RDATE:19860315T000000
-RDATE:19870214T000000
-RDATE:19880207T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:ACT
-DTSTART:19880912T000000
-RDATE:19880912T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Santiago.ics b/libkcal/libical/zoneinfo/America/Santiago.ics
deleted file mode 100644
index 5132714f..00000000
--- a/libkcal/libical/zoneinfo/America/Santiago.ics
+++ /dev/null
@@ -1,193 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Santiago
-X-LIC-LOCATION:America/Santiago
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:CLST
-DTSTART:19991010T000000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYMONTHDAY=9,10,11,12,13,14,15;BYDAY=SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:CLT
-DTSTART:20090315T000000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYMONTHDAY=9,10,11,12,13,14,15;BYDAY=SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-044246
-TZOFFSETTO:-044246
-TZNAME:SMT
-DTSTART:18900101T000000
-RDATE:18900101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-044246
-TZOFFSETTO:-0500
-TZNAME:CLT
-DTSTART:19100101T000000
-RDATE:19100101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-044246
-TZNAME:SMT
-DTSTART:19160701T000000
-RDATE:19160701T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-044246
-TZOFFSETTO:-0400
-TZNAME:CLT
-DTSTART:19180901T000000
-RDATE:19180901T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-044246
-TZNAME:SMT
-DTSTART:19190701T000000
-RDATE:19190701T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-044246
-TZOFFSETTO:-0400
-TZNAME:CLST
-DTSTART:19270901T000000
-RDATE:19270901T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0500
-TZNAME:CLT
-DTSTART:19280401T000000
-RDATE:19280401T000000
-RDATE:19290401T000000
-RDATE:19300401T000000
-RDATE:19310401T000000
-RDATE:19320401T000000
-RDATE:19420601T000000
-RDATE:19460831T230000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:CLST
-DTSTART:19280901T000000
-RDATE:19280901T000000
-RDATE:19290901T000000
-RDATE:19300901T000000
-RDATE:19310901T000000
-RDATE:19320901T000000
-RDATE:19420801T000000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0400
-TZNAME:CLST
-DTSTART:19460715T000000
-RDATE:19460715T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:CLT
-DTSTART:19470331T230000
-RDATE:19470331T230000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:CLT
-DTSTART:19470522T000000
-RDATE:19470522T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:CLST
-DTSTART:19681103T000000
-RDATE:19681103T000000
-RDATE:19691123T000000
-RDATE:19701011T000000
-RDATE:19711010T000000
-RDATE:19721015T000000
-RDATE:19730930T000000
-RDATE:19741013T000000
-RDATE:19751012T000000
-RDATE:19761010T000000
-RDATE:19771009T000000
-RDATE:19781015T000000
-RDATE:19791014T000000
-RDATE:19801012T000000
-RDATE:19811011T000000
-RDATE:19821010T000000
-RDATE:19831009T000000
-RDATE:19841014T000000
-RDATE:19851013T000000
-RDATE:19861012T000000
-RDATE:19871011T000000
-RDATE:19881002T000000
-RDATE:19891015T000000
-RDATE:19900916T000000
-RDATE:19911013T000000
-RDATE:19921011T000000
-RDATE:19931010T000000
-RDATE:19941009T000000
-RDATE:19951015T000000
-RDATE:19961013T000000
-RDATE:19971012T000000
-RDATE:19980927T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:CLT
-DTSTART:19690330T000000
-RDATE:19690330T000000
-RDATE:19700329T000000
-RDATE:19710314T000000
-RDATE:19720312T000000
-RDATE:19730311T000000
-RDATE:19740310T000000
-RDATE:19750309T000000
-RDATE:19760314T000000
-RDATE:19770313T000000
-RDATE:19780312T000000
-RDATE:19790311T000000
-RDATE:19800309T000000
-RDATE:19810315T000000
-RDATE:19820314T000000
-RDATE:19830313T000000
-RDATE:19840311T000000
-RDATE:19850310T000000
-RDATE:19860309T000000
-RDATE:19870412T000000
-RDATE:19880313T000000
-RDATE:19890312T000000
-RDATE:19900318T000000
-RDATE:19910310T000000
-RDATE:19920315T000000
-RDATE:19930314T000000
-RDATE:19940313T000000
-RDATE:19950312T000000
-RDATE:19960310T000000
-RDATE:19970330T000000
-RDATE:19980315T000000
-RDATE:19990404T000000
-RDATE:20000312T000000
-RDATE:20010311T000000
-RDATE:20020310T000000
-RDATE:20030309T000000
-RDATE:20040314T000000
-RDATE:20050313T000000
-RDATE:20060312T000000
-RDATE:20070311T000000
-RDATE:20080330T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Santo_Domingo.ics b/libkcal/libical/zoneinfo/America/Santo_Domingo.ics
deleted file mode 100644
index 49772186..00000000
--- a/libkcal/libical/zoneinfo/America/Santo_Domingo.ics
+++ /dev/null
@@ -1,67 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Santo_Domingo
-X-LIC-LOCATION:America/Santo_Domingo
-BEGIN:STANDARD
-TZOFFSETFROM:-043936
-TZOFFSETTO:-0440
-TZNAME:SDMT
-DTSTART:18900101T000000
-RDATE:18900101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0440
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19330401T120000
-RDATE:19330401T120000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:EDT
-DTSTART:19661030T000000
-RDATE:19661030T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19670228T000000
-RDATE:19670228T000000
-RDATE:20001029T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0430
-TZNAME:EHDT
-DTSTART:19691026T000000
-RDATE:19691026T000000
-RDATE:19701025T000000
-RDATE:19711031T000000
-RDATE:19721029T000000
-RDATE:19731028T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0430
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19700221T000000
-RDATE:19700221T000000
-RDATE:19710120T000000
-RDATE:19720121T000000
-RDATE:19730121T000000
-RDATE:19740121T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:19741027T000000
-RDATE:19741027T000000
-RDATE:20001203T010000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Sao_Paulo.ics b/libkcal/libical/zoneinfo/America/Sao_Paulo.ics
deleted file mode 100644
index 9f9ff52b..00000000
--- a/libkcal/libical/zoneinfo/America/Sao_Paulo.ics
+++ /dev/null
@@ -1,114 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Sao_Paulo
-X-LIC-LOCATION:America/Sao_Paulo
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0200
-TZNAME:BRST
-DTSTART:20071014T000000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0300
-TZNAME:BRT
-DTSTART:20080217T000000
-RRULE:FREQ=YEARLY;BYMONTH=2;BYDAY=3SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-030628
-TZOFFSETTO:-0300
-TZNAME:BRT
-DTSTART:19140101T000000
-RDATE:19140101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0200
-TZNAME:BRST
-DTSTART:19311003T110000
-RDATE:19311003T110000
-RDATE:19321003T000000
-RDATE:19491201T000000
-RDATE:19501201T000000
-RDATE:19511201T000000
-RDATE:19521201T000000
-RDATE:19631023T000000
-RDATE:19650131T000000
-RDATE:19651201T000000
-RDATE:19661101T000000
-RDATE:19671101T000000
-RDATE:19851102T000000
-RDATE:19861025T000000
-RDATE:19871025T000000
-RDATE:19881016T000000
-RDATE:19891015T000000
-RDATE:19901021T000000
-RDATE:19911020T000000
-RDATE:19921025T000000
-RDATE:19931017T000000
-RDATE:19941016T000000
-RDATE:19951015T000000
-RDATE:19961006T000000
-RDATE:19971006T000000
-RDATE:19981011T000000
-RDATE:19991003T000000
-RDATE:20001008T000000
-RDATE:20011014T000000
-RDATE:20021103T000000
-RDATE:20031019T000000
-RDATE:20041102T000000
-RDATE:20051016T000000
-RDATE:20061105T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0300
-TZNAME:BRT
-DTSTART:19320401T000000
-RDATE:19320401T000000
-RDATE:19330401T000000
-RDATE:19500416T010000
-RDATE:19510401T000000
-RDATE:19520401T000000
-RDATE:19530301T000000
-RDATE:19640301T000000
-RDATE:19650331T000000
-RDATE:19660301T000000
-RDATE:19670301T000000
-RDATE:19680301T000000
-RDATE:19860315T000000
-RDATE:19870214T000000
-RDATE:19880207T000000
-RDATE:19890129T000000
-RDATE:19900211T000000
-RDATE:19910217T000000
-RDATE:19920209T000000
-RDATE:19930131T000000
-RDATE:19940220T000000
-RDATE:19950219T000000
-RDATE:19960211T000000
-RDATE:19970216T000000
-RDATE:19980301T000000
-RDATE:19990221T000000
-RDATE:20000227T000000
-RDATE:20010218T000000
-RDATE:20020217T000000
-RDATE:20030216T000000
-RDATE:20040215T000000
-RDATE:20050220T000000
-RDATE:20060219T000000
-RDATE:20070225T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0200
-TZNAME:BRST
-DTSTART:19640101T000000
-RDATE:19640101T000000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Scoresbysund.ics b/libkcal/libical/zoneinfo/America/Scoresbysund.ics
deleted file mode 100644
index b8b3f298..00000000
--- a/libkcal/libical/zoneinfo/America/Scoresbysund.ics
+++ /dev/null
@@ -1,71 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Scoresbysund
-X-LIC-LOCATION:America/Scoresbysund
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0100
-TZOFFSETTO:+0000
-TZNAME:EGST
-DTSTART:19820328T000000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0000
-TZOFFSETTO:-0100
-TZNAME:EGT
-DTSTART:19961027T010000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-012752
-TZOFFSETTO:-0200
-TZNAME:CGT
-DTSTART:19160728T000000
-RDATE:19160728T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0100
-TZNAME:CGST
-DTSTART:19800406T020000
-RDATE:19800406T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0100
-TZOFFSETTO:-0200
-TZNAME:CGT
-DTSTART:19800928T030000
-RDATE:19800928T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0200
-TZOFFSETTO:+0000
-TZNAME:EGST
-DTSTART:19810329T000000
-RDATE:19810329T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0000
-TZOFFSETTO:-0100
-TZNAME:EGT
-DTSTART:19810927T010000
-RDATE:19810927T010000
-RDATE:19820926T010000
-RDATE:19830925T010000
-RDATE:19840930T010000
-RDATE:19850929T010000
-RDATE:19860928T010000
-RDATE:19870927T010000
-RDATE:19880925T010000
-RDATE:19890924T010000
-RDATE:19900930T010000
-RDATE:19910929T010000
-RDATE:19920927T010000
-RDATE:19930926T010000
-RDATE:19940925T010000
-RDATE:19950924T010000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Shiprock.ics b/libkcal/libical/zoneinfo/America/Shiprock.ics
deleted file mode 100644
index f79d50cc..00000000
--- a/libkcal/libical/zoneinfo/America/Shiprock.ics
+++ /dev/null
@@ -1,158 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Shiprock
-X-LIC-LOCATION:America/Shiprock
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0600
-TZNAME:MDT
-DTSTART:20070311T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:20071104T020000
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-065956
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:18831118T120004
-RDATE:18831118T120004
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0600
-TZNAME:MDT
-DTSTART:19180331T020000
-RDATE:19180331T020000
-RDATE:19190330T020000
-RDATE:19200328T020000
-RDATE:19210327T020000
-RDATE:19650425T020000
-RDATE:19660424T020000
-RDATE:19670430T020000
-RDATE:19680428T020000
-RDATE:19690427T020000
-RDATE:19700426T020000
-RDATE:19710425T020000
-RDATE:19720430T020000
-RDATE:19730429T020000
-RDATE:19740106T020000
-RDATE:19750223T020000
-RDATE:19760425T020000
-RDATE:19770424T020000
-RDATE:19780430T020000
-RDATE:19790429T020000
-RDATE:19800427T020000
-RDATE:19810426T020000
-RDATE:19820425T020000
-RDATE:19830424T020000
-RDATE:19840429T020000
-RDATE:19850428T020000
-RDATE:19860427T020000
-RDATE:19870405T020000
-RDATE:19880403T020000
-RDATE:19890402T020000
-RDATE:19900401T020000
-RDATE:19910407T020000
-RDATE:19920405T020000
-RDATE:19930404T020000
-RDATE:19940403T020000
-RDATE:19950402T020000
-RDATE:19960407T020000
-RDATE:19970406T020000
-RDATE:19980405T020000
-RDATE:19990404T020000
-RDATE:20000402T020000
-RDATE:20010401T020000
-RDATE:20020407T020000
-RDATE:20030406T020000
-RDATE:20040404T020000
-RDATE:20050403T020000
-RDATE:20060402T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:19181027T020000
-RDATE:19181027T020000
-RDATE:19191026T020000
-RDATE:19201031T020000
-RDATE:19210522T020000
-RDATE:19450930T020000
-RDATE:19651031T020000
-RDATE:19661030T020000
-RDATE:19671029T020000
-RDATE:19681027T020000
-RDATE:19691026T020000
-RDATE:19701025T020000
-RDATE:19711031T020000
-RDATE:19721029T020000
-RDATE:19731028T020000
-RDATE:19741027T020000
-RDATE:19751026T020000
-RDATE:19761031T020000
-RDATE:19771030T020000
-RDATE:19781029T020000
-RDATE:19791028T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-RDATE:19831030T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861026T020000
-RDATE:19871025T020000
-RDATE:19881030T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931031T020000
-RDATE:19941030T020000
-RDATE:19951029T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:19991031T020000
-RDATE:20001029T020000
-RDATE:20011028T020000
-RDATE:20021027T020000
-RDATE:20031026T020000
-RDATE:20041031T020000
-RDATE:20051030T020000
-RDATE:20061029T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:19200101T000000
-RDATE:19200101T000000
-RDATE:19420101T000000
-RDATE:19460101T000000
-RDATE:19670101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0600
-TZNAME:MWT
-DTSTART:19420209T020000
-RDATE:19420209T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0600
-TZNAME:MPT
-DTSTART:19450814T170000
-RDATE:19450814T170000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/St_Barthelemy.ics b/libkcal/libical/zoneinfo/America/St_Barthelemy.ics
deleted file mode 100644
index 97a1e4e8..00000000
--- a/libkcal/libical/zoneinfo/America/St_Barthelemy.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/St_Barthelemy
-X-LIC-LOCATION:America/St_Barthelemy
-BEGIN:STANDARD
-TZOFFSETFROM:-040608
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:19110608T000000
-RDATE:19110608T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/St_Johns.ics b/libkcal/libical/zoneinfo/America/St_Johns.ics
deleted file mode 100644
index bb5f01cc..00000000
--- a/libkcal/libical/zoneinfo/America/St_Johns.ics
+++ /dev/null
@@ -1,268 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/St_Johns
-X-LIC-LOCATION:America/St_Johns
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0330
-TZOFFSETTO:-0230
-TZNAME:NDT
-DTSTART:20070311T000100
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0230
-TZOFFSETTO:-0330
-TZNAME:NST
-DTSTART:20071104T000100
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-033052
-TZOFFSETTO:-033052
-TZNAME:NST
-DTSTART:18840101T000000
-RDATE:18840101T000000
-RDATE:19180101T000000
-RDATE:19190101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-033052
-TZOFFSETTO:-023052
-TZNAME:NDT
-DTSTART:19170408T020000
-RDATE:19170408T020000
-RDATE:19180414T020000
-RDATE:19190505T230000
-RDATE:19200502T230000
-RDATE:19210501T230000
-RDATE:19220507T230000
-RDATE:19230506T230000
-RDATE:19240504T230000
-RDATE:19250503T230000
-RDATE:19260502T230000
-RDATE:19270501T230000
-RDATE:19280506T230000
-RDATE:19290505T230000
-RDATE:19300504T230000
-RDATE:19310503T230000
-RDATE:19320501T230000
-RDATE:19330507T230000
-RDATE:19340506T230000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-023052
-TZOFFSETTO:-033052
-TZNAME:NST
-DTSTART:19170917T020000
-RDATE:19170917T020000
-RDATE:19181031T020000
-RDATE:19190812T230000
-RDATE:19201031T230000
-RDATE:19211030T230000
-RDATE:19221029T230000
-RDATE:19231028T230000
-RDATE:19241026T230000
-RDATE:19251025T230000
-RDATE:19261031T230000
-RDATE:19271030T230000
-RDATE:19281028T230000
-RDATE:19291027T230000
-RDATE:19301026T230000
-RDATE:19311025T230000
-RDATE:19321030T230000
-RDATE:19331029T230000
-RDATE:19341028T230000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-033052
-TZOFFSETTO:-0330
-TZNAME:NST
-DTSTART:19350330T000000
-RDATE:19350330T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0330
-TZOFFSETTO:-0230
-TZNAME:NDT
-DTSTART:19350505T230000
-RDATE:19350505T230000
-RDATE:19360511T000000
-RDATE:19370510T000000
-RDATE:19380509T000000
-RDATE:19390515T000000
-RDATE:19400513T000000
-RDATE:19410512T000000
-RDATE:19460512T020000
-RDATE:19470511T020000
-RDATE:19480509T020000
-RDATE:19490508T020000
-RDATE:19500514T020000
-RDATE:19510429T020000
-RDATE:19520427T020000
-RDATE:19530426T020000
-RDATE:19540425T020000
-RDATE:19550424T020000
-RDATE:19560429T020000
-RDATE:19570428T020000
-RDATE:19580427T020000
-RDATE:19590426T020000
-RDATE:19600424T020000
-RDATE:19610430T020000
-RDATE:19620429T020000
-RDATE:19630428T020000
-RDATE:19640426T020000
-RDATE:19650425T020000
-RDATE:19660424T020000
-RDATE:19670430T020000
-RDATE:19680428T020000
-RDATE:19690427T020000
-RDATE:19700426T020000
-RDATE:19710425T020000
-RDATE:19720430T020000
-RDATE:19730429T020000
-RDATE:19740428T020000
-RDATE:19750427T020000
-RDATE:19760425T020000
-RDATE:19770424T020000
-RDATE:19780430T020000
-RDATE:19790429T020000
-RDATE:19800427T020000
-RDATE:19810426T020000
-RDATE:19820425T020000
-RDATE:19830424T020000
-RDATE:19840429T020000
-RDATE:19850428T020000
-RDATE:19860427T020000
-RDATE:19870405T000100
-RDATE:19890402T000100
-RDATE:19900401T000100
-RDATE:19910407T000100
-RDATE:19920405T000100
-RDATE:19930404T000100
-RDATE:19940403T000100
-RDATE:19950402T000100
-RDATE:19960407T000100
-RDATE:19970406T000100
-RDATE:19980405T000100
-RDATE:19990404T000100
-RDATE:20000402T000100
-RDATE:20010401T000100
-RDATE:20020407T000100
-RDATE:20030406T000100
-RDATE:20040404T000100
-RDATE:20050403T000100
-RDATE:20060402T000100
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0230
-TZOFFSETTO:-0330
-TZNAME:NST
-DTSTART:19351027T230000
-RDATE:19351027T230000
-RDATE:19361005T000000
-RDATE:19371004T000000
-RDATE:19381003T000000
-RDATE:19391002T000000
-RDATE:19401007T000000
-RDATE:19411006T000000
-RDATE:19450930T020000
-RDATE:19461006T020000
-RDATE:19471005T020000
-RDATE:19481003T020000
-RDATE:19491002T020000
-RDATE:19501008T020000
-RDATE:19510930T020000
-RDATE:19520928T020000
-RDATE:19530927T020000
-RDATE:19540926T020000
-RDATE:19550925T020000
-RDATE:19560930T020000
-RDATE:19570929T020000
-RDATE:19580928T020000
-RDATE:19590927T020000
-RDATE:19601030T020000
-RDATE:19611029T020000
-RDATE:19621028T020000
-RDATE:19631027T020000
-RDATE:19641025T020000
-RDATE:19651031T020000
-RDATE:19661030T020000
-RDATE:19671029T020000
-RDATE:19681027T020000
-RDATE:19691026T020000
-RDATE:19701025T020000
-RDATE:19711031T020000
-RDATE:19721029T020000
-RDATE:19731028T020000
-RDATE:19741027T020000
-RDATE:19751026T020000
-RDATE:19761031T020000
-RDATE:19771030T020000
-RDATE:19781029T020000
-RDATE:19791028T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-RDATE:19831030T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861026T020000
-RDATE:19871025T000100
-RDATE:19891029T000100
-RDATE:19901028T000100
-RDATE:19911027T000100
-RDATE:19921025T000100
-RDATE:19931031T000100
-RDATE:19941030T000100
-RDATE:19951029T000100
-RDATE:19961027T000100
-RDATE:19971026T000100
-RDATE:19981025T000100
-RDATE:19991031T000100
-RDATE:20001029T000100
-RDATE:20011028T000100
-RDATE:20021027T000100
-RDATE:20031026T000100
-RDATE:20041031T000100
-RDATE:20051030T000100
-RDATE:20061029T000100
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0330
-TZOFFSETTO:-0230
-TZNAME:NWT
-DTSTART:19420511T000000
-RDATE:19420511T000000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0230
-TZOFFSETTO:-0230
-TZNAME:NPT
-DTSTART:19450814T203000
-RDATE:19450814T203000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0330
-TZOFFSETTO:-0330
-TZNAME:NST
-DTSTART:19460101T000000
-RDATE:19460101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0330
-TZOFFSETTO:-0130
-TZNAME:NDDT
-DTSTART:19880403T000100
-RDATE:19880403T000100
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0130
-TZOFFSETTO:-0330
-TZNAME:NST
-DTSTART:19881030T000100
-RDATE:19881030T000100
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/St_Kitts.ics b/libkcal/libical/zoneinfo/America/St_Kitts.ics
deleted file mode 100644
index 2860c855..00000000
--- a/libkcal/libical/zoneinfo/America/St_Kitts.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/St_Kitts
-X-LIC-LOCATION:America/St_Kitts
-BEGIN:STANDARD
-TZOFFSETFROM:-041052
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:19120302T000000
-RDATE:19120302T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/St_Lucia.ics b/libkcal/libical/zoneinfo/America/St_Lucia.ics
deleted file mode 100644
index 805c2f96..00000000
--- a/libkcal/libical/zoneinfo/America/St_Lucia.ics
+++ /dev/null
@@ -1,22 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/St_Lucia
-X-LIC-LOCATION:America/St_Lucia
-BEGIN:STANDARD
-TZOFFSETFROM:-0404
-TZOFFSETTO:-0404
-TZNAME:CMT
-DTSTART:18900101T000000
-RDATE:18900101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0404
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:19120101T000000
-RDATE:19120101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/St_Thomas.ics b/libkcal/libical/zoneinfo/America/St_Thomas.ics
deleted file mode 100644
index 35b110da..00000000
--- a/libkcal/libical/zoneinfo/America/St_Thomas.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/St_Thomas
-X-LIC-LOCATION:America/St_Thomas
-BEGIN:STANDARD
-TZOFFSETFROM:-041944
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:19110701T000000
-RDATE:19110701T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/St_Vincent.ics b/libkcal/libical/zoneinfo/America/St_Vincent.ics
deleted file mode 100644
index edacd437..00000000
--- a/libkcal/libical/zoneinfo/America/St_Vincent.ics
+++ /dev/null
@@ -1,22 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/St_Vincent
-X-LIC-LOCATION:America/St_Vincent
-BEGIN:STANDARD
-TZOFFSETFROM:-040456
-TZOFFSETTO:-040456
-TZNAME:KMT
-DTSTART:18900101T000000
-RDATE:18900101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-040456
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:19120101T000000
-RDATE:19120101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Swift_Current.ics b/libkcal/libical/zoneinfo/America/Swift_Current.ics
deleted file mode 100644
index b8ab459b..00000000
--- a/libkcal/libical/zoneinfo/America/Swift_Current.ics
+++ /dev/null
@@ -1,74 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Swift_Current
-X-LIC-LOCATION:America/Swift_Current
-BEGIN:STANDARD
-TZOFFSETFROM:-071120
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:19050901T000000
-RDATE:19050901T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0600
-TZNAME:MDT
-DTSTART:19180414T020000
-RDATE:19180414T020000
-RDATE:19460428T020000
-RDATE:19470427T020000
-RDATE:19480425T020000
-RDATE:19490424T020000
-RDATE:19570428T020000
-RDATE:19590426T020000
-RDATE:19600424T020000
-RDATE:19610430T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:19181031T020000
-RDATE:19181031T020000
-RDATE:19450930T020000
-RDATE:19461013T020000
-RDATE:19470928T020000
-RDATE:19480926T020000
-RDATE:19490925T020000
-RDATE:19571027T020000
-RDATE:19591025T020000
-RDATE:19600925T020000
-RDATE:19610924T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0600
-TZNAME:MWT
-DTSTART:19420209T020000
-RDATE:19420209T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0600
-TZNAME:MPT
-DTSTART:19450814T170000
-RDATE:19450814T170000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:19500101T000000
-RDATE:19500101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19720430T020000
-RDATE:19720430T020000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Tegucigalpa.ics b/libkcal/libical/zoneinfo/America/Tegucigalpa.ics
deleted file mode 100644
index e5ec1e0a..00000000
--- a/libkcal/libical/zoneinfo/America/Tegucigalpa.ics
+++ /dev/null
@@ -1,33 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Tegucigalpa
-X-LIC-LOCATION:America/Tegucigalpa
-BEGIN:STANDARD
-TZOFFSETFROM:-054852
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19210401T000000
-RDATE:19210401T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:19870503T000000
-RDATE:19870503T000000
-RDATE:19880501T000000
-RDATE:20060507T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19870927T000000
-RDATE:19870927T000000
-RDATE:19880925T000000
-RDATE:20060807T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Thule.ics b/libkcal/libical/zoneinfo/America/Thule.ics
deleted file mode 100644
index 7da99f4d..00000000
--- a/libkcal/libical/zoneinfo/America/Thule.ics
+++ /dev/null
@@ -1,73 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Thule
-X-LIC-LOCATION:America/Thule
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:ADT
-DTSTART:20070311T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:20071104T020000
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-043508
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:19160728T000000
-RDATE:19160728T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:ADT
-DTSTART:19910331T020000
-RDATE:19910331T020000
-RDATE:19920329T020000
-RDATE:19930404T020000
-RDATE:19940403T020000
-RDATE:19950402T020000
-RDATE:19960407T020000
-RDATE:19970406T020000
-RDATE:19980405T020000
-RDATE:19990404T020000
-RDATE:20000402T020000
-RDATE:20010401T020000
-RDATE:20020407T020000
-RDATE:20030406T020000
-RDATE:20040404T020000
-RDATE:20050403T020000
-RDATE:20060402T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:19910929T020000
-RDATE:19910929T020000
-RDATE:19920927T020000
-RDATE:19931031T020000
-RDATE:19941030T020000
-RDATE:19951029T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:19991031T020000
-RDATE:20001029T020000
-RDATE:20011028T020000
-RDATE:20021027T020000
-RDATE:20031026T020000
-RDATE:20041031T020000
-RDATE:20051030T020000
-RDATE:20061029T020000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Thunder_Bay.ics b/libkcal/libical/zoneinfo/America/Thunder_Bay.ics
deleted file mode 100644
index 1c54083f..00000000
--- a/libkcal/libical/zoneinfo/America/Thunder_Bay.ics
+++ /dev/null
@@ -1,145 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Thunder_Bay
-X-LIC-LOCATION:America/Thunder_Bay
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:EDT
-DTSTART:20070311T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:20071104T020000
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0557
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:18950101T000000
-RDATE:18950101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19100101T000000
-RDATE:19100101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19420101T000000
-RDATE:19420101T000000
-RDATE:19700101T000000
-RDATE:19730101T000000
-RDATE:19740101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:EWT
-DTSTART:19420209T020000
-RDATE:19420209T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0400
-TZNAME:EPT
-DTSTART:19450814T190000
-RDATE:19450814T190000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19450930T020000
-RDATE:19450930T020000
-RDATE:19701025T020000
-RDATE:19711031T020000
-RDATE:19721029T020000
-RDATE:19741027T020000
-RDATE:19751026T020000
-RDATE:19761031T020000
-RDATE:19771030T020000
-RDATE:19781029T020000
-RDATE:19791028T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-RDATE:19831030T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861026T020000
-RDATE:19871025T020000
-RDATE:19881030T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931031T020000
-RDATE:19941030T020000
-RDATE:19951029T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:19991031T020000
-RDATE:20001029T020000
-RDATE:20011028T020000
-RDATE:20021027T020000
-RDATE:20031026T020000
-RDATE:20041031T020000
-RDATE:20051030T020000
-RDATE:20061029T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:EDT
-DTSTART:19700426T020000
-RDATE:19700426T020000
-RDATE:19710425T020000
-RDATE:19720430T020000
-RDATE:19740428T020000
-RDATE:19750427T020000
-RDATE:19760425T020000
-RDATE:19770424T020000
-RDATE:19780430T020000
-RDATE:19790429T020000
-RDATE:19800427T020000
-RDATE:19810426T020000
-RDATE:19820425T020000
-RDATE:19830424T020000
-RDATE:19840429T020000
-RDATE:19850428T020000
-RDATE:19860427T020000
-RDATE:19870405T020000
-RDATE:19880403T020000
-RDATE:19890402T020000
-RDATE:19900401T020000
-RDATE:19910407T020000
-RDATE:19920405T020000
-RDATE:19930404T020000
-RDATE:19940403T020000
-RDATE:19950402T020000
-RDATE:19960407T020000
-RDATE:19970406T020000
-RDATE:19980405T020000
-RDATE:19990404T020000
-RDATE:20000402T020000
-RDATE:20010401T020000
-RDATE:20020407T020000
-RDATE:20030406T020000
-RDATE:20040404T020000
-RDATE:20050403T020000
-RDATE:20060402T020000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Tijuana.ics b/libkcal/libical/zoneinfo/America/Tijuana.ics
deleted file mode 100644
index cf02aace..00000000
--- a/libkcal/libical/zoneinfo/America/Tijuana.ics
+++ /dev/null
@@ -1,106 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Tijuana
-X-LIC-LOCATION:America/Tijuana
-BEGIN:STANDARD
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0800
-TZNAME:PST
-DTSTART:19761031T020000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0800
-TZOFFSETTO:-0700
-TZNAME:PDT
-DTSTART:19870405T020000
-RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-074804
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:19220101T001156
-RDATE:19220101T001156
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0800
-TZNAME:PST
-DTSTART:19240101T000000
-RDATE:19240101T000000
-RDATE:19301115T000000
-RDATE:19310930T000000
-RDATE:19451112T000000
-RDATE:19490114T000000
-RDATE:19540926T020000
-RDATE:19550925T020000
-RDATE:19560930T020000
-RDATE:19570929T020000
-RDATE:19580928T020000
-RDATE:19590927T020000
-RDATE:19600925T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0800
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:19270610T230000
-RDATE:19270610T230000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0800
-TZOFFSETTO:-0700
-TZNAME:PDT
-DTSTART:19310401T000000
-RDATE:19310401T000000
-RDATE:19480405T000000
-RDATE:19540425T020000
-RDATE:19550424T020000
-RDATE:19560429T020000
-RDATE:19570428T020000
-RDATE:19580427T020000
-RDATE:19590426T020000
-RDATE:19600424T020000
-RDATE:19760425T020000
-RDATE:19770424T020000
-RDATE:19780430T020000
-RDATE:19790429T020000
-RDATE:19800427T020000
-RDATE:19810426T020000
-RDATE:19820425T020000
-RDATE:19830424T020000
-RDATE:19840429T020000
-RDATE:19850428T020000
-RDATE:19860427T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0800
-TZOFFSETTO:-0700
-TZNAME:PWT
-DTSTART:19420424T000000
-RDATE:19420424T000000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0700
-TZNAME:PPT
-DTSTART:19450814T160000
-RDATE:19450814T160000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0800
-TZOFFSETTO:-0800
-TZNAME:PST
-DTSTART:19540101T000000
-RDATE:19540101T000000
-RDATE:19610101T000000
-RDATE:19760101T000000
-RDATE:19960101T000000
-RDATE:20010101T000000
-RDATE:20020220T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Toronto.ics b/libkcal/libical/zoneinfo/America/Toronto.ics
deleted file mode 100644
index d6a31435..00000000
--- a/libkcal/libical/zoneinfo/America/Toronto.ics
+++ /dev/null
@@ -1,232 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Toronto
-X-LIC-LOCATION:America/Toronto
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:EDT
-DTSTART:20070311T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:20071104T020000
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-051732
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:18950101T000000
-RDATE:18950101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0400
-TZNAME:EDT
-DTSTART:19180414T020000
-RDATE:19180414T020000
-RDATE:19190330T233000
-RDATE:19200502T020000
-RDATE:19210515T020000
-RDATE:19220514T020000
-RDATE:19230513T020000
-RDATE:19240504T020000
-RDATE:19250503T020000
-RDATE:19260502T020000
-RDATE:19270501T020000
-RDATE:19280429T020000
-RDATE:19290428T020000
-RDATE:19300427T020000
-RDATE:19310426T020000
-RDATE:19320501T020000
-RDATE:19330430T020000
-RDATE:19340429T020000
-RDATE:19350428T020000
-RDATE:19360426T020000
-RDATE:19370425T020000
-RDATE:19380424T020000
-RDATE:19390430T020000
-RDATE:19400428T020000
-RDATE:19460428T020000
-RDATE:19470427T000000
-RDATE:19480425T000000
-RDATE:19490424T000000
-RDATE:19500430T020000
-RDATE:19510429T020000
-RDATE:19520427T020000
-RDATE:19530426T020000
-RDATE:19540425T020000
-RDATE:19550424T020000
-RDATE:19560429T020000
-RDATE:19570428T020000
-RDATE:19580427T020000
-RDATE:19590426T020000
-RDATE:19600424T020000
-RDATE:19610430T020000
-RDATE:19620429T020000
-RDATE:19630428T020000
-RDATE:19640426T020000
-RDATE:19650425T020000
-RDATE:19660424T020000
-RDATE:19670430T020000
-RDATE:19680428T020000
-RDATE:19690427T020000
-RDATE:19700426T020000
-RDATE:19710425T020000
-RDATE:19720430T020000
-RDATE:19730429T020000
-RDATE:19740428T020000
-RDATE:19750427T020000
-RDATE:19760425T020000
-RDATE:19770424T020000
-RDATE:19780430T020000
-RDATE:19790429T020000
-RDATE:19800427T020000
-RDATE:19810426T020000
-RDATE:19820425T020000
-RDATE:19830424T020000
-RDATE:19840429T020000
-RDATE:19850428T020000
-RDATE:19860427T020000
-RDATE:19870405T020000
-RDATE:19880403T020000
-RDATE:19890402T020000
-RDATE:19900401T020000
-RDATE:19910407T020000
-RDATE:19920405T020000
-RDATE:19930404T020000
-RDATE:19940403T020000
-RDATE:19950402T020000
-RDATE:19960407T020000
-RDATE:19970406T020000
-RDATE:19980405T020000
-RDATE:19990404T020000
-RDATE:20000402T020000
-RDATE:20010401T020000
-RDATE:20020407T020000
-RDATE:20030406T020000
-RDATE:20040404T020000
-RDATE:20050403T020000
-RDATE:20060402T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19181031T020000
-RDATE:19181031T020000
-RDATE:19191026T000000
-RDATE:19200926T000000
-RDATE:19210915T020000
-RDATE:19220917T020000
-RDATE:19230916T020000
-RDATE:19240921T020000
-RDATE:19250920T020000
-RDATE:19260919T020000
-RDATE:19270925T020000
-RDATE:19280930T020000
-RDATE:19290929T020000
-RDATE:19300928T020000
-RDATE:19310927T020000
-RDATE:19320925T020000
-RDATE:19331001T020000
-RDATE:19340930T020000
-RDATE:19350929T020000
-RDATE:19360927T020000
-RDATE:19370926T020000
-RDATE:19380925T020000
-RDATE:19390924T020000
-RDATE:19450930T020000
-RDATE:19460929T020000
-RDATE:19470928T000000
-RDATE:19480926T000000
-RDATE:19491127T000000
-RDATE:19501126T020000
-RDATE:19510930T020000
-RDATE:19520928T020000
-RDATE:19530927T020000
-RDATE:19540926T020000
-RDATE:19550925T020000
-RDATE:19560930T020000
-RDATE:19571027T020000
-RDATE:19581026T020000
-RDATE:19591025T020000
-RDATE:19601030T020000
-RDATE:19611029T020000
-RDATE:19621028T020000
-RDATE:19631027T020000
-RDATE:19641025T020000
-RDATE:19651031T020000
-RDATE:19661030T020000
-RDATE:19671029T020000
-RDATE:19681027T020000
-RDATE:19691026T020000
-RDATE:19701025T020000
-RDATE:19711031T020000
-RDATE:19721029T020000
-RDATE:19731028T020000
-RDATE:19741027T020000
-RDATE:19751026T020000
-RDATE:19761031T020000
-RDATE:19771030T020000
-RDATE:19781029T020000
-RDATE:19791028T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-RDATE:19831030T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861026T020000
-RDATE:19871025T020000
-RDATE:19881030T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931031T020000
-RDATE:19941030T020000
-RDATE:19951029T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:19991031T020000
-RDATE:20001029T020000
-RDATE:20011028T020000
-RDATE:20021027T020000
-RDATE:20031026T020000
-RDATE:20041031T020000
-RDATE:20051030T020000
-RDATE:20061029T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:EST
-DTSTART:19190101T000000
-RDATE:19190101T000000
-RDATE:19460101T000000
-RDATE:19740101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0400
-TZNAME:EWT
-DTSTART:19420209T020000
-RDATE:19420209T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0400
-TZNAME:EPT
-DTSTART:19450814T190000
-RDATE:19450814T190000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Tortola.ics b/libkcal/libical/zoneinfo/America/Tortola.ics
deleted file mode 100644
index be30bd5b..00000000
--- a/libkcal/libical/zoneinfo/America/Tortola.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Tortola
-X-LIC-LOCATION:America/Tortola
-BEGIN:STANDARD
-TZOFFSETFROM:-041828
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:19110701T000000
-RDATE:19110701T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Vancouver.ics b/libkcal/libical/zoneinfo/America/Vancouver.ics
deleted file mode 100644
index 725387c9..00000000
--- a/libkcal/libical/zoneinfo/America/Vancouver.ics
+++ /dev/null
@@ -1,187 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Vancouver
-X-LIC-LOCATION:America/Vancouver
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0800
-TZOFFSETTO:-0700
-TZNAME:PDT
-DTSTART:20070311T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0800
-TZNAME:PST
-DTSTART:20071104T020000
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-081228
-TZOFFSETTO:-0800
-TZNAME:PST
-DTSTART:18840101T000000
-RDATE:18840101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0800
-TZOFFSETTO:-0700
-TZNAME:PDT
-DTSTART:19180414T020000
-RDATE:19180414T020000
-RDATE:19460428T020000
-RDATE:19470427T020000
-RDATE:19480425T020000
-RDATE:19490424T020000
-RDATE:19500430T020000
-RDATE:19510429T020000
-RDATE:19520427T020000
-RDATE:19530426T020000
-RDATE:19540425T020000
-RDATE:19550424T020000
-RDATE:19560429T020000
-RDATE:19570428T020000
-RDATE:19580427T020000
-RDATE:19590426T020000
-RDATE:19600424T020000
-RDATE:19610430T020000
-RDATE:19620429T020000
-RDATE:19630428T020000
-RDATE:19640426T020000
-RDATE:19650425T020000
-RDATE:19660424T020000
-RDATE:19670430T020000
-RDATE:19680428T020000
-RDATE:19690427T020000
-RDATE:19700426T020000
-RDATE:19710425T020000
-RDATE:19720430T020000
-RDATE:19730429T020000
-RDATE:19740428T020000
-RDATE:19750427T020000
-RDATE:19760425T020000
-RDATE:19770424T020000
-RDATE:19780430T020000
-RDATE:19790429T020000
-RDATE:19800427T020000
-RDATE:19810426T020000
-RDATE:19820425T020000
-RDATE:19830424T020000
-RDATE:19840429T020000
-RDATE:19850428T020000
-RDATE:19860427T020000
-RDATE:19870405T020000
-RDATE:19880403T020000
-RDATE:19890402T020000
-RDATE:19900401T020000
-RDATE:19910407T020000
-RDATE:19920405T020000
-RDATE:19930404T020000
-RDATE:19940403T020000
-RDATE:19950402T020000
-RDATE:19960407T020000
-RDATE:19970406T020000
-RDATE:19980405T020000
-RDATE:19990404T020000
-RDATE:20000402T020000
-RDATE:20010401T020000
-RDATE:20020407T020000
-RDATE:20030406T020000
-RDATE:20040404T020000
-RDATE:20050403T020000
-RDATE:20060402T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0800
-TZNAME:PST
-DTSTART:19181031T020000
-RDATE:19181031T020000
-RDATE:19450930T020000
-RDATE:19461013T020000
-RDATE:19470928T020000
-RDATE:19480926T020000
-RDATE:19490925T020000
-RDATE:19500924T020000
-RDATE:19510930T020000
-RDATE:19520928T020000
-RDATE:19530927T020000
-RDATE:19540926T020000
-RDATE:19550925T020000
-RDATE:19560930T020000
-RDATE:19570929T020000
-RDATE:19580928T020000
-RDATE:19590927T020000
-RDATE:19600925T020000
-RDATE:19610924T020000
-RDATE:19621028T020000
-RDATE:19631027T020000
-RDATE:19641025T020000
-RDATE:19651031T020000
-RDATE:19661030T020000
-RDATE:19671029T020000
-RDATE:19681027T020000
-RDATE:19691026T020000
-RDATE:19701025T020000
-RDATE:19711031T020000
-RDATE:19721029T020000
-RDATE:19731028T020000
-RDATE:19741027T020000
-RDATE:19751026T020000
-RDATE:19761031T020000
-RDATE:19771030T020000
-RDATE:19781029T020000
-RDATE:19791028T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-RDATE:19831030T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861026T020000
-RDATE:19871025T020000
-RDATE:19881030T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931031T020000
-RDATE:19941030T020000
-RDATE:19951029T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:19991031T020000
-RDATE:20001029T020000
-RDATE:20011028T020000
-RDATE:20021027T020000
-RDATE:20031026T020000
-RDATE:20041031T020000
-RDATE:20051030T020000
-RDATE:20061029T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0800
-TZOFFSETTO:-0700
-TZNAME:PWT
-DTSTART:19420209T020000
-RDATE:19420209T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0700
-TZNAME:PPT
-DTSTART:19450814T160000
-RDATE:19450814T160000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0800
-TZOFFSETTO:-0800
-TZNAME:PST
-DTSTART:19870101T000000
-RDATE:19870101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Whitehorse.ics b/libkcal/libical/zoneinfo/America/Whitehorse.ics
deleted file mode 100644
index e93d8aad..00000000
--- a/libkcal/libical/zoneinfo/America/Whitehorse.ics
+++ /dev/null
@@ -1,153 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Whitehorse
-X-LIC-LOCATION:America/Whitehorse
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0800
-TZOFFSETTO:-0700
-TZNAME:PDT
-DTSTART:20070311T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0800
-TZNAME:PST
-DTSTART:20071104T020000
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-090012
-TZOFFSETTO:-0900
-TZNAME:YST
-DTSTART:19000820T000000
-RDATE:19000820T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0900
-TZOFFSETTO:-0800
-TZNAME:YDT
-DTSTART:19180414T020000
-RDATE:19180414T020000
-RDATE:19190525T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0800
-TZOFFSETTO:-0900
-TZNAME:YST
-DTSTART:19181027T020000
-RDATE:19181027T020000
-RDATE:19191101T000000
-RDATE:19450930T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0900
-TZOFFSETTO:-0800
-TZNAME:YWT
-DTSTART:19420209T020000
-RDATE:19420209T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0800
-TZOFFSETTO:-0800
-TZNAME:YPT
-DTSTART:19450814T150000
-RDATE:19450814T150000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0900
-TZOFFSETTO:-0700
-TZNAME:YDDT
-DTSTART:19650425T000000
-RDATE:19650425T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0900
-TZNAME:YST
-DTSTART:19651031T020000
-RDATE:19651031T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0900
-TZOFFSETTO:-0800
-DTSTART:19660701T020000
-RDATE:19660701T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0800
-TZOFFSETTO:-0800
-TZNAME:PST
-DTSTART:19800101T000000
-RDATE:19800101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0800
-TZOFFSETTO:-0700
-TZNAME:PDT
-DTSTART:19800427T020000
-RDATE:19800427T020000
-RDATE:19810426T020000
-RDATE:19820425T020000
-RDATE:19830424T020000
-RDATE:19840429T020000
-RDATE:19850428T020000
-RDATE:19860427T020000
-RDATE:19870405T020000
-RDATE:19880403T020000
-RDATE:19890402T020000
-RDATE:19900401T020000
-RDATE:19910407T020000
-RDATE:19920405T020000
-RDATE:19930404T020000
-RDATE:19940403T020000
-RDATE:19950402T020000
-RDATE:19960407T020000
-RDATE:19970406T020000
-RDATE:19980405T020000
-RDATE:19990404T020000
-RDATE:20000402T020000
-RDATE:20010401T020000
-RDATE:20020407T020000
-RDATE:20030406T020000
-RDATE:20040404T020000
-RDATE:20050403T020000
-RDATE:20060402T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0800
-TZNAME:PST
-DTSTART:19801026T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-RDATE:19831030T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861026T020000
-RDATE:19871025T020000
-RDATE:19881030T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931031T020000
-RDATE:19941030T020000
-RDATE:19951029T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:19991031T020000
-RDATE:20001029T020000
-RDATE:20011028T020000
-RDATE:20021027T020000
-RDATE:20031026T020000
-RDATE:20041031T020000
-RDATE:20051030T020000
-RDATE:20061029T020000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Winnipeg.ics b/libkcal/libical/zoneinfo/America/Winnipeg.ics
deleted file mode 100644
index e75440d5..00000000
--- a/libkcal/libical/zoneinfo/America/Winnipeg.ics
+++ /dev/null
@@ -1,183 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Winnipeg
-X-LIC-LOCATION:America/Winnipeg
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:20070311T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:20071104T020000
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-062836
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:18870716T000000
-RDATE:18870716T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CDT
-DTSTART:19160423T000000
-RDATE:19160423T000000
-RDATE:19180414T020000
-RDATE:19370516T020000
-RDATE:19460512T020000
-RDATE:19470427T020000
-RDATE:19480425T020000
-RDATE:19490424T020000
-RDATE:19500501T020000
-RDATE:19510429T020000
-RDATE:19520427T020000
-RDATE:19530426T020000
-RDATE:19540425T020000
-RDATE:19550424T020000
-RDATE:19560429T020000
-RDATE:19570428T020000
-RDATE:19580427T020000
-RDATE:19590426T020000
-RDATE:19600424T020000
-RDATE:19630428T020000
-RDATE:19660424T020000
-RDATE:19670430T020000
-RDATE:19680428T020000
-RDATE:19690427T020000
-RDATE:19700426T020000
-RDATE:19710425T020000
-RDATE:19720430T020000
-RDATE:19730429T020000
-RDATE:19740428T020000
-RDATE:19750427T020000
-RDATE:19760425T020000
-RDATE:19770424T020000
-RDATE:19780430T020000
-RDATE:19790429T020000
-RDATE:19800427T020000
-RDATE:19810426T020000
-RDATE:19820425T020000
-RDATE:19830424T020000
-RDATE:19840429T020000
-RDATE:19850428T020000
-RDATE:19860427T020000
-RDATE:19870405T020000
-RDATE:19880403T020000
-RDATE:19890402T020000
-RDATE:19900401T020000
-RDATE:19910407T020000
-RDATE:19920405T020000
-RDATE:19930404T020000
-RDATE:19940403T020000
-RDATE:19950402T020000
-RDATE:19960407T020000
-RDATE:19970406T020000
-RDATE:19980405T020000
-RDATE:19990404T020000
-RDATE:20000402T020000
-RDATE:20010401T020000
-RDATE:20020407T020000
-RDATE:20030406T020000
-RDATE:20040404T020000
-RDATE:20050403T020000
-RDATE:20060402T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:19160917T000000
-RDATE:19160917T000000
-RDATE:19181031T020000
-RDATE:19370926T020000
-RDATE:19450930T020000
-RDATE:19461013T020000
-RDATE:19470928T020000
-RDATE:19480926T020000
-RDATE:19490925T020000
-RDATE:19500930T020000
-RDATE:19510930T020000
-RDATE:19520928T020000
-RDATE:19530927T020000
-RDATE:19540926T020000
-RDATE:19550925T020000
-RDATE:19560930T020000
-RDATE:19570929T020000
-RDATE:19580928T020000
-RDATE:19591025T020000
-RDATE:19600925T020000
-RDATE:19630922T020000
-RDATE:19661030T030000
-RDATE:19671029T030000
-RDATE:19681027T030000
-RDATE:19691026T030000
-RDATE:19701025T030000
-RDATE:19711031T030000
-RDATE:19721029T030000
-RDATE:19731028T030000
-RDATE:19741027T030000
-RDATE:19751026T030000
-RDATE:19761031T030000
-RDATE:19771030T030000
-RDATE:19781029T030000
-RDATE:19791028T030000
-RDATE:19801026T030000
-RDATE:19811025T030000
-RDATE:19821031T030000
-RDATE:19831030T030000
-RDATE:19841028T030000
-RDATE:19851027T030000
-RDATE:19861026T030000
-RDATE:19871025T030000
-RDATE:19881030T030000
-RDATE:19891029T030000
-RDATE:19901028T030000
-RDATE:19911027T030000
-RDATE:19921025T030000
-RDATE:19931031T030000
-RDATE:19941030T030000
-RDATE:19951029T030000
-RDATE:19961027T030000
-RDATE:19971026T030000
-RDATE:19981025T030000
-RDATE:19991031T030000
-RDATE:20001029T030000
-RDATE:20011028T030000
-RDATE:20021027T030000
-RDATE:20031026T030000
-RDATE:20041031T030000
-RDATE:20051030T030000
-RDATE:20061029T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:CWT
-DTSTART:19420209T020000
-RDATE:19420209T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0500
-TZNAME:CPT
-DTSTART:19450814T180000
-RDATE:19450814T180000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0600
-TZNAME:CST
-DTSTART:20060101T000000
-RDATE:20060101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Yakutat.ics b/libkcal/libical/zoneinfo/America/Yakutat.ics
deleted file mode 100644
index 894ead5c..00000000
--- a/libkcal/libical/zoneinfo/America/Yakutat.ics
+++ /dev/null
@@ -1,167 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Yakutat
-X-LIC-LOCATION:America/Yakutat
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0900
-TZOFFSETTO:-0800
-TZNAME:AKDT
-DTSTART:20070311T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0800
-TZOFFSETTO:-0900
-TZNAME:AKST
-DTSTART:20071104T020000
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+144105
-TZOFFSETTO:-091855
-TZNAME:LMT
-DTSTART:18671018T000000
-RDATE:18671018T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-091855
-TZOFFSETTO:-0900
-TZNAME:YST
-DTSTART:19000820T120000
-RDATE:19000820T120000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0900
-TZOFFSETTO:-0900
-TZNAME:YST
-DTSTART:19420101T000000
-RDATE:19420101T000000
-RDATE:19460101T000000
-RDATE:19690101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0900
-TZOFFSETTO:-0800
-TZNAME:YWT
-DTSTART:19420209T020000
-RDATE:19420209T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0800
-TZOFFSETTO:-0800
-TZNAME:YPT
-DTSTART:19450814T150000
-RDATE:19450814T150000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0800
-TZOFFSETTO:-0900
-TZNAME:YST
-DTSTART:19450930T020000
-RDATE:19450930T020000
-RDATE:19691026T020000
-RDATE:19701025T020000
-RDATE:19711031T020000
-RDATE:19721029T020000
-RDATE:19731028T020000
-RDATE:19741027T020000
-RDATE:19751026T020000
-RDATE:19761031T020000
-RDATE:19771030T020000
-RDATE:19781029T020000
-RDATE:19791028T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-RDATE:19831030T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0900
-TZOFFSETTO:-0800
-TZNAME:YDT
-DTSTART:19690427T020000
-RDATE:19690427T020000
-RDATE:19700426T020000
-RDATE:19710425T020000
-RDATE:19720430T020000
-RDATE:19730429T020000
-RDATE:19740106T020000
-RDATE:19750223T020000
-RDATE:19760425T020000
-RDATE:19770424T020000
-RDATE:19780430T020000
-RDATE:19790429T020000
-RDATE:19800427T020000
-RDATE:19810426T020000
-RDATE:19820425T020000
-RDATE:19830424T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0900
-TZOFFSETTO:-0900
-TZNAME:AKST
-DTSTART:19831130T000000
-RDATE:19831130T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0900
-TZOFFSETTO:-0800
-TZNAME:AKDT
-DTSTART:19840429T020000
-RDATE:19840429T020000
-RDATE:19850428T020000
-RDATE:19860427T020000
-RDATE:19870405T020000
-RDATE:19880403T020000
-RDATE:19890402T020000
-RDATE:19900401T020000
-RDATE:19910407T020000
-RDATE:19920405T020000
-RDATE:19930404T020000
-RDATE:19940403T020000
-RDATE:19950402T020000
-RDATE:19960407T020000
-RDATE:19970406T020000
-RDATE:19980405T020000
-RDATE:19990404T020000
-RDATE:20000402T020000
-RDATE:20010401T020000
-RDATE:20020407T020000
-RDATE:20030406T020000
-RDATE:20040404T020000
-RDATE:20050403T020000
-RDATE:20060402T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0800
-TZOFFSETTO:-0900
-TZNAME:AKST
-DTSTART:19841028T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861026T020000
-RDATE:19871025T020000
-RDATE:19881030T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931031T020000
-RDATE:19941030T020000
-RDATE:19951029T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:19991031T020000
-RDATE:20001029T020000
-RDATE:20011028T020000
-RDATE:20021027T020000
-RDATE:20031026T020000
-RDATE:20041031T020000
-RDATE:20051030T020000
-RDATE:20061029T020000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/America/Yellowknife.ics b/libkcal/libical/zoneinfo/America/Yellowknife.ics
deleted file mode 100644
index 6d3e45b1..00000000
--- a/libkcal/libical/zoneinfo/America/Yellowknife.ics
+++ /dev/null
@@ -1,131 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/America/Yellowknife
-X-LIC-LOCATION:America/Yellowknife
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0600
-TZNAME:MDT
-DTSTART:20070311T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:20071104T020000
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0000
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:19350101T000000
-RDATE:19350101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0600
-TZNAME:MWT
-DTSTART:19420209T020000
-RDATE:19420209T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0600
-TZNAME:MPT
-DTSTART:19450814T170000
-RDATE:19450814T170000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:19450930T020000
-RDATE:19450930T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-RDATE:19831030T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861026T020000
-RDATE:19871025T020000
-RDATE:19881030T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931031T020000
-RDATE:19941030T020000
-RDATE:19951029T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:19991031T020000
-RDATE:20001029T020000
-RDATE:20011028T020000
-RDATE:20021027T020000
-RDATE:20031026T020000
-RDATE:20041031T020000
-RDATE:20051030T020000
-RDATE:20061029T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0500
-TZNAME:MDDT
-DTSTART:19650425T000000
-RDATE:19650425T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:19651031T020000
-RDATE:19651031T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0700
-TZNAME:MST
-DTSTART:19800101T000000
-RDATE:19800101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0600
-TZNAME:MDT
-DTSTART:19800427T020000
-RDATE:19800427T020000
-RDATE:19810426T020000
-RDATE:19820425T020000
-RDATE:19830424T020000
-RDATE:19840429T020000
-RDATE:19850428T020000
-RDATE:19860427T020000
-RDATE:19870405T020000
-RDATE:19880403T020000
-RDATE:19890402T020000
-RDATE:19900401T020000
-RDATE:19910407T020000
-RDATE:19920405T020000
-RDATE:19930404T020000
-RDATE:19940403T020000
-RDATE:19950402T020000
-RDATE:19960407T020000
-RDATE:19970406T020000
-RDATE:19980405T020000
-RDATE:19990404T020000
-RDATE:20000402T020000
-RDATE:20010401T020000
-RDATE:20020407T020000
-RDATE:20030406T020000
-RDATE:20040404T020000
-RDATE:20050403T020000
-RDATE:20060402T020000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Antarctica/Casey.ics b/libkcal/libical/zoneinfo/Antarctica/Casey.ics
deleted file mode 100644
index 09a83226..00000000
--- a/libkcal/libical/zoneinfo/Antarctica/Casey.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Antarctica/Casey
-X-LIC-LOCATION:Antarctica/Casey
-BEGIN:STANDARD
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0800
-TZNAME:WST
-DTSTART:19690101T000000
-RDATE:19690101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Antarctica/Davis.ics b/libkcal/libical/zoneinfo/Antarctica/Davis.ics
deleted file mode 100644
index a7ac261a..00000000
--- a/libkcal/libical/zoneinfo/Antarctica/Davis.ics
+++ /dev/null
@@ -1,23 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Antarctica/Davis
-X-LIC-LOCATION:Antarctica/Davis
-BEGIN:STANDARD
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0700
-TZNAME:DAVT
-DTSTART:19570113T000000
-RDATE:19570113T000000
-RDATE:19690201T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0700
-TZOFFSETTO:+0000
-TZNAME:zzz
-DTSTART:19641101T000000
-RDATE:19641101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Antarctica/DumontDUrville.ics b/libkcal/libical/zoneinfo/Antarctica/DumontDUrville.ics
deleted file mode 100644
index 05d3681f..00000000
--- a/libkcal/libical/zoneinfo/Antarctica/DumontDUrville.ics
+++ /dev/null
@@ -1,29 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Antarctica/DumontDUrville
-X-LIC-LOCATION:Antarctica/DumontDUrville
-BEGIN:STANDARD
-TZOFFSETFROM:+0000
-TZOFFSETTO:+1000
-TZNAME:PMT
-DTSTART:19470101T000000
-RDATE:19470101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+1000
-TZOFFSETTO:+0000
-TZNAME:zzz
-DTSTART:19520114T000000
-RDATE:19520114T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0000
-TZOFFSETTO:+1000
-TZNAME:DDUT
-DTSTART:19561101T000000
-RDATE:19561101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Antarctica/Mawson.ics b/libkcal/libical/zoneinfo/Antarctica/Mawson.ics
deleted file mode 100644
index 92d091cc..00000000
--- a/libkcal/libical/zoneinfo/Antarctica/Mawson.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Antarctica/Mawson
-X-LIC-LOCATION:Antarctica/Mawson
-BEGIN:STANDARD
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0600
-TZNAME:MAWT
-DTSTART:19540213T000000
-RDATE:19540213T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Antarctica/McMurdo.ics b/libkcal/libical/zoneinfo/Antarctica/McMurdo.ics
deleted file mode 100644
index 7fa4368c..00000000
--- a/libkcal/libical/zoneinfo/Antarctica/McMurdo.ics
+++ /dev/null
@@ -1,107 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Antarctica/McMurdo
-X-LIC-LOCATION:Antarctica/McMurdo
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+1200
-TZOFFSETTO:+1300
-TZNAME:NZDT
-DTSTART:20070930T020000
-RRULE:FREQ=YEARLY;BYMONTH=9;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+1300
-TZOFFSETTO:+1200
-TZNAME:NZST
-DTSTART:20080406T030000
-RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0000
-TZOFFSETTO:+1200
-TZNAME:NZST
-DTSTART:19560101T000000
-RDATE:19560101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+1200
-TZOFFSETTO:+1300
-TZNAME:NZDT
-DTSTART:19741103T020000
-RDATE:19741103T020000
-RDATE:19751026T020000
-RDATE:19761031T020000
-RDATE:19771030T020000
-RDATE:19781029T020000
-RDATE:19791028T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-RDATE:19831030T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861026T020000
-RDATE:19871025T020000
-RDATE:19881030T020000
-RDATE:19891008T020000
-RDATE:19901007T020000
-RDATE:19911006T020000
-RDATE:19921004T020000
-RDATE:19931003T020000
-RDATE:19941002T020000
-RDATE:19951001T020000
-RDATE:19961006T020000
-RDATE:19971005T020000
-RDATE:19981004T020000
-RDATE:19991003T020000
-RDATE:20001001T020000
-RDATE:20011007T020000
-RDATE:20021006T020000
-RDATE:20031005T020000
-RDATE:20041003T020000
-RDATE:20051002T020000
-RDATE:20061001T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+1300
-TZOFFSETTO:+1200
-TZNAME:NZST
-DTSTART:19750223T030000
-RDATE:19750223T030000
-RDATE:19760307T030000
-RDATE:19770306T030000
-RDATE:19780305T030000
-RDATE:19790304T030000
-RDATE:19800302T030000
-RDATE:19810301T030000
-RDATE:19820307T030000
-RDATE:19830306T030000
-RDATE:19840304T030000
-RDATE:19850303T030000
-RDATE:19860302T030000
-RDATE:19870301T030000
-RDATE:19880306T030000
-RDATE:19890305T030000
-RDATE:19900318T030000
-RDATE:19910317T030000
-RDATE:19920315T030000
-RDATE:19930321T030000
-RDATE:19940320T030000
-RDATE:19950319T030000
-RDATE:19960317T030000
-RDATE:19970316T030000
-RDATE:19980315T030000
-RDATE:19990321T030000
-RDATE:20000319T030000
-RDATE:20010318T030000
-RDATE:20020317T030000
-RDATE:20030316T030000
-RDATE:20040321T030000
-RDATE:20050320T030000
-RDATE:20060319T030000
-RDATE:20070318T030000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Antarctica/Palmer.ics b/libkcal/libical/zoneinfo/Antarctica/Palmer.ics
deleted file mode 100644
index a4fa54f7..00000000
--- a/libkcal/libical/zoneinfo/Antarctica/Palmer.ics
+++ /dev/null
@@ -1,118 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Antarctica/Palmer
-X-LIC-LOCATION:Antarctica/Palmer
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:CLST
-DTSTART:19991010T000000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYMONTHDAY=9,10,11,12,13,14,15;BYDAY=SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:CLT
-DTSTART:20000312T000000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYMONTHDAY=9,10,11,12,13,14,15;BYDAY=SU
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0000
-TZOFFSETTO:-0300
-TZNAME:ARST
-DTSTART:19650101T000000
-RDATE:19650101T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:ART
-DTSTART:19650301T000000
-RDATE:19650301T000000
-RDATE:19660301T000000
-RDATE:19670402T000000
-RDATE:19680407T000000
-RDATE:19690406T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:ARST
-DTSTART:19651015T000000
-RDATE:19651015T000000
-RDATE:19661015T000000
-RDATE:19671001T000000
-RDATE:19681006T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:ART
-DTSTART:19691005T000000
-RDATE:19691005T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0200
-TZNAME:ARST
-DTSTART:19740123T000000
-RDATE:19740123T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0300
-TZNAME:ART
-DTSTART:19740501T000000
-RDATE:19740501T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:CLT
-DTSTART:19820501T000000
-RDATE:19820501T000000
-RDATE:19830313T000000
-RDATE:19840311T000000
-RDATE:19850310T000000
-RDATE:19860309T000000
-RDATE:19870412T000000
-RDATE:19880313T000000
-RDATE:19890312T000000
-RDATE:19900318T000000
-RDATE:19910310T000000
-RDATE:19920315T000000
-RDATE:19930314T000000
-RDATE:19940313T000000
-RDATE:19950312T000000
-RDATE:19960310T000000
-RDATE:19970330T000000
-RDATE:19980315T000000
-RDATE:19990404T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:CLST
-DTSTART:19821010T000000
-RDATE:19821010T000000
-RDATE:19831009T000000
-RDATE:19841014T000000
-RDATE:19851013T000000
-RDATE:19861012T000000
-RDATE:19871011T000000
-RDATE:19881002T000000
-RDATE:19891015T000000
-RDATE:19900916T000000
-RDATE:19911013T000000
-RDATE:19921011T000000
-RDATE:19931010T000000
-RDATE:19941009T000000
-RDATE:19951015T000000
-RDATE:19961013T000000
-RDATE:19971012T000000
-RDATE:19980927T000000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Antarctica/Rothera.ics b/libkcal/libical/zoneinfo/Antarctica/Rothera.ics
deleted file mode 100644
index 03c1c5a3..00000000
--- a/libkcal/libical/zoneinfo/Antarctica/Rothera.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Antarctica/Rothera
-X-LIC-LOCATION:Antarctica/Rothera
-BEGIN:STANDARD
-TZOFFSETFROM:+0000
-TZOFFSETTO:-0300
-TZNAME:ROTT
-DTSTART:19761201T000000
-RDATE:19761201T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Antarctica/South_Pole.ics b/libkcal/libical/zoneinfo/Antarctica/South_Pole.ics
deleted file mode 100644
index bda8f362..00000000
--- a/libkcal/libical/zoneinfo/Antarctica/South_Pole.ics
+++ /dev/null
@@ -1,107 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Antarctica/South_Pole
-X-LIC-LOCATION:Antarctica/South_Pole
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+1200
-TZOFFSETTO:+1300
-TZNAME:NZDT
-DTSTART:20070930T020000
-RRULE:FREQ=YEARLY;BYMONTH=9;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+1300
-TZOFFSETTO:+1200
-TZNAME:NZST
-DTSTART:20080406T030000
-RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0000
-TZOFFSETTO:+1200
-TZNAME:NZST
-DTSTART:19560101T000000
-RDATE:19560101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+1200
-TZOFFSETTO:+1300
-TZNAME:NZDT
-DTSTART:19741103T020000
-RDATE:19741103T020000
-RDATE:19751026T020000
-RDATE:19761031T020000
-RDATE:19771030T020000
-RDATE:19781029T020000
-RDATE:19791028T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-RDATE:19831030T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861026T020000
-RDATE:19871025T020000
-RDATE:19881030T020000
-RDATE:19891008T020000
-RDATE:19901007T020000
-RDATE:19911006T020000
-RDATE:19921004T020000
-RDATE:19931003T020000
-RDATE:19941002T020000
-RDATE:19951001T020000
-RDATE:19961006T020000
-RDATE:19971005T020000
-RDATE:19981004T020000
-RDATE:19991003T020000
-RDATE:20001001T020000
-RDATE:20011007T020000
-RDATE:20021006T020000
-RDATE:20031005T020000
-RDATE:20041003T020000
-RDATE:20051002T020000
-RDATE:20061001T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+1300
-TZOFFSETTO:+1200
-TZNAME:NZST
-DTSTART:19750223T030000
-RDATE:19750223T030000
-RDATE:19760307T030000
-RDATE:19770306T030000
-RDATE:19780305T030000
-RDATE:19790304T030000
-RDATE:19800302T030000
-RDATE:19810301T030000
-RDATE:19820307T030000
-RDATE:19830306T030000
-RDATE:19840304T030000
-RDATE:19850303T030000
-RDATE:19860302T030000
-RDATE:19870301T030000
-RDATE:19880306T030000
-RDATE:19890305T030000
-RDATE:19900318T030000
-RDATE:19910317T030000
-RDATE:19920315T030000
-RDATE:19930321T030000
-RDATE:19940320T030000
-RDATE:19950319T030000
-RDATE:19960317T030000
-RDATE:19970316T030000
-RDATE:19980315T030000
-RDATE:19990321T030000
-RDATE:20000319T030000
-RDATE:20010318T030000
-RDATE:20020317T030000
-RDATE:20030316T030000
-RDATE:20040321T030000
-RDATE:20050320T030000
-RDATE:20060319T030000
-RDATE:20070318T030000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Antarctica/Syowa.ics b/libkcal/libical/zoneinfo/Antarctica/Syowa.ics
deleted file mode 100644
index 93c9576b..00000000
--- a/libkcal/libical/zoneinfo/Antarctica/Syowa.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Antarctica/Syowa
-X-LIC-LOCATION:Antarctica/Syowa
-BEGIN:STANDARD
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0300
-TZNAME:SYOT
-DTSTART:19570129T000000
-RDATE:19570129T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Antarctica/Vostok.ics b/libkcal/libical/zoneinfo/Antarctica/Vostok.ics
deleted file mode 100644
index 0bbbca64..00000000
--- a/libkcal/libical/zoneinfo/Antarctica/Vostok.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Antarctica/Vostok
-X-LIC-LOCATION:Antarctica/Vostok
-BEGIN:STANDARD
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0600
-TZNAME:VOST
-DTSTART:19571216T000000
-RDATE:19571216T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Arctic/Longyearbyen.ics b/libkcal/libical/zoneinfo/Arctic/Longyearbyen.ics
deleted file mode 100644
index 467d6e47..00000000
--- a/libkcal/libical/zoneinfo/Arctic/Longyearbyen.ics
+++ /dev/null
@@ -1,89 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Arctic/Longyearbyen
-X-LIC-LOCATION:Arctic/Longyearbyen
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19810329T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19961027T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0043
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:18950101T000000
-RDATE:18950101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19160522T010000
-RDATE:19160522T010000
-RDATE:19400810T230000
-RDATE:19430329T020000
-RDATE:19440403T020000
-RDATE:19450402T020000
-RDATE:19590315T020000
-RDATE:19600320T020000
-RDATE:19610319T020000
-RDATE:19620318T020000
-RDATE:19630317T020000
-RDATE:19640315T020000
-RDATE:19650425T020000
-RDATE:19800406T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19160930T000000
-RDATE:19160930T000000
-RDATE:19421102T030000
-RDATE:19431004T030000
-RDATE:19441002T030000
-RDATE:19451001T030000
-RDATE:19590920T030000
-RDATE:19600918T030000
-RDATE:19610917T030000
-RDATE:19620916T030000
-RDATE:19630915T030000
-RDATE:19640920T030000
-RDATE:19650919T030000
-RDATE:19800928T030000
-RDATE:19810927T030000
-RDATE:19820926T030000
-RDATE:19830925T030000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19910929T030000
-RDATE:19920927T030000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19800101T000000
-RDATE:19800101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Aden.ics b/libkcal/libical/zoneinfo/Asia/Aden.ics
deleted file mode 100644
index 4050107b..00000000
--- a/libkcal/libical/zoneinfo/Asia/Aden.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Aden
-X-LIC-LOCATION:Asia/Aden
-BEGIN:STANDARD
-TZOFFSETFROM:+030048
-TZOFFSETTO:+0300
-TZNAME:AST
-DTSTART:19500101T000000
-RDATE:19500101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Almaty.ics b/libkcal/libical/zoneinfo/Asia/Almaty.ics
deleted file mode 100644
index 8092271a..00000000
--- a/libkcal/libical/zoneinfo/Asia/Almaty.ics
+++ /dev/null
@@ -1,89 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Almaty
-X-LIC-LOCATION:Asia/Almaty
-BEGIN:STANDARD
-TZOFFSETFROM:+050748
-TZOFFSETTO:+0500
-TZNAME:ALMT
-DTSTART:19240502T000000
-RDATE:19240502T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0600
-TZNAME:ALMT
-DTSTART:19300621T000000
-RDATE:19300621T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0600
-TZOFFSETTO:+0700
-TZNAME:ALMST
-DTSTART:19810401T000000
-RDATE:19810401T000000
-RDATE:19820401T000000
-RDATE:19830401T000000
-RDATE:19840401T000000
-RDATE:19850331T020000
-RDATE:19860330T020000
-RDATE:19870329T020000
-RDATE:19880327T020000
-RDATE:19890326T020000
-RDATE:19900325T020000
-RDATE:19920328T230000
-RDATE:19930328T020000
-RDATE:19940327T020000
-RDATE:19950326T020000
-RDATE:19960331T020000
-RDATE:19970330T020000
-RDATE:19980329T020000
-RDATE:19990328T020000
-RDATE:20000326T020000
-RDATE:20010325T020000
-RDATE:20020331T020000
-RDATE:20030330T020000
-RDATE:20040328T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0700
-TZOFFSETTO:+0600
-TZNAME:ALMT
-DTSTART:19811001T000000
-RDATE:19811001T000000
-RDATE:19821001T000000
-RDATE:19831001T000000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19920926T230000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-RDATE:19961027T030000
-RDATE:19971026T030000
-RDATE:19981025T030000
-RDATE:19991031T030000
-RDATE:20001029T030000
-RDATE:20011028T030000
-RDATE:20021027T030000
-RDATE:20031026T030000
-RDATE:20041031T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0600
-TZOFFSETTO:+0600
-TZNAME:ALMT
-DTSTART:19910101T000000
-RDATE:19910101T000000
-RDATE:19920101T000000
-RDATE:20050315T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Amman.ics b/libkcal/libical/zoneinfo/Asia/Amman.ics
deleted file mode 100644
index d474239a..00000000
--- a/libkcal/libical/zoneinfo/Asia/Amman.ics
+++ /dev/null
@@ -1,89 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Amman
-X-LIC-LOCATION:Asia/Amman
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:20000330T000000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1TH
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:20061027T010000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1FR
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+022344
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19310101T000000
-RDATE:19310101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19730606T000000
-RDATE:19730606T000000
-RDATE:19740501T000000
-RDATE:19750501T000000
-RDATE:19760501T000000
-RDATE:19770501T000000
-RDATE:19780430T000000
-RDATE:19850401T000000
-RDATE:19860404T000000
-RDATE:19870403T000000
-RDATE:19880401T000000
-RDATE:19890508T000000
-RDATE:19900427T000000
-RDATE:19910417T000000
-RDATE:19920410T000000
-RDATE:19930402T000000
-RDATE:19940401T000000
-RDATE:19950407T000000
-RDATE:19960405T000000
-RDATE:19970404T000000
-RDATE:19980403T000000
-RDATE:19990701T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19731001T000000
-RDATE:19731001T000000
-RDATE:19741001T000000
-RDATE:19751001T000000
-RDATE:19761101T000000
-RDATE:19771001T000000
-RDATE:19780930T000000
-RDATE:19851001T000000
-RDATE:19861003T000000
-RDATE:19871002T000000
-RDATE:19881007T000000
-RDATE:19891006T000000
-RDATE:19901005T000000
-RDATE:19910927T000000
-RDATE:19921002T000000
-RDATE:19931001T000000
-RDATE:19940916T000000
-RDATE:19950915T010000
-RDATE:19960920T010000
-RDATE:19970919T010000
-RDATE:19980918T010000
-RDATE:19990930T010000
-RDATE:20000928T010000
-RDATE:20010927T010000
-RDATE:20020926T010000
-RDATE:20031024T010000
-RDATE:20041015T010000
-RDATE:20050930T010000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Anadyr.ics b/libkcal/libical/zoneinfo/Asia/Anadyr.ics
deleted file mode 100644
index df535644..00000000
--- a/libkcal/libical/zoneinfo/Asia/Anadyr.ics
+++ /dev/null
@@ -1,112 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Anadyr
-X-LIC-LOCATION:Asia/Anadyr
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+1200
-TZOFFSETTO:+1300
-TZNAME:ANAST
-DTSTART:19930328T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+1300
-TZOFFSETTO:+1200
-TZNAME:ANAT
-DTSTART:19961027T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+114956
-TZOFFSETTO:+1200
-TZNAME:ANAT
-DTSTART:19240502T000000
-RDATE:19240502T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+1200
-TZOFFSETTO:+1300
-TZNAME:ANAT
-DTSTART:19300621T000000
-RDATE:19300621T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+1300
-TZOFFSETTO:+1400
-TZNAME:ANAST
-DTSTART:19810401T000000
-RDATE:19810401T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+1400
-TZOFFSETTO:+1300
-TZNAME:ANAT
-DTSTART:19811001T000000
-RDATE:19811001T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+1300
-TZOFFSETTO:+1300
-TZNAME:ANAST
-DTSTART:19820401T000000
-RDATE:19820401T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+1300
-TZOFFSETTO:+1200
-TZNAME:ANAT
-DTSTART:19821001T000000
-RDATE:19821001T000000
-RDATE:19831001T000000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19920926T230000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+1200
-TZOFFSETTO:+1300
-TZNAME:ANAST
-DTSTART:19830401T000000
-RDATE:19830401T000000
-RDATE:19840401T000000
-RDATE:19850331T020000
-RDATE:19860330T020000
-RDATE:19870329T020000
-RDATE:19880327T020000
-RDATE:19890326T020000
-RDATE:19900325T020000
-RDATE:19920328T230000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+1200
-TZOFFSETTO:+1200
-TZNAME:ANAST
-DTSTART:19910331T020000
-RDATE:19910331T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+1200
-TZOFFSETTO:+1100
-TZNAME:ANAT
-DTSTART:19910929T030000
-RDATE:19910929T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+1100
-TZOFFSETTO:+1200
-TZNAME:ANAT
-DTSTART:19920119T020000
-RDATE:19920119T020000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Aqtau.ics b/libkcal/libical/zoneinfo/Asia/Aqtau.ics
deleted file mode 100644
index c9062a81..00000000
--- a/libkcal/libical/zoneinfo/Asia/Aqtau.ics
+++ /dev/null
@@ -1,143 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Aqtau
-X-LIC-LOCATION:Asia/Aqtau
-BEGIN:STANDARD
-TZOFFSETFROM:+032104
-TZOFFSETTO:+0400
-TZNAME:FORT
-DTSTART:19240502T000000
-RDATE:19240502T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0500
-TZNAME:FORT
-DTSTART:19300621T000000
-RDATE:19300621T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0500
-TZNAME:SHET
-DTSTART:19630101T000000
-RDATE:19630101T000000
-RDATE:19910101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0600
-TZNAME:SHET
-DTSTART:19811001T000000
-RDATE:19811001T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0600
-TZOFFSETTO:+0600
-TZNAME:SHEST
-DTSTART:19820401T000000
-RDATE:19820401T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0600
-TZOFFSETTO:+0500
-TZNAME:SHET
-DTSTART:19821001T000000
-RDATE:19821001T000000
-RDATE:19831001T000000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0600
-TZNAME:SHEST
-DTSTART:19830401T000000
-RDATE:19830401T000000
-RDATE:19840401T000000
-RDATE:19850331T020000
-RDATE:19860330T020000
-RDATE:19870329T020000
-RDATE:19880327T020000
-RDATE:19890326T020000
-RDATE:19900325T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0500
-TZNAME:AQTT
-DTSTART:19911216T000000
-RDATE:19911216T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0600
-TZNAME:AQTST
-DTSTART:19920328T230000
-RDATE:19920328T230000
-RDATE:19930328T020000
-RDATE:19940327T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0600
-TZOFFSETTO:+0500
-TZNAME:AQTT
-DTSTART:19920926T230000
-RDATE:19920926T230000
-RDATE:19930926T030000
-RDATE:19940925T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0500
-TZNAME:AQTST
-DTSTART:19950326T020000
-RDATE:19950326T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0400
-TZNAME:AQTT
-DTSTART:19950924T030000
-RDATE:19950924T030000
-RDATE:19961027T030000
-RDATE:19971026T030000
-RDATE:19981025T030000
-RDATE:19991031T030000
-RDATE:20001029T030000
-RDATE:20011028T030000
-RDATE:20021027T030000
-RDATE:20031026T030000
-RDATE:20041031T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0500
-TZNAME:AQTST
-DTSTART:19960331T020000
-RDATE:19960331T020000
-RDATE:19970330T020000
-RDATE:19980329T020000
-RDATE:19990328T020000
-RDATE:20000326T020000
-RDATE:20010325T020000
-RDATE:20020331T020000
-RDATE:20030330T020000
-RDATE:20040328T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0500
-TZNAME:AQTT
-DTSTART:20050315T000000
-RDATE:20050315T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Aqtobe.ics b/libkcal/libical/zoneinfo/Asia/Aqtobe.ics
deleted file mode 100644
index 35dba9c1..00000000
--- a/libkcal/libical/zoneinfo/Asia/Aqtobe.ics
+++ /dev/null
@@ -1,119 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Aqtobe
-X-LIC-LOCATION:Asia/Aqtobe
-BEGIN:STANDARD
-TZOFFSETFROM:+034840
-TZOFFSETTO:+0400
-TZNAME:AKTT
-DTSTART:19240502T000000
-RDATE:19240502T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0500
-TZNAME:AKTT
-DTSTART:19300621T000000
-RDATE:19300621T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0600
-TZNAME:AKTST
-DTSTART:19810401T000000
-RDATE:19810401T000000
-RDATE:19830401T000000
-RDATE:19840401T000000
-RDATE:19850331T020000
-RDATE:19860330T020000
-RDATE:19870329T020000
-RDATE:19880327T020000
-RDATE:19890326T020000
-RDATE:19900325T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0600
-TZOFFSETTO:+0600
-TZNAME:AKTT
-DTSTART:19811001T000000
-RDATE:19811001T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0600
-TZOFFSETTO:+0600
-TZNAME:AKTST
-DTSTART:19820401T000000
-RDATE:19820401T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0600
-TZOFFSETTO:+0500
-TZNAME:AKTT
-DTSTART:19821001T000000
-RDATE:19821001T000000
-RDATE:19831001T000000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0500
-TZNAME:AKTT
-DTSTART:19910101T000000
-RDATE:19910101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0500
-TZNAME:AQTT
-DTSTART:19911216T000000
-RDATE:19911216T000000
-RDATE:20050315T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0600
-TZNAME:AQTST
-DTSTART:19920328T230000
-RDATE:19920328T230000
-RDATE:19930328T020000
-RDATE:19940327T020000
-RDATE:19950326T020000
-RDATE:19960331T020000
-RDATE:19970330T020000
-RDATE:19980329T020000
-RDATE:19990328T020000
-RDATE:20000326T020000
-RDATE:20010325T020000
-RDATE:20020331T020000
-RDATE:20030330T020000
-RDATE:20040328T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0600
-TZOFFSETTO:+0500
-TZNAME:AQTT
-DTSTART:19920926T230000
-RDATE:19920926T230000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-RDATE:19961027T030000
-RDATE:19971026T030000
-RDATE:19981025T030000
-RDATE:19991031T030000
-RDATE:20001029T030000
-RDATE:20011028T030000
-RDATE:20021027T030000
-RDATE:20031026T030000
-RDATE:20041031T030000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Ashgabat.ics b/libkcal/libical/zoneinfo/Asia/Ashgabat.ics
deleted file mode 100644
index b8a3f633..00000000
--- a/libkcal/libical/zoneinfo/Asia/Ashgabat.ics
+++ /dev/null
@@ -1,82 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Ashgabat
-X-LIC-LOCATION:Asia/Ashgabat
-BEGIN:STANDARD
-TZOFFSETFROM:+035332
-TZOFFSETTO:+0400
-TZNAME:ASHT
-DTSTART:19240502T000000
-RDATE:19240502T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0500
-TZNAME:ASHT
-DTSTART:19300621T000000
-RDATE:19300621T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0600
-TZNAME:ASHST
-DTSTART:19810401T000000
-RDATE:19810401T000000
-RDATE:19820401T000000
-RDATE:19830401T000000
-RDATE:19840401T000000
-RDATE:19850331T020000
-RDATE:19860330T020000
-RDATE:19870329T020000
-RDATE:19880327T020000
-RDATE:19890326T020000
-RDATE:19900325T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0600
-TZOFFSETTO:+0500
-TZNAME:ASHT
-DTSTART:19811001T000000
-RDATE:19811001T000000
-RDATE:19821001T000000
-RDATE:19831001T000000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0500
-TZNAME:ASHST
-DTSTART:19910331T020000
-RDATE:19910331T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0400
-TZNAME:ASHT
-DTSTART:19910929T030000
-RDATE:19910929T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0400
-TZNAME:TMT
-DTSTART:19911027T000000
-RDATE:19911027T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0500
-TZNAME:TMT
-DTSTART:19920119T020000
-RDATE:19920119T020000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Baghdad.ics b/libkcal/libical/zoneinfo/Asia/Baghdad.ics
deleted file mode 100644
index f84e6167..00000000
--- a/libkcal/libical/zoneinfo/Asia/Baghdad.ics
+++ /dev/null
@@ -1,86 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Baghdad
-X-LIC-LOCATION:Asia/Baghdad
-BEGIN:STANDARD
-TZOFFSETFROM:+025740
-TZOFFSETTO:+025736
-TZNAME:BMT
-DTSTART:18900101T000000
-RDATE:18900101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+025736
-TZOFFSETTO:+0300
-TZNAME:AST
-DTSTART:19180101T000000
-RDATE:19180101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0400
-TZNAME:ADT
-DTSTART:19820501T000000
-RDATE:19820501T000000
-RDATE:19830331T000000
-RDATE:19840401T000000
-RDATE:19850401T000000
-RDATE:19860330T010000
-RDATE:19870329T010000
-RDATE:19880327T010000
-RDATE:19890326T010000
-RDATE:19900325T010000
-RDATE:19910401T030000
-RDATE:19920401T030000
-RDATE:19930401T030000
-RDATE:19940401T030000
-RDATE:19950401T030000
-RDATE:19960401T030000
-RDATE:19970401T030000
-RDATE:19980401T030000
-RDATE:19990401T030000
-RDATE:20000401T030000
-RDATE:20010401T030000
-RDATE:20020401T030000
-RDATE:20030401T030000
-RDATE:20040401T030000
-RDATE:20050401T030000
-RDATE:20060401T030000
-RDATE:20070401T030000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0300
-TZNAME:AST
-DTSTART:19821001T000000
-RDATE:19821001T000000
-RDATE:19831001T000000
-RDATE:19841001T000000
-RDATE:19850929T020000
-RDATE:19860928T020000
-RDATE:19870927T020000
-RDATE:19880925T020000
-RDATE:19890924T020000
-RDATE:19900930T020000
-RDATE:19911001T040000
-RDATE:19921001T040000
-RDATE:19931001T040000
-RDATE:19941001T040000
-RDATE:19951001T040000
-RDATE:19961001T040000
-RDATE:19971001T040000
-RDATE:19981001T040000
-RDATE:19991001T040000
-RDATE:20001001T040000
-RDATE:20011001T040000
-RDATE:20021001T040000
-RDATE:20031001T040000
-RDATE:20041001T040000
-RDATE:20051001T040000
-RDATE:20061001T040000
-RDATE:20071001T040000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Bahrain.ics b/libkcal/libical/zoneinfo/Asia/Bahrain.ics
deleted file mode 100644
index 312e64a9..00000000
--- a/libkcal/libical/zoneinfo/Asia/Bahrain.ics
+++ /dev/null
@@ -1,22 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Bahrain
-X-LIC-LOCATION:Asia/Bahrain
-BEGIN:STANDARD
-TZOFFSETFROM:+032220
-TZOFFSETTO:+0400
-TZNAME:GST
-DTSTART:19200101T000000
-RDATE:19200101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0300
-TZNAME:AST
-DTSTART:19720601T000000
-RDATE:19720601T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Baku.ics b/libkcal/libical/zoneinfo/Asia/Baku.ics
deleted file mode 100644
index d839342c..00000000
--- a/libkcal/libical/zoneinfo/Asia/Baku.ics
+++ /dev/null
@@ -1,119 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Baku
-X-LIC-LOCATION:Asia/Baku
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0500
-TZNAME:AZST
-DTSTART:19970330T040000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0400
-TZNAME:AZT
-DTSTART:19971026T050000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+031924
-TZOFFSETTO:+0300
-TZNAME:BAKT
-DTSTART:19240502T000000
-RDATE:19240502T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0400
-TZNAME:BAKT
-DTSTART:19570301T000000
-RDATE:19570301T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0500
-TZNAME:BAKST
-DTSTART:19810401T000000
-RDATE:19810401T000000
-RDATE:19820401T000000
-RDATE:19830401T000000
-RDATE:19840401T000000
-RDATE:19850331T020000
-RDATE:19860330T020000
-RDATE:19870329T020000
-RDATE:19880327T020000
-RDATE:19890326T020000
-RDATE:19900325T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0400
-TZNAME:BAKT
-DTSTART:19811001T000000
-RDATE:19811001T000000
-RDATE:19821001T000000
-RDATE:19831001T000000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0400
-TZNAME:BAKST
-DTSTART:19910331T020000
-RDATE:19910331T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0400
-TZNAME:AZST
-DTSTART:19910830T000000
-RDATE:19910830T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0300
-TZNAME:AZT
-DTSTART:19910929T030000
-RDATE:19910929T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0400
-TZNAME:AZST
-DTSTART:19920328T230000
-RDATE:19920328T230000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0400
-TZNAME:AZT
-DTSTART:19920926T230000
-RDATE:19920926T230000
-RDATE:19960101T000000
-RDATE:19970101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0500
-TZNAME:AZST
-DTSTART:19960331T050000
-RDATE:19960331T050000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0400
-TZNAME:AZT
-DTSTART:19961027T060000
-RDATE:19961027T060000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Bangkok.ics b/libkcal/libical/zoneinfo/Asia/Bangkok.ics
deleted file mode 100644
index bc40b4ff..00000000
--- a/libkcal/libical/zoneinfo/Asia/Bangkok.ics
+++ /dev/null
@@ -1,22 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Bangkok
-X-LIC-LOCATION:Asia/Bangkok
-BEGIN:STANDARD
-TZOFFSETFROM:+064204
-TZOFFSETTO:+064204
-TZNAME:BMT
-DTSTART:18800101T000000
-RDATE:18800101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+064204
-TZOFFSETTO:+0700
-TZNAME:ICT
-DTSTART:19200401T000000
-RDATE:19200401T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Beirut.ics b/libkcal/libical/zoneinfo/Asia/Beirut.ics
deleted file mode 100644
index 92e51eb7..00000000
--- a/libkcal/libical/zoneinfo/Asia/Beirut.ics
+++ /dev/null
@@ -1,97 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Beirut
-X-LIC-LOCATION:Asia/Beirut
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19930328T000000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19991031T000000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0222
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:18800101T000000
-RDATE:18800101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19200328T000000
-RDATE:19200328T000000
-RDATE:19210403T000000
-RDATE:19220326T000000
-RDATE:19230422T000000
-RDATE:19570501T000000
-RDATE:19580501T000000
-RDATE:19590501T000000
-RDATE:19600501T000000
-RDATE:19610501T000000
-RDATE:19720622T000000
-RDATE:19730501T000000
-RDATE:19740501T000000
-RDATE:19750501T000000
-RDATE:19760501T000000
-RDATE:19770501T000000
-RDATE:19780430T000000
-RDATE:19840501T000000
-RDATE:19850501T000000
-RDATE:19860501T000000
-RDATE:19870501T000000
-RDATE:19880601T000000
-RDATE:19890510T000000
-RDATE:19900501T000000
-RDATE:19910501T000000
-RDATE:19920501T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19201025T000000
-RDATE:19201025T000000
-RDATE:19211003T000000
-RDATE:19221008T000000
-RDATE:19230916T000000
-RDATE:19571001T000000
-RDATE:19581001T000000
-RDATE:19591001T000000
-RDATE:19601001T000000
-RDATE:19611001T000000
-RDATE:19721001T000000
-RDATE:19731001T000000
-RDATE:19741001T000000
-RDATE:19751001T000000
-RDATE:19761001T000000
-RDATE:19771001T000000
-RDATE:19780930T000000
-RDATE:19841016T000000
-RDATE:19851016T000000
-RDATE:19861016T000000
-RDATE:19871016T000000
-RDATE:19881016T000000
-RDATE:19891016T000000
-RDATE:19901016T000000
-RDATE:19911016T000000
-RDATE:19921004T000000
-RDATE:19930926T000000
-RDATE:19940925T000000
-RDATE:19950924T000000
-RDATE:19960929T000000
-RDATE:19970928T000000
-RDATE:19980927T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Bishkek.ics b/libkcal/libical/zoneinfo/Asia/Bishkek.ics
deleted file mode 100644
index 68ebab26..00000000
--- a/libkcal/libical/zoneinfo/Asia/Bishkek.ics
+++ /dev/null
@@ -1,108 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Bishkek
-X-LIC-LOCATION:Asia/Bishkek
-BEGIN:STANDARD
-TZOFFSETFROM:+045824
-TZOFFSETTO:+0500
-TZNAME:FRUT
-DTSTART:19240502T000000
-RDATE:19240502T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0600
-TZNAME:FRUT
-DTSTART:19300621T000000
-RDATE:19300621T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0600
-TZOFFSETTO:+0700
-TZNAME:FRUST
-DTSTART:19810401T000000
-RDATE:19810401T000000
-RDATE:19820401T000000
-RDATE:19830401T000000
-RDATE:19840401T000000
-RDATE:19850331T020000
-RDATE:19860330T020000
-RDATE:19870329T020000
-RDATE:19880327T020000
-RDATE:19890326T020000
-RDATE:19900325T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0700
-TZOFFSETTO:+0600
-TZNAME:FRUT
-DTSTART:19811001T000000
-RDATE:19811001T000000
-RDATE:19821001T000000
-RDATE:19831001T000000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0600
-TZOFFSETTO:+0600
-TZNAME:FRUST
-DTSTART:19910331T020000
-RDATE:19910331T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0600
-TZOFFSETTO:+0500
-TZNAME:KGT
-DTSTART:19910831T020000
-RDATE:19910831T020000
-RDATE:19920927T000000
-RDATE:19930926T000000
-RDATE:19940925T000000
-RDATE:19950924T000000
-RDATE:19960929T000000
-RDATE:19971026T023000
-RDATE:19981025T023000
-RDATE:19991031T023000
-RDATE:20001029T023000
-RDATE:20011028T023000
-RDATE:20021027T023000
-RDATE:20031026T023000
-RDATE:20041031T023000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0600
-TZNAME:KGST
-DTSTART:19920412T000000
-RDATE:19920412T000000
-RDATE:19930411T000000
-RDATE:19940410T000000
-RDATE:19950409T000000
-RDATE:19960407T000000
-RDATE:19970330T023000
-RDATE:19980329T023000
-RDATE:19990328T023000
-RDATE:20000326T023000
-RDATE:20010325T023000
-RDATE:20020331T023000
-RDATE:20030330T023000
-RDATE:20040328T023000
-RDATE:20050327T023000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0600
-TZOFFSETTO:+0600
-TZNAME:KGT
-DTSTART:20050812T000000
-RDATE:20050812T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Brunei.ics b/libkcal/libical/zoneinfo/Asia/Brunei.ics
deleted file mode 100644
index 37a10a38..00000000
--- a/libkcal/libical/zoneinfo/Asia/Brunei.ics
+++ /dev/null
@@ -1,22 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Brunei
-X-LIC-LOCATION:Asia/Brunei
-BEGIN:STANDARD
-TZOFFSETFROM:+073940
-TZOFFSETTO:+0730
-TZNAME:BNT
-DTSTART:19260301T000000
-RDATE:19260301T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0730
-TZOFFSETTO:+0800
-TZNAME:BNT
-DTSTART:19330101T000000
-RDATE:19330101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Calcutta.ics b/libkcal/libical/zoneinfo/Asia/Calcutta.ics
deleted file mode 100644
index 8940799d..00000000
--- a/libkcal/libical/zoneinfo/Asia/Calcutta.ics
+++ /dev/null
@@ -1,37 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20071016_1/Asia/Calcutta
-X-LIC-LOCATION:Asia/Calcutta
-BEGIN:STANDARD
-TZOFFSETFROM:+055328
-TZOFFSETTO:+055320
-TZNAME:HMT
-DTSTART:18800101T000000
-RDATE:18800101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+055320
-TZOFFSETTO:+0630
-TZNAME:BURT
-DTSTART:19411001T000000
-RDATE:19411001T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0630
-TZOFFSETTO:+0530
-TZNAME:IST
-DTSTART:19420515T000000
-RDATE:19420515T000000
-RDATE:19451015T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0530
-TZOFFSETTO:+0630
-TZNAME:IST
-DTSTART:19420901T000000
-RDATE:19420901T000000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Choibalsan.ics b/libkcal/libical/zoneinfo/Asia/Choibalsan.ics
deleted file mode 100644
index b15a710f..00000000
--- a/libkcal/libical/zoneinfo/Asia/Choibalsan.ics
+++ /dev/null
@@ -1,84 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Choibalsan
-X-LIC-LOCATION:Asia/Choibalsan
-BEGIN:STANDARD
-TZOFFSETFROM:+0738
-TZOFFSETTO:+0700
-TZNAME:ULAT
-DTSTART:19050801T000000
-RDATE:19050801T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0700
-TZOFFSETTO:+0800
-TZNAME:ULAT
-DTSTART:19780101T000000
-RDATE:19780101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0800
-TZOFFSETTO:+1000
-TZNAME:CHOST
-DTSTART:19830401T000000
-RDATE:19830401T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+1000
-TZOFFSETTO:+0900
-TZNAME:CHOT
-DTSTART:19831001T000000
-RDATE:19831001T000000
-RDATE:19840930T000000
-RDATE:19850929T000000
-RDATE:19860928T000000
-RDATE:19870927T000000
-RDATE:19880925T000000
-RDATE:19890924T000000
-RDATE:19900930T000000
-RDATE:19910929T000000
-RDATE:19920927T000000
-RDATE:19930926T000000
-RDATE:19940925T000000
-RDATE:19950924T000000
-RDATE:19960929T000000
-RDATE:19970928T000000
-RDATE:19980927T000000
-RDATE:20010929T020000
-RDATE:20020928T020000
-RDATE:20030927T020000
-RDATE:20040925T020000
-RDATE:20050924T020000
-RDATE:20060930T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0900
-TZOFFSETTO:+1000
-TZNAME:CHOST
-DTSTART:19840401T000000
-RDATE:19840401T000000
-RDATE:19850331T000000
-RDATE:19860330T000000
-RDATE:19870329T000000
-RDATE:19880327T000000
-RDATE:19890326T000000
-RDATE:19900325T000000
-RDATE:19910331T000000
-RDATE:19920329T000000
-RDATE:19930328T000000
-RDATE:19940327T000000
-RDATE:19950326T000000
-RDATE:19960331T000000
-RDATE:19970330T000000
-RDATE:19980329T000000
-RDATE:20010428T020000
-RDATE:20020330T020000
-RDATE:20030329T020000
-RDATE:20040327T020000
-RDATE:20050326T020000
-RDATE:20060325T020000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Chongqing.ics b/libkcal/libical/zoneinfo/Asia/Chongqing.ics
deleted file mode 100644
index 77ec16b6..00000000
--- a/libkcal/libical/zoneinfo/Asia/Chongqing.ics
+++ /dev/null
@@ -1,46 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Chongqing
-X-LIC-LOCATION:Asia/Chongqing
-BEGIN:STANDARD
-TZOFFSETFROM:+070620
-TZOFFSETTO:+0700
-TZNAME:LONT
-DTSTART:19280101T000000
-RDATE:19280101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0700
-TZOFFSETTO:+0800
-TZNAME:CST
-DTSTART:19800501T000000
-RDATE:19800501T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0800
-TZOFFSETTO:+0900
-TZNAME:CDT
-DTSTART:19860504T000000
-RDATE:19860504T000000
-RDATE:19870412T000000
-RDATE:19880410T000000
-RDATE:19890416T000000
-RDATE:19900415T000000
-RDATE:19910414T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0900
-TZOFFSETTO:+0800
-TZNAME:CST
-DTSTART:19860914T000000
-RDATE:19860914T000000
-RDATE:19870913T000000
-RDATE:19880911T000000
-RDATE:19890917T000000
-RDATE:19900916T000000
-RDATE:19910915T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Colombo.ics b/libkcal/libical/zoneinfo/Asia/Colombo.ics
deleted file mode 100644
index de2cd619..00000000
--- a/libkcal/libical/zoneinfo/Asia/Colombo.ics
+++ /dev/null
@@ -1,64 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Colombo
-X-LIC-LOCATION:Asia/Colombo
-BEGIN:STANDARD
-TZOFFSETFROM:+051924
-TZOFFSETTO:+051932
-TZNAME:MMT
-DTSTART:18800101T000000
-RDATE:18800101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+051932
-TZOFFSETTO:+0530
-TZNAME:IST
-DTSTART:19060101T000000
-RDATE:19060101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0530
-TZOFFSETTO:+0600
-TZNAME:IHST
-DTSTART:19420105T000000
-RDATE:19420105T000000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0600
-TZOFFSETTO:+0630
-TZNAME:IST
-DTSTART:19420901T000000
-RDATE:19420901T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0630
-TZOFFSETTO:+0530
-TZNAME:IST
-DTSTART:19451016T020000
-RDATE:19451016T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0530
-TZOFFSETTO:+0630
-TZNAME:LKT
-DTSTART:19960525T000000
-RDATE:19960525T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0630
-TZOFFSETTO:+0600
-TZNAME:LKT
-DTSTART:19961026T003000
-RDATE:19961026T003000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0600
-TZOFFSETTO:+0530
-TZNAME:IST
-DTSTART:20060415T003000
-RDATE:20060415T003000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Damascus.ics b/libkcal/libical/zoneinfo/Asia/Damascus.ics
deleted file mode 100644
index 017e0870..00000000
--- a/libkcal/libical/zoneinfo/Asia/Damascus.ics
+++ /dev/null
@@ -1,131 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Damascus
-X-LIC-LOCATION:Asia/Damascus
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:20080404T000000
-RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1FR
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:20081001T000000
-RRULE:FREQ=YEARLY
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+022512
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19200101T000000
-RDATE:19200101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19200418T020000
-RDATE:19200418T020000
-RDATE:19210417T020000
-RDATE:19220416T020000
-RDATE:19230415T020000
-RDATE:19620429T020000
-RDATE:19630501T020000
-RDATE:19640501T020000
-RDATE:19650501T020000
-RDATE:19660424T020000
-RDATE:19670501T020000
-RDATE:19680501T020000
-RDATE:19690501T020000
-RDATE:19700501T020000
-RDATE:19710501T020000
-RDATE:19720501T020000
-RDATE:19730501T020000
-RDATE:19740501T020000
-RDATE:19750501T020000
-RDATE:19760501T020000
-RDATE:19770501T020000
-RDATE:19780501T020000
-RDATE:19830409T020000
-RDATE:19840409T020000
-RDATE:19860216T020000
-RDATE:19870301T020000
-RDATE:19880315T020000
-RDATE:19890331T020000
-RDATE:19900401T020000
-RDATE:19910401T000000
-RDATE:19920408T000000
-RDATE:19930326T000000
-RDATE:19940401T000000
-RDATE:19950401T000000
-RDATE:19960401T000000
-RDATE:19970331T000000
-RDATE:19980330T000000
-RDATE:19990401T000000
-RDATE:20000401T000000
-RDATE:20010401T000000
-RDATE:20020401T000000
-RDATE:20030401T000000
-RDATE:20040401T000000
-RDATE:20050401T000000
-RDATE:20060401T000000
-RDATE:20070330T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19201003T020000
-RDATE:19201003T020000
-RDATE:19211002T020000
-RDATE:19221001T020000
-RDATE:19231007T020000
-RDATE:19621001T020000
-RDATE:19630930T020000
-RDATE:19641001T020000
-RDATE:19650930T020000
-RDATE:19661001T020000
-RDATE:19671001T020000
-RDATE:19681001T020000
-RDATE:19691001T020000
-RDATE:19701001T020000
-RDATE:19711001T020000
-RDATE:19721001T020000
-RDATE:19731001T020000
-RDATE:19741001T020000
-RDATE:19751001T020000
-RDATE:19761001T020000
-RDATE:19770901T020000
-RDATE:19780901T020000
-RDATE:19831001T020000
-RDATE:19841001T020000
-RDATE:19861009T020000
-RDATE:19871031T020000
-RDATE:19881031T020000
-RDATE:19891001T020000
-RDATE:19900930T020000
-RDATE:19911001T000000
-RDATE:19921001T000000
-RDATE:19930925T000000
-RDATE:19941001T000000
-RDATE:19951001T000000
-RDATE:19961001T000000
-RDATE:19971001T000000
-RDATE:19981001T000000
-RDATE:19991001T000000
-RDATE:20001001T000000
-RDATE:20011001T000000
-RDATE:20021001T000000
-RDATE:20031001T000000
-RDATE:20041001T000000
-RDATE:20051001T000000
-RDATE:20060922T000000
-RDATE:20071102T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Dhaka.ics b/libkcal/libical/zoneinfo/Asia/Dhaka.ics
deleted file mode 100644
index 950f7c6d..00000000
--- a/libkcal/libical/zoneinfo/Asia/Dhaka.ics
+++ /dev/null
@@ -1,50 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Dhaka
-X-LIC-LOCATION:Asia/Dhaka
-BEGIN:STANDARD
-TZOFFSETFROM:+060140
-TZOFFSETTO:+055320
-TZNAME:HMT
-DTSTART:18900101T000000
-RDATE:18900101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+055320
-TZOFFSETTO:+0630
-TZNAME:BURT
-DTSTART:19411001T000000
-RDATE:19411001T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0630
-TZOFFSETTO:+0530
-TZNAME:IST
-DTSTART:19420515T000000
-RDATE:19420515T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0530
-TZOFFSETTO:+0630
-TZNAME:BURT
-DTSTART:19420901T000000
-RDATE:19420901T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0630
-TZOFFSETTO:+0600
-TZNAME:DACT
-DTSTART:19510930T000000
-RDATE:19510930T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0600
-TZOFFSETTO:+0600
-TZNAME:BDT
-DTSTART:19710326T000000
-RDATE:19710326T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Dili.ics b/libkcal/libical/zoneinfo/Asia/Dili.ics
deleted file mode 100644
index d3783b05..00000000
--- a/libkcal/libical/zoneinfo/Asia/Dili.ics
+++ /dev/null
@@ -1,43 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Dili
-X-LIC-LOCATION:Asia/Dili
-BEGIN:STANDARD
-TZOFFSETFROM:+082220
-TZOFFSETTO:+0800
-TZNAME:TLT
-DTSTART:19120101T000000
-RDATE:19120101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0800
-TZOFFSETTO:+0900
-TZNAME:JST
-DTSTART:19420221T230000
-RDATE:19420221T230000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0900
-TZOFFSETTO:+0900
-TZNAME:TLT
-DTSTART:19450923T000000
-RDATE:19450923T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0900
-TZOFFSETTO:+0800
-TZNAME:CIT
-DTSTART:19760503T000000
-RDATE:19760503T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0800
-TZOFFSETTO:+0900
-TZNAME:TLT
-DTSTART:20000917T000000
-RDATE:20000917T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Dubai.ics b/libkcal/libical/zoneinfo/Asia/Dubai.ics
deleted file mode 100644
index 89964513..00000000
--- a/libkcal/libical/zoneinfo/Asia/Dubai.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Dubai
-X-LIC-LOCATION:Asia/Dubai
-BEGIN:STANDARD
-TZOFFSETFROM:+034112
-TZOFFSETTO:+0400
-TZNAME:GST
-DTSTART:19200101T000000
-RDATE:19200101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Dushanbe.ics b/libkcal/libical/zoneinfo/Asia/Dushanbe.ics
deleted file mode 100644
index 6e5bb620..00000000
--- a/libkcal/libical/zoneinfo/Asia/Dushanbe.ics
+++ /dev/null
@@ -1,68 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Dushanbe
-X-LIC-LOCATION:Asia/Dushanbe
-BEGIN:STANDARD
-TZOFFSETFROM:+043512
-TZOFFSETTO:+0500
-TZNAME:DUST
-DTSTART:19240502T000000
-RDATE:19240502T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0600
-TZNAME:DUST
-DTSTART:19300621T000000
-RDATE:19300621T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0600
-TZOFFSETTO:+0700
-TZNAME:DUSST
-DTSTART:19810401T000000
-RDATE:19810401T000000
-RDATE:19820401T000000
-RDATE:19830401T000000
-RDATE:19840401T000000
-RDATE:19850331T020000
-RDATE:19860330T020000
-RDATE:19870329T020000
-RDATE:19880327T020000
-RDATE:19890326T020000
-RDATE:19900325T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0700
-TZOFFSETTO:+0600
-TZNAME:DUST
-DTSTART:19811001T000000
-RDATE:19811001T000000
-RDATE:19821001T000000
-RDATE:19831001T000000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0600
-TZOFFSETTO:+0600
-TZNAME:DUSST
-DTSTART:19910331T020000
-RDATE:19910331T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0600
-TZOFFSETTO:+0500
-TZNAME:TJT
-DTSTART:19910909T030000
-RDATE:19910909T030000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Gaza.ics b/libkcal/libical/zoneinfo/Asia/Gaza.ics
deleted file mode 100644
index d1d34719..00000000
--- a/libkcal/libical/zoneinfo/Asia/Gaza.ics
+++ /dev/null
@@ -1,147 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Gaza
-X-LIC-LOCATION:Asia/Gaza
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:20060401T000000
-RRULE:FREQ=YEARLY
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:20070913T020000
-RRULE:FREQ=YEARLY;BYMONTH=9;BYDAY=2TH
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+021752
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19001001T000000
-RDATE:19001001T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EET
-DTSTART:19400601T000000
-RDATE:19400601T000000
-RDATE:19430401T020000
-RDATE:19440401T000000
-RDATE:19450416T000000
-RDATE:19460416T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19421101T000000
-RDATE:19421101T000000
-RDATE:19431101T000000
-RDATE:19441101T000000
-RDATE:19451101T020000
-RDATE:19461101T000000
-RDATE:19571001T000000
-RDATE:19581001T000000
-RDATE:19590930T030000
-RDATE:19600930T030000
-RDATE:19610930T030000
-RDATE:19620930T030000
-RDATE:19630930T030000
-RDATE:19640930T030000
-RDATE:19650930T030000
-RDATE:19661001T030000
-RDATE:19960920T010000
-RDATE:19970919T010000
-RDATE:19980918T010000
-RDATE:19991015T000000
-RDATE:20001020T000000
-RDATE:20011019T000000
-RDATE:20021018T000000
-RDATE:20031017T000000
-RDATE:20041001T010000
-RDATE:20051004T020000
-RDATE:20060922T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19480515T000000
-RDATE:19480515T000000
-RDATE:19960101T000000
-RDATE:19990101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19570510T000000
-RDATE:19570510T000000
-RDATE:19580501T000000
-RDATE:19590501T010000
-RDATE:19600501T010000
-RDATE:19610501T010000
-RDATE:19620501T010000
-RDATE:19630501T010000
-RDATE:19640501T010000
-RDATE:19650501T010000
-RDATE:19660501T010000
-RDATE:19670501T010000
-RDATE:19960405T000000
-RDATE:19970404T000000
-RDATE:19980403T000000
-RDATE:19990416T000000
-RDATE:20000421T000000
-RDATE:20010420T000000
-RDATE:20020419T000000
-RDATE:20030418T000000
-RDATE:20040416T000000
-RDATE:20050415T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:IST
-DTSTART:19670605T000000
-RDATE:19670605T000000
-RDATE:19741013T000000
-RDATE:19750831T000000
-RDATE:19850915T000000
-RDATE:19860907T000000
-RDATE:19870913T000000
-RDATE:19880903T000000
-RDATE:19890903T000000
-RDATE:19900826T000000
-RDATE:19910901T000000
-RDATE:19920906T000000
-RDATE:19930905T000000
-RDATE:19940828T000000
-RDATE:19950903T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:IDT
-DTSTART:19740707T000000
-RDATE:19740707T000000
-RDATE:19750420T000000
-RDATE:19850414T000000
-RDATE:19860518T000000
-RDATE:19870415T000000
-RDATE:19880409T000000
-RDATE:19890430T000000
-RDATE:19900325T000000
-RDATE:19910324T000000
-RDATE:19920329T000000
-RDATE:19930402T000000
-RDATE:19940401T000000
-RDATE:19950331T000000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Harbin.ics b/libkcal/libical/zoneinfo/Asia/Harbin.ics
deleted file mode 100644
index c3e4213e..00000000
--- a/libkcal/libical/zoneinfo/Asia/Harbin.ics
+++ /dev/null
@@ -1,61 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Harbin
-X-LIC-LOCATION:Asia/Harbin
-BEGIN:STANDARD
-TZOFFSETFROM:+082644
-TZOFFSETTO:+0830
-TZNAME:CHAT
-DTSTART:19280101T000000
-RDATE:19280101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0830
-TZOFFSETTO:+0800
-TZNAME:CST
-DTSTART:19320301T000000
-RDATE:19320301T000000
-RDATE:19800501T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0800
-TZOFFSETTO:+0900
-TZNAME:CHAT
-DTSTART:19400101T000000
-RDATE:19400101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0900
-TZOFFSETTO:+0830
-TZNAME:CHAT
-DTSTART:19660501T000000
-RDATE:19660501T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0800
-TZOFFSETTO:+0900
-TZNAME:CDT
-DTSTART:19860504T000000
-RDATE:19860504T000000
-RDATE:19870412T000000
-RDATE:19880410T000000
-RDATE:19890416T000000
-RDATE:19900415T000000
-RDATE:19910414T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0900
-TZOFFSETTO:+0800
-TZNAME:CST
-DTSTART:19860914T000000
-RDATE:19860914T000000
-RDATE:19870913T000000
-RDATE:19880911T000000
-RDATE:19890917T000000
-RDATE:19900916T000000
-RDATE:19910915T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Ho_Chi_Minh.ics b/libkcal/libical/zoneinfo/Asia/Ho_Chi_Minh.ics
deleted file mode 100644
index 47dd9749..00000000
--- a/libkcal/libical/zoneinfo/Asia/Ho_Chi_Minh.ics
+++ /dev/null
@@ -1,36 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Ho_Chi_Minh
-X-LIC-LOCATION:Asia/Ho_Chi_Minh
-BEGIN:STANDARD
-TZOFFSETFROM:+070640
-TZOFFSETTO:+070620
-TZNAME:SMT
-DTSTART:19060609T000000
-RDATE:19060609T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+070620
-TZOFFSETTO:+0700
-TZNAME:ICT
-DTSTART:19110311T000100
-RDATE:19110311T000100
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0700
-TZOFFSETTO:+0800
-TZNAME:ICT
-DTSTART:19120501T000000
-RDATE:19120501T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0800
-TZOFFSETTO:+0700
-TZNAME:ICT
-DTSTART:19310501T000000
-RDATE:19310501T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Hong_Kong.ics b/libkcal/libical/zoneinfo/Asia/Hong_Kong.ics
deleted file mode 100644
index aab7b56b..00000000
--- a/libkcal/libical/zoneinfo/Asia/Hong_Kong.ics
+++ /dev/null
@@ -1,95 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Hong_Kong
-X-LIC-LOCATION:Asia/Hong_Kong
-BEGIN:STANDARD
-TZOFFSETFROM:+073636
-TZOFFSETTO:+0800
-TZNAME:HKT
-DTSTART:19041030T000000
-RDATE:19041030T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0800
-TZOFFSETTO:+0900
-TZNAME:HKST
-DTSTART:19460420T033000
-RDATE:19460420T033000
-RDATE:19470413T033000
-RDATE:19480502T033000
-RDATE:19490403T033000
-RDATE:19500402T033000
-RDATE:19510401T033000
-RDATE:19520406T033000
-RDATE:19530405T033000
-RDATE:19540321T033000
-RDATE:19550320T033000
-RDATE:19560318T033000
-RDATE:19570324T033000
-RDATE:19580323T033000
-RDATE:19590322T033000
-RDATE:19600320T033000
-RDATE:19610319T033000
-RDATE:19620318T033000
-RDATE:19630324T033000
-RDATE:19640322T033000
-RDATE:19650418T033000
-RDATE:19660417T033000
-RDATE:19670416T033000
-RDATE:19680421T033000
-RDATE:19690420T033000
-RDATE:19700419T033000
-RDATE:19710418T033000
-RDATE:19720416T033000
-RDATE:19730422T033000
-RDATE:19740421T033000
-RDATE:19750420T033000
-RDATE:19760418T033000
-RDATE:19770417T033000
-RDATE:19790513T033000
-RDATE:19800511T033000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0900
-TZOFFSETTO:+0800
-TZNAME:HKT
-DTSTART:19461201T033000
-RDATE:19461201T033000
-RDATE:19471230T033000
-RDATE:19481031T033000
-RDATE:19491030T033000
-RDATE:19501029T033000
-RDATE:19511028T033000
-RDATE:19521026T033000
-RDATE:19531101T033000
-RDATE:19541031T033000
-RDATE:19551106T033000
-RDATE:19561104T033000
-RDATE:19571103T033000
-RDATE:19581102T033000
-RDATE:19591101T033000
-RDATE:19601106T033000
-RDATE:19611105T033000
-RDATE:19621104T033000
-RDATE:19631103T033000
-RDATE:19641101T033000
-RDATE:19651017T033000
-RDATE:19661016T033000
-RDATE:19671022T033000
-RDATE:19681020T033000
-RDATE:19691019T033000
-RDATE:19701018T033000
-RDATE:19711017T033000
-RDATE:19721022T033000
-RDATE:19731021T033000
-RDATE:19741020T033000
-RDATE:19751019T033000
-RDATE:19761017T033000
-RDATE:19771016T033000
-RDATE:19791021T033000
-RDATE:19801019T033000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Hovd.ics b/libkcal/libical/zoneinfo/Asia/Hovd.ics
deleted file mode 100644
index 7cd0a3a7..00000000
--- a/libkcal/libical/zoneinfo/Asia/Hovd.ics
+++ /dev/null
@@ -1,78 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Hovd
-X-LIC-LOCATION:Asia/Hovd
-BEGIN:STANDARD
-TZOFFSETFROM:+060636
-TZOFFSETTO:+0600
-TZNAME:HOVT
-DTSTART:19050801T000000
-RDATE:19050801T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0600
-TZOFFSETTO:+0700
-TZNAME:HOVT
-DTSTART:19780101T000000
-RDATE:19780101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0700
-TZOFFSETTO:+0800
-TZNAME:HOVST
-DTSTART:19830401T000000
-RDATE:19830401T000000
-RDATE:19840401T000000
-RDATE:19850331T000000
-RDATE:19860330T000000
-RDATE:19870329T000000
-RDATE:19880327T000000
-RDATE:19890326T000000
-RDATE:19900325T000000
-RDATE:19910331T000000
-RDATE:19920329T000000
-RDATE:19930328T000000
-RDATE:19940327T000000
-RDATE:19950326T000000
-RDATE:19960331T000000
-RDATE:19970330T000000
-RDATE:19980329T000000
-RDATE:20010428T020000
-RDATE:20020330T020000
-RDATE:20030329T020000
-RDATE:20040327T020000
-RDATE:20050326T020000
-RDATE:20060325T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0800
-TZOFFSETTO:+0700
-TZNAME:HOVT
-DTSTART:19831001T000000
-RDATE:19831001T000000
-RDATE:19840930T000000
-RDATE:19850929T000000
-RDATE:19860928T000000
-RDATE:19870927T000000
-RDATE:19880925T000000
-RDATE:19890924T000000
-RDATE:19900930T000000
-RDATE:19910929T000000
-RDATE:19920927T000000
-RDATE:19930926T000000
-RDATE:19940925T000000
-RDATE:19950924T000000
-RDATE:19960929T000000
-RDATE:19970928T000000
-RDATE:19980927T000000
-RDATE:20010929T020000
-RDATE:20020928T020000
-RDATE:20030927T020000
-RDATE:20040925T020000
-RDATE:20050924T020000
-RDATE:20060930T020000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Irkutsk.ics b/libkcal/libical/zoneinfo/Asia/Irkutsk.ics
deleted file mode 100644
index df1ce38b..00000000
--- a/libkcal/libical/zoneinfo/Asia/Irkutsk.ics
+++ /dev/null
@@ -1,95 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Irkutsk
-X-LIC-LOCATION:Asia/Irkutsk
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0800
-TZOFFSETTO:+0900
-TZNAME:IRKST
-DTSTART:19930328T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0900
-TZOFFSETTO:+0800
-TZNAME:IRKT
-DTSTART:19961027T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+065720
-TZOFFSETTO:+065720
-TZNAME:IMT
-DTSTART:18800101T000000
-RDATE:18800101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+065720
-TZOFFSETTO:+0700
-TZNAME:IRKT
-DTSTART:19200125T000000
-RDATE:19200125T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0700
-TZOFFSETTO:+0800
-TZNAME:IRKT
-DTSTART:19300621T000000
-RDATE:19300621T000000
-RDATE:19920119T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0800
-TZOFFSETTO:+0900
-TZNAME:IRKST
-DTSTART:19810401T000000
-RDATE:19810401T000000
-RDATE:19820401T000000
-RDATE:19830401T000000
-RDATE:19840401T000000
-RDATE:19850331T020000
-RDATE:19860330T020000
-RDATE:19870329T020000
-RDATE:19880327T020000
-RDATE:19890326T020000
-RDATE:19900325T020000
-RDATE:19920328T230000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0900
-TZOFFSETTO:+0800
-TZNAME:IRKT
-DTSTART:19811001T000000
-RDATE:19811001T000000
-RDATE:19821001T000000
-RDATE:19831001T000000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19920926T230000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0800
-TZOFFSETTO:+0800
-TZNAME:IRKST
-DTSTART:19910331T020000
-RDATE:19910331T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0800
-TZOFFSETTO:+0700
-TZNAME:IRKT
-DTSTART:19910929T030000
-RDATE:19910929T030000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Istanbul.ics b/libkcal/libical/zoneinfo/Asia/Istanbul.ics
deleted file mode 100644
index fa0d2752..00000000
--- a/libkcal/libical/zoneinfo/Asia/Istanbul.ics
+++ /dev/null
@@ -1,187 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Istanbul
-X-LIC-LOCATION:Asia/Istanbul
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:20070325T030000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:20071028T040000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+015552
-TZOFFSETTO:+015656
-TZNAME:IMT
-DTSTART:18800101T000000
-RDATE:18800101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+015656
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19101001T000000
-RDATE:19101001T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19160501T000000
-RDATE:19160501T000000
-RDATE:19200328T000000
-RDATE:19210403T000000
-RDATE:19220326T000000
-RDATE:19240513T000000
-RDATE:19250501T000000
-RDATE:19400630T000000
-RDATE:19401201T000000
-RDATE:19420401T000000
-RDATE:19450402T000000
-RDATE:19460601T000000
-RDATE:19470420T000000
-RDATE:19480418T000000
-RDATE:19490410T000000
-RDATE:19500419T000000
-RDATE:19510422T000000
-RDATE:19620715T000000
-RDATE:19640515T000000
-RDATE:19700503T000000
-RDATE:19710502T000000
-RDATE:19720507T000000
-RDATE:19730603T010000
-RDATE:19740331T020000
-RDATE:19750330T000000
-RDATE:19760601T000000
-RDATE:19770403T000000
-RDATE:19780402T000000
-RDATE:19860330T020000
-RDATE:19870329T020000
-RDATE:19880327T020000
-RDATE:19890326T020000
-RDATE:19900325T020000
-RDATE:19910331T010000
-RDATE:19920329T010000
-RDATE:19930328T010000
-RDATE:19940327T010000
-RDATE:19950326T010000
-RDATE:19960331T010000
-RDATE:19970330T010000
-RDATE:19980329T010000
-RDATE:19990328T010000
-RDATE:20000326T010000
-RDATE:20010325T010000
-RDATE:20020331T010000
-RDATE:20030330T010000
-RDATE:20040328T010000
-RDATE:20050327T010000
-RDATE:20060326T010000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19161001T000000
-RDATE:19161001T000000
-RDATE:19201025T000000
-RDATE:19211003T000000
-RDATE:19221008T000000
-RDATE:19241001T000000
-RDATE:19251001T000000
-RDATE:19401005T000000
-RDATE:19410921T000000
-RDATE:19421101T000000
-RDATE:19451008T000000
-RDATE:19461001T000000
-RDATE:19471005T000000
-RDATE:19481003T000000
-RDATE:19491002T000000
-RDATE:19501008T000000
-RDATE:19511008T000000
-RDATE:19621008T000000
-RDATE:19641001T000000
-RDATE:19701004T000000
-RDATE:19711003T000000
-RDATE:19721008T000000
-RDATE:19731104T030000
-RDATE:19741103T050000
-RDATE:19751026T000000
-RDATE:19761031T000000
-RDATE:19771016T000000
-RDATE:19850928T000000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19910929T020000
-RDATE:19920927T020000
-RDATE:19930926T020000
-RDATE:19940925T020000
-RDATE:19950924T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:19991031T020000
-RDATE:20001029T020000
-RDATE:20011028T020000
-RDATE:20021027T020000
-RDATE:20031026T020000
-RDATE:20041031T020000
-RDATE:20051030T020000
-RDATE:20061029T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0400
-TZNAME:TRST
-DTSTART:19781015T000000
-RDATE:19781015T000000
-RDATE:19800406T030000
-RDATE:19810329T030000
-RDATE:19820328T030000
-RDATE:19830731T000000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0400
-TZNAME:TRST
-DTSTART:19790401T030000
-RDATE:19790401T030000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0300
-TZNAME:TRT
-DTSTART:19791015T000000
-RDATE:19791015T000000
-RDATE:19801013T000000
-RDATE:19811012T000000
-RDATE:19821011T000000
-RDATE:19831002T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19850420T000000
-RDATE:19850420T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:20070101T000000
-RDATE:20070101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Jakarta.ics b/libkcal/libical/zoneinfo/Asia/Jakarta.ics
deleted file mode 100644
index e5037cc0..00000000
--- a/libkcal/libical/zoneinfo/Asia/Jakarta.ics
+++ /dev/null
@@ -1,64 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Jakarta
-X-LIC-LOCATION:Asia/Jakarta
-BEGIN:STANDARD
-TZOFFSETFROM:+070712
-TZOFFSETTO:+070712
-TZNAME:JMT
-DTSTART:18670810T000000
-RDATE:18670810T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+070712
-TZOFFSETTO:+0720
-TZNAME:JAVT
-DTSTART:19231231T234712
-RDATE:19231231T234712
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0720
-TZOFFSETTO:+0730
-TZNAME:WIT
-DTSTART:19321101T000000
-RDATE:19321101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0730
-TZOFFSETTO:+0900
-TZNAME:JST
-DTSTART:19420323T000000
-RDATE:19420323T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0900
-TZOFFSETTO:+0730
-TZNAME:WIT
-DTSTART:19450923T000000
-RDATE:19450923T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0730
-TZOFFSETTO:+0800
-TZNAME:WIT
-DTSTART:19480501T000000
-RDATE:19480501T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0800
-TZOFFSETTO:+0730
-TZNAME:WIT
-DTSTART:19500501T000000
-RDATE:19500501T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0730
-TZOFFSETTO:+0700
-TZNAME:WIT
-DTSTART:19640101T000000
-RDATE:19640101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Jayapura.ics b/libkcal/libical/zoneinfo/Asia/Jayapura.ics
deleted file mode 100644
index dc56e9af..00000000
--- a/libkcal/libical/zoneinfo/Asia/Jayapura.ics
+++ /dev/null
@@ -1,29 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Jayapura
-X-LIC-LOCATION:Asia/Jayapura
-BEGIN:STANDARD
-TZOFFSETFROM:+092248
-TZOFFSETTO:+0900
-TZNAME:EIT
-DTSTART:19321101T000000
-RDATE:19321101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0900
-TZOFFSETTO:+0930
-TZNAME:CST
-DTSTART:19440901T000000
-RDATE:19440901T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0930
-TZOFFSETTO:+0900
-TZNAME:EIT
-DTSTART:19640101T000000
-RDATE:19640101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Jerusalem.ics b/libkcal/libical/zoneinfo/Asia/Jerusalem.ics
deleted file mode 100644
index 3c1149eb..00000000
--- a/libkcal/libical/zoneinfo/Asia/Jerusalem.ics
+++ /dev/null
@@ -1,187 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Jerusalem
-X-LIC-LOCATION:Asia/Jerusalem
-BEGIN:STANDARD
-TZOFFSETFROM:+022056
-TZOFFSETTO:+022040
-TZNAME:JMT
-DTSTART:18800101T000000
-RDATE:18800101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+022040
-TZOFFSETTO:+0200
-TZNAME:IST
-DTSTART:19180101T000000
-RDATE:19180101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:IDT
-DTSTART:19400601T000000
-RDATE:19400601T000000
-RDATE:19430401T020000
-RDATE:19440401T000000
-RDATE:19450416T000000
-RDATE:19460416T020000
-RDATE:19490501T000000
-RDATE:19500416T000000
-RDATE:19510401T000000
-RDATE:19520420T020000
-RDATE:19530412T020000
-RDATE:19540613T000000
-RDATE:19550611T020000
-RDATE:19560603T000000
-RDATE:19570429T020000
-RDATE:19740707T000000
-RDATE:19750420T000000
-RDATE:19850414T000000
-RDATE:19860518T000000
-RDATE:19870415T000000
-RDATE:19880409T000000
-RDATE:19890430T000000
-RDATE:19900325T000000
-RDATE:19910324T000000
-RDATE:19920329T000000
-RDATE:19930402T000000
-RDATE:19940401T000000
-RDATE:19950331T000000
-RDATE:19960315T000000
-RDATE:19970321T000000
-RDATE:19980320T000000
-RDATE:19990402T020000
-RDATE:20000414T020000
-RDATE:20010409T010000
-RDATE:20020329T010000
-RDATE:20030328T010000
-RDATE:20040407T010000
-RDATE:20050401T020000
-RDATE:20060331T020000
-RDATE:20070330T020000
-RDATE:20080328T020000
-RDATE:20090327T020000
-RDATE:20100326T020000
-RDATE:20110401T020000
-RDATE:20120330T020000
-RDATE:20130329T020000
-RDATE:20140328T020000
-RDATE:20150327T020000
-RDATE:20160401T020000
-RDATE:20170331T020000
-RDATE:20180330T020000
-RDATE:20190329T020000
-RDATE:20200327T020000
-RDATE:20210326T020000
-RDATE:20220401T020000
-RDATE:20230331T020000
-RDATE:20240329T020000
-RDATE:20250328T020000
-RDATE:20260327T020000
-RDATE:20270326T020000
-RDATE:20280331T020000
-RDATE:20290330T020000
-RDATE:20300329T020000
-RDATE:20310328T020000
-RDATE:20320326T020000
-RDATE:20330401T020000
-RDATE:20340331T020000
-RDATE:20350330T020000
-RDATE:20360328T020000
-RDATE:20370327T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:IST
-DTSTART:19421101T000000
-RDATE:19421101T000000
-RDATE:19431101T000000
-RDATE:19441101T000000
-RDATE:19451101T020000
-RDATE:19461101T000000
-RDATE:19481101T020000
-RDATE:19491101T020000
-RDATE:19500915T030000
-RDATE:19511111T030000
-RDATE:19521019T030000
-RDATE:19530913T030000
-RDATE:19540912T000000
-RDATE:19550911T000000
-RDATE:19560930T030000
-RDATE:19570922T000000
-RDATE:19741013T000000
-RDATE:19750831T000000
-RDATE:19850915T000000
-RDATE:19860907T000000
-RDATE:19870913T000000
-RDATE:19880903T000000
-RDATE:19890903T000000
-RDATE:19900826T000000
-RDATE:19910901T000000
-RDATE:19920906T000000
-RDATE:19930905T000000
-RDATE:19940828T000000
-RDATE:19950903T000000
-RDATE:19960916T000000
-RDATE:19970914T000000
-RDATE:19980906T000000
-RDATE:19990903T020000
-RDATE:20001006T010000
-RDATE:20010924T010000
-RDATE:20021007T010000
-RDATE:20031003T010000
-RDATE:20040922T010000
-RDATE:20051009T020000
-RDATE:20061001T020000
-RDATE:20070916T020000
-RDATE:20081005T020000
-RDATE:20090927T020000
-RDATE:20100912T020000
-RDATE:20111002T020000
-RDATE:20120923T020000
-RDATE:20130908T020000
-RDATE:20140928T020000
-RDATE:20150920T020000
-RDATE:20161009T020000
-RDATE:20170924T020000
-RDATE:20180916T020000
-RDATE:20191006T020000
-RDATE:20200927T020000
-RDATE:20210912T020000
-RDATE:20221002T020000
-RDATE:20230924T020000
-RDATE:20241006T020000
-RDATE:20250928T020000
-RDATE:20260920T020000
-RDATE:20271010T020000
-RDATE:20280924T020000
-RDATE:20290916T020000
-RDATE:20301006T020000
-RDATE:20310921T020000
-RDATE:20320912T020000
-RDATE:20331002T020000
-RDATE:20340917T020000
-RDATE:20351007T020000
-RDATE:20360928T020000
-RDATE:20370913T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0400
-TZNAME:IDDT
-DTSTART:19480523T000000
-RDATE:19480523T000000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0300
-TZNAME:IDT
-DTSTART:19480901T000000
-RDATE:19480901T000000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Kabul.ics b/libkcal/libical/zoneinfo/Asia/Kabul.ics
deleted file mode 100644
index 60f7d892..00000000
--- a/libkcal/libical/zoneinfo/Asia/Kabul.ics
+++ /dev/null
@@ -1,22 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Kabul
-X-LIC-LOCATION:Asia/Kabul
-BEGIN:STANDARD
-TZOFFSETFROM:+043648
-TZOFFSETTO:+0400
-TZNAME:AFT
-DTSTART:18900101T000000
-RDATE:18900101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0430
-TZNAME:AFT
-DTSTART:19450101T000000
-RDATE:19450101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Kamchatka.ics b/libkcal/libical/zoneinfo/Asia/Kamchatka.ics
deleted file mode 100644
index 9e5b1c30..00000000
--- a/libkcal/libical/zoneinfo/Asia/Kamchatka.ics
+++ /dev/null
@@ -1,88 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Kamchatka
-X-LIC-LOCATION:Asia/Kamchatka
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+1200
-TZOFFSETTO:+1300
-TZNAME:PETST
-DTSTART:19930328T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+1300
-TZOFFSETTO:+1200
-TZNAME:PETT
-DTSTART:19961027T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+103436
-TZOFFSETTO:+1100
-TZNAME:PETT
-DTSTART:19221110T000000
-RDATE:19221110T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+1100
-TZOFFSETTO:+1200
-TZNAME:PETT
-DTSTART:19300621T000000
-RDATE:19300621T000000
-RDATE:19920119T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+1200
-TZOFFSETTO:+1300
-TZNAME:PETST
-DTSTART:19810401T000000
-RDATE:19810401T000000
-RDATE:19820401T000000
-RDATE:19830401T000000
-RDATE:19840401T000000
-RDATE:19850331T020000
-RDATE:19860330T020000
-RDATE:19870329T020000
-RDATE:19880327T020000
-RDATE:19890326T020000
-RDATE:19900325T020000
-RDATE:19920328T230000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+1300
-TZOFFSETTO:+1200
-TZNAME:PETT
-DTSTART:19811001T000000
-RDATE:19811001T000000
-RDATE:19821001T000000
-RDATE:19831001T000000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19920926T230000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+1200
-TZOFFSETTO:+1200
-TZNAME:PETST
-DTSTART:19910331T020000
-RDATE:19910331T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+1200
-TZOFFSETTO:+1100
-TZNAME:PETT
-DTSTART:19910929T030000
-RDATE:19910929T030000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Karachi.ics b/libkcal/libical/zoneinfo/Asia/Karachi.ics
deleted file mode 100644
index e07bc9ad..00000000
--- a/libkcal/libical/zoneinfo/Asia/Karachi.ics
+++ /dev/null
@@ -1,57 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Karachi
-X-LIC-LOCATION:Asia/Karachi
-BEGIN:STANDARD
-TZOFFSETFROM:+042812
-TZOFFSETTO:+0530
-TZNAME:IST
-DTSTART:19070101T000000
-RDATE:19070101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0530
-TZOFFSETTO:+0630
-TZNAME:IST
-DTSTART:19420901T000000
-RDATE:19420901T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0630
-TZOFFSETTO:+0530
-TZNAME:IST
-DTSTART:19451015T000000
-RDATE:19451015T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0530
-TZOFFSETTO:+0500
-TZNAME:KART
-DTSTART:19510930T000000
-RDATE:19510930T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0500
-TZNAME:PKT
-DTSTART:19710326T000000
-RDATE:19710326T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0600
-TZNAME:PKST
-DTSTART:20020407T000100
-RDATE:20020407T000100
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0600
-TZOFFSETTO:+0500
-TZNAME:PKT
-DTSTART:20021006T000100
-RDATE:20021006T000100
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Kashgar.ics b/libkcal/libical/zoneinfo/Asia/Kashgar.ics
deleted file mode 100644
index 6ddbce63..00000000
--- a/libkcal/libical/zoneinfo/Asia/Kashgar.ics
+++ /dev/null
@@ -1,53 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Kashgar
-X-LIC-LOCATION:Asia/Kashgar
-BEGIN:STANDARD
-TZOFFSETFROM:+050356
-TZOFFSETTO:+0530
-TZNAME:KAST
-DTSTART:19280101T000000
-RDATE:19280101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0530
-TZOFFSETTO:+0500
-TZNAME:KAST
-DTSTART:19400101T000000
-RDATE:19400101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0800
-TZNAME:CST
-DTSTART:19800501T000000
-RDATE:19800501T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0800
-TZOFFSETTO:+0900
-TZNAME:CDT
-DTSTART:19860504T000000
-RDATE:19860504T000000
-RDATE:19870412T000000
-RDATE:19880410T000000
-RDATE:19890416T000000
-RDATE:19900415T000000
-RDATE:19910414T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0900
-TZOFFSETTO:+0800
-TZNAME:CST
-DTSTART:19860914T000000
-RDATE:19860914T000000
-RDATE:19870913T000000
-RDATE:19880911T000000
-RDATE:19890917T000000
-RDATE:19900916T000000
-RDATE:19910915T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Katmandu.ics b/libkcal/libical/zoneinfo/Asia/Katmandu.ics
deleted file mode 100644
index c469dea2..00000000
--- a/libkcal/libical/zoneinfo/Asia/Katmandu.ics
+++ /dev/null
@@ -1,22 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Katmandu
-X-LIC-LOCATION:Asia/Katmandu
-BEGIN:STANDARD
-TZOFFSETFROM:+054116
-TZOFFSETTO:+0530
-TZNAME:IST
-DTSTART:19200101T000000
-RDATE:19200101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0530
-TZOFFSETTO:+0545
-TZNAME:NPT
-DTSTART:19860101T000000
-RDATE:19860101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Kolkata.ics b/libkcal/libical/zoneinfo/Asia/Kolkata.ics
deleted file mode 100644
index d170cb4f..00000000
--- a/libkcal/libical/zoneinfo/Asia/Kolkata.ics
+++ /dev/null
@@ -1,37 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Kolkata
-X-LIC-LOCATION:Asia/Kolkata
-BEGIN:STANDARD
-TZOFFSETFROM:+055328
-TZOFFSETTO:+055320
-TZNAME:HMT
-DTSTART:18800101T000000
-RDATE:18800101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+055320
-TZOFFSETTO:+0630
-TZNAME:BURT
-DTSTART:19411001T000000
-RDATE:19411001T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0630
-TZOFFSETTO:+0530
-TZNAME:IST
-DTSTART:19420515T000000
-RDATE:19420515T000000
-RDATE:19451015T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0530
-TZOFFSETTO:+0630
-TZNAME:IST
-DTSTART:19420901T000000
-RDATE:19420901T000000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Krasnoyarsk.ics b/libkcal/libical/zoneinfo/Asia/Krasnoyarsk.ics
deleted file mode 100644
index aab8fa26..00000000
--- a/libkcal/libical/zoneinfo/Asia/Krasnoyarsk.ics
+++ /dev/null
@@ -1,88 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Krasnoyarsk
-X-LIC-LOCATION:Asia/Krasnoyarsk
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0700
-TZOFFSETTO:+0800
-TZNAME:KRAST
-DTSTART:19930328T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0800
-TZOFFSETTO:+0700
-TZNAME:KRAT
-DTSTART:19961027T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+061120
-TZOFFSETTO:+0600
-TZNAME:KRAT
-DTSTART:19200106T000000
-RDATE:19200106T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0600
-TZOFFSETTO:+0700
-TZNAME:KRAT
-DTSTART:19300621T000000
-RDATE:19300621T000000
-RDATE:19920119T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0700
-TZOFFSETTO:+0800
-TZNAME:KRAST
-DTSTART:19810401T000000
-RDATE:19810401T000000
-RDATE:19820401T000000
-RDATE:19830401T000000
-RDATE:19840401T000000
-RDATE:19850331T020000
-RDATE:19860330T020000
-RDATE:19870329T020000
-RDATE:19880327T020000
-RDATE:19890326T020000
-RDATE:19900325T020000
-RDATE:19920328T230000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0800
-TZOFFSETTO:+0700
-TZNAME:KRAT
-DTSTART:19811001T000000
-RDATE:19811001T000000
-RDATE:19821001T000000
-RDATE:19831001T000000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19920926T230000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0700
-TZOFFSETTO:+0700
-TZNAME:KRAST
-DTSTART:19910331T020000
-RDATE:19910331T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0700
-TZOFFSETTO:+0600
-TZNAME:KRAT
-DTSTART:19910929T030000
-RDATE:19910929T030000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Kuala_Lumpur.ics b/libkcal/libical/zoneinfo/Asia/Kuala_Lumpur.ics
deleted file mode 100644
index 73323663..00000000
--- a/libkcal/libical/zoneinfo/Asia/Kuala_Lumpur.ics
+++ /dev/null
@@ -1,64 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Kuala_Lumpur
-X-LIC-LOCATION:Asia/Kuala_Lumpur
-BEGIN:STANDARD
-TZOFFSETFROM:+064646
-TZOFFSETTO:+065525
-TZNAME:SMT
-DTSTART:19010101T000000
-RDATE:19010101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+065525
-TZOFFSETTO:+0700
-TZNAME:MALT
-DTSTART:19050601T000000
-RDATE:19050601T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0700
-TZOFFSETTO:+0720
-TZNAME:MALST
-DTSTART:19330101T000000
-RDATE:19330101T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0720
-TZOFFSETTO:+0720
-TZNAME:MALT
-DTSTART:19360101T000000
-RDATE:19360101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0720
-TZOFFSETTO:+0730
-TZNAME:MALT
-DTSTART:19410901T000000
-RDATE:19410901T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0730
-TZOFFSETTO:+0900
-TZNAME:JST
-DTSTART:19420216T000000
-RDATE:19420216T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0900
-TZOFFSETTO:+0730
-TZNAME:MALT
-DTSTART:19450912T000000
-RDATE:19450912T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0730
-TZOFFSETTO:+0800
-TZNAME:MYT
-DTSTART:19820101T000000
-RDATE:19820101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Kuching.ics b/libkcal/libical/zoneinfo/Asia/Kuching.ics
deleted file mode 100644
index 73d83795..00000000
--- a/libkcal/libical/zoneinfo/Asia/Kuching.ics
+++ /dev/null
@@ -1,69 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Kuching
-X-LIC-LOCATION:Asia/Kuching
-BEGIN:STANDARD
-TZOFFSETFROM:+072120
-TZOFFSETTO:+0730
-TZNAME:BORT
-DTSTART:19260301T000000
-RDATE:19260301T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0730
-TZOFFSETTO:+0800
-TZNAME:BORT
-DTSTART:19330101T000000
-RDATE:19330101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0800
-TZOFFSETTO:+0820
-TZNAME:BORTST
-DTSTART:19350914T000000
-RDATE:19350914T000000
-RDATE:19360914T000000
-RDATE:19370914T000000
-RDATE:19380914T000000
-RDATE:19390914T000000
-RDATE:19400914T000000
-RDATE:19410914T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0820
-TZOFFSETTO:+0800
-TZNAME:BORT
-DTSTART:19351214T000000
-RDATE:19351214T000000
-RDATE:19361214T000000
-RDATE:19371214T000000
-RDATE:19381214T000000
-RDATE:19391214T000000
-RDATE:19401214T000000
-RDATE:19411214T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0800
-TZOFFSETTO:+0900
-TZNAME:JST
-DTSTART:19420216T000000
-RDATE:19420216T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0900
-TZOFFSETTO:+0800
-TZNAME:BORT
-DTSTART:19450912T000000
-RDATE:19450912T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0800
-TZOFFSETTO:+0800
-TZNAME:MYT
-DTSTART:19820101T000000
-RDATE:19820101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Kuwait.ics b/libkcal/libical/zoneinfo/Asia/Kuwait.ics
deleted file mode 100644
index 6c974846..00000000
--- a/libkcal/libical/zoneinfo/Asia/Kuwait.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Kuwait
-X-LIC-LOCATION:Asia/Kuwait
-BEGIN:STANDARD
-TZOFFSETFROM:+031156
-TZOFFSETTO:+0300
-TZNAME:AST
-DTSTART:19500101T000000
-RDATE:19500101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Macau.ics b/libkcal/libical/zoneinfo/Asia/Macau.ics
deleted file mode 100644
index b5683941..00000000
--- a/libkcal/libical/zoneinfo/Asia/Macau.ics
+++ /dev/null
@@ -1,74 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Macau
-X-LIC-LOCATION:Asia/Macau
-BEGIN:STANDARD
-TZOFFSETFROM:+073420
-TZOFFSETTO:+0800
-TZNAME:MOT
-DTSTART:19120101T000000
-RDATE:19120101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0800
-TZOFFSETTO:+0900
-TZNAME:MOST
-DTSTART:19610319T033000
-RDATE:19610319T033000
-RDATE:19620318T033000
-RDATE:19630317T000000
-RDATE:19640322T033000
-RDATE:19650321T000000
-RDATE:19660417T033000
-RDATE:19670416T033000
-RDATE:19680421T033000
-RDATE:19690420T033000
-RDATE:19700419T033000
-RDATE:19710418T033000
-RDATE:19720416T000000
-RDATE:19730415T000000
-RDATE:19740421T000000
-RDATE:19750420T033000
-RDATE:19760418T033000
-RDATE:19770417T033000
-RDATE:19780416T000000
-RDATE:19790415T000000
-RDATE:19800420T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0900
-TZOFFSETTO:+0800
-TZNAME:MOT
-DTSTART:19611105T033000
-RDATE:19611105T033000
-RDATE:19621104T033000
-RDATE:19631103T033000
-RDATE:19641101T033000
-RDATE:19651031T000000
-RDATE:19661016T033000
-RDATE:19671022T033000
-RDATE:19681020T033000
-RDATE:19691019T033000
-RDATE:19701018T033000
-RDATE:19711017T033000
-RDATE:19721015T000000
-RDATE:19731021T000000
-RDATE:19741020T033000
-RDATE:19751019T033000
-RDATE:19761017T033000
-RDATE:19771016T033000
-RDATE:19781015T000000
-RDATE:19791021T000000
-RDATE:19801019T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0800
-TZOFFSETTO:+0800
-TZNAME:CST
-DTSTART:19991220T000000
-RDATE:19991220T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Magadan.ics b/libkcal/libical/zoneinfo/Asia/Magadan.ics
deleted file mode 100644
index e20093ca..00000000
--- a/libkcal/libical/zoneinfo/Asia/Magadan.ics
+++ /dev/null
@@ -1,88 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Magadan
-X-LIC-LOCATION:Asia/Magadan
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+1100
-TZOFFSETTO:+1200
-TZNAME:MAGST
-DTSTART:19930328T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+1200
-TZOFFSETTO:+1100
-TZNAME:MAGT
-DTSTART:19961027T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+100312
-TZOFFSETTO:+1000
-TZNAME:MAGT
-DTSTART:19240502T000000
-RDATE:19240502T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+1000
-TZOFFSETTO:+1100
-TZNAME:MAGT
-DTSTART:19300621T000000
-RDATE:19300621T000000
-RDATE:19920119T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+1100
-TZOFFSETTO:+1200
-TZNAME:MAGST
-DTSTART:19810401T000000
-RDATE:19810401T000000
-RDATE:19820401T000000
-RDATE:19830401T000000
-RDATE:19840401T000000
-RDATE:19850331T020000
-RDATE:19860330T020000
-RDATE:19870329T020000
-RDATE:19880327T020000
-RDATE:19890326T020000
-RDATE:19900325T020000
-RDATE:19920328T230000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+1200
-TZOFFSETTO:+1100
-TZNAME:MAGT
-DTSTART:19811001T000000
-RDATE:19811001T000000
-RDATE:19821001T000000
-RDATE:19831001T000000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19920926T230000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+1100
-TZOFFSETTO:+1100
-TZNAME:MAGST
-DTSTART:19910331T020000
-RDATE:19910331T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+1100
-TZOFFSETTO:+1000
-TZNAME:MAGT
-DTSTART:19910929T030000
-RDATE:19910929T030000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Makassar.ics b/libkcal/libical/zoneinfo/Asia/Makassar.ics
deleted file mode 100644
index 50edb205..00000000
--- a/libkcal/libical/zoneinfo/Asia/Makassar.ics
+++ /dev/null
@@ -1,36 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Makassar
-X-LIC-LOCATION:Asia/Makassar
-BEGIN:STANDARD
-TZOFFSETFROM:+075736
-TZOFFSETTO:+075736
-TZNAME:MMT
-DTSTART:19200101T000000
-RDATE:19200101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+075736
-TZOFFSETTO:+0800
-TZNAME:CIT
-DTSTART:19321101T000000
-RDATE:19321101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0800
-TZOFFSETTO:+0900
-TZNAME:JST
-DTSTART:19420209T000000
-RDATE:19420209T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0900
-TZOFFSETTO:+0800
-TZNAME:CIT
-DTSTART:19450923T000000
-RDATE:19450923T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Manila.ics b/libkcal/libical/zoneinfo/Asia/Manila.ics
deleted file mode 100644
index 5e8daf63..00000000
--- a/libkcal/libical/zoneinfo/Asia/Manila.ics
+++ /dev/null
@@ -1,48 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Manila
-X-LIC-LOCATION:Asia/Manila
-BEGIN:STANDARD
-TZOFFSETFROM:-1556
-TZOFFSETTO:+0804
-TZNAME:LMT
-DTSTART:18441231T000000
-RDATE:18441231T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0804
-TZOFFSETTO:+0800
-TZNAME:PHT
-DTSTART:18990511T000000
-RDATE:18990511T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0800
-TZOFFSETTO:+0900
-TZNAME:PHST
-DTSTART:19361101T000000
-RDATE:19361101T000000
-RDATE:19540412T000000
-RDATE:19780322T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0900
-TZOFFSETTO:+0800
-TZNAME:PHT
-DTSTART:19370201T000000
-RDATE:19370201T000000
-RDATE:19441101T000000
-RDATE:19540701T000000
-RDATE:19780921T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0800
-TZOFFSETTO:+0900
-TZNAME:JST
-DTSTART:19420501T000000
-RDATE:19420501T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Muscat.ics b/libkcal/libical/zoneinfo/Asia/Muscat.ics
deleted file mode 100644
index 8039649d..00000000
--- a/libkcal/libical/zoneinfo/Asia/Muscat.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Muscat
-X-LIC-LOCATION:Asia/Muscat
-BEGIN:STANDARD
-TZOFFSETFROM:+035420
-TZOFFSETTO:+0400
-TZNAME:GST
-DTSTART:19200101T000000
-RDATE:19200101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Nicosia.ics b/libkcal/libical/zoneinfo/Asia/Nicosia.ics
deleted file mode 100644
index b0dd7b97..00000000
--- a/libkcal/libical/zoneinfo/Asia/Nicosia.ics
+++ /dev/null
@@ -1,95 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Nicosia
-X-LIC-LOCATION:Asia/Nicosia
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19981025T040000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19990328T030000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+021328
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19211114T000000
-RDATE:19211114T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19750413T000000
-RDATE:19750413T000000
-RDATE:19760515T000000
-RDATE:19770403T000000
-RDATE:19780402T000000
-RDATE:19790401T000000
-RDATE:19800406T000000
-RDATE:19810329T000000
-RDATE:19820328T000000
-RDATE:19830327T000000
-RDATE:19840325T000000
-RDATE:19850331T000000
-RDATE:19860330T000000
-RDATE:19870329T000000
-RDATE:19880327T000000
-RDATE:19890326T000000
-RDATE:19900325T000000
-RDATE:19910331T000000
-RDATE:19920329T000000
-RDATE:19930328T000000
-RDATE:19940327T000000
-RDATE:19950326T000000
-RDATE:19960331T000000
-RDATE:19970330T000000
-RDATE:19980329T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19751012T000000
-RDATE:19751012T000000
-RDATE:19761011T000000
-RDATE:19770925T000000
-RDATE:19781002T000000
-RDATE:19790930T000000
-RDATE:19800928T000000
-RDATE:19810927T000000
-RDATE:19820926T000000
-RDATE:19830925T000000
-RDATE:19840930T000000
-RDATE:19850929T000000
-RDATE:19860928T000000
-RDATE:19870927T000000
-RDATE:19880925T000000
-RDATE:19890924T000000
-RDATE:19900930T000000
-RDATE:19910929T000000
-RDATE:19920927T000000
-RDATE:19930926T000000
-RDATE:19940925T000000
-RDATE:19950924T000000
-RDATE:19960929T000000
-RDATE:19970928T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19980901T000000
-RDATE:19980901T000000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Novosibirsk.ics b/libkcal/libical/zoneinfo/Asia/Novosibirsk.ics
deleted file mode 100644
index 02e7a844..00000000
--- a/libkcal/libical/zoneinfo/Asia/Novosibirsk.ics
+++ /dev/null
@@ -1,96 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Novosibirsk
-X-LIC-LOCATION:Asia/Novosibirsk
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0600
-TZOFFSETTO:+0700
-TZNAME:NOVST
-DTSTART:19940327T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0700
-TZOFFSETTO:+0600
-TZNAME:NOVT
-DTSTART:19961027T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+053140
-TZOFFSETTO:+0600
-TZNAME:NOVT
-DTSTART:19191214T060000
-RDATE:19191214T060000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0600
-TZOFFSETTO:+0700
-TZNAME:NOVT
-DTSTART:19300621T000000
-RDATE:19300621T000000
-RDATE:19920119T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0700
-TZOFFSETTO:+0800
-TZNAME:NOVST
-DTSTART:19810401T000000
-RDATE:19810401T000000
-RDATE:19820401T000000
-RDATE:19830401T000000
-RDATE:19840401T000000
-RDATE:19850331T020000
-RDATE:19860330T020000
-RDATE:19870329T020000
-RDATE:19880327T020000
-RDATE:19890326T020000
-RDATE:19900325T020000
-RDATE:19920328T230000
-RDATE:19930328T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0800
-TZOFFSETTO:+0700
-TZNAME:NOVT
-DTSTART:19811001T000000
-RDATE:19811001T000000
-RDATE:19821001T000000
-RDATE:19831001T000000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19920926T230000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0700
-TZOFFSETTO:+0700
-TZNAME:NOVST
-DTSTART:19910331T020000
-RDATE:19910331T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0700
-TZOFFSETTO:+0600
-TZNAME:NOVT
-DTSTART:19910929T030000
-RDATE:19910929T030000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0800
-TZOFFSETTO:+0700
-TZNAME:NOVST
-DTSTART:19930523T000000
-RDATE:19930523T000000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Omsk.ics b/libkcal/libical/zoneinfo/Asia/Omsk.ics
deleted file mode 100644
index ebce6e36..00000000
--- a/libkcal/libical/zoneinfo/Asia/Omsk.ics
+++ /dev/null
@@ -1,88 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Omsk
-X-LIC-LOCATION:Asia/Omsk
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0600
-TZOFFSETTO:+0700
-TZNAME:OMSST
-DTSTART:19930328T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0700
-TZOFFSETTO:+0600
-TZNAME:OMST
-DTSTART:19961027T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+045336
-TZOFFSETTO:+0500
-TZNAME:OMST
-DTSTART:19191114T000000
-RDATE:19191114T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0600
-TZNAME:OMST
-DTSTART:19300621T000000
-RDATE:19300621T000000
-RDATE:19920119T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0600
-TZOFFSETTO:+0700
-TZNAME:OMSST
-DTSTART:19810401T000000
-RDATE:19810401T000000
-RDATE:19820401T000000
-RDATE:19830401T000000
-RDATE:19840401T000000
-RDATE:19850331T020000
-RDATE:19860330T020000
-RDATE:19870329T020000
-RDATE:19880327T020000
-RDATE:19890326T020000
-RDATE:19900325T020000
-RDATE:19920328T230000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0700
-TZOFFSETTO:+0600
-TZNAME:OMST
-DTSTART:19811001T000000
-RDATE:19811001T000000
-RDATE:19821001T000000
-RDATE:19831001T000000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19920926T230000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0600
-TZOFFSETTO:+0600
-TZNAME:OMSST
-DTSTART:19910331T020000
-RDATE:19910331T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0600
-TZOFFSETTO:+0500
-TZNAME:OMST
-DTSTART:19910929T030000
-RDATE:19910929T030000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Oral.ics b/libkcal/libical/zoneinfo/Asia/Oral.ics
deleted file mode 100644
index 8b954d61..00000000
--- a/libkcal/libical/zoneinfo/Asia/Oral.ics
+++ /dev/null
@@ -1,143 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Oral
-X-LIC-LOCATION:Asia/Oral
-BEGIN:STANDARD
-TZOFFSETFROM:+032524
-TZOFFSETTO:+0400
-TZNAME:URAT
-DTSTART:19240502T000000
-RDATE:19240502T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0500
-TZNAME:URAT
-DTSTART:19300621T000000
-RDATE:19300621T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0600
-TZNAME:URAST
-DTSTART:19810401T000000
-RDATE:19810401T000000
-RDATE:19830401T000000
-RDATE:19840401T000000
-RDATE:19850331T020000
-RDATE:19860330T020000
-RDATE:19870329T020000
-RDATE:19880327T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0600
-TZOFFSETTO:+0600
-TZNAME:URAT
-DTSTART:19811001T000000
-RDATE:19811001T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0600
-TZOFFSETTO:+0600
-TZNAME:URAST
-DTSTART:19820401T000000
-RDATE:19820401T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0600
-TZOFFSETTO:+0500
-TZNAME:URAT
-DTSTART:19821001T000000
-RDATE:19821001T000000
-RDATE:19831001T000000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0500
-TZNAME:URAST
-DTSTART:19890326T020000
-RDATE:19890326T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0400
-TZNAME:URAT
-DTSTART:19890924T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0500
-TZNAME:URAST
-DTSTART:19900325T020000
-RDATE:19900325T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0400
-TZNAME:URAT
-DTSTART:19910101T000000
-RDATE:19910101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0400
-TZNAME:ORAT
-DTSTART:19911216T000000
-RDATE:19911216T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0500
-TZNAME:ORAST
-DTSTART:19920328T230000
-RDATE:19920328T230000
-RDATE:19930328T020000
-RDATE:19940327T020000
-RDATE:19950326T020000
-RDATE:19960331T020000
-RDATE:19970330T020000
-RDATE:19980329T020000
-RDATE:19990328T020000
-RDATE:20000326T020000
-RDATE:20010325T020000
-RDATE:20020331T020000
-RDATE:20030330T020000
-RDATE:20040328T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0400
-TZNAME:ORAT
-DTSTART:19920926T230000
-RDATE:19920926T230000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-RDATE:19961027T030000
-RDATE:19971026T030000
-RDATE:19981025T030000
-RDATE:19991031T030000
-RDATE:20001029T030000
-RDATE:20011028T030000
-RDATE:20021027T030000
-RDATE:20031026T030000
-RDATE:20041031T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0500
-TZNAME:ORAT
-DTSTART:20050315T000000
-RDATE:20050315T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Phnom_Penh.ics b/libkcal/libical/zoneinfo/Asia/Phnom_Penh.ics
deleted file mode 100644
index d1afc820..00000000
--- a/libkcal/libical/zoneinfo/Asia/Phnom_Penh.ics
+++ /dev/null
@@ -1,36 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Phnom_Penh
-X-LIC-LOCATION:Asia/Phnom_Penh
-BEGIN:STANDARD
-TZOFFSETFROM:+065940
-TZOFFSETTO:+070620
-TZNAME:SMT
-DTSTART:19060609T000000
-RDATE:19060609T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+070620
-TZOFFSETTO:+0700
-TZNAME:ICT
-DTSTART:19110311T000100
-RDATE:19110311T000100
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0700
-TZOFFSETTO:+0800
-TZNAME:ICT
-DTSTART:19120501T000000
-RDATE:19120501T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0800
-TZOFFSETTO:+0700
-TZNAME:ICT
-DTSTART:19310501T000000
-RDATE:19310501T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Pontianak.ics b/libkcal/libical/zoneinfo/Asia/Pontianak.ics
deleted file mode 100644
index 01b5b44d..00000000
--- a/libkcal/libical/zoneinfo/Asia/Pontianak.ics
+++ /dev/null
@@ -1,64 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Pontianak
-X-LIC-LOCATION:Asia/Pontianak
-BEGIN:STANDARD
-TZOFFSETFROM:+071720
-TZOFFSETTO:+071720
-TZNAME:PMT
-DTSTART:19080501T000000
-RDATE:19080501T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+071720
-TZOFFSETTO:+0730
-TZNAME:WIT
-DTSTART:19321101T000000
-RDATE:19321101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0730
-TZOFFSETTO:+0900
-TZNAME:JST
-DTSTART:19420129T000000
-RDATE:19420129T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0900
-TZOFFSETTO:+0730
-TZNAME:WIT
-DTSTART:19450923T000000
-RDATE:19450923T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0730
-TZOFFSETTO:+0800
-TZNAME:WIT
-DTSTART:19480501T000000
-RDATE:19480501T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0800
-TZOFFSETTO:+0730
-TZNAME:WIT
-DTSTART:19500501T000000
-RDATE:19500501T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0730
-TZOFFSETTO:+0800
-TZNAME:CIT
-DTSTART:19640101T000000
-RDATE:19640101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0800
-TZOFFSETTO:+0700
-TZNAME:WIT
-DTSTART:19880101T000000
-RDATE:19880101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Pyongyang.ics b/libkcal/libical/zoneinfo/Asia/Pyongyang.ics
deleted file mode 100644
index 9d22c6f4..00000000
--- a/libkcal/libical/zoneinfo/Asia/Pyongyang.ics
+++ /dev/null
@@ -1,44 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Pyongyang
-X-LIC-LOCATION:Asia/Pyongyang
-BEGIN:STANDARD
-TZOFFSETFROM:+0823
-TZOFFSETTO:+0830
-TZNAME:KST
-DTSTART:18900101T000000
-RDATE:18900101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0830
-TZOFFSETTO:+0900
-TZNAME:KST
-DTSTART:19041201T000000
-RDATE:19041201T000000
-RDATE:19320101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0900
-TZOFFSETTO:+0830
-TZNAME:KST
-DTSTART:19280101T000000
-RDATE:19280101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0900
-TZOFFSETTO:+0800
-TZNAME:KST
-DTSTART:19540321T000000
-RDATE:19540321T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0800
-TZOFFSETTO:+0900
-TZNAME:KST
-DTSTART:19610810T000000
-RDATE:19610810T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Qatar.ics b/libkcal/libical/zoneinfo/Asia/Qatar.ics
deleted file mode 100644
index d545c5cd..00000000
--- a/libkcal/libical/zoneinfo/Asia/Qatar.ics
+++ /dev/null
@@ -1,22 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Qatar
-X-LIC-LOCATION:Asia/Qatar
-BEGIN:STANDARD
-TZOFFSETFROM:+032608
-TZOFFSETTO:+0400
-TZNAME:GST
-DTSTART:19200101T000000
-RDATE:19200101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0300
-TZNAME:AST
-DTSTART:19720601T000000
-RDATE:19720601T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Qyzylorda.ics b/libkcal/libical/zoneinfo/Asia/Qyzylorda.ics
deleted file mode 100644
index d3924978..00000000
--- a/libkcal/libical/zoneinfo/Asia/Qyzylorda.ics
+++ /dev/null
@@ -1,132 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Qyzylorda
-X-LIC-LOCATION:Asia/Qyzylorda
-BEGIN:STANDARD
-TZOFFSETFROM:+042152
-TZOFFSETTO:+0400
-TZNAME:KIZT
-DTSTART:19240502T000000
-RDATE:19240502T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0500
-TZNAME:KIZT
-DTSTART:19300621T000000
-RDATE:19300621T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0600
-TZNAME:KIZST
-DTSTART:19810401T000000
-RDATE:19810401T000000
-RDATE:19830401T000000
-RDATE:19840401T000000
-RDATE:19850331T020000
-RDATE:19860330T020000
-RDATE:19870329T020000
-RDATE:19880327T020000
-RDATE:19890326T020000
-RDATE:19900325T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0600
-TZOFFSETTO:+0600
-TZNAME:KIZT
-DTSTART:19811001T000000
-RDATE:19811001T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0600
-TZOFFSETTO:+0600
-TZNAME:KIZST
-DTSTART:19820401T000000
-RDATE:19820401T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0600
-TZOFFSETTO:+0500
-TZNAME:KIZT
-DTSTART:19821001T000000
-RDATE:19821001T000000
-RDATE:19831001T000000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0500
-TZNAME:KIZT
-DTSTART:19910101T000000
-RDATE:19910101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0500
-TZNAME:QYZT
-DTSTART:19911216T000000
-RDATE:19911216T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0600
-TZNAME:QYZT
-DTSTART:19920119T020000
-RDATE:19920119T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0600
-TZOFFSETTO:+0700
-TZNAME:QYZST
-DTSTART:19920328T230000
-RDATE:19920328T230000
-RDATE:19930328T020000
-RDATE:19940327T020000
-RDATE:19950326T020000
-RDATE:19960331T020000
-RDATE:19970330T020000
-RDATE:19980329T020000
-RDATE:19990328T020000
-RDATE:20000326T020000
-RDATE:20010325T020000
-RDATE:20020331T020000
-RDATE:20030330T020000
-RDATE:20040328T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0700
-TZOFFSETTO:+0600
-TZNAME:QYZT
-DTSTART:19920926T230000
-RDATE:19920926T230000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-RDATE:19961027T030000
-RDATE:19971026T030000
-RDATE:19981025T030000
-RDATE:19991031T030000
-RDATE:20001029T030000
-RDATE:20011028T030000
-RDATE:20021027T030000
-RDATE:20031026T030000
-RDATE:20041031T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0600
-TZOFFSETTO:+0600
-TZNAME:QYZT
-DTSTART:20050315T000000
-RDATE:20050315T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Rangoon.ics b/libkcal/libical/zoneinfo/Asia/Rangoon.ics
deleted file mode 100644
index 5aa260ae..00000000
--- a/libkcal/libical/zoneinfo/Asia/Rangoon.ics
+++ /dev/null
@@ -1,36 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Rangoon
-X-LIC-LOCATION:Asia/Rangoon
-BEGIN:STANDARD
-TZOFFSETFROM:+062440
-TZOFFSETTO:+062436
-TZNAME:RMT
-DTSTART:18800101T000000
-RDATE:18800101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+062436
-TZOFFSETTO:+0630
-TZNAME:BURT
-DTSTART:19200101T000000
-RDATE:19200101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0630
-TZOFFSETTO:+0900
-TZNAME:JST
-DTSTART:19420501T000000
-RDATE:19420501T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0900
-TZOFFSETTO:+0630
-TZNAME:MMT
-DTSTART:19450503T000000
-RDATE:19450503T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Riyadh.ics b/libkcal/libical/zoneinfo/Asia/Riyadh.ics
deleted file mode 100644
index 35537135..00000000
--- a/libkcal/libical/zoneinfo/Asia/Riyadh.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Riyadh
-X-LIC-LOCATION:Asia/Riyadh
-BEGIN:STANDARD
-TZOFFSETFROM:+030652
-TZOFFSETTO:+0300
-TZNAME:AST
-DTSTART:19500101T000000
-RDATE:19500101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Saigon.ics b/libkcal/libical/zoneinfo/Asia/Saigon.ics
deleted file mode 100644
index f7b076ae..00000000
--- a/libkcal/libical/zoneinfo/Asia/Saigon.ics
+++ /dev/null
@@ -1,36 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20071016_1/Asia/Saigon
-X-LIC-LOCATION:Asia/Saigon
-BEGIN:STANDARD
-TZOFFSETFROM:+070640
-TZOFFSETTO:+070620
-TZNAME:SMT
-DTSTART:19060609T000000
-RDATE:19060609T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+070620
-TZOFFSETTO:+0700
-TZNAME:ICT
-DTSTART:19110311T000100
-RDATE:19110311T000100
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0700
-TZOFFSETTO:+0800
-TZNAME:ICT
-DTSTART:19120501T000000
-RDATE:19120501T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0800
-TZOFFSETTO:+0700
-TZNAME:ICT
-DTSTART:19310501T000000
-RDATE:19310501T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Sakhalin.ics b/libkcal/libical/zoneinfo/Asia/Sakhalin.ics
deleted file mode 100644
index 2d7ac40d..00000000
--- a/libkcal/libical/zoneinfo/Asia/Sakhalin.ics
+++ /dev/null
@@ -1,107 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Sakhalin
-X-LIC-LOCATION:Asia/Sakhalin
-BEGIN:STANDARD
-TZOFFSETFROM:+1100
-TZOFFSETTO:+1000
-TZNAME:SAKT
-DTSTART:19971026T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+1000
-TZOFFSETTO:+1100
-TZNAME:SAKST
-DTSTART:19980329T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+093048
-TZOFFSETTO:+0900
-TZNAME:CJT
-DTSTART:19050823T000000
-RDATE:19050823T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0900
-TZOFFSETTO:+0900
-TZNAME:JST
-DTSTART:19380101T000000
-RDATE:19380101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0900
-TZOFFSETTO:+1100
-TZNAME:SAKT
-DTSTART:19450825T000000
-RDATE:19450825T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+1100
-TZOFFSETTO:+1200
-TZNAME:SAKST
-DTSTART:19810401T000000
-RDATE:19810401T000000
-RDATE:19820401T000000
-RDATE:19830401T000000
-RDATE:19840401T000000
-RDATE:19850331T020000
-RDATE:19860330T020000
-RDATE:19870329T020000
-RDATE:19880327T020000
-RDATE:19890326T020000
-RDATE:19900325T020000
-RDATE:19920328T230000
-RDATE:19930328T020000
-RDATE:19940327T020000
-RDATE:19950326T020000
-RDATE:19960331T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+1200
-TZOFFSETTO:+1100
-TZNAME:SAKT
-DTSTART:19811001T000000
-RDATE:19811001T000000
-RDATE:19821001T000000
-RDATE:19831001T000000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19920926T230000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-RDATE:19961027T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+1100
-TZOFFSETTO:+1100
-TZNAME:SAKST
-DTSTART:19910331T020000
-RDATE:19910331T020000
-RDATE:19970330T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+1100
-TZOFFSETTO:+1000
-TZNAME:SAKT
-DTSTART:19910929T030000
-RDATE:19910929T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+1000
-TZOFFSETTO:+1100
-TZNAME:SAKT
-DTSTART:19920119T020000
-RDATE:19920119T020000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Samarkand.ics b/libkcal/libical/zoneinfo/Asia/Samarkand.ics
deleted file mode 100644
index 5aa8f36b..00000000
--- a/libkcal/libical/zoneinfo/Asia/Samarkand.ics
+++ /dev/null
@@ -1,88 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Samarkand
-X-LIC-LOCATION:Asia/Samarkand
-BEGIN:STANDARD
-TZOFFSETFROM:+042712
-TZOFFSETTO:+0400
-TZNAME:SAMT
-DTSTART:19240502T000000
-RDATE:19240502T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0500
-TZNAME:SAMT
-DTSTART:19300621T000000
-RDATE:19300621T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0600
-TZNAME:SAMST
-DTSTART:19810401T000000
-RDATE:19810401T000000
-RDATE:19830401T000000
-RDATE:19840401T000000
-RDATE:19850331T020000
-RDATE:19860330T020000
-RDATE:19870329T020000
-RDATE:19880327T020000
-RDATE:19890326T020000
-RDATE:19900325T020000
-RDATE:19910331T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0600
-TZOFFSETTO:+0600
-TZNAME:TAST
-DTSTART:19811001T000000
-RDATE:19811001T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0600
-TZOFFSETTO:+0600
-TZNAME:SAMST
-DTSTART:19820401T000000
-RDATE:19820401T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0600
-TZOFFSETTO:+0500
-TZNAME:SAMT
-DTSTART:19821001T000000
-RDATE:19821001T000000
-RDATE:19831001T000000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0600
-TZOFFSETTO:+0600
-TZNAME:UZST
-DTSTART:19910901T000000
-RDATE:19910901T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0600
-TZOFFSETTO:+0500
-TZNAME:UZT
-DTSTART:19910929T030000
-RDATE:19910929T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0500
-TZNAME:UZT
-DTSTART:19920101T000000
-RDATE:19920101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Seoul.ics b/libkcal/libical/zoneinfo/Asia/Seoul.ics
deleted file mode 100644
index 98334fe1..00000000
--- a/libkcal/libical/zoneinfo/Asia/Seoul.ics
+++ /dev/null
@@ -1,69 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Seoul
-X-LIC-LOCATION:Asia/Seoul
-BEGIN:STANDARD
-TZOFFSETFROM:+082752
-TZOFFSETTO:+0830
-TZNAME:KST
-DTSTART:18900101T000000
-RDATE:18900101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0830
-TZOFFSETTO:+0900
-TZNAME:KST
-DTSTART:19041201T000000
-RDATE:19041201T000000
-RDATE:19320101T000000
-RDATE:19681001T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0900
-TZOFFSETTO:+0830
-TZNAME:KST
-DTSTART:19280101T000000
-RDATE:19280101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0900
-TZOFFSETTO:+0800
-TZNAME:KST
-DTSTART:19540321T000000
-RDATE:19540321T000000
-RDATE:19600913T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0800
-TZOFFSETTO:+0900
-TZNAME:KDT
-DTSTART:19600515T000000
-RDATE:19600515T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0800
-TZOFFSETTO:+0830
-TZNAME:KST
-DTSTART:19610810T000000
-RDATE:19610810T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0900
-TZOFFSETTO:+1000
-TZNAME:KDT
-DTSTART:19870510T000000
-RDATE:19870510T000000
-RDATE:19880508T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+1000
-TZOFFSETTO:+0900
-TZNAME:KST
-DTSTART:19871011T000000
-RDATE:19871011T000000
-RDATE:19881009T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Shanghai.ics b/libkcal/libical/zoneinfo/Asia/Shanghai.ics
deleted file mode 100644
index f58f2650..00000000
--- a/libkcal/libical/zoneinfo/Asia/Shanghai.ics
+++ /dev/null
@@ -1,50 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Shanghai
-X-LIC-LOCATION:Asia/Shanghai
-BEGIN:STANDARD
-TZOFFSETFROM:+080552
-TZOFFSETTO:+0800
-TZNAME:CST
-DTSTART:19280101T000000
-RDATE:19280101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0800
-TZOFFSETTO:+0900
-TZNAME:CDT
-DTSTART:19400603T000000
-RDATE:19400603T000000
-RDATE:19410316T000000
-RDATE:19860504T000000
-RDATE:19870412T000000
-RDATE:19880410T000000
-RDATE:19890416T000000
-RDATE:19900415T000000
-RDATE:19910414T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0900
-TZOFFSETTO:+0800
-TZNAME:CST
-DTSTART:19401001T000000
-RDATE:19401001T000000
-RDATE:19411001T000000
-RDATE:19860914T000000
-RDATE:19870913T000000
-RDATE:19880911T000000
-RDATE:19890917T000000
-RDATE:19900916T000000
-RDATE:19910915T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0800
-TZOFFSETTO:+0800
-TZNAME:CST
-DTSTART:19490101T000000
-RDATE:19490101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Singapore.ics b/libkcal/libical/zoneinfo/Asia/Singapore.ics
deleted file mode 100644
index ff2b6172..00000000
--- a/libkcal/libical/zoneinfo/Asia/Singapore.ics
+++ /dev/null
@@ -1,71 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Singapore
-X-LIC-LOCATION:Asia/Singapore
-BEGIN:STANDARD
-TZOFFSETFROM:+065525
-TZOFFSETTO:+065525
-TZNAME:SMT
-DTSTART:19010101T000000
-RDATE:19010101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+065525
-TZOFFSETTO:+0700
-TZNAME:MALT
-DTSTART:19050601T000000
-RDATE:19050601T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0700
-TZOFFSETTO:+0720
-TZNAME:MALST
-DTSTART:19330101T000000
-RDATE:19330101T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0720
-TZOFFSETTO:+0720
-TZNAME:MALT
-DTSTART:19360101T000000
-RDATE:19360101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0720
-TZOFFSETTO:+0730
-TZNAME:MALT
-DTSTART:19410901T000000
-RDATE:19410901T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0730
-TZOFFSETTO:+0900
-TZNAME:JST
-DTSTART:19420216T000000
-RDATE:19420216T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0900
-TZOFFSETTO:+0730
-TZNAME:MALT
-DTSTART:19450912T000000
-RDATE:19450912T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0730
-TZOFFSETTO:+0730
-TZNAME:SGT
-DTSTART:19650809T000000
-RDATE:19650809T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0730
-TZOFFSETTO:+0800
-TZNAME:SGT
-DTSTART:19820101T000000
-RDATE:19820101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Taipei.ics b/libkcal/libical/zoneinfo/Asia/Taipei.ics
deleted file mode 100644
index 327a5dc3..00000000
--- a/libkcal/libical/zoneinfo/Asia/Taipei.ics
+++ /dev/null
@@ -1,67 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Taipei
-X-LIC-LOCATION:Asia/Taipei
-BEGIN:STANDARD
-TZOFFSETFROM:+0806
-TZOFFSETTO:+0800
-TZNAME:CST
-DTSTART:18960101T000000
-RDATE:18960101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0800
-TZOFFSETTO:+0900
-TZNAME:CDT
-DTSTART:19450501T000000
-RDATE:19450501T000000
-RDATE:19460501T000000
-RDATE:19470501T000000
-RDATE:19480501T000000
-RDATE:19490501T000000
-RDATE:19500501T000000
-RDATE:19510501T000000
-RDATE:19520301T000000
-RDATE:19530401T000000
-RDATE:19540401T000000
-RDATE:19550401T000000
-RDATE:19560401T000000
-RDATE:19570401T000000
-RDATE:19580401T000000
-RDATE:19590401T000000
-RDATE:19600601T000000
-RDATE:19610601T000000
-RDATE:19740401T000000
-RDATE:19750401T000000
-RDATE:19800630T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0900
-TZOFFSETTO:+0800
-TZNAME:CST
-DTSTART:19451001T000000
-RDATE:19451001T000000
-RDATE:19461001T000000
-RDATE:19471001T000000
-RDATE:19481001T000000
-RDATE:19491001T000000
-RDATE:19501001T000000
-RDATE:19511001T000000
-RDATE:19521101T000000
-RDATE:19531101T000000
-RDATE:19541101T000000
-RDATE:19551001T000000
-RDATE:19561001T000000
-RDATE:19571001T000000
-RDATE:19581001T000000
-RDATE:19591001T000000
-RDATE:19601001T000000
-RDATE:19611001T000000
-RDATE:19741001T000000
-RDATE:19751001T000000
-RDATE:19800930T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Tashkent.ics b/libkcal/libical/zoneinfo/Asia/Tashkent.ics
deleted file mode 100644
index c4cfe3b3..00000000
--- a/libkcal/libical/zoneinfo/Asia/Tashkent.ics
+++ /dev/null
@@ -1,82 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Tashkent
-X-LIC-LOCATION:Asia/Tashkent
-BEGIN:STANDARD
-TZOFFSETFROM:+043712
-TZOFFSETTO:+0500
-TZNAME:TAST
-DTSTART:19240502T000000
-RDATE:19240502T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0600
-TZNAME:TAST
-DTSTART:19300621T000000
-RDATE:19300621T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0600
-TZOFFSETTO:+0700
-TZNAME:TASST
-DTSTART:19810401T000000
-RDATE:19810401T000000
-RDATE:19820401T000000
-RDATE:19830401T000000
-RDATE:19840401T000000
-RDATE:19850331T020000
-RDATE:19860330T020000
-RDATE:19870329T020000
-RDATE:19880327T020000
-RDATE:19890326T020000
-RDATE:19900325T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0700
-TZOFFSETTO:+0600
-TZNAME:TAST
-DTSTART:19811001T000000
-RDATE:19811001T000000
-RDATE:19821001T000000
-RDATE:19831001T000000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0600
-TZOFFSETTO:+0600
-TZNAME:TASST
-DTSTART:19910331T020000
-RDATE:19910331T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0600
-TZOFFSETTO:+0600
-TZNAME:UZST
-DTSTART:19910901T000000
-RDATE:19910901T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0600
-TZOFFSETTO:+0500
-TZNAME:UZT
-DTSTART:19910929T030000
-RDATE:19910929T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0500
-TZNAME:UZT
-DTSTART:19920101T000000
-RDATE:19920101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Tbilisi.ics b/libkcal/libical/zoneinfo/Asia/Tbilisi.ics
deleted file mode 100644
index f08ef59d..00000000
--- a/libkcal/libical/zoneinfo/Asia/Tbilisi.ics
+++ /dev/null
@@ -1,159 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Tbilisi
-X-LIC-LOCATION:Asia/Tbilisi
-BEGIN:STANDARD
-TZOFFSETFROM:+025916
-TZOFFSETTO:+025916
-TZNAME:TBMT
-DTSTART:18800101T000000
-RDATE:18800101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+025916
-TZOFFSETTO:+0300
-TZNAME:TBIT
-DTSTART:19240502T000000
-RDATE:19240502T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0400
-TZNAME:TBIT
-DTSTART:19570301T000000
-RDATE:19570301T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0500
-TZNAME:TBIST
-DTSTART:19810401T000000
-RDATE:19810401T000000
-RDATE:19820401T000000
-RDATE:19830401T000000
-RDATE:19840401T000000
-RDATE:19850331T020000
-RDATE:19860330T020000
-RDATE:19870329T020000
-RDATE:19880327T020000
-RDATE:19890326T020000
-RDATE:19900325T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0400
-TZNAME:TBIT
-DTSTART:19811001T000000
-RDATE:19811001T000000
-RDATE:19821001T000000
-RDATE:19831001T000000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0400
-TZNAME:TBIST
-DTSTART:19910331T020000
-RDATE:19910331T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0400
-TZNAME:GEST
-DTSTART:19910409T000000
-RDATE:19910409T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0300
-TZNAME:GET
-DTSTART:19910929T030000
-RDATE:19910929T030000
-RDATE:19920927T000000
-RDATE:19930926T000000
-RDATE:20041031T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0300
-TZNAME:GET
-DTSTART:19920101T000000
-RDATE:19920101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0400
-TZNAME:GEST
-DTSTART:19920329T000000
-RDATE:19920329T000000
-RDATE:19930328T000000
-RDATE:19940327T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0400
-TZNAME:GET
-DTSTART:19940925T000000
-RDATE:19940925T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0500
-TZNAME:GEST
-DTSTART:19950326T000000
-RDATE:19950326T000000
-RDATE:19960331T000000
-RDATE:19980329T000000
-RDATE:19990328T000000
-RDATE:20000326T000000
-RDATE:20010325T000000
-RDATE:20020331T000000
-RDATE:20030330T000000
-RDATE:20040328T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0400
-TZNAME:GET
-DTSTART:19950924T000000
-RDATE:19950924T000000
-RDATE:19971026T000000
-RDATE:19981025T000000
-RDATE:19991031T000000
-RDATE:20001029T000000
-RDATE:20011028T000000
-RDATE:20021027T000000
-RDATE:20031026T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0500
-TZNAME:GEST
-DTSTART:19961027T000000
-RDATE:19961027T000000
-RDATE:19970330T000000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0400
-TZNAME:GEST
-DTSTART:20040627T000000
-RDATE:20040627T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0400
-TZNAME:GET
-DTSTART:20050327T020000
-RDATE:20050327T020000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Tehran.ics b/libkcal/libical/zoneinfo/Asia/Tehran.ics
deleted file mode 100644
index d09cc9f3..00000000
--- a/libkcal/libical/zoneinfo/Asia/Tehran.ics
+++ /dev/null
@@ -1,156 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Tehran
-X-LIC-LOCATION:Asia/Tehran
-BEGIN:STANDARD
-TZOFFSETFROM:+032544
-TZOFFSETTO:+032544
-TZNAME:TMT
-DTSTART:19160101T000000
-RDATE:19160101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+032544
-TZOFFSETTO:+0330
-TZNAME:IRST
-DTSTART:19460101T000000
-RDATE:19460101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0330
-TZOFFSETTO:+0400
-TZNAME:IRST
-DTSTART:19771101T000000
-RDATE:19771101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0500
-TZNAME:IRDT
-DTSTART:19780321T000000
-RDATE:19780321T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0400
-TZNAME:IRST
-DTSTART:19781021T000000
-RDATE:19781021T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0330
-TZNAME:IRST
-DTSTART:19790101T000000
-RDATE:19790101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0330
-TZOFFSETTO:+0430
-TZNAME:IRDT
-DTSTART:19790321T000000
-RDATE:19790321T000000
-RDATE:19800321T000000
-RDATE:19910503T000000
-RDATE:19920322T000000
-RDATE:19930322T000000
-RDATE:19940322T000000
-RDATE:19950322T000000
-RDATE:19960321T000000
-RDATE:19970322T000000
-RDATE:19980322T000000
-RDATE:19990322T000000
-RDATE:20000321T000000
-RDATE:20010322T000000
-RDATE:20020322T000000
-RDATE:20030322T000000
-RDATE:20040321T000000
-RDATE:20050322T000000
-RDATE:20080321T000000
-RDATE:20090322T000000
-RDATE:20100322T000000
-RDATE:20110322T000000
-RDATE:20120321T000000
-RDATE:20130322T000000
-RDATE:20140322T000000
-RDATE:20150322T000000
-RDATE:20160321T000000
-RDATE:20170322T000000
-RDATE:20180322T000000
-RDATE:20190322T000000
-RDATE:20200321T000000
-RDATE:20210322T000000
-RDATE:20220322T000000
-RDATE:20230322T000000
-RDATE:20240321T000000
-RDATE:20250322T000000
-RDATE:20260322T000000
-RDATE:20270322T000000
-RDATE:20280321T000000
-RDATE:20290321T000000
-RDATE:20300322T000000
-RDATE:20310322T000000
-RDATE:20320321T000000
-RDATE:20330321T000000
-RDATE:20340322T000000
-RDATE:20350322T000000
-RDATE:20360321T000000
-RDATE:20370321T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0430
-TZOFFSETTO:+0330
-TZNAME:IRST
-DTSTART:19790919T000000
-RDATE:19790919T000000
-RDATE:19800923T000000
-RDATE:19910922T000000
-RDATE:19920922T000000
-RDATE:19930922T000000
-RDATE:19940922T000000
-RDATE:19950922T000000
-RDATE:19960921T000000
-RDATE:19970922T000000
-RDATE:19980922T000000
-RDATE:19990922T000000
-RDATE:20000921T000000
-RDATE:20010922T000000
-RDATE:20020922T000000
-RDATE:20030922T000000
-RDATE:20040921T000000
-RDATE:20050922T000000
-RDATE:20080921T000000
-RDATE:20090922T000000
-RDATE:20100922T000000
-RDATE:20110922T000000
-RDATE:20120921T000000
-RDATE:20130922T000000
-RDATE:20140922T000000
-RDATE:20150922T000000
-RDATE:20160921T000000
-RDATE:20170922T000000
-RDATE:20180922T000000
-RDATE:20190922T000000
-RDATE:20200921T000000
-RDATE:20210922T000000
-RDATE:20220922T000000
-RDATE:20230922T000000
-RDATE:20240921T000000
-RDATE:20250922T000000
-RDATE:20260922T000000
-RDATE:20270922T000000
-RDATE:20280921T000000
-RDATE:20290921T000000
-RDATE:20300922T000000
-RDATE:20310922T000000
-RDATE:20320921T000000
-RDATE:20330921T000000
-RDATE:20340922T000000
-RDATE:20350922T000000
-RDATE:20360921T000000
-RDATE:20370921T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Thimphu.ics b/libkcal/libical/zoneinfo/Asia/Thimphu.ics
deleted file mode 100644
index 1a6f5620..00000000
--- a/libkcal/libical/zoneinfo/Asia/Thimphu.ics
+++ /dev/null
@@ -1,22 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Thimphu
-X-LIC-LOCATION:Asia/Thimphu
-BEGIN:STANDARD
-TZOFFSETFROM:+055836
-TZOFFSETTO:+0530
-TZNAME:IST
-DTSTART:19470815T000000
-RDATE:19470815T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0530
-TZOFFSETTO:+0600
-TZNAME:BTT
-DTSTART:19871001T000000
-RDATE:19871001T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Tokyo.ics b/libkcal/libical/zoneinfo/Asia/Tokyo.ics
deleted file mode 100644
index e59ad3f2..00000000
--- a/libkcal/libical/zoneinfo/Asia/Tokyo.ics
+++ /dev/null
@@ -1,49 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Tokyo
-X-LIC-LOCATION:Asia/Tokyo
-BEGIN:STANDARD
-TZOFFSETFROM:+091859
-TZOFFSETTO:+0900
-TZNAME:JST
-DTSTART:18880101T001859
-RDATE:18880101T001859
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0900
-TZOFFSETTO:+0900
-TZNAME:CJT
-DTSTART:18960101T000000
-RDATE:18960101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0900
-TZOFFSETTO:+0900
-TZNAME:JST
-DTSTART:19380101T000000
-RDATE:19380101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0900
-TZOFFSETTO:+1000
-TZNAME:JDT
-DTSTART:19480502T020000
-RDATE:19480502T020000
-RDATE:19490403T020000
-RDATE:19500507T020000
-RDATE:19510506T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+1000
-TZOFFSETTO:+0900
-TZNAME:JST
-DTSTART:19480911T020000
-RDATE:19480911T020000
-RDATE:19490910T020000
-RDATE:19500909T020000
-RDATE:19510908T020000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Ulaanbaatar.ics b/libkcal/libical/zoneinfo/Asia/Ulaanbaatar.ics
deleted file mode 100644
index cd6d869a..00000000
--- a/libkcal/libical/zoneinfo/Asia/Ulaanbaatar.ics
+++ /dev/null
@@ -1,78 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Ulaanbaatar
-X-LIC-LOCATION:Asia/Ulaanbaatar
-BEGIN:STANDARD
-TZOFFSETFROM:+070732
-TZOFFSETTO:+0700
-TZNAME:ULAT
-DTSTART:19050801T000000
-RDATE:19050801T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0700
-TZOFFSETTO:+0800
-TZNAME:ULAT
-DTSTART:19780101T000000
-RDATE:19780101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0800
-TZOFFSETTO:+0900
-TZNAME:ULAST
-DTSTART:19830401T000000
-RDATE:19830401T000000
-RDATE:19840401T000000
-RDATE:19850331T000000
-RDATE:19860330T000000
-RDATE:19870329T000000
-RDATE:19880327T000000
-RDATE:19890326T000000
-RDATE:19900325T000000
-RDATE:19910331T000000
-RDATE:19920329T000000
-RDATE:19930328T000000
-RDATE:19940327T000000
-RDATE:19950326T000000
-RDATE:19960331T000000
-RDATE:19970330T000000
-RDATE:19980329T000000
-RDATE:20010428T020000
-RDATE:20020330T020000
-RDATE:20030329T020000
-RDATE:20040327T020000
-RDATE:20050326T020000
-RDATE:20060325T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0900
-TZOFFSETTO:+0800
-TZNAME:ULAT
-DTSTART:19831001T000000
-RDATE:19831001T000000
-RDATE:19840930T000000
-RDATE:19850929T000000
-RDATE:19860928T000000
-RDATE:19870927T000000
-RDATE:19880925T000000
-RDATE:19890924T000000
-RDATE:19900930T000000
-RDATE:19910929T000000
-RDATE:19920927T000000
-RDATE:19930926T000000
-RDATE:19940925T000000
-RDATE:19950924T000000
-RDATE:19960929T000000
-RDATE:19970928T000000
-RDATE:19980927T000000
-RDATE:20010929T020000
-RDATE:20020928T020000
-RDATE:20030927T020000
-RDATE:20040925T020000
-RDATE:20050924T020000
-RDATE:20060930T020000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Urumqi.ics b/libkcal/libical/zoneinfo/Asia/Urumqi.ics
deleted file mode 100644
index fc4318b2..00000000
--- a/libkcal/libical/zoneinfo/Asia/Urumqi.ics
+++ /dev/null
@@ -1,46 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Urumqi
-X-LIC-LOCATION:Asia/Urumqi
-BEGIN:STANDARD
-TZOFFSETFROM:+055020
-TZOFFSETTO:+0600
-TZNAME:URUT
-DTSTART:19280101T000000
-RDATE:19280101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0600
-TZOFFSETTO:+0800
-TZNAME:CST
-DTSTART:19800501T000000
-RDATE:19800501T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0800
-TZOFFSETTO:+0900
-TZNAME:CDT
-DTSTART:19860504T000000
-RDATE:19860504T000000
-RDATE:19870412T000000
-RDATE:19880410T000000
-RDATE:19890416T000000
-RDATE:19900415T000000
-RDATE:19910414T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0900
-TZOFFSETTO:+0800
-TZNAME:CST
-DTSTART:19860914T000000
-RDATE:19860914T000000
-RDATE:19870913T000000
-RDATE:19880911T000000
-RDATE:19890917T000000
-RDATE:19900916T000000
-RDATE:19910915T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Vientiane.ics b/libkcal/libical/zoneinfo/Asia/Vientiane.ics
deleted file mode 100644
index 2b6f1309..00000000
--- a/libkcal/libical/zoneinfo/Asia/Vientiane.ics
+++ /dev/null
@@ -1,36 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Vientiane
-X-LIC-LOCATION:Asia/Vientiane
-BEGIN:STANDARD
-TZOFFSETFROM:+065024
-TZOFFSETTO:+070620
-TZNAME:SMT
-DTSTART:19060609T000000
-RDATE:19060609T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+070620
-TZOFFSETTO:+0700
-TZNAME:ICT
-DTSTART:19110311T000100
-RDATE:19110311T000100
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0700
-TZOFFSETTO:+0800
-TZNAME:ICT
-DTSTART:19120501T000000
-RDATE:19120501T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0800
-TZOFFSETTO:+0700
-TZNAME:ICT
-DTSTART:19310501T000000
-RDATE:19310501T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Vladivostok.ics b/libkcal/libical/zoneinfo/Asia/Vladivostok.ics
deleted file mode 100644
index 313a97e0..00000000
--- a/libkcal/libical/zoneinfo/Asia/Vladivostok.ics
+++ /dev/null
@@ -1,88 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Vladivostok
-X-LIC-LOCATION:Asia/Vladivostok
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+1000
-TZOFFSETTO:+1100
-TZNAME:VLAST
-DTSTART:19930328T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+1100
-TZOFFSETTO:+1000
-TZNAME:VLAT
-DTSTART:19961027T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+084744
-TZOFFSETTO:+0900
-TZNAME:VLAT
-DTSTART:19221115T000000
-RDATE:19221115T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0900
-TZOFFSETTO:+1000
-TZNAME:VLAT
-DTSTART:19300621T000000
-RDATE:19300621T000000
-RDATE:19920119T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+1000
-TZOFFSETTO:+1100
-TZNAME:VLAST
-DTSTART:19810401T000000
-RDATE:19810401T000000
-RDATE:19820401T000000
-RDATE:19830401T000000
-RDATE:19840401T000000
-RDATE:19850331T020000
-RDATE:19860330T020000
-RDATE:19870329T020000
-RDATE:19880327T020000
-RDATE:19890326T020000
-RDATE:19900325T020000
-RDATE:19920328T230000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+1100
-TZOFFSETTO:+1000
-TZNAME:VLAT
-DTSTART:19811001T000000
-RDATE:19811001T000000
-RDATE:19821001T000000
-RDATE:19831001T000000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19920926T230000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+1000
-TZOFFSETTO:+1000
-TZNAME:VLASST
-DTSTART:19910331T020000
-RDATE:19910331T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+1000
-TZOFFSETTO:+0900
-TZNAME:VLAST
-DTSTART:19910929T030000
-RDATE:19910929T030000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Yakutsk.ics b/libkcal/libical/zoneinfo/Asia/Yakutsk.ics
deleted file mode 100644
index ee4c8500..00000000
--- a/libkcal/libical/zoneinfo/Asia/Yakutsk.ics
+++ /dev/null
@@ -1,88 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Yakutsk
-X-LIC-LOCATION:Asia/Yakutsk
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0900
-TZOFFSETTO:+1000
-TZNAME:YAKST
-DTSTART:19930328T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+1000
-TZOFFSETTO:+0900
-TZNAME:YAKT
-DTSTART:19961027T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+083840
-TZOFFSETTO:+0800
-TZNAME:YAKT
-DTSTART:19191215T000000
-RDATE:19191215T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0800
-TZOFFSETTO:+0900
-TZNAME:YAKT
-DTSTART:19300621T000000
-RDATE:19300621T000000
-RDATE:19920119T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0900
-TZOFFSETTO:+1000
-TZNAME:YAKST
-DTSTART:19810401T000000
-RDATE:19810401T000000
-RDATE:19820401T000000
-RDATE:19830401T000000
-RDATE:19840401T000000
-RDATE:19850331T020000
-RDATE:19860330T020000
-RDATE:19870329T020000
-RDATE:19880327T020000
-RDATE:19890326T020000
-RDATE:19900325T020000
-RDATE:19920328T230000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+1000
-TZOFFSETTO:+0900
-TZNAME:YAKT
-DTSTART:19811001T000000
-RDATE:19811001T000000
-RDATE:19821001T000000
-RDATE:19831001T000000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19920926T230000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0900
-TZOFFSETTO:+0900
-TZNAME:YAKST
-DTSTART:19910331T020000
-RDATE:19910331T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0900
-TZOFFSETTO:+0800
-TZNAME:YAKT
-DTSTART:19910929T030000
-RDATE:19910929T030000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Yekaterinburg.ics b/libkcal/libical/zoneinfo/Asia/Yekaterinburg.ics
deleted file mode 100644
index 1ef52437..00000000
--- a/libkcal/libical/zoneinfo/Asia/Yekaterinburg.ics
+++ /dev/null
@@ -1,106 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Yekaterinburg
-X-LIC-LOCATION:Asia/Yekaterinburg
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0600
-TZNAME:YEKST
-DTSTART:19930328T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0600
-TZOFFSETTO:+0500
-TZNAME:YEKT
-DTSTART:19961027T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+040224
-TZOFFSETTO:+0400
-TZNAME:SVET
-DTSTART:19190715T040000
-RDATE:19190715T040000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0500
-TZNAME:SVET
-DTSTART:19300621T000000
-RDATE:19300621T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0600
-TZNAME:SVEST
-DTSTART:19810401T000000
-RDATE:19810401T000000
-RDATE:19820401T000000
-RDATE:19830401T000000
-RDATE:19840401T000000
-RDATE:19850331T020000
-RDATE:19860330T020000
-RDATE:19870329T020000
-RDATE:19880327T020000
-RDATE:19890326T020000
-RDATE:19900325T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0600
-TZOFFSETTO:+0500
-TZNAME:SVET
-DTSTART:19811001T000000
-RDATE:19811001T000000
-RDATE:19821001T000000
-RDATE:19831001T000000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0500
-TZNAME:SVEST
-DTSTART:19910331T020000
-RDATE:19910331T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0400
-TZNAME:SVET
-DTSTART:19910929T030000
-RDATE:19910929T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0500
-TZNAME:YEKT
-DTSTART:19920119T020000
-RDATE:19920119T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0600
-TZNAME:YEKST
-DTSTART:19920328T230000
-RDATE:19920328T230000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0600
-TZOFFSETTO:+0500
-TZNAME:YEKT
-DTSTART:19920926T230000
-RDATE:19920926T230000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Asia/Yerevan.ics b/libkcal/libical/zoneinfo/Asia/Yerevan.ics
deleted file mode 100644
index 57093217..00000000
--- a/libkcal/libical/zoneinfo/Asia/Yerevan.ics
+++ /dev/null
@@ -1,110 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Asia/Yerevan
-X-LIC-LOCATION:Asia/Yerevan
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0500
-TZNAME:AMST
-DTSTART:19970330T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0400
-TZNAME:AMT
-DTSTART:19971026T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0258
-TZOFFSETTO:+0300
-TZNAME:YERT
-DTSTART:19240502T000000
-RDATE:19240502T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0400
-TZNAME:YERT
-DTSTART:19570301T000000
-RDATE:19570301T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0500
-TZNAME:YERST
-DTSTART:19810401T000000
-RDATE:19810401T000000
-RDATE:19820401T000000
-RDATE:19830401T000000
-RDATE:19840401T000000
-RDATE:19850331T020000
-RDATE:19860330T020000
-RDATE:19870329T020000
-RDATE:19880327T020000
-RDATE:19890326T020000
-RDATE:19900325T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0400
-TZNAME:YERT
-DTSTART:19811001T000000
-RDATE:19811001T000000
-RDATE:19821001T000000
-RDATE:19831001T000000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0400
-TZNAME:YERST
-DTSTART:19910331T020000
-RDATE:19910331T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0400
-TZNAME:AMST
-DTSTART:19910923T000000
-RDATE:19910923T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0300
-TZNAME:AMT
-DTSTART:19910929T030000
-RDATE:19910929T030000
-RDATE:19920926T230000
-RDATE:19930926T030000
-RDATE:19940925T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0400
-TZNAME:AMST
-DTSTART:19920328T230000
-RDATE:19920328T230000
-RDATE:19930328T020000
-RDATE:19940327T020000
-RDATE:19950326T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0400
-TZNAME:AMT
-DTSTART:19950924T030000
-RDATE:19950924T030000
-RDATE:19970101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Atlantic/Azores.ics b/libkcal/libical/zoneinfo/Atlantic/Azores.ics
deleted file mode 100644
index e5734da8..00000000
--- a/libkcal/libical/zoneinfo/Atlantic/Azores.ics
+++ /dev/null
@@ -1,223 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Atlantic/Azores
-X-LIC-LOCATION:Atlantic/Azores
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0100
-TZOFFSETTO:+0000
-TZNAME:AZOST
-DTSTART:19940327T000000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0000
-TZOFFSETTO:-0100
-TZNAME:AZOT
-DTSTART:19961027T010000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-014240
-TZOFFSETTO:-015432
-TZNAME:HMT
-DTSTART:18840101T000000
-RDATE:18840101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-015432
-TZOFFSETTO:-0200
-TZNAME:AZOT
-DTSTART:19110524T000000
-RDATE:19110524T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0100
-TZNAME:AZOST
-DTSTART:19160617T230000
-RDATE:19160617T230000
-RDATE:19170228T230000
-RDATE:19180301T230000
-RDATE:19190228T230000
-RDATE:19200229T230000
-RDATE:19210228T230000
-RDATE:19240416T230000
-RDATE:19260417T230000
-RDATE:19270409T230000
-RDATE:19280414T230000
-RDATE:19290420T230000
-RDATE:19310418T230000
-RDATE:19320402T230000
-RDATE:19340407T230000
-RDATE:19350330T230000
-RDATE:19360418T230000
-RDATE:19370403T230000
-RDATE:19380326T230000
-RDATE:19390415T230000
-RDATE:19400224T230000
-RDATE:19410405T230000
-RDATE:19420314T230000
-RDATE:19430313T230000
-RDATE:19440311T230000
-RDATE:19450310T230000
-RDATE:19460406T230000
-RDATE:19470406T020000
-RDATE:19480404T020000
-RDATE:19490403T020000
-RDATE:19510401T020000
-RDATE:19520406T020000
-RDATE:19530405T020000
-RDATE:19540404T020000
-RDATE:19550403T020000
-RDATE:19560401T020000
-RDATE:19570407T020000
-RDATE:19580406T020000
-RDATE:19590405T020000
-RDATE:19600403T020000
-RDATE:19610402T020000
-RDATE:19620401T020000
-RDATE:19630407T020000
-RDATE:19640405T020000
-RDATE:19650404T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0100
-TZOFFSETTO:-0200
-TZNAME:AZOT
-DTSTART:19161101T010000
-RDATE:19161101T010000
-RDATE:19171015T000000
-RDATE:19181015T000000
-RDATE:19191015T000000
-RDATE:19201015T000000
-RDATE:19211015T000000
-RDATE:19241015T000000
-RDATE:19261003T000000
-RDATE:19271002T000000
-RDATE:19281007T000000
-RDATE:19291006T000000
-RDATE:19311004T000000
-RDATE:19321002T000000
-RDATE:19341007T000000
-RDATE:19351006T000000
-RDATE:19361004T000000
-RDATE:19371003T000000
-RDATE:19381002T000000
-RDATE:19391119T000000
-RDATE:19401006T000000
-RDATE:19411006T000000
-RDATE:19421025T000000
-RDATE:19431031T000000
-RDATE:19441029T000000
-RDATE:19451028T000000
-RDATE:19461006T000000
-RDATE:19471005T030000
-RDATE:19481003T030000
-RDATE:19491002T030000
-RDATE:19511007T030000
-RDATE:19521005T030000
-RDATE:19531004T030000
-RDATE:19541003T030000
-RDATE:19551002T030000
-RDATE:19561007T030000
-RDATE:19571006T030000
-RDATE:19581005T030000
-RDATE:19591004T030000
-RDATE:19601002T030000
-RDATE:19611001T030000
-RDATE:19621007T030000
-RDATE:19631006T030000
-RDATE:19641004T030000
-RDATE:19651003T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0100
-TZOFFSETTO:+0000
-TZNAME:AZOMT
-DTSTART:19420425T230000
-RDATE:19420425T230000
-RDATE:19430417T230000
-RDATE:19440422T230000
-RDATE:19450421T230000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0000
-TZOFFSETTO:-0100
-TZNAME:AZOST
-DTSTART:19420816T000000
-RDATE:19420816T000000
-RDATE:19430829T000000
-RDATE:19440827T000000
-RDATE:19450826T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0100
-TZNAME:AZOT
-DTSTART:19660403T020000
-RDATE:19660403T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0100
-TZOFFSETTO:+0000
-TZNAME:AZOST
-DTSTART:19770327T000000
-RDATE:19770327T000000
-RDATE:19780402T000000
-RDATE:19790401T000000
-RDATE:19800330T000000
-RDATE:19810329T010000
-RDATE:19820328T010000
-RDATE:19830327T020000
-RDATE:19840325T010000
-RDATE:19850331T010000
-RDATE:19860330T010000
-RDATE:19870329T010000
-RDATE:19880327T010000
-RDATE:19890326T010000
-RDATE:19900325T010000
-RDATE:19910331T010000
-RDATE:19920329T010000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0000
-TZOFFSETTO:-0100
-TZNAME:AZOT
-DTSTART:19770925T010000
-RDATE:19770925T010000
-RDATE:19781001T010000
-RDATE:19790930T020000
-RDATE:19800928T020000
-RDATE:19810927T020000
-RDATE:19820926T020000
-RDATE:19830925T020000
-RDATE:19840930T020000
-RDATE:19850929T020000
-RDATE:19860928T020000
-RDATE:19870927T020000
-RDATE:19880925T020000
-RDATE:19890924T020000
-RDATE:19900930T020000
-RDATE:19910929T020000
-RDATE:19930926T010000
-RDATE:19940925T010000
-RDATE:19950924T010000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0000
-TZNAME:WET
-DTSTART:19920927T020000
-RDATE:19920927T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0000
-TZNAME:AZOST
-DTSTART:19930328T010000
-RDATE:19930328T010000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Atlantic/Bermuda.ics b/libkcal/libical/zoneinfo/Atlantic/Bermuda.ics
deleted file mode 100644
index dab6b812..00000000
--- a/libkcal/libical/zoneinfo/Atlantic/Bermuda.ics
+++ /dev/null
@@ -1,114 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Atlantic/Bermuda
-X-LIC-LOCATION:Atlantic/Bermuda
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:ADT
-DTSTART:20070311T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:20071104T020000
-RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-041904
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:19300101T020000
-RDATE:19300101T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:ADT
-DTSTART:19740428T020000
-RDATE:19740428T020000
-RDATE:19750427T020000
-RDATE:19760425T020000
-RDATE:19770424T020000
-RDATE:19780430T020000
-RDATE:19790429T020000
-RDATE:19800427T020000
-RDATE:19810426T020000
-RDATE:19820425T020000
-RDATE:19830424T020000
-RDATE:19840429T020000
-RDATE:19850428T020000
-RDATE:19860427T020000
-RDATE:19870405T020000
-RDATE:19880403T020000
-RDATE:19890402T020000
-RDATE:19900401T020000
-RDATE:19910407T020000
-RDATE:19920405T020000
-RDATE:19930404T020000
-RDATE:19940403T020000
-RDATE:19950402T020000
-RDATE:19960407T020000
-RDATE:19970406T020000
-RDATE:19980405T020000
-RDATE:19990404T020000
-RDATE:20000402T020000
-RDATE:20010401T020000
-RDATE:20020407T020000
-RDATE:20030406T020000
-RDATE:20040404T020000
-RDATE:20050403T020000
-RDATE:20060402T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:19741027T020000
-RDATE:19741027T020000
-RDATE:19751026T020000
-RDATE:19761031T020000
-RDATE:19771030T020000
-RDATE:19781029T020000
-RDATE:19791028T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-RDATE:19831030T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861026T020000
-RDATE:19871025T020000
-RDATE:19881030T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931031T020000
-RDATE:19941030T020000
-RDATE:19951029T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:19991031T020000
-RDATE:20001029T020000
-RDATE:20011028T020000
-RDATE:20021027T020000
-RDATE:20031026T020000
-RDATE:20041031T020000
-RDATE:20051030T020000
-RDATE:20061029T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0400
-TZNAME:AST
-DTSTART:19760101T000000
-RDATE:19760101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Atlantic/Canary.ics b/libkcal/libical/zoneinfo/Atlantic/Canary.ics
deleted file mode 100644
index 66c83a27..00000000
--- a/libkcal/libical/zoneinfo/Atlantic/Canary.ics
+++ /dev/null
@@ -1,72 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Atlantic/Canary
-X-LIC-LOCATION:Atlantic/Canary
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0100
-TZNAME:WEST
-DTSTART:19810329T010000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0000
-TZNAME:WET
-DTSTART:19961027T020000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-010136
-TZOFFSETTO:-0100
-TZNAME:CANT
-DTSTART:19220301T000000
-RDATE:19220301T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0100
-TZOFFSETTO:+0000
-TZNAME:WET
-DTSTART:19460930T010000
-RDATE:19460930T010000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0100
-TZNAME:WEST
-DTSTART:19800406T000000
-RDATE:19800406T000000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0100
-TZNAME:WEST
-DTSTART:19800928T010000
-RDATE:19800928T010000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0000
-TZNAME:WET
-DTSTART:19800928T020000
-RDATE:19800928T020000
-RDATE:19810927T020000
-RDATE:19820926T020000
-RDATE:19830925T020000
-RDATE:19840930T020000
-RDATE:19850929T020000
-RDATE:19860928T020000
-RDATE:19870927T020000
-RDATE:19880925T020000
-RDATE:19890924T020000
-RDATE:19900930T020000
-RDATE:19910929T020000
-RDATE:19920927T020000
-RDATE:19930926T020000
-RDATE:19940925T020000
-RDATE:19950924T020000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Atlantic/Cape_Verde.ics b/libkcal/libical/zoneinfo/Atlantic/Cape_Verde.ics
deleted file mode 100644
index 0d82f58e..00000000
--- a/libkcal/libical/zoneinfo/Atlantic/Cape_Verde.ics
+++ /dev/null
@@ -1,36 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Atlantic/Cape_Verde
-X-LIC-LOCATION:Atlantic/Cape_Verde
-BEGIN:STANDARD
-TZOFFSETFROM:-013404
-TZOFFSETTO:-0200
-TZNAME:CVT
-DTSTART:19070101T000000
-RDATE:19070101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0100
-TZNAME:CVST
-DTSTART:19420901T000000
-RDATE:19420901T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0100
-TZOFFSETTO:-0200
-TZNAME:CVT
-DTSTART:19451015T000000
-RDATE:19451015T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0100
-TZNAME:CVT
-DTSTART:19751125T020000
-RDATE:19751125T020000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Atlantic/Faroe.ics b/libkcal/libical/zoneinfo/Atlantic/Faroe.ics
deleted file mode 100644
index 56820c51..00000000
--- a/libkcal/libical/zoneinfo/Atlantic/Faroe.ics
+++ /dev/null
@@ -1,57 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Atlantic/Faroe
-X-LIC-LOCATION:Atlantic/Faroe
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0100
-TZNAME:WEST
-DTSTART:19810329T010000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0000
-TZNAME:WET
-DTSTART:19961027T020000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-002704
-TZOFFSETTO:+0000
-TZNAME:WET
-DTSTART:19080111T000000
-RDATE:19080111T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0000
-TZNAME:WET
-DTSTART:19810101T000000
-RDATE:19810101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0000
-TZNAME:WET
-DTSTART:19810927T020000
-RDATE:19810927T020000
-RDATE:19820926T020000
-RDATE:19830925T020000
-RDATE:19840930T020000
-RDATE:19850929T020000
-RDATE:19860928T020000
-RDATE:19870927T020000
-RDATE:19880925T020000
-RDATE:19890924T020000
-RDATE:19900930T020000
-RDATE:19910929T020000
-RDATE:19920927T020000
-RDATE:19930926T020000
-RDATE:19940925T020000
-RDATE:19950924T020000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Atlantic/Jan_Mayen.ics b/libkcal/libical/zoneinfo/Atlantic/Jan_Mayen.ics
deleted file mode 100644
index eb92a1e9..00000000
--- a/libkcal/libical/zoneinfo/Atlantic/Jan_Mayen.ics
+++ /dev/null
@@ -1,89 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20071016_1/Atlantic/Jan_Mayen
-X-LIC-LOCATION:Atlantic/Jan_Mayen
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19810329T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19961027T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0043
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:18950101T000000
-RDATE:18950101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19160522T010000
-RDATE:19160522T010000
-RDATE:19400810T230000
-RDATE:19430329T020000
-RDATE:19440403T020000
-RDATE:19450402T020000
-RDATE:19590315T020000
-RDATE:19600320T020000
-RDATE:19610319T020000
-RDATE:19620318T020000
-RDATE:19630317T020000
-RDATE:19640315T020000
-RDATE:19650425T020000
-RDATE:19800406T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19160930T000000
-RDATE:19160930T000000
-RDATE:19421102T030000
-RDATE:19431004T030000
-RDATE:19441002T030000
-RDATE:19451001T030000
-RDATE:19590920T030000
-RDATE:19600918T030000
-RDATE:19610917T030000
-RDATE:19620916T030000
-RDATE:19630915T030000
-RDATE:19640920T030000
-RDATE:19650919T030000
-RDATE:19800928T030000
-RDATE:19810927T030000
-RDATE:19820926T030000
-RDATE:19830925T030000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19910929T030000
-RDATE:19920927T030000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19800101T000000
-RDATE:19800101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Atlantic/Madeira.ics b/libkcal/libical/zoneinfo/Atlantic/Madeira.ics
deleted file mode 100644
index 7c60c58b..00000000
--- a/libkcal/libical/zoneinfo/Atlantic/Madeira.ics
+++ /dev/null
@@ -1,201 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Atlantic/Madeira
-X-LIC-LOCATION:Atlantic/Madeira
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0100
-TZNAME:WEST
-DTSTART:19840325T010000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0000
-TZNAME:WET
-DTSTART:19961027T020000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-010736
-TZOFFSETTO:-010736
-TZNAME:FMT
-DTSTART:18840101T000000
-RDATE:18840101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-010736
-TZOFFSETTO:-0100
-TZNAME:MADT
-DTSTART:19110524T000000
-RDATE:19110524T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0100
-TZOFFSETTO:+0000
-TZNAME:MADST
-DTSTART:19160617T230000
-RDATE:19160617T230000
-RDATE:19170228T230000
-RDATE:19180301T230000
-RDATE:19190228T230000
-RDATE:19200229T230000
-RDATE:19210228T230000
-RDATE:19240416T230000
-RDATE:19260417T230000
-RDATE:19270409T230000
-RDATE:19280414T230000
-RDATE:19290420T230000
-RDATE:19310418T230000
-RDATE:19320402T230000
-RDATE:19340407T230000
-RDATE:19350330T230000
-RDATE:19360418T230000
-RDATE:19370403T230000
-RDATE:19380326T230000
-RDATE:19390415T230000
-RDATE:19400224T230000
-RDATE:19410405T230000
-RDATE:19420314T230000
-RDATE:19430313T230000
-RDATE:19440311T230000
-RDATE:19450310T230000
-RDATE:19460406T230000
-RDATE:19470406T020000
-RDATE:19480404T020000
-RDATE:19490403T020000
-RDATE:19510401T020000
-RDATE:19520406T020000
-RDATE:19530405T020000
-RDATE:19540404T020000
-RDATE:19550403T020000
-RDATE:19560401T020000
-RDATE:19570407T020000
-RDATE:19580406T020000
-RDATE:19590405T020000
-RDATE:19600403T020000
-RDATE:19610402T020000
-RDATE:19620401T020000
-RDATE:19630407T020000
-RDATE:19640405T020000
-RDATE:19650404T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0000
-TZOFFSETTO:-0100
-TZNAME:MADT
-DTSTART:19161101T010000
-RDATE:19161101T010000
-RDATE:19171015T000000
-RDATE:19181015T000000
-RDATE:19191015T000000
-RDATE:19201015T000000
-RDATE:19211015T000000
-RDATE:19241015T000000
-RDATE:19261003T000000
-RDATE:19271002T000000
-RDATE:19281007T000000
-RDATE:19291006T000000
-RDATE:19311004T000000
-RDATE:19321002T000000
-RDATE:19341007T000000
-RDATE:19351006T000000
-RDATE:19361004T000000
-RDATE:19371003T000000
-RDATE:19381002T000000
-RDATE:19391119T000000
-RDATE:19401006T000000
-RDATE:19411006T000000
-RDATE:19421025T000000
-RDATE:19431031T000000
-RDATE:19441029T000000
-RDATE:19451028T000000
-RDATE:19461006T000000
-RDATE:19471005T030000
-RDATE:19481003T030000
-RDATE:19491002T030000
-RDATE:19511007T030000
-RDATE:19521005T030000
-RDATE:19531004T030000
-RDATE:19541003T030000
-RDATE:19551002T030000
-RDATE:19561007T030000
-RDATE:19571006T030000
-RDATE:19581005T030000
-RDATE:19591004T030000
-RDATE:19601002T030000
-RDATE:19611001T030000
-RDATE:19621007T030000
-RDATE:19631006T030000
-RDATE:19641004T030000
-RDATE:19651003T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0100
-TZNAME:MADMT
-DTSTART:19420425T230000
-RDATE:19420425T230000
-RDATE:19430417T230000
-RDATE:19440422T230000
-RDATE:19450421T230000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0000
-TZNAME:MADST
-DTSTART:19420816T000000
-RDATE:19420816T000000
-RDATE:19430829T000000
-RDATE:19440827T000000
-RDATE:19450826T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0100
-TZOFFSETTO:+0000
-TZNAME:WET
-DTSTART:19660403T020000
-RDATE:19660403T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0100
-TZNAME:WEST
-DTSTART:19770327T000000
-RDATE:19770327T000000
-RDATE:19780402T000000
-RDATE:19790401T000000
-RDATE:19800330T000000
-RDATE:19810329T010000
-RDATE:19820328T010000
-RDATE:19830327T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0000
-TZNAME:WET
-DTSTART:19770925T010000
-RDATE:19770925T010000
-RDATE:19781001T010000
-RDATE:19790930T020000
-RDATE:19800928T020000
-RDATE:19810927T020000
-RDATE:19820926T020000
-RDATE:19830925T020000
-RDATE:19840930T020000
-RDATE:19850929T020000
-RDATE:19860928T020000
-RDATE:19870927T020000
-RDATE:19880925T020000
-RDATE:19890924T020000
-RDATE:19900930T020000
-RDATE:19910929T020000
-RDATE:19920927T020000
-RDATE:19930926T020000
-RDATE:19940925T020000
-RDATE:19950924T020000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Atlantic/Reykjavik.ics b/libkcal/libical/zoneinfo/Atlantic/Reykjavik.ics
deleted file mode 100644
index adbde80f..00000000
--- a/libkcal/libical/zoneinfo/Atlantic/Reykjavik.ics
+++ /dev/null
@@ -1,103 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Atlantic/Reykjavik
-X-LIC-LOCATION:Atlantic/Reykjavik
-BEGIN:STANDARD
-TZOFFSETFROM:-012724
-TZOFFSETTO:-012748
-TZNAME:RMT
-DTSTART:18370101T000000
-RDATE:18370101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-012748
-TZOFFSETTO:-0100
-TZNAME:IST
-DTSTART:19080101T000000
-RDATE:19080101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0100
-TZOFFSETTO:+0000
-TZNAME:ISST
-DTSTART:19170219T230000
-RDATE:19170219T230000
-RDATE:19180219T230000
-RDATE:19390429T230000
-RDATE:19400225T020000
-RDATE:19410302T010000
-RDATE:19420308T010000
-RDATE:19430307T010000
-RDATE:19440305T010000
-RDATE:19450304T010000
-RDATE:19460303T010000
-RDATE:19470406T010000
-RDATE:19480404T010000
-RDATE:19490403T010000
-RDATE:19500402T010000
-RDATE:19510401T010000
-RDATE:19520406T010000
-RDATE:19530405T010000
-RDATE:19540404T010000
-RDATE:19550403T010000
-RDATE:19560401T010000
-RDATE:19570407T010000
-RDATE:19580406T010000
-RDATE:19590405T010000
-RDATE:19600403T010000
-RDATE:19610402T010000
-RDATE:19620401T010000
-RDATE:19630407T010000
-RDATE:19640405T010000
-RDATE:19650404T010000
-RDATE:19660403T010000
-RDATE:19670402T010000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0000
-TZOFFSETTO:-0100
-TZNAME:IST
-DTSTART:19171021T010000
-RDATE:19171021T010000
-RDATE:19181116T010000
-RDATE:19391129T020000
-RDATE:19401103T020000
-RDATE:19411102T020000
-RDATE:19421025T020000
-RDATE:19431024T020000
-RDATE:19441022T020000
-RDATE:19451028T020000
-RDATE:19461027T020000
-RDATE:19471026T020000
-RDATE:19481024T020000
-RDATE:19491030T020000
-RDATE:19501022T020000
-RDATE:19511028T020000
-RDATE:19521026T020000
-RDATE:19531025T020000
-RDATE:19541024T020000
-RDATE:19551023T020000
-RDATE:19561028T020000
-RDATE:19571027T020000
-RDATE:19581026T020000
-RDATE:19591025T020000
-RDATE:19601023T020000
-RDATE:19611022T020000
-RDATE:19621028T020000
-RDATE:19631027T020000
-RDATE:19641025T020000
-RDATE:19651024T020000
-RDATE:19661023T020000
-RDATE:19671029T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0100
-TZOFFSETTO:+0000
-TZNAME:GMT
-DTSTART:19680407T010000
-RDATE:19680407T010000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Atlantic/South_Georgia.ics b/libkcal/libical/zoneinfo/Atlantic/South_Georgia.ics
deleted file mode 100644
index 0c6baa90..00000000
--- a/libkcal/libical/zoneinfo/Atlantic/South_Georgia.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Atlantic/South_Georgia
-X-LIC-LOCATION:Atlantic/South_Georgia
-BEGIN:STANDARD
-TZOFFSETFROM:-022608
-TZOFFSETTO:-0200
-TZNAME:GST
-DTSTART:18900101T000000
-RDATE:18900101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Atlantic/St_Helena.ics b/libkcal/libical/zoneinfo/Atlantic/St_Helena.ics
deleted file mode 100644
index c61644bd..00000000
--- a/libkcal/libical/zoneinfo/Atlantic/St_Helena.ics
+++ /dev/null
@@ -1,22 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Atlantic/St_Helena
-X-LIC-LOCATION:Atlantic/St_Helena
-BEGIN:STANDARD
-TZOFFSETFROM:-002248
-TZOFFSETTO:-002248
-TZNAME:JMT
-DTSTART:18900101T000000
-RDATE:18900101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-002248
-TZOFFSETTO:+0000
-TZNAME:GMT
-DTSTART:19510101T000000
-RDATE:19510101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Atlantic/Stanley.ics b/libkcal/libical/zoneinfo/Atlantic/Stanley.ics
deleted file mode 100644
index 08e74197..00000000
--- a/libkcal/libical/zoneinfo/Atlantic/Stanley.ics
+++ /dev/null
@@ -1,120 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Atlantic/Stanley
-X-LIC-LOCATION:Atlantic/Stanley
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:FKT
-DTSTART:20010415T020000
-RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=3SU
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:FKST
-DTSTART:20010902T020000
-RRULE:FREQ=YEARLY;BYMONTH=9;BYDAY=1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-035124
-TZOFFSETTO:-035124
-TZNAME:SMT
-DTSTART:18900101T000000
-RDATE:18900101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-035124
-TZOFFSETTO:-0400
-TZNAME:FKT
-DTSTART:19120312T000000
-RDATE:19120312T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:FKST
-DTSTART:19370926T000000
-RDATE:19370926T000000
-RDATE:19380925T000000
-RDATE:19391001T000000
-RDATE:19400929T000000
-RDATE:19410928T000000
-RDATE:19420927T000000
-RDATE:19860914T000000
-RDATE:19870913T000000
-RDATE:19880911T000000
-RDATE:19890910T000000
-RDATE:19900909T000000
-RDATE:19910915T000000
-RDATE:19920913T000000
-RDATE:19930912T000000
-RDATE:19940911T000000
-RDATE:19950910T000000
-RDATE:19960915T000000
-RDATE:19970914T000000
-RDATE:19980913T000000
-RDATE:19990912T000000
-RDATE:20000910T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0400
-TZNAME:FKT
-DTSTART:19380320T000000
-RDATE:19380320T000000
-RDATE:19390319T000000
-RDATE:19400324T000000
-RDATE:19410323T000000
-RDATE:19420322T000000
-RDATE:19430101T000000
-RDATE:19860420T000000
-RDATE:19870419T000000
-RDATE:19880417T000000
-RDATE:19890416T000000
-RDATE:19900422T000000
-RDATE:19910421T000000
-RDATE:19920419T000000
-RDATE:19930418T000000
-RDATE:19940417T000000
-RDATE:19950416T000000
-RDATE:19960421T000000
-RDATE:19970420T000000
-RDATE:19980419T000000
-RDATE:19990418T000000
-RDATE:20000416T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0400
-TZOFFSETTO:-0300
-TZNAME:FKT
-DTSTART:19830501T000000
-RDATE:19830501T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0200
-TZNAME:FKST
-DTSTART:19830925T000000
-RDATE:19830925T000000
-RDATE:19840916T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0200
-TZOFFSETTO:-0300
-TZNAME:FKT
-DTSTART:19840429T000000
-RDATE:19840429T000000
-RDATE:19850428T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0300
-TZNAME:FKST
-DTSTART:19850915T000000
-RDATE:19850915T000000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Australia/Adelaide.ics b/libkcal/libical/zoneinfo/Australia/Adelaide.ics
deleted file mode 100644
index e842a0c0..00000000
--- a/libkcal/libical/zoneinfo/Australia/Adelaide.ics
+++ /dev/null
@@ -1,136 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Australia/Adelaide
-X-LIC-LOCATION:Australia/Adelaide
-BEGIN:STANDARD
-TZOFFSETFROM:+1030
-TZOFFSETTO:+0930
-TZNAME:CST
-DTSTART:20080406T030000
-RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0930
-TZOFFSETTO:+1030
-TZNAME:CST
-DTSTART:20081005T020000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+091420
-TZOFFSETTO:+0900
-TZNAME:CST
-DTSTART:18950201T000000
-RDATE:18950201T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0900
-TZOFFSETTO:+0930
-TZNAME:CST
-DTSTART:18990501T000000
-RDATE:18990501T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0930
-TZOFFSETTO:+1030
-TZNAME:CST
-DTSTART:19170101T000100
-RDATE:19170101T000100
-RDATE:19420101T020000
-RDATE:19420927T020000
-RDATE:19431003T020000
-RDATE:19711031T020000
-RDATE:19721029T020000
-RDATE:19731028T020000
-RDATE:19741027T020000
-RDATE:19751026T020000
-RDATE:19761031T020000
-RDATE:19771030T020000
-RDATE:19781029T020000
-RDATE:19791028T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-RDATE:19831030T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861019T020000
-RDATE:19871025T020000
-RDATE:19881030T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931031T020000
-RDATE:19941030T020000
-RDATE:19951029T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:19991031T020000
-RDATE:20001029T020000
-RDATE:20011028T020000
-RDATE:20021027T020000
-RDATE:20031026T020000
-RDATE:20041031T020000
-RDATE:20051030T020000
-RDATE:20061029T020000
-RDATE:20071028T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+1030
-TZOFFSETTO:+0930
-TZNAME:CST
-DTSTART:19170325T020000
-RDATE:19170325T020000
-RDATE:19420329T020000
-RDATE:19430328T020000
-RDATE:19440326T020000
-RDATE:19720227T030000
-RDATE:19730304T030000
-RDATE:19740303T030000
-RDATE:19750302T030000
-RDATE:19760307T030000
-RDATE:19770306T030000
-RDATE:19780305T030000
-RDATE:19790304T030000
-RDATE:19800302T030000
-RDATE:19810301T030000
-RDATE:19820307T030000
-RDATE:19830306T030000
-RDATE:19840304T030000
-RDATE:19850303T030000
-RDATE:19860316T030000
-RDATE:19870315T030000
-RDATE:19880320T030000
-RDATE:19890319T030000
-RDATE:19900318T030000
-RDATE:19910303T030000
-RDATE:19920322T030000
-RDATE:19930307T030000
-RDATE:19940320T030000
-RDATE:19950326T030000
-RDATE:19960331T030000
-RDATE:19970330T030000
-RDATE:19980329T030000
-RDATE:19990328T030000
-RDATE:20000326T030000
-RDATE:20010325T030000
-RDATE:20020331T030000
-RDATE:20030330T030000
-RDATE:20040328T030000
-RDATE:20050327T030000
-RDATE:20060402T030000
-RDATE:20070325T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0930
-TZOFFSETTO:+0930
-TZNAME:CST
-DTSTART:19710101T000000
-RDATE:19710101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Australia/Brisbane.ics b/libkcal/libical/zoneinfo/Australia/Brisbane.ics
deleted file mode 100644
index d5fd2700..00000000
--- a/libkcal/libical/zoneinfo/Australia/Brisbane.ics
+++ /dev/null
@@ -1,50 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Australia/Brisbane
-X-LIC-LOCATION:Australia/Brisbane
-BEGIN:STANDARD
-TZOFFSETFROM:+101208
-TZOFFSETTO:+1000
-TZNAME:EST
-DTSTART:18950101T000000
-RDATE:18950101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+1000
-TZOFFSETTO:+1100
-TZNAME:EST
-DTSTART:19170101T000100
-RDATE:19170101T000100
-RDATE:19420101T020000
-RDATE:19420927T020000
-RDATE:19431003T020000
-RDATE:19711031T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+1100
-TZOFFSETTO:+1000
-TZNAME:EST
-DTSTART:19170325T020000
-RDATE:19170325T020000
-RDATE:19420329T020000
-RDATE:19430328T020000
-RDATE:19440326T020000
-RDATE:19720227T030000
-RDATE:19900304T030000
-RDATE:19910303T030000
-RDATE:19920301T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+1000
-TZOFFSETTO:+1000
-TZNAME:EST
-DTSTART:19710101T000000
-RDATE:19710101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Australia/Broken_Hill.ics b/libkcal/libical/zoneinfo/Australia/Broken_Hill.ics
deleted file mode 100644
index 16282c68..00000000
--- a/libkcal/libical/zoneinfo/Australia/Broken_Hill.ics
+++ /dev/null
@@ -1,150 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Australia/Broken_Hill
-X-LIC-LOCATION:Australia/Broken_Hill
-BEGIN:STANDARD
-TZOFFSETFROM:+1030
-TZOFFSETTO:+0930
-TZNAME:CST
-DTSTART:20080406T030000
-RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0930
-TZOFFSETTO:+1030
-TZNAME:CST
-DTSTART:20081005T020000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+092548
-TZOFFSETTO:+1000
-TZNAME:EST
-DTSTART:18950201T000000
-RDATE:18950201T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+1000
-TZOFFSETTO:+0900
-TZNAME:CST
-DTSTART:18960823T000000
-RDATE:18960823T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0900
-TZOFFSETTO:+0930
-TZNAME:CST
-DTSTART:18990501T000000
-RDATE:18990501T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0930
-TZOFFSETTO:+1030
-TZNAME:CST
-DTSTART:19170101T000100
-RDATE:19170101T000100
-RDATE:19420101T020000
-RDATE:19420927T020000
-RDATE:19431003T020000
-RDATE:19711031T020000
-RDATE:19721029T020000
-RDATE:19731028T020000
-RDATE:19741027T020000
-RDATE:19751026T020000
-RDATE:19761031T020000
-RDATE:19771030T020000
-RDATE:19781029T020000
-RDATE:19791028T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-RDATE:19831030T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861019T020000
-RDATE:19871025T020000
-RDATE:19881030T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931031T020000
-RDATE:19941030T020000
-RDATE:19951029T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:19991031T020000
-RDATE:20001029T020000
-RDATE:20011028T020000
-RDATE:20021027T020000
-RDATE:20031026T020000
-RDATE:20041031T020000
-RDATE:20051030T020000
-RDATE:20061029T020000
-RDATE:20071028T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+1030
-TZOFFSETTO:+0930
-TZNAME:CST
-DTSTART:19170325T020000
-RDATE:19170325T020000
-RDATE:19420329T020000
-RDATE:19430328T020000
-RDATE:19440326T020000
-RDATE:19720227T030000
-RDATE:19730304T030000
-RDATE:19740303T030000
-RDATE:19750302T030000
-RDATE:19760307T030000
-RDATE:19770306T030000
-RDATE:19780305T030000
-RDATE:19790304T030000
-RDATE:19800302T030000
-RDATE:19810301T030000
-RDATE:19820404T030000
-RDATE:19830306T030000
-RDATE:19840304T030000
-RDATE:19850303T030000
-RDATE:19860316T030000
-RDATE:19870315T030000
-RDATE:19880320T030000
-RDATE:19890319T030000
-RDATE:19900304T030000
-RDATE:19910303T030000
-RDATE:19920301T030000
-RDATE:19930307T030000
-RDATE:19940306T030000
-RDATE:19950305T030000
-RDATE:19960331T030000
-RDATE:19970330T030000
-RDATE:19980329T030000
-RDATE:19990328T030000
-RDATE:20000326T030000
-RDATE:20010325T030000
-RDATE:20020331T030000
-RDATE:20030330T030000
-RDATE:20040328T030000
-RDATE:20050327T030000
-RDATE:20060402T030000
-RDATE:20070325T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0930
-TZOFFSETTO:+0930
-TZNAME:CST
-DTSTART:19710101T000000
-RDATE:19710101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+1030
-TZOFFSETTO:+1030
-TZNAME:CST
-DTSTART:20000101T000000
-RDATE:20000101T000000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Australia/Currie.ics b/libkcal/libical/zoneinfo/Australia/Currie.ics
deleted file mode 100644
index a6501384..00000000
--- a/libkcal/libical/zoneinfo/Australia/Currie.ics
+++ /dev/null
@@ -1,129 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Australia/Currie
-X-LIC-LOCATION:Australia/Currie
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+1000
-TZOFFSETTO:+1100
-TZNAME:EST
-DTSTART:20011007T020000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+1000
-TZOFFSETTO:+1000
-TZNAME:EST
-DTSTART:20080406T020000
-RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+093528
-TZOFFSETTO:+1000
-TZNAME:EST
-DTSTART:18950901T000000
-RDATE:18950901T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+1000
-TZOFFSETTO:+1100
-TZNAME:EST
-DTSTART:19161001T020000
-RDATE:19161001T020000
-RDATE:19420101T020000
-RDATE:19420927T020000
-RDATE:19431003T020000
-RDATE:19711031T020000
-RDATE:19721029T020000
-RDATE:19731028T020000
-RDATE:19741027T020000
-RDATE:19751026T020000
-RDATE:19761031T020000
-RDATE:19771030T020000
-RDATE:19781029T020000
-RDATE:19791028T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-RDATE:19831030T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861019T020000
-RDATE:19871025T020000
-RDATE:19881030T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911006T020000
-RDATE:19921004T020000
-RDATE:19931003T020000
-RDATE:19941002T020000
-RDATE:19951001T020000
-RDATE:19961006T020000
-RDATE:19971005T020000
-RDATE:19981004T020000
-RDATE:19991003T020000
-RDATE:20000827T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+1100
-TZOFFSETTO:+1100
-TZNAME:EST
-DTSTART:19170201T000000
-RDATE:19170201T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+1100
-TZOFFSETTO:+1000
-TZNAME:EST
-DTSTART:19170325T020000
-RDATE:19170325T020000
-RDATE:19420329T020000
-RDATE:19430328T020000
-RDATE:19440326T020000
-RDATE:19720227T030000
-RDATE:19730304T030000
-RDATE:19740303T030000
-RDATE:19750302T030000
-RDATE:19760307T030000
-RDATE:19770306T030000
-RDATE:19780305T030000
-RDATE:19790304T030000
-RDATE:19800302T030000
-RDATE:19810301T030000
-RDATE:19820328T030000
-RDATE:19830327T030000
-RDATE:19840304T030000
-RDATE:19850303T030000
-RDATE:19860302T030000
-RDATE:19870315T030000
-RDATE:19880320T030000
-RDATE:19890319T030000
-RDATE:19900318T030000
-RDATE:19910331T030000
-RDATE:19920329T030000
-RDATE:19930328T030000
-RDATE:19940327T030000
-RDATE:19950326T030000
-RDATE:19960331T030000
-RDATE:19970330T030000
-RDATE:19980329T030000
-RDATE:19990328T030000
-RDATE:20000326T030000
-RDATE:20010325T030000
-RDATE:20020331T030000
-RDATE:20030330T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+1000
-TZOFFSETTO:+1000
-TZNAME:EST
-DTSTART:19710701T000000
-RDATE:19710701T000000
-RDATE:20040328T020000
-RDATE:20050327T020000
-RDATE:20060402T020000
-RDATE:20070325T020000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Australia/Darwin.ics b/libkcal/libical/zoneinfo/Australia/Darwin.ics
deleted file mode 100644
index 9023bd23..00000000
--- a/libkcal/libical/zoneinfo/Australia/Darwin.ics
+++ /dev/null
@@ -1,42 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Australia/Darwin
-X-LIC-LOCATION:Australia/Darwin
-BEGIN:STANDARD
-TZOFFSETFROM:+084320
-TZOFFSETTO:+0900
-TZNAME:CST
-DTSTART:18950201T000000
-RDATE:18950201T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0900
-TZOFFSETTO:+0930
-TZNAME:CST
-DTSTART:18990501T000000
-RDATE:18990501T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0930
-TZOFFSETTO:+1030
-TZNAME:CST
-DTSTART:19170101T000100
-RDATE:19170101T000100
-RDATE:19420101T020000
-RDATE:19420927T020000
-RDATE:19431003T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+1030
-TZOFFSETTO:+0930
-TZNAME:CST
-DTSTART:19170325T020000
-RDATE:19170325T020000
-RDATE:19420329T020000
-RDATE:19430328T020000
-RDATE:19440326T020000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Australia/Eucla.ics b/libkcal/libical/zoneinfo/Australia/Eucla.ics
deleted file mode 100644
index f938227e..00000000
--- a/libkcal/libical/zoneinfo/Australia/Eucla.ics
+++ /dev/null
@@ -1,52 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Australia/Eucla
-X-LIC-LOCATION:Australia/Eucla
-BEGIN:STANDARD
-TZOFFSETFROM:+083528
-TZOFFSETTO:+0845
-TZNAME:CWST
-DTSTART:18951201T000000
-RDATE:18951201T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0845
-TZOFFSETTO:+0945
-TZNAME:CWST
-DTSTART:19170101T000100
-RDATE:19170101T000100
-RDATE:19420101T020000
-RDATE:19420927T020000
-RDATE:19741027T020000
-RDATE:19831030T020000
-RDATE:19911117T020000
-RDATE:20061203T020000
-RDATE:20071028T020000
-RDATE:20081026T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0945
-TZOFFSETTO:+0845
-TZNAME:CWST
-DTSTART:19170325T020000
-RDATE:19170325T020000
-RDATE:19420329T020000
-RDATE:19430328T020000
-RDATE:19750302T030000
-RDATE:19840304T030000
-RDATE:19920301T030000
-RDATE:20070325T030000
-RDATE:20080330T030000
-RDATE:20090329T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0845
-TZOFFSETTO:+0845
-TZNAME:CWST
-DTSTART:19430701T000000
-RDATE:19430701T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Australia/Hobart.ics b/libkcal/libical/zoneinfo/Australia/Hobart.ics
deleted file mode 100644
index 8e0e97f4..00000000
--- a/libkcal/libical/zoneinfo/Australia/Hobart.ics
+++ /dev/null
@@ -1,137 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Australia/Hobart
-X-LIC-LOCATION:Australia/Hobart
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+1000
-TZOFFSETTO:+1100
-TZNAME:EST
-DTSTART:20011007T020000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+1000
-TZOFFSETTO:+1000
-TZNAME:EST
-DTSTART:20080406T020000
-RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+094916
-TZOFFSETTO:+1000
-TZNAME:EST
-DTSTART:18950901T000000
-RDATE:18950901T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+1000
-TZOFFSETTO:+1100
-TZNAME:EST
-DTSTART:19161001T020000
-RDATE:19161001T020000
-RDATE:19420101T020000
-RDATE:19420927T020000
-RDATE:19431003T020000
-RDATE:19671001T020000
-RDATE:19681027T020000
-RDATE:19691026T020000
-RDATE:19701025T020000
-RDATE:19711031T020000
-RDATE:19721029T020000
-RDATE:19731028T020000
-RDATE:19741027T020000
-RDATE:19751026T020000
-RDATE:19761031T020000
-RDATE:19771030T020000
-RDATE:19781029T020000
-RDATE:19791028T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-RDATE:19831030T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861019T020000
-RDATE:19871025T020000
-RDATE:19881030T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911006T020000
-RDATE:19921004T020000
-RDATE:19931003T020000
-RDATE:19941002T020000
-RDATE:19951001T020000
-RDATE:19961006T020000
-RDATE:19971005T020000
-RDATE:19981004T020000
-RDATE:19991003T020000
-RDATE:20000827T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+1100
-TZOFFSETTO:+1100
-TZNAME:EST
-DTSTART:19170201T000000
-RDATE:19170201T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+1100
-TZOFFSETTO:+1000
-TZNAME:EST
-DTSTART:19170325T020000
-RDATE:19170325T020000
-RDATE:19420329T020000
-RDATE:19430328T020000
-RDATE:19440326T020000
-RDATE:19680331T030000
-RDATE:19690309T030000
-RDATE:19700308T030000
-RDATE:19710314T030000
-RDATE:19720227T030000
-RDATE:19730304T030000
-RDATE:19740303T030000
-RDATE:19750302T030000
-RDATE:19760307T030000
-RDATE:19770306T030000
-RDATE:19780305T030000
-RDATE:19790304T030000
-RDATE:19800302T030000
-RDATE:19810301T030000
-RDATE:19820328T030000
-RDATE:19830327T030000
-RDATE:19840304T030000
-RDATE:19850303T030000
-RDATE:19860302T030000
-RDATE:19870315T030000
-RDATE:19880320T030000
-RDATE:19890319T030000
-RDATE:19900318T030000
-RDATE:19910331T030000
-RDATE:19920329T030000
-RDATE:19930328T030000
-RDATE:19940327T030000
-RDATE:19950326T030000
-RDATE:19960331T030000
-RDATE:19970330T030000
-RDATE:19980329T030000
-RDATE:19990328T030000
-RDATE:20000326T030000
-RDATE:20010325T030000
-RDATE:20020331T030000
-RDATE:20030330T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+1000
-TZOFFSETTO:+1000
-TZNAME:EST
-DTSTART:19670101T000000
-RDATE:19670101T000000
-RDATE:20040328T020000
-RDATE:20050327T020000
-RDATE:20060402T020000
-RDATE:20070325T020000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Australia/Lindeman.ics b/libkcal/libical/zoneinfo/Australia/Lindeman.ics
deleted file mode 100644
index d1cb4f71..00000000
--- a/libkcal/libical/zoneinfo/Australia/Lindeman.ics
+++ /dev/null
@@ -1,55 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Australia/Lindeman
-X-LIC-LOCATION:Australia/Lindeman
-BEGIN:STANDARD
-TZOFFSETFROM:+095556
-TZOFFSETTO:+1000
-TZNAME:EST
-DTSTART:18950101T000000
-RDATE:18950101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+1000
-TZOFFSETTO:+1100
-TZNAME:EST
-DTSTART:19170101T000100
-RDATE:19170101T000100
-RDATE:19420101T020000
-RDATE:19420927T020000
-RDATE:19431003T020000
-RDATE:19711031T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931031T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+1100
-TZOFFSETTO:+1000
-TZNAME:EST
-DTSTART:19170325T020000
-RDATE:19170325T020000
-RDATE:19420329T020000
-RDATE:19430328T020000
-RDATE:19440326T020000
-RDATE:19720227T030000
-RDATE:19900304T030000
-RDATE:19910303T030000
-RDATE:19920301T030000
-RDATE:19930307T030000
-RDATE:19940306T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+1000
-TZOFFSETTO:+1000
-TZNAME:EST
-DTSTART:19710101T000000
-RDATE:19710101T000000
-RDATE:19920701T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Australia/Lord_Howe.ics b/libkcal/libical/zoneinfo/Australia/Lord_Howe.ics
deleted file mode 100644
index 75f33da0..00000000
--- a/libkcal/libical/zoneinfo/Australia/Lord_Howe.ics
+++ /dev/null
@@ -1,113 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Australia/Lord_Howe
-X-LIC-LOCATION:Australia/Lord_Howe
-BEGIN:STANDARD
-TZOFFSETFROM:+1100
-TZOFFSETTO:+1030
-TZNAME:LHST
-DTSTART:20080406T020000
-RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+1030
-TZOFFSETTO:+1100
-TZNAME:LHST
-DTSTART:20081005T020000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+103620
-TZOFFSETTO:+1000
-TZNAME:EST
-DTSTART:18950201T000000
-RDATE:18950201T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+1000
-TZOFFSETTO:+1030
-TZNAME:LHST
-DTSTART:19810301T000000
-RDATE:19810301T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+1030
-TZOFFSETTO:+1130
-TZNAME:LHST
-DTSTART:19811025T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-RDATE:19831030T020000
-RDATE:19841028T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+1130
-TZOFFSETTO:+1030
-TZNAME:LHST
-DTSTART:19820307T020000
-RDATE:19820307T020000
-RDATE:19830306T020000
-RDATE:19840304T020000
-RDATE:19850303T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+1030
-TZOFFSETTO:+1100
-TZNAME:LHST
-DTSTART:19851027T020000
-RDATE:19851027T020000
-RDATE:19861019T020000
-RDATE:19871025T020000
-RDATE:19881030T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931031T020000
-RDATE:19941030T020000
-RDATE:19951029T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:19991031T020000
-RDATE:20000827T020000
-RDATE:20011028T020000
-RDATE:20021027T020000
-RDATE:20031026T020000
-RDATE:20041031T020000
-RDATE:20051030T020000
-RDATE:20061029T020000
-RDATE:20071028T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+1100
-TZOFFSETTO:+1030
-TZNAME:LHST
-DTSTART:19860316T020000
-RDATE:19860316T020000
-RDATE:19870315T020000
-RDATE:19880320T020000
-RDATE:19890319T020000
-RDATE:19900304T020000
-RDATE:19910303T020000
-RDATE:19920301T020000
-RDATE:19930307T020000
-RDATE:19940306T020000
-RDATE:19950305T020000
-RDATE:19960331T020000
-RDATE:19970330T020000
-RDATE:19980329T020000
-RDATE:19990328T020000
-RDATE:20000326T020000
-RDATE:20010325T020000
-RDATE:20020331T020000
-RDATE:20030330T020000
-RDATE:20040328T020000
-RDATE:20050327T020000
-RDATE:20060402T020000
-RDATE:20070325T020000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Australia/Melbourne.ics b/libkcal/libical/zoneinfo/Australia/Melbourne.ics
deleted file mode 100644
index e1408a35..00000000
--- a/libkcal/libical/zoneinfo/Australia/Melbourne.ics
+++ /dev/null
@@ -1,129 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Australia/Melbourne
-X-LIC-LOCATION:Australia/Melbourne
-BEGIN:STANDARD
-TZOFFSETFROM:+1100
-TZOFFSETTO:+1000
-TZNAME:EST
-DTSTART:20080406T030000
-RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+1000
-TZOFFSETTO:+1100
-TZNAME:EST
-DTSTART:20081005T020000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+093952
-TZOFFSETTO:+1000
-TZNAME:EST
-DTSTART:18950201T000000
-RDATE:18950201T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+1000
-TZOFFSETTO:+1100
-TZNAME:EST
-DTSTART:19170101T000100
-RDATE:19170101T000100
-RDATE:19420101T020000
-RDATE:19420927T020000
-RDATE:19431003T020000
-RDATE:19711031T020000
-RDATE:19721029T020000
-RDATE:19731028T020000
-RDATE:19741027T020000
-RDATE:19751026T020000
-RDATE:19761031T020000
-RDATE:19771030T020000
-RDATE:19781029T020000
-RDATE:19791028T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-RDATE:19831030T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861019T020000
-RDATE:19871018T020000
-RDATE:19881030T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931031T020000
-RDATE:19941030T020000
-RDATE:19951029T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:19991031T020000
-RDATE:20000827T020000
-RDATE:20011028T020000
-RDATE:20021027T020000
-RDATE:20031026T020000
-RDATE:20041031T020000
-RDATE:20051030T020000
-RDATE:20061029T020000
-RDATE:20071028T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+1100
-TZOFFSETTO:+1000
-TZNAME:EST
-DTSTART:19170325T020000
-RDATE:19170325T020000
-RDATE:19420329T020000
-RDATE:19430328T020000
-RDATE:19440326T020000
-RDATE:19720227T030000
-RDATE:19730304T030000
-RDATE:19740303T030000
-RDATE:19750302T030000
-RDATE:19760307T030000
-RDATE:19770306T030000
-RDATE:19780305T030000
-RDATE:19790304T030000
-RDATE:19800302T030000
-RDATE:19810301T030000
-RDATE:19820307T030000
-RDATE:19830306T030000
-RDATE:19840304T030000
-RDATE:19850303T030000
-RDATE:19860316T030000
-RDATE:19870315T030000
-RDATE:19880320T030000
-RDATE:19890319T030000
-RDATE:19900318T030000
-RDATE:19910303T030000
-RDATE:19920301T030000
-RDATE:19930307T030000
-RDATE:19940306T030000
-RDATE:19950326T030000
-RDATE:19960331T030000
-RDATE:19970330T030000
-RDATE:19980329T030000
-RDATE:19990328T030000
-RDATE:20000326T030000
-RDATE:20010325T030000
-RDATE:20020331T030000
-RDATE:20030330T030000
-RDATE:20040328T030000
-RDATE:20050327T030000
-RDATE:20060402T030000
-RDATE:20070325T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+1000
-TZOFFSETTO:+1000
-TZNAME:EST
-DTSTART:19710101T000000
-RDATE:19710101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Australia/Perth.ics b/libkcal/libical/zoneinfo/Australia/Perth.ics
deleted file mode 100644
index 9202df18..00000000
--- a/libkcal/libical/zoneinfo/Australia/Perth.ics
+++ /dev/null
@@ -1,52 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Australia/Perth
-X-LIC-LOCATION:Australia/Perth
-BEGIN:STANDARD
-TZOFFSETFROM:+074324
-TZOFFSETTO:+0800
-TZNAME:WST
-DTSTART:18951201T000000
-RDATE:18951201T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0800
-TZOFFSETTO:+0900
-TZNAME:WST
-DTSTART:19170101T000100
-RDATE:19170101T000100
-RDATE:19420101T020000
-RDATE:19420927T020000
-RDATE:19741027T020000
-RDATE:19831030T020000
-RDATE:19911117T020000
-RDATE:20061203T020000
-RDATE:20071028T020000
-RDATE:20081026T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0900
-TZOFFSETTO:+0800
-TZNAME:WST
-DTSTART:19170325T020000
-RDATE:19170325T020000
-RDATE:19420329T020000
-RDATE:19430328T020000
-RDATE:19750302T030000
-RDATE:19840304T030000
-RDATE:19920301T030000
-RDATE:20070325T030000
-RDATE:20080330T030000
-RDATE:20090329T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0800
-TZOFFSETTO:+0800
-TZNAME:WST
-DTSTART:19430701T000000
-RDATE:19430701T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Australia/Sydney.ics b/libkcal/libical/zoneinfo/Australia/Sydney.ics
deleted file mode 100644
index 8c340a0a..00000000
--- a/libkcal/libical/zoneinfo/Australia/Sydney.ics
+++ /dev/null
@@ -1,129 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Australia/Sydney
-X-LIC-LOCATION:Australia/Sydney
-BEGIN:STANDARD
-TZOFFSETFROM:+1100
-TZOFFSETTO:+1000
-TZNAME:EST
-DTSTART:20080406T030000
-RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+1000
-TZOFFSETTO:+1100
-TZNAME:EST
-DTSTART:20081005T020000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+100452
-TZOFFSETTO:+1000
-TZNAME:EST
-DTSTART:18950201T000000
-RDATE:18950201T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+1000
-TZOFFSETTO:+1100
-TZNAME:EST
-DTSTART:19170101T000100
-RDATE:19170101T000100
-RDATE:19420101T020000
-RDATE:19420927T020000
-RDATE:19431003T020000
-RDATE:19711031T020000
-RDATE:19721029T020000
-RDATE:19731028T020000
-RDATE:19741027T020000
-RDATE:19751026T020000
-RDATE:19761031T020000
-RDATE:19771030T020000
-RDATE:19781029T020000
-RDATE:19791028T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-RDATE:19831030T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861019T020000
-RDATE:19871025T020000
-RDATE:19881030T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931031T020000
-RDATE:19941030T020000
-RDATE:19951029T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:19991031T020000
-RDATE:20000827T020000
-RDATE:20011028T020000
-RDATE:20021027T020000
-RDATE:20031026T020000
-RDATE:20041031T020000
-RDATE:20051030T020000
-RDATE:20061029T020000
-RDATE:20071028T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+1100
-TZOFFSETTO:+1000
-TZNAME:EST
-DTSTART:19170325T020000
-RDATE:19170325T020000
-RDATE:19420329T020000
-RDATE:19430328T020000
-RDATE:19440326T020000
-RDATE:19720227T030000
-RDATE:19730304T030000
-RDATE:19740303T030000
-RDATE:19750302T030000
-RDATE:19760307T030000
-RDATE:19770306T030000
-RDATE:19780305T030000
-RDATE:19790304T030000
-RDATE:19800302T030000
-RDATE:19810301T030000
-RDATE:19820404T030000
-RDATE:19830306T030000
-RDATE:19840304T030000
-RDATE:19850303T030000
-RDATE:19860316T030000
-RDATE:19870315T030000
-RDATE:19880320T030000
-RDATE:19890319T030000
-RDATE:19900304T030000
-RDATE:19910303T030000
-RDATE:19920301T030000
-RDATE:19930307T030000
-RDATE:19940306T030000
-RDATE:19950305T030000
-RDATE:19960331T030000
-RDATE:19970330T030000
-RDATE:19980329T030000
-RDATE:19990328T030000
-RDATE:20000326T030000
-RDATE:20010325T030000
-RDATE:20020331T030000
-RDATE:20030330T030000
-RDATE:20040328T030000
-RDATE:20050327T030000
-RDATE:20060402T030000
-RDATE:20070325T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+1000
-TZOFFSETTO:+1000
-TZNAME:EST
-DTSTART:19710101T000000
-RDATE:19710101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Amsterdam.ics b/libkcal/libical/zoneinfo/Europe/Amsterdam.ics
deleted file mode 100644
index 206edf49..00000000
--- a/libkcal/libical/zoneinfo/Europe/Amsterdam.ics
+++ /dev/null
@@ -1,164 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Amsterdam
-X-LIC-LOCATION:Europe/Amsterdam
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19810329T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19961027T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+001932
-TZOFFSETTO:+001932
-TZNAME:AMT
-DTSTART:18350101T000000
-RDATE:18350101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+001932
-TZOFFSETTO:+011932
-TZNAME:NST
-DTSTART:19160501T000000
-RDATE:19160501T000000
-RDATE:19170416T020000
-RDATE:19180401T020000
-RDATE:19190407T020000
-RDATE:19200405T020000
-RDATE:19210404T020000
-RDATE:19220326T020000
-RDATE:19230601T020000
-RDATE:19240330T020000
-RDATE:19250605T020000
-RDATE:19260515T020000
-RDATE:19270515T020000
-RDATE:19280515T020000
-RDATE:19290515T020000
-RDATE:19300515T020000
-RDATE:19310515T020000
-RDATE:19320522T020000
-RDATE:19330515T020000
-RDATE:19340515T020000
-RDATE:19350515T020000
-RDATE:19360515T020000
-RDATE:19370522T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+011932
-TZOFFSETTO:+001932
-TZNAME:AMT
-DTSTART:19161001T000000
-RDATE:19161001T000000
-RDATE:19170917T030000
-RDATE:19180930T030000
-RDATE:19190929T030000
-RDATE:19200927T030000
-RDATE:19210926T030000
-RDATE:19221008T030000
-RDATE:19231007T030000
-RDATE:19241005T030000
-RDATE:19251004T030000
-RDATE:19261003T030000
-RDATE:19271002T030000
-RDATE:19281007T030000
-RDATE:19291006T030000
-RDATE:19301005T030000
-RDATE:19311004T030000
-RDATE:19321002T030000
-RDATE:19331008T030000
-RDATE:19341007T030000
-RDATE:19351006T030000
-RDATE:19361004T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+011932
-TZOFFSETTO:+0120
-TZNAME:NEST
-DTSTART:19370701T000000
-RDATE:19370701T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0120
-TZOFFSETTO:+0020
-TZNAME:NET
-DTSTART:19371003T030000
-RDATE:19371003T030000
-RDATE:19381002T030000
-RDATE:19391008T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0020
-TZOFFSETTO:+0120
-TZNAME:NEST
-DTSTART:19380515T020000
-RDATE:19380515T020000
-RDATE:19390515T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0020
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19400516T000000
-RDATE:19400516T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19421102T030000
-RDATE:19421102T030000
-RDATE:19431004T030000
-RDATE:19441002T030000
-RDATE:19450916T030000
-RDATE:19770925T030000
-RDATE:19781001T030000
-RDATE:19790930T030000
-RDATE:19800928T030000
-RDATE:19810927T030000
-RDATE:19820926T030000
-RDATE:19830925T030000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19910929T030000
-RDATE:19920927T030000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19430329T020000
-RDATE:19430329T020000
-RDATE:19440403T020000
-RDATE:19450402T020000
-RDATE:19770403T020000
-RDATE:19780402T020000
-RDATE:19790401T020000
-RDATE:19800406T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19770101T000000
-RDATE:19770101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Andorra.ics b/libkcal/libical/zoneinfo/Europe/Andorra.ics
deleted file mode 100644
index 524cd116..00000000
--- a/libkcal/libical/zoneinfo/Europe/Andorra.ics
+++ /dev/null
@@ -1,53 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Andorra
-X-LIC-LOCATION:Europe/Andorra
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19850331T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19961027T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+000604
-TZOFFSETTO:+0000
-TZNAME:WET
-DTSTART:19010101T000000
-RDATE:19010101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19460930T000000
-RDATE:19460930T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19850929T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19910929T030000
-RDATE:19920927T030000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Athens.ics b/libkcal/libical/zoneinfo/Europe/Athens.ics
deleted file mode 100644
index 81d4609a..00000000
--- a/libkcal/libical/zoneinfo/Europe/Athens.ics
+++ /dev/null
@@ -1,116 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Athens
-X-LIC-LOCATION:Europe/Athens
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19810329T030000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19961027T040000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+013452
-TZOFFSETTO:+013452
-TZNAME:AMT
-DTSTART:18950914T000000
-RDATE:18950914T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+013452
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19160728T000100
-RDATE:19160728T000100
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19320707T000000
-RDATE:19320707T000000
-RDATE:19410407T000000
-RDATE:19520701T000000
-RDATE:19750412T000000
-RDATE:19760411T020000
-RDATE:19770403T020000
-RDATE:19780402T020000
-RDATE:19790401T090000
-RDATE:19800401T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19320901T000000
-RDATE:19320901T000000
-RDATE:19521102T000000
-RDATE:19751126T010000
-RDATE:19761010T030000
-RDATE:19770926T030000
-RDATE:19780924T040000
-RDATE:19790929T020000
-RDATE:19800928T000000
-RDATE:19810927T040000
-RDATE:19820926T040000
-RDATE:19830925T040000
-RDATE:19840930T040000
-RDATE:19850929T040000
-RDATE:19860928T040000
-RDATE:19870927T040000
-RDATE:19880925T040000
-RDATE:19890924T040000
-RDATE:19900930T040000
-RDATE:19910929T040000
-RDATE:19920927T040000
-RDATE:19930926T040000
-RDATE:19940925T040000
-RDATE:19950924T040000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19410430T000000
-RDATE:19410430T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19421102T030000
-RDATE:19421102T030000
-RDATE:19431004T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19430330T000000
-RDATE:19430330T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19440404T000000
-RDATE:19440404T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19810101T000000
-RDATE:19810101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Belgrade.ics b/libkcal/libical/zoneinfo/Europe/Belgrade.ics
deleted file mode 100644
index ee1ad80d..00000000
--- a/libkcal/libical/zoneinfo/Europe/Belgrade.ics
+++ /dev/null
@@ -1,69 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Belgrade
-X-LIC-LOCATION:Europe/Belgrade
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19830327T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19961027T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0122
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:18840101T000000
-RDATE:18840101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19410418T230000
-RDATE:19410418T230000
-RDATE:19430329T020000
-RDATE:19440403T020000
-RDATE:19450508T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19421102T030000
-RDATE:19421102T030000
-RDATE:19431004T030000
-RDATE:19441002T030000
-RDATE:19450916T030000
-RDATE:19830925T030000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19910929T030000
-RDATE:19920927T030000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19821127T000000
-RDATE:19821127T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Berlin.ics b/libkcal/libical/zoneinfo/Europe/Berlin.ics
deleted file mode 100644
index 31f98f59..00000000
--- a/libkcal/libical/zoneinfo/Europe/Berlin.ics
+++ /dev/null
@@ -1,103 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Berlin
-X-LIC-LOCATION:Europe/Berlin
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19810329T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19961027T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+005328
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:18930401T000000
-RDATE:18930401T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19160430T230000
-RDATE:19160430T230000
-RDATE:19170416T020000
-RDATE:19180415T020000
-RDATE:19400401T020000
-RDATE:19430329T020000
-RDATE:19440403T020000
-RDATE:19450402T020000
-RDATE:19460414T020000
-RDATE:19470406T020000
-RDATE:19480418T020000
-RDATE:19490410T020000
-RDATE:19800406T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19161001T010000
-RDATE:19161001T010000
-RDATE:19170917T030000
-RDATE:19180916T030000
-RDATE:19421102T030000
-RDATE:19431004T030000
-RDATE:19441002T030000
-RDATE:19451118T030000
-RDATE:19461007T030000
-RDATE:19471005T030000
-RDATE:19481003T030000
-RDATE:19491002T030000
-RDATE:19800928T030000
-RDATE:19810927T030000
-RDATE:19820926T030000
-RDATE:19830925T030000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19910929T030000
-RDATE:19920927T030000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:CEMT
-DTSTART:19450524T020000
-RDATE:19450524T020000
-RDATE:19470511T030000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19450924T030000
-RDATE:19450924T030000
-RDATE:19470629T030000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19800101T000000
-RDATE:19800101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Bratislava.ics b/libkcal/libical/zoneinfo/Europe/Bratislava.ics
deleted file mode 100644
index 9be30ffa..00000000
--- a/libkcal/libical/zoneinfo/Europe/Bratislava.ics
+++ /dev/null
@@ -1,96 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Bratislava
-X-LIC-LOCATION:Europe/Bratislava
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19810329T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19961027T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+005744
-TZOFFSETTO:+005744
-TZNAME:PMT
-DTSTART:18500101T000000
-RDATE:18500101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+005744
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:18911001T000000
-RDATE:18911001T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19160430T230000
-RDATE:19160430T230000
-RDATE:19170416T020000
-RDATE:19180415T020000
-RDATE:19400401T020000
-RDATE:19430329T020000
-RDATE:19440403T020000
-RDATE:19450408T020000
-RDATE:19460506T020000
-RDATE:19470420T020000
-RDATE:19480418T020000
-RDATE:19490409T020000
-RDATE:19790401T020000
-RDATE:19800406T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19161001T010000
-RDATE:19161001T010000
-RDATE:19170917T030000
-RDATE:19180916T030000
-RDATE:19421102T030000
-RDATE:19431004T030000
-RDATE:19440917T030000
-RDATE:19451118T030000
-RDATE:19461006T030000
-RDATE:19471005T030000
-RDATE:19481003T030000
-RDATE:19491002T030000
-RDATE:19790930T030000
-RDATE:19800928T030000
-RDATE:19810927T030000
-RDATE:19820926T030000
-RDATE:19830925T030000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19910929T030000
-RDATE:19920927T030000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19790101T000000
-RDATE:19790101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Brussels.ics b/libkcal/libical/zoneinfo/Europe/Brussels.ics
deleted file mode 100644
index c3bb7ab2..00000000
--- a/libkcal/libical/zoneinfo/Europe/Brussels.ics
+++ /dev/null
@@ -1,164 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Brussels
-X-LIC-LOCATION:Europe/Brussels
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19810329T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19961027T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+001730
-TZOFFSETTO:+001730
-TZNAME:BMT
-DTSTART:18800101T000000
-RDATE:18800101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+001730
-TZOFFSETTO:+0000
-TZNAME:WET
-DTSTART:18920501T120000
-RDATE:18920501T120000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19141108T000000
-RDATE:19141108T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19160501T000000
-RDATE:19160501T000000
-RDATE:19170416T020000
-RDATE:19180415T020000
-RDATE:19400520T030000
-RDATE:19430329T020000
-RDATE:19440403T020000
-RDATE:19450402T020000
-RDATE:19460519T020000
-RDATE:19770403T020000
-RDATE:19780402T020000
-RDATE:19790401T020000
-RDATE:19800406T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19161001T010000
-RDATE:19161001T010000
-RDATE:19170917T030000
-RDATE:19180916T030000
-RDATE:19421102T030000
-RDATE:19431004T030000
-RDATE:19440917T030000
-RDATE:19450916T030000
-RDATE:19461007T030000
-RDATE:19770925T030000
-RDATE:19781001T030000
-RDATE:19790930T030000
-RDATE:19800928T030000
-RDATE:19810927T030000
-RDATE:19820926T030000
-RDATE:19830925T030000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19910929T030000
-RDATE:19920927T030000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0000
-TZNAME:WET
-DTSTART:19181111T120000
-RDATE:19181111T120000
-RDATE:19191005T000000
-RDATE:19201024T000000
-RDATE:19211026T000000
-RDATE:19221008T000000
-RDATE:19231007T000000
-RDATE:19241005T000000
-RDATE:19251004T000000
-RDATE:19261003T000000
-RDATE:19271002T000000
-RDATE:19281007T030000
-RDATE:19291006T030000
-RDATE:19301005T030000
-RDATE:19311004T030000
-RDATE:19321002T030000
-RDATE:19331008T030000
-RDATE:19341007T030000
-RDATE:19351006T030000
-RDATE:19361004T030000
-RDATE:19371003T030000
-RDATE:19381002T030000
-RDATE:19391119T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0100
-TZNAME:WEST
-DTSTART:19190301T230000
-RDATE:19190301T230000
-RDATE:19200214T230000
-RDATE:19210314T230000
-RDATE:19220325T230000
-RDATE:19230421T230000
-RDATE:19240329T230000
-RDATE:19250404T230000
-RDATE:19260417T230000
-RDATE:19270409T230000
-RDATE:19280414T230000
-RDATE:19290421T020000
-RDATE:19300413T020000
-RDATE:19310419T020000
-RDATE:19320403T020000
-RDATE:19330326T020000
-RDATE:19340408T020000
-RDATE:19350331T020000
-RDATE:19360419T020000
-RDATE:19370404T020000
-RDATE:19380327T020000
-RDATE:19390416T020000
-RDATE:19400225T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19440903T000000
-RDATE:19440903T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19770101T000000
-RDATE:19770101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Bucharest.ics b/libkcal/libical/zoneinfo/Europe/Bucharest.ics
deleted file mode 100644
index 008e60a1..00000000
--- a/libkcal/libical/zoneinfo/Europe/Bucharest.ics
+++ /dev/null
@@ -1,109 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Bucharest
-X-LIC-LOCATION:Europe/Bucharest
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19970330T030000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19971026T040000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+014424
-TZOFFSETTO:+014424
-TZNAME:BMT
-DTSTART:18911001T000000
-RDATE:18911001T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+014424
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19310724T000000
-RDATE:19310724T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19320521T000000
-RDATE:19320521T000000
-RDATE:19330402T000000
-RDATE:19340408T000000
-RDATE:19350407T000000
-RDATE:19360405T000000
-RDATE:19370404T000000
-RDATE:19380403T000000
-RDATE:19390402T000000
-RDATE:19790527T000000
-RDATE:19800405T230000
-RDATE:19810329T020000
-RDATE:19820328T020000
-RDATE:19830327T020000
-RDATE:19840325T020000
-RDATE:19850331T020000
-RDATE:19860330T020000
-RDATE:19870329T020000
-RDATE:19880327T020000
-RDATE:19890326T020000
-RDATE:19900325T020000
-RDATE:19910331T000000
-RDATE:19920329T000000
-RDATE:19930328T000000
-RDATE:19940327T000000
-RDATE:19950326T000000
-RDATE:19960331T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19321002T010000
-RDATE:19321002T010000
-RDATE:19331001T010000
-RDATE:19341007T010000
-RDATE:19351006T010000
-RDATE:19361004T010000
-RDATE:19371003T010000
-RDATE:19381002T010000
-RDATE:19391001T010000
-RDATE:19790930T000000
-RDATE:19800928T010000
-RDATE:19810927T030000
-RDATE:19820926T030000
-RDATE:19830925T030000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19910929T010000
-RDATE:19920927T010000
-RDATE:19930926T010000
-RDATE:19940925T000000
-RDATE:19950924T000000
-RDATE:19961027T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19910101T000000
-RDATE:19910101T000000
-RDATE:19940101T000000
-RDATE:19970101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Budapest.ics b/libkcal/libical/zoneinfo/Europe/Budapest.ics
deleted file mode 100644
index 23625345..00000000
--- a/libkcal/libical/zoneinfo/Europe/Budapest.ics
+++ /dev/null
@@ -1,101 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Budapest
-X-LIC-LOCATION:Europe/Budapest
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19810329T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19961027T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+011620
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:18901001T000000
-RDATE:18901001T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19160430T230000
-RDATE:19160430T230000
-RDATE:19170416T020000
-RDATE:19180401T030000
-RDATE:19190415T030000
-RDATE:19200405T030000
-RDATE:19410406T020000
-RDATE:19430329T020000
-RDATE:19440403T020000
-RDATE:19450501T230000
-RDATE:19460331T020000
-RDATE:19470406T020000
-RDATE:19480404T020000
-RDATE:19490410T020000
-RDATE:19500417T020000
-RDATE:19540523T000000
-RDATE:19550523T000000
-RDATE:19560603T000000
-RDATE:19570602T010000
-RDATE:19800406T010000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19161001T010000
-RDATE:19161001T010000
-RDATE:19170917T030000
-RDATE:19180929T030000
-RDATE:19190915T030000
-RDATE:19200930T030000
-RDATE:19421102T030000
-RDATE:19431004T030000
-RDATE:19441002T030000
-RDATE:19451103T000000
-RDATE:19461006T030000
-RDATE:19471005T030000
-RDATE:19481003T030000
-RDATE:19491002T030000
-RDATE:19501023T030000
-RDATE:19541003T000000
-RDATE:19551003T000000
-RDATE:19560930T000000
-RDATE:19570929T030000
-RDATE:19800928T030000
-RDATE:19810927T030000
-RDATE:19820926T030000
-RDATE:19830925T030000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19910929T030000
-RDATE:19920927T030000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19180101T000000
-RDATE:19180101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Chisinau.ics b/libkcal/libical/zoneinfo/Europe/Chisinau.ics
deleted file mode 100644
index a0c4ec4d..00000000
--- a/libkcal/libical/zoneinfo/Europe/Chisinau.ics
+++ /dev/null
@@ -1,161 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Chisinau
-X-LIC-LOCATION:Europe/Chisinau
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19970330T030000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19971026T040000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+015520
-TZOFFSETTO:+0155
-TZNAME:CMT
-DTSTART:18800101T000000
-RDATE:18800101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0155
-TZOFFSETTO:+014424
-TZNAME:BMT
-DTSTART:19180215T000000
-RDATE:19180215T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+014424
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19310724T000000
-RDATE:19310724T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19320521T000000
-RDATE:19320521T000000
-RDATE:19330402T000000
-RDATE:19340408T000000
-RDATE:19350407T000000
-RDATE:19360405T000000
-RDATE:19370404T000000
-RDATE:19380403T000000
-RDATE:19390402T000000
-RDATE:19400815T000000
-RDATE:19910331T020000
-RDATE:19920329T000000
-RDATE:19930328T000000
-RDATE:19940327T000000
-RDATE:19950326T000000
-RDATE:19960331T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19321002T010000
-RDATE:19321002T010000
-RDATE:19331001T010000
-RDATE:19341007T010000
-RDATE:19351006T010000
-RDATE:19361004T010000
-RDATE:19371003T010000
-RDATE:19381002T010000
-RDATE:19391001T010000
-RDATE:19900506T000000
-RDATE:19910929T030000
-RDATE:19920927T000000
-RDATE:19930926T000000
-RDATE:19940925T000000
-RDATE:19950924T000000
-RDATE:19961027T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19410717T000000
-RDATE:19410717T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19421102T030000
-RDATE:19421102T030000
-RDATE:19431004T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19430329T020000
-RDATE:19430329T020000
-RDATE:19440403T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:MSK
-DTSTART:19440824T000000
-RDATE:19440824T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0400
-TZNAME:MSD
-DTSTART:19810401T000000
-RDATE:19810401T000000
-RDATE:19820401T000000
-RDATE:19830401T000000
-RDATE:19840401T000000
-RDATE:19850331T020000
-RDATE:19860330T020000
-RDATE:19870329T020000
-RDATE:19880327T020000
-RDATE:19890326T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0300
-TZNAME:MSK
-DTSTART:19811001T000000
-RDATE:19811001T000000
-RDATE:19821001T000000
-RDATE:19831001T000000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0300
-TZNAME:MSK
-DTSTART:19900101T000000
-RDATE:19900101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19910101T000000
-RDATE:19910101T000000
-RDATE:19920101T000000
-RDATE:19970101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Copenhagen.ics b/libkcal/libical/zoneinfo/Europe/Copenhagen.ics
deleted file mode 100644
index 060c3e09..00000000
--- a/libkcal/libical/zoneinfo/Europe/Copenhagen.ics
+++ /dev/null
@@ -1,88 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Copenhagen
-X-LIC-LOCATION:Europe/Copenhagen
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19810329T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19961027T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+005020
-TZOFFSETTO:+005020
-TZNAME:CMT
-DTSTART:18900101T000000
-RDATE:18900101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+005020
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:18940101T000000
-RDATE:18940101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19160514T230000
-RDATE:19160514T230000
-RDATE:19400515T000000
-RDATE:19430329T020000
-RDATE:19440403T020000
-RDATE:19450402T020000
-RDATE:19460501T020000
-RDATE:19470504T020000
-RDATE:19480509T020000
-RDATE:19800406T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19160930T230000
-RDATE:19160930T230000
-RDATE:19421102T030000
-RDATE:19431004T030000
-RDATE:19441002T030000
-RDATE:19450815T030000
-RDATE:19460901T030000
-RDATE:19470810T030000
-RDATE:19480808T030000
-RDATE:19800928T030000
-RDATE:19810927T030000
-RDATE:19820926T030000
-RDATE:19830925T030000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19910929T030000
-RDATE:19920927T030000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19800101T000000
-RDATE:19800101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Dublin.ics b/libkcal/libical/zoneinfo/Europe/Dublin.ics
deleted file mode 100644
index 3be21d73..00000000
--- a/libkcal/libical/zoneinfo/Europe/Dublin.ics
+++ /dev/null
@@ -1,201 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Dublin
-X-LIC-LOCATION:Europe/Dublin
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0100
-TZNAME:IST
-DTSTART:19810329T010000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0000
-TZNAME:GMT
-DTSTART:19961027T020000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0025
-TZOFFSETTO:-002521
-TZNAME:DMT
-DTSTART:18800802T000000
-RDATE:18800802T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-002521
-TZOFFSETTO:+003439
-TZNAME:IST
-DTSTART:19160521T020000
-RDATE:19160521T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+003439
-TZOFFSETTO:+0000
-TZNAME:GMT
-DTSTART:19161001T030000
-RDATE:19161001T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0100
-TZNAME:BST
-DTSTART:19170408T020000
-RDATE:19170408T020000
-RDATE:19180324T020000
-RDATE:19190330T020000
-RDATE:19200328T020000
-RDATE:19210403T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0000
-TZNAME:GMT
-DTSTART:19170917T030000
-RDATE:19170917T030000
-RDATE:19180930T030000
-RDATE:19190929T030000
-RDATE:19201025T030000
-RDATE:19211003T030000
-RDATE:19221008T030000
-RDATE:19230916T030000
-RDATE:19240921T030000
-RDATE:19251004T030000
-RDATE:19261003T030000
-RDATE:19271002T030000
-RDATE:19281007T030000
-RDATE:19291006T030000
-RDATE:19301005T030000
-RDATE:19311004T030000
-RDATE:19321002T030000
-RDATE:19331008T030000
-RDATE:19341007T030000
-RDATE:19351006T030000
-RDATE:19361004T030000
-RDATE:19371003T030000
-RDATE:19381002T030000
-RDATE:19391119T030000
-RDATE:19461006T020000
-RDATE:19471102T020000
-RDATE:19481031T030000
-RDATE:19491030T030000
-RDATE:19501022T030000
-RDATE:19511021T030000
-RDATE:19521026T030000
-RDATE:19531004T030000
-RDATE:19541003T030000
-RDATE:19551002T030000
-RDATE:19561007T030000
-RDATE:19571006T030000
-RDATE:19581005T030000
-RDATE:19591004T030000
-RDATE:19601002T030000
-RDATE:19611029T030000
-RDATE:19621028T030000
-RDATE:19631027T030000
-RDATE:19641025T030000
-RDATE:19651024T030000
-RDATE:19661023T030000
-RDATE:19671029T030000
-RDATE:19711031T030000
-RDATE:19721029T030000
-RDATE:19731028T030000
-RDATE:19741027T030000
-RDATE:19751026T030000
-RDATE:19761024T030000
-RDATE:19771023T030000
-RDATE:19781029T030000
-RDATE:19791028T030000
-RDATE:19801026T030000
-RDATE:19811025T020000
-RDATE:19821024T020000
-RDATE:19831023T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861026T020000
-RDATE:19871025T020000
-RDATE:19881023T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931024T020000
-RDATE:19941023T020000
-RDATE:19951022T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0000
-TZNAME:GMT
-DTSTART:19211206T000000
-RDATE:19211206T000000
-RDATE:19960101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0100
-TZNAME:IST
-DTSTART:19220326T020000
-RDATE:19220326T020000
-RDATE:19230422T020000
-RDATE:19240413T020000
-RDATE:19250419T020000
-RDATE:19260418T020000
-RDATE:19270410T020000
-RDATE:19280422T020000
-RDATE:19290421T020000
-RDATE:19300413T020000
-RDATE:19310419T020000
-RDATE:19320417T020000
-RDATE:19330409T020000
-RDATE:19340422T020000
-RDATE:19350414T020000
-RDATE:19360419T020000
-RDATE:19370418T020000
-RDATE:19380410T020000
-RDATE:19390416T020000
-RDATE:19400225T020000
-RDATE:19470316T020000
-RDATE:19480418T020000
-RDATE:19490403T020000
-RDATE:19500416T020000
-RDATE:19510415T020000
-RDATE:19520420T020000
-RDATE:19530419T020000
-RDATE:19540411T020000
-RDATE:19550417T020000
-RDATE:19560422T020000
-RDATE:19570414T020000
-RDATE:19580420T020000
-RDATE:19590419T020000
-RDATE:19600410T020000
-RDATE:19610326T020000
-RDATE:19620325T020000
-RDATE:19630331T020000
-RDATE:19640322T020000
-RDATE:19650321T020000
-RDATE:19660320T020000
-RDATE:19670319T020000
-RDATE:19680218T020000
-RDATE:19720319T020000
-RDATE:19730318T020000
-RDATE:19740317T020000
-RDATE:19750316T020000
-RDATE:19760321T020000
-RDATE:19770320T020000
-RDATE:19780319T020000
-RDATE:19790318T020000
-RDATE:19800316T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0100
-TZNAME:IST
-DTSTART:19681027T000000
-RDATE:19681027T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Gibraltar.ics b/libkcal/libical/zoneinfo/Europe/Gibraltar.ics
deleted file mode 100644
index f33980a4..00000000
--- a/libkcal/libical/zoneinfo/Europe/Gibraltar.ics
+++ /dev/null
@@ -1,171 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Gibraltar
-X-LIC-LOCATION:Europe/Gibraltar
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19820328T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19961027T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-002124
-TZOFFSETTO:+0000
-TZNAME:GMT
-DTSTART:18800802T000000
-RDATE:18800802T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0100
-TZNAME:BST
-DTSTART:19160521T020000
-RDATE:19160521T020000
-RDATE:19170408T020000
-RDATE:19180324T020000
-RDATE:19190330T020000
-RDATE:19200328T020000
-RDATE:19210403T020000
-RDATE:19220326T020000
-RDATE:19230422T020000
-RDATE:19240413T020000
-RDATE:19250419T020000
-RDATE:19260418T020000
-RDATE:19270410T020000
-RDATE:19280422T020000
-RDATE:19290421T020000
-RDATE:19300413T020000
-RDATE:19310419T020000
-RDATE:19320417T020000
-RDATE:19330409T020000
-RDATE:19340422T020000
-RDATE:19350414T020000
-RDATE:19360419T020000
-RDATE:19370418T020000
-RDATE:19380410T020000
-RDATE:19390416T020000
-RDATE:19400225T020000
-RDATE:19460414T020000
-RDATE:19470316T020000
-RDATE:19480314T020000
-RDATE:19490403T020000
-RDATE:19500416T020000
-RDATE:19510415T020000
-RDATE:19520420T020000
-RDATE:19530419T020000
-RDATE:19540411T020000
-RDATE:19550417T020000
-RDATE:19560422T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0000
-TZNAME:GMT
-DTSTART:19161001T030000
-RDATE:19161001T030000
-RDATE:19170917T030000
-RDATE:19180930T030000
-RDATE:19190929T030000
-RDATE:19201025T030000
-RDATE:19211003T030000
-RDATE:19221008T030000
-RDATE:19230916T030000
-RDATE:19240921T030000
-RDATE:19251004T030000
-RDATE:19261003T030000
-RDATE:19271002T030000
-RDATE:19281007T030000
-RDATE:19291006T030000
-RDATE:19301005T030000
-RDATE:19311004T030000
-RDATE:19321002T030000
-RDATE:19331008T030000
-RDATE:19341007T030000
-RDATE:19351006T030000
-RDATE:19361004T030000
-RDATE:19371003T030000
-RDATE:19381002T030000
-RDATE:19391119T030000
-RDATE:19451007T030000
-RDATE:19461006T030000
-RDATE:19471102T030000
-RDATE:19481031T030000
-RDATE:19491030T030000
-RDATE:19501022T030000
-RDATE:19511021T030000
-RDATE:19521026T030000
-RDATE:19531004T030000
-RDATE:19541003T030000
-RDATE:19551002T030000
-RDATE:19561007T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:BDST
-DTSTART:19410504T020000
-RDATE:19410504T020000
-RDATE:19420405T020000
-RDATE:19430404T020000
-RDATE:19440402T020000
-RDATE:19450402T020000
-RDATE:19470413T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:BST
-DTSTART:19410810T030000
-RDATE:19410810T030000
-RDATE:19420809T030000
-RDATE:19430815T030000
-RDATE:19440917T030000
-RDATE:19450715T030000
-RDATE:19470810T030000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19570414T020000
-RDATE:19570414T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19820101T000000
-RDATE:19820101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19820926T030000
-RDATE:19820926T030000
-RDATE:19830925T030000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19910929T030000
-RDATE:19920927T030000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Guernsey.ics b/libkcal/libical/zoneinfo/Europe/Guernsey.ics
deleted file mode 100644
index 5aa50be2..00000000
--- a/libkcal/libical/zoneinfo/Europe/Guernsey.ics
+++ /dev/null
@@ -1,208 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Guernsey
-X-LIC-LOCATION:Europe/Guernsey
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0100
-TZNAME:BST
-DTSTART:19810329T010000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0000
-TZNAME:GMT
-DTSTART:19961027T020000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-000115
-TZOFFSETTO:+0000
-TZNAME:GMT
-DTSTART:18471201T000000
-RDATE:18471201T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0100
-TZNAME:BST
-DTSTART:19160521T020000
-RDATE:19160521T020000
-RDATE:19170408T020000
-RDATE:19180324T020000
-RDATE:19190330T020000
-RDATE:19200328T020000
-RDATE:19210403T020000
-RDATE:19220326T020000
-RDATE:19230422T020000
-RDATE:19240413T020000
-RDATE:19250419T020000
-RDATE:19260418T020000
-RDATE:19270410T020000
-RDATE:19280422T020000
-RDATE:19290421T020000
-RDATE:19300413T020000
-RDATE:19310419T020000
-RDATE:19320417T020000
-RDATE:19330409T020000
-RDATE:19340422T020000
-RDATE:19350414T020000
-RDATE:19360419T020000
-RDATE:19370418T020000
-RDATE:19380410T020000
-RDATE:19390416T020000
-RDATE:19400225T020000
-RDATE:19460414T020000
-RDATE:19470316T020000
-RDATE:19480314T020000
-RDATE:19490403T020000
-RDATE:19500416T020000
-RDATE:19510415T020000
-RDATE:19520420T020000
-RDATE:19530419T020000
-RDATE:19540411T020000
-RDATE:19550417T020000
-RDATE:19560422T020000
-RDATE:19570414T020000
-RDATE:19580420T020000
-RDATE:19590419T020000
-RDATE:19600410T020000
-RDATE:19610326T020000
-RDATE:19620325T020000
-RDATE:19630331T020000
-RDATE:19640322T020000
-RDATE:19650321T020000
-RDATE:19660320T020000
-RDATE:19670319T020000
-RDATE:19680218T020000
-RDATE:19720319T020000
-RDATE:19730318T020000
-RDATE:19740317T020000
-RDATE:19750316T020000
-RDATE:19760321T020000
-RDATE:19770320T020000
-RDATE:19780319T020000
-RDATE:19790318T020000
-RDATE:19800316T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0000
-TZNAME:GMT
-DTSTART:19161001T030000
-RDATE:19161001T030000
-RDATE:19170917T030000
-RDATE:19180930T030000
-RDATE:19190929T030000
-RDATE:19201025T030000
-RDATE:19211003T030000
-RDATE:19221008T030000
-RDATE:19230916T030000
-RDATE:19240921T030000
-RDATE:19251004T030000
-RDATE:19261003T030000
-RDATE:19271002T030000
-RDATE:19281007T030000
-RDATE:19291006T030000
-RDATE:19301005T030000
-RDATE:19311004T030000
-RDATE:19321002T030000
-RDATE:19331008T030000
-RDATE:19341007T030000
-RDATE:19351006T030000
-RDATE:19361004T030000
-RDATE:19371003T030000
-RDATE:19381002T030000
-RDATE:19391119T030000
-RDATE:19451007T030000
-RDATE:19461006T030000
-RDATE:19471102T030000
-RDATE:19481031T030000
-RDATE:19491030T030000
-RDATE:19501022T030000
-RDATE:19511021T030000
-RDATE:19521026T030000
-RDATE:19531004T030000
-RDATE:19541003T030000
-RDATE:19551002T030000
-RDATE:19561007T030000
-RDATE:19571006T030000
-RDATE:19581005T030000
-RDATE:19591004T030000
-RDATE:19601002T030000
-RDATE:19611029T030000
-RDATE:19621028T030000
-RDATE:19631027T030000
-RDATE:19641025T030000
-RDATE:19651024T030000
-RDATE:19661023T030000
-RDATE:19671029T030000
-RDATE:19711031T030000
-RDATE:19721029T030000
-RDATE:19731028T030000
-RDATE:19741027T030000
-RDATE:19751026T030000
-RDATE:19761024T030000
-RDATE:19771023T030000
-RDATE:19781029T030000
-RDATE:19791028T030000
-RDATE:19801026T030000
-RDATE:19811025T020000
-RDATE:19821024T020000
-RDATE:19831023T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861026T020000
-RDATE:19871025T020000
-RDATE:19881023T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931024T020000
-RDATE:19941023T020000
-RDATE:19951022T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:BDST
-DTSTART:19410504T020000
-RDATE:19410504T020000
-RDATE:19420405T020000
-RDATE:19430404T020000
-RDATE:19440402T020000
-RDATE:19450402T020000
-RDATE:19470413T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:BST
-DTSTART:19410810T030000
-RDATE:19410810T030000
-RDATE:19420809T030000
-RDATE:19430815T030000
-RDATE:19440917T030000
-RDATE:19450715T030000
-RDATE:19470810T030000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0100
-TZNAME:BST
-DTSTART:19681027T000000
-RDATE:19681027T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0000
-TZNAME:GMT
-DTSTART:19960101T000000
-RDATE:19960101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Helsinki.ics b/libkcal/libical/zoneinfo/Europe/Helsinki.ics
deleted file mode 100644
index 113b0e62..00000000
--- a/libkcal/libical/zoneinfo/Europe/Helsinki.ics
+++ /dev/null
@@ -1,72 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Helsinki
-X-LIC-LOCATION:Europe/Helsinki
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19810329T030000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19961027T040000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+013952
-TZOFFSETTO:+013952
-TZNAME:HMT
-DTSTART:18780531T000000
-RDATE:18780531T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+013952
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19210501T000000
-RDATE:19210501T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19420403T000000
-RDATE:19420403T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19421003T000000
-RDATE:19421003T000000
-RDATE:19810927T040000
-RDATE:19820926T040000
-RDATE:19830925T040000
-RDATE:19840930T040000
-RDATE:19850929T040000
-RDATE:19860928T040000
-RDATE:19870927T040000
-RDATE:19880925T040000
-RDATE:19890924T040000
-RDATE:19900930T040000
-RDATE:19910929T040000
-RDATE:19920927T040000
-RDATE:19930926T040000
-RDATE:19940925T040000
-RDATE:19950924T040000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19810329T020000
-RDATE:19810329T020000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Isle_of_Man.ics b/libkcal/libical/zoneinfo/Europe/Isle_of_Man.ics
deleted file mode 100644
index 9b80ac70..00000000
--- a/libkcal/libical/zoneinfo/Europe/Isle_of_Man.ics
+++ /dev/null
@@ -1,208 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Isle_of_Man
-X-LIC-LOCATION:Europe/Isle_of_Man
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0100
-TZNAME:BST
-DTSTART:19810329T010000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0000
-TZNAME:GMT
-DTSTART:19961027T020000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-000115
-TZOFFSETTO:+0000
-TZNAME:GMT
-DTSTART:18471201T000000
-RDATE:18471201T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0100
-TZNAME:BST
-DTSTART:19160521T020000
-RDATE:19160521T020000
-RDATE:19170408T020000
-RDATE:19180324T020000
-RDATE:19190330T020000
-RDATE:19200328T020000
-RDATE:19210403T020000
-RDATE:19220326T020000
-RDATE:19230422T020000
-RDATE:19240413T020000
-RDATE:19250419T020000
-RDATE:19260418T020000
-RDATE:19270410T020000
-RDATE:19280422T020000
-RDATE:19290421T020000
-RDATE:19300413T020000
-RDATE:19310419T020000
-RDATE:19320417T020000
-RDATE:19330409T020000
-RDATE:19340422T020000
-RDATE:19350414T020000
-RDATE:19360419T020000
-RDATE:19370418T020000
-RDATE:19380410T020000
-RDATE:19390416T020000
-RDATE:19400225T020000
-RDATE:19460414T020000
-RDATE:19470316T020000
-RDATE:19480314T020000
-RDATE:19490403T020000
-RDATE:19500416T020000
-RDATE:19510415T020000
-RDATE:19520420T020000
-RDATE:19530419T020000
-RDATE:19540411T020000
-RDATE:19550417T020000
-RDATE:19560422T020000
-RDATE:19570414T020000
-RDATE:19580420T020000
-RDATE:19590419T020000
-RDATE:19600410T020000
-RDATE:19610326T020000
-RDATE:19620325T020000
-RDATE:19630331T020000
-RDATE:19640322T020000
-RDATE:19650321T020000
-RDATE:19660320T020000
-RDATE:19670319T020000
-RDATE:19680218T020000
-RDATE:19720319T020000
-RDATE:19730318T020000
-RDATE:19740317T020000
-RDATE:19750316T020000
-RDATE:19760321T020000
-RDATE:19770320T020000
-RDATE:19780319T020000
-RDATE:19790318T020000
-RDATE:19800316T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0000
-TZNAME:GMT
-DTSTART:19161001T030000
-RDATE:19161001T030000
-RDATE:19170917T030000
-RDATE:19180930T030000
-RDATE:19190929T030000
-RDATE:19201025T030000
-RDATE:19211003T030000
-RDATE:19221008T030000
-RDATE:19230916T030000
-RDATE:19240921T030000
-RDATE:19251004T030000
-RDATE:19261003T030000
-RDATE:19271002T030000
-RDATE:19281007T030000
-RDATE:19291006T030000
-RDATE:19301005T030000
-RDATE:19311004T030000
-RDATE:19321002T030000
-RDATE:19331008T030000
-RDATE:19341007T030000
-RDATE:19351006T030000
-RDATE:19361004T030000
-RDATE:19371003T030000
-RDATE:19381002T030000
-RDATE:19391119T030000
-RDATE:19451007T030000
-RDATE:19461006T030000
-RDATE:19471102T030000
-RDATE:19481031T030000
-RDATE:19491030T030000
-RDATE:19501022T030000
-RDATE:19511021T030000
-RDATE:19521026T030000
-RDATE:19531004T030000
-RDATE:19541003T030000
-RDATE:19551002T030000
-RDATE:19561007T030000
-RDATE:19571006T030000
-RDATE:19581005T030000
-RDATE:19591004T030000
-RDATE:19601002T030000
-RDATE:19611029T030000
-RDATE:19621028T030000
-RDATE:19631027T030000
-RDATE:19641025T030000
-RDATE:19651024T030000
-RDATE:19661023T030000
-RDATE:19671029T030000
-RDATE:19711031T030000
-RDATE:19721029T030000
-RDATE:19731028T030000
-RDATE:19741027T030000
-RDATE:19751026T030000
-RDATE:19761024T030000
-RDATE:19771023T030000
-RDATE:19781029T030000
-RDATE:19791028T030000
-RDATE:19801026T030000
-RDATE:19811025T020000
-RDATE:19821024T020000
-RDATE:19831023T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861026T020000
-RDATE:19871025T020000
-RDATE:19881023T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931024T020000
-RDATE:19941023T020000
-RDATE:19951022T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:BDST
-DTSTART:19410504T020000
-RDATE:19410504T020000
-RDATE:19420405T020000
-RDATE:19430404T020000
-RDATE:19440402T020000
-RDATE:19450402T020000
-RDATE:19470413T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:BST
-DTSTART:19410810T030000
-RDATE:19410810T030000
-RDATE:19420809T030000
-RDATE:19430815T030000
-RDATE:19440917T030000
-RDATE:19450715T030000
-RDATE:19470810T030000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0100
-TZNAME:BST
-DTSTART:19681027T000000
-RDATE:19681027T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0000
-TZNAME:GMT
-DTSTART:19960101T000000
-RDATE:19960101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Istanbul.ics b/libkcal/libical/zoneinfo/Europe/Istanbul.ics
deleted file mode 100644
index f5db8665..00000000
--- a/libkcal/libical/zoneinfo/Europe/Istanbul.ics
+++ /dev/null
@@ -1,187 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Istanbul
-X-LIC-LOCATION:Europe/Istanbul
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:20070325T030000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:20071028T040000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+015552
-TZOFFSETTO:+015656
-TZNAME:IMT
-DTSTART:18800101T000000
-RDATE:18800101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+015656
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19101001T000000
-RDATE:19101001T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19160501T000000
-RDATE:19160501T000000
-RDATE:19200328T000000
-RDATE:19210403T000000
-RDATE:19220326T000000
-RDATE:19240513T000000
-RDATE:19250501T000000
-RDATE:19400630T000000
-RDATE:19401201T000000
-RDATE:19420401T000000
-RDATE:19450402T000000
-RDATE:19460601T000000
-RDATE:19470420T000000
-RDATE:19480418T000000
-RDATE:19490410T000000
-RDATE:19500419T000000
-RDATE:19510422T000000
-RDATE:19620715T000000
-RDATE:19640515T000000
-RDATE:19700503T000000
-RDATE:19710502T000000
-RDATE:19720507T000000
-RDATE:19730603T010000
-RDATE:19740331T020000
-RDATE:19750330T000000
-RDATE:19760601T000000
-RDATE:19770403T000000
-RDATE:19780402T000000
-RDATE:19860330T020000
-RDATE:19870329T020000
-RDATE:19880327T020000
-RDATE:19890326T020000
-RDATE:19900325T020000
-RDATE:19910331T010000
-RDATE:19920329T010000
-RDATE:19930328T010000
-RDATE:19940327T010000
-RDATE:19950326T010000
-RDATE:19960331T010000
-RDATE:19970330T010000
-RDATE:19980329T010000
-RDATE:19990328T010000
-RDATE:20000326T010000
-RDATE:20010325T010000
-RDATE:20020331T010000
-RDATE:20030330T010000
-RDATE:20040328T010000
-RDATE:20050327T010000
-RDATE:20060326T010000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19161001T000000
-RDATE:19161001T000000
-RDATE:19201025T000000
-RDATE:19211003T000000
-RDATE:19221008T000000
-RDATE:19241001T000000
-RDATE:19251001T000000
-RDATE:19401005T000000
-RDATE:19410921T000000
-RDATE:19421101T000000
-RDATE:19451008T000000
-RDATE:19461001T000000
-RDATE:19471005T000000
-RDATE:19481003T000000
-RDATE:19491002T000000
-RDATE:19501008T000000
-RDATE:19511008T000000
-RDATE:19621008T000000
-RDATE:19641001T000000
-RDATE:19701004T000000
-RDATE:19711003T000000
-RDATE:19721008T000000
-RDATE:19731104T030000
-RDATE:19741103T050000
-RDATE:19751026T000000
-RDATE:19761031T000000
-RDATE:19771016T000000
-RDATE:19850928T000000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19910929T020000
-RDATE:19920927T020000
-RDATE:19930926T020000
-RDATE:19940925T020000
-RDATE:19950924T020000
-RDATE:19961027T020000
-RDATE:19971026T020000
-RDATE:19981025T020000
-RDATE:19991031T020000
-RDATE:20001029T020000
-RDATE:20011028T020000
-RDATE:20021027T020000
-RDATE:20031026T020000
-RDATE:20041031T020000
-RDATE:20051030T020000
-RDATE:20061029T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0400
-TZNAME:TRST
-DTSTART:19781015T000000
-RDATE:19781015T000000
-RDATE:19800406T030000
-RDATE:19810329T030000
-RDATE:19820328T030000
-RDATE:19830731T000000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0400
-TZNAME:TRST
-DTSTART:19790401T030000
-RDATE:19790401T030000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0300
-TZNAME:TRT
-DTSTART:19791015T000000
-RDATE:19791015T000000
-RDATE:19801013T000000
-RDATE:19811012T000000
-RDATE:19821011T000000
-RDATE:19831002T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19850420T000000
-RDATE:19850420T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:20070101T000000
-RDATE:20070101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Jersey.ics b/libkcal/libical/zoneinfo/Europe/Jersey.ics
deleted file mode 100644
index 7c11f794..00000000
--- a/libkcal/libical/zoneinfo/Europe/Jersey.ics
+++ /dev/null
@@ -1,208 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Jersey
-X-LIC-LOCATION:Europe/Jersey
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0100
-TZNAME:BST
-DTSTART:19810329T010000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0000
-TZNAME:GMT
-DTSTART:19961027T020000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-000115
-TZOFFSETTO:+0000
-TZNAME:GMT
-DTSTART:18471201T000000
-RDATE:18471201T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0100
-TZNAME:BST
-DTSTART:19160521T020000
-RDATE:19160521T020000
-RDATE:19170408T020000
-RDATE:19180324T020000
-RDATE:19190330T020000
-RDATE:19200328T020000
-RDATE:19210403T020000
-RDATE:19220326T020000
-RDATE:19230422T020000
-RDATE:19240413T020000
-RDATE:19250419T020000
-RDATE:19260418T020000
-RDATE:19270410T020000
-RDATE:19280422T020000
-RDATE:19290421T020000
-RDATE:19300413T020000
-RDATE:19310419T020000
-RDATE:19320417T020000
-RDATE:19330409T020000
-RDATE:19340422T020000
-RDATE:19350414T020000
-RDATE:19360419T020000
-RDATE:19370418T020000
-RDATE:19380410T020000
-RDATE:19390416T020000
-RDATE:19400225T020000
-RDATE:19460414T020000
-RDATE:19470316T020000
-RDATE:19480314T020000
-RDATE:19490403T020000
-RDATE:19500416T020000
-RDATE:19510415T020000
-RDATE:19520420T020000
-RDATE:19530419T020000
-RDATE:19540411T020000
-RDATE:19550417T020000
-RDATE:19560422T020000
-RDATE:19570414T020000
-RDATE:19580420T020000
-RDATE:19590419T020000
-RDATE:19600410T020000
-RDATE:19610326T020000
-RDATE:19620325T020000
-RDATE:19630331T020000
-RDATE:19640322T020000
-RDATE:19650321T020000
-RDATE:19660320T020000
-RDATE:19670319T020000
-RDATE:19680218T020000
-RDATE:19720319T020000
-RDATE:19730318T020000
-RDATE:19740317T020000
-RDATE:19750316T020000
-RDATE:19760321T020000
-RDATE:19770320T020000
-RDATE:19780319T020000
-RDATE:19790318T020000
-RDATE:19800316T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0000
-TZNAME:GMT
-DTSTART:19161001T030000
-RDATE:19161001T030000
-RDATE:19170917T030000
-RDATE:19180930T030000
-RDATE:19190929T030000
-RDATE:19201025T030000
-RDATE:19211003T030000
-RDATE:19221008T030000
-RDATE:19230916T030000
-RDATE:19240921T030000
-RDATE:19251004T030000
-RDATE:19261003T030000
-RDATE:19271002T030000
-RDATE:19281007T030000
-RDATE:19291006T030000
-RDATE:19301005T030000
-RDATE:19311004T030000
-RDATE:19321002T030000
-RDATE:19331008T030000
-RDATE:19341007T030000
-RDATE:19351006T030000
-RDATE:19361004T030000
-RDATE:19371003T030000
-RDATE:19381002T030000
-RDATE:19391119T030000
-RDATE:19451007T030000
-RDATE:19461006T030000
-RDATE:19471102T030000
-RDATE:19481031T030000
-RDATE:19491030T030000
-RDATE:19501022T030000
-RDATE:19511021T030000
-RDATE:19521026T030000
-RDATE:19531004T030000
-RDATE:19541003T030000
-RDATE:19551002T030000
-RDATE:19561007T030000
-RDATE:19571006T030000
-RDATE:19581005T030000
-RDATE:19591004T030000
-RDATE:19601002T030000
-RDATE:19611029T030000
-RDATE:19621028T030000
-RDATE:19631027T030000
-RDATE:19641025T030000
-RDATE:19651024T030000
-RDATE:19661023T030000
-RDATE:19671029T030000
-RDATE:19711031T030000
-RDATE:19721029T030000
-RDATE:19731028T030000
-RDATE:19741027T030000
-RDATE:19751026T030000
-RDATE:19761024T030000
-RDATE:19771023T030000
-RDATE:19781029T030000
-RDATE:19791028T030000
-RDATE:19801026T030000
-RDATE:19811025T020000
-RDATE:19821024T020000
-RDATE:19831023T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861026T020000
-RDATE:19871025T020000
-RDATE:19881023T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931024T020000
-RDATE:19941023T020000
-RDATE:19951022T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:BDST
-DTSTART:19410504T020000
-RDATE:19410504T020000
-RDATE:19420405T020000
-RDATE:19430404T020000
-RDATE:19440402T020000
-RDATE:19450402T020000
-RDATE:19470413T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:BST
-DTSTART:19410810T030000
-RDATE:19410810T030000
-RDATE:19420809T030000
-RDATE:19430815T030000
-RDATE:19440917T030000
-RDATE:19450715T030000
-RDATE:19470810T030000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0100
-TZNAME:BST
-DTSTART:19681027T000000
-RDATE:19681027T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0000
-TZNAME:GMT
-DTSTART:19960101T000000
-RDATE:19960101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Kaliningrad.ics b/libkcal/libical/zoneinfo/Europe/Kaliningrad.ics
deleted file mode 100644
index a9db994a..00000000
--- a/libkcal/libical/zoneinfo/Europe/Kaliningrad.ics
+++ /dev/null
@@ -1,138 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Kaliningrad
-X-LIC-LOCATION:Europe/Kaliningrad
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19930328T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19961027T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0122
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:18930401T000000
-RDATE:18930401T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19160430T230000
-RDATE:19160430T230000
-RDATE:19170416T020000
-RDATE:19180415T020000
-RDATE:19400401T020000
-RDATE:19430329T020000
-RDATE:19440403T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19161001T010000
-RDATE:19161001T010000
-RDATE:19170917T030000
-RDATE:19180916T030000
-RDATE:19421102T030000
-RDATE:19431004T030000
-RDATE:19441002T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CET
-DTSTART:19450101T000000
-RDATE:19450101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:CEST
-DTSTART:19450429T000000
-RDATE:19450429T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:CET
-DTSTART:19451101T000000
-RDATE:19451101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:MSK
-DTSTART:19460101T000000
-RDATE:19460101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0400
-TZNAME:MSD
-DTSTART:19810401T000000
-RDATE:19810401T000000
-RDATE:19820401T000000
-RDATE:19830401T000000
-RDATE:19840401T000000
-RDATE:19850331T020000
-RDATE:19860330T020000
-RDATE:19870329T020000
-RDATE:19880327T020000
-RDATE:19890326T020000
-RDATE:19900325T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0300
-TZNAME:MSK
-DTSTART:19811001T000000
-RDATE:19811001T000000
-RDATE:19821001T000000
-RDATE:19831001T000000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19910331T020000
-RDATE:19910331T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19910929T030000
-RDATE:19910929T030000
-RDATE:19920926T230000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19920328T230000
-RDATE:19920328T230000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Kiev.ics b/libkcal/libical/zoneinfo/Europe/Kiev.ics
deleted file mode 100644
index 5c85fca6..00000000
--- a/libkcal/libical/zoneinfo/Europe/Kiev.ics
+++ /dev/null
@@ -1,137 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Kiev
-X-LIC-LOCATION:Europe/Kiev
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19950326T030000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19961027T040000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+020204
-TZOFFSETTO:+020204
-TZNAME:KMT
-DTSTART:18800101T000000
-RDATE:18800101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+020204
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19240502T000000
-RDATE:19240502T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:MSK
-DTSTART:19300621T000000
-RDATE:19300621T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19410920T000000
-RDATE:19410920T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19421102T030000
-RDATE:19421102T030000
-RDATE:19431004T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19430329T020000
-RDATE:19430329T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0300
-TZNAME:MSK
-DTSTART:19431106T000000
-RDATE:19431106T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0400
-TZNAME:MSD
-DTSTART:19810401T000000
-RDATE:19810401T000000
-RDATE:19820401T000000
-RDATE:19830401T000000
-RDATE:19840401T000000
-RDATE:19850331T020000
-RDATE:19860330T020000
-RDATE:19870329T020000
-RDATE:19880327T020000
-RDATE:19890326T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0300
-TZNAME:MSK
-DTSTART:19811001T000000
-RDATE:19811001T000000
-RDATE:19821001T000000
-RDATE:19831001T000000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0300
-TZNAME:MSK
-DTSTART:19900101T000000
-RDATE:19900101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19900701T020000
-RDATE:19900701T020000
-RDATE:19920927T000000
-RDATE:19930926T000000
-RDATE:19940925T000000
-RDATE:19950924T040000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19920101T000000
-RDATE:19920101T000000
-RDATE:19950101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19920329T000000
-RDATE:19920329T000000
-RDATE:19930328T000000
-RDATE:19940327T000000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Lisbon.ics b/libkcal/libical/zoneinfo/Europe/Lisbon.ics
deleted file mode 100644
index e957eb6d..00000000
--- a/libkcal/libical/zoneinfo/Europe/Lisbon.ics
+++ /dev/null
@@ -1,227 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Lisbon
-X-LIC-LOCATION:Europe/Lisbon
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0000
-TZNAME:WET
-DTSTART:19961027T020000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0100
-TZNAME:WEST
-DTSTART:19970330T010000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-003632
-TZOFFSETTO:-003632
-TZNAME:LMT
-DTSTART:18840101T000000
-RDATE:18840101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-003632
-TZOFFSETTO:+0000
-TZNAME:WET
-DTSTART:19120101T000000
-RDATE:19120101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0100
-TZNAME:WEST
-DTSTART:19160617T230000
-RDATE:19160617T230000
-RDATE:19170228T230000
-RDATE:19180301T230000
-RDATE:19190228T230000
-RDATE:19200229T230000
-RDATE:19210228T230000
-RDATE:19240416T230000
-RDATE:19260417T230000
-RDATE:19270409T230000
-RDATE:19280414T230000
-RDATE:19290420T230000
-RDATE:19310418T230000
-RDATE:19320402T230000
-RDATE:19340407T230000
-RDATE:19350330T230000
-RDATE:19360418T230000
-RDATE:19370403T230000
-RDATE:19380326T230000
-RDATE:19390415T230000
-RDATE:19400224T230000
-RDATE:19410405T230000
-RDATE:19420314T230000
-RDATE:19430313T230000
-RDATE:19440311T230000
-RDATE:19450310T230000
-RDATE:19460406T230000
-RDATE:19470406T020000
-RDATE:19480404T020000
-RDATE:19490403T020000
-RDATE:19510401T020000
-RDATE:19520406T020000
-RDATE:19530405T020000
-RDATE:19540404T020000
-RDATE:19550403T020000
-RDATE:19560401T020000
-RDATE:19570407T020000
-RDATE:19580406T020000
-RDATE:19590405T020000
-RDATE:19600403T020000
-RDATE:19610402T020000
-RDATE:19620401T020000
-RDATE:19630407T020000
-RDATE:19640405T020000
-RDATE:19650404T020000
-RDATE:19770327T000000
-RDATE:19780402T000000
-RDATE:19790401T000000
-RDATE:19800330T000000
-RDATE:19810329T010000
-RDATE:19820328T010000
-RDATE:19830327T020000
-RDATE:19840325T010000
-RDATE:19850331T010000
-RDATE:19860330T010000
-RDATE:19870329T010000
-RDATE:19880327T010000
-RDATE:19890326T010000
-RDATE:19900325T010000
-RDATE:19910331T010000
-RDATE:19920329T010000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0000
-TZNAME:WET
-DTSTART:19161101T010000
-RDATE:19161101T010000
-RDATE:19171015T000000
-RDATE:19181015T000000
-RDATE:19191015T000000
-RDATE:19201015T000000
-RDATE:19211015T000000
-RDATE:19241015T000000
-RDATE:19261003T000000
-RDATE:19271002T000000
-RDATE:19281007T000000
-RDATE:19291006T000000
-RDATE:19311004T000000
-RDATE:19321002T000000
-RDATE:19341007T000000
-RDATE:19351006T000000
-RDATE:19361004T000000
-RDATE:19371003T000000
-RDATE:19381002T000000
-RDATE:19391119T000000
-RDATE:19401006T000000
-RDATE:19411006T000000
-RDATE:19421025T000000
-RDATE:19431031T000000
-RDATE:19441029T000000
-RDATE:19451028T000000
-RDATE:19461006T000000
-RDATE:19471005T030000
-RDATE:19481003T030000
-RDATE:19491002T030000
-RDATE:19511007T030000
-RDATE:19521005T030000
-RDATE:19531004T030000
-RDATE:19541003T030000
-RDATE:19551002T030000
-RDATE:19561007T030000
-RDATE:19571006T030000
-RDATE:19581005T030000
-RDATE:19591004T030000
-RDATE:19601002T030000
-RDATE:19611001T030000
-RDATE:19621007T030000
-RDATE:19631006T030000
-RDATE:19641004T030000
-RDATE:19651003T030000
-RDATE:19760926T010000
-RDATE:19770925T010000
-RDATE:19781001T010000
-RDATE:19790930T020000
-RDATE:19800928T020000
-RDATE:19810927T020000
-RDATE:19820926T020000
-RDATE:19830925T020000
-RDATE:19840930T020000
-RDATE:19850929T020000
-RDATE:19860928T020000
-RDATE:19870927T020000
-RDATE:19880925T020000
-RDATE:19890924T020000
-RDATE:19900930T020000
-RDATE:19910929T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:WEMT
-DTSTART:19420425T230000
-RDATE:19420425T230000
-RDATE:19430417T230000
-RDATE:19440422T230000
-RDATE:19450421T230000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:WEST
-DTSTART:19420816T000000
-RDATE:19420816T000000
-RDATE:19430829T000000
-RDATE:19440827T000000
-RDATE:19450826T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19660403T020000
-RDATE:19660403T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19920927T020000
-RDATE:19920927T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19930328T020000
-RDATE:19930328T020000
-RDATE:19940327T020000
-RDATE:19950326T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19930926T030000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0100
-TZNAME:WEST
-DTSTART:19960331T020000
-RDATE:19960331T020000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Ljubljana.ics b/libkcal/libical/zoneinfo/Europe/Ljubljana.ics
deleted file mode 100644
index 61e267e1..00000000
--- a/libkcal/libical/zoneinfo/Europe/Ljubljana.ics
+++ /dev/null
@@ -1,69 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Ljubljana
-X-LIC-LOCATION:Europe/Ljubljana
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19830327T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19961027T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0122
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:18840101T000000
-RDATE:18840101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19410418T230000
-RDATE:19410418T230000
-RDATE:19430329T020000
-RDATE:19440403T020000
-RDATE:19450508T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19421102T030000
-RDATE:19421102T030000
-RDATE:19431004T030000
-RDATE:19441002T030000
-RDATE:19450916T030000
-RDATE:19830925T030000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19910929T030000
-RDATE:19920927T030000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19821127T000000
-RDATE:19821127T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/London.ics b/libkcal/libical/zoneinfo/Europe/London.ics
deleted file mode 100644
index 56bca0cf..00000000
--- a/libkcal/libical/zoneinfo/Europe/London.ics
+++ /dev/null
@@ -1,208 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/London
-X-LIC-LOCATION:Europe/London
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0100
-TZNAME:BST
-DTSTART:19810329T010000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0000
-TZNAME:GMT
-DTSTART:19961027T020000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-000115
-TZOFFSETTO:+0000
-TZNAME:GMT
-DTSTART:18471201T000000
-RDATE:18471201T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0100
-TZNAME:BST
-DTSTART:19160521T020000
-RDATE:19160521T020000
-RDATE:19170408T020000
-RDATE:19180324T020000
-RDATE:19190330T020000
-RDATE:19200328T020000
-RDATE:19210403T020000
-RDATE:19220326T020000
-RDATE:19230422T020000
-RDATE:19240413T020000
-RDATE:19250419T020000
-RDATE:19260418T020000
-RDATE:19270410T020000
-RDATE:19280422T020000
-RDATE:19290421T020000
-RDATE:19300413T020000
-RDATE:19310419T020000
-RDATE:19320417T020000
-RDATE:19330409T020000
-RDATE:19340422T020000
-RDATE:19350414T020000
-RDATE:19360419T020000
-RDATE:19370418T020000
-RDATE:19380410T020000
-RDATE:19390416T020000
-RDATE:19400225T020000
-RDATE:19460414T020000
-RDATE:19470316T020000
-RDATE:19480314T020000
-RDATE:19490403T020000
-RDATE:19500416T020000
-RDATE:19510415T020000
-RDATE:19520420T020000
-RDATE:19530419T020000
-RDATE:19540411T020000
-RDATE:19550417T020000
-RDATE:19560422T020000
-RDATE:19570414T020000
-RDATE:19580420T020000
-RDATE:19590419T020000
-RDATE:19600410T020000
-RDATE:19610326T020000
-RDATE:19620325T020000
-RDATE:19630331T020000
-RDATE:19640322T020000
-RDATE:19650321T020000
-RDATE:19660320T020000
-RDATE:19670319T020000
-RDATE:19680218T020000
-RDATE:19720319T020000
-RDATE:19730318T020000
-RDATE:19740317T020000
-RDATE:19750316T020000
-RDATE:19760321T020000
-RDATE:19770320T020000
-RDATE:19780319T020000
-RDATE:19790318T020000
-RDATE:19800316T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0000
-TZNAME:GMT
-DTSTART:19161001T030000
-RDATE:19161001T030000
-RDATE:19170917T030000
-RDATE:19180930T030000
-RDATE:19190929T030000
-RDATE:19201025T030000
-RDATE:19211003T030000
-RDATE:19221008T030000
-RDATE:19230916T030000
-RDATE:19240921T030000
-RDATE:19251004T030000
-RDATE:19261003T030000
-RDATE:19271002T030000
-RDATE:19281007T030000
-RDATE:19291006T030000
-RDATE:19301005T030000
-RDATE:19311004T030000
-RDATE:19321002T030000
-RDATE:19331008T030000
-RDATE:19341007T030000
-RDATE:19351006T030000
-RDATE:19361004T030000
-RDATE:19371003T030000
-RDATE:19381002T030000
-RDATE:19391119T030000
-RDATE:19451007T030000
-RDATE:19461006T030000
-RDATE:19471102T030000
-RDATE:19481031T030000
-RDATE:19491030T030000
-RDATE:19501022T030000
-RDATE:19511021T030000
-RDATE:19521026T030000
-RDATE:19531004T030000
-RDATE:19541003T030000
-RDATE:19551002T030000
-RDATE:19561007T030000
-RDATE:19571006T030000
-RDATE:19581005T030000
-RDATE:19591004T030000
-RDATE:19601002T030000
-RDATE:19611029T030000
-RDATE:19621028T030000
-RDATE:19631027T030000
-RDATE:19641025T030000
-RDATE:19651024T030000
-RDATE:19661023T030000
-RDATE:19671029T030000
-RDATE:19711031T030000
-RDATE:19721029T030000
-RDATE:19731028T030000
-RDATE:19741027T030000
-RDATE:19751026T030000
-RDATE:19761024T030000
-RDATE:19771023T030000
-RDATE:19781029T030000
-RDATE:19791028T030000
-RDATE:19801026T030000
-RDATE:19811025T020000
-RDATE:19821024T020000
-RDATE:19831023T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861026T020000
-RDATE:19871025T020000
-RDATE:19881023T020000
-RDATE:19891029T020000
-RDATE:19901028T020000
-RDATE:19911027T020000
-RDATE:19921025T020000
-RDATE:19931024T020000
-RDATE:19941023T020000
-RDATE:19951022T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:BDST
-DTSTART:19410504T020000
-RDATE:19410504T020000
-RDATE:19420405T020000
-RDATE:19430404T020000
-RDATE:19440402T020000
-RDATE:19450402T020000
-RDATE:19470413T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:BST
-DTSTART:19410810T030000
-RDATE:19410810T030000
-RDATE:19420809T030000
-RDATE:19430815T030000
-RDATE:19440917T030000
-RDATE:19450715T030000
-RDATE:19470810T030000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0100
-TZNAME:BST
-DTSTART:19681027T000000
-RDATE:19681027T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0000
-TZNAME:GMT
-DTSTART:19960101T000000
-RDATE:19960101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Luxembourg.ics b/libkcal/libical/zoneinfo/Europe/Luxembourg.ics
deleted file mode 100644
index 35405628..00000000
--- a/libkcal/libical/zoneinfo/Europe/Luxembourg.ics
+++ /dev/null
@@ -1,155 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Luxembourg
-X-LIC-LOCATION:Europe/Luxembourg
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19810329T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19961027T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+002436
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19040601T000000
-RDATE:19040601T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19160514T230000
-RDATE:19160514T230000
-RDATE:19170428T230000
-RDATE:19180415T020000
-RDATE:19450402T020000
-RDATE:19460519T020000
-RDATE:19770403T020000
-RDATE:19780402T020000
-RDATE:19790401T020000
-RDATE:19800406T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19161001T010000
-RDATE:19161001T010000
-RDATE:19170917T010000
-RDATE:19180916T030000
-RDATE:19440918T030000
-RDATE:19450916T030000
-RDATE:19461007T030000
-RDATE:19770925T030000
-RDATE:19781001T030000
-RDATE:19790930T030000
-RDATE:19800928T030000
-RDATE:19810927T030000
-RDATE:19820926T030000
-RDATE:19830925T030000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19910929T030000
-RDATE:19920927T030000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0000
-TZNAME:WET
-DTSTART:19181125T000000
-RDATE:19181125T000000
-RDATE:19191005T030000
-RDATE:19201024T020000
-RDATE:19211026T020000
-RDATE:19221008T010000
-RDATE:19231007T020000
-RDATE:19241005T010000
-RDATE:19251004T010000
-RDATE:19261003T010000
-RDATE:19271002T010000
-RDATE:19281007T010000
-RDATE:19291006T030000
-RDATE:19301005T030000
-RDATE:19311004T030000
-RDATE:19321002T030000
-RDATE:19331008T030000
-RDATE:19341007T030000
-RDATE:19351006T030000
-RDATE:19361004T030000
-RDATE:19371003T030000
-RDATE:19381002T030000
-RDATE:19391119T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0100
-TZNAME:WEST
-DTSTART:19190301T230000
-RDATE:19190301T230000
-RDATE:19200214T230000
-RDATE:19210314T230000
-RDATE:19220325T230000
-RDATE:19230421T230000
-RDATE:19240329T230000
-RDATE:19250405T230000
-RDATE:19260417T230000
-RDATE:19270409T230000
-RDATE:19280414T230000
-RDATE:19290420T230000
-RDATE:19300413T020000
-RDATE:19310419T020000
-RDATE:19320403T020000
-RDATE:19330326T020000
-RDATE:19340408T020000
-RDATE:19350331T020000
-RDATE:19360419T020000
-RDATE:19370404T020000
-RDATE:19380327T020000
-RDATE:19390416T020000
-RDATE:19400225T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:WEST
-DTSTART:19400514T030000
-RDATE:19400514T030000
-RDATE:19430329T020000
-RDATE:19440403T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:WET
-DTSTART:19421102T030000
-RDATE:19421102T030000
-RDATE:19431004T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19770101T000000
-RDATE:19770101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Madrid.ics b/libkcal/libical/zoneinfo/Europe/Madrid.ics
deleted file mode 100644
index 82125070..00000000
--- a/libkcal/libical/zoneinfo/Europe/Madrid.ics
+++ /dev/null
@@ -1,136 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Madrid
-X-LIC-LOCATION:Europe/Madrid
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19810329T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19961027T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-001444
-TZOFFSETTO:+0000
-TZNAME:WET
-DTSTART:19010101T000000
-RDATE:19010101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0100
-TZNAME:WEST
-DTSTART:19170505T230000
-RDATE:19170505T230000
-RDATE:19180415T230000
-RDATE:19190405T230000
-RDATE:19240416T230000
-RDATE:19260417T230000
-RDATE:19270409T230000
-RDATE:19280414T230000
-RDATE:19290420T230000
-RDATE:19370522T230000
-RDATE:19380322T230000
-RDATE:19390415T230000
-RDATE:19400316T230000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0000
-TZNAME:WET
-DTSTART:19171007T000000
-RDATE:19171007T000000
-RDATE:19181007T000000
-RDATE:19191007T000000
-RDATE:19241005T000000
-RDATE:19261003T000000
-RDATE:19271002T000000
-RDATE:19281007T000000
-RDATE:19291006T000000
-RDATE:19371003T000000
-RDATE:19381002T000000
-RDATE:19391008T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:WEMT
-DTSTART:19420502T230000
-RDATE:19420502T230000
-RDATE:19430417T230000
-RDATE:19440415T230000
-RDATE:19450414T230000
-RDATE:19460413T230000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:WEST
-DTSTART:19420902T000000
-RDATE:19420902T000000
-RDATE:19431004T000000
-RDATE:19441011T000000
-RDATE:19450930T010000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19460930T000000
-RDATE:19460930T000000
-RDATE:19490930T010000
-RDATE:19741006T010000
-RDATE:19751005T010000
-RDATE:19760926T010000
-RDATE:19770925T010000
-RDATE:19781001T010000
-RDATE:19790930T030000
-RDATE:19800928T030000
-RDATE:19810927T030000
-RDATE:19820926T030000
-RDATE:19830925T030000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19910929T030000
-RDATE:19920927T030000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19490430T230000
-RDATE:19490430T230000
-RDATE:19740413T230000
-RDATE:19750419T230000
-RDATE:19760327T230000
-RDATE:19770402T230000
-RDATE:19780402T230000
-RDATE:19790401T020000
-RDATE:19800406T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19790101T000000
-RDATE:19790101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Malta.ics b/libkcal/libical/zoneinfo/Europe/Malta.ics
deleted file mode 100644
index 14a292a6..00000000
--- a/libkcal/libical/zoneinfo/Europe/Malta.ics
+++ /dev/null
@@ -1,117 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Malta
-X-LIC-LOCATION:Europe/Malta
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19810329T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19961027T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+005804
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:18931102T000000
-RDATE:18931102T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19160603T000000
-RDATE:19160603T000000
-RDATE:19170401T000000
-RDATE:19180310T000000
-RDATE:19190302T000000
-RDATE:19200321T000000
-RDATE:19400615T000000
-RDATE:19430329T020000
-RDATE:19440403T020000
-RDATE:19450402T020000
-RDATE:19460317T020000
-RDATE:19470316T000000
-RDATE:19480229T020000
-RDATE:19660522T000000
-RDATE:19670528T000000
-RDATE:19680526T000000
-RDATE:19690601T000000
-RDATE:19700531T000000
-RDATE:19710523T000000
-RDATE:19720528T000000
-RDATE:19730331T000000
-RDATE:19740421T000000
-RDATE:19750420T020000
-RDATE:19760418T020000
-RDATE:19770417T020000
-RDATE:19780416T020000
-RDATE:19790415T020000
-RDATE:19800331T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19161001T010000
-RDATE:19161001T010000
-RDATE:19170930T010000
-RDATE:19181006T010000
-RDATE:19191005T010000
-RDATE:19200919T010000
-RDATE:19421102T030000
-RDATE:19431004T030000
-RDATE:19441002T030000
-RDATE:19450915T010000
-RDATE:19461006T030000
-RDATE:19471005T010000
-RDATE:19481003T030000
-RDATE:19660925T000000
-RDATE:19670924T000000
-RDATE:19680922T000000
-RDATE:19690928T000000
-RDATE:19700927T000000
-RDATE:19710926T010000
-RDATE:19721001T000000
-RDATE:19730929T010000
-RDATE:19740916T010000
-RDATE:19750921T020000
-RDATE:19760919T020000
-RDATE:19770918T020000
-RDATE:19780917T020000
-RDATE:19790916T020000
-RDATE:19800921T020000
-RDATE:19810927T030000
-RDATE:19820926T030000
-RDATE:19830925T030000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19910929T030000
-RDATE:19920927T030000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19810101T000000
-RDATE:19810101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Mariehamn.ics b/libkcal/libical/zoneinfo/Europe/Mariehamn.ics
deleted file mode 100644
index 9b2b31a3..00000000
--- a/libkcal/libical/zoneinfo/Europe/Mariehamn.ics
+++ /dev/null
@@ -1,72 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Mariehamn
-X-LIC-LOCATION:Europe/Mariehamn
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19810329T030000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19961027T040000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+013952
-TZOFFSETTO:+013952
-TZNAME:HMT
-DTSTART:18780531T000000
-RDATE:18780531T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+013952
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19210501T000000
-RDATE:19210501T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19420403T000000
-RDATE:19420403T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19421003T000000
-RDATE:19421003T000000
-RDATE:19810927T040000
-RDATE:19820926T040000
-RDATE:19830925T040000
-RDATE:19840930T040000
-RDATE:19850929T040000
-RDATE:19860928T040000
-RDATE:19870927T040000
-RDATE:19880925T040000
-RDATE:19890924T040000
-RDATE:19900930T040000
-RDATE:19910929T040000
-RDATE:19920927T040000
-RDATE:19930926T040000
-RDATE:19940925T040000
-RDATE:19950924T040000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19810329T020000
-RDATE:19810329T020000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Minsk.ics b/libkcal/libical/zoneinfo/Europe/Minsk.ics
deleted file mode 100644
index 8039f595..00000000
--- a/libkcal/libical/zoneinfo/Europe/Minsk.ics
+++ /dev/null
@@ -1,129 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Minsk
-X-LIC-LOCATION:Europe/Minsk
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19930328T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19961027T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+015016
-TZOFFSETTO:+0150
-TZNAME:MMT
-DTSTART:18800101T000000
-RDATE:18800101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0150
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19240502T000000
-RDATE:19240502T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:MSK
-DTSTART:19300621T000000
-RDATE:19300621T000000
-RDATE:19440703T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19410628T000000
-RDATE:19410628T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19421102T030000
-RDATE:19421102T030000
-RDATE:19431004T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19430329T020000
-RDATE:19430329T020000
-RDATE:19440403T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0400
-TZNAME:MSD
-DTSTART:19810401T000000
-RDATE:19810401T000000
-RDATE:19820401T000000
-RDATE:19830401T000000
-RDATE:19840401T000000
-RDATE:19850331T020000
-RDATE:19860330T020000
-RDATE:19870329T020000
-RDATE:19880327T020000
-RDATE:19890326T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0300
-TZNAME:MSK
-DTSTART:19811001T000000
-RDATE:19811001T000000
-RDATE:19821001T000000
-RDATE:19831001T000000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0300
-TZNAME:MSK
-DTSTART:19900101T000000
-RDATE:19900101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19910331T020000
-RDATE:19910331T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19910929T030000
-RDATE:19910929T030000
-RDATE:19920927T010000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19920329T000000
-RDATE:19920329T000000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Monaco.ics b/libkcal/libical/zoneinfo/Europe/Monaco.ics
deleted file mode 100644
index d7aedb7d..00000000
--- a/libkcal/libical/zoneinfo/Europe/Monaco.ics
+++ /dev/null
@@ -1,163 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Monaco
-X-LIC-LOCATION:Europe/Monaco
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19810329T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19961027T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+002932
-TZOFFSETTO:+000921
-TZNAME:PMT
-DTSTART:18910315T000000
-RDATE:18910315T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+000921
-TZOFFSETTO:+0000
-TZNAME:WET
-DTSTART:19110311T000000
-RDATE:19110311T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0100
-TZNAME:WEST
-DTSTART:19160614T230000
-RDATE:19160614T230000
-RDATE:19170324T230000
-RDATE:19180309T230000
-RDATE:19190301T230000
-RDATE:19200214T230000
-RDATE:19210314T230000
-RDATE:19220325T230000
-RDATE:19230526T230000
-RDATE:19240329T230000
-RDATE:19250404T230000
-RDATE:19260417T230000
-RDATE:19270409T230000
-RDATE:19280414T230000
-RDATE:19290420T230000
-RDATE:19300412T230000
-RDATE:19310418T230000
-RDATE:19320402T230000
-RDATE:19330325T230000
-RDATE:19340407T230000
-RDATE:19350330T230000
-RDATE:19360418T230000
-RDATE:19370403T230000
-RDATE:19380326T230000
-RDATE:19390415T230000
-RDATE:19400225T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0000
-TZNAME:WET
-DTSTART:19161002T000000
-RDATE:19161002T000000
-RDATE:19171008T000000
-RDATE:19181007T000000
-RDATE:19191006T000000
-RDATE:19201024T000000
-RDATE:19211026T000000
-RDATE:19221008T000000
-RDATE:19231007T000000
-RDATE:19241005T000000
-RDATE:19251004T000000
-RDATE:19261003T000000
-RDATE:19271002T000000
-RDATE:19281007T000000
-RDATE:19291006T000000
-RDATE:19301005T000000
-RDATE:19311004T000000
-RDATE:19321002T000000
-RDATE:19331008T000000
-RDATE:19341007T000000
-RDATE:19351006T000000
-RDATE:19361004T000000
-RDATE:19371003T000000
-RDATE:19381002T000000
-RDATE:19391119T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:WEMT
-DTSTART:19410505T000000
-RDATE:19410505T000000
-RDATE:19420309T000000
-RDATE:19430329T020000
-RDATE:19440403T020000
-RDATE:19450402T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:WEST
-DTSTART:19411006T000000
-RDATE:19411006T000000
-RDATE:19421102T030000
-RDATE:19431004T030000
-RDATE:19441008T010000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19450916T030000
-RDATE:19450916T030000
-RDATE:19760926T010000
-RDATE:19770925T030000
-RDATE:19781001T030000
-RDATE:19790930T030000
-RDATE:19800928T030000
-RDATE:19810927T030000
-RDATE:19820926T030000
-RDATE:19830925T030000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19910929T030000
-RDATE:19920927T030000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19760328T010000
-RDATE:19760328T010000
-RDATE:19770403T020000
-RDATE:19780402T020000
-RDATE:19790401T020000
-RDATE:19800406T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19770101T000000
-RDATE:19770101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Moscow.ics b/libkcal/libical/zoneinfo/Europe/Moscow.ics
deleted file mode 100644
index 59f01771..00000000
--- a/libkcal/libical/zoneinfo/Europe/Moscow.ics
+++ /dev/null
@@ -1,155 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Moscow
-X-LIC-LOCATION:Europe/Moscow
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0400
-TZNAME:MSD
-DTSTART:19930328T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0300
-TZNAME:MSK
-DTSTART:19961027T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+023020
-TZOFFSETTO:+0230
-TZNAME:MMT
-DTSTART:18800101T000000
-RDATE:18800101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0230
-TZOFFSETTO:+023048
-TZNAME:MMT
-DTSTART:19160703T000000
-RDATE:19160703T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+023048
-TZOFFSETTO:+033048
-TZNAME:MST
-DTSTART:19170701T230000
-RDATE:19170701T230000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+033048
-TZOFFSETTO:+023048
-TZNAME:MMT
-DTSTART:19171228T000000
-RDATE:19171228T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+023048
-TZOFFSETTO:+043048
-TZNAME:MDST
-DTSTART:19180531T220000
-RDATE:19180531T220000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+043048
-TZOFFSETTO:+033048
-TZNAME:MST
-DTSTART:19180916T010000
-RDATE:19180916T010000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+033048
-TZOFFSETTO:+043048
-TZNAME:MDST
-DTSTART:19190531T230000
-RDATE:19190531T230000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+043048
-TZOFFSETTO:+0400
-TZNAME:MSD
-DTSTART:19190701T020000
-RDATE:19190701T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0300
-TZNAME:MSK
-DTSTART:19190816T000000
-RDATE:19190816T000000
-RDATE:19211001T000000
-RDATE:19811001T000000
-RDATE:19821001T000000
-RDATE:19831001T000000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19920926T230000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0400
-TZNAME:MSD
-DTSTART:19210214T230000
-RDATE:19210214T230000
-RDATE:19810401T000000
-RDATE:19820401T000000
-RDATE:19830401T000000
-RDATE:19840401T000000
-RDATE:19850331T020000
-RDATE:19860330T020000
-RDATE:19870329T020000
-RDATE:19880327T020000
-RDATE:19890326T020000
-RDATE:19900325T020000
-RDATE:19920328T230000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0500
-TZNAME:MSD
-DTSTART:19210320T230000
-RDATE:19210320T230000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0400
-TZNAME:MSD
-DTSTART:19210901T000000
-RDATE:19210901T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19221001T000000
-RDATE:19221001T000000
-RDATE:19910929T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:MSK
-DTSTART:19300621T000000
-RDATE:19300621T000000
-RDATE:19920119T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19910331T020000
-RDATE:19910331T020000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Nicosia.ics b/libkcal/libical/zoneinfo/Europe/Nicosia.ics
deleted file mode 100644
index d3302576..00000000
--- a/libkcal/libical/zoneinfo/Europe/Nicosia.ics
+++ /dev/null
@@ -1,95 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Nicosia
-X-LIC-LOCATION:Europe/Nicosia
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19981025T040000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19990328T030000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+021328
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19211114T000000
-RDATE:19211114T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19750413T000000
-RDATE:19750413T000000
-RDATE:19760515T000000
-RDATE:19770403T000000
-RDATE:19780402T000000
-RDATE:19790401T000000
-RDATE:19800406T000000
-RDATE:19810329T000000
-RDATE:19820328T000000
-RDATE:19830327T000000
-RDATE:19840325T000000
-RDATE:19850331T000000
-RDATE:19860330T000000
-RDATE:19870329T000000
-RDATE:19880327T000000
-RDATE:19890326T000000
-RDATE:19900325T000000
-RDATE:19910331T000000
-RDATE:19920329T000000
-RDATE:19930328T000000
-RDATE:19940327T000000
-RDATE:19950326T000000
-RDATE:19960331T000000
-RDATE:19970330T000000
-RDATE:19980329T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19751012T000000
-RDATE:19751012T000000
-RDATE:19761011T000000
-RDATE:19770925T000000
-RDATE:19781002T000000
-RDATE:19790930T000000
-RDATE:19800928T000000
-RDATE:19810927T000000
-RDATE:19820926T000000
-RDATE:19830925T000000
-RDATE:19840930T000000
-RDATE:19850929T000000
-RDATE:19860928T000000
-RDATE:19870927T000000
-RDATE:19880925T000000
-RDATE:19890924T000000
-RDATE:19900930T000000
-RDATE:19910929T000000
-RDATE:19920927T000000
-RDATE:19930926T000000
-RDATE:19940925T000000
-RDATE:19950924T000000
-RDATE:19960929T000000
-RDATE:19970928T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19980901T000000
-RDATE:19980901T000000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Oslo.ics b/libkcal/libical/zoneinfo/Europe/Oslo.ics
deleted file mode 100644
index 38b5fc85..00000000
--- a/libkcal/libical/zoneinfo/Europe/Oslo.ics
+++ /dev/null
@@ -1,89 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Oslo
-X-LIC-LOCATION:Europe/Oslo
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19810329T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19961027T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0043
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:18950101T000000
-RDATE:18950101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19160522T010000
-RDATE:19160522T010000
-RDATE:19400810T230000
-RDATE:19430329T020000
-RDATE:19440403T020000
-RDATE:19450402T020000
-RDATE:19590315T020000
-RDATE:19600320T020000
-RDATE:19610319T020000
-RDATE:19620318T020000
-RDATE:19630317T020000
-RDATE:19640315T020000
-RDATE:19650425T020000
-RDATE:19800406T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19160930T000000
-RDATE:19160930T000000
-RDATE:19421102T030000
-RDATE:19431004T030000
-RDATE:19441002T030000
-RDATE:19451001T030000
-RDATE:19590920T030000
-RDATE:19600918T030000
-RDATE:19610917T030000
-RDATE:19620916T030000
-RDATE:19630915T030000
-RDATE:19640920T030000
-RDATE:19650919T030000
-RDATE:19800928T030000
-RDATE:19810927T030000
-RDATE:19820926T030000
-RDATE:19830925T030000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19910929T030000
-RDATE:19920927T030000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19800101T000000
-RDATE:19800101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Paris.ics b/libkcal/libical/zoneinfo/Europe/Paris.ics
deleted file mode 100644
index 19f268a8..00000000
--- a/libkcal/libical/zoneinfo/Europe/Paris.ics
+++ /dev/null
@@ -1,168 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Paris
-X-LIC-LOCATION:Europe/Paris
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19810329T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19961027T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+000921
-TZOFFSETTO:+000921
-TZNAME:PMT
-DTSTART:18910315T000100
-RDATE:18910315T000100
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+000921
-TZOFFSETTO:+0000
-TZNAME:WET
-DTSTART:19110311T000100
-RDATE:19110311T000100
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0100
-TZNAME:WEST
-DTSTART:19160614T230000
-RDATE:19160614T230000
-RDATE:19170324T230000
-RDATE:19180309T230000
-RDATE:19190301T230000
-RDATE:19200214T230000
-RDATE:19210314T230000
-RDATE:19220325T230000
-RDATE:19230526T230000
-RDATE:19240329T230000
-RDATE:19250404T230000
-RDATE:19260417T230000
-RDATE:19270409T230000
-RDATE:19280414T230000
-RDATE:19290420T230000
-RDATE:19300412T230000
-RDATE:19310418T230000
-RDATE:19320402T230000
-RDATE:19330325T230000
-RDATE:19340407T230000
-RDATE:19350330T230000
-RDATE:19360418T230000
-RDATE:19370403T230000
-RDATE:19380326T230000
-RDATE:19390415T230000
-RDATE:19400225T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0000
-TZNAME:WET
-DTSTART:19161002T000000
-RDATE:19161002T000000
-RDATE:19171008T000000
-RDATE:19181007T000000
-RDATE:19191006T000000
-RDATE:19201024T000000
-RDATE:19211026T000000
-RDATE:19221008T000000
-RDATE:19231007T000000
-RDATE:19241005T000000
-RDATE:19251004T000000
-RDATE:19261003T000000
-RDATE:19271002T000000
-RDATE:19281007T000000
-RDATE:19291006T000000
-RDATE:19301005T000000
-RDATE:19311004T000000
-RDATE:19321002T000000
-RDATE:19331008T000000
-RDATE:19341007T000000
-RDATE:19351006T000000
-RDATE:19361004T000000
-RDATE:19371003T000000
-RDATE:19381002T000000
-RDATE:19391119T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19400614T230000
-RDATE:19400614T230000
-RDATE:19430329T020000
-RDATE:19440403T020000
-RDATE:19760328T010000
-RDATE:19770403T020000
-RDATE:19780402T020000
-RDATE:19790401T020000
-RDATE:19800406T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19421102T030000
-RDATE:19421102T030000
-RDATE:19431004T030000
-RDATE:19450916T030000
-RDATE:19760926T010000
-RDATE:19770925T030000
-RDATE:19781001T030000
-RDATE:19790930T030000
-RDATE:19800928T030000
-RDATE:19810927T030000
-RDATE:19820926T030000
-RDATE:19830925T030000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19910929T030000
-RDATE:19920927T030000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0200
-TZNAME:WEMT
-DTSTART:19440825T000000
-RDATE:19440825T000000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:WEST
-DTSTART:19441008T010000
-RDATE:19441008T010000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:WEMT
-DTSTART:19450402T020000
-RDATE:19450402T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19770101T000000
-RDATE:19770101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Podgorica.ics b/libkcal/libical/zoneinfo/Europe/Podgorica.ics
deleted file mode 100644
index fef823b7..00000000
--- a/libkcal/libical/zoneinfo/Europe/Podgorica.ics
+++ /dev/null
@@ -1,69 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Podgorica
-X-LIC-LOCATION:Europe/Podgorica
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19830327T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19961027T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0122
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:18840101T000000
-RDATE:18840101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19410418T230000
-RDATE:19410418T230000
-RDATE:19430329T020000
-RDATE:19440403T020000
-RDATE:19450508T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19421102T030000
-RDATE:19421102T030000
-RDATE:19431004T030000
-RDATE:19441002T030000
-RDATE:19450916T030000
-RDATE:19830925T030000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19910929T030000
-RDATE:19920927T030000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19821127T000000
-RDATE:19821127T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Prague.ics b/libkcal/libical/zoneinfo/Europe/Prague.ics
deleted file mode 100644
index b88970b2..00000000
--- a/libkcal/libical/zoneinfo/Europe/Prague.ics
+++ /dev/null
@@ -1,96 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Prague
-X-LIC-LOCATION:Europe/Prague
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19810329T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19961027T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+005744
-TZOFFSETTO:+005744
-TZNAME:PMT
-DTSTART:18500101T000000
-RDATE:18500101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+005744
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:18911001T000000
-RDATE:18911001T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19160430T230000
-RDATE:19160430T230000
-RDATE:19170416T020000
-RDATE:19180415T020000
-RDATE:19400401T020000
-RDATE:19430329T020000
-RDATE:19440403T020000
-RDATE:19450408T020000
-RDATE:19460506T020000
-RDATE:19470420T020000
-RDATE:19480418T020000
-RDATE:19490409T020000
-RDATE:19790401T020000
-RDATE:19800406T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19161001T010000
-RDATE:19161001T010000
-RDATE:19170917T030000
-RDATE:19180916T030000
-RDATE:19421102T030000
-RDATE:19431004T030000
-RDATE:19440917T030000
-RDATE:19451118T030000
-RDATE:19461006T030000
-RDATE:19471005T030000
-RDATE:19481003T030000
-RDATE:19491002T030000
-RDATE:19790930T030000
-RDATE:19800928T030000
-RDATE:19810927T030000
-RDATE:19820926T030000
-RDATE:19830925T030000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19910929T030000
-RDATE:19920927T030000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19790101T000000
-RDATE:19790101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Riga.ics b/libkcal/libical/zoneinfo/Europe/Riga.ics
deleted file mode 100644
index 46c61b93..00000000
--- a/libkcal/libical/zoneinfo/Europe/Riga.ics
+++ /dev/null
@@ -1,167 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Riga
-X-LIC-LOCATION:Europe/Riga
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:20010325T030000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:20011028T040000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+013624
-TZOFFSETTO:+013624
-TZNAME:RMT
-DTSTART:18800101T000000
-RDATE:18800101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+013624
-TZOFFSETTO:+023624
-TZNAME:LST
-DTSTART:19180415T020000
-RDATE:19180415T020000
-RDATE:19190401T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+023624
-TZOFFSETTO:+013624
-TZNAME:RMT
-DTSTART:19180916T030000
-RDATE:19180916T030000
-RDATE:19190522T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+013624
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19260511T000000
-RDATE:19260511T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:MSK
-DTSTART:19400805T000000
-RDATE:19400805T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19410701T000000
-RDATE:19410701T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19421102T030000
-RDATE:19421102T030000
-RDATE:19431004T030000
-RDATE:19441002T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19430329T020000
-RDATE:19430329T020000
-RDATE:19440403T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0300
-TZNAME:MSK
-DTSTART:19441013T000000
-RDATE:19441013T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0400
-TZNAME:MSD
-DTSTART:19810401T000000
-RDATE:19810401T000000
-RDATE:19820401T000000
-RDATE:19830401T000000
-RDATE:19840401T000000
-RDATE:19850331T020000
-RDATE:19860330T020000
-RDATE:19870329T020000
-RDATE:19880327T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0300
-TZNAME:MSK
-DTSTART:19811001T000000
-RDATE:19811001T000000
-RDATE:19821001T000000
-RDATE:19831001T000000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19890326T020000
-RDATE:19890326T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19890924T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19910929T030000
-RDATE:19920927T030000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-RDATE:19960929T030000
-RDATE:19971026T040000
-RDATE:19981025T040000
-RDATE:19991031T040000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19900325T020000
-RDATE:19900325T020000
-RDATE:19910331T020000
-RDATE:19920329T020000
-RDATE:19930328T020000
-RDATE:19940327T020000
-RDATE:19950326T020000
-RDATE:19960331T020000
-RDATE:19970330T030000
-RDATE:19980329T030000
-RDATE:19990328T030000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19970121T000000
-RDATE:19970121T000000
-RDATE:20000229T000000
-RDATE:20010102T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Rome.ics b/libkcal/libical/zoneinfo/Europe/Rome.ics
deleted file mode 100644
index 3e7d7db3..00000000
--- a/libkcal/libical/zoneinfo/Europe/Rome.ics
+++ /dev/null
@@ -1,131 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Rome
-X-LIC-LOCATION:Europe/Rome
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19810329T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19961027T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+004956
-TZOFFSETTO:+004956
-TZNAME:RMT
-DTSTART:18660922T000000
-RDATE:18660922T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+004956
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:18931101T000000
-RDATE:18931101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19160603T000000
-RDATE:19160603T000000
-RDATE:19170401T000000
-RDATE:19180310T000000
-RDATE:19190302T000000
-RDATE:19200321T000000
-RDATE:19400615T000000
-RDATE:19430329T020000
-RDATE:19440403T020000
-RDATE:19450402T020000
-RDATE:19460317T020000
-RDATE:19470316T000000
-RDATE:19480229T020000
-RDATE:19660522T000000
-RDATE:19670528T000000
-RDATE:19680526T000000
-RDATE:19690601T000000
-RDATE:19700531T000000
-RDATE:19710523T000000
-RDATE:19720528T000000
-RDATE:19730603T000000
-RDATE:19740526T000000
-RDATE:19750601T000000
-RDATE:19760530T000000
-RDATE:19770522T000000
-RDATE:19780528T000000
-RDATE:19790527T000000
-RDATE:19800406T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19161001T010000
-RDATE:19161001T010000
-RDATE:19170930T010000
-RDATE:19181006T010000
-RDATE:19191005T010000
-RDATE:19200919T010000
-RDATE:19421102T030000
-RDATE:19431004T030000
-RDATE:19440917T010000
-RDATE:19450915T010000
-RDATE:19461006T030000
-RDATE:19471005T010000
-RDATE:19481003T030000
-RDATE:19660925T000000
-RDATE:19670924T000000
-RDATE:19680922T000000
-RDATE:19690928T000000
-RDATE:19700927T000000
-RDATE:19710926T010000
-RDATE:19721001T000000
-RDATE:19730930T000000
-RDATE:19740929T000000
-RDATE:19750928T010000
-RDATE:19760926T010000
-RDATE:19770925T010000
-RDATE:19781001T010000
-RDATE:19790930T010000
-RDATE:19800928T030000
-RDATE:19810927T030000
-RDATE:19820926T030000
-RDATE:19830925T030000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19910929T030000
-RDATE:19920927T030000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19440701T000000
-RDATE:19440701T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19800101T000000
-RDATE:19800101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Samara.ics b/libkcal/libical/zoneinfo/Europe/Samara.ics
deleted file mode 100644
index 703f948a..00000000
--- a/libkcal/libical/zoneinfo/Europe/Samara.ics
+++ /dev/null
@@ -1,125 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Samara
-X-LIC-LOCATION:Europe/Samara
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0500
-TZNAME:SAMST
-DTSTART:19930328T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0400
-TZNAME:SAMT
-DTSTART:19961027T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+032036
-TZOFFSETTO:+0300
-TZNAME:SAMT
-DTSTART:19190701T020000
-RDATE:19190701T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0400
-TZNAME:SAMT
-DTSTART:19300621T000000
-RDATE:19300621T000000
-RDATE:19911020T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0400
-TZNAME:KUYT
-DTSTART:19350127T000000
-RDATE:19350127T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0500
-TZNAME:KUYST
-DTSTART:19810401T000000
-RDATE:19810401T000000
-RDATE:19820401T000000
-RDATE:19830401T000000
-RDATE:19840401T000000
-RDATE:19850331T020000
-RDATE:19860330T020000
-RDATE:19870329T020000
-RDATE:19880327T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0400
-TZNAME:KUYT
-DTSTART:19811001T000000
-RDATE:19811001T000000
-RDATE:19821001T000000
-RDATE:19831001T000000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0400
-TZNAME:KUYST
-DTSTART:19890326T020000
-RDATE:19890326T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0300
-TZNAME:KUYT
-DTSTART:19890924T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0400
-TZNAME:KUYST
-DTSTART:19900325T020000
-RDATE:19900325T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0300
-TZNAME:KUYST
-DTSTART:19910331T020000
-RDATE:19910331T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0300
-TZNAME:KUYT
-DTSTART:19910929T030000
-RDATE:19910929T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0500
-TZNAME:SAMST
-DTSTART:19920328T230000
-RDATE:19920328T230000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0400
-TZNAME:SAMT
-DTSTART:19920926T230000
-RDATE:19920926T230000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/San_Marino.ics b/libkcal/libical/zoneinfo/Europe/San_Marino.ics
deleted file mode 100644
index e112b390..00000000
--- a/libkcal/libical/zoneinfo/Europe/San_Marino.ics
+++ /dev/null
@@ -1,131 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/San_Marino
-X-LIC-LOCATION:Europe/San_Marino
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19810329T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19961027T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+004956
-TZOFFSETTO:+004956
-TZNAME:RMT
-DTSTART:18660922T000000
-RDATE:18660922T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+004956
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:18931101T000000
-RDATE:18931101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19160603T000000
-RDATE:19160603T000000
-RDATE:19170401T000000
-RDATE:19180310T000000
-RDATE:19190302T000000
-RDATE:19200321T000000
-RDATE:19400615T000000
-RDATE:19430329T020000
-RDATE:19440403T020000
-RDATE:19450402T020000
-RDATE:19460317T020000
-RDATE:19470316T000000
-RDATE:19480229T020000
-RDATE:19660522T000000
-RDATE:19670528T000000
-RDATE:19680526T000000
-RDATE:19690601T000000
-RDATE:19700531T000000
-RDATE:19710523T000000
-RDATE:19720528T000000
-RDATE:19730603T000000
-RDATE:19740526T000000
-RDATE:19750601T000000
-RDATE:19760530T000000
-RDATE:19770522T000000
-RDATE:19780528T000000
-RDATE:19790527T000000
-RDATE:19800406T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19161001T010000
-RDATE:19161001T010000
-RDATE:19170930T010000
-RDATE:19181006T010000
-RDATE:19191005T010000
-RDATE:19200919T010000
-RDATE:19421102T030000
-RDATE:19431004T030000
-RDATE:19440917T010000
-RDATE:19450915T010000
-RDATE:19461006T030000
-RDATE:19471005T010000
-RDATE:19481003T030000
-RDATE:19660925T000000
-RDATE:19670924T000000
-RDATE:19680922T000000
-RDATE:19690928T000000
-RDATE:19700927T000000
-RDATE:19710926T010000
-RDATE:19721001T000000
-RDATE:19730930T000000
-RDATE:19740929T000000
-RDATE:19750928T010000
-RDATE:19760926T010000
-RDATE:19770925T010000
-RDATE:19781001T010000
-RDATE:19790930T010000
-RDATE:19800928T030000
-RDATE:19810927T030000
-RDATE:19820926T030000
-RDATE:19830925T030000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19910929T030000
-RDATE:19920927T030000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19440701T000000
-RDATE:19440701T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19800101T000000
-RDATE:19800101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Sarajevo.ics b/libkcal/libical/zoneinfo/Europe/Sarajevo.ics
deleted file mode 100644
index aa8898d2..00000000
--- a/libkcal/libical/zoneinfo/Europe/Sarajevo.ics
+++ /dev/null
@@ -1,69 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Sarajevo
-X-LIC-LOCATION:Europe/Sarajevo
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19830327T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19961027T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0122
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:18840101T000000
-RDATE:18840101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19410418T230000
-RDATE:19410418T230000
-RDATE:19430329T020000
-RDATE:19440403T020000
-RDATE:19450508T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19421102T030000
-RDATE:19421102T030000
-RDATE:19431004T030000
-RDATE:19441002T030000
-RDATE:19450916T030000
-RDATE:19830925T030000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19910929T030000
-RDATE:19920927T030000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19821127T000000
-RDATE:19821127T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Simferopol.ics b/libkcal/libical/zoneinfo/Europe/Simferopol.ics
deleted file mode 100644
index 543e9217..00000000
--- a/libkcal/libical/zoneinfo/Europe/Simferopol.ics
+++ /dev/null
@@ -1,150 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Simferopol
-X-LIC-LOCATION:Europe/Simferopol
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19971026T040000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19980329T030000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+021624
-TZOFFSETTO:+0216
-TZNAME:SMT
-DTSTART:18800101T000000
-RDATE:18800101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0216
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19240502T000000
-RDATE:19240502T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:MSK
-DTSTART:19300621T000000
-RDATE:19300621T000000
-RDATE:19440413T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19411101T000000
-RDATE:19411101T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19421102T030000
-RDATE:19421102T030000
-RDATE:19431004T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19430329T020000
-RDATE:19430329T020000
-RDATE:19440403T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0400
-TZNAME:MSD
-DTSTART:19810401T000000
-RDATE:19810401T000000
-RDATE:19820401T000000
-RDATE:19830401T000000
-RDATE:19840401T000000
-RDATE:19850331T020000
-RDATE:19860330T020000
-RDATE:19870329T020000
-RDATE:19880327T020000
-RDATE:19890326T020000
-RDATE:19940501T000000
-RDATE:19950326T000000
-RDATE:19960331T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0300
-TZNAME:MSK
-DTSTART:19811001T000000
-RDATE:19811001T000000
-RDATE:19821001T000000
-RDATE:19831001T000000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19940925T000000
-RDATE:19950924T000000
-RDATE:19961027T040000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0300
-TZNAME:MSK
-DTSTART:19900101T000000
-RDATE:19900101T000000
-RDATE:19970101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19900701T020000
-RDATE:19900701T020000
-RDATE:19920927T000000
-RDATE:19930926T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19920101T000000
-RDATE:19920101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19920329T000000
-RDATE:19920329T000000
-RDATE:19930328T000000
-RDATE:19940327T000000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0400
-TZNAME:MSD
-DTSTART:19960331T040000
-RDATE:19960331T040000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19970330T040000
-RDATE:19970330T040000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Skopje.ics b/libkcal/libical/zoneinfo/Europe/Skopje.ics
deleted file mode 100644
index d3924c74..00000000
--- a/libkcal/libical/zoneinfo/Europe/Skopje.ics
+++ /dev/null
@@ -1,69 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Skopje
-X-LIC-LOCATION:Europe/Skopje
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19830327T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19961027T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0122
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:18840101T000000
-RDATE:18840101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19410418T230000
-RDATE:19410418T230000
-RDATE:19430329T020000
-RDATE:19440403T020000
-RDATE:19450508T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19421102T030000
-RDATE:19421102T030000
-RDATE:19431004T030000
-RDATE:19441002T030000
-RDATE:19450916T030000
-RDATE:19830925T030000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19910929T030000
-RDATE:19920927T030000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19821127T000000
-RDATE:19821127T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Sofia.ics b/libkcal/libical/zoneinfo/Europe/Sofia.ics
deleted file mode 100644
index 0e7b6242..00000000
--- a/libkcal/libical/zoneinfo/Europe/Sofia.ics
+++ /dev/null
@@ -1,123 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Sofia
-X-LIC-LOCATION:Europe/Sofia
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19970330T030000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19971026T040000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+013316
-TZOFFSETTO:+015656
-TZNAME:IMT
-DTSTART:18800101T000000
-RDATE:18800101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+015656
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:18941130T000000
-RDATE:18941130T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19421102T020000
-RDATE:19421102T020000
-RDATE:19431004T030000
-RDATE:19441002T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19430329T020000
-RDATE:19430329T020000
-RDATE:19440403T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19450402T030000
-RDATE:19450402T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19790331T230000
-RDATE:19790331T230000
-RDATE:19800405T230000
-RDATE:19810404T230000
-RDATE:19820403T230000
-RDATE:19830327T020000
-RDATE:19840325T020000
-RDATE:19850331T020000
-RDATE:19860330T020000
-RDATE:19870329T020000
-RDATE:19880327T020000
-RDATE:19890326T020000
-RDATE:19900325T020000
-RDATE:19910331T000000
-RDATE:19920329T000000
-RDATE:19930328T000000
-RDATE:19940327T000000
-RDATE:19950326T000000
-RDATE:19960331T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19791001T010000
-RDATE:19791001T010000
-RDATE:19800929T010000
-RDATE:19810927T020000
-RDATE:19820926T030000
-RDATE:19830925T030000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19910929T000000
-RDATE:19920927T000000
-RDATE:19930926T000000
-RDATE:19940925T000000
-RDATE:19950924T000000
-RDATE:19961027T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19820926T020000
-RDATE:19820926T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19910101T000000
-RDATE:19910101T000000
-RDATE:19970101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Stockholm.ics b/libkcal/libical/zoneinfo/Europe/Stockholm.ics
deleted file mode 100644
index e9ca91ae..00000000
--- a/libkcal/libical/zoneinfo/Europe/Stockholm.ics
+++ /dev/null
@@ -1,74 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Stockholm
-X-LIC-LOCATION:Europe/Stockholm
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19810329T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19961027T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+011212
-TZOFFSETTO:+010014
-TZNAME:SET
-DTSTART:18790101T000000
-RDATE:18790101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+010014
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19000101T000000
-RDATE:19000101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19160514T230000
-RDATE:19160514T230000
-RDATE:19800406T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19161001T010000
-RDATE:19161001T010000
-RDATE:19800928T030000
-RDATE:19810927T030000
-RDATE:19820926T030000
-RDATE:19830925T030000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19910929T030000
-RDATE:19920927T030000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19800101T000000
-RDATE:19800101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Tallinn.ics b/libkcal/libical/zoneinfo/Europe/Tallinn.ics
deleted file mode 100644
index 1fcb6975..00000000
--- a/libkcal/libical/zoneinfo/Europe/Tallinn.ics
+++ /dev/null
@@ -1,160 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Tallinn
-X-LIC-LOCATION:Europe/Tallinn
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:20020331T030000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:20021027T040000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0139
-TZOFFSETTO:+0139
-TZNAME:TMT
-DTSTART:18800101T000000
-RDATE:18800101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0139
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19180201T000000
-RDATE:19180201T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19180415T020000
-RDATE:19180415T020000
-RDATE:19430329T020000
-RDATE:19440403T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19180916T030000
-RDATE:19180916T030000
-RDATE:19421102T030000
-RDATE:19431004T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0139
-TZNAME:TMT
-DTSTART:19190701T000000
-RDATE:19190701T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0139
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19210501T000000
-RDATE:19210501T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:MSK
-DTSTART:19400806T000000
-RDATE:19400806T000000
-RDATE:19440922T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19410915T000000
-RDATE:19410915T000000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0400
-TZNAME:MSD
-DTSTART:19810401T000000
-RDATE:19810401T000000
-RDATE:19820401T000000
-RDATE:19830401T000000
-RDATE:19840401T000000
-RDATE:19850331T020000
-RDATE:19860330T020000
-RDATE:19870329T020000
-RDATE:19880327T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0300
-TZNAME:MSK
-DTSTART:19811001T000000
-RDATE:19811001T000000
-RDATE:19821001T000000
-RDATE:19831001T000000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19890326T020000
-RDATE:19890326T020000
-RDATE:19980922T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19890924T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19910929T030000
-RDATE:19920927T030000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-RDATE:19961027T030000
-RDATE:19971026T030000
-RDATE:19981025T040000
-RDATE:19991031T040000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19900325T020000
-RDATE:19900325T020000
-RDATE:19910331T020000
-RDATE:19920329T020000
-RDATE:19930328T020000
-RDATE:19940327T020000
-RDATE:19950326T020000
-RDATE:19960331T020000
-RDATE:19970330T020000
-RDATE:19980329T020000
-RDATE:19990328T030000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19991101T000000
-RDATE:19991101T000000
-RDATE:20020221T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Tirane.ics b/libkcal/libical/zoneinfo/Europe/Tirane.ics
deleted file mode 100644
index 1759f11f..00000000
--- a/libkcal/libical/zoneinfo/Europe/Tirane.ics
+++ /dev/null
@@ -1,85 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Tirane
-X-LIC-LOCATION:Europe/Tirane
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19850331T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19961027T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+011920
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19140101T000000
-RDATE:19140101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19400616T000000
-RDATE:19400616T000000
-RDATE:19430329T020000
-RDATE:19740504T000000
-RDATE:19750501T000000
-RDATE:19760502T000000
-RDATE:19770508T000000
-RDATE:19780506T000000
-RDATE:19790505T000000
-RDATE:19800503T000000
-RDATE:19810426T000000
-RDATE:19820502T000000
-RDATE:19830418T000000
-RDATE:19840401T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19421102T030000
-RDATE:19421102T030000
-RDATE:19430410T030000
-RDATE:19741002T000000
-RDATE:19751002T000000
-RDATE:19761003T000000
-RDATE:19771002T000000
-RDATE:19781001T000000
-RDATE:19790930T000000
-RDATE:19801004T000000
-RDATE:19810927T000000
-RDATE:19821003T000000
-RDATE:19831001T000000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19910929T030000
-RDATE:19920927T030000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19840701T000000
-RDATE:19840701T000000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Uzhgorod.ics b/libkcal/libical/zoneinfo/Europe/Uzhgorod.ics
deleted file mode 100644
index 26ca4e57..00000000
--- a/libkcal/libical/zoneinfo/Europe/Uzhgorod.ics
+++ /dev/null
@@ -1,146 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Uzhgorod
-X-LIC-LOCATION:Europe/Uzhgorod
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19950326T030000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19961027T040000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+012912
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:18901001T000000
-RDATE:18901001T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19400101T000000
-RDATE:19400101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19400401T020000
-RDATE:19400401T020000
-RDATE:19430329T020000
-RDATE:19440403T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19421102T030000
-RDATE:19421102T030000
-RDATE:19431004T030000
-RDATE:19441026T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19441001T000000
-RDATE:19441001T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0300
-TZNAME:MSK
-DTSTART:19450629T000000
-RDATE:19450629T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0400
-TZNAME:MSD
-DTSTART:19810401T000000
-RDATE:19810401T000000
-RDATE:19820401T000000
-RDATE:19830401T000000
-RDATE:19840401T000000
-RDATE:19850331T020000
-RDATE:19860330T020000
-RDATE:19870329T020000
-RDATE:19880327T020000
-RDATE:19890326T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0300
-TZNAME:MSK
-DTSTART:19811001T000000
-RDATE:19811001T000000
-RDATE:19821001T000000
-RDATE:19831001T000000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0300
-TZNAME:MSK
-DTSTART:19900101T000000
-RDATE:19900101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19900701T020000
-RDATE:19900701T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19910331T030000
-RDATE:19910331T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19920101T000000
-RDATE:19920101T000000
-RDATE:19950101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19920329T000000
-RDATE:19920329T000000
-RDATE:19930328T000000
-RDATE:19940327T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19920927T000000
-RDATE:19920927T000000
-RDATE:19930926T000000
-RDATE:19940925T000000
-RDATE:19950924T040000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Vaduz.ics b/libkcal/libical/zoneinfo/Europe/Vaduz.ics
deleted file mode 100644
index 7feee448..00000000
--- a/libkcal/libical/zoneinfo/Europe/Vaduz.ics
+++ /dev/null
@@ -1,57 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Vaduz
-X-LIC-LOCATION:Europe/Vaduz
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19810329T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19961027T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+003804
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:18940601T000000
-RDATE:18940601T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19810101T000000
-RDATE:19810101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19810927T030000
-RDATE:19810927T030000
-RDATE:19820926T030000
-RDATE:19830925T030000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19910929T030000
-RDATE:19920927T030000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Vatican.ics b/libkcal/libical/zoneinfo/Europe/Vatican.ics
deleted file mode 100644
index d1e83ebb..00000000
--- a/libkcal/libical/zoneinfo/Europe/Vatican.ics
+++ /dev/null
@@ -1,131 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Vatican
-X-LIC-LOCATION:Europe/Vatican
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19810329T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19961027T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+004956
-TZOFFSETTO:+004956
-TZNAME:RMT
-DTSTART:18660922T000000
-RDATE:18660922T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+004956
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:18931101T000000
-RDATE:18931101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19160603T000000
-RDATE:19160603T000000
-RDATE:19170401T000000
-RDATE:19180310T000000
-RDATE:19190302T000000
-RDATE:19200321T000000
-RDATE:19400615T000000
-RDATE:19430329T020000
-RDATE:19440403T020000
-RDATE:19450402T020000
-RDATE:19460317T020000
-RDATE:19470316T000000
-RDATE:19480229T020000
-RDATE:19660522T000000
-RDATE:19670528T000000
-RDATE:19680526T000000
-RDATE:19690601T000000
-RDATE:19700531T000000
-RDATE:19710523T000000
-RDATE:19720528T000000
-RDATE:19730603T000000
-RDATE:19740526T000000
-RDATE:19750601T000000
-RDATE:19760530T000000
-RDATE:19770522T000000
-RDATE:19780528T000000
-RDATE:19790527T000000
-RDATE:19800406T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19161001T010000
-RDATE:19161001T010000
-RDATE:19170930T010000
-RDATE:19181006T010000
-RDATE:19191005T010000
-RDATE:19200919T010000
-RDATE:19421102T030000
-RDATE:19431004T030000
-RDATE:19440917T010000
-RDATE:19450915T010000
-RDATE:19461006T030000
-RDATE:19471005T010000
-RDATE:19481003T030000
-RDATE:19660925T000000
-RDATE:19670924T000000
-RDATE:19680922T000000
-RDATE:19690928T000000
-RDATE:19700927T000000
-RDATE:19710926T010000
-RDATE:19721001T000000
-RDATE:19730930T000000
-RDATE:19740929T000000
-RDATE:19750928T010000
-RDATE:19760926T010000
-RDATE:19770925T010000
-RDATE:19781001T010000
-RDATE:19790930T010000
-RDATE:19800928T030000
-RDATE:19810927T030000
-RDATE:19820926T030000
-RDATE:19830925T030000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19910929T030000
-RDATE:19920927T030000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19440701T000000
-RDATE:19440701T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19800101T000000
-RDATE:19800101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Vienna.ics b/libkcal/libical/zoneinfo/Europe/Vienna.ics
deleted file mode 100644
index a18861c2..00000000
--- a/libkcal/libical/zoneinfo/Europe/Vienna.ics
+++ /dev/null
@@ -1,89 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Vienna
-X-LIC-LOCATION:Europe/Vienna
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19810329T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19961027T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+010520
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:18930401T000000
-RDATE:18930401T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19160430T230000
-RDATE:19160430T230000
-RDATE:19170416T020000
-RDATE:19180415T020000
-RDATE:19200405T020000
-RDATE:19400401T020000
-RDATE:19430329T020000
-RDATE:19440403T020000
-RDATE:19450402T020000
-RDATE:19460414T020000
-RDATE:19470406T020000
-RDATE:19480418T020000
-RDATE:19800406T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19161001T010000
-RDATE:19161001T010000
-RDATE:19170917T030000
-RDATE:19180916T030000
-RDATE:19200913T030000
-RDATE:19421102T030000
-RDATE:19431004T030000
-RDATE:19441002T030000
-RDATE:19450412T030000
-RDATE:19461006T030000
-RDATE:19471005T030000
-RDATE:19481003T030000
-RDATE:19800928T000000
-RDATE:19810927T030000
-RDATE:19820926T030000
-RDATE:19830925T030000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19910929T030000
-RDATE:19920927T030000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19200101T000000
-RDATE:19200101T000000
-RDATE:19460101T000000
-RDATE:19810101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Vilnius.ics b/libkcal/libical/zoneinfo/Europe/Vilnius.ics
deleted file mode 100644
index a2cf346f..00000000
--- a/libkcal/libical/zoneinfo/Europe/Vilnius.ics
+++ /dev/null
@@ -1,170 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Vilnius
-X-LIC-LOCATION:Europe/Vilnius
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:20030330T030000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:20031026T040000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+014116
-TZOFFSETTO:+0124
-TZNAME:WMT
-DTSTART:18800101T000000
-RDATE:18800101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0124
-TZOFFSETTO:+013536
-TZNAME:KMT
-DTSTART:19170101T000000
-RDATE:19170101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+013536
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19191010T000000
-RDATE:19191010T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19200712T000000
-RDATE:19200712T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19201009T000000
-RDATE:19201009T000000
-RDATE:19421102T030000
-RDATE:19431004T030000
-RDATE:19981025T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0300
-TZNAME:MSK
-DTSTART:19400803T000000
-RDATE:19400803T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19410624T000000
-RDATE:19410624T000000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19430329T020000
-RDATE:19430329T020000
-RDATE:19440403T020000
-RDATE:19990328T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:MSK
-DTSTART:19440801T000000
-RDATE:19440801T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0400
-TZNAME:MSD
-DTSTART:19810401T000000
-RDATE:19810401T000000
-RDATE:19820401T000000
-RDATE:19830401T000000
-RDATE:19840401T000000
-RDATE:19850331T020000
-RDATE:19860330T020000
-RDATE:19870329T020000
-RDATE:19880327T020000
-RDATE:19890326T020000
-RDATE:19900325T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0300
-TZNAME:MSK
-DTSTART:19811001T000000
-RDATE:19811001T000000
-RDATE:19821001T000000
-RDATE:19831001T000000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19910331T020000
-RDATE:19910331T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19910929T030000
-RDATE:19910929T030000
-RDATE:19920927T030000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-RDATE:19961027T030000
-RDATE:19971026T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19920329T020000
-RDATE:19920329T020000
-RDATE:19930328T020000
-RDATE:19940327T020000
-RDATE:19950326T020000
-RDATE:19960331T020000
-RDATE:19970330T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19980101T000000
-RDATE:19980101T000000
-RDATE:19991031T030000
-RDATE:20030101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19980329T030000
-RDATE:19980329T030000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Volgograd.ics b/libkcal/libical/zoneinfo/Europe/Volgograd.ics
deleted file mode 100644
index 7d9090d5..00000000
--- a/libkcal/libical/zoneinfo/Europe/Volgograd.ics
+++ /dev/null
@@ -1,112 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Volgograd
-X-LIC-LOCATION:Europe/Volgograd
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0400
-TZNAME:VOLST
-DTSTART:19930328T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0300
-TZNAME:VOLT
-DTSTART:19961027T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+025740
-TZOFFSETTO:+0300
-TZNAME:TSAT
-DTSTART:19200103T000000
-RDATE:19200103T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0300
-TZNAME:STAT
-DTSTART:19250406T000000
-RDATE:19250406T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0400
-TZNAME:STAT
-DTSTART:19300621T000000
-RDATE:19300621T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0400
-TZNAME:VOLT
-DTSTART:19611111T000000
-RDATE:19611111T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0500
-TZNAME:VOLST
-DTSTART:19810401T000000
-RDATE:19810401T000000
-RDATE:19820401T000000
-RDATE:19830401T000000
-RDATE:19840401T000000
-RDATE:19850331T020000
-RDATE:19860330T020000
-RDATE:19870329T020000
-RDATE:19880327T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0400
-TZNAME:VOLT
-DTSTART:19811001T000000
-RDATE:19811001T000000
-RDATE:19821001T000000
-RDATE:19831001T000000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0400
-TZNAME:VOLST
-DTSTART:19890326T020000
-RDATE:19890326T020000
-RDATE:19920329T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0300
-TZNAME:VOLT
-DTSTART:19890924T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19920926T230000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0400
-TZNAME:VOLST
-DTSTART:19900325T020000
-RDATE:19900325T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0400
-TZNAME:VOLT
-DTSTART:19910331T020000
-RDATE:19910331T020000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Warsaw.ics b/libkcal/libical/zoneinfo/Europe/Warsaw.ics
deleted file mode 100644
index 166995a5..00000000
--- a/libkcal/libical/zoneinfo/Europe/Warsaw.ics
+++ /dev/null
@@ -1,152 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Warsaw
-X-LIC-LOCATION:Europe/Warsaw
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19880327T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19961027T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0124
-TZOFFSETTO:+0124
-TZNAME:WMT
-DTSTART:18800101T000000
-RDATE:18800101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0124
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19150805T000000
-RDATE:19150805T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19160430T230000
-RDATE:19160430T230000
-RDATE:19170416T020000
-RDATE:19180415T020000
-RDATE:19400623T020000
-RDATE:19430329T020000
-RDATE:19440403T020000
-RDATE:19450429T000000
-RDATE:19460414T000000
-RDATE:19470504T020000
-RDATE:19480418T020000
-RDATE:19490410T020000
-RDATE:19570602T010000
-RDATE:19580330T010000
-RDATE:19590531T010000
-RDATE:19600403T010000
-RDATE:19610528T010000
-RDATE:19620527T010000
-RDATE:19630526T010000
-RDATE:19640531T010000
-RDATE:19770403T010000
-RDATE:19780402T010000
-RDATE:19790401T010000
-RDATE:19800406T010000
-RDATE:19810329T010000
-RDATE:19820328T010000
-RDATE:19830327T010000
-RDATE:19840325T010000
-RDATE:19850331T010000
-RDATE:19860330T010000
-RDATE:19870329T010000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19161001T010000
-RDATE:19161001T010000
-RDATE:19170917T030000
-RDATE:19220601T000000
-RDATE:19421102T030000
-RDATE:19431004T030000
-RDATE:19441004T020000
-RDATE:19451101T000000
-RDATE:19461007T030000
-RDATE:19471005T030000
-RDATE:19481003T030000
-RDATE:19491002T030000
-RDATE:19570929T020000
-RDATE:19580928T020000
-RDATE:19591004T020000
-RDATE:19601002T020000
-RDATE:19611001T020000
-RDATE:19620930T020000
-RDATE:19630929T020000
-RDATE:19640927T020000
-RDATE:19770925T020000
-RDATE:19781001T020000
-RDATE:19790930T020000
-RDATE:19800928T020000
-RDATE:19810927T020000
-RDATE:19820926T020000
-RDATE:19830925T020000
-RDATE:19840930T020000
-RDATE:19850929T020000
-RDATE:19860928T020000
-RDATE:19870927T020000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19910929T030000
-RDATE:19920927T030000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19180916T030000
-RDATE:19180916T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19190415T020000
-RDATE:19190415T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19190916T030000
-RDATE:19190916T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19441001T000000
-RDATE:19441001T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19770101T000000
-RDATE:19770101T000000
-RDATE:19880101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Zagreb.ics b/libkcal/libical/zoneinfo/Europe/Zagreb.ics
deleted file mode 100644
index ae215dde..00000000
--- a/libkcal/libical/zoneinfo/Europe/Zagreb.ics
+++ /dev/null
@@ -1,69 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Zagreb
-X-LIC-LOCATION:Europe/Zagreb
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19830327T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19961027T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0122
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:18840101T000000
-RDATE:18840101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19410418T230000
-RDATE:19410418T230000
-RDATE:19430329T020000
-RDATE:19440403T020000
-RDATE:19450508T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19421102T030000
-RDATE:19421102T030000
-RDATE:19431004T030000
-RDATE:19441002T030000
-RDATE:19450916T030000
-RDATE:19830925T030000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19910929T030000
-RDATE:19920927T030000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19821127T000000
-RDATE:19821127T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Zaporozhye.ics b/libkcal/libical/zoneinfo/Europe/Zaporozhye.ics
deleted file mode 100644
index e58e1328..00000000
--- a/libkcal/libical/zoneinfo/Europe/Zaporozhye.ics
+++ /dev/null
@@ -1,138 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Zaporozhye
-X-LIC-LOCATION:Europe/Zaporozhye
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19950326T030000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19961027T040000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+022040
-TZOFFSETTO:+0220
-TZNAME:CUT
-DTSTART:18800101T000000
-RDATE:18800101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0220
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19240502T000000
-RDATE:19240502T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:MSK
-DTSTART:19300621T000000
-RDATE:19300621T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19410825T000000
-RDATE:19410825T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19421102T030000
-RDATE:19421102T030000
-RDATE:19431004T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19430329T020000
-RDATE:19430329T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0300
-TZNAME:MSK
-DTSTART:19431025T000000
-RDATE:19431025T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0400
-TZNAME:MSD
-DTSTART:19810401T000000
-RDATE:19810401T000000
-RDATE:19820401T000000
-RDATE:19830401T000000
-RDATE:19840401T000000
-RDATE:19850331T020000
-RDATE:19860330T020000
-RDATE:19870329T020000
-RDATE:19880327T020000
-RDATE:19890326T020000
-RDATE:19900325T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0300
-TZNAME:MSK
-DTSTART:19811001T000000
-RDATE:19811001T000000
-RDATE:19821001T000000
-RDATE:19831001T000000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19910331T020000
-RDATE:19910331T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19910929T000000
-RDATE:19910929T000000
-RDATE:19920927T000000
-RDATE:19930926T000000
-RDATE:19940925T000000
-RDATE:19950924T040000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0300
-TZNAME:EEST
-DTSTART:19920329T000000
-RDATE:19920329T000000
-RDATE:19930328T000000
-RDATE:19940327T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0200
-TZNAME:EET
-DTSTART:19950101T000000
-RDATE:19950101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Europe/Zurich.ics b/libkcal/libical/zoneinfo/Europe/Zurich.ics
deleted file mode 100644
index ace550df..00000000
--- a/libkcal/libical/zoneinfo/Europe/Zurich.ics
+++ /dev/null
@@ -1,76 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Europe/Zurich
-X-LIC-LOCATION:Europe/Zurich
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19810329T020000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19961027T030000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+003408
-TZOFFSETTO:+002944
-TZNAME:BMT
-DTSTART:18480912T000000
-RDATE:18480912T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+002944
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:18940601T000000
-RDATE:18940601T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-TZNAME:CEST
-DTSTART:19401102T000000
-RDATE:19401102T000000
-RDATE:19410504T020000
-RDATE:19420503T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19401231T000000
-RDATE:19401231T000000
-RDATE:19411005T000000
-RDATE:19421004T000000
-RDATE:19810927T030000
-RDATE:19820926T030000
-RDATE:19830925T030000
-RDATE:19840930T030000
-RDATE:19850929T030000
-RDATE:19860928T030000
-RDATE:19870927T030000
-RDATE:19880925T030000
-RDATE:19890924T030000
-RDATE:19900930T030000
-RDATE:19910929T030000
-RDATE:19920927T030000
-RDATE:19930926T030000
-RDATE:19940925T030000
-RDATE:19950924T030000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0100
-TZNAME:CET
-DTSTART:19810101T000000
-RDATE:19810101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Indian/Antananarivo.ics b/libkcal/libical/zoneinfo/Indian/Antananarivo.ics
deleted file mode 100644
index 62dd8960..00000000
--- a/libkcal/libical/zoneinfo/Indian/Antananarivo.ics
+++ /dev/null
@@ -1,29 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Indian/Antananarivo
-X-LIC-LOCATION:Indian/Antananarivo
-BEGIN:STANDARD
-TZOFFSETFROM:+031004
-TZOFFSETTO:+0300
-TZNAME:EAT
-DTSTART:19110701T000000
-RDATE:19110701T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+0300
-TZOFFSETTO:+0400
-TZNAME:EAST
-DTSTART:19540227T230000
-RDATE:19540227T230000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+0400
-TZOFFSETTO:+0300
-TZNAME:EAT
-DTSTART:19540530T000000
-RDATE:19540530T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Indian/Chagos.ics b/libkcal/libical/zoneinfo/Indian/Chagos.ics
deleted file mode 100644
index 0f9392c1..00000000
--- a/libkcal/libical/zoneinfo/Indian/Chagos.ics
+++ /dev/null
@@ -1,22 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Indian/Chagos
-X-LIC-LOCATION:Indian/Chagos
-BEGIN:STANDARD
-TZOFFSETFROM:+044940
-TZOFFSETTO:+0500
-TZNAME:IOT
-DTSTART:19070101T000000
-RDATE:19070101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0500
-TZOFFSETTO:+0600
-TZNAME:IOT
-DTSTART:19960101T000000
-RDATE:19960101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Indian/Christmas.ics b/libkcal/libical/zoneinfo/Indian/Christmas.ics
deleted file mode 100644
index 057f9752..00000000
--- a/libkcal/libical/zoneinfo/Indian/Christmas.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Indian/Christmas
-X-LIC-LOCATION:Indian/Christmas
-BEGIN:STANDARD
-TZOFFSETFROM:+070252
-TZOFFSETTO:+0700
-TZNAME:CXT
-DTSTART:18950201T000000
-RDATE:18950201T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Indian/Cocos.ics b/libkcal/libical/zoneinfo/Indian/Cocos.ics
deleted file mode 100644
index 071096cb..00000000
--- a/libkcal/libical/zoneinfo/Indian/Cocos.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Indian/Cocos
-X-LIC-LOCATION:Indian/Cocos
-BEGIN:STANDARD
-TZOFFSETFROM:+062740
-TZOFFSETTO:+0630
-TZNAME:CCT
-DTSTART:19000101T000000
-RDATE:19000101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Indian/Comoro.ics b/libkcal/libical/zoneinfo/Indian/Comoro.ics
deleted file mode 100644
index c30abcca..00000000
--- a/libkcal/libical/zoneinfo/Indian/Comoro.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Indian/Comoro
-X-LIC-LOCATION:Indian/Comoro
-BEGIN:STANDARD
-TZOFFSETFROM:+025304
-TZOFFSETTO:+0300
-TZNAME:EAT
-DTSTART:19110701T000000
-RDATE:19110701T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Indian/Kerguelen.ics b/libkcal/libical/zoneinfo/Indian/Kerguelen.ics
deleted file mode 100644
index ed3d1801..00000000
--- a/libkcal/libical/zoneinfo/Indian/Kerguelen.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Indian/Kerguelen
-X-LIC-LOCATION:Indian/Kerguelen
-BEGIN:STANDARD
-TZOFFSETFROM:+0000
-TZOFFSETTO:+0500
-TZNAME:TFT
-DTSTART:19500101T000000
-RDATE:19500101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Indian/Mahe.ics b/libkcal/libical/zoneinfo/Indian/Mahe.ics
deleted file mode 100644
index 87ef36b0..00000000
--- a/libkcal/libical/zoneinfo/Indian/Mahe.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Indian/Mahe
-X-LIC-LOCATION:Indian/Mahe
-BEGIN:STANDARD
-TZOFFSETFROM:+034148
-TZOFFSETTO:+0400
-TZNAME:SCT
-DTSTART:19060601T000000
-RDATE:19060601T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Indian/Maldives.ics b/libkcal/libical/zoneinfo/Indian/Maldives.ics
deleted file mode 100644
index 4b0efb98..00000000
--- a/libkcal/libical/zoneinfo/Indian/Maldives.ics
+++ /dev/null
@@ -1,22 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Indian/Maldives
-X-LIC-LOCATION:Indian/Maldives
-BEGIN:STANDARD
-TZOFFSETFROM:+0454
-TZOFFSETTO:+0454
-TZNAME:MMT
-DTSTART:18800101T000000
-RDATE:18800101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0454
-TZOFFSETTO:+0500
-TZNAME:MVT
-DTSTART:19600101T000000
-RDATE:19600101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Indian/Mauritius.ics b/libkcal/libical/zoneinfo/Indian/Mauritius.ics
deleted file mode 100644
index 0a12e950..00000000
--- a/libkcal/libical/zoneinfo/Indian/Mauritius.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Indian/Mauritius
-X-LIC-LOCATION:Indian/Mauritius
-BEGIN:STANDARD
-TZOFFSETFROM:+0350
-TZOFFSETTO:+0400
-TZNAME:MUT
-DTSTART:19070101T000000
-RDATE:19070101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Indian/Mayotte.ics b/libkcal/libical/zoneinfo/Indian/Mayotte.ics
deleted file mode 100644
index f4df8428..00000000
--- a/libkcal/libical/zoneinfo/Indian/Mayotte.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Indian/Mayotte
-X-LIC-LOCATION:Indian/Mayotte
-BEGIN:STANDARD
-TZOFFSETFROM:+030056
-TZOFFSETTO:+0300
-TZNAME:EAT
-DTSTART:19110701T000000
-RDATE:19110701T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Indian/Reunion.ics b/libkcal/libical/zoneinfo/Indian/Reunion.ics
deleted file mode 100644
index 028dbe53..00000000
--- a/libkcal/libical/zoneinfo/Indian/Reunion.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Indian/Reunion
-X-LIC-LOCATION:Indian/Reunion
-BEGIN:STANDARD
-TZOFFSETFROM:+034152
-TZOFFSETTO:+0400
-TZNAME:RET
-DTSTART:19110601T000000
-RDATE:19110601T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Makefile.am b/libkcal/libical/zoneinfo/Makefile.am
deleted file mode 100644
index db05f174..00000000
--- a/libkcal/libical/zoneinfo/Makefile.am
+++ /dev/null
@@ -1,39 +0,0 @@
-
-zoneinfodir = $(kde_datadir)/libical/zoneinfo
-
-zoneinfo_DATA = zones.tab
-
-DIRS = \
-	Africa			\
-	America			\
-	America/Argentina	\
-	America/Indiana		\
-	America/Kentucky	\
-	America/North_Dakota	\
-	Antarctica		\
-	Arctic			\
-	Asia			\
-	Atlantic		\
-	Australia		\
-	Europe			\
-	Indian			\
-	Pacific
-
-
-install-data-local:
-	for dir in $(DIRS); do \
-	  $(mkinstalldirs) $(DESTDIR)$(zoneinfodir)/$$dir; \
-	  for tzfile in $(srcdir)/$$dir/*.ics; do \
-	    $(INSTALL_DATA) $$tzfile $(DESTDIR)$(zoneinfodir)/$$dir; \
-	  done \
-	done
-
-dist-hook:
-	for dir in $(DIRS); do \
-	  mkdir $(distdir)/$$dir; \
-	  for tzfile in $(srcdir)/$$dir/*.ics; do \
-	    cp -p $$tzfile $(distdir)/$$dir; \
-	  done \
-	done
-
-EXTRA_DIST = $(zoneinfo_DATA)
diff --git a/libkcal/libical/zoneinfo/Pacific/Apia.ics b/libkcal/libical/zoneinfo/Pacific/Apia.ics
deleted file mode 100644
index acb433c8..00000000
--- a/libkcal/libical/zoneinfo/Pacific/Apia.ics
+++ /dev/null
@@ -1,29 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Pacific/Apia
-X-LIC-LOCATION:Pacific/Apia
-BEGIN:STANDARD
-TZOFFSETFROM:+123304
-TZOFFSETTO:-112656
-TZNAME:LMT
-DTSTART:18790705T000000
-RDATE:18790705T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-112656
-TZOFFSETTO:-1130
-TZNAME:SAMT
-DTSTART:19110101T000000
-RDATE:19110101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-1130
-TZOFFSETTO:-1100
-TZNAME:WST
-DTSTART:19500101T000000
-RDATE:19500101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Pacific/Auckland.ics b/libkcal/libical/zoneinfo/Pacific/Auckland.ics
deleted file mode 100644
index 27a70166..00000000
--- a/libkcal/libical/zoneinfo/Pacific/Auckland.ics
+++ /dev/null
@@ -1,165 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Pacific/Auckland
-X-LIC-LOCATION:Pacific/Auckland
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+1200
-TZOFFSETTO:+1300
-TZNAME:NZDT
-DTSTART:20070930T020000
-RRULE:FREQ=YEARLY;BYMONTH=9;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+1300
-TZOFFSETTO:+1200
-TZNAME:NZST
-DTSTART:20080406T030000
-RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+113904
-TZOFFSETTO:+1130
-TZNAME:NZMT
-DTSTART:18681102T000000
-RDATE:18681102T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+1130
-TZOFFSETTO:+1230
-TZNAME:NZST
-DTSTART:19271106T020000
-RDATE:19271106T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+1230
-TZOFFSETTO:+1130
-TZNAME:NZMT
-DTSTART:19280304T020000
-RDATE:19280304T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+1130
-TZOFFSETTO:+1200
-TZNAME:NZST
-DTSTART:19281014T020000
-RDATE:19281014T020000
-RDATE:19291013T020000
-RDATE:19301012T020000
-RDATE:19311011T020000
-RDATE:19321009T020000
-RDATE:19331008T020000
-RDATE:19340930T020000
-RDATE:19350929T020000
-RDATE:19360927T020000
-RDATE:19370926T020000
-RDATE:19380925T020000
-RDATE:19390924T020000
-RDATE:19400929T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+1200
-TZOFFSETTO:+1130
-TZNAME:NZMT
-DTSTART:19290317T020000
-RDATE:19290317T020000
-RDATE:19300316T020000
-RDATE:19310315T020000
-RDATE:19320320T020000
-RDATE:19330319T020000
-RDATE:19340429T020000
-RDATE:19350428T020000
-RDATE:19360426T020000
-RDATE:19370425T020000
-RDATE:19380424T020000
-RDATE:19390430T020000
-RDATE:19400428T020000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+1200
-TZOFFSETTO:+1200
-TZNAME:NZST
-DTSTART:19460101T000000
-RDATE:19460101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+1200
-TZOFFSETTO:+1300
-TZNAME:NZDT
-DTSTART:19741103T020000
-RDATE:19741103T020000
-RDATE:19751026T020000
-RDATE:19761031T020000
-RDATE:19771030T020000
-RDATE:19781029T020000
-RDATE:19791028T020000
-RDATE:19801026T020000
-RDATE:19811025T020000
-RDATE:19821031T020000
-RDATE:19831030T020000
-RDATE:19841028T020000
-RDATE:19851027T020000
-RDATE:19861026T020000
-RDATE:19871025T020000
-RDATE:19881030T020000
-RDATE:19891008T020000
-RDATE:19901007T020000
-RDATE:19911006T020000
-RDATE:19921004T020000
-RDATE:19931003T020000
-RDATE:19941002T020000
-RDATE:19951001T020000
-RDATE:19961006T020000
-RDATE:19971005T020000
-RDATE:19981004T020000
-RDATE:19991003T020000
-RDATE:20001001T020000
-RDATE:20011007T020000
-RDATE:20021006T020000
-RDATE:20031005T020000
-RDATE:20041003T020000
-RDATE:20051002T020000
-RDATE:20061001T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+1300
-TZOFFSETTO:+1200
-TZNAME:NZST
-DTSTART:19750223T030000
-RDATE:19750223T030000
-RDATE:19760307T030000
-RDATE:19770306T030000
-RDATE:19780305T030000
-RDATE:19790304T030000
-RDATE:19800302T030000
-RDATE:19810301T030000
-RDATE:19820307T030000
-RDATE:19830306T030000
-RDATE:19840304T030000
-RDATE:19850303T030000
-RDATE:19860302T030000
-RDATE:19870301T030000
-RDATE:19880306T030000
-RDATE:19890305T030000
-RDATE:19900318T030000
-RDATE:19910317T030000
-RDATE:19920315T030000
-RDATE:19930321T030000
-RDATE:19940320T030000
-RDATE:19950319T030000
-RDATE:19960317T030000
-RDATE:19970316T030000
-RDATE:19980315T030000
-RDATE:19990321T030000
-RDATE:20000319T030000
-RDATE:20010318T030000
-RDATE:20020317T030000
-RDATE:20030316T030000
-RDATE:20040321T030000
-RDATE:20050320T030000
-RDATE:20060319T030000
-RDATE:20070318T030000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Pacific/Chatham.ics b/libkcal/libical/zoneinfo/Pacific/Chatham.ics
deleted file mode 100644
index 7ea62d9a..00000000
--- a/libkcal/libical/zoneinfo/Pacific/Chatham.ics
+++ /dev/null
@@ -1,107 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Pacific/Chatham
-X-LIC-LOCATION:Pacific/Chatham
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+1245
-TZOFFSETTO:+1345
-TZNAME:CHADT
-DTSTART:20070930T024500
-RRULE:FREQ=YEARLY;BYMONTH=9;BYDAY=-1SU
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+1345
-TZOFFSETTO:+1245
-TZNAME:CHAST
-DTSTART:20080406T034500
-RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+121348
-TZOFFSETTO:+1245
-TZNAME:CHAST
-DTSTART:19570101T000000
-RDATE:19570101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+1245
-TZOFFSETTO:+1345
-TZNAME:CHADT
-DTSTART:19741103T024500
-RDATE:19741103T024500
-RDATE:19751026T024500
-RDATE:19761031T024500
-RDATE:19771030T024500
-RDATE:19781029T024500
-RDATE:19791028T024500
-RDATE:19801026T024500
-RDATE:19811025T024500
-RDATE:19821031T024500
-RDATE:19831030T024500
-RDATE:19841028T024500
-RDATE:19851027T024500
-RDATE:19861026T024500
-RDATE:19871025T024500
-RDATE:19881030T024500
-RDATE:19891008T024500
-RDATE:19901007T024500
-RDATE:19911006T024500
-RDATE:19921004T024500
-RDATE:19931003T024500
-RDATE:19941002T024500
-RDATE:19951001T024500
-RDATE:19961006T024500
-RDATE:19971005T024500
-RDATE:19981004T024500
-RDATE:19991003T024500
-RDATE:20001001T024500
-RDATE:20011007T024500
-RDATE:20021006T024500
-RDATE:20031005T024500
-RDATE:20041003T024500
-RDATE:20051002T024500
-RDATE:20061001T024500
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+1345
-TZOFFSETTO:+1245
-TZNAME:CHAST
-DTSTART:19750223T034500
-RDATE:19750223T034500
-RDATE:19760307T034500
-RDATE:19770306T034500
-RDATE:19780305T034500
-RDATE:19790304T034500
-RDATE:19800302T034500
-RDATE:19810301T034500
-RDATE:19820307T034500
-RDATE:19830306T034500
-RDATE:19840304T034500
-RDATE:19850303T034500
-RDATE:19860302T034500
-RDATE:19870301T034500
-RDATE:19880306T034500
-RDATE:19890305T034500
-RDATE:19900318T034500
-RDATE:19910317T034500
-RDATE:19920315T034500
-RDATE:19930321T034500
-RDATE:19940320T034500
-RDATE:19950319T034500
-RDATE:19960317T034500
-RDATE:19970316T034500
-RDATE:19980315T034500
-RDATE:19990321T034500
-RDATE:20000319T034500
-RDATE:20010318T034500
-RDATE:20020317T034500
-RDATE:20030316T034500
-RDATE:20040321T034500
-RDATE:20050320T034500
-RDATE:20060319T034500
-RDATE:20070318T034500
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Pacific/Easter.ics b/libkcal/libical/zoneinfo/Pacific/Easter.ics
deleted file mode 100644
index 586d695e..00000000
--- a/libkcal/libical/zoneinfo/Pacific/Easter.ics
+++ /dev/null
@@ -1,154 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Pacific/Easter
-X-LIC-LOCATION:Pacific/Easter
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:EASST
-DTSTART:19991009T220000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=2SA
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0600
-TZNAME:EAST
-DTSTART:20090314T220000
-RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SA
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-071744
-TZOFFSETTO:-071728
-TZNAME:EMT
-DTSTART:18900101T000000
-RDATE:18900101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-071728
-TZOFFSETTO:-0600
-TZNAME:EASST
-DTSTART:19320901T000000
-RDATE:19320901T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0700
-TZNAME:EAST
-DTSTART:19420531T220000
-RDATE:19420531T220000
-RDATE:19460831T210000
-RDATE:19690329T210000
-RDATE:19700328T210000
-RDATE:19710313T210000
-RDATE:19720311T210000
-RDATE:19730310T210000
-RDATE:19740309T210000
-RDATE:19750308T210000
-RDATE:19760313T210000
-RDATE:19770312T210000
-RDATE:19780311T210000
-RDATE:19790310T210000
-RDATE:19800308T210000
-RDATE:19810314T210000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0600
-TZNAME:EASST
-DTSTART:19420731T220000
-RDATE:19420731T220000
-RDATE:19681102T210000
-RDATE:19691122T210000
-RDATE:19701010T210000
-RDATE:19711009T210000
-RDATE:19721014T210000
-RDATE:19730929T210000
-RDATE:19741012T210000
-RDATE:19751011T210000
-RDATE:19761009T210000
-RDATE:19771008T210000
-RDATE:19781014T210000
-RDATE:19791013T210000
-RDATE:19801011T210000
-RDATE:19811010T210000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0600
-TZNAME:EASST
-DTSTART:19460714T220000
-RDATE:19460714T220000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0700
-TZNAME:EAST
-DTSTART:19470331T210000
-RDATE:19470331T210000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0600
-TZNAME:EAST
-DTSTART:19820313T210000
-RDATE:19820313T210000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0500
-TZNAME:EASST
-DTSTART:19821009T220000
-RDATE:19821009T220000
-RDATE:19831008T220000
-RDATE:19841013T220000
-RDATE:19851012T220000
-RDATE:19861011T220000
-RDATE:19871010T220000
-RDATE:19881001T220000
-RDATE:19891014T220000
-RDATE:19900915T220000
-RDATE:19911012T220000
-RDATE:19921010T220000
-RDATE:19931009T220000
-RDATE:19941008T220000
-RDATE:19951014T220000
-RDATE:19961012T220000
-RDATE:19971011T220000
-RDATE:19980926T220000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0600
-TZNAME:EAST
-DTSTART:19830312T220000
-RDATE:19830312T220000
-RDATE:19840310T220000
-RDATE:19850309T220000
-RDATE:19860308T220000
-RDATE:19870411T220000
-RDATE:19880312T220000
-RDATE:19890311T220000
-RDATE:19900317T220000
-RDATE:19910309T220000
-RDATE:19920314T220000
-RDATE:19930313T220000
-RDATE:19940312T220000
-RDATE:19950311T220000
-RDATE:19960309T220000
-RDATE:19970329T220000
-RDATE:19980314T220000
-RDATE:19990403T220000
-RDATE:20000311T220000
-RDATE:20010310T220000
-RDATE:20020309T220000
-RDATE:20030308T220000
-RDATE:20040313T220000
-RDATE:20050312T220000
-RDATE:20060311T220000
-RDATE:20070310T220000
-RDATE:20080329T220000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Pacific/Efate.ics b/libkcal/libical/zoneinfo/Pacific/Efate.ics
deleted file mode 100644
index 8e948a45..00000000
--- a/libkcal/libical/zoneinfo/Pacific/Efate.ics
+++ /dev/null
@@ -1,47 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Pacific/Efate
-X-LIC-LOCATION:Pacific/Efate
-BEGIN:STANDARD
-TZOFFSETFROM:+111316
-TZOFFSETTO:+1100
-TZNAME:VUT
-DTSTART:19120113T000000
-RDATE:19120113T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+1100
-TZOFFSETTO:+1200
-TZNAME:VUST
-DTSTART:19830925T000000
-RDATE:19830925T000000
-RDATE:19841023T000000
-RDATE:19850929T000000
-RDATE:19860928T000000
-RDATE:19870927T000000
-RDATE:19880925T000000
-RDATE:19890924T000000
-RDATE:19900923T000000
-RDATE:19910929T000000
-RDATE:19921025T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+1200
-TZOFFSETTO:+1100
-TZNAME:VUT
-DTSTART:19840325T000000
-RDATE:19840325T000000
-RDATE:19850324T000000
-RDATE:19860323T000000
-RDATE:19870329T000000
-RDATE:19880327T000000
-RDATE:19890326T000000
-RDATE:19900325T000000
-RDATE:19910324T000000
-RDATE:19920126T000000
-RDATE:19930124T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Pacific/Enderbury.ics b/libkcal/libical/zoneinfo/Pacific/Enderbury.ics
deleted file mode 100644
index 8cd36380..00000000
--- a/libkcal/libical/zoneinfo/Pacific/Enderbury.ics
+++ /dev/null
@@ -1,29 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Pacific/Enderbury
-X-LIC-LOCATION:Pacific/Enderbury
-BEGIN:STANDARD
-TZOFFSETFROM:-112420
-TZOFFSETTO:-1200
-TZNAME:PHOT
-DTSTART:19010101T000000
-RDATE:19010101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-1200
-TZOFFSETTO:-1100
-TZNAME:PHOT
-DTSTART:19791001T000000
-RDATE:19791001T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-1100
-TZOFFSETTO:+1300
-TZNAME:PHOT
-DTSTART:19950101T000000
-RDATE:19950101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Pacific/Fakaofo.ics b/libkcal/libical/zoneinfo/Pacific/Fakaofo.ics
deleted file mode 100644
index 7596b339..00000000
--- a/libkcal/libical/zoneinfo/Pacific/Fakaofo.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Pacific/Fakaofo
-X-LIC-LOCATION:Pacific/Fakaofo
-BEGIN:STANDARD
-TZOFFSETFROM:-112456
-TZOFFSETTO:-1000
-TZNAME:TKT
-DTSTART:19010101T000000
-RDATE:19010101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Pacific/Fiji.ics b/libkcal/libical/zoneinfo/Pacific/Fiji.ics
deleted file mode 100644
index d1360ead..00000000
--- a/libkcal/libical/zoneinfo/Pacific/Fiji.ics
+++ /dev/null
@@ -1,31 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Pacific/Fiji
-X-LIC-LOCATION:Pacific/Fiji
-BEGIN:STANDARD
-TZOFFSETFROM:+115340
-TZOFFSETTO:+1200
-TZNAME:FJT
-DTSTART:19151026T000000
-RDATE:19151026T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+1200
-TZOFFSETTO:+1300
-TZNAME:FJST
-DTSTART:19981101T020000
-RDATE:19981101T020000
-RDATE:19991107T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+1300
-TZOFFSETTO:+1200
-TZNAME:FJT
-DTSTART:19990228T030000
-RDATE:19990228T030000
-RDATE:20000227T030000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Pacific/Funafuti.ics b/libkcal/libical/zoneinfo/Pacific/Funafuti.ics
deleted file mode 100644
index d9635414..00000000
--- a/libkcal/libical/zoneinfo/Pacific/Funafuti.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Pacific/Funafuti
-X-LIC-LOCATION:Pacific/Funafuti
-BEGIN:STANDARD
-TZOFFSETFROM:+115652
-TZOFFSETTO:+1200
-TZNAME:TVT
-DTSTART:19010101T000000
-RDATE:19010101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Pacific/Galapagos.ics b/libkcal/libical/zoneinfo/Pacific/Galapagos.ics
deleted file mode 100644
index d046d8a7..00000000
--- a/libkcal/libical/zoneinfo/Pacific/Galapagos.ics
+++ /dev/null
@@ -1,22 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Pacific/Galapagos
-X-LIC-LOCATION:Pacific/Galapagos
-BEGIN:STANDARD
-TZOFFSETFROM:-055824
-TZOFFSETTO:-0500
-TZNAME:ECT
-DTSTART:19310101T000000
-RDATE:19310101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0500
-TZOFFSETTO:-0600
-TZNAME:GALT
-DTSTART:19860101T000000
-RDATE:19860101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Pacific/Gambier.ics b/libkcal/libical/zoneinfo/Pacific/Gambier.ics
deleted file mode 100644
index ee42de04..00000000
--- a/libkcal/libical/zoneinfo/Pacific/Gambier.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Pacific/Gambier
-X-LIC-LOCATION:Pacific/Gambier
-BEGIN:STANDARD
-TZOFFSETFROM:-085948
-TZOFFSETTO:-0900
-TZNAME:GAMT
-DTSTART:19121001T000000
-RDATE:19121001T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Pacific/Guadalcanal.ics b/libkcal/libical/zoneinfo/Pacific/Guadalcanal.ics
deleted file mode 100644
index 2ee7a6c0..00000000
--- a/libkcal/libical/zoneinfo/Pacific/Guadalcanal.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Pacific/Guadalcanal
-X-LIC-LOCATION:Pacific/Guadalcanal
-BEGIN:STANDARD
-TZOFFSETFROM:+103948
-TZOFFSETTO:+1100
-TZNAME:SBT
-DTSTART:19121001T000000
-RDATE:19121001T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Pacific/Guam.ics b/libkcal/libical/zoneinfo/Pacific/Guam.ics
deleted file mode 100644
index da6526a7..00000000
--- a/libkcal/libical/zoneinfo/Pacific/Guam.ics
+++ /dev/null
@@ -1,29 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Pacific/Guam
-X-LIC-LOCATION:Pacific/Guam
-BEGIN:STANDARD
-TZOFFSETFROM:-1421
-TZOFFSETTO:+0939
-TZNAME:LMT
-DTSTART:18441231T000000
-RDATE:18441231T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0939
-TZOFFSETTO:+1000
-TZNAME:GST
-DTSTART:19010101T000000
-RDATE:19010101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+1000
-TZOFFSETTO:+1000
-TZNAME:ChST
-DTSTART:20001223T000000
-RDATE:20001223T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Pacific/Honolulu.ics b/libkcal/libical/zoneinfo/Pacific/Honolulu.ics
deleted file mode 100644
index dc714faf..00000000
--- a/libkcal/libical/zoneinfo/Pacific/Honolulu.ics
+++ /dev/null
@@ -1,51 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Pacific/Honolulu
-X-LIC-LOCATION:Pacific/Honolulu
-BEGIN:STANDARD
-TZOFFSETFROM:-103126
-TZOFFSETTO:-1030
-TZNAME:HST
-DTSTART:19000101T120000
-RDATE:19000101T120000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-1030
-TZOFFSETTO:-0930
-TZNAME:HDT
-DTSTART:19330430T020000
-RDATE:19330430T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0930
-TZOFFSETTO:-1030
-TZNAME:HST
-DTSTART:19330521T020000
-RDATE:19330521T020000
-RDATE:19450930T020000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-1030
-TZOFFSETTO:-0930
-TZNAME:HWT
-DTSTART:19420209T020000
-RDATE:19420209T020000
-END:DAYLIGHT
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0930
-TZOFFSETTO:-0930
-TZNAME:HPT
-DTSTART:19450814T133000
-RDATE:19450814T133000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-1030
-TZOFFSETTO:-1000
-TZNAME:HST
-DTSTART:19470608T020000
-RDATE:19470608T020000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Pacific/Johnston.ics b/libkcal/libical/zoneinfo/Pacific/Johnston.ics
deleted file mode 100644
index bc249368..00000000
--- a/libkcal/libical/zoneinfo/Pacific/Johnston.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Pacific/Johnston
-X-LIC-LOCATION:Pacific/Johnston
-BEGIN:STANDARD
-TZOFFSETFROM:-1000
-TZOFFSETTO:-1000
-TZNAME:HST
-DTSTART:16010101T000000
-RDATE:16010101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Pacific/Kiritimati.ics b/libkcal/libical/zoneinfo/Pacific/Kiritimati.ics
deleted file mode 100644
index 2dc18c73..00000000
--- a/libkcal/libical/zoneinfo/Pacific/Kiritimati.ics
+++ /dev/null
@@ -1,29 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Pacific/Kiritimati
-X-LIC-LOCATION:Pacific/Kiritimati
-BEGIN:STANDARD
-TZOFFSETFROM:-102920
-TZOFFSETTO:-1040
-TZNAME:LINT
-DTSTART:19010101T000000
-RDATE:19010101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-1040
-TZOFFSETTO:-1000
-TZNAME:LINT
-DTSTART:19791001T000000
-RDATE:19791001T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-1000
-TZOFFSETTO:+1400
-TZNAME:LINT
-DTSTART:19950101T000000
-RDATE:19950101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Pacific/Kosrae.ics b/libkcal/libical/zoneinfo/Pacific/Kosrae.ics
deleted file mode 100644
index 1dc914cc..00000000
--- a/libkcal/libical/zoneinfo/Pacific/Kosrae.ics
+++ /dev/null
@@ -1,29 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Pacific/Kosrae
-X-LIC-LOCATION:Pacific/Kosrae
-BEGIN:STANDARD
-TZOFFSETFROM:+105156
-TZOFFSETTO:+1100
-TZNAME:KOST
-DTSTART:19010101T000000
-RDATE:19010101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+1100
-TZOFFSETTO:+1200
-TZNAME:KOST
-DTSTART:19691001T000000
-RDATE:19691001T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+1200
-TZOFFSETTO:+1100
-TZNAME:KOST
-DTSTART:19990101T000000
-RDATE:19990101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Pacific/Kwajalein.ics b/libkcal/libical/zoneinfo/Pacific/Kwajalein.ics
deleted file mode 100644
index 9ec5dd3c..00000000
--- a/libkcal/libical/zoneinfo/Pacific/Kwajalein.ics
+++ /dev/null
@@ -1,29 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Pacific/Kwajalein
-X-LIC-LOCATION:Pacific/Kwajalein
-BEGIN:STANDARD
-TZOFFSETFROM:+110920
-TZOFFSETTO:+1100
-TZNAME:MHT
-DTSTART:19010101T000000
-RDATE:19010101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+1100
-TZOFFSETTO:-1200
-TZNAME:KWAT
-DTSTART:19691001T000000
-RDATE:19691001T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-1200
-TZOFFSETTO:+1200
-TZNAME:MHT
-DTSTART:19930820T000000
-RDATE:19930820T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Pacific/Majuro.ics b/libkcal/libical/zoneinfo/Pacific/Majuro.ics
deleted file mode 100644
index 8c9d6fc3..00000000
--- a/libkcal/libical/zoneinfo/Pacific/Majuro.ics
+++ /dev/null
@@ -1,22 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Pacific/Majuro
-X-LIC-LOCATION:Pacific/Majuro
-BEGIN:STANDARD
-TZOFFSETFROM:+112448
-TZOFFSETTO:+1100
-TZNAME:MHT
-DTSTART:19010101T000000
-RDATE:19010101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+1100
-TZOFFSETTO:+1200
-TZNAME:MHT
-DTSTART:19691001T000000
-RDATE:19691001T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Pacific/Marquesas.ics b/libkcal/libical/zoneinfo/Pacific/Marquesas.ics
deleted file mode 100644
index e827d745..00000000
--- a/libkcal/libical/zoneinfo/Pacific/Marquesas.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Pacific/Marquesas
-X-LIC-LOCATION:Pacific/Marquesas
-BEGIN:STANDARD
-TZOFFSETFROM:-0918
-TZOFFSETTO:-0930
-TZNAME:MART
-DTSTART:19121001T000000
-RDATE:19121001T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Pacific/Midway.ics b/libkcal/libical/zoneinfo/Pacific/Midway.ics
deleted file mode 100644
index 9f83ccc6..00000000
--- a/libkcal/libical/zoneinfo/Pacific/Midway.ics
+++ /dev/null
@@ -1,43 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Pacific/Midway
-X-LIC-LOCATION:Pacific/Midway
-BEGIN:STANDARD
-TZOFFSETFROM:-114928
-TZOFFSETTO:-1100
-TZNAME:NST
-DTSTART:19010101T000000
-RDATE:19010101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-1100
-TZOFFSETTO:-1000
-TZNAME:NDT
-DTSTART:19560603T000000
-RDATE:19560603T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-1000
-TZOFFSETTO:-1100
-TZNAME:NST
-DTSTART:19560902T000000
-RDATE:19560902T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-1100
-TZOFFSETTO:-1100
-TZNAME:BST
-DTSTART:19670401T000000
-RDATE:19670401T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-1100
-TZOFFSETTO:-1100
-TZNAME:SST
-DTSTART:19831130T000000
-RDATE:19831130T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Pacific/Nauru.ics b/libkcal/libical/zoneinfo/Pacific/Nauru.ics
deleted file mode 100644
index d3e600da..00000000
--- a/libkcal/libical/zoneinfo/Pacific/Nauru.ics
+++ /dev/null
@@ -1,36 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Pacific/Nauru
-X-LIC-LOCATION:Pacific/Nauru
-BEGIN:STANDARD
-TZOFFSETFROM:+110740
-TZOFFSETTO:+1130
-TZNAME:NRT
-DTSTART:19210115T000000
-RDATE:19210115T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+1130
-TZOFFSETTO:+0900
-TZNAME:JST
-DTSTART:19420315T000000
-RDATE:19420315T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0900
-TZOFFSETTO:+1130
-TZNAME:NRT
-DTSTART:19440815T000000
-RDATE:19440815T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+1130
-TZOFFSETTO:+1200
-TZNAME:NRT
-DTSTART:19790501T000000
-RDATE:19790501T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Pacific/Niue.ics b/libkcal/libical/zoneinfo/Pacific/Niue.ics
deleted file mode 100644
index 11e0a909..00000000
--- a/libkcal/libical/zoneinfo/Pacific/Niue.ics
+++ /dev/null
@@ -1,29 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Pacific/Niue
-X-LIC-LOCATION:Pacific/Niue
-BEGIN:STANDARD
-TZOFFSETFROM:-111940
-TZOFFSETTO:-1120
-TZNAME:NUT
-DTSTART:19010101T000000
-RDATE:19010101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-1120
-TZOFFSETTO:-1130
-TZNAME:NUT
-DTSTART:19510101T000000
-RDATE:19510101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-1130
-TZOFFSETTO:-1100
-TZNAME:NUT
-DTSTART:19781001T000000
-RDATE:19781001T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Pacific/Norfolk.ics b/libkcal/libical/zoneinfo/Pacific/Norfolk.ics
deleted file mode 100644
index 186b7743..00000000
--- a/libkcal/libical/zoneinfo/Pacific/Norfolk.ics
+++ /dev/null
@@ -1,22 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Pacific/Norfolk
-X-LIC-LOCATION:Pacific/Norfolk
-BEGIN:STANDARD
-TZOFFSETFROM:+111152
-TZOFFSETTO:+1112
-TZNAME:NMT
-DTSTART:19010101T000000
-RDATE:19010101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+1112
-TZOFFSETTO:+1130
-TZNAME:NFT
-DTSTART:19510101T000000
-RDATE:19510101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Pacific/Noumea.ics b/libkcal/libical/zoneinfo/Pacific/Noumea.ics
deleted file mode 100644
index fc61fb84..00000000
--- a/libkcal/libical/zoneinfo/Pacific/Noumea.ics
+++ /dev/null
@@ -1,33 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Pacific/Noumea
-X-LIC-LOCATION:Pacific/Noumea
-BEGIN:STANDARD
-TZOFFSETFROM:+110548
-TZOFFSETTO:+1100
-TZNAME:NCT
-DTSTART:19120113T000000
-RDATE:19120113T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+1100
-TZOFFSETTO:+1200
-TZNAME:NCST
-DTSTART:19771204T000000
-RDATE:19771204T000000
-RDATE:19781203T000000
-RDATE:19961201T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+1200
-TZOFFSETTO:+1100
-TZNAME:NCT
-DTSTART:19780227T000000
-RDATE:19780227T000000
-RDATE:19790227T000000
-RDATE:19970302T030000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Pacific/Pago_Pago.ics b/libkcal/libical/zoneinfo/Pacific/Pago_Pago.ics
deleted file mode 100644
index d46cfa32..00000000
--- a/libkcal/libical/zoneinfo/Pacific/Pago_Pago.ics
+++ /dev/null
@@ -1,43 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Pacific/Pago_Pago
-X-LIC-LOCATION:Pacific/Pago_Pago
-BEGIN:STANDARD
-TZOFFSETFROM:+123712
-TZOFFSETTO:-112248
-TZNAME:LMT
-DTSTART:18790705T000000
-RDATE:18790705T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-112248
-TZOFFSETTO:-1130
-TZNAME:SAMT
-DTSTART:19110101T000000
-RDATE:19110101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-1130
-TZOFFSETTO:-1100
-TZNAME:NST
-DTSTART:19500101T000000
-RDATE:19500101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-1100
-TZOFFSETTO:-1100
-TZNAME:BST
-DTSTART:19670401T000000
-RDATE:19670401T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-1100
-TZOFFSETTO:-1100
-TZNAME:SST
-DTSTART:19831130T000000
-RDATE:19831130T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Pacific/Palau.ics b/libkcal/libical/zoneinfo/Pacific/Palau.ics
deleted file mode 100644
index 3ab5df8f..00000000
--- a/libkcal/libical/zoneinfo/Pacific/Palau.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Pacific/Palau
-X-LIC-LOCATION:Pacific/Palau
-BEGIN:STANDARD
-TZOFFSETFROM:+085756
-TZOFFSETTO:+0900
-TZNAME:PWT
-DTSTART:19010101T000000
-RDATE:19010101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Pacific/Pitcairn.ics b/libkcal/libical/zoneinfo/Pacific/Pitcairn.ics
deleted file mode 100644
index 13b9b743..00000000
--- a/libkcal/libical/zoneinfo/Pacific/Pitcairn.ics
+++ /dev/null
@@ -1,22 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Pacific/Pitcairn
-X-LIC-LOCATION:Pacific/Pitcairn
-BEGIN:STANDARD
-TZOFFSETFROM:-084020
-TZOFFSETTO:-0830
-TZNAME:PNT
-DTSTART:19010101T000000
-RDATE:19010101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:-0830
-TZOFFSETTO:-0800
-TZNAME:PST
-DTSTART:19980427T000000
-RDATE:19980427T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Pacific/Ponape.ics b/libkcal/libical/zoneinfo/Pacific/Ponape.ics
deleted file mode 100644
index 0aeb6fac..00000000
--- a/libkcal/libical/zoneinfo/Pacific/Ponape.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Pacific/Ponape
-X-LIC-LOCATION:Pacific/Ponape
-BEGIN:STANDARD
-TZOFFSETFROM:+103252
-TZOFFSETTO:+1100
-TZNAME:PONT
-DTSTART:19010101T000000
-RDATE:19010101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Pacific/Port_Moresby.ics b/libkcal/libical/zoneinfo/Pacific/Port_Moresby.ics
deleted file mode 100644
index eb782f1a..00000000
--- a/libkcal/libical/zoneinfo/Pacific/Port_Moresby.ics
+++ /dev/null
@@ -1,22 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Pacific/Port_Moresby
-X-LIC-LOCATION:Pacific/Port_Moresby
-BEGIN:STANDARD
-TZOFFSETFROM:+094840
-TZOFFSETTO:+094832
-TZNAME:PMMT
-DTSTART:18800101T000000
-RDATE:18800101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+094832
-TZOFFSETTO:+1000
-TZNAME:PGT
-DTSTART:18950101T000000
-RDATE:18950101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Pacific/Rarotonga.ics b/libkcal/libical/zoneinfo/Pacific/Rarotonga.ics
deleted file mode 100644
index e074a0be..00000000
--- a/libkcal/libical/zoneinfo/Pacific/Rarotonga.ics
+++ /dev/null
@@ -1,59 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Pacific/Rarotonga
-X-LIC-LOCATION:Pacific/Rarotonga
-BEGIN:STANDARD
-TZOFFSETFROM:-103904
-TZOFFSETTO:-1030
-TZNAME:CKT
-DTSTART:19010101T000000
-RDATE:19010101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-1030
-TZOFFSETTO:-0930
-TZNAME:CKHST
-DTSTART:19781112T000000
-RDATE:19781112T000000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:-0930
-TZOFFSETTO:-1000
-TZNAME:CKT
-DTSTART:19790304T000000
-RDATE:19790304T000000
-RDATE:19800302T000000
-RDATE:19810301T000000
-RDATE:19820307T000000
-RDATE:19830306T000000
-RDATE:19840304T000000
-RDATE:19850303T000000
-RDATE:19860302T000000
-RDATE:19870301T000000
-RDATE:19880306T000000
-RDATE:19890305T000000
-RDATE:19900304T000000
-RDATE:19910303T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-1000
-TZOFFSETTO:-0930
-TZNAME:CKHST
-DTSTART:19791028T000000
-RDATE:19791028T000000
-RDATE:19801026T000000
-RDATE:19811025T000000
-RDATE:19821031T000000
-RDATE:19831030T000000
-RDATE:19841028T000000
-RDATE:19851027T000000
-RDATE:19861026T000000
-RDATE:19871025T000000
-RDATE:19881030T000000
-RDATE:19891029T000000
-RDATE:19901028T000000
-END:DAYLIGHT
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Pacific/Saipan.ics b/libkcal/libical/zoneinfo/Pacific/Saipan.ics
deleted file mode 100644
index b26a4381..00000000
--- a/libkcal/libical/zoneinfo/Pacific/Saipan.ics
+++ /dev/null
@@ -1,36 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Pacific/Saipan
-X-LIC-LOCATION:Pacific/Saipan
-BEGIN:STANDARD
-TZOFFSETFROM:-1417
-TZOFFSETTO:+0943
-TZNAME:LMT
-DTSTART:18441231T000000
-RDATE:18441231T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0943
-TZOFFSETTO:+0900
-TZNAME:MPT
-DTSTART:19010101T000000
-RDATE:19010101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+0900
-TZOFFSETTO:+1000
-TZNAME:MPT
-DTSTART:19691001T000000
-RDATE:19691001T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+1000
-TZOFFSETTO:+1000
-TZNAME:ChST
-DTSTART:20001223T000000
-RDATE:20001223T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Pacific/Tahiti.ics b/libkcal/libical/zoneinfo/Pacific/Tahiti.ics
deleted file mode 100644
index 61ad21c4..00000000
--- a/libkcal/libical/zoneinfo/Pacific/Tahiti.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Pacific/Tahiti
-X-LIC-LOCATION:Pacific/Tahiti
-BEGIN:STANDARD
-TZOFFSETFROM:-095816
-TZOFFSETTO:-1000
-TZNAME:TAHT
-DTSTART:19121001T000000
-RDATE:19121001T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Pacific/Tarawa.ics b/libkcal/libical/zoneinfo/Pacific/Tarawa.ics
deleted file mode 100644
index 084dd648..00000000
--- a/libkcal/libical/zoneinfo/Pacific/Tarawa.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Pacific/Tarawa
-X-LIC-LOCATION:Pacific/Tarawa
-BEGIN:STANDARD
-TZOFFSETFROM:+113204
-TZOFFSETTO:+1200
-TZNAME:GILT
-DTSTART:19010101T000000
-RDATE:19010101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Pacific/Tongatapu.ics b/libkcal/libical/zoneinfo/Pacific/Tongatapu.ics
deleted file mode 100644
index b5ccc03f..00000000
--- a/libkcal/libical/zoneinfo/Pacific/Tongatapu.ics
+++ /dev/null
@@ -1,47 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Pacific/Tongatapu
-X-LIC-LOCATION:Pacific/Tongatapu
-BEGIN:STANDARD
-TZOFFSETFROM:+121920
-TZOFFSETTO:+1220
-TZNAME:TOT
-DTSTART:19010101T000000
-RDATE:19010101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+1220
-TZOFFSETTO:+1300
-TZNAME:TOT
-DTSTART:19410101T000000
-RDATE:19410101T000000
-END:STANDARD
-BEGIN:STANDARD
-TZOFFSETFROM:+1300
-TZOFFSETTO:+1300
-TZNAME:TOT
-DTSTART:19990101T000000
-RDATE:19990101T000000
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:+1300
-TZOFFSETTO:+1400
-TZNAME:TOST
-DTSTART:19991007T020000
-RDATE:19991007T020000
-RDATE:20001105T020000
-RDATE:20011104T020000
-END:DAYLIGHT
-BEGIN:STANDARD
-TZOFFSETFROM:+1400
-TZOFFSETTO:+1300
-TZNAME:TOT
-DTSTART:20000319T030000
-RDATE:20000319T030000
-RDATE:20010128T020000
-RDATE:20020127T020000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Pacific/Truk.ics b/libkcal/libical/zoneinfo/Pacific/Truk.ics
deleted file mode 100644
index a4183533..00000000
--- a/libkcal/libical/zoneinfo/Pacific/Truk.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Pacific/Truk
-X-LIC-LOCATION:Pacific/Truk
-BEGIN:STANDARD
-TZOFFSETFROM:+100708
-TZOFFSETTO:+1000
-TZNAME:TRUT
-DTSTART:19010101T000000
-RDATE:19010101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Pacific/Wake.ics b/libkcal/libical/zoneinfo/Pacific/Wake.ics
deleted file mode 100644
index c4ab5bc4..00000000
--- a/libkcal/libical/zoneinfo/Pacific/Wake.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Pacific/Wake
-X-LIC-LOCATION:Pacific/Wake
-BEGIN:STANDARD
-TZOFFSETFROM:+110628
-TZOFFSETTO:+1200
-TZNAME:WAKT
-DTSTART:19010101T000000
-RDATE:19010101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/Pacific/Wallis.ics b/libkcal/libical/zoneinfo/Pacific/Wallis.ics
deleted file mode 100644
index 83d5d3f0..00000000
--- a/libkcal/libical/zoneinfo/Pacific/Wallis.ics
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-PRODID:-//KDE//NONSGML KCal Olson-VTIMEZONE Converter//EN
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:/kde.org/Olson_20080523_1/Pacific/Wallis
-X-LIC-LOCATION:Pacific/Wallis
-BEGIN:STANDARD
-TZOFFSETFROM:+121520
-TZOFFSETTO:+1200
-TZNAME:WFT
-DTSTART:19010101T000000
-RDATE:19010101T000000
-END:STANDARD
-END:VTIMEZONE
-END:VCALENDAR
diff --git a/libkcal/libical/zoneinfo/zones.h b/libkcal/libical/zoneinfo/zones.h
deleted file mode 100644
index 46c09b16..00000000
--- a/libkcal/libical/zoneinfo/zones.h
+++ /dev/null
@@ -1,401 +0,0 @@
-N_("Africa/Abidjan");
-N_("Africa/Accra");
-N_("Africa/Addis_Ababa");
-N_("Africa/Algiers");
-N_("Africa/Asmara");
-N_("Africa/Bamako");
-N_("Africa/Bangui");
-N_("Africa/Banjul");
-N_("Africa/Bissau");
-N_("Africa/Blantyre");
-N_("Africa/Brazzaville");
-N_("Africa/Bujumbura");
-N_("Africa/Cairo");
-N_("Africa/Casablanca");
-N_("Africa/Ceuta");
-N_("Africa/Conakry");
-N_("Africa/Dakar");
-N_("Africa/Dar_es_Salaam");
-N_("Africa/Djibouti");
-N_("Africa/Douala");
-N_("Africa/El_Aaiun");
-N_("Africa/Freetown");
-N_("Africa/Gaborone");
-N_("Africa/Harare");
-N_("Africa/Johannesburg");
-N_("Africa/Kampala");
-N_("Africa/Khartoum");
-N_("Africa/Kigali");
-N_("Africa/Kinshasa");
-N_("Africa/Lagos");
-N_("Africa/Libreville");
-N_("Africa/Lome");
-N_("Africa/Luanda");
-N_("Africa/Lubumbashi");
-N_("Africa/Lusaka");
-N_("Africa/Malabo");
-N_("Africa/Maputo");
-N_("Africa/Maseru");
-N_("Africa/Mbabane");
-N_("Africa/Mogadishu");
-N_("Africa/Monrovia");
-N_("Africa/Nairobi");
-N_("Africa/Ndjamena");
-N_("Africa/Niamey");
-N_("Africa/Nouakchott");
-N_("Africa/Ouagadougou");
-N_("Africa/Porto-Novo");
-N_("Africa/Sao_Tome");
-N_("Africa/Tripoli");
-N_("Africa/Tunis");
-N_("Africa/Windhoek");
-N_("America/Adak");
-N_("America/Anchorage");
-N_("America/Anguilla");
-N_("America/Antigua");
-N_("America/Araguaina");
-N_("America/Argentina/Buenos_Aires");
-N_("America/Argentina/Catamarca");
-N_("America/Argentina/Cordoba");
-N_("America/Argentina/Jujuy");
-N_("America/Argentina/La_Rioja");
-N_("America/Argentina/Mendoza");
-N_("America/Argentina/Rio_Gallegos");
-N_("America/Argentina/San_Juan");
-N_("America/Argentina/San_Luis");
-N_("America/Argentina/Tucuman");
-N_("America/Argentina/Ushuaia");
-N_("America/Aruba");
-N_("America/Asuncion");
-N_("America/Atikokan");
-N_("America/Bahia");
-N_("America/Barbados");
-N_("America/Belem");
-N_("America/Belize");
-N_("America/Blanc-Sablon");
-N_("America/Boa_Vista");
-N_("America/Bogota");
-N_("America/Boise");
-N_("America/Cambridge_Bay");
-N_("America/Campo_Grande");
-N_("America/Cancun");
-N_("America/Caracas");
-N_("America/Cayenne");
-N_("America/Cayman");
-N_("America/Chicago");
-N_("America/Chihuahua");
-N_("America/Costa_Rica");
-N_("America/Cuiaba");
-N_("America/Curacao");
-N_("America/Danmarkshavn");
-N_("America/Dawson");
-N_("America/Dawson_Creek");
-N_("America/Denver");
-N_("America/Detroit");
-N_("America/Dominica");
-N_("America/Edmonton");
-N_("America/Eirunepe");
-N_("America/El_Salvador");
-N_("America/Fortaleza");
-N_("America/Glace_Bay");
-N_("America/Godthab");
-N_("America/Goose_Bay");
-N_("America/Grand_Turk");
-N_("America/Grenada");
-N_("America/Guadeloupe");
-N_("America/Guatemala");
-N_("America/Guayaquil");
-N_("America/Guyana");
-N_("America/Halifax");
-N_("America/Havana");
-N_("America/Hermosillo");
-N_("America/Indiana/Indianapolis");
-N_("America/Indiana/Knox");
-N_("America/Indiana/Marengo");
-N_("America/Indiana/Petersburg");
-N_("America/Indiana/Tell_City");
-N_("America/Indiana/Vevay");
-N_("America/Indiana/Vincennes");
-N_("America/Indiana/Winamac");
-N_("America/Inuvik");
-N_("America/Iqaluit");
-N_("America/Jamaica");
-N_("America/Juneau");
-N_("America/Kentucky/Louisville");
-N_("America/Kentucky/Monticello");
-N_("America/La_Paz");
-N_("America/Lima");
-N_("America/Los_Angeles");
-N_("America/Maceio");
-N_("America/Managua");
-N_("America/Manaus");
-N_("America/Marigot");
-N_("America/Martinique");
-N_("America/Mazatlan");
-N_("America/Menominee");
-N_("America/Merida");
-N_("America/Mexico_City");
-N_("America/Miquelon");
-N_("America/Moncton");
-N_("America/Monterrey");
-N_("America/Montevideo");
-N_("America/Montreal");
-N_("America/Montserrat");
-N_("America/Nassau");
-N_("America/New_York");
-N_("America/Nipigon");
-N_("America/Nome");
-N_("America/Noronha");
-N_("America/North_Dakota/Center");
-N_("America/North_Dakota/New_Salem");
-N_("America/Panama");
-N_("America/Pangnirtung");
-N_("America/Paramaribo");
-N_("America/Phoenix");
-N_("America/Port-au-Prince");
-N_("America/Port_of_Spain");
-N_("America/Porto_Velho");
-N_("America/Puerto_Rico");
-N_("America/Rainy_River");
-N_("America/Rankin_Inlet");
-N_("America/Recife");
-N_("America/Regina");
-N_("America/Resolute");
-N_("America/Rio_Branco");
-N_("America/Santiago");
-N_("America/Santo_Domingo");
-N_("America/Sao_Paulo");
-N_("America/Scoresbysund");
-N_("America/Shiprock");
-N_("America/St_Barthelemy");
-N_("America/St_Johns");
-N_("America/St_Kitts");
-N_("America/St_Lucia");
-N_("America/St_Thomas");
-N_("America/St_Vincent");
-N_("America/Swift_Current");
-N_("America/Tegucigalpa");
-N_("America/Thule");
-N_("America/Thunder_Bay");
-N_("America/Tijuana");
-N_("America/Toronto");
-N_("America/Tortola");
-N_("America/Vancouver");
-N_("America/Whitehorse");
-N_("America/Winnipeg");
-N_("America/Yakutat");
-N_("America/Yellowknife");
-N_("Antarctica/Casey");
-N_("Antarctica/Davis");
-N_("Antarctica/DumontDUrville");
-N_("Antarctica/Mawson");
-N_("Antarctica/McMurdo");
-N_("Antarctica/Palmer");
-N_("Antarctica/Rothera");
-N_("Antarctica/South_Pole");
-N_("Antarctica/Syowa");
-N_("Antarctica/Vostok");
-N_("Arctic/Longyearbyen");
-N_("Asia/Aden");
-N_("Asia/Almaty");
-N_("Asia/Amman");
-N_("Asia/Anadyr");
-N_("Asia/Aqtau");
-N_("Asia/Aqtobe");
-N_("Asia/Ashgabat");
-N_("Asia/Baghdad");
-N_("Asia/Bahrain");
-N_("Asia/Baku");
-N_("Asia/Bangkok");
-N_("Asia/Beirut");
-N_("Asia/Bishkek");
-N_("Asia/Brunei");
-N_("Asia/Choibalsan");
-N_("Asia/Chongqing");
-N_("Asia/Colombo");
-N_("Asia/Damascus");
-N_("Asia/Dhaka");
-N_("Asia/Dili");
-N_("Asia/Dubai");
-N_("Asia/Dushanbe");
-N_("Asia/Gaza");
-N_("Asia/Harbin");
-N_("Asia/Ho_Chi_Minh");
-N_("Asia/Hong_Kong");
-N_("Asia/Hovd");
-N_("Asia/Irkutsk");
-N_("Asia/Istanbul");
-N_("Asia/Jakarta");
-N_("Asia/Jayapura");
-N_("Asia/Jerusalem");
-N_("Asia/Kabul");
-N_("Asia/Kamchatka");
-N_("Asia/Karachi");
-N_("Asia/Kashgar");
-N_("Asia/Katmandu");
-N_("Asia/Kolkata");
-N_("Asia/Krasnoyarsk");
-N_("Asia/Kuala_Lumpur");
-N_("Asia/Kuching");
-N_("Asia/Kuwait");
-N_("Asia/Macau");
-N_("Asia/Magadan");
-N_("Asia/Makassar");
-N_("Asia/Manila");
-N_("Asia/Muscat");
-N_("Asia/Nicosia");
-N_("Asia/Novosibirsk");
-N_("Asia/Omsk");
-N_("Asia/Oral");
-N_("Asia/Phnom_Penh");
-N_("Asia/Pontianak");
-N_("Asia/Pyongyang");
-N_("Asia/Qatar");
-N_("Asia/Qyzylorda");
-N_("Asia/Rangoon");
-N_("Asia/Riyadh");
-N_("Asia/Sakhalin");
-N_("Asia/Samarkand");
-N_("Asia/Seoul");
-N_("Asia/Shanghai");
-N_("Asia/Singapore");
-N_("Asia/Taipei");
-N_("Asia/Tashkent");
-N_("Asia/Tbilisi");
-N_("Asia/Tehran");
-N_("Asia/Thimphu");
-N_("Asia/Tokyo");
-N_("Asia/Ulaanbaatar");
-N_("Asia/Urumqi");
-N_("Asia/Vientiane");
-N_("Asia/Vladivostok");
-N_("Asia/Yakutsk");
-N_("Asia/Yekaterinburg");
-N_("Asia/Yerevan");
-N_("Atlantic/Azores");
-N_("Atlantic/Bermuda");
-N_("Atlantic/Canary");
-N_("Atlantic/Cape_Verde");
-N_("Atlantic/Faroe");
-N_("Atlantic/Madeira");
-N_("Atlantic/Reykjavik");
-N_("Atlantic/South_Georgia");
-N_("Atlantic/St_Helena");
-N_("Atlantic/Stanley");
-N_("Australia/Adelaide");
-N_("Australia/Brisbane");
-N_("Australia/Broken_Hill");
-N_("Australia/Currie");
-N_("Australia/Darwin");
-N_("Australia/Eucla");
-N_("Australia/Hobart");
-N_("Australia/Lindeman");
-N_("Australia/Lord_Howe");
-N_("Australia/Melbourne");
-N_("Australia/Perth");
-N_("Australia/Sydney");
-N_("Europe/Amsterdam");
-N_("Europe/Andorra");
-N_("Europe/Athens");
-N_("Europe/Belgrade");
-N_("Europe/Berlin");
-N_("Europe/Bratislava");
-N_("Europe/Brussels");
-N_("Europe/Bucharest");
-N_("Europe/Budapest");
-N_("Europe/Chisinau");
-N_("Europe/Copenhagen");
-N_("Europe/Dublin");
-N_("Europe/Gibraltar");
-N_("Europe/Guernsey");
-N_("Europe/Helsinki");
-N_("Europe/Isle_of_Man");
-N_("Europe/Istanbul");
-N_("Europe/Jersey");
-N_("Europe/Kaliningrad");
-N_("Europe/Kiev");
-N_("Europe/Lisbon");
-N_("Europe/Ljubljana");
-N_("Europe/London");
-N_("Europe/Luxembourg");
-N_("Europe/Madrid");
-N_("Europe/Malta");
-N_("Europe/Mariehamn");
-N_("Europe/Minsk");
-N_("Europe/Monaco");
-N_("Europe/Moscow");
-N_("Europe/Nicosia");
-N_("Europe/Oslo");
-N_("Europe/Paris");
-N_("Europe/Podgorica");
-N_("Europe/Prague");
-N_("Europe/Riga");
-N_("Europe/Rome");
-N_("Europe/Samara");
-N_("Europe/San_Marino");
-N_("Europe/Sarajevo");
-N_("Europe/Simferopol");
-N_("Europe/Skopje");
-N_("Europe/Sofia");
-N_("Europe/Stockholm");
-N_("Europe/Tallinn");
-N_("Europe/Tirane");
-N_("Europe/Uzhgorod");
-N_("Europe/Vaduz");
-N_("Europe/Vatican");
-N_("Europe/Vienna");
-N_("Europe/Vilnius");
-N_("Europe/Volgograd");
-N_("Europe/Warsaw");
-N_("Europe/Zagreb");
-N_("Europe/Zaporozhye");
-N_("Europe/Zurich");
-N_("Indian/Antananarivo");
-N_("Indian/Chagos");
-N_("Indian/Christmas");
-N_("Indian/Cocos");
-N_("Indian/Comoro");
-N_("Indian/Kerguelen");
-N_("Indian/Mahe");
-N_("Indian/Maldives");
-N_("Indian/Mauritius");
-N_("Indian/Mayotte");
-N_("Indian/Reunion");
-N_("Pacific/Apia");
-N_("Pacific/Auckland");
-N_("Pacific/Chatham");
-N_("Pacific/Easter");
-N_("Pacific/Efate");
-N_("Pacific/Enderbury");
-N_("Pacific/Fakaofo");
-N_("Pacific/Fiji");
-N_("Pacific/Funafuti");
-N_("Pacific/Galapagos");
-N_("Pacific/Gambier");
-N_("Pacific/Guadalcanal");
-N_("Pacific/Guam");
-N_("Pacific/Honolulu");
-N_("Pacific/Johnston");
-N_("Pacific/Kiritimati");
-N_("Pacific/Kosrae");
-N_("Pacific/Kwajalein");
-N_("Pacific/Majuro");
-N_("Pacific/Marquesas");
-N_("Pacific/Midway");
-N_("Pacific/Nauru");
-N_("Pacific/Niue");
-N_("Pacific/Norfolk");
-N_("Pacific/Noumea");
-N_("Pacific/Pago_Pago");
-N_("Pacific/Palau");
-N_("Pacific/Pitcairn");
-N_("Pacific/Ponape");
-N_("Pacific/Port_Moresby");
-N_("Pacific/Rarotonga");
-N_("Pacific/Saipan");
-N_("Pacific/Tahiti");
-N_("Pacific/Tarawa");
-N_("Pacific/Tongatapu");
-N_("Pacific/Truk");
-N_("Pacific/Wake");
-N_("Pacific/Wallis");
diff --git a/libkcal/libical/zoneinfo/zones.tab b/libkcal/libical/zoneinfo/zones.tab
deleted file mode 100644
index 1aae2c41..00000000
--- a/libkcal/libical/zoneinfo/zones.tab
+++ /dev/null
@@ -1,401 +0,0 @@
-+0051900 -0040200 Africa/Abidjan
-+0053300 +0001300 Africa/Accra
-+0090200 +0384200 Africa/Addis_Ababa
-+0364700 +0030300 Africa/Algiers
-+0152000 +0385300 Africa/Asmara
-+0123900 -0080000 Africa/Bamako
-+0042200 +0183500 Africa/Bangui
-+0132800 -0163900 Africa/Banjul
-+0115100 -0153500 Africa/Bissau
--0154700 +0350000 Africa/Blantyre
--0041600 +0151700 Africa/Brazzaville
--0032300 +0292200 Africa/Bujumbura
-+0300300 +0311500 Africa/Cairo
-+0333900 -0073500 Africa/Casablanca
-+0355300 -0051900 Africa/Ceuta
-+0093100 -0134300 Africa/Conakry
-+0144000 -0172600 Africa/Dakar
--0064800 +0391700 Africa/Dar_es_Salaam
-+0113600 +0430900 Africa/Djibouti
-+0040300 +0094200 Africa/Douala
-+0270900 -0131200 Africa/El_Aaiun
-+0083000 -0131500 Africa/Freetown
--0254500 +0255500 Africa/Gaborone
--0175000 +0310300 Africa/Harare
--0261500 +0280000 Africa/Johannesburg
-+0001900 +0322500 Africa/Kampala
-+0153600 +0323200 Africa/Khartoum
--0015700 +0300400 Africa/Kigali
--0041800 +0151800 Africa/Kinshasa
-+0062700 +0032400 Africa/Lagos
-+0002300 +0092700 Africa/Libreville
-+0060800 +0011300 Africa/Lome
--0084800 +0131400 Africa/Luanda
--0114000 +0272800 Africa/Lubumbashi
--0152500 +0281700 Africa/Lusaka
-+0034500 +0084700 Africa/Malabo
--0255800 +0323500 Africa/Maputo
--0292800 +0273000 Africa/Maseru
--0261800 +0310600 Africa/Mbabane
-+0020400 +0452200 Africa/Mogadishu
-+0061800 -0104700 Africa/Monrovia
--0011700 +0364900 Africa/Nairobi
-+0120700 +0150300 Africa/Ndjamena
-+0133100 +0020700 Africa/Niamey
-+0180600 -0155700 Africa/Nouakchott
-+0122200 -0013100 Africa/Ouagadougou
-+0062900 +0023700 Africa/Porto-Novo
-+0002000 +0064400 Africa/Sao_Tome
-+0325400 +0131100 Africa/Tripoli
-+0364800 +0101100 Africa/Tunis
--0223400 +0170600 Africa/Windhoek
-+0515248 -1763929 America/Adak
-+0611305 -1495401 America/Anchorage
-+0181200 -0630400 America/Anguilla
-+0170300 -0614800 America/Antigua
--0071200 -0481200 America/Araguaina
--0343600 -0582700 America/Argentina/Buenos_Aires
--0282800 -0654700 America/Argentina/Catamarca
--0312400 -0641100 America/Argentina/Cordoba
--0241100 -0651800 America/Argentina/Jujuy
--0292600 -0665100 America/Argentina/La_Rioja
--0325300 -0684900 America/Argentina/Mendoza
--0513800 -0691300 America/Argentina/Rio_Gallegos
--0313200 -0683100 America/Argentina/San_Juan
--0331900 -0662100 America/Argentina/San_Luis
--0264900 -0651300 America/Argentina/Tucuman
--0544800 -0681800 America/Argentina/Ushuaia
-+0123000 -0695800 America/Aruba
--0251600 -0574000 America/Asuncion
-+0484531 -0913718 America/Atikokan
--0125900 -0383100 America/Bahia
-+0130600 -0593700 America/Barbados
--0012700 -0482900 America/Belem
-+0173000 -0881200 America/Belize
-+0512500 -0570700 America/Blanc-Sablon
-+0024900 -0604000 America/Boa_Vista
-+0043600 -0740500 America/Bogota
-+0433649 -1161209 America/Boise
-+0690650 -1050310 America/Cambridge_Bay
--0202700 -0543700 America/Campo_Grande
-+0210500 -0864600 America/Cancun
-+0103000 -0665600 America/Caracas
-+0045600 -0522000 America/Cayenne
-+0191800 -0812300 America/Cayman
-+0415100 -0873900 America/Chicago
-+0283800 -1060500 America/Chihuahua
-+0095600 -0840500 America/Costa_Rica
--0153500 -0560500 America/Cuiaba
-+0121100 -0690000 America/Curacao
-+0764600 -0184000 America/Danmarkshavn
-+0640400 -1392500 America/Dawson
-+0594600 -1201400 America/Dawson_Creek
-+0394421 -1045903 America/Denver
-+0421953 -0830245 America/Detroit
-+0151800 -0612400 America/Dominica
-+0533300 -1132800 America/Edmonton
--0064000 -0695200 America/Eirunepe
-+0134200 -0891200 America/El_Salvador
--0034300 -0383000 America/Fortaleza
-+0461200 -0595700 America/Glace_Bay
-+0641100 -0514400 America/Godthab
-+0532000 -0602500 America/Goose_Bay
-+0212800 -0710800 America/Grand_Turk
-+0120300 -0614500 America/Grenada
-+0161400 -0613200 America/Guadeloupe
-+0143800 -0903100 America/Guatemala
--0021000 -0795000 America/Guayaquil
-+0064800 -0581000 America/Guyana
-+0443900 -0633600 America/Halifax
-+0230800 -0822200 America/Havana
-+0290400 -1105800 America/Hermosillo
-+0394606 -0860929 America/Indiana/Indianapolis
-+0411745 -0863730 America/Indiana/Knox
-+0382232 -0862041 America/Indiana/Marengo
-+0382931 -0871643 America/Indiana/Petersburg
-+0375711 -0864541 America/Indiana/Tell_City
-+0384452 -0850402 America/Indiana/Vevay
-+0384038 -0873143 America/Indiana/Vincennes
-+0410305 -0863611 America/Indiana/Winamac
-+0682059 -1334300 America/Inuvik
-+0634400 -0682800 America/Iqaluit
-+0180000 -0764800 America/Jamaica
-+0581807 -1342511 America/Juneau
-+0381515 -0854534 America/Kentucky/Louisville
-+0364947 -0845057 America/Kentucky/Monticello
--0163000 -0680900 America/La_Paz
--0120300 -0770300 America/Lima
-+0340308 -1181434 America/Los_Angeles
--0094000 -0354300 America/Maceio
-+0120900 -0861700 America/Managua
--0030800 -0600100 America/Manaus
-+0180400 -0630500 America/Marigot
-+0143600 -0610500 America/Martinique
-+0231300 -1062500 America/Mazatlan
-+0450628 -0873651 America/Menominee
-+0205800 -0893700 America/Merida
-+0192400 -0990900 America/Mexico_City
-+0470300 -0562000 America/Miquelon
-+0460600 -0644700 America/Moncton
-+0254000 -1001900 America/Monterrey
--0345300 -0561100 America/Montevideo
-+0453100 -0733400 America/Montreal
-+0164300 -0621300 America/Montserrat
-+0250500 -0772100 America/Nassau
-+0404251 -0740023 America/New_York
-+0490100 -0881600 America/Nipigon
-+0643004 -1652423 America/Nome
--0035100 -0322500 America/Noronha
-+0470659 -1011757 America/North_Dakota/Center
-+0465042 -1012439 America/North_Dakota/New_Salem
-+0085800 -0793200 America/Panama
-+0660800 -0654400 America/Pangnirtung
-+0055000 -0551000 America/Paramaribo
-+0332654 -1120424 America/Phoenix
-+0183200 -0722000 America/Port-au-Prince
-+0103900 -0613100 America/Port_of_Spain
--0084600 -0635400 America/Porto_Velho
-+0182806 -0660622 America/Puerto_Rico
-+0484300 -0943400 America/Rainy_River
-+0624900 -0920459 America/Rankin_Inlet
--0080300 -0345400 America/Recife
-+0502400 -1043900 America/Regina
-+0744144 -0944945 America/Resolute
--0095800 -0674800 America/Rio_Branco
--0332700 -0704000 America/Santiago
-+0182800 -0695400 America/Santo_Domingo
--0233200 -0463700 America/Sao_Paulo
-+0702900 -0215800 America/Scoresbysund
-+0364708 -1084111 America/Shiprock
-+0175300 -0625100 America/St_Barthelemy
-+0473400 -0524300 America/St_Johns
-+0171800 -0624300 America/St_Kitts
-+0140100 -0610000 America/St_Lucia
-+0182100 -0645600 America/St_Thomas
-+0130900 -0611400 America/St_Vincent
-+0501700 -1075000 America/Swift_Current
-+0140600 -0871300 America/Tegucigalpa
-+0763400 -0684700 America/Thule
-+0482300 -0891500 America/Thunder_Bay
-+0323200 -1170100 America/Tijuana
-+0433900 -0792300 America/Toronto
-+0182700 -0643700 America/Tortola
-+0491600 -1230700 America/Vancouver
-+0604300 -1350300 America/Whitehorse
-+0495300 -0970900 America/Winnipeg
-+0593249 -1394338 America/Yakutat
-+0622700 -1142100 America/Yellowknife
--0661700 +1103100 Antarctica/Casey
--0683500 +0775800 Antarctica/Davis
--0664000 +1400100 Antarctica/DumontDUrville
--0673600 +0625300 Antarctica/Mawson
--0775000 +1663600 Antarctica/McMurdo
--0644800 -0640600 Antarctica/Palmer
--0673400 -0680800 Antarctica/Rothera
--0900000 +0000000 Antarctica/South_Pole
--0690022 +0393524 Antarctica/Syowa
--0782400 +1065400 Antarctica/Vostok
-+0780000 +0160000 Arctic/Longyearbyen
-+0124500 +0451200 Asia/Aden
-+0431500 +0765700 Asia/Almaty
-+0315700 +0355600 Asia/Amman
-+0644500 +1772900 Asia/Anadyr
-+0443100 +0501600 Asia/Aqtau
-+0501700 +0571000 Asia/Aqtobe
-+0375700 +0582300 Asia/Ashgabat
-+0332100 +0442500 Asia/Baghdad
-+0262300 +0503500 Asia/Bahrain
-+0402300 +0495100 Asia/Baku
-+0134500 +1003100 Asia/Bangkok
-+0335300 +0353000 Asia/Beirut
-+0425400 +0743600 Asia/Bishkek
-+0045600 +1145500 Asia/Brunei
-+0480400 +1143000 Asia/Choibalsan
-+0293400 +1063500 Asia/Chongqing
-+0065600 +0795100 Asia/Colombo
-+0333000 +0361800 Asia/Damascus
-+0234300 +0902500 Asia/Dhaka
--0083300 +1253500 Asia/Dili
-+0251800 +0551800 Asia/Dubai
-+0383500 +0684800 Asia/Dushanbe
-+0313000 +0342800 Asia/Gaza
-+0454500 +1264100 Asia/Harbin
-+0104500 +1064000 Asia/Ho_Chi_Minh
-+0221700 +1140900 Asia/Hong_Kong
-+0480100 +0913900 Asia/Hovd
-+0521600 +1042000 Asia/Irkutsk
-+0410100 +0285800 Asia/Istanbul
--0061000 +1064800 Asia/Jakarta
--0023200 +1404200 Asia/Jayapura
-+0314600 +0351400 Asia/Jerusalem
-+0343100 +0691200 Asia/Kabul
-+0530100 +1583900 Asia/Kamchatka
-+0245200 +0670300 Asia/Karachi
-+0392900 +0755900 Asia/Kashgar
-+0274300 +0851900 Asia/Katmandu
-+0223200 +0882200 Asia/Kolkata
-+0560100 +0925000 Asia/Krasnoyarsk
-+0031000 +1014200 Asia/Kuala_Lumpur
-+0013300 +1102000 Asia/Kuching
-+0292000 +0475900 Asia/Kuwait
-+0221400 +1133500 Asia/Macau
-+0593400 +1504800 Asia/Magadan
--0050700 +1192400 Asia/Makassar
-+0143500 +1210000 Asia/Manila
-+0233600 +0583500 Asia/Muscat
-+0351000 +0332200 Asia/Nicosia
-+0550200 +0825500 Asia/Novosibirsk
-+0550000 +0732400 Asia/Omsk
-+0511300 +0512100 Asia/Oral
-+0113300 +1045500 Asia/Phnom_Penh
-+0000200 +1092000 Asia/Pontianak
-+0390100 +1254500 Asia/Pyongyang
-+0251700 +0513200 Asia/Qatar
-+0444800 +0652800 Asia/Qyzylorda
-+0164700 +0961000 Asia/Rangoon
-+0243800 +0464300 Asia/Riyadh
-+0465800 +1424200 Asia/Sakhalin
-+0394000 +0664800 Asia/Samarkand
-+0373300 +1265800 Asia/Seoul
-+0311400 +1212800 Asia/Shanghai
-+0011700 +1035100 Asia/Singapore
-+0250300 +1213000 Asia/Taipei
-+0412000 +0691800 Asia/Tashkent
-+0414300 +0444900 Asia/Tbilisi
-+0354000 +0512600 Asia/Tehran
-+0272800 +0893900 Asia/Thimphu
-+0353916 +1394441 Asia/Tokyo
-+0475500 +1065300 Asia/Ulaanbaatar
-+0434800 +0873500 Asia/Urumqi
-+0175800 +1023600 Asia/Vientiane
-+0431000 +1315600 Asia/Vladivostok
-+0620000 +1294000 Asia/Yakutsk
-+0565100 +0603600 Asia/Yekaterinburg
-+0401100 +0443000 Asia/Yerevan
-+0374400 -0254000 Atlantic/Azores
-+0321700 -0644600 Atlantic/Bermuda
-+0280600 -0152400 Atlantic/Canary
-+0145500 -0233100 Atlantic/Cape_Verde
-+0620100 -0064600 Atlantic/Faroe
-+0323800 -0165400 Atlantic/Madeira
-+0640900 -0215100 Atlantic/Reykjavik
--0541600 -0363200 Atlantic/South_Georgia
--0155500 -0054200 Atlantic/St_Helena
--0514200 -0575100 Atlantic/Stanley
--0345500 +1383500 Australia/Adelaide
--0272800 +1530200 Australia/Brisbane
--0315700 +1412700 Australia/Broken_Hill
--0395600 +1435200 Australia/Currie
--0122800 +1305000 Australia/Darwin
--0314300 +1285200 Australia/Eucla
--0425300 +1471900 Australia/Hobart
--0201600 +1490000 Australia/Lindeman
--0313300 +1590500 Australia/Lord_Howe
--0374900 +1445800 Australia/Melbourne
--0315700 +1155100 Australia/Perth
--0335200 +1511300 Australia/Sydney
-+0522200 +0045400 Europe/Amsterdam
-+0423000 +0013100 Europe/Andorra
-+0375800 +0234300 Europe/Athens
-+0445000 +0203000 Europe/Belgrade
-+0523000 +0132200 Europe/Berlin
-+0480900 +0170700 Europe/Bratislava
-+0505000 +0042000 Europe/Brussels
-+0442600 +0260600 Europe/Bucharest
-+0473000 +0190500 Europe/Budapest
-+0470000 +0285000 Europe/Chisinau
-+0554000 +0123500 Europe/Copenhagen
-+0532000 -0061500 Europe/Dublin
-+0360800 -0052100 Europe/Gibraltar
-+0492700 -0023200 Europe/Guernsey
-+0601000 +0245800 Europe/Helsinki
-+0540900 -0042800 Europe/Isle_of_Man
-+0410100 +0285800 Europe/Istanbul
-+0491200 -0020700 Europe/Jersey
-+0544300 +0203000 Europe/Kaliningrad
-+0502600 +0303100 Europe/Kiev
-+0384300 -0090800 Europe/Lisbon
-+0460300 +0143100 Europe/Ljubljana
-+0513030 +0000731 Europe/London
-+0493600 +0060900 Europe/Luxembourg
-+0402400 -0034100 Europe/Madrid
-+0355400 +0143100 Europe/Malta
-+0600600 +0195700 Europe/Mariehamn
-+0535400 +0273400 Europe/Minsk
-+0434200 +0072300 Europe/Monaco
-+0554500 +0373500 Europe/Moscow
-+0351000 +0332200 Europe/Nicosia
-+0595500 +0104500 Europe/Oslo
-+0485200 +0022000 Europe/Paris
-+0422600 +0191600 Europe/Podgorica
-+0500500 +0142600 Europe/Prague
-+0565700 +0240600 Europe/Riga
-+0415400 +0122900 Europe/Rome
-+0531200 +0500900 Europe/Samara
-+0435500 +0122800 Europe/San_Marino
-+0435200 +0182500 Europe/Sarajevo
-+0445700 +0340600 Europe/Simferopol
-+0415900 +0212600 Europe/Skopje
-+0424100 +0231900 Europe/Sofia
-+0592000 +0180300 Europe/Stockholm
-+0592500 +0244500 Europe/Tallinn
-+0412000 +0195000 Europe/Tirane
-+0483700 +0221800 Europe/Uzhgorod
-+0470900 +0093100 Europe/Vaduz
-+0415400 +0122700 Europe/Vatican
-+0481300 +0162000 Europe/Vienna
-+0544100 +0251900 Europe/Vilnius
-+0484400 +0442500 Europe/Volgograd
-+0521500 +0210000 Europe/Warsaw
-+0454800 +0155800 Europe/Zagreb
-+0475000 +0351000 Europe/Zaporozhye
-+0472300 +0083200 Europe/Zurich
--0185500 +0473100 Indian/Antananarivo
--0072000 +0722500 Indian/Chagos
--0102500 +1054300 Indian/Christmas
--0121000 +0965500 Indian/Cocos
--0114100 +0431600 Indian/Comoro
--0492110 +0701303 Indian/Kerguelen
--0044000 +0552800 Indian/Mahe
-+0041000 +0733000 Indian/Maldives
--0201000 +0573000 Indian/Mauritius
--0124700 +0451400 Indian/Mayotte
--0205200 +0552800 Indian/Reunion
--0135000 -1714400 Pacific/Apia
--0365200 +1744600 Pacific/Auckland
--0435700 -1763300 Pacific/Chatham
--0270900 -1092600 Pacific/Easter
--0174000 +1682500 Pacific/Efate
--0030800 -1710500 Pacific/Enderbury
--0092200 -1711400 Pacific/Fakaofo
--0180800 +1782500 Pacific/Fiji
--0083100 +1791300 Pacific/Funafuti
-+0005400 -0893600 Pacific/Galapagos
--0230800 -1345700 Pacific/Gambier
--0093200 +1601200 Pacific/Guadalcanal
-+0132800 +1444500 Pacific/Guam
-+0211825 -1575130 Pacific/Honolulu
-+0164500 -1693100 Pacific/Johnston
-+0015200 -1572000 Pacific/Kiritimati
-+0051900 +1625900 Pacific/Kosrae
-+0090500 +1672000 Pacific/Kwajalein
-+0070900 +1711200 Pacific/Majuro
--0090000 -1393000 Pacific/Marquesas
-+0281300 -1772200 Pacific/Midway
-+0003100 +1665500 Pacific/Nauru
--0190100 +1695500 Pacific/Niue
--0290300 +1675800 Pacific/Norfolk
--0221600 +1653000 Pacific/Noumea
--0141600 -1704200 Pacific/Pago_Pago
-+0072000 +1342900 Pacific/Palau
--0250400 -1300500 Pacific/Pitcairn
-+0065800 +1581300 Pacific/Ponape
--0093000 +1471000 Pacific/Port_Moresby
--0211400 -1594600 Pacific/Rarotonga
-+0151200 +1454500 Pacific/Saipan
--0173200 -1493400 Pacific/Tahiti
-+0012500 +1730000 Pacific/Tarawa
--0211000 +1751000 Pacific/Tongatapu
-+0072500 +1514700 Pacific/Truk
-+0191700 +1663700 Pacific/Wake
--0131800 -1761000 Pacific/Wallis
diff --git a/libkcal/vcalformat.cpp b/libkcal/vcalformat.cpp
index 153efa31..3ed492d3 100644
--- a/libkcal/vcalformat.cpp
+++ b/libkcal/vcalformat.cpp
@@ -37,8 +37,8 @@
 #include "vcc.h"
 #include "vobject.h"
 extern "C" {
-#include "icaltime.h"
-#include "icaltimezone.h"
+#include <libical/icaltime.h>
+#include <libical/icaltimezone.h>
 }
 #include "vcaldrag.h"
 #include "calendar.h"
diff --git a/libkdepim/kfileio.cpp b/libkdepim/kfileio.cpp
index 6aa30467..f601bc6d 100644
--- a/libkdepim/kfileio.cpp
+++ b/libkdepim/kfileio.cpp
@@ -302,12 +302,12 @@ QString checkAndCorrectPermissionsIfPossible( const QString &toCheck,
     }
   }
 
-  // For each file or folder  we can check if the file is readable 
+  // For each file or folder  we can check if the file is readable
   // and writable, as requested.
   if ( fiToCheck.isFile() || fiToCheck.isDir() ) {
 
     if ( !fiToCheck.isReadable() && wantItReadable ) {
-      // Get the current permissions. No need to do anything with an 
+      // Get the current permissions. No need to do anything with an
       // error, it will het added to errors anyhow, later on.
       if ( stat(toCheckEnc,&statbuffer) != 0 ) {
         kdDebug() << "wantItR: Can't read perms of " << toCheck << endl;
@@ -339,7 +339,7 @@ QString checkAndCorrectPermissionsIfPossible( const QString &toCheck,
     }
   }
 
-  // If it is a folder and recursive is true, then we check the contents of 
+  // If it is a folder and recursive is true, then we check the contents of
   // the folder.
   if ( fiToCheck.isDir() && recursive ){
     QDir g(toCheck);
@@ -355,7 +355,7 @@ QString checkAndCorrectPermissionsIfPossible( const QString &toCheck,
         QString newToCheck = toCheck + "/" + fi->fileName();
         QFileInfo fiNewToCheck(newToCheck);
         if ( fi->fileName() != "." && fi->fileName() != ".." ) {
-          error.append ( checkAndCorrectPermissionsIfPossible( newToCheck, 
+          error.append ( checkAndCorrectPermissionsIfPossible( newToCheck,
                                 recursive, wantItReadable, wantItWritable) );
         }
         ++it;
@@ -369,14 +369,14 @@ bool checkAndCorrectPermissionsIfPossibleWithErrorHandling( QWidget *parent,
   const QString &toCheck, const bool recursive, const bool wantItReadable,
   const bool wantItWritable )
 {
-  QString error = checkAndCorrectPermissionsIfPossible(toCheck, recursive, 
+  QString error = checkAndCorrectPermissionsIfPossible(toCheck, recursive,
                                            wantItReadable, wantItWritable);
-  // There is no KMessageBox with Retry, Cancel and Details. 
-  // so, I can't provide a functionality to recheck. So it now 
+  // There is no KMessageBox with Retry, Cancel and Details.
+  // so, I can't provide a functionality to recheck. So it now
   // it is just a warning.
   if ( !error.isEmpty() ) {
     kdDebug() << "checkPermissions found:" << error << endl;
-    KMessageBox::detailedSorry(parent, 
+    KMessageBox::detailedSorry(parent,
                                i18n("Some files or folders do not have "
                                "the right permissions, please correct them "
                                "manually."),
-- 
cgit v1.2.3

