Calendar API

Solstice Host 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 host in a fully customizable way, without tying the host to a specific calendar via an Exchange server. 

To communicate with a host 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 host 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 will override 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.  Once 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 will be assigned when the meeting is created and may be used to delete the meeting.
  • 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: Office 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 will show up on the display if meeting names are enabled in the Dashboard.

organizer

string

Get/Post

Name of meeting organizer that will show up on the display if enabled in the Dashboard.

Next Topic

Other APIs