Tuesday, May 1, 2007

Managing Resource Mailbox Calendars

The Set-MailboxCalendarSettings cmdlet is one of the most useful and flexible cmdlets available with Exchange 2007. However, its flexibility often leads to complexity and confusion. I’ll do my best to walk you through the possibilities and help explain some areas where the Microsoft documentation is lacking.

AutomateProcessing



Let’s start off by getting the calendar settings of a resource.

[PS] C:\>Get-MailboxCalendarSettings demo_laptop_1
Identity AutomateProcessing
-------- ------------------
ColoState.EDU/ExchangeResources/Demo Laptop 1 AutoAccept


You will see the identity of the resource and its AutomateProcessing type. This can be set as one of 3 possibilities:

None
Both the resource booking and calendar attendants are disabled.

AutoUpdate
Only the calendar attendant is enabled.

AutoAccept
Both the resource booking and calendar attendants are enabled.


AutoUpdate is the default value for all mailboxes to help users manage their calendar data. The AutoAccept processing mode can only be enabled on resource mailboxes.

Calendar and Resource Booking Attendants



From http://www.microsoft.com/exchange/evaluation/features/default.mspx each attendant is defined as the following:


Calendar Attendant
The Calendar Attendant reduces scheduling conflicts by limiting calendar items (request, declines, accepts) in the inbox to the latest version. The Calendar Attendant also marks meeting requests as tentative on recipient calendars until users can act on the request and relies on the Exchange Server 2007 free/busy Web service for always up-to-date availability information.


Resource Booking Attendant
The Resource Booking Attendant enables resources, including meeting rooms or other equipment, to be automatically managed. Resources can auto-accept requests when available or decline and provide details explaining the decline. Administrators can set granular policies on resources, including available hours or scheduling permissions.


Calendaring Policies



Now we explore the great flexibility this cmdlet offers (and the root of that flat spot on your forehead from repeating banging it against the wall). There are 3 distinct, counter-intuitively named policies that can be defined for automatic calendar processing:

Book-In Policy Requests
Users that are defined in the ‘Book-In-Policy’ are allowed to automatically schedule a resource if it available. Resource delegates do not have to approve these requests.


To define a list of users in the ‘book-in’ policy use the following command.
Set-MailboxCalendarSettings resource_alias -BookInPolicy 'user1@domain.com','user2@domain.com'

This command will allow all users to use the ‘book-in’ policy.
Set-MailboxCalendarSettings resource_alias -AllBookInPolicy:$True -AllRequestOutOfPolicy:$False -AllRequestInPolicy:$False

In-Policy Requests
Requests from users defined in the ‘In-Policy’ group must be approved by a resource delegate.

To define a list of users that can submit ‘in-policy’ requests use the following command.
Set-MailboxCalendarSettings resource_alias -RequestInPolicy 'user1@domain.com','user2@domain.com'

This command will allow all users to submit ‘out-of-policy’ requests.
Set-MailboxCalendarSettings resource_alias -AllBookInPolicy:$False -AllRequestOutOfPolicy:$False -AllRequestInPolicy:$True

Out-Of-Policy Requests
Users defined in the ‘Out-Of-Policy’ group have their requests automatically approved unless there is a conflict on the resource calendar. If a conflict exists, the calendar request is forwarded to resource delegates for approval.


To define a list of users that can submit ‘in-policy’ requests use the following command.
Set-MailboxCalendarSettings resource_alias -RequestOutOfPolicy 'user1@domain.com','user2@domain.com'

This command will allow all users to submit ‘out-of-policy’ requests.
Set-MailboxCalendarSettings resource_alias -AllBookInPolicy:$False -AllRequestOutOfPolicy:$True -AllRequestInPolicy:$False


If you want to get fancy you can use the following command to allow all users to submit in-policy requests while allowing user1 to submit out-of-policy requests and adding the ‘Executive Committee’ distribution group members to the book-in policy.
Set-MailboxCalendarSettings resource_alias -AllRequestInPolicy:$true -AllRequestOutOfPolicy:$False -AllBookInPo
licy:$False -BookInPolicy:'Executive Committee' -RequestOutOfPolicy:'user1@domain.com'


Resource Delegates



The Set-MailboxCalendarSettings cmdlet allows the administrator to define resource delegates without having to manually configure an Outlook profile and navigate the appropriate menus to define delegates. The feature is one of my favorites and very useful for self-service applications. However it has been a bit buggy. Here are the two bugs I have identified and should be fixed in SP1.

  • Error message when you try to accept a meeting request on behalf of an Exchange Server 2007 resource mailbox: "Cannot open Calendar folder for user resource_mailbox_name"
    http://support.microsoft.com/kb/930865


  • When the Set-MailboxCalendarSettings cmdlet is run to re-apply/add delegates for a resource calendar the original delegate's permissions are removed. The delegate is still displayed when running the ‘Get-MailboxCalendarSettings’ cmdlet however if you look at the permissions on the resource calendar, the delegate’s permissions have been removed. To re-grant permissions on the resource calendar you must run a "Set-MailboxCalendarSettings resource_alias -ResourceDelegates:$null" command. Afterwards you can re-grant permissions to the intended user. Until SP1 is released, I would recommend running this command before making any changes to resource delegates.


Resource Calendar Options



