16 July 2008

Using Exchange 2007 for Resource Booking

The process of booking various resources to go with a meeting room just got a whole lot easier with Exchange 2007. Nathan Winters explains Exchange's resource-scheduling functionality and offers practical advice on how you might go about configuring Exchange to allow users who are scheduling meetings to specify that such things as video conferencing, projection equipment, and refreshments are required for the meeting.


Although previous versions of Exchange were regularly used to host mailboxes that represented resources, Exchange 2007 was the first version in which these mailboxes were actually different from normal mailboxes. This means that there is now no need to rely on add-in software such as the ‘Auto Accept Agent’. It also means that the design process has been rather more thought through, thereby ensuring a useful solution both at the server and client end.

In Exchange 2007, it is possible to create resource mailboxes that can represent either Rooms or Equipment. These exist as disabled accounts in Active Directory and can be managed in various ways. Exchange 2007 also contains the type of ‘Auto Accept Agent’ functionality that was missing from Exchange 2003. Having a mailbox type of “Resource” is useful because it makes administration separate. It allows these mailboxes to have special functionality but yet to be secure as disabled users. It is also helpful to be able to distinguish between rooms and equipment as it is easier for users, and gives more flexibility when adding custom resource properties, as we shall see later.

With the ‘Availability Service’ it is now possible to get real-time information about resource availability without the need to wait for public folder replication to occur (so long as Outlook 2007 is being used). To make best use of this solution you must ensure that Outlook 2007 is being used by those who will be interacting with the resources and managing their use. This is important because much of the user interface, such as the Scheduling Assistant, is held in Outlook 2007. I would however be careful in rolling out Outlook 2007 to the entire user base before thorough testing is carried out. Unless you are careful, you will have dissatisfied users; this is because Outlook 2007 does not always perform as expected, especially with third party add-ons.


My test environment consists of servers in two sites. Each site has a Mailbox server and a combined Hub-Transport and Client-Access server. Outlook 2007 and OWA 2007 are used as clients. Various users have been set-up in each site such as users, admin users (secretaries), resources (projectors), and rooms. I have configured such a test environment because it is useful to be able to show different sites with a different naming convention. Equally I was interested to see how time zones are handled and discovered that, in my view, this could be done better. For example, as I’ll mention later, Outlook is not as flexible as I would like in helping people to arrange meetings in different time zones that require a room in each zone. You could easily test the vast majority of this functionality on a single Exchange server with a single Outlook client.

Creating or Migrating resource mailboxes

The resource mailboxes can be created from the GUI or from the command line as shown below:

Note – If you are migrating the resource mailboxes from an Exchange 2003 system, then use one of the following commands to convert the migrated mailbox to a resource, either ‘room’ or ‘equipment’ as you wish.

Before moving on, the resource mailboxes must be set-up to ‘auto accept’ meeting requests; otherwise they will always remain as ‘tentative’ until an operator intervenes. This is done as follows:

Once suitably configured as above, each resource mailbox will send an auto-accept message to meeting organizers (Figure 1). The message text can be customized to suit requirements.


Figure 1 – Showing auto acceptance. This message can be customized.

Feature Investigation 

I have now discussed how to create resource mailboxes and how to configure their basic option of responding by accepting requests. As you saw, the initial setup is really fairly simple; it is just important to remember that, when migrating from 2003, you must convert the mailbox to the new resource type. Now, let’s move on and look at some of the key resource-centric features that Exchange 2007 offers.

Security and Booking Policies 

Both security configuration and booking policies allow the administrator to grant control of resource mailboxes to certain users: Those users (using Outlook Web Access) can then define how they are used. For example, it is possible to specify the maximum meeting duration, to define and allow meetings to be scheduled only during working hours and to define how to handle conflicts.

The first step is to setup the resource-admin users as ‘delegates’ of the specific resources in each site. The command below will get mailboxes with the type Equipment or Room and with “sitea” in the name. It will then give Delegate access to the account “siteaadmin“. I have repeated the steps for siteb:

The ‘delegate user’ for each resource mailbox may be sent a copy of the meeting requests which go to that resource depending on policy, and they are then able to accept or reject these requests.

Next set-up the admin accounts in sitea and siteb to have full access to their respective resources. The command below is for siteb:

With Full Admin permissions on the resource mailbox, the admin user can then open the mailbox as an additional mailbox in Outlook and have full control of all functions. Most important of these is the OWA Options/Resource Settings section of a resource mailbox: This is used to configure some of the Resource options such as; “Resource Scheduling Options”, “Resource Scheduling Permissions”, “Resource Privacy Options”, and “Response Message”. Every option that is available via the shell is also available in OWA as shown in Figure 2.

To access the relevant mailbox in OWA you will need to access a specific URL:


