Docs Portal
Connector Guides
API ReferenceConsole

Accruent Source

Accruent logo

The Accruent connector integrates with Accruent's EMS (Event Management System) to synchronize space booking and reservation data into your Mapped graph. This connector retrieves calendar events and room reservations from your Accruent EMS Cloud Service platform, providing visibility into how your meeting spaces and conference rooms are being utilized across your portfolio.

  • Space Utilization Analytics: Track room booking patterns and utilization rates to identify underutilized spaces and optimize your real estate footprint
  • Event-Driven Building Operations: Coordinate building services like HVAC, lighting, and access control with scheduled room reservations to improve energy efficiency and occupant comfort
  • Workplace Experience: Enable room booking visibility, wayfinding, and availability displays by integrating calendar data with your workplace applications

Configuration

Auth Requirements

To connect to your Accruent EMS instance, you need to provide:

  • Base URL: The URL of your Accruent EMS Cloud Service instance (e.g., https://your-instance.emscloudservice.com)
  • Client ID: Your API client identifier for authentication
  • Client Secret: Your API client secret credential

These credentials authenticate the connector with the Accruent API. Contact your Accruent system administrator to obtain API credentials if you don't have them available.

Place Mappings

The connector maps your Accruent buildings, floors, and rooms to places in your Mapped graph. During configuration, the connector automatically discovers and displays all buildings and bookable rooms from your Accruent system.

FieldRequiredDescription
Building SiteIdYesThe site or campus of the Building
Building RefIdYesThe unique building identifier from Accruent (automatically populated)
Building NameYesThe building name (automatically populated)
Building AddressYesThe building address
Space RefIdYesThe unique room identifier from Accruent (automatically populated, must be unique across mappings)
Space NameYesThe bookable room or meeting space name (automatically populated, not editable)
Space CodeYesThe room code or number (automatically populated)
Floor NameNoFloor information for each room (automatically populated but can be edited during configuration if needed)
Floor LevelNoFloor level number

The connector retrieves the complete hierarchy from Accruent, including buildings, floors, and rooms. Each room's calendar events and reservations will be linked to the corresponding space in your graph.

Note: Buildings with invalid or negative IDs are automatically skipped during the mapping process.

Advanced Options

Option NameDefault Value
futureEventsWindow30 days

The futureEventsWindow option specifies how many days into the future the connector should retrieve scheduled events and reservations. The connector polls for future events once per day and fetches all bookings scheduled within this time window from the current date forward.

For example, with the default setting of 30 days, the connector retrieves all room reservations scheduled for the next month. Increase this value if you need to see bookings scheduled further in advance (e.g., 60 or 90 days), or decrease it to limit the scope of future event data retrieved.

Mapped Concepts

API to Mapped Entities

The Accruent connector creates the following entities in your Mapped graph based on data from the EMS API:

Accruent API ObjectMapped Entity TypeDescription
BuildingSpacePhysical buildings in your Accruent system, representing the top level of your facility hierarchy
RoomSpaceIndividual bookable rooms and meeting spaces within buildings
Room CalendarCalendarA calendar object associated with each bookable space for managing its events
Booking/ReservationCalendarEventScheduled events and room reservations, including start time, end time, and booking status

Entity Relationships:

  • Spaces (rooms) are created for each bookable room mapped from Accruent
  • Calendars are linked to their associated Space through a hasPart relationship (the Space has the Calendar as a part)
  • CalendarEvents are linked to:
    • The Space where the event is scheduled (via hasLocation)
    • The Calendar associated with that space (via hasPart relationship from Calendar to CalendarEvent)

Event Properties:

Each CalendarEvent includes:

  • Start Time: When the event/reservation begins
  • End Time: When the event/reservation ends
  • Call Info: The booking status description (e.g., "Confirmed", "Tentative", "Cancelled")
  • Mapping Key: A unique identifier in the format calendar_event/{booking_id}

Important Note on Event Updates:

When a booking is moved to a different room in Accruent, the CalendarEvent automatically updates to reflect the new location. The connector uses special merge rules to ensure that when an event changes rooms, it is removed from the previous room's calendar and added to the new room's calendar. This ensures your graph always reflects the current state of reservations.

The connector includes cancelled bookings in its synchronization to provide complete visibility into booking history and changes.

Data Synchronization:

The connector runs two separate polling functions:

  • Current Events Poll: Runs every 30 minutes to capture recent changes and updates to bookings
  • Future Events Poll: Runs once daily to retrieve all upcoming reservations within your configured future events window

Sample Code

Query Spaces with their Calendars and upcoming CalendarEvents

Request Response
Copy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
  spaces(filter: {connectedDataSourceId: {eq: "your-connector-Id"}}) {
    id
    name
    exactType
    mappingKey
    hasCalendar {
      id
      name
      exactType
      hasCalendarEvent(filter: {startTime: {gte: "2026-06-01"}}) {
        id
        name
        exactType
        startTime
        endTime
      }
    }
  }
}

Query Calendar Events with Location

Request Response
Copy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
  calendarEvents(filter: {connectedDataSourceId: { eq: "your-connector-Id"}}}) {
	    id
	    name
	    startTime
	    mappingKey
	    endTime
	    hasLocation {
	      ... on Space {
	        id
	        name
	        mappingKey
	      }
	    }
	  }
}