EMS API Reference Guide

EMS API Reference Guide API Version 1.1.17 Dean Evans & Associates, Inc. EMS API Reference Guide Copyright Copyright  2012 Dean Evans & Associate...
Author: Dwight Glenn
85 downloads 1 Views 2MB Size
EMS API Reference Guide API Version 1.1.17

Dean Evans & Associates, Inc.

EMS API Reference Guide

Copyright Copyright  2012 Dean Evans & Associates, Inc. All rights reserved. No part of this document may be reproduced, transmitted or stored in a retrieval system in any form, electronic or mechanical, for purposes other than the personal use of the original purchaser except by written permission of Dean Evans & Associates, Inc. Dean Evans & Associates, Inc. 6465 Greenwood Plaza Boulevard Suite 600 Centennial, CO 80111 This document may be copied for use by individuals employed by the purchaser. Information in this document is subject to change without notice. EMS, the EMS logo and EMS Regics are registered trademarks of Dean Evans & Associates, Inc. Event Management Systems, EMS Enterprise, EMS Professional, EMS Lite, EMS Campus, EMS Workplace, EMS Legal, EMS District, EMS Master Calendar and Virtual EMS are trademarks of Dean Evans & Associates, Inc. Microsoft, Windows and Outlook are registered trademarks and SQL Server is a trademark of Microsoft Corporation. Lotus Notes and Domino are registered trademarks of IBM Corporation. Other products, brands and trademarks are property of their respective owners/companies.  2012 Dean Evans & Associates, Inc. 20 Aug 2012

CONFIDENTIAL

2

EMS API Reference Guide

EMS API Reference Guide INTRODUCTION .......................................................................................................................................................6 CUSTOMER SUPPORT.............................................................................................................................................6 EMS API REQUIREMENTS .....................................................................................................................................7 EMS API LICENSING ...............................................................................................................................................7 HARDWARE AND SOFTWARE REQUIREMENTS ............................................................................................7 OBTAINING THE EMS API WEB SERVICE INSTALLATION FILES ............................................................7 INSTALLING/UPGRADING THE DATABASE COMPONENT IN EMS WORKPLACE / CAMPUS / ENTERPRISE / LEGAL / DISTRICT ......................................................................................................................7 INSTALLING/UPGRADING THE DATABASE COMPONENT IN EMS PROFESSIONAL ..........................7 INSTALLING/UPGRADING THE EMS API WEB SERVICE .............................................................................8 CONFIGURING EMS FOR EMS API WEB SERVICE USE ................................................................................9 VERIFYING THE EMS API .....................................................................................................................................9 GETAPIVERSION .................................................................................................................................................... 10 GETBUILDINGS ...................................................................................................................................................... 10 GETAREAS ............................................................................................................................................................... 11 GETSTATUSES ........................................................................................................................................................ 12 GETEVENTTYPES .................................................................................................................................................. 12 GETSETUPTYPES ................................................................................................................................................... 13 GETGROUPTYPES ................................................................................................................................................. 14 GETGROUPS ............................................................................................................................................................ 14 GETWEBUSERS....................................................................................................................................................... 15 GETWEBTEMPLATES ........................................................................................................................................... 16 GETALLBOOKINGS ............................................................................................................................................... 16 GETBOOKINGS ....................................................................................................................................................... 18 GETHVACBOOKINGS ........................................................................................................................................... 21 GETALLROOMBOOKINGS .................................................................................................................................. 23

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

CONFIDENTIAL

3

EMS API Reference Guide

GETROOMBOOKINGS .......................................................................................................................................... 25 GETCOURSEBOOKINGS ...................................................................................................................................... 28 GETWEBUSERBOOKINGS ................................................................................................................................... 30 GETSERVICEORDERDETAILS ........................................................................................................................... 32 GETROOMDETAILS .............................................................................................................................................. 33 GETCOMBOROOMCOMPONENTS .................................................................................................................... 34 GETALLROOMS ..................................................................................................................................................... 35 GETALLCOMBOROOMCOMPONENTS ............................................................................................................ 36 GETROOMS.............................................................................................................................................................. 37 GETROOMSBYSETUPTYPE ................................................................................................................................. 38 GETROOMTYPESBYWPT .................................................................................................................................... 39 GETBOOKING ......................................................................................................................................................... 40 GETROOMAVAILABILITY .................................................................................................................................. 42 GETROOMSAVAILABLE ...................................................................................................................................... 42 GETROOMSAVAILABLE2 .................................................................................................................................... 43 GETGROUPDETAILS ............................................................................................................................................. 45 GETCONTACTDETAILS ....................................................................................................................................... 45 GETCHECKINSTATUS .......................................................................................................................................... 46 GETWEBUSERDETAILS ....................................................................................................................................... 47 GETWEBUSERWEBPROCESSTEMPLATES ..................................................................................................... 48 GETWEBSECURITYTEMPLATEROLES ........................................................................................................... 49 GETWEBPROCESSTEMPLATESETTINGS ....................................................................................................... 49 GETBUILDINGHOURS .......................................................................................................................................... 50 GETBUILDINGHOLIDAYS ................................................................................................................................... 52 GETWEBPROCESSTEMPLATECATEGORIES ................................................................................................ 52 GETWEBUSEROPTIONS ....................................................................................................................................... 53 GETRESERVATIONSOURCES ............................................................................................................................. 54 ADDRESERVATION (REQUIRES ADVANCED API OPTION) ....................................................................... 55  2012 Dean Evans & Associates, Inc. 20 Aug 2012

CONFIDENTIAL

4

EMS API Reference Guide

ADDRESERVATION2 (REQUIRES ADVANCED API OPTION) ..................................................................... 55 ADDRESERVATION3 (REQUIRES ADVANCED API OPTION) ..................................................................... 56 ADDWEBREQUEST(REQUIRES ADVANCED API OPTION) ......................................................................... 57 ADDGROUP (REQUIRES ADVANCED API OPTION) ..................................................................................... 58 ADDCONTACT (REQUIRES ADVANCED API OPTION) ................................................................................ 58 ADDWEBUSER (REQUIRES ADVANCED API OPTION) ................................................................................ 59 ADDPAYMENT (REQUIRES ADVANCED API OPTION) ................................................................................ 60 UPDATEBOOKING (REQUIRES ADVANCED API OPTION) ......................................................................... 60 UPDATEGROUP (REQUIRES ADVANCED API OPTION) .............................................................................. 61 UPDATECONTACT (REQUIRES ADVANCED API OPTION) ........................................................................ 62 UPDATEWEBUSER (REQUIRES ADVANCED API OPTION) ........................................................................ 63 UPDATECHECKINSTATUS (REQUIRES ADVANCED API OPTION) .......................................................... 63 UPDATEWEBUSEROPTIONS (REQUIRES ADVANCED API OPTION) ...................................................... 64 RELEASE NOTES .................................................................................................................................................... 65

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

CONFIDENTIAL

5

EMS API Reference Guide

Introduction This is the EMS API Reference Guide. This guide is intended for programmers that need detailed information about our web service based API. Use of this guide assumes you are familiar with the following:    

XML Web services Query or SOAP One or more programming languages

Note: If an offsite external third party integrator (i.e. outside of your network) requires access to the EMS API, the EMS API Web Service will need to be installed as a public facing website.

Customer Support Unlimited toll-free customer support is available to EMS users who have a current Annual Service Agreement (ASA). Please contact Customer Support if you have any questions or encounter any issues installing or configuring the EMS API. Email: Web: Phone: Fax:

[email protected] www.dea.com (800) 288-4565 (303) 796-7429

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

CONFIDENTIAL

6

EMS API Reference Guide

EMS API Requirements The latest version of EMS must be installed:      

EMS Workplace 5.2.1 or greater EMS Campus 2.2.1 or greater EMS Enterprise 5.2.1 or greater EMS Legal 5.2.1 or greater EMS District 6.0 or greater EMS Professional 11.1 or greater

EMS API Licensing The basic API which includes all of the calls to pull data (i.e. “get” calls) from the EMS database is included with your base product license. Calls to update or add reservations/bookings (i.e. “update” and “add” calls) require the advanced API option. If you are unsure whether or not your organization is licensed for the advanced API, or if you would like to learn more about it, please contact your Account Executive.

Hardware and Software Requirements The system requirements for the EMS API are similar to the Virtual EMS requirements. System requirements can be found on our website.

Obtaining the EMS API Web Service Installation Files Please contact your Professional Services Consultant or Customer Support to obtain the following components:  

EMS API (EMSAPI.msi) – Installation file EMSAPIScript_WebService.sql - SQL file required to create the necessary API objects within your EMS database.

Installing/Upgrading the Database Component in EMS Workplace / Campus / Enterprise / Legal / District 1. Obtain the EMSAPIScript_WebService.sql file. 2. Open Microsoft SQL Server Management Studio. 3. Within Microsoft SQL Server Management Studio, select File > Open > File… and locate EMSAPIScript_WebService.sql. 4. Select your EMS database and execute the query (Query > Execute). When query execution has completed, a ‘Command(s) completed successfully’ message will display in the Results section.

Installing/Upgrading the Database Component in EMS Professional Please contact your Professional Services Consultant or Customer Support.

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

CONFIDENTIAL

7

EMS API Reference Guide

Installing/Upgrading the EMS API Web Service Important: Before beginning the installation process, please do the following:  

Install or upgrade your EMS databases as outlined in the EMS Installation Instructions. Manually uninstall any previous versions of the EMS API Web Service on your web server.

1. 2. 3. 4.

Verify that the prerequisite software is installed. Download EMSAPI.msi onto the web server. Run EMSAPI.msi. The first screen welcomes you to the EMS API Web Service Setup Wizard. Click Next > to begin the installation process. The Select Installation Address screen will appear.

5. Select the Site, Virtual Directory and Application Pool. It is recommended that you keep the default settings. The installation process will create a Physical and Virtual directory on your web server named “EMSAPI” (or whatever value you entered in the Virtual Directory field.) Click Next > to begin the installation process. Note: The EMS API should not be installed in the same Virtual Directory as other EMS webbased products. 6. The Confirm Installation screen will appear. Click Next >. The EMS Settings screen will appear.

7. Enter your EMS SQL Server Name. 8. Enter your EMS Database:

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

CONFIDENTIAL

8

EMS API Reference Guide

 

EMS Professional customers – enter “EMSData” EMS Workplace, EMS Campus, EMS Enterprise, EMS Legal and EMS District customers - typically named “EMS”

9. Click OK. 10. The Installation Complete screen will appear. Click Close.

Configuring EMS for EMS API Web Service Use External applications require a pre-defined EMS User account to authenticate to the EMS API Web Service. The EMS User account should not be granted any rights within the EMS application itself. 1. 2. 3. 4.

Launch the EMS client application and login with a user that has EMS administrator-level access. Go to System Administration > Security > Users. Click the New button. The User screen will appear. Input the following information:  Name  User ID  Password 5. On the Processes screen, select the Special – EMS API Web Service Access process. Note: If the Special – EMS API Web Service Access process does not exist, please contact Customer Support. 6. Click the OK button. Note: In the Sample Code examples below, use the EMS account created in this section for the UserID and Password.

