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.