2.2.1.44.1 RecurrencePattern Structure
The RecurrencePattern structure specifies a recurrence pattern. The fields of this structure are stored in little-endian byte order.
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ReaderVersion |
WriterVersion |
||||||||||||||||||||||||||||||
RecurFrequency |
PatternType |
||||||||||||||||||||||||||||||
CalendarType |
FirstDateTime |
||||||||||||||||||||||||||||||
... |
Period |
||||||||||||||||||||||||||||||
... |
SlidingFlag |
||||||||||||||||||||||||||||||
... |
PatternTypeSpecific (variable) |
||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
EndType |
|||||||||||||||||||||||||||||||
OccurrenceCount |
|||||||||||||||||||||||||||||||
FirstDOW |
|||||||||||||||||||||||||||||||
DeletedInstanceCount |
|||||||||||||||||||||||||||||||
DeletedInstanceDates (variable) |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
ModifiedInstanceCount |
|||||||||||||||||||||||||||||||
ModifiedInstanceDates (variable) |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
StartDate |
|||||||||||||||||||||||||||||||
EndDate |
ReaderVersion (2 bytes): This field MUST be set to 0x3004.
WriterVersion (2 bytes): This field MUST be set to 0x3004.
RecurFrequency (2 bytes): An integer that specifies the frequency of the recurring series. Valid values are listed in the following table.
-
RecurFrequency
Value
Daily
0x200A
Weekly
0x200B
Monthly
0x200C
Yearly
0x200D
PatternType (2 bytes): An integer that specifies the type of recurrence pattern. The valid recurrence pattern types are listed in the following table.
-
Name
Value
Meaning
Day
0x0000
The event has a daily recurrence.
Week
0x0001
The event has a weekly recurrence.
Month
0x0002
The event has a monthly recurrence.
MonthEnd
0x0004
The event has a month-end recurrence.<12>
MonthNth
0x0003
The event has an every nth month pattern.
HjMonth
0x000A
The event has a monthly recurrence in the Hijri calendar. For this value in the PatternType field, the value of the CalendarType field SHOULD be set to 0x0000.<13>
HjMonthNth
0x000B
The event has an every nth month pattern in the Hijri calendar. For this value in the PatternType field, the value of the CalendarType field MUST be set to 0x0000.
HjMonthEnd
0x000C
The event has a month end recurrence in the Hijri calendar. For this value in the PatternType field, the value of the CalendarType field MUST be set to 0x0000.
CalendarType (2 bytes): An integer that specifies the type of calendar that is used. The acceptable values for the calendar type are listed in the following table.
-
Name
Value
Meaning
Default
0x0000
The default value for the calendar type is Gregorian.
If the value of the PatternType field is HjMonth, HjMonthNth, or HjMonthEnd and the value of the CalendarType field is Default, this recurrence uses the Hijri calendar.
CAL_GREGORIAN
0x0001
Gregorian (localized) calendar
CAL_GREGORIAN_US
0x0002
Gregorian (U.S.) calendar
CAL_JAPAN
0x0003
Japanese Emperor era calendar
CAL_TAIWAN
0x0004
Taiwan calendar
CAL_KOREA
0x0005
Korean Tangun era calendar
CAL_HIJRI
0x0006
Hijri (Arabic Lunar) calendar
CAL_THAI
0x0007
Thai calendar
CAL_HEBREW
0x0008
Hebrew lunar calendar
CAL_GREGORIAN_ME_FRENCH
0x0009
Gregorian Middle East French calendar
CAL_GREGORIAN_ARABIC
0x000A
Gregorian Arabic calendar
CAL_GREGORIAN_XLIT_ENGLISH
0x000B
Gregorian transliterated English calendar
CAL_GREGORIAN_XLIT_FRENCH
0x000C
Gregorian transliterated French calendar
CAL_LUNAR_JAPANESE
0x000E
Japanese lunar calendar
CAL_CHINESE_LUNAR
0x000F
Chinese lunar calendar
CAL_SAKA
0x0010
Saka era calendar
CAL_LUNAR_ETO_CHN
0x0011
Lunar ETO Chinese calendar
CAL_LUNAR_ETO_KOR
0x0012
Lunar ETO Korean calendar
CAL_LUNAR_ROKUYOU
0x0013
Lunar Rokuyou calendar
CAL_LUNAR_KOREAN
0x0014
Korean lunar calendar
CAL_UMALQURA
0x0017
Um Al Qura calendar
FirstDateTime (4 bytes): An integer that specifies the first ever day, week, or month of a recurring series, dating back to a reference date, which is January 1, 1601, for a Gregorian calendar. The value and its meaning depend on the value of the RecurFrequency field. The value of the FirstDateTime field is used to determine the valid dates of a recurring series, as specified in section 2.2.1.44.1.2.
-
The value and meaning of the FirstDateTime field for each type of recurrence frequency are specified in the following table. For details about how the value is calculated, see section 2.2.1.44.1.1.
-
Frequency
Value and Meaning
Daily
The number of minutes between midnight January 1, 1601, and the first ever day on which the event would occur.
Weekly
The number of minutes between midnight January 1, 1601, and the first day of the first ever week in which the event would occur.
Monthly or Yearly
The number of minutes between midnight January 1, 1601, and the first day of the first ever month in which the event would occur.
Period (4 bytes): An integer that specifies the interval at which the meeting pattern specified in PatternTypeSpecific field repeats. The Period value MUST be between 1 and the maximum recurrence interval, which is 999 days for daily recurrences, 99 weeks for weekly recurrences, and 99 months for monthly recurrences. The following table lists the values for this field based on the recurrence frequency, which is specified in the RecurFrequency field.
-
Frequency
Value
Daily recurrence
The period is stored as the minutes in whole number of days. For example, to define a recurrence that occurs every two days, the Period field is set to 0x00000B40, which equals 2880 minutes, or two days.
Weekly recurrence
The period is stored in weeks. For example, if the Period field is set to 0x00000002, the meeting occurs every two weeks.
Monthly or yearly recurrence
The period is stored in months. If the recurrence is a yearly recurrence, The Period field MUST be set to 12.
-
SlidingFlag (4 bytes): This field is only used for scheduling tasks; otherwise the value MUST be zero (0). For more details about sliding tasks, see [MS-OXOTASK] section 3.1.4.6.2.
PatternTypeSpecific (variable): A structure that specifies the details of the recurrence pattern. The structure varies according to the value of the PatternType field, as specified in sections 2.2.1.44.1.3, 2.2.1.44.1.4, 2.2.1.44.1.5, and 2.2.1.44.1.6.
EndType (4 bytes): An integer that specifies the ending type for the recurrence. This field MUST be set to one of the values listed in the following table.
-
Recurrence range type
Value
End after date
0x00002021
End after N occurrences
0x00002022
Never end
SHOULD be 0x00002023 but can be 0xFFFFFFFF
OccurrenceCount (4 bytes): An integer that specifies the number of occurrences in a recurrence.
-
When the EndType of the pattern is "End after date", this value has to be computed. Although the value of this field is set, its value has no meaning on a recurring series that has no end date. This value can be set to 0x0000000A for a recurring series with no end date.<14>
FirstDOW (4 bytes): An integer that specifies the day on which the calendar week begins. The default value is Sunday (0x00000000). This field MUST be set to one of the values listed in the following table.
-
Day
Value
Sunday
0x00000000
Monday
0x00000001
Tuesday
0x00000002
Wednesday
0x00000003
Thursday
0x00000004
Friday
0x00000005
Saturday
0x00000006
DeletedInstanceCount (4 bytes): An integer that specifies the number of elements in the DeletedInstanceDates field.
DeletedInstanceDates (variable): An array of dates, each of which is the original instance date of either a deleted instance or a modified instance for this recurrence. The number of dates contained in this array is specified by the DeletedInstanceCount field. Each date is stored as the number of minutes between midnight, January 1, 1601, and midnight of the specified day, in the time zone specified by the PidLidTimeZoneStruct property (section 2.2.1.39). The dates are ordered from earliest to latest.
-
The array contains exactly one element for each deleted instance, and every deleted instance is represented. The array also contains an entry for every modified instance. The array SHOULD NOT contain duplicate entries. Deleted instances for which there is no corresponding value in the ModifiedInstanceDates field imply that they have been completely removed from the pattern.
ModifiedInstanceCount (4 bytes): An integer that specifies the number of elements in the ModifiedInstanceDates field. The value of this field MUST be less than or equal to the value of the DeletedInstanceCount field.
ModifiedInstanceDates (variable): An array of dates, each of which is the date of a modified instance. The number of dates contained in this array is specified by the ModifiedInstanceCount field. Each date is stored as the number of minutes between midnight, January 1, 1601, and midnight of the specified day, in the time zone specified by the PidLidTimeZoneStruct property (section 2.2.1.39). The dates are ordered from earliest to latest.
-
The array contains exactly one element for each modified instance, and every modified instance is represented. The array SHOULD NOT contain duplicate entries. Every modified instance also has to have an entry in the DeletedInstanceDates field with the original instance date.
StartDate (4 bytes): An integer that specifies the date of the first occurrence. The value is the number of minutes between midnight, January 1, 1601, and midnight of the date of the first occurrence.
EndDate (4 bytes): An integer that specifies the ending date for the recurrence. The value is the number of minutes between midnight, January 1, 1601, and midnight of the date of the last occurrence. When the value of the EndType field is 0x00002022 (end after n occurrences), this value is calculated based on the number of occurrences If the recurrence does not have an end date, the value of the EndDate field MUST be set to 0x5AE980DF.