Monday, July 29, 2013

Using Powershell to Fix Regional Settings in Exchange Online for Office 365

After transitioning our company to Office 365, I noticed some meetings being scheduled showing some users had their time zone set to "(UTC) Monrovia, Reykjavik". Users are prompted to choose their time zone when first logging in to Office 365 Outlook Web App, so there is a way to fix this. The problem is that not all users chose to do that.

To fix this in bulk, use PowerShell.  First, as a global administrator, connect to your Exchange Online service in PowerShell (Microsoft has instructions on this).  Then run the following command to first view all of your current mailboxes and their regional settings:
Get-Mailbox | Get-MailboxRegionalConfiguration | Export-Csv CurrentReginalSettings.csv
This will save the details of all of your mailboxes, including resource mailboxes and shared mailboxes, to a CSV file at your current location called "CurrentReginalSettings.csv". Feel free to edit the path to save somewhere else.

When I ran this in our environment, I discovered several things:
  • First, resource accounts, service accounts, and shared mailboxes did not have values set for DateFormat, Language, TimeFormat, and TimeZone.
  • Some users' time zones were set incorrectly.
  • One of our users had her language set to "en-GB" rather than "en-US". Her date and time formats were off as well.

So here's the command to set these values for all mailboxes. Change the DateFormat, Language, TimeFormat, and TimeZone values to fit your context.
Get-Mailbox | Set-MailboxRegionalConfiguration -Language en-US -TimeZone "Eastern Standard Time" -DateFormat "M/d/yyyy" -TimeFormat "h:mm tt"
Obviously, if you have a geographically-dispersed organization, your solution will be a little more complicated. To set these values for an individual mailbox, use this command, substituting the right email address:
Get-Mailbox -Identity | Set-MailboxRegionalConfiguration -Language en-US -TimeZone "Eastern Standard Time" -DateFormat "M/d/yyyy" -TimeFormat "h:mm tt"


  1. This helped me out a ton today!! Thank you for sharing this information! I was looking for a solid way to get this done.