Verifying the EMS API 1. Open a browser and enter the following URL: http://[ServerName]/EMSAPI/Service.asmx (replace [ServerName] with the name of your web server) Your browser should return a list of API calls.

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

CONFIDENTIAL

9

EMS API Reference Guide

The EMS API version can be verified by going to the About page: http://[ServerName]/EMSAPI/About.aspx (replace [ServerName] with the name of your web server)

API Functions GetAPIVersion Description Returns API Version

Request Parameters – (none) Example Response 1.1.14.0

GetBuildings Description Returns a list of buildings

Request Parameters Name UserName Password

Description EMS User Name EMS User Password

Type String String

Response Elements Name Description BuildingCode ID TimeZoneDescription TimeZoneAbbreviation CurrentLocalTime

Description Building Description Building Code Building ID Time Zone Description Time Zone Abbreviation Current Local Time

Type String String Integer String String DateTime

Sample Code  2012 Dean Evans & Associates, Inc. 20 Aug 2012

CONFIDENTIAL 10

EMS API Reference Guide

Private Sub GetBuildings() Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New System.IO.StringReader(svc.GetBuildings(“UserID”, “Password”)) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response Denver 1 Mountain Time MT 2012-04-13T07:47:12.503 Mountain 2 Mountain Time MT 2012-04-13T07:47:12.503

GetAreas Description Returns a list of areas and associated buildings

Request Parameters Name UserName Password AreaID

Description EMS User Name EMS User Password Area ID (-1 = All Areas)

Type String String Integer

Response Elements Name ID AreaDescription AreaNotes BuildingID

Description AreaID Area Description Area Notes Building ID

Type Integer String String Integer

Sample Code Private Sub GetAreas() Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New System.IO.StringReader(svc.GetAreas(“UserID”, “Password”, 12)) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response 12 Midwest 1 12 Midwest 2

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

CONFIDENTIAL 11

EMS API Reference Guide



GetStatuses Description Returns a list of statuses

Request Parameters Name UserName Password

Description EMS User Name EMS User Password

Type String String

Response Elements Name Description ID StatusTypeID

Description Status Description Status ID Status Type: -14 = Booked Space, -11 = Info Only, -13 = Wait, -12 = Cancel Display On Web Flag

DisplayOnWeb

Type String Integer Integer Boolean

Sample Code Private Sub GetStatuses() Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New System.IO.StringReader(svc.GetStatuses(“UserID”, “Password”)) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response Confirmed 1 -14 true Info Only 2 -11 false

GetEventTypes Description Returns a list of event types

Request Parameters Name UserName Password

Description EMS User Name EMS User Password

Type String String

Response Elements Name Description ID DisplayOnWeb

Description Event Type Description Event Type ID Display On Web Flag

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

Type String Integer Boolean

CONFIDENTIAL 12

EMS API Reference Guide

Sample Code Private Sub GetEventTypes() Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New System.IO.StringReader(svc.GetEventTypes(“UserID”, “Password”)) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response (none) 0 true Meeting 2 true Inactive 3 true

GetSetupTypes Description Returns a list of event types

Request Parameters Name UserName Password

Description EMS User Name EMS User Password

Type String String

Response Elements Name Description ID

Description Setup Type Description Setup Type ID

Type String Integer

Sample Code Private Sub GetSetupTypes() Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New System.IO.StringReader(svc.GetSetupTypes(“UserID”, “Password”)) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response (none) 0 Circle 2 Banquet

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

CONFIDENTIAL 13

EMS API Reference Guide

3

GetGroupTypes Description Returns a list of group types

Request Parameters Name UserName Password

Description EMS User Name EMS User Password

Type String String

Response Elements Name Description ID AvailableOnWeb

Description Group Type Description Group Type ID Available On Web Flag

Type String Integer Boolean

Sample Code Private Sub GetGroupTypes() Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New System.IO.StringReader(svc.GetGroupTypes(“UserID”, “Password”)) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response (none) 0 true Big Wigs 1 false Managers 2 true

GetGroups Description Returns a list of groups

Request Parameters Name UserName Password GroupName EmailAddress

Description EMS User Name EMS User Password Group Name Filter Email Address Filter

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

Type String String String String

CONFIDENTIAL 14

EMS API Reference Guide

Response Elements Name GroupName EmailAddress ID

Description GroupName Email Address Group ID

Type String String Integer

Sample Code Private Sub GetGroups() Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New System.IO.StringReader(svc.GetGroups(“UserID”, “Password”, “XYZ Co”, “[email protected]”)) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response XYZ Company [email protected] 58

GetWebUsers Description Returns a list of web users

Request Parameters Name UserName Password WebUserName EmailAddress ExternalReference NetworkID

Description EMS User Name EMS User Password Web User Name Filter Email Address Filter External Reference Network ID

Type String String String String String String

Response Elements Name UserName EmailAddress ExternalReference NetworkID ID

Description UserName Email Address External Reference Network ID Web User ID

Type String String String String Integer

Sample Code Private Sub GetWebUsers() Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New System.IO.StringReader(svc.GetWebUsers(“UserID”, “Password”, “John”, “[email protected]”, “john123”, “john123”)) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response John Smith [email protected] john12345

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

CONFIDENTIAL 15

EMS API Reference Guide

john12345 58

GetWebTemplates Description Returns a list of web templates

Request Parameters Name UserName Password

Description EMS User Name EMS User Password

Type String String

Response Elements Name Description ID

Description Web Template Description Web Template ID

Type String Integer

Sample Code Private Sub GetWebTemplates() Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New System.IO.StringReader(svc.GetWebTemplates(“UserID”, “Password”)) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response Executive Template 0 Standard Template 1

GetAllBookings Description Returns a list of bookings for a specific building

Request Parameters Name UserName Password StartDate EndDate BuildingID ViewComboRoomComponents

Description EMS User Name EMS User Password Start Date End Date Building ID (-1= All Buildings) Option to see bookings in components of combo rooms if bookings are in combo rooms

Type String String DateTime DateTime Integer Boolean

Response Elements Name

Description

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

Type

CONFIDENTIAL 16

EMS API Reference Guide

BookingDate StartBookingDate RoomDescription TimeEventStart TimeEventEnd GroupName EventName SetupTypeDescription SetupCount ReservationID EventCoordinator GroupID VIP VIPEvent ClosedAllDay OpenTime CloseTime GroupTypeDescription EventTypeDescription Contact AltContact BookingID TimeBookingStart TimeBookingEnd GMTStartTime GMTEndTime TimeZone BuildingCode Building RoomCode Room RoomID BuildingID RoomTypeID RoomType HVACZone StatusID StatusTypeID EventTypeID GroupTypeID DateAdded AddedBy DateChanged ChangedBy

Date that booking is reserved to start on Date that booking event starts on Location Description Booking Event Start Time Booking Event End Time Group/Customer name Event Name Setup Type Description Setup Count Reservation ID Initials of Event Coordinator Group/Customer ID ‘VIP’ or empty string to signify a VIP event 0 or 1 to signify a VIP event 0 or 1 to signify if the Building is closed Time Building Opens Time Building Closes Group Type Description Event Type Description Contact Name Alternate Contact Name Booking ID Booking Reserved Start Time Booking Reserved End Time Booking Reserved GMT Start Time Booking Reserved GMT End Time Time Zone abbreviation Building Code Building Description Room Code Room Room ID Building ID Room Type ID Room Type Room HVAC Zone Status ID Status Type: -14 = Booked Space, -11 = Info Only, -13 = Wait, -12 = Cancel Event Type ID Group Type ID Date/Time Booking Added Booking Added By Date/Time Booking Changed Booking Changed By

DateTime DateTime String DateTime DateTime String String String Integer Integer String Integer String Boolean Boolean DateTime DateTime String String String String Integer DateTime DateTime DateTime DateTime String String String String String Integer Integer Integer String String Integer Integer Integer Integer DateTime String DateTime String

Sample Code Private Sub GetBookings() Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New StringReader(svc.GetAllBookings(“UserID”, “Password”, Date.Today, Date.Today, 1, False)) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response 2009-10-04T00:00:00 2009-10-04T00:00:00 DEN Room 101 2009-10-04T16:00:00 2009-10-04T17:00:00 ABC Company Spring Conference U - Shape

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

CONFIDENTIAL 17

EMS API Reference Guide

50 6650 499 false false 1900-01-01T00:00:00 1900-01-01T00:00:00 Corporate Conference Jim Smith 222008 2009-10-04T16:00:00 2009-10-04T17:00:00 2009-10-04T22:00:00 2009-10-04T23:00:00 MT DEN Denver RM101 Room 101 3271 1 1 Classroom 1 -14 4 3 2009-10-04T16:00:00 User 1 2009-10-04T16:00:00 User 1

GetBookings Description Returns a list of bookings based on filters provided

Request Parameters Name UserName Password StartDate EndDate Buildings Statuses EventTypes GroupTypes ViewComboRoomComponents

Description EMS User Name EMS User Password Start Date End Date List of Building IDs List of Status IDs List of Event Type IDs List of Group Type IDs Option to see bookings in components of combo rooms if bookings are in combo rooms

Type String String DateTime DateTime Array Of Integers Array Of Integers Array Of Integers Array Of Integers Boolean

Response Elements Name BookingDate StartBookingDate RoomDescription TimeEventStart

Description Date that booking is reserved to start on Date that booking event starts on Location Description Booking Event Start Time

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

Type DateTime DateTime String DateTime

CONFIDENTIAL 18

EMS API Reference Guide

TimeEventEnd GroupName EventName SetupTypeDescription SetupCount ReservationID EventCoordinator GroupID VIP VIPEvent ClosedAllDay OpenTime CloseTime GroupTypeDescription EventTypeDescription Contact AltContact BookingID BuildingID TimeBookingStart TimeBookingEnd GMTStartTime GMTEndTime TimeZone BuildingCode Building RoomCode Room RoomID BuildingID RoomTypeID RoomType HVACZone StatusID StatusTypeID EventTypeID GroupTypeID DateAdded AddedBy DateChanged ChangedBy

Booking Event End Time Group/Customer name Event Name Setup Type Description Setup Count Reservation ID Initials of Event Coordinator Group/Customer ID ‘VIP’ or empty string to signify a VIP event 0 or 1 to signify a VIP event 0 or 1 to signify if the Building is closed Time Building Opens Time Building Closes Group Type Description Event Type Description Contact Name Alternate Contact Name Booking ID Building ID Booking Reserved Start Time Booking Reserved End Time Booking Reserved GMT Start Time Booking Reserved GMT End Time Time Zone abbreviation Building Code Building Description Room Code Room Room ID Building ID Room Type ID Room Type Room HVAC Zone Status ID Status Type: -14 = Booked Space, -11 = Info Only, -13 = Wait, -12 = Cancel Event Type ID Group Type ID Date/Time Booking Added Booking Added By Date/Time Booking Changed Booking Changed By

DateTime String String String Integer Integer String Integer String Boolean Boolean DateTime DateTime String String String String Integer Integer DateTime DateTime DateTime DateTime String String String String String Integer Integer Integer String String Integer Integer Integer Integer DateTime String DateTime String