… and then log in with the account which has Full Access rights. Click on the Options button in the top right hand corner and then, in the left hand pane, click on the Resource Settings section.


Figure 2 – The Resource Settings page in OWA options

Once you have reached the Resource Settings section of the mailbox options in OWA, you can see the policies that are available. There are three policies, BookInPolicy, RequestInPolicy, and RequestOutOfPolicy.

  • BookInPolicy is a list of users who can schedule the resource automatically. By default it is set to Everyone.
  • RequestInPolicy is a list of users who can request to schedule to resource and have to have it authorized by the resource administrator.
  • RequestOutOfPolicy is a list of users who can submit a request for a resource even if it is already booked. (This might for example be used for the CEO!)

This page enables you to allow conflicts, set maximum meeting length, allow recurring meetings, customize the text of notification mails and a host of other settings.

A policy example

So what if you want to set a policy that makes it mandatory for a delegate to authorise the request when anyone books catering?

This can be done by first setting up the delegate for the catering resource mailbox as above. Then log into OWA (also as above) and set the “These users can schedule automatically if the resource is available:” policy to “Select Users and Groups”. On the “These users can submit a request for manual approval if the resource is available:” policy to “Everyone”. Save the settings.

At this point, when anyone tries to submit a request, the delegate user will get a mail like the one in Figure 3.

Figure 3 –
The Request info forwarded to delegates

The delegate user can then accept the request (and go ahead and book the catering with the caterer!).

Meanwhile the requesting user will get a mail as in Figure 4, showing the pending request. The meeting is held as tentative to prevent the resource being booked by someone else.


Figure 4 – The Tentative mail received by the user whilst waiting approval

Once the delegate user approves the request, the meeting will be booked and acceptances sent out.

More info about the policies and the shell commands available can be found here:



Viewing Meeting rooms

So what does this look like from the client perspective? In Outlook 2007 it is possible to see all rooms, and their availability, in one window by using the Scheduling Assistant in Outlook 2007 as shown in Figure 5.

Figure 5 –
The Scheduling Assistant

All rooms can be added from the “Add Rooms” button. In the main window you will see which rooms are available: this is supplemented by the “Suggested Times” area on the right hand side.

Although it isn’t obvious, it is possible to set the meeting time zone when creating a meeting using the Time Zones button highlighted in Figure 5. However, it is not possible to view and additional time zone in the scheduling assistant as you can in the main Outlook calendar.

Scheduling resources

The Scheduling tab is where most bookings will take place. The basic scheduling of resources is simple. First open a meeting request and enter a subject and if necessary, the attendees. Next move to the Scheduling tab. Use the new ‘Add Rooms’ button to open the window shown in Figure 6. This shows the ‘All Rooms’ address list which gives a view of the capabilities of each room. As you can see, ‘SiteB-Room2’ is listed with a capacity of 2 which is a default property that can be customized on each room, using the Exchange Management Console as shown in Figure 7.


Figure 6 – The All Rooms address list


Figure 7 – Setting the capacity of the Room

If you are searching for an available room, then select those with the correct properties (such as capacity), and add them.

When back on the Scheduling tab, you can then use the ‘attendees’ tab to add other attendees or resources such as projectors. Figure 8 below shows the booking facilities.


Figure 8 – Scheduling tab showing users, resources, and rooms

Custom Resource Properties

As I mentioned earlier it is possible to add custom properties to resource mailboxes. If, for example, you have a catering menu and you want to use a resource mailbox to identify the menu code, then firstly create the custom resource types as follows.

First read the current resource configuration and store it in a temporary variable called $ResourceConfiguration by running the following command:

Next create your custom properties, in this case sandwich types – Fish, Vegetarian, Meat:

Finally update the resource configuration of your organization by using the modified resource property schema, using the following command:

Once you have created the custom resource properties, you will then add them to the relevant resource mailbox: this can be done in Exchange Management Console. The example shown in Figure 9 shows two catering menus:


Figure 9 – Showing the method of adding custom resources

Having done that, one way to view these extended attributes is by using the PowerShell command below:

However, with a little more investigation, I have found another more user-friendly way!

As it would appear that only the ‘All Rooms’ address list has the right GUI part to show the “Description” field, I have edited the filter to include the EquipmentMailbox type as well.


Figure 10 – The combined Rooms and Equipment resources showing custom properties

I used this command to edit the filter.

The results of the filter change are shown in Figure 10.


This article describes the Exchange Resource Scheduling functionality. I realize I haven’t covered every single feature, but I have aimed at doing enough to give you the skills needed to continue developing your resource booking solution using Exchange 2007.

In general, with a little investigation and some color-coding in Outlook, you can create a decent resource booking system. Of course it is not as polished as some of the 3rd party systems, but then a lot of them are not that great!

