Scheduling Done Right
We’ve come a long way since the early days of Schedule+. Much development has been done to refine and smoothen the way calendar meeting requests are handled across the range of Outlook clients and now Teams. However, I still receive more questions about calendars than any other aspect of Teams or Outlook. The requests vary from how to add a disclaimer to meeting requests, or removing items from calendars with PowerShell, to figuring out who receives invitations to Teams meetings. It’s a never-ending procession of queries.
A recent question covered the response received for a meeting request sent to a room mailbox. Typically, room mailboxes (which do not need Exchange Online licenses) are used to control bookings of public spaces like conference rooms. Background processes such as the Calendar Attendant review incoming requests against the configuration (policy) defined for the target mailbox and decide if a request is successful and the room can be reserved for the requested time. Users receive email to tell them if their calendar meeting request is successful, denied, or waiting approval by a delegate who controls booking requests.
Traditionally, people waited for the email to come back to say if they have a room for their meeting. OWA and Outlook try to stop users booking rooms which are already reserved. Outlook (Figure 1) uses a MailTip, while OWA takes a more forceful approach and demands confirmation before sending a meeting request (Figure 2).
Either way, the person creating the calendar meeting request can still go ahead and attempt to schedule the room. At that point, the resource booking assistant kicks in to decide if the request is acceptable. The easiest situation is when the requested time slot is available, and the policy assigned to the room mailbox allows automatic acceptance of requests. The Set-CalendarProcessing cmdlet supports a bunch of parameters to allow administrator to tune exactly how incoming meeting requests for a room mailbox are dealt with.
For now, let’s assume that the assistant resolves the policy and decides to accept or reject the request, or that it is tentatively accepted pending review by a delegate. The next step is to send the meeting organizer email to inform them what’s happening.
Sending Corporate Information in Meeting Responses
Which brings me to my point. It’s often overlooked that you can insert some informational text in meeting responses for calendar meeting requests. Look at Figure 3 to see a message about leaving the room clean and tidy after the meeting.
The text inserted in meeting responses comes from the calendar processing configuration for the mailbox. In this case, I ran the Set-CalendarProcessing cmdlet to set two values. The AddAdditionalResponse switch is $True to force Exchange Online to add the extra text while the AdditionalResponse property holds the text to insert. As shown here, if some basic HTML formatting commands are included, they are used.
Set-CalendarProcessing -Identity "Room 101" -AddAdditionalResponse $True -AdditionalResponse "Please remember to leave the room <b>clean and tidy</b> with all equipment <u>back in its storage</u>. Thank you for using the corporate room scheduling system!"
It’s simple to apply the same text to all room mailboxes by running Get-ExoMailbox to find the mailboxes and then piping the set of room mailbox objects to Set-CalendarProcessing.
Get-ExoMailbox -RecipientTypeDetails RoomMailbox | Set-CalendarProcessing -AddAdditionalResponse $True -AdditionalResponse "Please remember to leave the room <b>clean and tidy</b> with all equipment <u>back in its storage</u>. Thank you for using the corporate room scheduling system!"
Creating Complex Text for Meeting Responses
I haven’t experimented to find the outer limits to discover how much text can be input, but it seems like it is around 1024 characters, meaning that it is feasible to create a nice message. For instance, I used this online editor to create the text of the message shown in Figure 4.
In this case, the PowerShell command used was:
Set-CalendarProcessing -Identity "Room 101" -AdditionalResponse '<h2>Welcome to the Corporate Room Scheduling System</h2><p>We have a few basic rules for you to follow.</p><ol> <li>Please keep the room tidy and remove rubbish at the end of your meeting.</li><li>Please do not change the settings of the AV equipment.</li><li>Please clean the whiteboard before you leave.</li><li>Advise Corporate Meetings if you have any problems by sending email to mailto:<a href="mailto:firstname.lastname@example.org">Corporate Meetings.</a></li></ol><p><strong>Room 101</strong> can hold up to <strong>12</strong> people. Please do not exceed this capacity.</p><p>If you need <strong>catering</strong>, please contact Trina at 147-1497.</p><p>Thanks for meeting with us!<img src="https://html5-editor.net/tinymce/plugins/emoticons/img/smiley-smile.gif" alt="smile" /></p><p> </p>'
The HTML and text are enclosed in single quote marks because some of the HTML commands use double quotes. It wouldn’t take a lot of extra code to read basic text from a file and customize the text (for example, adding some details about the capacity, equipment, or other information) before updating each room mailbox.
Simple Update, Big Impact
Adding some extra text to responses to calendar meeting requests can have a big impact. It’s the kind of simple but useful change that people often don’t know about. Discovering the hidden corners of Microsoft 365 is delightful, at least to me…
We explore all sorts of dark corners of Office 365 apps as we build content for the Office 365 for IT Pros eBook. In this case, the corner proved to be full of sweetness and light!