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>