During a migration from an on-premises Exchange environment to Exchange Online, I found an issue where meeting requests for a room mailbox were not accepted automatically. This only happened with users who were migrated. After logging in onto a room mailbox, I found this error:
“Your calendar couldn’t be checked to see whether this event conflicts with other events”
Appearantly mails sent from a Exchange Online account were seen as external mailboxes. The room mailbox was still on-prem.
To solve this issue, I had to allow processing of external mail senders. Basically, the PS cmdlet is something like this:
Set-CalendarProcessing MeetingRoomName -ProcessExternalMeetingMessages $True
But because I had hundreds of room mailboxes, I prefered some automation. First, run these Powershell cmdlets:
get-mailbox -RecipientTypeDetails RoomMailbox | select PrimarySmtpAddress get-mailbox -RecipientTypeDetails EquipmentMailbox | select PrimarySmtpAddress
Save the ouput to a textfile (remove unnecessary spaces!). I.e. rooms.txt
Then, run the following loop:
$emailaddresses = Get-Content C:\temp\rooms.txt #The actions loop foreach ($emailaddress in $emailaddresses) { Set-CalendarProcessing $emailaddress -ProcessExternalMeetingMessages $True }
Easy as that. To verify the settings are committed, run:
$emailaddresses = Get-Content C:\temp\rooms.txt #The actions loop foreach ($emailaddress in $emailaddresses) { Get-CalendarProcessing $emailaddress | select identity,ProcessExternalMeetingMessages }