What does Exchange 2007 Availability Service do?

The Exchange Server 2007 Availability service improves free/busy data access for information workers by providing secure, consistent, and up-to-date free/busy data to clients that are using Availability Web Service (like Microsoft Office Outlook 2007 or Exchange 2007 Outlook Web Access). Outlook 2007 uses the Autodiscover service to obtain the URL of the Availability service.

But what is the Availability Service?

Unlike previous versions of Exchange, free/busy data does not have to be stored in public folders; thus we no longer have to deal with replication or latency. Instead we will access the target mailbox’s free/busy data directly from the calendar (via the Availability service).

If you couple that with the new Calendar Assistant functionality in Exchange 2007 (namely the ability for Exchange to place meeting requests in a tentative state for mailboxes without the need for the end user to triage the meeting request, and the ability to update meeting requests when certain information changes (location, attendees, meeting notes)), the Availability service provides a methodology by which end users will be able to see free/busy data in real-time that is always up to date.

The Availability Service is a web service that is deployed on the Client Access Server role. Outlook 2007 clients discover the Availability service via Autodiscover. The Availability Service is used by the Outlook 2007 and Outlook Web Access Scheduling Assistant to

  • Retrieve live Free/Busy information for E2K7 mailboxes
  • Retrieve live Free/Busy from other E2K7 forests
  • Retrieve published Free/Busy from Public Folders (for legacy mailboxes or for mailboxes using legacy Outlook clients)
  • View attendee working hours
  • Show meeting time suggestions

As mentioned above, in order for the Availability Service to provide a seamless end user experience, it must be able to interact with legacy systems. To that end, the Availability Service can retrieve data from free/busy public folder stores. Now you may ask why would there be public folder free/busy data? Well, remember that only Outlook 2007 utilizes the Availability service. Outlook 2003 clients and earlier clients still use Public Folders. In addition, mailboxes stored on legacy Exchange servers will also still publish free/busy data to a public store. During server and client coexistence, we need to ensure that all parties can obtain free/busy data regardless of server version or client version.

Note: In order to maintain backwards compatibility, Exchange 2007 mailboxes using Outlook 2007 clients will utilize the Availability service for retrieving data, but also publish to a free/busy public store, since legacy clients also need to retrieve free/busy data.

This table explains what method is used for free/busy in the different topologies:


Logged in Mailbox

Target Mailbox

Free/Busy Retrieval

Outlook 2007

Exchange 2007

Exchange 2007

The availability service reads free/busy information from the target mailbox.

Outlook 2007

Exchange 2007

Exchange 2003

The availability service makes HTTP connections to /public virtual directory of Exchange 2003 mailbox.

Outlook 2003

Exchange 2007

Exchange 2007

Free/busy information will be published in local public folders.

Outlook 2003

Exchange 2007

Exchange 2003

Free/busy information will be published in local public folders.

Outlook Web Access 2007

Exchange 2007

Exchange 2007

OWA 2007 calls the availability service API which reads free/busy information from the target mailbox.

Outlook Web Access 2007

Exchange 2007

Exchange 2003

OWA 2007 calls the availability service API which makes an HTTP connection to the /public virtual directory of Exchange 2003 mailbox.


Exchange 2003

Exchange 2007

Free/busy information will be published in local public folders.

So how does this work? 

1. Well the client will make a connection to the CAS server (if Outlook 2007, this will be determined via the AutoDiscover configuration) using the Availability URL. 

2. If the target mailbox is in another AD site:

a. Then the CAS server will make an HTTPS connection to the target CAS server.

b. The target CAS server will obtain the F/B information by communicating over MAPI to the mailbox server and then send it back to the source CAS server.  

3. If the target mailbox is in the same AD site:

a. Then the CAS server will communicate to the mailbox server (via MAPI) and obtain the F/B information. 

4. The source CAS server will then provide the data back to the Outlook 2007 / Outlook Web Access 2007 client.

In addition, the Availability Web Service enables the user to share their calendar information in more granular ways. For each target person/group, the user can choose one of four levels of sharing:

  1. Share nothing
  2. Share their Free-Busy information
  3. Share a little more detail including subject, location and timing
  4. Full calendar details.

The Availability Service & Cross-Forest Topologies 

In previous generations of Exchange, allowing free/busy access between Exchange organizations was an arduous process involving a directory synchronization process and the use of an Exchange Support Tool, Inter-organization Replication Tool (IORepl). IORepl is a MAPI-based application that allows for the replication of public folder data between two organizations. For more information on IORepl and its intricacies, please see http://www.microsoft.com/downloads/info.aspx?na=22&p=2&SrcDisplayLang=en&SrcCategoryId=&SrcFamilyId=&u=%2fdownloads%2fdetails.aspx%3fFamilyID%3de7a951d7-1559-4f8f-b400-488b0c52430e%26DisplayLang%3den.

