Added the utility program used to generate timezone-specific iCalendar information, and the original .ics files generated by the utility program in 2010.

- Legacy-Id: 6496
This commit is contained in:
Henrik Levkowetz 2013-10-27 19:40:47 +00:00
parent 16ae35ae19
commit 8cf4cd4e4e
397 changed files with 36485 additions and 0 deletions

57
vzic/ChangeLog Normal file
View file

@ -0,0 +1,57 @@
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

90
vzic/Makefile Normal file
View file

@ -0,0 +1,90 @@
#
# You will need to set this to the directory that the Olson timezone data
# files are in.
#
OLSON_DIR = /usr/share/olson-icalendar/
# 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 = -//IETF Tools//NONSGML ietf-agenda-ical 1.03//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 = /tools.ietf.org/Olson_%D_1/
#TZID_PREFIX = /
# 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

202
vzic/README Normal file
View file

@ -0,0 +1,202 @@
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.

422
vzic/test-vzic.c Normal file
View file

@ -0,0 +1,422 @@
/*
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307, 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);
}

BIN
vzic/vzic Executable file

Binary file not shown.

409
vzic/vzic-dump.c Normal file
View file

@ -0,0 +1,409 @@
/*
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307, 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);
}

58
vzic/vzic-dump.h Normal file
View file

@ -0,0 +1,58 @@
/*
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307, 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_ */

222
vzic/vzic-dump.pl Executable file
View file

@ -0,0 +1,222 @@
#!/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., 59 Temple Place, Suite 330, Boston, MA 02111-1307, 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";
}

127
vzic/vzic-merge.pl Executable file
View file

@ -0,0 +1,127 @@
#!/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., 59 Temple Place, Suite 330, Boston, MA 02111-1307, 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);
}
}
}

2325
vzic/vzic-output.c Normal file

File diff suppressed because it is too large Load diff

38
vzic/vzic-output.h Normal file
View file

@ -0,0 +1,38 @@
/*
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307, 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_ */

901
vzic/vzic-parse.c Normal file
View file

@ -0,0 +1,901 @@
/*
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307, 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;
}

38
vzic/vzic-parse.h Normal file
View file

@ -0,0 +1,38 @@
/*
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307, 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_ */

164
vzic/vzic-test.pl Executable file
View file

@ -0,0 +1,164 @@
#!/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., 59 Temple Place, Suite 330, Boston, MA 02111-1307, 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);

320
vzic/vzic.c Normal file
View file

@ -0,0 +1,320 @@
/*
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307, 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);
}

196
vzic/vzic.h Normal file
View file

@ -0,0 +1,196 @@
/*
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307, 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_ */

View file

@ -0,0 +1,15 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,41 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,22 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,90 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,29 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,29 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,15 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,29 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,22 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,15 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,15 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,15 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,149 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Cairo
X-LIC-LOCATION:Africa/Cairo
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
RDATE:19950428T000000
RDATE:19960426T000000
RDATE:19970425T000000
RDATE:19980424T000000
RDATE:19990430T000000
RDATE:20000428T000000
RDATE:20010427T000000
RDATE:20020426T000000
RDATE:20030425T000000
RDATE:20040430T000000
RDATE:20050429T000000
RDATE:20060428T000000
RDATE:20070427T000000
RDATE:20080425T000000
RDATE:20090424T000000
RDATE:20100430T000000
RDATE:20100910T000000
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
RDATE:20030926T000000
RDATE:20041001T000000
RDATE:20050930T000000
RDATE:20060922T000000
RDATE:20070907T000000
RDATE:20080829T000000
RDATE:20090821T000000
RDATE:20100811T000000
RDATE:20101001T000000
END:STANDARD
END:VTIMEZONE
END:VCALENDAR

View file

@ -0,0 +1,59 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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
RDATE:20080601T000000
RDATE:20090601T000000
RDATE:20100502T000000
RDATE:20110403T000000
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
RDATE:20080901T000000
RDATE:20090821T000000
RDATE:20100808T000000
RDATE:20110731T000000
END:STANDARD
BEGIN:STANDARD
TZOFFSETFROM:+0000
TZOFFSETTO:+0100
TZNAME:CET
DTSTART:19840316T000000
RDATE:19840316T000000
END:STANDARD
END:VTIMEZONE
END:VCALENDAR

View file

@ -0,0 +1,99 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,29 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,22 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,29 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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:+0245
TZNAME:BEAUT
DTSTART:19480101T000000
RDATE:19480101T000000
END:STANDARD
BEGIN:STANDARD
TZOFFSETFROM:+0245
TZOFFSETTO:+0300
TZNAME:EAT
DTSTART:19610101T000000
RDATE:19610101T000000
END:STANDARD
END:VTIMEZONE
END:VCALENDAR

