# Criteria for retrieving calendar information

The `criteria` object specifies what calendar information is returned.

Each `GetList` call targets one type of calendar information:

- Calendar

- Calendar entry

For more information about the types, see the Calendar Service overview page.

The `criteria` object has two main properties: `Type` and `Filter`. These are described in the following table. Properties enclosed in brackets are optional.

Table: Criteria object properties
Property | Description | Type | Value
--- | --- | --- | ---
`criteria.Type` | Specifies the type of calendar information to retrieve. Note: The available `Filter` properties depend on the selected type. | string | Possible values: `"Calendar"` `"CalendarEntry"`
`[criteria.Filter]` | Specifies how the information to be retrieved is filtered. If this property is not specified, `GetList` returns a list of all available calendars or calendar entries (instances). | object | Object with the properties specified below
The following properties are only valid if Type is "Calendar"
`[criteria.Filter.DefaultCalendar]` | If this property is set to `true`, `GetList` returns a list with only one item, the default calendar. If this property is set to `false`, `GetList` returns a list of all available calendars, including the default one. | boolean | Possible values: `true` `false`
The following properties are only valid if Type is "CalendarEntry"
`[criteria.Filter.CalendarName]` | Specifies the calendar file from which the information is retrieved. If this property is not specified, the default calendar is used. | string | `<DriveLetter>:<FileName>` For example: `"C:Calendar"`
`[criteria.Filter.id]` | Specifies the globally unique identifier of a calendar entry. This is unique across all calendars on any device. If the entry has child entries, they share the same `id` as the parent but have unique `LocalId`s. If this property is specified, `GetList` returns the entry whose `id` matches the specified value. If the entry has child entries, `GetList` returns both the parent and child entries. In this case, the parent entry is the first item in the returned array. Note: Specify either `Filter.id` or `Filter.LocalId` or neither, but not both. If you specify either one, the other `Filter` properties are ignored. If you specify neither, `GetList` returns a list of instances. | string |
`[criteria.Filter.LocalId]` | Specifies the locally unique identifier of a parent entry or child entry. This is unique within a calendar and distinguishes between parent and child entries that share the same `id`. If this property is specified, `GetList` returns the parent or child entry whose `LocalId` matches the specified value. Note: Specify either `Filter.id` or `Filter.LocalId` or neither, but not both. If you specify either one, the other `Filter` properties are ignored. If you specify neither, `GetList` returns a list of instances. | string |
`[criteria.Filter.StartRange]` | If only `StartRange` is specified, all entries that occur on or after this date are retrieved. If both `StartRange` and `EndRange` are specified, all entries that occur within these dates are retrieved. | date object |
`[criteria.Filter.EndRange]` | If only `EndRange` is specified, all entries that occur on or before this date are retrieved. If both `StartRange` and `EndRange` are specified, all entries that occur within these dates are retrieved. | date object |
`[criteria.Filter.SearchText]` | Specifies a text string matched against the `Summary` value of an entry. The match is not case sensitive. For more information about calendar entries, see section Calendar entries. | string |
`[criteria.Filter.Type]` | Specifies the type of calendar entries about which to return information. If this property is not specified or if it is set to `"IncludeAll"`, `GetList` returns information about all types of entries. | string | Possible values: `"Anniversary"` `"DayEvent"` `"Meeting"` `"Reminder"` `"ToDo"` `"IncludeAll"`