Adjust Maximum booking lead time with Powershell and Exchange Admin Center

When you’re working with Room and Equipment mailboxes, you may have noticed the Maximum booking lead time is set to 180 days by default. As a user, you will receive a notification like

  • Your meeting request was declined. This resource can only be scheduled up to 180 days in advance.
  • Your meeting request was declined. It didn’t specify an end date. The end date must be before x/x/xxxx.

If you are a user, ask your system administrator or IT guy to read this post 🙂

As an administrator, you are able to adjust this booking window from 180 to anything between 0 and 1080 days (approx. 3 years). You can do this by using the Exchange Admin Center (setting the mailboxes one at a time), or by using Powershell (one at a time, or a selection/all at once).

Set Maximum booking lead time in Exchange Admin Center

When you only need to set one resource mailbox, this is probably the easiest way to adjust the days:

  1. Go to O365 admin (
  2. Click Exchange
  3. Click Recipients
  4. Click Resources
  5. Double-click the room in question
  6. Click booking options
  7. Adjust the Maximum booking lead time (days) and click OK
    Adjust booking window in days

Set Booking Window in Days with Powershell

To set the Booking Window in Days with Powershell, you’ll first need to connect to Microsoft Office 365 and import the MSOnline module:

$UserCredential = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri -Credential $UserCredential -Authentication Basic -AllowRedirection
Import-PSSession $Session -DisableNameChecking
Import-module MSOnline

Then, select the room and equipment mailboxes and pipe to Set-CalendarProcessing. To set the window to 365 days, use -BookingWindowInDays 365:

Get-Mailbox | Where-Object {$_.recipientTypeDetails -eq "RoomMailbox" -or $_.recipientTypeDetails -eq "EquipmentMailbox"} | Set-CalendarProcessing -BookingWindowInDays 365

To verify all room and equipment mailboxes are set to 365 days booking window, use something like this. It will show a  two-columned list of resource mailboxes and bookingwindowdays:

$allmailboxes = @()
$mailboxes = get-mailbox |where {$_.recipientTypeDetails -eq "roomMailbox" -or $_.recipientTypeDetails -eq "EquipmentMailbox"} 
foreach ($mailbox in $mailboxes) {
    $info = [PSCustomObject]@{
        Name = $
        Days = ($mailbox | Get-CalendarProcessing).BookingWindowInDays }
        $allmailboxes += $info



0 0 votes
Article Rating
Notify of
Newest Most Voted
Inline Feedbacks
View all comments

Add “-resultime unlimited” after get-mailbox to change the properties of all mailboxes.


Microsoft have renamed ‘Booking Options’ to ‘Automatic processing’


Can I run the below command to exclude the users from the default lead time and hours set without a delegate assigned.
Set-CalendarProcessing -Identity -RequestOutOfPolicy, -ResourceDelegates

Would love your thoughts, please comment.x