In additions to the features offered by the resource booking attendant there are many other calendar customizations that can be defined. Below are a few useful options that we use all the time. A complete list can be found at http://technet.microsoft.com/en-us/library/aa996340.aspx.

-AddAdditionalResonse and –AdditionalResponse
Define an additional response text that will accompany any meeting accept/decline/tentative notices.

-AddOrganizerToSubject
If set to $True, the calendar attendant will prepend the meeting organizers name to the meeting subject. This is very useful for quickly identifying the meeting organizer while looking at the resource calendar.

-AddRequestsTenatively
If set to $true, all meeting requests will be added to the resource calendar and marked as tentative until acted upon by a resource delegate.

-DeleteAttachments
If set to $true, attachments will be removed from the meeting information in the resource mailbox.

-DeleteComments, -DeleteSubject
See above.

-DeleteNonCalendarItems
If set to $true any non-calendar related messages will be deleted.

-BookingWindowInDays
Defines a horizon date for meeting scheduling. Also see EnforceSchedulingHorizon.

-ConflictPercentageAllowed
If recurring meetings are enabled you can define a conflict percentage to avoid declining a series of meetings because of a single conflict. An allowed percentage of ‘25’ would allow a meeting with 8 occurrences to be accepted as long as no more than 2 conflicts were detected. A separate decline message would be sent to the organizer for the conflicting meeting times.

-MaximumConflictInstances
The same as ConflictPercentageAllowed except with a defined static amount of conflicts allowed.

-MaximumDurationInMinutes
If you wish to prevent people from scheduling resources for a day, or possibly a few days, you can define this setting to set the maximum meeting duration. Alternatively, if you set the value to ‘0’ meetings of any length will be processed.

-ProcessExternalMeetingMessages
If set to $true, meeting requests from external Exchange organizations will be processed.


OWA Management



If you fear the command line like some of my co-workers (you know who you are… Jon) you can manage most of these settings via connecting to the resource mailbox via OWA and editing the ‘Resource Scheduling Options’. You have the ability to manage all of the calendar settings you would from the command line with the exception of defining resource delegates.



To open the resource mailbox via OWA you must define full-mailbox access to the managing user. This can be done from the Exchange Management Shell with the following command.

Add-MailboxPermission resource_alias –User:domain\username –AccessRights:FullAccess


Further Documentation




--Nick

15 comments:

Anonymous said...

Very nice info, thanks.
But I have a problem.
when I create a mailbox ressources. I block the access. Only member of group x can book a meeting. The problem is when a user (not in the access group x) try to book a meeting and invite 2 others person. He receive a access denied, but the 2 persons receive the meeting anyway. There is a possibility to block the request to be sent to the 2 others user when a guy don't have the access to book the meeting ...
thanks a lot
sleayer@gmail.com

John Brines said...

I have setup a Resourcedelegate but the delegate never receives a copy of the appointment.

We are running Exchange 2007 SP1 Rollup 2.

John.

John Brines said...

Nick,

Ignore my post as I found out what was wrong. AutomateProcessing was not set to AutoAccept instead it was set to AutoUpdate.

Cheers.

John.

Anonymous said...

I am having a huge issue with the delegate functionality. I am having a heck of a time allowing delegate permission to a group whether security group or distribution group. It this functionality possible?

Anonymous said...

In 2003, we had the option to open up a Resource mailbox (i.e. conference room) through Open a Shared Calendar. I have tried everything and only find that you can open the resource calendar through OWA with 2007 resources. My users find this very frustrating. Is there something I'm missing????

Anonymous said...
This comment has been removed by a blog administrator.
Unknown said...

Hi

Is it possible to allow a external user (who is allowed to make bookings against the resource mailbox) to view the actual calendar and plan a meeting with the scheduling assistant using Outlook?

Anonymous said...

Very helpful write up but I am not seeing where/how to set up the Resource Delegates via the Shell?

An example would be nice.

Thank you again.

Anonymous said...

Founding Fathers

Unknown said...
This comment has been removed by the author.
Unknown said...

In online appointment they regularly bring about insufficiency and they are hard to oversee appropriately. This procedure is exceptionally badly arranged for the individuals who invest the vast majority of their energy online appointment is much hard to timetable amid twilight.

narwhal data partners said...

Very nice posting. Your article us quite informative. Thanks for the same. Our service also helps you to market your products with various marketing strategies, right from emails to social media. Whether you seek to increase ROI or drive higher efficiencies at lower costs, Pegasi Media Group is your committed partner will provide b2bleads.MS VB Script Users Email List

Anonymous said...

Thank you for the good writeup. It in fact was a amusement account it.
Look advanced to far added agreeable from you! However,
how could we communicate?

ROMAN said...

As the leader and trailblazer in on-line optical disk rental since 1997, just about everybody within the U.S. is aware of concerning Netflix. They understand that Netflix offers an enormous choice of flicks from each genre and may get them delivered to their door at intervals every day at an inexpensive value. With over meg DVDs being armored out daily, Netflix is that the premier supplier of on-line optical disk rental during this country.
For More info click on Netflix Com Activate

Anonymous said...

The Le_Meridian Funding Service went above and beyond their requirements to assist me with my loan which i used expand my pharmacy business,They were friendly, professional, and absolute gems to work with.I will recommend  anyone looking for loan to contact. Email..lfdsloans@lemeridianfds.com  Or lfdsloans@outlook.com.WhatsApp ... + 19893943740.