Microsoft Graph API developer – Using GetSchedule API to get free/busy availability information

Now you can use the GetSchedule API (when I publish this article, its available in /beta endpoint) to get the free/busy availability information for a collection of users, distributions lists, or resources, for a specified time period.

You can use it simply by calling,

POST /me/calendar/getSchedule
POST /users/{id|userPrincipalName}/calendar/getSchedule

Let me play with this API call and try to get the availability information for two users for the specified date, time, and time zone.

Request body:

{       
     "schedules": ["alex@djayasee.onmicrosoft.com", "alexw@djayasee.onMicrosoft.com"],
     "startTime": {
         "dateTime": "2018-09-26T04:00:00",
         "timeZone": "Pacific Standard Time"
     },
     "endTime": {
         "dateTime": "2018-09-27T14:00:00",
         "timeZone": "Pacific Standard Time"
     },
     "availabilityViewInterval": "15"

}

Response:

Once the above  request is successfully process, you will get 200 OK response code and get the availability info (just like the below).

{
     "@odata.context": "https://graph.microsoft.com/beta/$metadata#Collection(microsoft.graph.scheduleInformation)",
     "value": [
         {
             "scheduleId": "alex@djayasee.onmicrosoft.com",
             "availabilityView": "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002222222222222222222200000000",
             "scheduleItems": [
                 {
                     "isPrivate": false,
                     "status": "busy",
                     "subject": "Test Meeting",
                     "location": "Test Meeting",
                     "start": {
                         "dateTime": "2018-09-27T07:00:00.0000000",
                         "timeZone": "Pacific Standard Time"
                     },
                     "end": {
                         "dateTime": "2018-09-27T12:00:00.0000000",
                         "timeZone": "Pacific Standard Time"
                     }
                 }
             ],
             "workingHours": {
                 "daysOfWeek": [
                     "monday",
                     "tuesday",
                     "wednesday",
                     "thursday",
                     "friday"
                 ],
                 "startTime": "09:00:00.0000000",
                 "endTime": "17:30:00.0000000",
                 "timeZone": {
                     "@odata.type": "#microsoft.graph.customTimeZone",
                     "bias": 480,
                     "name": "Customized Time Zone",
                     "standardOffset": {
                         "time": "02:00:00.0000000",
                         "dayOccurrence": 1,
                         "dayOfWeek": "sunday",
                         "month": 11,
                         "year": 0
                     },
                     "daylightOffset": {
                         "daylightBias": -60,
                         "time": "02:00:00.0000000",
                         "dayOccurrence": 2,
                         "dayOfWeek": "sunday",
                         "month": 3,
                         "year": 0
                     }
                 }
             }
         },
         {
             "scheduleId": "alexw@djayasee.OnMicrosoft.com",
             "availabilityView": "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002222222222222222222200000000",
             "scheduleItems": [
                 {
                     "isPrivate": false,
                     "status": "busy",
                     "subject": "Test Meeting",
                     "location": "Test Meeting",
                     "start": {
                         "dateTime": "2018-09-27T07:00:00.0000000",
                         "timeZone": "Pacific Standard Time"
                     },
                     "end": {
                         "dateTime": "2018-09-27T12:00:00.0000000",
                         "timeZone": "Pacific Standard Time"
                     }
                 }
             ],
             "workingHours": {
                 "daysOfWeek": [
                     "monday",
                     "tuesday",
                     "wednesday",
                     "thursday",
                     "friday"
                 ],
                 "startTime": "09:00:00.0000000",
                 "endTime": "17:30:00.0000000",
                 "timeZone": {
                     "@odata.type": "#microsoft.graph.customTimeZone",
                     "bias": 480,
                     "name": "Customized Time Zone",
                     "standardOffset": {
                         "time": "02:00:00.0000000",
                         "dayOccurrence": 1,
                         "dayOfWeek": "sunday",
                         "month": 11,
                         "year": 0
                     },
                     "daylightOffset": {
                         "daylightBias": -60,
                         "time": "02:00:00.0000000",
                         "dayOccurrence": 2,
                         "dayOfWeek": "sunday",
                         "month": 3,
                         "year": 0
                     }
                 }
             }
         }
     ]

}

Note:
As you aware, APIs under the /beta version in Microsoft Graph are in preview and are subject to change. Use of these APIs in production applications is not supported.

Hope this helps.