2.1.3.2.2.1 Template: Daily Recurrences
ABNF Description
-
daily-template= "FREQ=DAILY" [common-parts]
Template Examples
Every day:
-
FREQ=DAILY
Every day at 3:30 P.M.:
-
FREQ=DAILY;BYMINUTE=30;BYHOUR=15
Every 3 days:
-
FREQ=DAILY;INTERVAL=3
Every 3 days at 3:30 P.M.:
-
FREQ=DAILY;INTERVAL=3;BYMINUTE=30;BYHOUR=15
Every 3 days at 3:30 P.M. for 30 instances:
-
FREQ=DAILY;INTERVAL=3;BYMINUTE=30;BYHOUR=15;COUNT=30
Importing to Calendar objects
An RRULE or X-MICROSOFT-RRULE matching this template SHOULD<271> be imported into PidLidAppointmentRecur as specified in the following table. A VEVENT MUST NOT specify both an RRULE and an X-MICROSOFT-RRULE.
AppointmentRecurrencePattern Field |
Value |
---|---|
ReaderVersion |
Set to 0x3004 |
WriterVersion |
Set to 0x3004 |
RecurFrequency |
Set to 0x200A |
PatternType |
Set to 0x0000. Can be overridden by X-MICROSOFT-CALSCALE, see section 2.1.3.1.1.8. |
CalendarType |
Imported from X-MICROSOFT-CALSCALE (see section 2.1.3.1.1.8). |
FirstDateTime |
Set as specified in [MS-OXOCAL] section 2.2.1.44.1. |
Period |
Set to (1440 * INTERVAL) |
SlidingFlag |
Set to 0x00000000 |
PatternTypeSpecific.Week.Sa-Su |
(unset) |
PatternTypeSpecific.Month.Day |
(unset) |
PatternTypeSpecific.MonthNth.Sa-Su |
(unset) |
PatternTypeSpecific.MonthNth.N |
(unset) |
EndType |
If the recurrence is infinite, set EndType to 0x00002023. If the recurrence is specified with a COUNT, set EndType to 0x00002022. Otherwise, set EndType to 0x00002021. |
OccurrenceCount |
Set to the number of occurrences of the recurrence based on UNTIL or COUNT. If the recurrence is infinite, set OccurrenceCount to 0x0000000A. |
FirstDOW |
Set to the correct value based on WKST (see the following table for how to map WKST values to FirstDOW values) |
DeletedInstanceCount / DeletedInstanceDates |
See section 2.1.3.1.1.20.13 |
ModifiedInstanceCount / ModifiedInstanceDates |
See section 2.1.3.1.1.20.18 |
StartDate |
Set to the date portion of DTSTART, in the time zone specified by PidLidTimeZoneStruct. This date is stored in minutes after midnight January 1, 1601. Note that this value MUST be evenly divisible by 1440. |
EndDate |
Set to the start date of the last instance of a recurrence, in the time zone specified by PidLidTimeZoneStruct. This date is stored in minutes after midnight January 1, 1601. If the recurrence is infinite, set EndDate to 0x5AE980DF. Note that this value MUST be evenly divisible by 1440, except for the special value 0x5AE980DF. |
ReaderVersion2 |
Set to 0x00003006 |
WriterVersion2 |
Set to 0x00003009 |
StartTimeOffset |
Set to (60*BYHOUR + BYMINUTE) |
EndTimeOffset |
Set to (StartTimeOffset + PidLidAppointmentDuration) |
ExceptionCount / ExceptionInfo |
See section 2.1.3.1.1.20.18 |
(ReservedBlocks and ExtendedExceptions) |
Refer to [MS-OXOCAL] |
The following table specifies how to map WKST values to FirstDOW values.
WKST Value |
FirstDOW Value |
---|---|
SU |
0x00000000 |
MO |
0x00000001 |
TU |
0x00000002 |
WE |
0x00000003 |
TH |
0x00000004 |
FR |
0x00000005 |
SA |
0x00000006 |
Exporting From Calendar objects
The AppointmentRecurrencePattern structure ([MS-OXOCAL] section 2.2.1.44.5) in the PidLidAppointmentRecur property ([MS-OXOCAL] section 2.2.1.44) SHOULD<272> be exported as the property specified in the following table. If a case matches more than one row, the first matching row applies.
CalendarType field |
PatternType field |
Recurrence property |
---|---|---|
0x0000 |
0x0000 |
RRULE |
0x0000 |
0x0001 |
RRULE |
0x0000 |
0x0002 |
RRULE |
0x0000 |
0x0003 |
RRULE |
0x0000 |
0x000A |
X-MICROSOFT-RRULE |
0x0000 |
0x000B |
X-MICROSOFT-RRULE |
(any) |
0x0000 |
RRULE<273> |
(any) |
0x0001 |
RRULE<274> |
0x0001 |
(any) |
RRULE |
0x0002 |
(any) |
RRULE |
0x0003 |
(any) |
RRULE |
0x0004 |
(any) |
RRULE |
0x0005 |
(any) |
RRULE |
0x0006 |
(any) |
X-MICROSOFT-RRULE |
0x0007 |
(any) |
RRULE |
0x0008 |
(any) |
X-MICROSOFT-RRULE |
0x0009 |
(any) |
RRULE |
0x000A |
(any) |
RRULE |
0x000B |
(any) |
RRULE |
0x000C |
(any) |
RRULE |
0x000E |
(any) |
X-MICROSOFT-RRULE |
0x000F |
(any) |
X-MICROSOFT-RRULE |
0x0010 |
(any) |
X-MICROSOFT-RRULE |
0x0011 |
(any) |
X-MICROSOFT-RRULE |
0x0012 |
(any) |
X-MICROSOFT-RRULE |
0x0013 |
(any) |
X-MICROSOFT-RRULE |
0x0014 |
(any) |
X-MICROSOFT-RRULE |
0x0017 |
(any) |
X-MICROSOFT-RRULE |
The exported property MUST be assigned the value generated by the recurrence template specified in the following table.
PatternType field |
Period field |
Recurrence template |
---|---|---|
0x0000 |
(any) |
Daily Recurrence (section 2.1.3.2.2.1) |
0x0001 |
(any) |
Weekly Recurrence (section 2.1.3.2.2.2) |
0x0002 |
(not evenly divisible by 12) |
Monthly Recurrence (section 2.1.3.2.2.3) |
0x0002 |
(evenly divisible by 12) |
Yearly Recurrence (section 2.1.3.2.2.5) |
0x0003 |
(not evenly divisible by 12) |
Monthly Nth Recurrence (section 2.1.3.2.2.4) |
0x0003 |
(evenly divisible by 12) |
Yearly Nth Recurrence (section 2.1.3.2.2.6) |
0x000A |
(not evenly divisible by 12) |
Monthly Recurrence (section 2.1.3.2.2.3) |
0x000A |
(evenly divisible by 12) |
Yearly Recurrence (section 2.1.3.2.2.5) |
0x000B |
(not evenly divisible by 12) |
Monthly Nth Recurrence (section 2.1.3.2.2.4) |
0x000B |
(evenly divisible by 12) |
Yearly Nth Recurrence (section 2.1.3.2.2.6) |
If PidLidAppointmentRecur is being exported with the Daily Recurrence template, it MUST contain the recurrence parts specified in the following table.
Recurrence Part |
Value |
---|---|
FREQ |
Set to 'DAILY' |
INTERVAL |
Set to (Period / 1440). If the value is 1, omit this recurrence part. |
COUNT |
If EndType is 0x00002022, set to OccurrenceCount. Otherwise, omit this recurrence part. |
UNTIL |
If EndType is 0x00002021, SHOULD<275> be set to (EndDate + StartTimeOffset), converted from the time zone specified by PidLidTimeZoneStruct to the UTC time zone. Alternatively, MAY<276> be set to midnight on the date specified by EndDate. If EndType is not 0x00002021, omit this recurrence part. |
WKST |
The WKST recurrence part SHOULD<277> be omitted. |