Complete Contents
Preface
Chapter 1 Installation and Deployment
Chapter 2 Configuring Calendar Server
Chapter 3 Admininistering Calendar Server
Chapter 4 Monitoring the Calendar Server
Appendix A Commnand Line Utilities
Appendix B Monitoring Tools
Appendix C Time Zones
Appendix D Calendar Server LDAP Schema
Index
iPlanet Calendar Server: Administration Guide: Time Zones
Previous Next Contents Index


Appendix C Time Zones

This appendix describes how Calendar Server processes time zones. It also describes how an administrator can add a new time zone table or modify the time zone tables supplied with Calendar Server.

The file data/timezones _libnls.ics shown (see Calendar Server Time Zones Table) contains the representation of the time zones supported by Calendar Server. This file is located in the server-root/cal/bin/data directory (for example, opt/SUNWicsrv/cal/bin/data). The 91 time zones that this file contains are based off the time zone list defined in libnls3.0.

At startup, the Calendar Server reads the file timezones _libnls, then generates 91 in-memory time zones and stores them in an array (cal_array). Therefore, all the time zones are kept in memory while the server is running.

If a WCAP command includes a time zone ID (tzid), it should reference a time zone in the cal_array. For more information on WCAP, refer to the iPlanet Calendar Server Programmer's Guide.

For example, if a command such as storeevents or fetchcomponents_by_range specifies a tzid parameter, the parameter value must be a tzid that is defined in the list of 91 time zones. The server will return data in that time zone and all data will have dates applied to that time zone.

If the command specifies an unrecognized tzid, the server will return a GMT time zone by default. All data returned on that command will have its dates applied in GMT.

For example, suppose the following WCAP command is sent to the server:

fetchcomponents_by_range.wcap?id=12345&calid=JSmithcal&dtstart=0&dtend=0&tzid=America/New_York&brief=1

The above command asks the server to return all data in the CALID JSmithcal with all dates returned in the time zone defined in America/New_York. Since this time zone is recognized by the server, the data will be returned successfully as follows:

HTTP/1.1 200

Date: Tue, 17 Aug 1999 23:58:29 GMT

Content-type: text/html; charset=iso-8859-1

Content-Length: 4206

Last-modified: Tue, 17 Aug 1999 23:58:29 GMT

Pragma: no-cache

Expires: 0

Cache-Control: no-cache

Connection: Keep-Alive

<html><head><script>

function color(s) { if (s) document.bgColor=s }

var id='n3l0m05sbeee8uh'

var userid='malika'

var calid='pub'

var errno=new Array()

var timezoneList = new Array()

var calprops = new Array()

var layer_errno = new Array()

function iso(p) {

if (!p) return null;

var y = p.substring(0,4)

var m = p.substring(4,6)

var d = p.substring(6,8)

var h = p.substring(9,11)

var i = p.substring(11,13)

var s = p.substring(13,15)

return new parent.ceDate(y, m-1, d, h, i, s, 0)

}

function Ec(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13){

this.uid=a1

this.rid=a2

this.calid=a3

this.dtstart=iso(a4)

this.dtend=iso(a5)

this.isAllDay=a6

this.summary=a7

this.created=iso(a8)

this.lastMod=iso(a9)

this.desc=a10

this.location=a11

this.tzid=a12

this.linkCalid=a13

}function Tc(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15){

this.uid=a1

this.rid=a2

this.calid=a3

this.dtstart=iso(a4)

this.due=iso(a5)

this.isAllDay=a6

this.summary=a7

this.created=iso(a8)

this.lastMod=iso(a9)

this.desc=a10

this.location=a11

this.completed=iso(a12)

this.percent=a13

this.tzid=a14

this.linkCalid=a15

}

function TZ(a1,a2,a3,a4,a5,a6) {

this.tzid=a1

this.sName=a2

this.dName=a3

this.sOffset=a4

this.dOffset=a5

this.crossOver=a6

}

function CP(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15) {

this.calid=a1

this.name=a2

this.parent=a3

this.tzid=a4

this.read=a5

this.write=a6

this.charset=a7

this.lang=a8

this.master=a9

this.desc=a10

this.lastMod=iso(a11)

this.created=iso(a12)

this.primaryOwner=a13

this.owners=a14

this.categories=a15

}

