Click here to Skip to main content
15,608,989 members
Articles / Productivity Apps and Services / Sharepoint
Posted 20 Jan 2014


9 bookmarked

Integrating SharePoint and Exchange for Conference Rooms Reservation Solution

Rate me:
Please Sign up or sign in to vote.
4.44/5 (6 votes)
20 Jan 2014CPOL5 min read
EastBanc Technologies successfully created an architecture that provides a scalable and flexible solution built on Microsoft technology stack using all the advantages of an integrated solution.


Recently, an enterprise client asked us to create a solution for reserving company conference rooms. The client is a technically savvy company with numerous offices throughout the country and 5-6 conference rooms at each location. The challenge was for employees who were constantly traveling from one office to another to be able to find a free conference room “on the fly”, that had the equipment and space they needed. This article will show you exactly how EastBanc Technologies successfully integrated existing Microsoft solutions to create a time saving solution for reserving conference rooms with confidence and ease from any device or computer.


The customer has an internal portal based on Microsoft SharePoint 2010 with 1500 daily users. The company also utilizes Microsoft Exchange. Microsoft Exchange already has features that allow booking different resources in the company through its Room Mailbox. Every conference room has its own email address that an employee can use for booking it, and others can see on the calendar what date and time the room is reserved for. Outlook 2010 also has a feature called Room Finder. You can read about Exchange Mailbox features in detail here:

Click here to learn more about Room Finder:

At first glance, everything seems easy to set up. However, there are some limitations. First, all users must have Outlook. Also, the description of the room is very minimal and doesn’t allow you to specify what the room is equipped with (projector, white board, conference call equipment, etc.).

Due to these limitations, the customer was looking for ways to create a system where every employee can see at a glance what rooms are available and what equipment is included without any extra steps.


The first step in creating this solution was to create 3 lists:
Departments, Conference Rooms, and Conference Room Reservations.

The Departments list consists of different branches in different cities.

Conference Rooms List contains rooms with their characteristics like:

  • Name
  • Branch
  • Capacity
  • Room equipment: projectors, white board, etc.
  • Email address used for MS Exchange integration.

And finally the list of Conference Room Reservations:

  • Room #
  • Meeting date
  • Meeting start time
  • Meeting end time
  • Name of a person who booked the room.

So now we have the lists. However, someone has to fill them in, so we grouped the users by their roles:

  • Employees can search for rooms (using different parameters), plan and book their meeting rooms.
  • Reservation Manager can reschedule or cancel existing meetings in his/her branch.
  • Administrator creates and edits meeting rooms and the room directory with features like number of seats, projector, whiteboard, etc. In addition, Administrator is able to switch between brunches and to act as Reservation Manager.


Our customer already had a user interface design applied to the portal, so our designers had little work to do:

1. User’s Home Page:

Image 1

Screenshot 1: User Interface.

2. A separate link takes you to the list of rooms that contains the basic information. Details about the room are displayed by clicking on the room name.

Image 2

Screenshot 2: Conference Rooms Equipment at a Glance.

3. The two-week calendar is available under the link "Search for Meeting Rooms” Each cell displays the date, who booked a room, and for what time.

Image 3

Screenshot 3: Calendar

4. You can click a “plus” sign to book a conference room:

Image 4

Screenshot 4: Conference Room Reservation


To make this happen, we had to write a WCF-service, which returns json and also works with SharePoint. This problem is solved with the appropriate web.config and with the presence of SVC in the folder ISAPI. There are many publications about how to properly configure web.config for sending json, for example like this:

Then we developed some ASPX-pages, added them to the module, and implemented all the logic of a WCF-service through JavaScript using Knockout framework.

The main challenge occurred in Exchange. Virtually, all of the required functionality is implemented through EWS Managed API (hyperlink to

However, when the new room was created in the Conference Rooms List, we needed mailboxes to be created automatically.

We found out that the mailbox can be created only through powershell, and it is not a problem to invoke the command from C# code.
It is possible to add an event receiver to the Conference Rooms List and invoke the powershell command on a remote server using Runspace and WSManConnectionInfo. However, this approach is not secure, therefore we decided to write one more WCF-service and deploy it to the Exchange server. This service has only one method:

Image 5

As it was mentioned above, the whole work logic is implemented through WCF-service, so it made sense to complement our service with methods for booking rooms from Exchange. We invoked the service method to create our room reservation in Exchange. All the necessary information was placed in Microsoft.Exchange.Data.Appointment, and then the meeting was created in the Exchange calendar through API.

Image 6

We decided to solve the problem of reverse synchronization (when an employee booked a room in his calendar via Outlook) via a timer job. This job collected all the information from Exchange and created the missing reservations and deleted canceled meetings.


EastBanc Technologies successfully created an architecture that provides a scalable and flexible solution built on Microsoft technology stack using all the advantages of an integrated solution. The system is customizable and is accompanied by standard platform tools.

As a result, today

  • The company management has a unified collaboration tool that increases the employees efficiency extending overall Intranet-portal capabilities and simplifying and optimizing administrative and organizational processes of the Customer.
  • Company’s employees can plan their work and key meetings faster, easier and more efficient than ever before.
  • IT staff has a flexible and scalable solution accompanied by a unified standard and uses "out of the box" functionality to it’s fullest. Therefore, the transition to the new version of SharePoint and Exchange will be smooth and flawless.


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Written By
United States United States
EastBanc Technologies is a platform agnostic, full-lifecycle software development company delivering flexible technology solutions. We are scientist, mathematicians and engineers working at the frontier of technology:

We create innovative technology solutions that increase efficiencies and maximize value by seamlessly integrating with your existing systems. Our modular approach allows for easy adaptation in a rapidly evolving environment, ultimately extending lifetime value and reducing costs.

Headquartered in Washington D.C., EastBanc Technologies has maintained an unbroken record of successful custom software architecture and development deployments since 1999. We are GSA approved and work across the commercial, enterprise, state, local, and federal government sectors.
This is a Organisation (No members)

Comments and Discussions

QuestionHelp Pin
Muhammad-Nauman-324-Oct-16 3:03
Muhammad-Nauman-324-Oct-16 3:03 
GeneralMy vote of 5 Pin
Alex Sorokoletov22-Jan-14 4:55
Alex Sorokoletov22-Jan-14 4:55 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.