Sample Code Private Sub GetBookings() Dim dvwBuildings, dvwStatuses, dvwEventTypes, dvwGroupTypes As DataView Dim gintBuildings As New Generic.List(Of Int32) Dim gintStatuses As New Generic.List(Of Int32) Dim gintEventTypes As New Generic.List(Of Int32) Dim gintGroupTypes As New Generic.List(Of Int32) Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New StringReader(svc.GetBuildings(“UserID”, “Password”)) dvwBuildings = Me.GetData(objReader) objReader = New StringReader(svc.GetStatuses(“UserID”, “Password”)) dvwStatuses = Me.GetData(objReader) objReader = New StringReader(svc.GetEventTypes(“UserID”, “Password”)) dvwEventTypes = Me.GetData(objReader) objReader = New StringReader(svc.GetGroupTypes(“UserID”, “Password”)) dvwGroupTypes = Me.GetData(objReader) For Each drv As DataRowView In dvwBuildings gintBuildings.Add(drv("ID"))

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

CONFIDENTIAL 19

EMS API Reference Guide

Next For Each drv As DataRowView In dvwStatuses gintStatuses.Add(drv("ID")) Next For Each drv As DataRowView In dvwEventTypes gintEventTypes.Add(drv("ID")) Next For Each drv As DataRowView In dvwGroupTypes gintGroupTypes.Add(drv("ID")) Next Dim strBuildings As New EMSAPI.ArrayOfInt Dim strStatuses As New EMSAPI.ArrayOfInt Dim strEventTypes As New EMSAPI.ArrayOfInt Dim strGroupTypes As New EMSAPI.ArrayOfInt strBuildings.AddRange(gintBuildings.ToArray) strStatuses.AddRange(gintStatuses.ToArray) strEventTypes.AddRange(gintEventTypes.ToArray) strGroupTypes.AddRange(gintGroupTypes.ToArray) objReader = New StringReader(svc.GetBookings(“UserID”, “Password”, Date.Today, Date.Today, strBuildings, strStatuses, strEventTypes, strGroupTypes, False)) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response 2009-10-04T00:00:00 2009-10-04T00:00:00 DEN Room 101 2009-10-04T16:00:00 2009-10-04T17:00:00 ABC Company Spring Conference U - Shape 50 6650 499 false false 1900-01-01T00:00:00 1900-01-01T00:00:00 Corporate Conference Jim Smith 222008 2009-10-04T16:00:00 2009-10-04T17:00:00 2009-10-04T22:00:00 2009-10-04T23:00:00 MT DEN Denver RM101 Room 101 3271 1 1

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

CONFIDENTIAL 20

EMS API Reference Guide

Classroom 1 -14 4 3 2009-10-04T16:00:00 User 1 2009-10-04T16:00:00 User 1

GetHVACBookings Description Returns a list of bookings based on filters provided

Request Parameters Name UserName Password StartDate EndDate Buildings Statuses EventTypes GroupTypes HVACZones ViewComboRoomComponents

Description EMS User Name EMS User Password Start Date End Date List of Building IDs List of Status IDs List of Event Type IDs List of Group Type IDs List of HVAC Zones Option to see bookings in components of combo rooms if bookings are in combo rooms

Type String String DateTime DateTime Array Of Integers Array Of Integers Array Of Integers Array Of Integers Array Of Strings Boolean

Response Elements Name BookingDate StartBookingDate RoomDescription TimeEventStart TimeEventEnd GroupName EventName SetupTypeDescription SetupCount ReservationID EventCoordinator GroupID VIP VIPEvent ClosedAllDay OpenTime CloseTime GroupTypeDescription EventTypeDescription Contact AltContact BookingID BuildingID TimeBookingStart TimeBookingEnd GMTStartTime GMTEndTime TimeZone BuildingCode Building

Description Date that booking is reserved to start on Date that booking event starts on Location Description Booking Event Start Time Booking Event End Time Group/Customer name Event Name Setup Type Description Setup Count Reservation ID Initials of Event Coordinator Group/Customer ID ‘VIP’ or empty string to signify a VIP event 0 or 1 to signify a VIP event 0 or 1 to signify if the Building is closed Time Building Opens Time Building Closes Group Type Description Event Type Description Contact Name Alternate Contact Name Booking ID Building ID Booking Reserved Start Time Booking Reserved End Time Booking Reserved GMT Start Time Booking Reserved GMT End Time Time Zone abbreviation Building Code Building Description

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

Type DateTime DateTime String DateTime DateTime String String String Integer Integer String Integer String Boolean Boolean DateTime DateTime String String String String Integer Integer DateTime DateTime DateTime DateTime String String String

CONFIDENTIAL 21

EMS API Reference Guide

RoomCode Room RoomID BuildingID RoomTypeID RoomType HVACZone StatusID StatusTypeID EventTypeID GroupTypeID DateAdded AddedBy DateChanged ChangedBy

Room Code Room Room ID Building ID Room Type ID Room Type Room HVAC Zone Status ID Status Type: -14 = Booked Space, -11 = Info Only, -13 = Wait, -12 = Cancel Event Type ID Group Type ID Date/Time Booking Added Booking Added By Date/Time Booking Changed Booking Changed By

String String Integer Integer Integer String String Integer Integer Integer Integer DateTime String DateTime String

Sample Code Private Sub GetBookings() Dim dvwBuildings, dvwStatuses, dvwEventTypes, dvwGroupTypes As DataView Dim gintBuildings As New Generic.List(Of Int32) Dim gintStatuses As New Generic.List(Of Int32) Dim gintEventTypes As New Generic.List(Of Int32) Dim gintGroupTypes As New Generic.List(Of Int32) Dim gintHVACZones As New Generic.List(Of String) Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New StringReader(svc.GetBuildings(“UserID”, “Password”)) dvwBuildings = Me.GetData(objReader) objReader = New StringReader(svc.GetStatuses(“UserID”, “Password”)) dvwStatuses = Me.GetData(objReader) objReader = New StringReader(svc.GetEventTypes(“UserID”, “Password”)) dvwEventTypes = Me.GetData(objReader) objReader = New StringReader(svc.GetGroupTypes(“UserID”, “Password”)) dvwGroupTypes = Me.GetData(objReader) For Each drv As DataRowView In dvwBuildings gintBuildings.Add(drv("ID")) Next For Each drv As DataRowView In dvwStatuses gintStatuses.Add(drv("ID")) Next For Each drv As DataRowView In dvwEventTypes gintEventTypes.Add(drv("ID")) Next For Each drv As DataRowView In dvwGroupTypes gintGroupTypes.Add(drv("ID")) Next gintHVACZones.Add(1) Dim strBuildings As New EMSAPI.ArrayOfInt Dim strStatuses As New EMSAPI.ArrayOfInt Dim strEventTypes As New EMSAPI.ArrayOfInt Dim strGroupTypes As New EMSAPI.ArrayOfInt Dim strHVACZones As New EMSAPI.ArrayOfString strBuildings.AddRange(gintBuildings.ToArray) strStatuses.AddRange(gintStatuses.ToArray) strEventTypes.AddRange(gintEventTypes.ToArray) strGroupTypes.AddRange(gintGroupTypes.ToArray) strHVACZones.AddRange(gintHVACZones.ToArray)

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

CONFIDENTIAL 22

EMS API Reference Guide

objReader = New StringReader(svc.GetBookings(“UserID”, “Password”, Date.Today, Date.Today, strBuildings, strStatuses, strEventTypes, strGroupTypes, strHVACZones, False)) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response 2009-10-04T00:00:00 2009-10-04T00:00:00 DEN Room 101 2009-10-04T16:00:00 2009-10-04T17:00:00 ABC Company Spring Conference U - Shape 50 6650 499 false false 1900-01-01T00:00:00 1900-01-01T00:00:00 Corporate Conference Jim Smith 222008 2009-10-04T16:00:00 2009-10-04T17:00:00 2009-10-04T22:00:00 2009-10-04T23:00:00 MT DEN Denver RM101 Room 101 3271 1 1 Classroom 1 1 -14 4 3 2009-10-04T16:00:00 User 1 2009-10-04T16:00:00 User 1

GetAllRoomBookings Description Returns a list of bookings for a specific room

Request Parameters  2012 Dean Evans & Associates, Inc. 20 Aug 2012

CONFIDENTIAL 23

EMS API Reference Guide

Name UserName Password StartDate EndDate RoomID ViewComboRoomComponents

Description EMS User Name EMS User Password Start Date End Date Room ID Option to see bookings in components of combo rooms if bookings are in combo rooms

Type String String DateTime DateTime Integer Boolean

Response Elements Name BookingDate StartBookingDate RoomDescription TimeEventStart TimeEventEnd GroupName EventName SetupTypeDescription SetupCount ReservationID EventCoordinator GroupID VIP VIPEvent ClosedAllDay OpenTime CloseTime GroupTypeDescription EventTypeDescription Contact AltContact BookingID BuildingID TimeBookingStart TimeBookingEnd GMTStartTime GMTEndTime TimeZone BuildingCode Building RoomCode Room RoomID BuildingID StatusID StatusTypeID EventTypeID GroupTypeID RoomTypeID RoomType DateAdded AddedBy DateChanged ChangedBy

Description Date that booking is reserved to start on Date that booking event starts on Location Description Booking Event Start Time Booking Event End Time Group/Customer name Event Name Setup Type Description Setup Count Reservation ID Initials of Event Coordinator Group/Customer ID ‘VIP’ or empty string to signify a VIP event 0 or 1 to signify a VIP event 0 or 1 to signify if the Building is closed Time Building Opens Time Building Closes Group Type Description Event Type Description Contact Name Alternate Contact Name Booking ID Building ID Booking Reserved Start Time Booking Reserved End Time Booking Reserved GMT Start Time Booking Reserved GMT End Time Time Zone abbreviation Building Code Building Description Room Code Room Room ID Building ID Status ID Status Type: -14 = Booked Space, -11 = Info Only, -13 = Wait, -12 = Cancel Event Type ID Group Type ID Room Type ID Room Type Date/Time Booking Added Booking Added By Date/Time Booking Changed Booking Changed By

Type DateTime DateTime String DateTime DateTime String String String Integer Integer String Integer String Boolean Boolean DateTime DateTime String String String String Integer Integer DateTime DateTime DateTime DateTime String String String String String Integer Integer Integer Integer Integer Integer Integer String DateTime String DateTime String

Sample Code Private Sub GetBookings() Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New StringReader(svc.GetAllRoomBookings(“UserID”, “Password”, Date.Today, Date.Today, 3271, False)) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

CONFIDENTIAL 24

EMS API Reference Guide

Example Response 2009-10-04T00:00:00 2009-10-04T00:00:00 DEN Room 101 2009-10-04T16:00:00 2009-10-04T17:00:00 ABC Company Spring Conference U - Shape 50 6650 499 false false 1900-01-01T00:00:00 1900-01-01T00:00:00 Corporate Conference Jim Smith 222008 2009-10-04T16:00:00 2009-10-04T17:00:00 2009-10-04T22:00:00 2009-10-04T23:00:00 MT DEN Denver RM101 Room 101 3271 1 1 -14 4 3 1 Classroom 2009-10-04T16:00:00 User 1 2009-10-04T16:00:00 User 1

