# Calendar entry properties

The following table describes all the possible properties for calendar entry objects. Each type of entry supports a different subset of these properties. The exact set of properties used by a given entry depends on its type and the optional properties specified for it. For information about which properties are valid for a given type, see section Properties and calendar entry types.

Table: Properties for calendar entry objects
Property | Description | Type | Value
--- | --- | --- | ---
`Type` | Specifies the type of the entry. | string | Possible values: `"Anniversary"` `"DayEvent"` `"Meeting"` `"Reminder"` `"ToDo"`
`id` | Specifies the globally unique identifier of the entry. This is unique across all calendars on any device. Child entries share the same `id` as their parent entry. Note: `id` is generated automatically when the entry is created. It cannot be modified. If the entry is imported to another calendar, the `id` remains the same. | string |
`LocalId` | Specifies the locally unique identifier of the entry. This is unique only within the calendar to which the entry belongs. `LocalId` is used to distinguish between parent and child entries that share the same `id`. Note: `LocalId` is generated automatically when the entry is created. It cannot be modified. If the entry is imported to another calendar, a new `LocalId` is generated for it in that calendar. | string |
`CalendarName` | Specifies the calendar file that contains the entry. | string | `<DriveLetter>:<FileName>` For example: `"C:Calendar"`
`Summary` | Contains the summary description for the entry. | string |
`SeqNum` | Specifies the sequence number for the entry. This is used in group scheduling. The default value is `0`. | number |
`StartTime` | Specifies the start time for the entry. | date object |
`EndTime` | Specifies the end time for the entry. | date object |
`InstanceStartTime` | Specifies the start time for the entry instance. Note: This property is only valid for recurring entries. | date object |
`InstanceEndTime` | Specifies the end time for the entry instance. Note: This property is only valid for recurring entries. | date object |
`Replication` | Specifies the replication status of the entry. The default value is `"Open"`. | string | Possible values: `"Open"` (no restriction on access) `"Private"` (data is private, no access) `"Restricted"` (data is confidential, restricted access)
`Description` | Contains the description for the entry. | string |
`Priority` | Specifies the priority of the entry. The default value is `0`. | number | [0, 255]
`AlarmTime` | Specifies the alarm time for the entry. This must be before `StartTime`. However, for `ToDo` entries, this must be before `EndTime`. | date object |
`Location` | Specifies the name of the location for the meeting. | string |
`Status` | Specifies the status of the entry. The default value is `"NullStatus"`. | string | Possible values: `"Tentative"` (meetings only) `"Confirmed"` (meetings only) `"TodoNeedsAction"` (to-dos only) `"TodoCompleted"` (to-dos only) `"TodoInProcess"` (to-dos only) `"Cancelled"` `"NullStatus"`
`RepeatDates` | Specifies a list of out-of-sequence dates on which the entry repeats. | array of date objects |
`ExDates` | Specifies a list of exception dates, that is, occurrences in the original schedule that have been removed and may be replaced with different occurrences. | array of date objects |
`Method` | Specifies the method for the entry. The default value is `"None"`. Note: This property is only valid for iCalendar entries. |  | Possible values: `"None"` `"Publish"` `"Request"` `"Reply"` `"Add"` `"Cancel"` `"Refresh"` `"Counter"` `"DeclineCounter"`
`PhoneOwner` | Specifies the phone owner. The phone owner should match the `Address` property of one of the attendees (see Table: Attendees properties). That is, the phone owner should be an attendee. | string |
`Organizer` | Specifies information about the meeting organizer. | object | See Table: Organizer properties.
`Attendees` | Specifies the meeting attendees. | array of objects | See Table: Attendees properties.
`RepeatRule` | Specifies the rules of recurrence for the entry. This is only valid for parent entries. Child entries cannot have their own `RepeatRule`. | object | See Table: RepeatRule properties.

The following table describes the structure of `Organizer`. Properties enclosed in brackets are optional.

Table: Organizer properties
Property | Description | Type
--- | --- | ---
`[Organizer.CommonName]` | Specifies the name of the organizer. | string
`Organizer.Address` | Specifies the address of the organizer. | string

The following table describes the structure of `Attendees`. Properties enclosed in brackets are optional.