Some improvements are necessary in the user-interface. For example, when you are adding custom resource properties you can’t actually see them in Outlook unless you are modifying the Rooms address list. It should be possible to use the Exchange Web Services to create a custom front end for working with the ‘resource mailboxes’ that you create. Let’s hope someone does it soon.

For more articles like this, sign up to the fortnightly Simple-Talk newsletter.

Tags: , , ,


  • Rate
    [Total: 62    Average: 4.3/5]

Nathan Winters is the unified communications lead at Grey Convergence, a specialist Microsoft partner for unified communications and collaboration. Nathan has been working in IT for eight years and specializes in unified communications with a focus on Microsoft Exchange and Office Communications Server. Nathan has consulted at numerous Fortune 100 companies across a variety of vertical markets. In 2006, Nathan founded the Microsoft Messaging and Mobility User Group UK, which holds regular meetings in the UK to discuss topics related to Exchange. In 2007, Nathan was named an MVP (Exchange Server) for his work with MMMUG and his regular contributions to the Mark Minasi Forum, and he has received the same honor each year since. Nathan’s articles have been published on leading websites and magazines, including Windows IT Pro Magazine, MSExchange.org, Simple-Talk.com, Microsoft (TechNet Industry Insiders), and the MMMUG website. You can contact Nathan at nathan@clarinathan.co.uk or through his blog at http://www.nathanwinters.co.uk.

View all articles by Nathan Winters

  • Alex Kuznetsov

    Resource Booking needs more referencial integrity.
    Recently I scheduled a meeting using this system. I reserved a conference room all right, the feature looked very cool. However, between the time I scheduled it and the time of the meeting, the conference room was converted into a personal office, and as such was removed from the list of available resources. Yet the reservation for a non-existent resource still remained, visible in Outlook to all the party invited to the meeting!

    I know that foreign key constraints involving windows of valifity (validFrom, validTo) are complex, but they are doable.

  • pronestor

    Resource Booking alternative to Exchange Store
    Using Exchange for room booking is not optimal – a few points to back it up is the lack of handling pre- and post time, booking room for just 2 hours of the meeting period, booking food services etc.
    We have launched a S+S solution that solves some of the issues within resource booking in Exchange.
    It does not require any changes or installation into Exchange – it requires installation of an add-in and thats it.
    Take a look – any input is more than welcome.

  • PBarnes

    Sending notifications with schedueling resources
    I am attempting to notify users when resources are booked/schedueled. Do you know how/if this is possible?

  • wpg_guy_79

    How do you view the details of the resource?
    I’ve done all the commands to basically see the resource. I have the resource automatically accept the request. Once it accepts the request I can’t see any details on the resource. I can only see if it is free/busy and not the details of the resource. Any ideas?

  • Dazman98

    Can’t see details of who booked the resource
    I have the same issue as ‘wpg_guy_79’
    Meetings are auto accepted successfully by the Resource Room, but no one (other than a user with Full Access) can see the person who booked the room or the Subject of the booking when viewing the room in the Scheduling Assistant.
    Can someone please post a solution on how I can set all users can see these details without giving them Full Access.

  • prShadoko

    This may help you…
    Hi wpg_guy_79 & Dazman98 ! I might have a solution for you.
    1.Give yourself full access
    2.Open the resource calendar
    3.In its properties dialog, “Permissions” tab, set “Default” permission level to “Reviewer”
    4.You can disable full access
    5.Restart Outlook

    Now everyone should be able to see the calendar but not to edit it.

    Tell me if you have any trouble with this. Have a nice day! 😉

  • Myftiu67

    move room mailbox to diferent storage group

    I am not able to move room mailbox to a diferent storage group, Exhange 2007.

    Below is the error:
    Summary: 1 item(s). 0 succeeded, 1 failed.
    Elapsed time: 00:00:30

    London (Tim’s Room) – Ground Floor – 4People – Normal Telephone (only Available when Tim is not in the office. Check his calendar before booking)

    Error was found for London (Tim’s Room) – Ground Floor – 4People – Normal Telephone (only Available when Tani is not in the office. Check his calendar before booking) (london@contentandcode.com) because: Error occurred in the step: Preparing mailbox to be moved. Failed to copy basic mailbox information with error: An internal processing error has occurred. Try restarting the Exchange System Manager or the Microsoft Exchange Information Store service, or both., error code: -1056749241

    Exchange Management Shell command attempted:
    ‘internal.contentandcode.com/Users/London (Tim”s Room)’ | move-mailbox -TargetDatabase ‘GONZOBusinessUnitsHR Finance Marketing’

    Elapsed Time: 00:00:30

    Any idea?


  • Dun1

    Combining Room / Equipment resources
    I don’t quite follow how you ended up with both Rooms and Equipment inside the ‘All Rooms’ address list. Is it just a case of following those PowerShell commands?