GetRoomBookings Description Returns a list of bookings for a specific room based on filters provided

Request Parameters Name UserName Password StartDate EndDate RoomID Statuses EventTypes

Description EMS User Name EMS User Password Start Date End Date Room ID List of Status IDs List of Event Type IDs

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

Type String String DateTime DateTime Integer Array Of Integers Array Of Integers

CONFIDENTIAL 25

EMS API Reference Guide

GroupTypes ViewComboRoomComponents

List of Group Type IDs Option to see bookings in components of combo rooms if bookings are in combo rooms

Array Of Integers Boolean

Response Elements Name BookingDate StartBookingDate RoomDescription TimeEventStart TimeEventEnd GroupName EventName SetupTypeDescription SetupCount ReservationID EventCoordinator GroupID VIP VIPEvent ClosedAllDay OpenTime CloseTime GroupTypeDescription EventTypeDescription Contact AltContact BookingID BuildingID TimeBookingStart TimeBookingEnd GMTStartTime GMTEndTime TimeZone BuildingCode Building RoomCode Room RoomID BuildingID StatusID StatusTypeID EventTypeID GroupTypeID RoomTypeID RoomType DateAdded AddedBy DateChanged ChangedBy

Description Date that booking is reserved to start on Date that booking event starts on Location Description Booking Event Start Time Booking Event End Time Group/Customer name Event Name Setup Type Description Setup Count Reservation ID Initials of Event Coordinator Group/Customer ID ‘VIP’ or empty string to signify a VIP event 0 or 1 to signify a VIP event 0 or 1 to signify if the Building is closed Time Building Opens Time Building Closes Group Type Description Event Type Description Contact Name Alternate Contact Name Booking ID Building ID Booking Reserved Start Time Booking Reserved End Time Booking Reserved GMT Start Time Booking Reserved GMT End Time Time Zone abbreviation Building Code Building Description Room Code Room Room ID Building ID Status ID Status Type: -14 = Booked Space, -11 = Info Only, -13 = Wait, -12 = Cancel Event Type ID Group Type ID Room Type ID Room Type Date/Time Booking Added Booking Added By Date/Time Booking Changed Booking Changed By

Type DateTime DateTime String DateTime DateTime String String String Integer Integer String Integer String Boolean Boolean DateTime DateTime String String String String Integer Integer DateTime DateTime DateTime DateTime String String String String String Integer Integer Integer Integer Integer Integer Integer String DateTime String DateTime String

Sample Code Private Sub GetBookings() Dim dvwStatuses, dvwEventTypes, dvwGroupTypes As DataView Dim gintStatuses As New Generic.List(Of Int32) Dim gintEventTypes As New Generic.List(Of Int32) Dim gintGroupTypes As New Generic.List(Of Int32) Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New StringReader(svc.GetStatuses(“UserID”, “Password”)) dvwStatuses = Me.GetData(objReader) objReader = New StringReader(svc.GetEventTypes(“UserID”, “Password”)) dvwEventTypes = Me.GetData(objReader)

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

CONFIDENTIAL 26

EMS API Reference Guide

objReader = New StringReader(svc.GetGroupTypes(“UserID”, “Password”)) dvwGroupTypes = Me.GetData(objReader) For Each drv As DataRowView In dvwStatuses gintStatuses.Add(drv("ID")) Next For Each drv As DataRowView In dvwEventTypes gintEventTypes.Add(drv("ID")) Next For Each drv As DataRowView In dvwGroupTypes gintGroupTypes.Add(drv("ID")) Next Dim strStatuses As New EMSAPI.ArrayOfInt Dim strEventTypes As New EMSAPI.ArrayOfInt Dim strGroupTypes As New EMSAPI.ArrayOfInt strStatuses.AddRange(gintStatuses.ToArray) strEventTypes.AddRange(gintEventTypes.ToArray) strGroupTypes.AddRange(gintGroupTypes.ToArray) objReader = New StringReader(svc.GetRoomBookings(“UserID”, “Password”, Date.Today, Date.Today, 3271, strStatuses, strEventTypes, strGroupTypes, False)) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response 2009-10-04T00:00:00 2009-10-04T00:00:00 DEN Room 101 2009-10-04T16:00:00 2009-10-04T17:00:00 ABC Company Spring Conference U - Shape 50 6650 499 false false 1900-01-01T00:00:00 1900-01-01T00:00:00 Corporate Conference Jim Smith 222008 2009-10-04T16:00:00 2009-10-04T17:00:00 2009-10-04T22:00:00 2009-10-04T23:00:00 MT DEN Denver RM101 Room 101 3271 1 1 -14

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

CONFIDENTIAL 27

EMS API Reference Guide

4 3 1 Classroom 2009-10-04T16:00:00 User 1 2009-10-04T16:00:00 User 1

GetCourseBookings Description Returns a list of bookings tied to courses based on filters provided

Request Parameters Name UserName Password StartDate EndDate Buildings Statuses EventTypes ViewComboRoomComponents

Description EMS User Name EMS User Password Start Date End Date List of Building IDs List of Status IDs List of Event Type IDs Option to see bookings in components of combo rooms if bookings are in combo rooms

Type String String DateTime DateTime Array Of Integers Array Of Integers Array Of Integers Boolean

Response Elements Name BookingDate StartBookingDate RoomDescription TimeEventStart TimeEventEnd GroupName EventName ReservationID GroupID GroupTypeDescription EventTypeDescription Contact AltContact BookingID TimeBookingStart TimeBookingEnd GMTStartTime GMTEndTime TimeZone BuildingCode Building RoomCode Room RoomID BuildingID StatusID StatusTypeID EventTypeID GroupTypeID RoomTypeID RoomType DateAdded TermCode

Description Date that booking is reserved to start on Date that booking event starts on Location Description Booking Event Start Time Booking Event End Time Group/Customer name Event Name Reservation ID Group/Customer ID Group Type Description Event Type Description Contact Name Alternate Contact Name Booking ID Booking Reserved Start Time Booking Reserved End Time Booking Reserved GMT Start Time Booking Reserved GMT End Time Time Zone abbreviation Building Code Building Description Room Code Room Room ID Building ID Status ID Status Type: -14 = Booked Space, -11 = Info Only, -13 = Wait, -12 = Cancel Event Type ID Group Type ID Room Type ID Room Type Date/Time Booking Added Term Code

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

Type DateTime DateTime String DateTime DateTime String String Integer Integer String String String String Integer DateTime DateTime DateTime DateTime String String String String String Integer Integer Integer Integer Integer Integer Integer String DateTime String

CONFIDENTIAL 28

EMS API Reference Guide

CRN SubjectCode Course Section CourseTitle DateAdded AddedBy DateChanged ChangedBy

Course CRN Subject Code Course Section Course Title Date/Time Booking Added Booking Added By Date/Time Booking Changed Booking Changed By

String String String String String DateTime String DateTime String

Sample Code Private Sub GetBookings() Dim dvwBuildings, dvwStatuses, dvwEventTypes As DataView Dim gintBuildings As New Generic.List(Of Int32) Dim gintStatuses As New Generic.List(Of Int32) Dim gintEventTypes As New Generic.List(Of Int32) Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New StringReader(svc.GetBuildings(“UserID”, “Password”)) dvwBuildings = Me.GetData(objReader) objReader = New StringReader(svc.GetStatuses(“UserID”, “Password”)) dvwStatuses = Me.GetData(objReader) objReader = New StringReader(svc.GetEventTypes(“UserID”, “Password”)) dvwEventTypes = Me.GetData(objReader) For Each drv As DataRowView In dvwBuildings gintBuildings.Add(drv("ID")) Next For Each drv As DataRowView In dvwStatuses gintStatuses.Add(drv("ID")) Next For Each drv As DataRowView In dvwEventTypes gintEventTypes.Add(drv("ID")) Next Dim strBuildings As New EMSAPI.ArrayOfInt Dim strStatuses As New EMSAPI.ArrayOfInt Dim strEventTypes As New EMSAPI.ArrayOfInt strBuildings.AddRange(gintBuildings.ToArray) strStatuses.AddRange(gintStatuses.ToArray) strEventTypes.AddRange(gintEventTypes.ToArray) objReader = New StringReader(svc.GetCourseBookings(“UserID”, “Password”, Date.Today, Date.Today, strBuildings, strStatuses, strEventTypes, False)) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response 2009-10-04T00:00:00 2009-10-04T00:00:00 DEN Room 101 2009-10-04T16:00:00 2009-10-04T17:00:00 ABC Company Spring Conference 6650 499 Corporate

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

CONFIDENTIAL 29

EMS API Reference Guide

Conference Jim Smith 222008 2009-10-04T16:00:00 2009-10-04T17:00:00 2009-10-04T22:00:00 2009-10-04T23:00:00 MT DEN Denver RM101 Room 101 3271 1 1 -14 4 3 1 Classroom Fall 2012 10101 ACCT 101 01 Accounting Course 2009-10-04T16:00:00 User 1 2009-10-04T16:00:00 User 1

GetWebUserBookings Description Returns a list of bookings for a web user based on filters provided

Request Parameters Name UserName Password StartDate EndDate WebUserID ViewComboRoomComponents

Description EMS User Name EMS User Password Start Date End Date Web User ID Option to see bookings in components of combo rooms if bookings are in combo rooms

Type String String DateTime DateTime Integer Boolean

Response Elements Name ReservationID BookingID BookingDate StartBookingDate TimeEventStart TimeEventEnd GMTEventStart GMTEventEnd TimeBookingStart TimeBookingEnd GMTBookingStart GMTBookingEnd EventName BuildingID

Description Reservation ID Booking ID Date that booking is reserved to start on Date that booking event starts on Booking Event Start Time Booking Event End Time Booking GMT Event Start Time Booking GMT Event End Time Booking Reserved Start Time Booking Reserved End Time Booking GMT Reserved Start Time Booking GMT Reserved End Time Event Name Building ID

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

Type Integer Integer DateTime DateTime DateTime DateTime DateTime DateTime DateTime DateTime DateTime DateTime String Integer

CONFIDENTIAL 30

EMS API Reference Guide

BuildingCode Building TimeZoneID TimeZone RoomID RoomCode RoomDescription RoomTypeID RoomType StatusID StatusTypeID StatusDescription EventTypeID Even tTypeDescription SetupTypeID SetupTypeDescription SetupCount GroupID GroupName GroupTypeID GroupTypeDescription Contact1ID Contact1Name Contact2ID Contact2Name WebProcessTemplateID RecordTypeID

Building Code Building Description Time Zone ID Time Zone abbreviation Room ID Room Code Location Description Room Type ID Room Type Status ID Status Type: -14 = Booked Space, -11 = Info Only, -13 = Wait, -12 = Cancel Status Description Event Type ID Event Type Description Setup Type ID Setup Type Description Setup Count Group/Customer ID Group/Customer name Group Type ID Group Type Description First Contact ID First Contact Name Second Contact ID Second Contact Name Web Process Template ID Record Type: 1=Reserve, 2=Request

