Calendar API
Solstice Pod URLs:
IPAddress/api/calendar
IPAddress/api/calendar/set
IPAddress/api/calendar/clear
IPAddress/api/calendar/add
IPAddress/api/calendar/delete
The calendar API allows an admin to send scheduling information to a Solstice Pod in a fully customizable way, without tying the Pod to a specific calendar via an Exchange server.
Warning
To communicate with a Pod purely via the API, the Calendar Configuration must be enabled in the Solstice Dashboard and the Calendar Type set to ‘3rd-party only’.
There are two URLs that affect Pod endpoints when ‘3rd-party only’ is selected as Calendar Type:
IPAddress/api/calendar/clear requires no data. Hitting this URL clears all calendar data.
IPAddress/api/calendar/set lets you POST JSON data about upcoming meetings. Each POST overrides any existing calendar data, so the POST should be an array of all meeting/availability information that should show on the display.
The OpenControl API may also interact with a Microsoft Exchange calendar to integrate with an existing scheduling system. After an Exchange account is authenticated through the Dashboard (Calendar Type = Microsoft Exchange), there are two URLs that allow you to add or remove a meeting on the Exchange calendar:
IPAddress/api/calendar/add requires the keys ‘startTime’, ‘endTime’, ‘title’ and 'organizer' to add a meeting to the Exchange calendar. A random ‘id’ key is assigned when the meeting is created and may be used to delete the meeting.
Note
Although the 'organizer' key is required for the IPAddress/api/calendar/add call, this key may not be applied when you POST to a Microsoft Exchange calendar.
IPAddress/api/calendar/delete requires only the ‘id’ key of the meeting to be deleted from the Exchange calendar.
To read calendar data from the display regardless of calendar type, GET the URL IPAddress/api/calendar.
Calendar Settings
Note that, like the other values in the config object, if you do not explicitly set a value to empty (‘’, the empty string), then it will keep its old value. This is important when changing to a new Exchange configuration without a delegate or impersonation mailbox.
m_calendarCuration | |||
Key | Type | Get/Post | Description |
enabled | bool | Get/Post | Enable or disable the use of a calendar service. |
calendarType | int | Get/Post | 0: Exchange, 2: Microsoft 365, 3: OpenControl API |
updateIntervalSeconds | int | Get/Post | Number of seconds between when the display checks for updates to the calendar information. |
showTitle | bool | Get/Post | Show the meeting title |
showOrganizer | bool | Get/Post | Show the meeting organizer |
exchangeUrl | string | Get/Post | Exchange server URL |
exchangeAuthOpt | int | Get/Post | Exchange server authentication type: 0: HTTP Basic, 1: NTLM |
exchangeAcctDomain | string | Get/Post | Exchange NTLM credentials domain. |
exchangeAcctUser | string | Get/Post | Exchange account username. |
exchangeAcctPassword | string | Get/Post | Exchange account password. |
exchangeDelegateMailbox | string | Get/Post | If not using the default mailbox, this is the delegate mailbox. |
exchangeImpersonationMailbox | string | Get/Post | If not using the default mailbox, this is the impersonation mailbox. |
Calendar Commands
calendarItems | |||
Key | Type | Get/Post | Description |
id | string | Get/Post | Unique meeting ID. Used internally only, does not show up on display. Must be supplied in ‘3rd-party’ mode; automatically generated in ‘Microsoft Exchange’ mode. |
startTime | long int | Get/Post | Meeting start time in Unix epoch seconds. |
endTime | long int | Get/Post | Meeting end time in Unix epoch seconds. |
title | string | Get/Post | Title of meeting that shows up on the display if meeting names are enabled in the Dashboard. |
organizer | string | Get/Post | Name of meeting organizer that shows up on the display if enabled in the Dashboard. |