Skip to main content

Calendar API v1

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 v1 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.

Next Topic

Other APIs v1