With Exchange 2007, organizations can use the Availability Service to provide access to free/busy data without the need of data synchronization tool (however, you still need to have directory synchronization for address list related lookups).

Cross-forest availability can be used across trusted or untrusted forests. The granularity of free/busy information is determined by whether cross-forest free/busy has been configured as per-user or organization wide service.  Per-user free/busy is possible only in a trusted cross-forest topology and makes it possible for the availability service to make cross-forest requests on behalf of a particular user. This makes it possible for a user in a remote forest to grant detailed free/busy information to a cross-forest user.

However, with organization wide free/busy, the availability service can make cross-forest requests only on behalf of a particular organization.  With organization wide free/busy, a user’s default free/busy information is returned and it is not possible to control the granularity of free/busy information returned to users in the other forest.

So does this mean I can have multiple forests, not implement trusts, and not use IORepl and still get free/busy data? To answer that, let’s look at two scenarios:

  1. Source and Target forests are using Exchange 2007
  2. Source Forest is Exchange 2007 and Target forest is Exchange 2003

For #1, you could do this either via a trust or no trust.  When you have a trust you can do per-user lookups which can restrict the type of data returned (e.g. if target mailbox restricted F/B access for source mailbox, then restricted data is returned).  If there isn’t a trust, you define an account that can retrieve the data; the data returned is the default F/B data and doesn’t provide any granularity in terms of permission access).

For #2, you need to configure IORepl to replicate the data to the Exchange 2007 forest public folder hierarchy.  You then configure the availability service to retrieve the target organization’s data from the public store.

All of this really assumes the clients are utilizing Outlook 2007 or OWA 2007 as they are the only clients that can utilize the Availability service.  If the users are not going to be using Outlook 2007 then you’d be better off using IORepl. 

- Ross Smith IV

Comments (13)
  1. mike says:

    Awesome blog entry…. Can you expand on option #1? How do 2 orgs exchange free-busy using the exchange 2007 availability service?

  2. Hi Mike,

    Glad you liked the blog. Good question.

    So to allow for availability lookups between two Exchange 2007 organizations, you need two things:

    1.  Representation of the objects in the directory.

    2.  Add an availability space for the target SMTP domain.  You do this by using the Add-AvailabilityAddressSpace task.  You can find more information in the Online help about that task, along with examples.

    Once we have this information here’s what happens:

    1.  User performs a F/B lookup for a user that is not in the same organization.

    2.  Availability Service finds the availability space for that SMTP domain space.

    3.  Availability services talks to the target domain’s AutoDiscover service to determine the Availability Service URL responsible for the target mailbox.

    4.  Either source user’s credentials are used (trust scenario) or a service account’s credentials are used (non-trust scenario) to perform the F/B lookup.


  3. mike says:

    Thanks man… going to try to simulate that in my lab. Keep these posts up!

  4. RDC1 says:

    deployment scenarios will have to carefully consider the placement of the CAS server role, 1-per site, but also the impact of any loading.  I would interesting in knowing any performance figs based on this role and the ratio of MBX servers to CAS server role…..overall I can see this service being a big win for customers over the current issues faced with free/busy. meeting requests and profile configuration

  5. GarryC says:

    Great Blog

    I have a question concerning an Outlook 2007/Echange 2007 setup. I’ve created a couple of clients in a lab with Outlook 2007 & Exchange 2007 but I cannot see the free/busy schedule for any user. Is there something that needs to be setup on the server side in order to have the information published?

  6. Is there any limit on the amount of free/busy data that will be fetched by the client?

    Will it fetch free/busy info for the next year, all calendar data or?

  7. Exchange says:


    I pinged Ashish Consul and his answer was:

    Availability Service will fetch data for up to 6 weeks (42 days).  It is possible for the client to request a different duration in the request(less than 6 weeks).  Outlook 2007 currently fetches information for 42 days.  A client written on top of GetUserAvailability web service can request a different time duration for free/busy information.

    The start and end time for the data can be any time in the future – so yes, you could fetch free/busy information using Availability Service for next year.

  8. Ronney says:

    I just wanted to know in in case of Exchange 2000/2003 the free busy information is located on store as well on local outlook 2003 clients so, its always published back from server in case of any loss. What about this situation in E2K7?

  9. Anonymous says:

     Outlook 2007 is the latest version of the e-mail client for accessing an Exchange mailbox. To make…

  10. Anonymous says:

    Microsoft Exchange Server 2007 has a new trick up its sleeve in combination with Microsoft Office Outlook

  11. Anonymous says:

    Development just gave me permission to document this. Exchange 2007 and Outlook 2007 introduce the concept

Comments are closed.

Skip to main content