powershelloutlookmicrosoft-graph-apiexchange-online

How to retrieve day-wise working hours set in Outlook using Microsoft Graph API or PowerShell cmdlet?


I’m trying to retrieve the day-wise working hours configured by users in their Outlook work settings. In Microsoft 365, users can set different working hours for each day of the week (e.g., 9 AM to 5 PM on Monday, 10 AM to 6 PM on Tuesday).

When I use the Microsoft Graph API to fetch mailboxSettings, the workingHours property only provides static working hours (i.e., the same start and end time for all specified daysOfWeek).

Here’s the API call I used: GET https://graph.microsoft.com/v1.0/me/mailboxSettings

This returns the following response:

{
  "workingHours": {
    "daysOfWeek": ["monday", "tuesday", "wednesday", "thursday", "friday"],
    "startTime": "09:00:00",
    "endTime": "17:00:00",
    "timeZone": {
      "name": "Pacific Standard Time"
    }
  }
}

This does not account for variations in working hours across different days. For example:

Monday: 9 AM to 5 PM Tuesday: 10 AM to 6 PM I also tried using the PowerShell cmdlet Get-MailboxCalendarConfiguration, but it only provides general calendar settings like time zone and working hours, not day-wise variations.

Questions:

Is it possible to fetch day-wise working hours using the Microsoft Graph API or PowerShell cmdlets?

If not, are there any recommended workarounds or alternative approaches to retrieve this information (e.g., through another API, custom configurations, or combining calendar availability)?

Any guidance or suggestions would be greatly appreciated


Solution

  • AFAIK, the Graph API doesn't still have an endpoint to retrieve the day-wise working hours.

    You can vote for it: https://feedbackportal.microsoft.com/feedback/idea/f4ed696b-9971-ef11-a4e7-6045bdb238dc