var event=new Array()

var status_types=new Array('confirmed', 'tentative', 'cancelled')

timezoneList[0] = new TZ('America/New_York',

'EST',

'EDT',

'-0500',

'-0400',

new Array('19880403T070000Z','19881030T060000Z','19890402T070000Z','19891029T060000Z',

'19900401T070000Z','19901028T060000Z','19910407T070000Z','19911027T060000Z',

'19920405T070000Z','19921025T060000Z','19930404T070000Z','19931031T060000Z',

'19940403T070000Z','19941030T060000Z','19950402T070000Z','19951029T060000Z',

'19960407T070000Z','19961027T060000Z','19970406T070000Z','19971026T060000Z',

'19980405T070000Z','19981025T060000Z','19990404T070000Z','19991031T060000Z',

'20000402T070000Z','20001029T060000Z','20010401T070000Z','20011028T060000Z',

'20020407T070000Z','20021027T060000Z','20030406T070000Z','20031026T060000Z',

'20040404T070000Z','20041031T060000Z','20050403T070000Z','20051030T060000Z',

'20060402T070000Z','20061029T060000Z','20070401T070000Z','20071028T060000Z',

'20080406T070000Z','20081026T060000Z','20090405T070000Z','20091025T060000Z',

'20100404T070000Z','20101031T060000Z','20110403T070000Z','20111030T060000Z',

'20120401T070000Z','20121028T060000Z','20130407T070000Z','20131027T060000Z',

'20140406T070000Z','20141026T060000Z','20150405T070000Z','20151025T060000Z',

'20160403T070000Z','20161030T060000Z','20170402T070000Z','20171029T060000Z',

'20180401T070000Z','20181028T060000Z','20190407T070000Z','20191027T060000Z',

'20200405T070000Z','20201025T060000Z','20210404T070000Z','20211031T060000Z',

'20220403T070000Z','20221030T060000Z','20230402T070000Z','20231029T060000Z',

'20240407T070000Z','20241027T060000Z','20250406T070000Z','20251026T060000Z',

'20260405T070000Z','20261025T060000Z','20270404T070000Z','20271031T060000Z',

'20280402T070000Z','20281029T060000Z','20290401T070000Z','20291028T060000Z',

'20300407T070000Z','20301027T060000Z','20310406T070000Z','20311026T060000Z',

'20320404T070000Z','20321031T060000Z','20330403T070000Z','20331030T060000Z',

'20340402T070000Z','20341029T060000Z','20350401T070000Z','20351028T060000Z',

'20360406T070000Z','20361026T060000Z','20370405T070000Z','20371025T060000Z'))

calprops[0] = new CP('pub',

'Public Calendar',

'',

'',

'0',

'0',

'',

'',

'',

'',

'19990817T235829Z',

'19990817T235829Z',

'malika',

new Array(),

new Array(),

new Array())

event[0]=new Ec('TZ_all_params_event',

'0',

'pub',

'19991111T093000',

'19991111T163000',

0,'testing-timezones_events',

'19990817T195829','19990817T195829',

'testing out timezones events',

'Mountain-View',

'America/New_York','')

layer_errno[0]=0

var size=1

var dtstartrange="0"

var dtendrange="0"

errno[0]=0

parent.ceCB(window.name)

</script></head></html>


Time Zone Administration
This section diatribes how to:

To modify the Calendar Server time zone list, an administrator must edit the file timezones_libnls.ics located in the server-root/cal/db/data directory. This file contains the Calendar Server format of 91 time zones. (See iCalendar Specification for more details about VTIMEZONE format).

Timezones are identified by the property TZID. For example, Calendar Server recognizes the Pacific Standard Time Zone (PST/PDT) as the TZID "America/Los_Angeles". The following time zone defines the "America/Los_Angeles" time zone.

BEGIN:VTIMEZONE

TZID:America/Los_Angeles

BEGIN:STANDARD

DTSTART:19671025T020000

RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10

TZOFFSETFROM:-0700

TZOFFSETTO:-0800

TZNAME:PST

END:STANDARD

BEGIN:DAYLIGHT

DTSTART:19870405T020000

RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4

TZOFFSETFROM:-0800

TZOFFSETTO:-0700

TZNAME:PDT

END:DAYLIGHT

X-NSCP-TZCROSS:19880403T100000Z;19881030T090000Z;19890402T100000Z;19891029T090000Z;

19900401T100000Z;19901028T090000Z;19910407T100000Z;19911027T090000Z;

19920405T100000Z;19921025T090000Z;19930404T100000Z;19931031T090000Z;

19940403T100000Z;19941030T090000Z;19950402T100000Z;19951029T090000Z;

19960407T100000Z;19961027T090000Z;19970406T100000Z;19971026T090000Z;

19980405T100000Z;19981025T090000Z;19990404T100000Z;19991031T090000Z;

20000402T100000Z;20001029T090000Z;20010401T100000Z;20011028T090000Z;

20020407T100000Z;20021027T090000Z;20030406T100000Z;20031026T090000Z;

20040404T100000Z;20041031T090000Z;20050403T100000Z;20051030T090000Z;

20060402T100000Z;20061029T090000Z;20070401T100000Z;20071028T090000Z;

20080406T100000Z;20081026T090000Z;20090405T100000Z;20091025T090000Z;

20100404T100000Z;20101031T090000Z;20110403T100000Z;20111030T090000Z;

20120401T100000Z;20121028T090000Z;20130407T100000Z;20131027T090000Z;

20140406T100000Z;20141026T090000Z;20150405T100000Z;20151025T090000Z;

20160403T100000Z;20161030T090000Z;20170402T100000Z;20171029T090000Z;

20180401T100000Z;20181028T090000Z;20190407T100000Z;20191027T090000Z;

20200405T100000Z;20201025T090000Z;20210404T100000Z;20211031T090000Z;

20220403T100000Z;20221030T090000Z;20230402T100000Z;20231029T090000Z;

20240407T100000Z;20241027T090000Z;20250406T100000Z;20251026T090000Z;

20260405T100000Z;20261025T090000Z;20270404T100000Z;20271031T090000Z;

20280402T100000Z;20281029T090000Z;20290401T100000Z;20291028T090000Z;

20300407T100000Z;20301027T090000Z;20310406T100000Z;20311026T090000Z;

20320404T100000Z;20321031T090000Z;20330403T100000Z;20331030T090000Z;

20340402T100000Z;20341029T090000Z;20350401T100000Z;20351028T090000Z;

20360406T100000Z;20361026T090000Z;20370405T100000Z;20371025T090000Z;

20380404T100000Z;20381031T090000Z;20390403T100000Z;20391030T090000Z

END:VTIMEZONE

Time zones with daylight savings usually contain two parts: STANDARD and DAYLIGHT.

Note. The "RRULE" property defines the pattern of the STANDARD and DAYLIGHT rules. The "TZOFFSETFROM" and "TZOFFSETTO" properties define the offset from GMT before and after the DAYLIGHT to STANDARD or STANDARD to DAYLIGHT change occurs.

The "TZNAME" property is an abbreviated representation of the time zone. (The iCalendar Specification provides additional information about the representation of VTIMEZONE.)

Adding a New Time zone
The X-NSCP-TZCROSS property contains a large list of dates that indicate when the time zone crosses over from DAYLIGHT to STANDARD and STANDARD to DAYLIGHTT:

The Calendar Server's Web browser-based user interface uses the dates in X-NSCP-TZCROSS to signify when to display a change in the time zone.

Use the following steps to add a new time zone to the Calendar Server

  1. Create TZID name not already included in the TZID list.
  2. Create a representation of the time zone.
  3. To support the Calendar Web browser user interface, you must generate the X-NSCP-TZCROSS list for the new time zone.
Modifying an Existing Time Zone
To modify an existing time zone:

  1. Modify a TZID to represent the desired time zone data.
  2. To support the Calendar Express client, you must generate the X-NSCP-TZCROSS list for the modified time zone.
Customizing Time Zones in the Calendar Server User Interface
To modify the Web browser -based user interface to use a customized naming scheme for the time zone, you must add JavaScript code to map the new names to the time zone names supplied with Calendar Server.