View file

@ -0,0 +1,15 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,15 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,22 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,81 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,29 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,15 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,38 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,66 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Juba
X-LIC-LOCATION:Africa/Juba
BEGIN:STANDARD
TZOFFSETFROM:+020624
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

View file

@ -0,0 +1,36 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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:+0245
TZNAME:BEAUT
DTSTART:19480101T000000
RDATE:19480101T000000
END:STANDARD
BEGIN:STANDARD
TZOFFSETFROM:+0245
TZOFFSETTO:+0300
TZNAME:EAT
DTSTART:19570101T000000
RDATE:19570101T000000
END:STANDARD
END:VTIMEZONE
END:VCALENDAR

View file

@ -0,0 +1,66 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,15 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,15 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,15 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,15 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,15 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,22 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,15 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,15 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,22 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,15 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,29 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,15 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,29 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,29 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,36 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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:+0245
TZNAME:BEAUT
DTSTART:19400101T000000
RDATE:19400101T000000
END:STANDARD
BEGIN:STANDARD
TZOFFSETFROM:+0245
TZOFFSETTO:+0300
TZNAME:EAT
DTSTART:19600101T000000
RDATE:19600101T000000
END:STANDARD
END:VTIMEZONE
END:VCALENDAR

View file

@ -0,0 +1,29 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,29 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,29 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,15 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,22 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,22 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,67 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,66 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Tunis
X-LIC-LOCATION:Africa/Tunis
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
RDATE:20060326T020000
RDATE:20070325T020000
RDATE:20080330T020000
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
RDATE:20061029T030000
RDATE:20071028T030000
RDATE:20081026T030000
END:STANDARD
END:VTIMEZONE
END:VCALENDAR

View file

@ -0,0 +1,64 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,186 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1 @@
Los_Angeles.ics

View file

@ -0,0 +1,186 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,15 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,22 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,51 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1 @@
New_York.ics

View file

@ -0,0 +1,102 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_1/America/Bahia_Banderas
X-LIC-LOCATION:America/Bahia_Banderas
BEGIN:STANDARD
TZOFFSETFROM:-0500
TZOFFSETTO:-0600
TZNAME:CST
DTSTART:20101031T020000
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:-0600
TZOFFSETTO:-0500
TZNAME:CDT
DTSTART:20110403T020000
RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0701
TZOFFSETTO:-0700
TZNAME:MST
DTSTART:19211231T235900
RDATE:19211231T235900
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
RDATE:20021027T020000
RDATE:20031026T020000
RDATE:20041031T020000
RDATE:20051030T020000
RDATE:20061029T020000
RDATE:20071028T020000
RDATE:20081026T020000
RDATE:20091025T020000
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
RDATE:20020407T020000
RDATE:20030406T020000
RDATE:20040404T020000
RDATE:20050403T020000
RDATE:20060402T020000
RDATE:20070401T020000
RDATE:20080406T020000
RDATE:20090405T020000
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETFROM:-0700
TZOFFSETTO:-0500
TZNAME:CDT
DTSTART:20100404T020000
RDATE:20100404T020000
END:DAYLIGHT
END:VTIMEZONE
END:VCALENDAR

View file

@ -0,0 +1,42 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,93 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,51 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,166 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,155 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,79 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,22 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,242 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,90 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,42 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1 @@
Chicago.ics

View file

@ -0,0 +1,66 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,153 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,109 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,158 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,145 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,15 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,151 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,31 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,140 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,58 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,274 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_1/America/Goose_Bay
X-LIC-LOCATION:America/Goose_Bay
BEGIN:STANDARD
TZOFFSETFROM:-0300
TZOFFSETTO:-0400
TZNAME:AST
DTSTART:20111106T020000
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:-0400
TZOFFSETTO:-0300
TZNAME:ADT
DTSTART:20120311T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
END:DAYLIGHT
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
RDATE:20070311T000100
RDATE:20080309T000100
RDATE:20090308T000100
RDATE:20100314T000100
RDATE:20110313T000100
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
RDATE:20071104T000100
RDATE:20081102T000100
RDATE:20091101T000100
RDATE:20101107T000100
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
BEGIN:DAYLIGHT
TZOFFSETFROM:-0300
TZOFFSETTO:-0300
TZNAME:ADT
DTSTART:20111101T000000
RDATE:20111101T000000
END:DAYLIGHT
END:VTIMEZONE
END:VCALENDAR

View file

@ -0,0 +1,104 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

View file

@ -0,0 +1,15 @@
BEGIN:VCALENDAR
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/tools.ietf.org/Olson_20110927_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

Some files were not shown because too many files have changed in this diff Show more