String String Integer String Integer String String Integer String Integer Integer String Integer String Integer String Integer Integer String Integer String Integer String Integer String Integer Integer

Sample Code Private Sub GetWebUserBookings() objReader = New StringReader(svc.GetWebUserBookings(“UserID”, “Password”, Date.Today, Date.Today, 12, False)) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response 6650 222008 2009-10-04T00:00:00 2009-10-04T00:00:00 2009-10-04T16:00:00 2009-10-04T17:00:00 2009-10-04T22:00:00 2009-10-04T23:00:00 2009-10-04T16:00:00 2009-10-04T17:00:00 2009-10-04T22:00:00 2009-10-04T23:00:00 Spring Conference 1 DEN Denver 68 MT 3271 RM101 Room 101 1 Classroom 1 -14 Confirmed 4

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

CONFIDENTIAL 31

EMS API Reference Guide

Conference 1 U - Shape 50 499 ABC Company 3 Corporate 53 Jim Smith -1 2 1

GetServiceOrderDetails Description Returns a list of service order details based on filters provided

Request Parameters Name UserName Password StartDate EndDate Buildings Statuses

Description EMS User Name EMS User Password Start Date End Date List of Building IDs List of Status IDs

Type String String DateTime DateTime Array Of Integers Array Of Integers

Response Elements Name BookingDate ServiceOrderStartTime ServiceOrderEndTime ResourceDescription ResourceExternalReference ResourceQuantity

Description Date that booking is reserved to start on Service Order Start Time Service Order End Time Resource Description Resource External Reference Resource Quantity In Use

Type DateTime DateTime DateTime String String Decimal

Sample Code Private Sub GetServiceOrderDetails() Dim dvwBuildings, dvwStatuses As DataView Dim gintBuildings As New Generic.List(Of Int32) Dim gintStatuses As New Generic.List(Of Int32) Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New StringReader(svc.GetBuildings(“UserID”, “Password”)) dvwBuildings = Me.GetData(objReader) objReader = New StringReader(svc.GetStatuses(“UserID”, “Password”)) dvwStatuses = Me.GetData(objReader) For Each drv As DataRowView In dvwBuildings gintBuildings.Add(drv("ID")) Next For Each drv As DataRowView In dvwStatuses gintStatuses.Add(drv("ID")) Next Dim strBuildings As New EMSAPI.ArrayOfInt Dim strStatuses As New EMSAPI.ArrayOfInt

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

CONFIDENTIAL 32

EMS API Reference Guide

strBuildings.AddRange(gintBuildings.ToArray) strStatuses.AddRange(gintStatuses.ToArray) objReader = New StringReader(svc.GetServiceOrderDetails(“UserID”, “Password”, Date.Today, Date.Today, strBuildings, strStatuses)) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response 2012-07-05T00:00:00 1900-01-01T08:00:00 1900-01-01T09:00:00 Projector ABC123 1 2012-07-05T00:00:00 1900-01-01T08:00:00 1900-01-01T09:00:00 Whiteboard XYZ456 1

GetRoomDetails Description Returns details for a specific room

Request Parameters Name UserName Password RoomID

Description EMS User Name EMS User Password Room ID

Type String String Integer

Response Elements Name Room Description Building Floor Type Classification Phone Notes RoomSize SetupHours TeardownHours HVACZone URL DisplayOnWeb

Description Room Code Room Description Building Floor Description Room Type Room Classification Room Phone Room Notes Room Size Room Setup Hours Room Teardown Hours Room HVAC Zone Room URL Display On Web

Type String String String String String String String String Integer Decimal Decimal String String Boolean

Sample Code Private Sub GetRoomDetails() Dim svc As New EMSAPI.ServiceSoapClient

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

CONFIDENTIAL 33

EMS API Reference Guide

Dim objReader As New System.IO.StringReader(svc.GetRoomDetails(“UserID”, “Password”, 3271)) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response RM 101 Room 101 Denver 1st Floor Meeting Room Standard x123 20 0 0 1

GetComboRoomComponents Description Returns component room details for a specific combo room

Request Parameters Name UserName Password RoomID

Description EMS User Name EMS User Password Room ID

Type String String Integer

Response Elements Name Room Description Building Floor Type Classification Phone Notes RoomSize SetupHours TeardownHours HVACZone URL

Description Room Code Room Description Building Floor Description Room Type Room Classification Room Phone Room Notes Room Size Room Setup Hours Room Teardown Hours Room HVAC Zone Room URL

Type String String String String String String String String Integer Decimal Decimal String String

Sample Code Private Sub GetComboRoomComponents() Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New System.IO.StringReader(svc.GetComboRoomComponents(“UserID”, “Password”, 3272)) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

CONFIDENTIAL 34

EMS API Reference Guide

RM 102 Room 102 Denver 1st Floor Meeting Room Standard x456 10 0 0

GetAllRooms Description Returns list of rooms

Request Parameters Name UserName Password BuildingID

Description EMS User Name EMS User Password Building ID (-1= All Buildings)

Type String String Integer

Response Elements Name Room Description Building Floor Type Classification Phone Notes RoomSize SetupHours TeardownHours HVACZone URL Active BuildingID ID ExternalReference DisplayOnWeb

Description Room Code Room Description Building Floor Description Room Type Room Classification Room Phone Room Notes Room Size Room Setup Hours Room Teardown Hours Room HVAC Zone Room URL Room Active Building ID Room ID Room External Reference Room Display On Web

Type String String String String String String String String Integer Decimal Decimal String String Boolean Integer Integer String Boolean

Sample Code Private Sub GetRooms() Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New System.IO.StringReader(svc.GetAllRooms(“UserID”, “Password”, 1)) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response RM 101 Room 101 Denver 1st Floor Meeting Room

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

CONFIDENTIAL 35

EMS API Reference Guide

Standard x123 20 0 0 1 1 3271 1

GetAllComboRoomComponents Description Returns component room details for a specific combo room

Request Parameters Name UserName Password

Description EMS User Name EMS User Password

Type String String

Response Elements Name ParentRoom ParentDescription ParentBuilding ParentID ComponentRoom ComponentDescription ComponentBuilding ComponentID

Description Parent Room Code Parent Room Description Parent Building Parent Room ID Component Room Code Component Room Description Component Building Component Room ID

Type String String String Integer String String String Integer

Sample Code Private Sub GetAllComboRoomComponents() Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New System.IO.StringReader(svc.GetAllComboRoomComponents(“UserID”, “Password”)) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response RM 101 Room 101 Denver 3271 Room 102 Room 102 Denver 3272 RM 101 Room 101 Denver 3273 Room 103 Room 103 Denver 3273

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

CONFIDENTIAL 36

EMS API Reference Guide



GetRooms Description Returns list of rooms for multiple buildings

Request Parameters Name UserName Password Buildings

Description EMS User Name EMS User Password List of Building IDs

Type String String Array Of Integers

Response Elements Name Room Description Building Floor Type Classification Phone Notes RoomSize SetupHours TeardownHours HVACZone URL Active BuildingID ID ExternalReference DisplayOnWeb

Description Room Code Room Description Building Floor Description Room Type Room Classification Room Phone Room Notes Room Size Room Setup Hours Room Teardown Hours Room HVAC Zone Room URL Room Active Building ID Room ID Room External Reference Room Display On Web

Type String String String String String String String String Integer Decimal Decimal String String Boolean Integer Integer String Boolean

Sample Code Private Sub GetRooms() Dim dvwBuildings As DataView Dim gintBuildings As New Generic.List(Of Int32) Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New StringReader(svc.GetBuildings(“UserID”, “Password”)) dvwBuildings = Me.GetData(objReader) For Each drv As DataRowView In dvwBuildings gintBuildings.Add(drv("ID")) Next Dim strBuildings As New EMSAPI.ArrayOfInt strBuildings.AddRange(gintBuildings.ToArray) objReader = New System.IO.StringReader(svc.GetRooms(“UserID”, “Password”, strBuildings)) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response RM 101 Room 101 Denver

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

CONFIDENTIAL 37

EMS API Reference Guide

1st Floor Meeting Room Standard x123 20 0 0 1 1 3271 1

GetRoomsBySetupType Description Returns a list of rooms by setup type and capacity

Request Parameters Name UserName Password BuildingID RoomTypeID FloorID SetupTypeID

Description EMS User Name EMS User Password Building ID (-1 = All Buildings) Room Type ID (-1 = All Room Types) Floor ID (-1 = All Floors) Setup Type ID

Type String String Integer Integer Integer Integer

Response Elements Name RoomID RoomCode RoomDescription BuildingID BuildingDescription RoomTypeID RoomTypeDescription FloorID FloorDescription SetupCount

Description Room ID Room Code Room Description Building ID Building Description Room Type ID Room Type Description Floor ID Floor Description Setup Count

Type Integer String String Integer String Integer String Integer String Integer

Sample Code Private Sub GetRoomsBySetupType() Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New System.IO.StringReader(svc.GetRoomsBySetupType(“UserID”, “Password”, 1, -1, -1, 10)) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response 3271 RM 101 Room 101 1 Denver 12 Meeting Room 1 1st Floor 20

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

CONFIDENTIAL 38

EMS API Reference Guide

3272 RM 102 Room 102 1 Denver 12 Meeting Room 1 1st Floor 20

GetRoomTypesByWPT Description Returns list of rooms for multiple web process templates and multiple buildings

Request Parameters Name UserName Password WebProcessTemplates Buildings

Description EMS User Name EMS User Password List of Web Process Template IDs (-1 = All) List of Building IDs (-1 = All)

Type String String Array Of Integers Array Of Integers

Response Elements Name Type RoomTypeID FloorID FloorDescription BuildingID

Description Room Type Description Room Type ID Floor ID Floor Description Building ID

Type String Integer Integer String Integer

Sample Code Private Sub GetRoomTypesByWPT() Dim dvwBuildings As DataView Dim dvwTemplates As DataView Dim gintBuildings As New Generic.List(Of Int32) Dim gintTemplates As New Generic.List(Of Int32) Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New StringReader(svc.GetBuildings(“UserID”, “Password”)) dvwBuildings = Me.GetData(objReader) objReader = New StringReader(svc.GetWebTemplates(“UserID”, “Password”)) dvwTemplates= Me.GetData(objReader) For Each drv As DataRowView In dvwBuildings gintBuildings.Add(drv("ID")) Next For Each drv As DataRowView In dvwTemplates gintTemplates.Add(drv("ID")) Next

Dim strBuildings As New EMSAPI.ArrayOfInt Dim strTemplates As New EMSAPI.ArrayOfInt strBuildings.AddRange(gintBuildings.ToArray)

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

CONFIDENTIAL 39

EMS API Reference Guide

strTemplates.AddRange(gintTemplates.ToArray) objReader = New System.IO.StringReader(svc.GetRoomTypesByWPT(“UserID”, “Password”, strTemplates, strBuildings)) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response Meeting 1 1 1st Floor 1 Conference 2 1 1st Floor 1

GetBooking Description Returns booking information for a specific booking

Request Parameters Name UserName Password BookingID

