You can download the Sumatra Double-Booking cmdlet for Exchange / Office 365 in a .ZIP file from here. The ZIP file also includes the documentation as a PDF.
You will need to contact us for a key if you want to try it out.
You can just report on double-bookings using our previously-released script.
Monday, April 24, 2017
Tuesday, April 18, 2017
Three Basic Ways of Dealing with Double-Booked Resources in the Sumatra cmdlet
There are three basic ways of automatically dealing with double-booked resources in the Sumatra cmdlet suDoubleBookedMeetings.
Janis gets the room and Jimi is declined by the conference room. Note that this results in the exact OPPOSITE of the situation just described above.
We think this covers all the social hierarchy choices you should have to make with the conference room, but please feel free to let us know.
$LiveCred is a variable we've set up to store credentials to the Exchange server in PowerShell. Check out our earlier postings if you're unsure how to do this.
- You guys work it out. aka Alert both (all) parties
- The early bird gets the room. aka First one who booked wins
- Rank has its privileges. aka VIPs win. (Unless there's two of them then see 1.)
Let's look at the cases for each of those with this real-world double-booked meeting in Room 222 which both Janis Joplin and Jimi Hendrix have booked.
You guys work it out
You could think of this as the kinder-gentler "We're going to inform you but not enforce any changes" option.
Using this command:
Get-suDoubleBookedMeetings -ExchangeVersion 2013 -EWSurl "https://outlook.office365.com/EWS/Exchange.ASMX" `
-PrimarySMTPAddress "room222@sumatra.onmicrosoft.com" `
-EmailOrganizers `
-ImpersonationAccount "ADMIN@sumatra.onmicrosoft.com" `
-Credential $LiveCred `
-bw 18 `
-licensefile "c:\users\ADMIN\Desktop\suDoubleBook\license.txt"
Rank has its privileges
But let's say that Janis Joplin is a VIP and Jimi Hendrix is not. Then, using this command:
Get-suDoubleBookedMeetings -ExchangeVersion 2013 `
-EWSurl "https://outlook.office365.com/EWS/Exchange.ASMX" `
-PrimarySMTPAddress "room222@sumatra.onmicrosoft.com" `
-DeclineConflicts `
-VIPfile "c:\users\ADMIN\Desktop\suDoubleBook\vips.txt" `
-VIPsGetBookingPreference `
-ImpersonationAccount "ADMIN@sumatra.onmicrosoft.com" `
-Credential $LiveCred `
-bw 180 `
-licensefile "c:\users\ADMIN\Desktop\suDoubleBook\license.txt"
You could think of this as the kinder-gentler "We're going to inform you but not enforce any changes" option.
Using this command:
Get-suDoubleBookedMeetings -ExchangeVersion 2013 -EWSurl "https://outlook.office365.com/EWS/Exchange.ASMX" `
-PrimarySMTPAddress "room222@sumatra.onmicrosoft.com" `
-EmailOrganizers `
-ImpersonationAccount "ADMIN@sumatra.onmicrosoft.com" `
-Credential $LiveCred `
-bw 18 `
-licensefile "c:\users\ADMIN\Desktop\suDoubleBook\license.txt"
Each of them receives this notification and nothing is removed from the conference calendar.
The early bird gets the room:
using this command:
using this command:
Get-suDoubleBookedMeetings -ExchangeVersion 2013 -EWSurl "https://outlook.office365.com/EWS/Exchange.ASMX" `
-PrimarySMTPAddress "room222@sumatra.onmicrosoft.com" `
-DeclineConflicts `
-ImpersonationAccount "ADMIN@sumatra.onmicrosoft.com" `
-Credential $LiveCred `
-bw 10 `
-licensefile "c:\users\ADMIN\Desktop\suDoubleBook\license.txt"
-PrimarySMTPAddress "room222@sumatra.onmicrosoft.com" `
-DeclineConflicts `
-ImpersonationAccount "ADMIN@sumatra.onmicrosoft.com" `
-Credential $LiveCred `
-bw 10 `
-licensefile "c:\users\ADMIN\Desktop\suDoubleBook\license.txt"
Since Jimi Hendrix booked this slot in Room 222 before Janis Joplin did, under this scenario the room goes to Jimi and Janis is notified (Note that this notification comes directly from Microsoft Exchange):
But let's say that Janis Joplin is a VIP and Jimi Hendrix is not. Then, using this command:
Get-suDoubleBookedMeetings -ExchangeVersion 2013 `
-EWSurl "https://outlook.office365.com/EWS/Exchange.ASMX" `
-PrimarySMTPAddress "room222@sumatra.onmicrosoft.com" `
-DeclineConflicts `
-VIPfile "c:\users\ADMIN\Desktop\suDoubleBook\vips.txt" `
-VIPsGetBookingPreference `
-ImpersonationAccount "ADMIN@sumatra.onmicrosoft.com" `
-Credential $LiveCred `
-bw 180 `
-licensefile "c:\users\ADMIN\Desktop\suDoubleBook\license.txt"
Janis gets the room and Jimi is declined by the conference room. Note that this results in the exact OPPOSITE of the situation just described above.
We think this covers all the social hierarchy choices you should have to make with the conference room, but please feel free to let us know.
$LiveCred is a variable we've set up to store credentials to the Exchange server in PowerShell. Check out our earlier postings if you're unsure how to do this.
Tuesday, April 11, 2017
How the Sumatra Double-Booking cmdlet works
October 2022: We just updated our cmdlet for Modern Authentication.
First: you can always get help at the PowerShell prompt with:
get-help Get-suDoubleBookedMeetings
Let's say that we have the following calendar for Room 222:
Clearly there is some double-booking here.
Keep in mind neither Jimi Hendrix not Janis Joplin have any way of knowing from their own calendars that a conflict is imminent.
If you execute the cmdlet in this way say a week before this is to unfold:
Get-suDoubleBookedMeetings -ExchangeVersion 2013 -EWSurl "https://outlook.office365.com/EWS/Exchange.ASMX" `
-PrimarySMTPAddress "room222@sumatra.onmicrosoft.com" `
-VIPfile "c:\users\Admin\Desktop\suDoubleBook\vips.txt" `
-DeclineConflicts `
-EmailOrganizers `
-VIPsGetBookingPreference `
-ImpersonationAccount "ADMIN@sumatra.onmicrosoft.com" `
-Credential $LiveCred `
-bw 10 `
-Verbose -Debug `
-licensefile "c:\users\Admin\Desktop\suDoubleBook\license.txt"
You will generate notifications to Jimi Hendrix that look like this:
Note also that we cover the case of a managed conference room where a Delegate might be putting appointments into the room calendar. In this case even though the time is listed as FREE, we notify both parties. We have no way of knowing WHAT is there, but there is the potential for conflict and we need to alert users to it.
If you want to get a little more proactive, we could define Janis Joplin as a "VIP" so that her meetings take priority over everyone else's. Look at her conflict with Jimi Hendrix here:
We execute this command:
Get-suDoubleBookedMeetings `
-writeHTML `
-HTMLFile "c:\users\Admin\Desktop\suDoubleBook\MyHtml.html" `
-ExchangeVersion 2013 `
-EWSurl "https://outlook.office365.com/EWS/Exchange.ASMX" `
-PrimarySMTPAddress "room222@sumatra.onmicrosoft.com" `
-ImpersonationAccount "ADMIN@sumatra.onmicrosoft.com" -Credential $LiveCred -bw 16 `
-VIPFile ($myPath + "vips.txt") `
-VIPsGetBookingPreference `
-DeclineConflicts `
-licensefile "c:\users\Admin\Desktop\suDoubleBook\license.txt"
Tuesday, April 04, 2017
Callable PowerShell script to report on double booked resources in Exchange 2016 / Office 365
Sumatra is recognized as the expert in
Exchange Calendaring. Even so, we were surprised at the sudden influx of requests for info on the problem of double booked
conference rooms.
This subject is really trending on our blog.
We're taking a two-pronged approach that helps both Exchange end-users and Exchange Admins:
First, for the DIY crowd, we released a FREE PowerShell
script to report on double bookings – open source, under the MIT license.
This blog post covers the script.
Second, for the enterprise, we will release a cmdlet that
does everything the free version does, and a whole lot more:
- Reports double booked
meetings.
- Sends email notification
to each meeting organizer about those upcoming conflicts and ask them to
resolve the conflict.
- Removes conflicts by
cancelling conflicting meeting occurrences that Exchange allowed (even though there was already an existing meeting booked
for that room/date/time.)
- Preferentially keep
conflicting bookings for company VIPs, and,
- Designed to receive
piped input from Exchange PowerShell cmdlets.
This cmdlet will be a paid, licensed version.
So first, the script.
It's available for download here. We call it the Sumatra Double Booked Resources Reporting Script. It's a text file, you'll need to rename it as a .PS1. We do this or else your anti-virus software will get huffy.
Successfully generating your report will give you results like this:
which will tell you the room with conflicts (not surprising since you have specified it, see below), the organizers, start and end date of the conflict and the number of other parties involved?
Number of parties? Yes. Note that one of the meetings above is triple-booked.
The text file is meant to be self-documenting, but in case you need some examples, here you go.
To get a report for a single resource (with some specific examples):
To generate a report for ALL resources, piped in from Get-Mailbox:
To generate reports for multiple rooms from a file:
This generates reports to the Exchange Administrator.
These examples in more general form are in a text file here.
Those of you who know PowerShell know you only need to import the function once per PowerShell session and then can invoke just the command suDoubleBookedMeetings. If you did not know this before, you do now.
Looking to pull your Exchange Admin out of the loop on what to do with the information next?
So glad you asked.
Watch this space for news of our cmdlet that automatically informs meeting organizers.
Number of parties? Yes. Note that one of the meetings above is triple-booked.
The text file is meant to be self-documenting, but in case you need some examples, here you go.
To get a report for a single resource (with some specific examples):
To generate a report for ALL resources, piped in from Get-Mailbox:
To generate reports for multiple rooms from a file:
This generates reports to the Exchange Administrator.
These examples in more general form are in a text file here.
Those of you who know PowerShell know you only need to import the function once per PowerShell session and then can invoke just the command suDoubleBookedMeetings. If you did not know this before, you do now.
Looking to pull your Exchange Admin out of the loop on what to do with the information next?
So glad you asked.
Watch this space for news of our cmdlet that automatically informs meeting organizers.
Subscribe to:
Posts (Atom)