October 14th, 2015

Changes to reminders, timezones, and photos in REST API

We wanted to update you all on some more breaking changes that we are making to the Outlook REST API beta endpoint. These changes will be widely deployed over the next few weeks.

Reminders for events

The property Reminder will be removed from the Event entity, and two new properties ReminderMinutesBeforeStart and IsReminderOn will be added to the Event entity.

Example:

 {
   "ReminderMinutesBeforeStart": "15", 
   "IsReminderOn": "true" 
 }

A new function ReminderView will also be added. This will return a list of reminders within the start and end times specified.

Example:

 .../api/Beta/me/ReminderView(startDateTime='2015-10-08T16:56:00',endDateTime='2015-10-12T00:56:00') 

In addition to this, two new actions Snooze and Dismiss will be enabled. These actions can be used to snooze a reminder or dismiss a reminder after it has been fired.

Example:

Snooze:

 .../api/Beta/me/Events('Id')/SnoozeReminder 
 
 {
   "NewReminderTime": {
     "DateTime":"2015-10-13T08:30:00",
     "TimeZone":"Pacific Standard Time"
   }
 }

Dismiss:

 .../api/Beta/me/Events('ID')/DismissReminder 

Timezone

Based on feedback we received on the existing timezone implementation, Start and End properties for Event entities will now be a complex type of:

 {
   DateTime
   Timezone
 }

Timezone is mandatory for all create requests. It is also mandatory for update requests where start and end times are changed.

Example:

 "Start": {
   DateTime: "2015-09-25T16:00:00",
   TimeZone: "UTC" 
 }

Properties StartTimezone and EndTimezone will be removed from the Event entity and properties OriginalStartTimezone and OriginalEndTimezone will be added to the Event entity. OriginalStartTimezone and OriginalEndTimezone are meant to reflect what timezone was set when the event was created or updated.

In addition to this, a new preference header outlook.timezone will be supported for all GET requests. This header can be used to get the events in a timezone that is different from the one it was created in.

Example:

 Prefer: outlook.timezone = "Pacific Standard Time" 

Since a new type DateTime is being introduced, all “times” that are in any event related API will support the new DateTime format.

Examples:

Sort

 .../api/beta/me/Events?$orderby=Start/DateTime 

Filter

 //With outlook.timezone header as PST, time will be taken as PST 
 .../api/beta/me/Events?$filter=Start/DateTime eq '2015-09-25T09:00:00' 
 
 //With no outlook.timezone header, time will be assumed as UTC
 .../api/beta/me/Events?$filter=Start/DateTime eq '2015-09-25T16:00:00' 

CalendarView/Instances

 .../api/beta/me/CalendarView?startDateTime=2015-09-25T16:00:00&endDateTime=2015-09-25T17:00:20
 .../api/beta/me/CalendarView?startDateTime=2015-09-25T16:00:00-08:00&endDateTime=2015-09-25T17:00:20-08:00 

Photos

We are renaming the UserPhoto property on User, GroupPhoto property on Group and ContactPhoto property on Contact to just Photo.

More extensive documentation on the new functionality is coming soon in our API reference documentation page. Please let us know if you have any questions, and visit http://dev.outlook.com for the latest news and updates.