Description EMS User Name EMS User Password Booking ID

Type String String Integer

Response Elements Name BookingDate StartBookingDate RoomDescription TimeEventStart TimeEventEnd GroupName EventName SetupTypeDescription SetupCount ReservationID EventCoordinator GroupID VIP VIPEvent ClosedAllDay OpenTime CloseTime GroupTypeDescription EventTypeDescription Contact AltContact BookingID BuildingID

Description Date that booking is reserved to start on Date that booking event starts on Location Description Booking Event Start Time Booking Event End Time Group/Customer name Event Name Setup Type Description Setup Count Reservation ID Initials of Event Coordinator Group/Customer ID ‘VIP’ or empty string to signify a VIP event 0 or 1 to signify a VIP event 0 or 1 to signify if the Building is closed Time Building Opens Time Building Closes Group Type Description Event Type Description Contact Name Alternate Contact Name Booking ID Building ID

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

Type DateTime DateTime String DateTime DateTime String String String Integer Integer String Integer String Boolean Boolean DateTime DateTime String String String String Integer Integer

CONFIDENTIAL 40

EMS API Reference Guide

TimeBookingStart TimeBookingEnd GMTStartTime GMTEndTime TimeZone BuildingCode Building RoomCode Room RoomID BuildingID StatusID StatusTypeID

Booking Reserved Start Time Booking Reserved End Time Booking Reserved GMT Start Time Booking Reserved GMT End Time Time Zone abbreviation Building Code Building Description Room Code Room Room ID Building ID Status ID Status Type: -14 = Booked Space, -11 = Info Only, -13 = Wait, -12 = Cancel Event Type ID Group Type ID

EventTypeID GroupTypeID

DateTime DateTime DateTime DateTime String String String String String Integer Integer Integer Integer Integer Integer

Sample Code Private Sub GetBooking() Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New StringReader(svc.GetBooking(“UserID”, “Password”, 222008)) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response 2009-10-04T00:00:00 2009-10-04T00:00:00 DEN Room 101 2009-10-04T16:00:00 2009-10-04T17:00:00 ABC Company Spring Conference U - Shape 50 6650 499 false false 1900-01-01T00:00:00 1900-01-01T00:00:00 Corporate Conference Jim Smith 222008 2009-10-04T16:00:00 2009-10-04T17:00:00 2009-10-04T22:00:00 2009-10-04T23:00:00 MT DEN Denver RM101 Room 101 3271 1 1 -14 4 3

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

CONFIDENTIAL 41

EMS API Reference Guide



GetRoomAvailability Description Returns whether a room is available or not

Request Parameters Name UserName Password RoomID BookingDate StartTime EndTime

Description EMS User Name EMS User Password Room ID Booking Date to check availability on Start Time to check availability EndTime to check availability

Type String String Integer DateTime DateTime DateTime

Response Elements Name Available

Description Room Available

Type Boolean

Sample Code Private Sub GetRoomsAvailable() Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New System.IO.StringReader(svc.GetRoomsAvailable(“UserID”, “Password”, 3199, Date.Today, CDate(“1/1/1900 8:00 AM”), CDate(“1/1/1900 9:00 AM”))) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response true

GetRoomsAvailable Description Returns a list of available rooms

Request Parameters Name UserName Password BuildingID BookingDate StartTime EndTime

Description EMS User Name EMS User Password Building ID (-1 = All) Booking Date to check availability on Start Time to check availability EndTime to check availability

Type String String Integer DateTime DateTime DateTime

Response Elements Name Room Description Building RoomID

Description Room Code Room Description Building Room ID

Type String String String Integer

Sample Code Private Sub GetRoomAvailability() Dim svc As New EMSAPI.ServiceSoapClient

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

CONFIDENTIAL 42

EMS API Reference Guide

Dim objReader As New System.IO.StringReader(svc.GetRoomAvailability(“UserID”, “Password”, 1, Date.Today, CDate(“1/1/1900 8:00 AM”), CDate(“1/1/1900 9:00 AM”))) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response RM 101 Room 101 Denver 3271 RM 102 Room 102 Denver 3272

GetRoomsAvailable2 Description Returns a list of available rooms

Request Parameters Name UserName Password BuildingID RoomTypeID FloorID WebProcessTemplates BookingDate StartTime EndTime

Description EMS User Name EMS User Password Building ID (-1 = All) Room Type ID (-1 = All) Floor ID (-1 = All) List of Web Process Template IDs (-1 = All) Booking Date to check availability on Start Time to check availability EndTime to check availability

Type String String Integer Integer Integer Array Of Integers DateTime DateTime DateTime

Response Elements Name RoomID RoomCode RoomDescription BuildingID BuildingDescription TimeZoneID RoomTypeID RoomTypeDescription TimeZoneDescription TimeZoneAbbreviation RecordTypeID FloorID FloorDescription FloorSequence DisplayOnWeb WebProcessTemplateID RoomSetupHours RoomTeardownHours

Description Room ID Room Code Room Description Building ID Building Description Time Zone ID Room Type ID Room Type Description Time Zone Description Time Zone Abbreviation Record Type: 1=Reserve, 2=Request Floor ID Floor Description Floor Sequence Display On Web Web Process Template ID Room Setup Hours RoomTeardownHours

Type Integer String String Integer String Integer Integer String String String Integer Integer String Integer Boolean Integer Decimal Decimal

Sample Code Private Sub GetRoomAvailability2() Dim dvwTemplates As DataView Dim gintTemplates As New Generic.List(Of Int32)

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

CONFIDENTIAL 43

EMS API Reference Guide

Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New StringReader(svc.GetWebTemplates(“UserID”, “Password”)) dvwTemplates= Me.GetData(objReader) For Each drv As DataRowView In dvwTemplates gintTemplates.Add(drv("ID")) Next Dim strTemplates As New EMSAPI.ArrayOfInt strTemplates.AddRange(gintTemplates.ToArray) Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New System.IO.StringReader(svc.GetRoomAvailability2(“UserID”, “Password”, 1, -1, -1, strTemplates, Date.Today, CDate(“1/1/1900 8:00 AM”), CDate(“1/1/1900 9:00 AM”))) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response 3271 RM 101 Room 101 1 Denver 68 1 Meeting Mountain Time MT 1 1 1st Floor 0 true 1 1.5 1.5 3272 RM 102 Room 102 1 Denver 68 1 Meeting Mountain Time MT 1 1 1st Floor 0 true 1 1.5 1.5

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

CONFIDENTIAL 44

EMS API Reference Guide

GetGroupDetails Description Returns details for a specific Group

Request Parameters Name UserName Password GroupID

Description EMS User Name EMS User Password Group ID

Type String String Integer

Response Elements Name GroupName GroupType Address1 Address2 City State ZipCode Country Phone Fax EmailAddress ExternalReference GroupTypeID

Description Group Name Group Type Address Line 1 Address Line 2 City State Zip Code Country Phone Fax Email Address External Reference Group Type ID

Type String String String String String String String String String String String String Integer

Sample Code Private Sub GetGroupDetails() Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New System.IO.StringReader(svc.GetGroupDetails(“UserID”, “Password”, 1234)) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response Test Group (none) 123 Main St. Denver CO 80111 x123 [email protected] 0

GetContactDetails Description Returns details for a specific Contact

Request Parameters Name

Description

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

Type

CONFIDENTIAL 45

EMS API Reference Guide

UserName Password ContactID

EMS User Name EMS User Password Contact ID

String String Integer

Response Elements Name Contact GroupName Address1 Address2 City State ZipCode Country Phone Fax EmailAddress ExternalReference GroupID

Description Contact Name Group Name Address Line 1 Address Line 2 City State Zip Code Country Phone Fax Email Address External Reference Group ID

Type String String String String String String String String String String String String Integer

Sample Code Private Sub GetContactDetails() Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New System.IO.StringReader(svc.GetContactDetails(“UserID”, “Password”, 12345)) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response Test Contact Text Group 123 Main St. Denver CO 80111 x123 [email protected] 1234

GetCheckInStatus Description Returns a list of groups with their check in status

Request Parameters Name UserName Password CheckInDate Groups

Description EMS User Name EMS User Password Date Group List

Type String String DateTime Array Of Integers

Response Elements Name GroupName BuildingID Building

Description Group Name Building ID Building

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

Type String Integer String

CONFIDENTIAL 46

EMS API Reference Guide

