Accruent Source
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.
| Field | Required | Description |
|---|---|---|
| Building SiteId | Yes | The site or campus of the Building |
| Building RefId | Yes | The unique building identifier from Accruent (automatically populated) |
| Building Name | Yes | The building name (automatically populated) |
| Building Address | Yes | The building address |
| Space RefId | Yes | The unique room identifier from Accruent (automatically populated, must be unique across mappings) |
| Space Name | Yes | The bookable room or meeting space name (automatically populated, not editable) |
| Space Code | Yes | The room code or number (automatically populated) |
| Floor Name | No | Floor information for each room (automatically populated but can be edited during configuration if needed) |
| Floor Level | No | Floor 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 Name | Default Value |
|---|---|
| futureEventsWindow | 30 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 Object | Mapped Entity Type | Description |
|---|---|---|
| Building | Space | Physical buildings in your Accruent system, representing the top level of your facility hierarchy |
| Room | Space | Individual bookable rooms and meeting spaces within buildings |
| Room Calendar | Calendar | A calendar object associated with each bookable space for managing its events |
| Booking/Reservation | CalendarEvent | Scheduled 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
hasPartrelationship (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
hasPartrelationship from Calendar to CalendarEvent)
- The Space where the event is scheduled (via
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 three 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
- Deleted Events Poll: Runs every 30 minutes to find bookings that were deleted in Accruent and mark them as cancelled
Deleted Bookings:
A booking deleted in Accruent no longer appears in Accruent's search results, so the connector looks up its bookings one by one. When Accruent reports a booking as no longer existing, its CalendarEvent stays in your graph with Call Info set to "Cancelled", and downstream systems that remove cancelled events will remove it.
- The first check covers every booking starting in the last 24 hours or later. On a site with many bookings it can take several polls to finish; regular syncing continues in the meantime.
- After that, the connector checks bookings that have changed since its previous run. A booking deleted in Accruent long after its last change may not be marked cancelled.
- A lookup that fails (for example because of an incorrect Base URL, expired credentials, or an Accruent outage) is never treated as a deletion. The connector tries the same bookings again on the following polls.
- As a safeguard, if more than half of 10 or more bookings checked in one poll appear deleted, the connector cancels nothing and reports an error instead, because cancelling can permanently remove events from downstream systems. Confirm in Accruent whether the bookings were really deleted, and contact Mapped support if they were not.
Sample Code
Query Spaces with their Calendars and upcoming CalendarEvents
{
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
{
calendarEvents(filter: {connectedDataSourceId: { eq: "your-connector-Id"}}}) {
id
name
startTime
mappingKey
endTime
hasLocation {
... on Space {
id
name
mappingKey
}
}
}
}
Graph Shape