For example, an administrator who wants to use a customized time zone table called US Pacific instead of the supplied America/Los_Angeles table, must provide a program to map the US Pacific dates to the America /Los_Angeles table.

It recommended, however, administrators should not modify the time zone list unless absolutely necessary.

Calendar Server Time Zones Table
The Calendar Server time zone table is defined in a plain text file called timezones _libnls.ics located in the server-root/cal/bin/data directory (for example, /opt/SUNWicsrv/cal/bin/data). It includes 91 time zones based on JDK1.1.

The following example shows the first few sections of the time zone table.

BEGIN:VCALENDAR

BEGIN:VTIMEZONE

TZID:Pacific/Apia

BEGIN:STANDARD

DTSTART:19970101T000000

TZOFFSETFROM:-1100

TZOFFSETTO:-1100

TZNAME:WST

TZNAME:SST

TZNAME:NUT

END:STANDARD

END:VTIMEZONE

BEGIN:VTIMEZONE

TZID:Pacific/Honolulu

BEGIN:STANDARD

DTSTART:19970101T000000

TZOFFSETFROM:-1000

TZOFFSETTO:-1000

TZNAME:HST

TZNAME:TKT

TZNAME:TAHT

END:STANDARD

END:VTIMEZONE

BEGIN:VTIMEZONE

TZID:America/Adak

BEGIN:STANDARD

DTSTART:19671025T020000

RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10

TZOFFSETFROM:-0900

TZOFFSETTO:-1000

TZNAME:HAST

END:STANDARD

BEGIN:DAYLIGHT

DTSTART:19870405T020000

RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4

TZOFFSETFROM:-1000

TZOFFSETTO:-0900

TZNAME:HADT

END:DAYLIGHT

X-NSCP-TZCROSS:19880403T120000Z;19881030T110000Z;19890402T120000Z;19891029T110000Z;

19900401T120000Z;19901028T110000Z;19910407T120000Z;19911027T110000Z;

19920405T120000Z;19921025T110000Z;19930404T120000Z;19931031T110000Z;

19940403T120000Z;19941030T110000Z;19950402T120000Z;19951029T110000Z;

19960407T120000Z;19961027T110000Z;19970406T120000Z;19971026T110000Z;

19980405T120000Z;19981025T110000Z;19990404T120000Z;19991031T110000Z;

20000402T120000Z;20001029T110000Z;20010401T120000Z;20011028T110000Z;

20020407T120000Z;20021027T110000Z;20030406T120000Z;20031026T110000Z;

20040404T120000Z;20041031T110000Z;20050403T120000Z;20051030T110000Z;

20060402T120000Z;20061029T110000Z;20070401T120000Z;20071028T110000Z;

20080406T120000Z;20081026T110000Z;20090405T120000Z;20091025T110000Z;

20100404T120000Z;20101031T110000Z;20110403T120000Z;20111030T110000Z;

20120401T120000Z;20121028T110000Z;20130407T120000Z;20131027T110000Z;

20140406T120000Z;20141026T110000Z;20150405T120000Z;20151025T110000Z;

20160403T120000Z;20161030T110000Z;20170402T120000Z;20171029T110000Z;

20180401T120000Z;20181028T110000Z;20190407T120000Z;20191027T110000Z;

20200405T120000Z;20201025T110000Z;20210404T120000Z;20211031T110000Z;

20220403T120000Z;20221030T110000Z;20230402T120000Z;20231029T110000Z;

20240407T120000Z;20241027T110000Z;20250406T120000Z;20251026T110000Z;

20260405T120000Z;20261025T110000Z;20270404T120000Z;20271031T110000Z;

20280402T120000Z;20281029T110000Z;20290401T120000Z;20291028T110000Z;

20300407T120000Z;20301027T110000Z;20310406T120000Z;20311026T110000Z;

20320404T120000Z;20321031T110000Z;20330403T120000Z;20331030T110000Z;

20340402T120000Z;20341029T110000Z;20350401T120000Z;20351028T110000Z;

20360406T120000Z;20361026T110000Z;20370405T120000Z;20371025T110000Z

END:VTIMEZONE

 

© Copyright 2000 Sun Microsystems, Inc. Some preexisting portions Copyright © Netscape Communications Corp. All rights reserved.