2.1.3.1.1.19 Component: VTIMEZONE

RFC Reference: [RFC2445] section 4.6.5

Number of Instances Allowed: 0+<43>

Brief Description: Specifies any time zones referenced by TZID parameters.

Importing to Calendar objects

Since TZIDs can be referenced by many properties in the root component, VTIMEZONEs MUST be used to resolve all local times in the iCalendar file, even if the TZID reference occurs before the VTIMEZONE definition. This section discusses how to import a VTIMEZONE into a PidLidTimeZoneStruct structure ([MS-OXOCAL] section 2.2.1.39).

Field of the PidLidTimeZoneStruct structure

Value

lBias

See section 2.1.3.1.1.19.2.5

lStandardBias

Set to 0x00000000

lDaylightBias

See section 2.1.3.1.1.19.3.5

stStandardDate

See sections 2.1.3.1.1.19.2.1 and 2.1.3.1.1.19.2.2

stDaylightDate

See sections 2.1.3.1.1.19.3.1 and 2.1.3.1.1.19.3.2

wStandardYear

Set to the wYear field of stStandardDate

wDaylightYear

Set to the wYear field of stDaylightDate

If this VTIMEZONE is imported as PidLidAppointmentTimeZoneDefinitionRecur ([MS-OXPROPS] section 2.33), PidLidAppointmentTimeZoneDefinitionStartDisplay ([MS-OXPROPS] section 2.34), and/or PidLidAppointmentTimeZoneDefinitionEndDisplay ([MS-OXPROPS] section 2.32),<44> then the following table specifies the contents of the resulting BLOB (the structure of this BLOB is specified in [MS-OXOCAL]). See section 2.1.3.1.1.20.8.1 and section 2.1.3.1.1.20.10.1 for more information.

Field of the BLOB

Value

Major Version

Constant specified by [MS-OXOCAL]

Minor Version

Constant specified by [MS-OXOCAL]

cbHeader

Set to (0x0006 + 0x0002 * cchKeyName)

Reserved

Constant specified by [MS-OXOCAL]

cchKeyName

Set to the number of characters in KeyName

KeyName

See section 2.1.3.1.1.19.1

cRules

Set to the number of TZRule structures (as specified in [MS-OXOCAL] section 2.2.1.41.1) in the TZRules field. This value is equal to the number of time zone rules generated by parsing the STANDARD (section 2.1.3.1.1.19.2) and DAYLIGHT (section 2.1.3.1.1.19.3) subcomponents.

TZRules

An array of TZRule structures as specified in the following table.

The following table specifies the contents of each TZRule structure in the TZRules field.

TZRule structure field

Value

Major Version

Constant specified by [MS-OXOCAL]

Minor Version

Constant specified by [MS-OXOCAL]

Reserved

Constant specified by [MS-OXOCAL]

TZRule flags

Set to 0x0002 for PidLidAppointmentTimeZoneDefinitionStartDisplay and PidLidAppointmentTimeZoneDefinitionEndDisplay.

Set to 0x0003 for PidLidAppointmentTimeZoneDefinitionRecur.

wYear

For the first TZRule structure in the array, this field SHOULD be set to 0x0641 but MAY<45> be set to 0x0001. For subsequent TZRule structures, this field MUST be set to the year that corresponds to the time zone rule.

X

Constant specified by [MS-OXOCAL]

lBias

Import the same as the lBias field of a PidLidTimeZoneStruct structure

lStandardBias

Import the same as the lStandardBias field of a PidLidTimeZoneStruct structure

lDaylightBias

Import the same as the lDaylightBias field of a PidLidTimeZoneStruct structure

stStandardDate

Import the same as the stStandardDate field of a PidLidTimeZoneStruct structure

stDaylightDate

Import the same as the stDaylightDate field of a PidLidTimeZoneStruct structure

Exporting from Calendar objects

A VTIMEZONE component MUST be declared for each unique value of any TZID parameters in the iCalendar. Note that the comparison used to match TZID parameters to VTIMEZONE components SHOULD<46> be case-insensitive.

If exporting a VTIMEZONE from a PidLidAppointmentTimeZoneDefinitionRecur, PidLidAppointmentTimeZoneDefinitionStartDisplay, or PidLidAppointmentTimeZoneDefinitionEndDisplay, the lBias, lStandardBias, lDaylightBias, stStandardDate, and stDaylightDate subfields of the TZRule entry with the TZRULE_FLAG_EFFECTIVE_TZREG (0x0002) bit set in the TZRule flags field MUST be exported as a PidLidTimeZoneStruct structure as specified in the following subsections.<47>