Set user TimeZone in Exchange Online

      No Comments on Set user TimeZone in Exchange Online

When a new user is created and licensed for Exchange Online / M365 / MS365 / Office Online / etc., and a mailbox is created for that user, the user is created with a default TimeZone of Pacific Standard Time.

Not only is this undesirable if the user is not in that time zone, but if a company wants to preload meetings with a new hire prior to their start at a company, the user’s calendar and availability settings appear to be in the incorrect timezone, and in fact, this can even be called out in Outlook via a message such as:

<DisplayName> is in a different time zone. Use the Scheduling Assistant to select times across time zones.

Now, something important to know is not only is there a Regional TimeZone setting, but there are is also a WorkingHoursTimeZone setting under a separate CalendarConfiguration. You can read about cmdlets regarding these two configurations here:

To update this is not difficult if you have admin privileges and access to a PowerShell client with the Exchange Online PowerShell module installed.

To update the user’s time zone to EST, run these commands from within PowerShell:

Connect-ExchangeOnline

Set-MailboxRegionalConfiguration –Identity user@yourdomain.com -TimeZone "Eastern Standard Time"
# You can include additional regional settings, which should not be required to simply update the time zone, but can be desirable to set for a new user, as these will be $null by default:
# Set-MailboxRegionalConfiguration –Identity user@yourdomain.com -TimeZone "Eastern Standard Time" -Language en-US -DateFormat "M/d/yyyy" -TimeFormat "h:mm tt"

Set-MailboxCalendarConfiguration –Identity user@yourdomain.com -WorkingHoursTimeZone "Eastern Standard Time"

To get a list of all valid time zones, you can run:

$TimeZone = Get-ChildItem "HKLM:\Software\Microsoft\Windows NT\CurrentVersion\Time zones" | foreach {Get-ItemProperty $_.PSPath}; $TimeZone | sort Display | Format-Table -Auto PSChildname,Display

Many thanks to Chris Beattie for his great write-up on this topic!

I knew of this situation from past experience, but upon my encounter with it this week, I found Chris’s post when searching for the specific syntax of these commands once again. This post is mostly so I have an easy reference for myself in the future.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.