By default an Exchange Server room mailbox does not permit external senders to make bookings. However there is an option that you can configure to allow external senders to make bookings if you need them to.
In this example scenario there are three room mailboxes.
[PS] C:\>Get-Mailbox -RecipientTypeDetails RoomMailbox Name Alias ServerName ProhibitSendQuota ---- ----- ---------- ----------------- HO Meeting Room 1 homeetingroom1 ex2013srv2 Unlimited Sunset Room sunsetroom ex2013srv1 Unlimited HO Meeting Room 2 homeetingroom2 ex2013srv2 Unlimited
Looking at the “Sunset Room” calendar processing settings we can see that the mailbox is not configured to process external meeting requests.
[PS] C:\>Get-Mailbox "Sunset Room" | Get-CalendarProcessing | Select *external* ProcessExternalMeetingMessages : False
If an external sender such as a Gmail user attempts to book the meeting room they will not receive an acceptance or rejection message, which may lead to confusion if the room is assumed to have been successfully booked.
To configure the room mailbox to process external meeting requests run the following command:
[PS] C:\>Get-Mailbox "Sunset Room" | Set-CalendarProcessing -ProcessExternalMeetingMessages $true
Note that this change will enable the processing of external meeting requests, but the meeting request is still subject to being accepted/rejected based on availability of the room and any other booking policies you have configured. This change will also only take effect for new meeting requests. Any meeting requests from external senders that were received before the setting was enabled will not be processed.
Thanks for this hint. Microsoft likes to make simple things difficult 🙂 This also works in cloud exchange in combination with auto acceptance of meetings to teams rooms pro licence on the conference terminal
Great work! thank you!!!
thanks this is really helpful. Before i amend the settings if an external user sends a meeting invite to a director and then the director forwards the calendar invite to a internal room mailbox, will that work ? as i have tried this but its not working so by changing the setting to true will this work ?
Someone has shared their meeting rooms with us as explained here. Is it possible to add the rooms to a room group? At one site, we share a building with a sister company and have access to each other’s conference rooms. We’ve built the contacts, so we can see them in the “all rooms” list when planning a meeting, but I can’t add them to a distribution group so they appear in “Room Finder” where you can limit your search to a building.
Jason, did you ever solved it? We have a very similar situation:
Mother company has Exchange and a number of meeting rooms.
Daughter company resides in the same office but uses a different mail server (Icewarp). Is it possible to publish the rooms’s free/busy information to an external mail server? How and where did you do the step “we’ve built the contacts, so we can see them in the “all rooms” list”?
Best regards
this is helpful. i still don’t see if i can allow external booking from another domain only.
the meeting room is on
room@companyname.com
and i would like
persons@companyname2.com to be able to book the rooms only and not all externals which would happen if i execute
Set-CalendarProcessing “” -ProcessExternalMeetingMessages $true
Dear Susan, I hope your request is still present. I am actually doing some research and found the answer for this here: https://m365scripts.com/exchange-online/allow-external-users-to-book-meeting-rooms-in-microsoft-365/
The Real Person!
The Real Person!
Hi Christoph
I had exactly the same issue, this is perfect!
I have book looking for a solution all morning.
Many thanks Chris.
Thanks from Argentina!
Hi,
Is it possible to have SRS accept External Meeting Invites, that have been forwarded from an Internal recipient…, but reject invites that are send directly from the external organiser ?
Thanks,
Dave
@Dave,
Did you figure this out? I am wanting to do the same. Thanks.
Hi
I have a hybrid set up with office365 and exchange 2013. I want to give read-only access to a room calendar to the third-party users (Users outside the company). so they can view the meeting room but unable to book meetings. Is this possible in Exchange 2013?
Hi Sam, did you ever get this to work, as this is exactly what I want to do?
Thanks in advance.
+1 I’m also interested to see whether this is possible
How to set only specific external domain can book. I wouldn’t like all extrenal have access. Thanks
Did you ever find out how to do this? I’m also setting it up this way.
Thanks
You can create transport rule after the powershell command in this article.
Thanks a ton Paul!!!
This is great, but I have a question:
I want a resource to accept the “external” meeting request only if it comes as a forward from someone in our domain. If someone external tries to schedule it directly, I want it rejected.
Is this refinement possible?
I would also like to know if this is possible ?
Thanx a lot for your solution
Hi Paul,
I have a hybrid platform exchange 2013 and Office365, but the resource is created in exchange and when a user who is in office365 schedules a meeting to the resource that is in exchange, this is not reflected to the person in charge of the resource.
sorry for my English.
Not sure if I’m completely misunderstanding your question Alexander but in a hybrid setup, I think the Office 365 users are technically considered internal and not external. Perhaps your issue Alexander is related to where the users are created.
In our Exchange 2013 Office 365 setup, we have to create user mailboxes on-premise and then on-board them. Otherwise, if we create only the AD user account on premise, wait for ADsync and then assign a mailbox in Exchange Online, certain attributes don’t seem to be populated and the users are not able to see/use on-premise resources such as meeting rooms.
And thanks Paul for another great post.
Hi Paul,
I’ve got everything working, except one small issue. The sender (external user) is setup to see the shared mailbox of the room on their outlook client (Office 2016). Their invite is successful and it shows up if I’m logged into the room’s OWA account on a different browser, but it doesn’t show up on the external users shared room calendar.
The Real Person!
The Real Person!
I’m not familiar with that scenario. I guess it depends how the external user is getting access to the calendar. You should probably compare the experience to an internal user looking at the same shared calendar and see if anything stands out different.
HI Paul i tried this on my own O365 tenant today but when i try to book with an external address seems like the meeting is tallied as tentative … and not automatically accepted despite the adress is correct and sharing is enabled via OWA for the resource mailbox and booking policy is active..
any clues on this ?
Hi Paul,
Found this while trying to set up bookings from a third party product (Bullhorn) . We have setup a medical appointments resource and are able to send an appointment request from bullhorn by including the email address of the medical appointments resource. This seems to work fine, but the problem is that the subject of the email sent is stripped out and the client for whom the appointment has been booked is lost. Am I correct that we need to set the Calendar processing to not delete the subject Using this Powershell cmd? I also set the -deletecomments to $false to ensure that all the information in the email is included in the appointment.
set-calendarprocessing -identity -deletesubject $false
Hi Paul,
Can gmail or hotmail account holder book a room on office 365. Is it possibel ?
Best Regards,
Nafis
The Real Person!
The Real Person!
If you enable external bookings, yes.
Is there a way for the external user to add room calendar to their Outlook 2016? The idea is that the user can view the room calendar and then book accordingly.
We have On-Premise Exchange 2010, Is it possible -ProcessExternalMeetingMessages to Only Office 365 users and not users from any other source.
The Real Person!
The Real Person!
No.
Worked exactly as I hoped. Thank you!
Is there a way to limit external processing to specific domains? For instance, we’re incorporating a tool for recruiting/onboarding, and that tool needs to book rooms automatically when setting up the interviews, etc. Ideally, we’d like to limit external processing to only this particular tool’s emails.
Greg,
Did you ever get a response on how to limit the external to a specific domain?
Yes, I’m interested in this also. There was a comment bit back up with a list of addresses, but would be much easier to grant the permission to the whole domain.
I need this behavior too. Anyone got this working?
Paul said maybe with Transport Rules. Anyone knows how to do it?
Has anyone got this to work? Looking for the same functionality. Allow external requests but only from a specific domain.
Here is my transport rules to allow only a specific domain name ‘microsoft.com’
*Apply this rule if…
The recipient is…’Name of Room resource’
and
The sender is located…Outside the organiztion
and
The message type is…Calendaring
*Do the following…
Reject the message with the explanation…’Allow only specific domain’
Except if…
The sender’s domain is… ‘microsoft.com’
Great advice! Thank you.
the first set of instructions work, however is there a way for the external user to add this calendar to their Outlook 2016? Don’t want to use OWA. The idea is that the user can view the room calendar and then book accordingly.
Paul, are O365 users considered external users? We have several users on the cloud and they cannot book conference rooms, will this resolve our issue?
Disregard, it worked!
Hi Paul,
I need to restrict room mailbox bookings to a list of users using below cmdlet:
Get-Mailbox BoardRoom | Set-CalendarProcessing -AllBookInPolicy:$false -AllRequestInPolicy:$false -BookInPolicy “User1@DomainName.com”,”User2@DomainName.com”,”User3@DomainName.com”,”etc”
Unfortunately the list of users is pretty long, is there a way to add a long list of users from a txt file using above cmdlet?.
Regards
Jose
Could a security (or other type if necessary) group be used instead of a list? Should be Azure AD group as the system in question is purely there…
Hi Paul,
This worked great for O365.
However our externals cannot see the free/busy information of the resource. Is there a way around this?
Thanks
I can’t get this working for exchange 2010. It’s all set correctly, the same as this article.
All the room mailboxes show ProcessExternalMeetingMessages : True but nothing happens.
Have you seen this before for 2010?
Thank you for the write-up. I had to use for a user that has a mailbox in O365 to have access to a restricted resource on prem. Thanks!
Thanks this was very helpful.
Great tip! Works when booking a meeting but can’t cancel the meeting. Is this expected behaviour?
The Real Person!
The Real Person!
I would assume so, yes.
hi paul,
i set up organization relationship and also the above command which you have mentioned but in outlook says you do not have permission to book where i could add and just able to see the availability of the room.
can you suggest anything else?
Can the external users be restricted to a particular domain? Say in case company 2 (Exchange 2010 Organization) want to allow users of company 1 (Exchange 2010 organization) only to be the ‘External’ users?
The Real Person!
The Real Person!
You could probably enforce it using Transport Rules.
I have this working successfully in O365. Thank you. Two questions:
How would you make this command set external processing for All the rooms instead of just 1?
Also, are the external users “anyone” or just the companies that you set in the organization sharing?
The Real Person!
The Real Person!
Get-Mailbox -RecipientTypeDetails RoomMailbox
That will return all room mailboxes. So just pipe that into your next command.
External means anyone.
How does one achieve this with Office 365
The Real Person!
The Real Person!
You can connect to Exchange Online using PowerShell.
Hi,
In Exchange 2010 seems not to work for me. I have added the external contact and now it is present in the GAL, and configured the ‘ProcessExternalMeetingMessages’ parameter to true on the rooms.
But when I send the request I don’t receive the usual email response about being accepted or not, and when I directly check the Room calendar I can see the appointment but is greyed out like still needing approval. The room config is set to autoaccept any request and it is working fine for internal users.
Any idea?
Best regards
I can’t make it work in 2010 either, anyone gotten it to work?
So what’s the deal with this and User mailboxes in 2013? In 2010, I had a script enabling this parameter for all mailboxes on the server (a holdover from the dark days of BES) – is this just not even a thing for User mailboxes any more? I get a message from Set-CalendarProcessing telling me that ‘ProcessExternalMeetingMessages’ can only be enabled on Resource mailboxes now….
The Real Person!
The Real Person!
Why do you need it for user mailboxes? Do you have user mailboxes that auto accept external meeting requests? I suspect the majority of customers only need this for resource mailboxes to be self-managing (relatively).
I was able to get it to show as true, but the user still does not get the notification email.
Do I need to restart transport service.
Managed to get it to show me $true, and yet it will show up on my calendar in Exchange when I book it from Gmail but not the conference room.
Get-Mailbox “#CH_COMMISSION_CONFERENCE” | Get-CalendarProcessing | Select *external*
ProcessExternalMeetingMessages
——————————
True
any reason that it won’t allow the meeting request to be booked or appear?
Is it possible to use auto accept for internal users and manual approval for external users only?
Did you manage to solve this? This would be great if it only accepted O365 users, and not everybody else…
Thank you for this article. Great information. Would the external email be able to see the availability of the room?
+1 on this
+1