Skip to main content

Intro

This article introduces you to our custom MeetingRoom app and its core features.

Info

The Meeting Room app is deployed to customer servers per request. To learn more contact our support at [email protected]!

Please note

This custom app is under active development and any information in this documentation could be inaccurate or outdated!
If you have any questions please contact our support at [email protected]

mr10.png

What is MeetingRoom?

With the MeetingRoom custom app you can easily keep track of your schedule and display it onto a screen so your coworkers and customers always know when you're available. You can even create a room booking function using standard widget features. MeetingRoom is able to control the LED lights of compatible media player devices as well.

Prerequisites

To utilize the functions of the MeetingRoom app you need to create a datasource. First let's create a credential so the datasource will have access to your calendar (Click here to learn more). Next create the calendar datasource and don't forget to select the credential type, the credential you created previously and the calendar you want to use. After saving double check if your datasource has your calendar's data by clicking the eye icon in the datasource's row.

Setting up the widget

Datasource binding

After you've successfully created your datasource you can place the Meeting Room app widget and configure the datasource binding.

  • My dataset: This is the datasource you created that contains all you calendar events. Select only the root of the calendar. When configured correctly your datasource binding should look like this: mr1.png

Widget Settings

In the General Settings section, you can configure various essential options for the widget's behavior and appearance.

  • Refresh Interval: Set the refresh interval in seconds to define how often the application checks your calendar for updates.
  • Widget Type: Choose from a range of widget types. For more details, see the Widget Types section.
  • Global Font Settings:
    • Select the font family.
    • Adjust the font size to match your preferences.
  • Text Visibility & Trimming:
    • Set the maximum number of characters displayed in a string.
    • Define how many characters should be trimmed from the beginning of a string for better display.
  • Widget Layout: Choose the default structure of the widget—whether the title block appears above or below the time block (Title-Time or Time-Title).

Widget Types

Actual meeting widget type can display the title and time of your current calendar event.
Check the documentation for Actual meeting mode

Sensor events

Using sensor events you can change the led lights of your device depending on the status of your actual meeting type widget. Valid sensor events are:

  • free
  • busy
  • starting

In this example the status light turns red on a QBIC device when there is an ongoing event: mr9.png

For more device-specific commands please refer to our article here.

External commands

The Meeting Room app exposes external commands that let you control the bound calendar from other widgets, buttons, or automation rules. The commands are dispatched against the datasource bound to "My dataset", so make sure the widget has a valid calendar datasource before triggering any command.

Info

All timestamp values (startDate, endDate, from, to) and durations are expected in milliseconds since the Unix epoch (or millisecond duration for duration). If a required parameter is missing or invalid, the command is ignored and a warning is logged.

Get Meetings

Fetches events from the bound calendar for an optional time window. The result is forwarded as a got-meetings sensor event.

  • from (optional) — window start (ms).
  • to (optional) — window end (ms).

If from / to are omitted, the host defaults to now − 1 daynow + 1 month.

Add Meeting

Creates a new meeting on the bound calendar.

  • startDate — meeting start (ms).
  • endDate — meeting end (ms).
  • title — meeting title.
  • description (optional) — meeting description.

Update Meeting Start

Marks an existing event as started by recording who started it.

  • eventId — identifier of the target event.
  • startedBy — identifier of the actor (user / device) that started the meeting.

Update Meeting End

Adjusts an existing event's end time, effectively closing it earlier than originally scheduled.

  • eventId — identifier of the target event.
  • endDate (optional) — new end time (ms). Defaults host-side to now − 60s, which closes the event immediately.

Cancel Meeting

Cancels an existing event.

  • eventId — identifier of the target event.

Suspend Meeting

Suspends an event for the given duration.

  • eventId — identifier of the target event.
  • duration — suspension length in milliseconds.

Extend Meeting

Extends an event by the given duration.

  • eventId — identifier of the target event.
  • duration — extension length in milliseconds.
How to obtain eventId

The eventId is the unique identifier of an event in the underlying calendar provider (Google, Microsoft, iCalendar). You can read it from the bound datasource's event list, or capture it from the got-meetings sensor event payload returned by the Get Meetings command.

External commands work in every widget type — the listener is registered at the application root and is independent of the currently displayed widget.