Check In Status (“Not Checked In”, “Checked In”, “Checked Out” Check In Date/Time Check In Source

CheckInStatus CheckInDateTime CheckInSource

String DateTime String

Sample Code Private Sub GetCheckInStatus() Dim svc As New EMSAPI.ServiceSoapClient Dim gintGroups As New Generic.List(Of Int32) gintGroups.Add(1234) gintGroups.Add(456) Dim strGroups As New EMSAPI.ArrayOfInt strGroups.AddRange(gintGroups.ToArray) Dim objReader As New System.IO.StringReader(svc.GetCheckInStatus(“UserID”, “Password”, Date.Today, strGroups)) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response ABC Company 4 Building 2 Not Checked In XYZ Company 4 Building 2 Checked In 2012-06-25T09:00:00 Kiosk

GetWebUserDetails Description Returns details for a specific Web User

Request Parameters Name UserName Password WebUserID

Description EMS User Name EMS User Password Web User ID

Type String String Integer

Response Elements Name UserName EmailAddress Phone Fax ExternalReference NetworkID TimeZoneID SecurityStatus TemplateID

Description Web User Name Email Address Phone Fax External Reference Network ID Time Zone ID Status ID Web Security Template ID

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

Type String String String String String String Integer Integer Integer

CONFIDENTIAL 47

EMS API Reference Guide

Sample Code Private Sub GetWebUserDetails() Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New System.IO.StringReader(svc.GetWebUserDetails(“UserID”, “Password”, 2312)) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response Text Web User [email protected] x123 68 0 1

GetWebUserWebProcessTemplates Description Returns a list of Web Process Templates for a specific Web User

Request Parameters Name UserName Password WebUserID

Description EMS User Name EMS User Password Web User ID

Type String String Integer

Response Elements Name Description ID MenuText

Description Web Template Description Web Template ID Web Process Template Menu

Type String Integer String

Sample Code Private Sub GetWebUserWebProcessTemplates() Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New System.IO.StringReader(svc.GetWebUserWebProcessTemplates(“UserID”, “Password”, 2312)) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response Template 1 2 Template 1 Template 2 3 Template 2

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

CONFIDENTIAL 48

EMS API Reference Guide

GetWebSecurityTemplateRoles Description Returns a list of roles for a web security template

Request Parameters Name UserName Password WebSecurityTemplateID

Description EMS User Name EMS User Password Web Security Template ID

Type String String Integer

Response Elements Name WebRoleID WebRoleCode WebRoleDescription

Description Web Role ID Web Role Code Web Role Description

Type Integer String String

Sample Code Private Sub GetWebSecurityTemplateRoles() Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New System.IO.StringReader(svc. GetWebSecurityTemplateRoles (“UserID”, “Password”, 4)) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response 1 eventbrowser Browse Events 12 locategroup Locate Group

GetWebProcessTemplateSettings Description Returns settings for a web process template

Request Parameters Name UserName Password WebProcessTemplateID

Description EMS User Name EMS User Password Web Process Template ID

Type String String Integer

Response Elements Name WebProcessTemplateDescription WebProcessTemplateMenuText RequestStatusID RequestStatusDescription ReserveStatusID ReserveStatusDescription ConflictStatusID ConflictStatusDescription CancelStatusID

Description Web Process Template Description Web Process Template Menu Text Request Status ID Request Status Description Reserve Status ID Reserve Status Description Conflict Status ID Conflict Status Description Cancel Status ID

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

Type String String Integer String Integer String Integer String Integer

CONFIDENTIAL 49

EMS API Reference Guide

CancelStatusDescription MaxBookings MaxMinutes CancelCutOffTime CancelCutOffDays CancelCutOffHours AllowCancelBookingInProgress CancelBookingInProgressStatusID CancelBookingInProgressStatusDescription AllowEndNow MaxDays MaxDate MinDate MinCutOffTime MinCutOffDays MinCutOffHours

Cancel Status Description Max No. Bookings Allowed per Reservation Max No. Minutes Allowed Cancellation Cutoff Time Cancellation Number of Days Cancellation Cutoff Hours Cancel Booking In Progress Cancel Booking In Progress Status ID Cancel Booking In Progress Status Description End Booking In Progress Only Allow New Bookings Within Range of This Many Days Only Allow New Bookings Prior To This Date Only Allow New Bookings On/After This Date New Booking Cutoff Time New Booking Number of Days New Booking Cutoff Hours

String Integer DateTime DateTime Integer Integer Boolean Integer String Boolean Integer DateTime DateTime DateTime Integer Integer

Sample Code Private Sub GetWebProcessTemplateSettings() Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New System.IO.StringReader(svc. GetWebProcessTemplateSettings (“UserID”, “Password”, 10)) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response Executive Template Executive Conference Room Template 11 Web Request 12 Web Reservation 2 Info Only 3 Cancelled 100 0 1900-01-01T00:00:00 1 0 true 3 Cancelled true 350 1900-01-01T00:00:00 1900-01-01T00:00:00 1900-01-01T00:00:00 1 0 >

GetBuildingHours Description Returns a list of building hours for a specific date

Request Parameters Name UserName Password

Description EMS User Name EMS User Password

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

Type String String

CONFIDENTIAL 50

EMS API Reference Guide

Buildings BuildingHoursDate

List of Building IDs Date

Array of Integers DateTime

Response Elements Name BuildingID OpenTime CloseTime GMTOpenTime GMTCloseTime ClosedAllDay VirtualEMSOnly

Description BuildingID Building Open Time Building Close Time Building GMT Open Time Building GMT Close Time Closed All Day Virtual EMS Only

Type Integer DateTime DateTime DateTime DateTime Boolean Boolean

Sample Code Private Sub GetBuildingHours() Dim dvwBuildings As DataView Dim gintBuildings As New Generic.List(Of Int32) Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New StringReader(svc.GetBuildings(“UserID”, “Password”)) dvwBuildings = Me.GetData(objReader) For Each drv As DataRowView In dvwBuildings gintBuildings.Add(drv("ID")) Next Dim strBuildings As New EMSAPI.ArrayOfInt strBuildings.AddRange(gintBuildings.ToArray) objReader = New System.IO.StringReader(svc. GetBuidlingHours (“UserID”, “Password”, strBuildings, Date.Today)) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response 141 1900-01-01T05:00:00 1900-01-01T19:00:00 2012-07-30T11:00:00 2012-07-31T01:00:00 false false 142 1900-01-01T05:00:00 1900-01-01T19:00:00 2012-07-30T11:00:00 2012-07-31T01:00:00 false false 143 1900-01-01T05:00:00 1900-01-01T19:00:00 2012-07-30T11:00:00 2012-07-31T01:00:00 false false

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

CONFIDENTIAL 51

EMS API Reference Guide

GetBuildingHolidays Description Returns a list of holidays for a specific date

Request Parameters Name UserName Password Buildings HolidayDate

Description EMS User Name EMS User Password List of Building IDs Date

Type String String Array of Integers DateTime

Response Elements Name BuildingID HolidayDecription HolidayNotes DisplayOnWeb

Description BuildingID (-1 = All Buildings) Holiday Description Holiday Notes Display on Web

Type Integer String String Boolean

Sample Code Private Sub GetBuildingHolidays() Dim dvwBuildings As DataView Dim gintBuildings As New Generic.List(Of Int32) Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New StringReader(svc.GetBuildings(“UserID”, “Password”)) dvwBuildings = Me.GetData(objReader) For Each drv As DataRowView In dvwBuildings gintBuildings.Add(drv("ID")) Next Dim strBuildings As New EMSAPI.ArrayOfInt strBuildings.AddRange(gintBuildings.ToArray) objReader = New System.IO.StringReader(svc. GetBuildingHolidays (“UserID”, “Password”, strBuildings, Date.Today)) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response 141 Independence Day true 142 Independence Day true 143 Independence Day true

GetWebProcessTemplateCategories Description Returns a list of categories for a specific web process template  2012 Dean Evans & Associates, Inc. 20 Aug 2012

CONFIDENTIAL 52

EMS API Reference Guide

Request Parameters Name UserName Password WebProcessTemplateID

Description EMS User Name EMS User Password Web Process Template ID

Type String String Integer

Response Elements Name CategoryID CategoryDescription CutOffTime CutOffDays CutOffHours

Description Category ID Category Description Cutoff Time Cutoff Days Cutoff Hours

Type Integer String DateTime Integer Integer

Sample Code Private Sub GetWebProcessTemplateCategories() Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New System.IO.StringReader(svc. GetWebProcessTemplateCategories (“UserID”, “Password”, 10)) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response 2 Catering 1900-01-01T00:00:00 1 0 3 Audio Visual 1900-01-01T00:00:00 1 0

GetWebUserOptions Description Returns a list of options for a specific web user

Request Parameters Name UserName Password WebUserID

Description EMS User Name EMS User Password Web User ID

Type String String Integer

Response Elements Name WebProcessTemplateID WebProcessTemplateDescription OptionName OptionValue

Description Web Process Template ID Web Process Template Description OptionName Option Value

Type Integer String String String

Sample Code Private Sub GetWebUserOptions() Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New System.IO.StringReader(svc. GetWebUserOptions (“UserID”, “Password”, 2))

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

CONFIDENTIAL 53

EMS API Reference Guide

Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response 1 Hoteling Space AreaID -1 10 Executive Template BuildingID -1 10 Executive Template EndTime Jan 1 1900 12:00AM 10 Executive Template EventTypeID 0 10 Executive Template HomePage default.aspx 10 Executive Template StartTime Jan 1 1900 12:00AM 10 Executive Template TimeZoneID -1

GetReservationSources Description Returns a list of Reservation Sources

Request Parameters Name UserName Password

Description EMS User Name EMS User Password

Type String String

Response Elements Name ReservationSourceID ReservationSourceDescription

Description Reservation Source ID Reservation Source Description

Type Integer String

Sample Code  2012 Dean Evans & Associates, Inc. 20 Aug 2012

CONFIDENTIAL 54

EMS API Reference Guide

Private Sub GetReservationSources() Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New System.IO.StringReader(svc.GetReservationSources(“UserID”, “Password”)) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response 1 Phone 2 Email

AddReservation (Requires Advanced API Option) Description Creates a Reservation in EMS

Request Parameters Name UserName Password GroupID RoomID BookingDate StartTime EndTime EventName StatusID

Description EMS User Name EMS User Password Group ID Room ID Booking Date Start Time EndTime Event Name Status ID

Type String String Integer Integer DateTime DateTime DateTime String Integer

Response Elements Name ReservationID

Description Reservation ID that was created in EMS

Type Integer

Sample Code Private Sub AddReservation() Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New System.IO.StringReader(svc.AddReservation(“UserID”, “Password”, 11, 3199, Date.Today, CDate(“1/1/1900 8:00 AM”), CDate(“1/1/1900 9:00 AM”),”Meeting”,1)) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response 1234

AddReservation2 (Requires Advanced API Option) Description Creates a Reservation in EMS tied to a Web User

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

CONFIDENTIAL 55

EMS API Reference Guide

Request Parameters Name UserName Password GroupID RoomID BookingDate StartTime EndTime EventName StatusID EventTypeID WebUserID WebTemplateID

Description EMS User Name EMS User Password Group ID Room ID Booking Date Start Time End Time Event Name Status ID Event Type ID Web User ID Web Template ID

Type String String Integer Integer DateTime DateTime DateTime String Integer Integer Integer Integer

Response Elements Name ReservationID

Description Reservation ID that was created in EMS

Type Integer

Sample Code Private Sub AddReservation2() Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New System.IO.StringReader(svc.AddReservation2(“UserID”, “Password”, 11, 3199, Date.Today, CDate(“1/1/1900 8:00 AM”), CDate(“1/1/1900 9:00 AM”),”Meeting”,1, 2, 468, 2)) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response 1234

AddReservation3 (Requires Advanced API Option) Description Creates a Reservation in EMS tied to a Web User

Request Parameters Name UserName Password GroupID RoomID BookingDate StartTime EndTime EventName StatusID EventTypeID WebUserID WebTemplateID ReservationSourceID

Description EMS User Name EMS User Password Group ID Room ID Booking Date Start Time End Time Event Name Status ID Event Type ID Web User ID Web Template ID Reservation Source ID

Type String String Integer Integer DateTime DateTime DateTime String Integer Integer Integer Integer Integer

Response Elements Name ReservationID

Description Reservation ID that was created in EMS

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

Type Integer

CONFIDENTIAL 56

EMS API Reference Guide

Sample Code Private Sub AddReservation2() Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New System.IO.StringReader(svc.AddReservation3(“UserID”, “Password”, 11, 3199, Date.Today, CDate(“1/1/1900 8:00 AM”), CDate(“1/1/1900 9:00 AM”),”Meeting”,1, 2, 468, 2, 1)) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response 1234

AddWebRequest(Requires Advanced API Option) Description Creates a Web Request in EMS

Request Parameters Name UserName Password EventName EventTypeID GroupName Contact Phone Fax EmailAddress WebUserID BuildingID RoomID BookingDate StartTime EndTime SetupTypeID SetupCount Notes

Description EMS User Name EMS User Password Event Name Event Type ID Group Name Contact Phone Fax Email Address Web User ID Building ID Room ID Booking Date Start Time EndTime Setup Type ID Setup Count Notes

Type String String String Integer String String String String String Integer Integer Integer DateTime DateTime DateTime Integer Integer String

Response Elements Name WebRequestID

Description Web Request ID that was created in EMS

Type Integer

Sample Code Private Sub AddWebRequest() Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New System.IO.StringReader(svc.AddWebRequest(“UserID”, “Password”, “Meeting”, 5, “ABC Company”, “John Smith”, “555-1212”, “555-1213”, “[email protected]”, 25, 1, 3199, Date.Today, CDate(“1/1/1900 8:00 AM”), CDate(“1/1/1900 9:00 AM”), 3,10, “Notes…”)) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response 1234

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

CONFIDENTIAL 57

EMS API Reference Guide



AddGroup (Requires Advanced API Option) Description Creates a Group in EMS

Request Parameters Name UserName Password GroupName GroupTypeID Address1 Address2 City State ZipCode Country Phone Fax EmailAddress ExternalReference

Description EMS User Name EMS User Password Group Name Group Type ID Address Line 1 Address Line 2 City State Zip Code Country Phone Fax Email Address External Reference

Type String String String Integer String String String String String String String String String String

Response Elements Name GroupID

Description Group ID that was created in EMS

Type Integer

Sample Code Private Sub AddGroup() Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New System.IO.StringReader(svc.AddGroup(“UserID”, “Password”,”Test Group”, 0, “123 Main St.”, “”, “Denver”, “CO”, “80111”, ””, “x123”, “”, “[email protected]”, “”)) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response 1234

AddContact (Requires Advanced API Option) Description Creates a Contact in EMS

Request Parameters Name UserName Password GroupID ContactName Title Address1 Address2 City State

Description EMS User Name EMS User Password Group ID Contact Name Title Address Line 1 Address Line 2 City State

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

Type String String Integer String String String String String String

CONFIDENTIAL 58

EMS API Reference Guide

ZipCode Country Phone Fax EmailAddress ExternalReference

Zip Code Country Phone Fax Email Address External Reference

String String String String String String

Response Elements Name ContactID

Description Contact ID that was created in EMS

Type Integer

Sample Code Private Sub AddContact() Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New System.IO.StringReader(svc.AddContact(“UserID”, “Password”, 1234,”Test Contact”, “”, “123 Main St.”, “”, “Denver”, “CO”, “80111”, ””, “x123”, “”, “[email protected]”, “”)) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response 12345

AddWebUser (Requires Advanced API Option) Description Creates a Web User in EMS

Request Parameters Name UserName Password WebUserName WebUserPassword EmailAddress Phone Fax ExternalReference NetworkID TimeZoneID StatusID WebSecurityTemplateID WebProcessTemplates Groups

Description EMS User Name EMS User Password Web User Name Web User Password Email Address Phone Fax External Reference Network ID Time Zone ID Status ID (0=Active, 1=Pending, 2=Inactive, 3=Activate On Login Web Security Template ID Web Process Template List Group List

Type String String String String String String String String String Integer Integer Integer Array Of Integers Array Of Integers

Response Elements Name WebUserID

Description Web User ID that was created in EMS

Type Integer

Sample Code Private Sub AddWebUser() Dim gintWebProcessTemplates As New Generic.List(Of Int32) Dim gintGroups As New Generic.List(Of Int32) gintWebProcessTemplates.Add(1) gintWebProcessTemplates.Add(2) gintWebProcessTemplates.Add(3)

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

CONFIDENTIAL 59

EMS API Reference Guide

gintGroups.Add(1234) Dim strWebTemplates As New EMSAPI.ArrayOfInt Dim strGroups As New EMSAPI.ArrayOfInt strWebTemplates.AddRange(gintWebProcessTemplates.ToArray) strGroups.AddRange(gintGroups.ToArray) Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New System.IO.StringReader(svc.AddWebUsert(“UserID”, “Password”, “New Web User”, “password”, “[email protected]”, “x123”, “”, “”, “”, 68, 0, 1, strWebTemplates, strGroups)) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response 2314

AddPayment (Requires Advanced API Option) Description Adds a payment to an Invoice in EMS

Request Parameters Name UserName Password TransactionDate PaymentTypeID CheckNo PaymentAmount InvoiceNo Notes

Description EMS User Name EMS User Password Transaction Date Payment Type ID Check Number Payment Amount Invoice Number Notes

Type String String Date Integer String Decimal String String

Response Elements Name Message

Description “Success!” or error, i.e. “Invoice Number is invalid.”

Type String

Sample Code Private Sub AddPayment() Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New System.IO.StringReader(svc.AddPayment(“UserID”, “Password”, #12/15/2011#, 0, “1234”,”INV100”,””)) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response Success!

UpdateBooking (Requires Advanced API Option) Description  2012 Dean Evans & Associates, Inc. 20 Aug 2012

CONFIDENTIAL 60

EMS API Reference Guide

Updates a single Booking in EMS

Request Parameters Name UserName Password BookingID BookingDate StartTime EndTime StatusID RoomID

Description EMS User Name EMS User Password Booking ID Booking Date Start Time EndTime Status ID Room ID

Type String String Integer DateTime DateTime DateTime Integer Integer

Response Elements Name Message

Description “Success!” or error, i.e. “Room is not available.”

Type String

Sample Code Private Sub UpdateBooking() Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New System.IO.StringReader(svc.UpdateBooking(“UserID”, “Password”, 1234, Date.Today, CDate(“1/1/1900 8:00 AM”), CDate(“1/1/1900 9:00 AM”),1, 3199)) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response Success!

UpdateGroup (Requires Advanced API Option) Description Updates a single Group in EMS

Request Parameters Name UserName Password GroupID GroupName GroupTypeID Address1 Address2 City State ZipCode Country Phone Fax EmailAddress ExternalReference Active

Description EMS User Name EMS User Password Group ID Group Name Group Type ID Address Line 1 Address Line 2 City State Zip Code Country Phone Fax Email Address External Reference Active

Type String String Integer String Integer String String String String String String String String String String Boolean

Response Elements Name Message

Description “Success!” or error, i.e. “Group Name is required.”

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

Type String

CONFIDENTIAL 61

EMS API Reference Guide

Sample Code Private Sub UpdateGroup() Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New System.IO.StringReader(svc.UpdateGroup(“UserID”, “Password”, 1234, “Test Group”, 0, “123 Main St.”, “”, “Denver”, “CO”, “80111”, “”, “x123”, “”, “[email protected]”, “”, True) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response Success!

UpdateContact (Requires Advanced API Option) Description Updates a single Contact in EMS

Request Parameters Name UserName Password ContactID ContactName Title Address1 Address2 City State ZipCode Country Phone Fax EmailAddress ExternalReference Active

Description EMS User Name EMS User Password Contact ID Contact Name Title Address Line 1 Address Line 2 City State Zip Code Country Phone Fax Email Address External Reference Active

Type String String Integer String String String String String String String String String String String String Boolean

Response Elements Name Message

Description “Success!” or error, i.e. “Contact Name is required.”

Type String

Sample Code Private Sub UpdateContact() Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New System.IO.StringReader(svc.UpdateContact(“UserID”, “Password”, 12345, “Test Contact”, “”, “123 Main St.”, “”, “Denver”, “CO”, “80111”, “”, “x123”, “”, “[email protected]”, “”, True) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response Success!

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

CONFIDENTIAL 62

EMS API Reference Guide

UpdateWebUser (Requires Advanced API Option) Description Updates a single Web User in EMS

Request Parameters Name UserName Password WebUserID WebUserName EmailAddress Phone Fax ExternalReference NetworkID TimeZoneID StatusID WebSecurityTemplateID WebProcessTemplates Groups

Description EMS User Name EMS User Password Web User ID Web User Name Email Address Phone Fax External Reference Network ID Time Zone ID Status ID (0=Active, 1=Pending, 2=Inactive, 3=Activate On Login Web Security Template ID Web Process Template List Group List

Type String String Integer String String String String String String Integer Integer Integer Array Of Integers Array Of Integers

Response Elements Name Message

Description “Success!” or error, i.e. “Contact Name is required.”

Type String

Sample Code Private Sub UpdateWebUser() Dim gintWebProcessTemplates As New Generic.List(Of Int32) Dim gintGroups As New Generic.List(Of Int32) gintWebProcessTemplates.Add(1) gintWebProcessTemplates.Add(2) gintWebProcessTemplates.Add(3) gintGroups.Add(1234) Dim strWebTemplates As New EMSAPI.ArrayOfInt Dim strGroups As New EMSAPI.ArrayOfInt strWebTemplates.AddRange(gintWebProcessTemplates.ToArray) strGroups.AddRange(gintGroups.ToArray) Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New System.IO.StringReader(svc.UpdateWebUser(“UserID”, “Password”, 2312, “Test Web User”, “[email protected]”, “x123”, “”, “”, “”, 68, 0, 1, strWebTemplates, strGroups) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response Success!

UpdateCheckInStatus (Requires Advanced API Option) Description Updates check in status for a single group  2012 Dean Evans & Associates, Inc. 20 Aug 2012

CONFIDENTIAL 63

EMS API Reference Guide

Request Parameters Name UserName Password CheckIn GroupID BuildingID CheckInOutDate

Description EMS User Name EMS User Password Check In/Out (true = Check In, false = Check Out) Group ID Building ID Check In/Out Date

Type String String Boolean Integer Integer DateTime

Response Elements Name Message

Description “Success!” or error, i.e. “Building is required.”

Type String

Sample Code Private Sub UpdateCheckInStatus() Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New System.IO.StringReader(svc.UpdateCheckInStatus(“UserID”, “Password”, True, 456, 1, Date.Today) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response Success!

UpdateWebUserOptions (Requires Advanced API Option) Description Updates web user options for a single web user

Request Parameters Name UserName Password WebUserID WebProcessTemplateID OptionName OptionValue

Description EMS User Name EMS User Password Web User ID Web Process Template ID OptionName Option Value

Type String String Integer Integer String String

Response Elements Name Message

Description “Success!” or error, i.e. “Web User does not exist.”

Type String

Sample Code Private Sub UpdateWebUserOptions() Dim svc As New EMSAPI.ServiceSoapClient Dim objReader As New System.IO.StringReader(svc. UpdateWebUserOptions (“UserID”, “Password”, 5, 10, “EventTypeID”, “1”) Dim dst As New DataSet("Data") dst.ReadXml(objReader) End Sub

Example Response

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

CONFIDENTIAL 64

EMS API Reference Guide

Success!

Release Notes Version 1.1.14 New call added: UpdateCheckInStatus New call added: GetCheckInStatus New call added: GetAPIVersion New call added: GetCourseBookings Modified call: GetRoomDetail – added DisplayOnWeb Modified call: GetBookings – added RoomTypeID, RoomType Modified call: GetAllBookings – added RoomTypeID, RoomType Modifeid call: GetHVACBookings – added RoomTypeID, RoomType Modified call: GetHVACBookings – data type for HVACZones changed to Array of Strings Version 1.1.15 New call added: GetServiceOrderDetails Version 1.1.17 New call added: GetWebUserBookings New call added: GetWebSecurityTemplateRoles New call added: GetWebProcessTemplateSettings New call added: GetBuildingHours New call added: GetBuildingHolidays New call added: GetWebProcessTemplateCategories New call added: GetWebUserOptions New call added: UpdateWebUserOptions New call added: AddReservation3 New call added: GetReservationSources Modified call: GetRoomDetails – added Classification Modified call: GetRoomsAvailable2 – added RecordTypeID, FloorID, FloorDescription, FloorSequence, DisplayOnWeb, WebProcessTemplateID, RoomSetupHours, RoomTeardownHours

 2012 Dean Evans & Associates, Inc. 20 Aug 2012

CONFIDENTIAL 65