Table: Attendees properties
Property | Description | Type | Value
--- | --- | --- | ---
`[Attendees[].CommonName]` | Specifies the common name for group scheduling. | string |
`[Attendees[].Role]` | Specifies the role of the attendee. The default value is `"Required"`. | string | Possible values: `"Required"` `"Optional"` `"NonParticipant"` `"Chair"`
`Attendees[].Address` | Specifies the email address of the attendee. | string |
`[Attendees[].Status]` | Specifies the status of the attendee. The default value is `"NeedsAction"`. | string | Possible values: `"NeedsAction"` `"Accepted"` `"Tentative"` `"Confirmed"` `"Declined"` `"Completed"` `"Delegated"` `"InProcess"`
`[Attendees[].Rsvp]` | Specifies whether or not a response is requested from the attendee. The default value is `false`. | boolean | Possible values: `true` `false`

The following table describes the structure of `RepeatRule`. Properties enclosed in brackets are optional.

Table: RepeatRule properties
Property | Description | Type | Value
--- | --- | --- | ---
`RepeatRule.Type` | Specifies the type of recurrence, that is, its frequency. For information about which `RepeatRule` properties to define for a given type, see Table: Valid RepeatRule properties per type of recurrence. | number | Possible values: `1` (daily) `2` (weekly) `3` (monthly) `4` (yearly)
`[RepeatRule.StartDate]` | Specifies the start time for the recurrence. If this is not specified, the `StartTime` of the entry is used. | date object |
`[RepeatRule.UntilDate]` | Specifies the end date for the recurrence. The entry recurs until this date. `UntilDate` is automatically modified to match the start time of the last possible instance of the recurrence. For example, if the entry is specified to recur monthly from June 1st (`StartDate`) to December 30th (`UntilDate`) on the first day of every month, the last possible instance of recurrence is December 1st. The system automatically changes `UntilDate` to this value. If `UntilDate` is not specified, the entry recurs until the last possible date allowed by the calendar. | date object |
`[RepeatRule.Interval]` | Specifies the time interval between instances of a recurring entry. | number |
`[RepeatRule.DaysInWeek]` | Specifies the days of the week on which the entry recurs. | array of numbers | Possible values for an item: `0` (Monday) `1` (Tuesday) `2` (Wednesday) `3` (Thursday) `4` (Friday) `5` (Saturday) `6` (Sunday)
`[RepeatRule.MonthDays]` | Specifies the days of the month on which the entry recurs. | array of numbers | Possible values for an item: [0, 30]
`[RepeatRule.DaysOfMonth]` | Specifies the day and week of the month on which the entry recurs. | array of objects | The properties of the object items are specified below.
`[RepeatRule.DaysOfMonth[].Day]` | Specifies the day of the week on which the entry recurs. | number | Possible values: `0` (Monday) `1` (Tuesday) `2` (Wednesday) `3` (Thursday) `4` (Friday) `5` (Saturday) `6` (Sunday)
`[RepeatRule.DaysOfMonth[].WeekNum]` | Specifies the week of the month on which the entry recurs. | number | Possible values: `1` (1st week) `2` (2nd week) `3` (3rd week) `4` (4th week) `-1` (last week)
`[RepeatRule.Month]` | Specifies the month for a yearly recurrence. | number | Possible values: `0` (January) `1` (February) `2` (March) `3` (April) `4` (May) `5` (June) `6` (July) `7` (August) `8` (September) `9` (October) `10` (November) `11` (December)

Table: Valid RepeatRule properties per type of recurrence
Type of recurrence | Valid properties | Notes
--- | --- | ---
Daily | `Type` `[Interval]` `UntilDate` |
Weekly | `Type` `[Interval]` `UntilDate` `[DaysInWeek]` | If `DaysInWeek` is not specified, it is calculated from the `StartTime` of the entry.
Monthly | `Type` `[Interval]` `UntilDate` `[MonthDays]` or `[DaysOfMonth]` | If `MonthDays`/`DaysOfMonth` is not specified, it is calculated from the `StartTime` of the entry.
Yearly | `Type` `[Interval]` `UntilDate` `[DaysOfMonth]` `[Month]` | Only the first item of `DaysOfMonth` is used. `DaysOfMonth` and `Month` should be specified together. If `DaysOfMonth`/`Month` is not specified, it is calculated from the `StartTime` of the entry.