Skip to main content

Configuring the Widget

Data Source​

To display events in the Readerboard widget, connect a calendar data source to the Set data source property via the widget's data source picker.

The widget automatically detects which calendar platform the data comes from and normalizes it into a standard event format. No additional configuration is needed for source selection.

Read more about supported data source formats here.

General Styling Settings​

This group controls the widget's background appearance and content padding.

Background Type​

Select the type of background for the widget.

  • Color - Displays a solid color background (default).
  • Image - Displays an uploaded image as the background.

Default: Color

Background Color​

Visible when Background Type is set to "Color".

Select the background color for the widget using the color picker. Supports RGBA values for transparency.

Default: rgba(255, 255, 255, 0.6)

Background Image​

Visible when Background Type is set to "Image".

Upload an image file to use as the widget background.

Background Image Fit​

Visible when Background Type is set to "Image".

Controls how the background image is scaled within the widget container.

  • Cover - Image covers the entire container, cropping if necessary to maintain aspect ratio (default).
  • Contain - Image fits entirely within the container, potentially leaving empty space.
  • Fill - Image stretches to fill the container exactly, ignoring aspect ratio.

Default: Cover

Inner Padding​

Sets the padding around the content inside the widget, in pixels. This controls the spacing between the widget edges and the event tables.

When no events are available, padding is automatically set to 0.

  • Range: 0 - 128 px
  • Default: 8 px

Readerboard Settings​

This group controls how pages transition and how pagination is displayed.

Animation Type​

Select the animation style used when transitioning between pages.

  • None - Pages switch instantly with no animation (default).
  • Slide - Pages slide in from one direction while the previous page slides out.
  • Fade - Pages fade out and fade in during transitions.

Default: None

Animation durations:

  • Fade: 500ms
  • Slide: 800ms

Slide Direction​

Visible when Animation Type is set to "Slide".

Controls the direction of the slide animation.

  • Left to Right - Current page slides out to the right, new page enters from the left (default).
  • Right to Left - Current page slides out to the left, new page enters from the right.
  • Top to Bottom - Current page slides out downward, new page enters from the top.
  • Bottom to Top - Current page slides out upward, new page enters from the bottom.

Default: Left to Right

Page Interval (seconds)​

Sets the time in seconds between automatic page transitions. The widget cycles through all pages on a continuous loop.

  • Range: 3 - 60 seconds
  • Default: 10 seconds

Show Page Number​

When enabled, a page indicator (e.g., "1/3") is displayed at the bottom-right corner of the widget.

When disabled, the page indicator is hidden, and sensor events (currentPageNumber and maxPageNumber) are emitted instead, allowing external widgets to display pagination information.

Default: Enabled

Grouping Settings​

This group controls how events are organized into groups.

Group By​

Select which event field is used to group events into separate tables.

  • None - All events are displayed in a single table without grouping (default).
  • Room - Events are grouped by their location/room.
  • Owner - Events are grouped by the event organizer/owner.
  • Organization - Events are grouped by the associated organization.

When grouping is active, each group is rendered as a separate table with a caption showing the group name. Events with an empty or missing group field value are placed under the "Unknown" group.

Default: None

Group Header Styling​

Visible when Group By is not set to "None".

These settings control the appearance of group header labels displayed above each event table.

  • Show Group Header - Toggle the visibility of group headers. When disabled, events are still grouped but without visible labels. Default: Enabled
  • Group Header Font Size - The font size in pixels. Range: 10 - 100 px. Default: 18 px
  • Font Family - The typeface for group headers. Default: Arial
  • Font Style - The style (normal, italic, bold, etc.) for group headers. Default: bold
  • Font Color - The text color for group headers. Default: #000000
  • Background Color - The background color of group headers. Supports RGBA for transparency. Default: transparent

Date & Time Format​

This group controls how the Time column is displayed in the event table.

Start Format / End Format​

Two format patterns that control how the start and end date/time are displayed in the Time column. Each side can use a different pattern, joined by the configured separator.

Leave the End format empty to use the same pattern as the start format.

You can freely combine date and time tokens in any order. Only the tokens you include will appear in the output. Any characters that are not part of a token are kept as-is (separators, commas, spaces, etc.).

Start format default: HH:mm End format default: (empty -- inherits start format)

Available Tokens​

Date tokens:

TokenDescriptionExample Output
yyyyFull year2026
MMMMFull month nameMarch
MMMAbbreviated month nameMar
MMZero-padded month number03
ddddFull day of week nameThursday
EEEAbbreviated day of week nameThu
ddZero-padded day of month19

Time tokens:

TokenDescriptionExample Output
HH24-hour, zero-padded09, 14
H24-hour, no padding9, 14
hh12-hour, zero-padded09, 02
h12-hour, no padding9, 2
mmMinutes, zero-padded05, 30
ssSeconds, zero-padded09, 45
AAM/PM uppercaseAM, PM
aam/pm lowercaseam, pm

Examples​

Start FormatEnd FormatOutput (with default separator)
HH:mm(empty)14:30 - 16:00
h:mm a(empty)2:30 pm - 4:00 pm
MMM dd, HH:mmHH:mmMar 19, 14:30 - 16:00
MMMM dd, h:mm Ah:mm AMarch 19, 2:30 PM - 4:00 PM
EEE, MMM dd HH:mmHH:mmThu, Mar 19 14:30 - 16:00
dddd, MMM ddMMM ddThursday, Mar 19 - Mar 19
MM/dd/yyyy HH:mm(empty)03/19/2026 14:30 - 03/19/2026 16:00

A common use case is to show the full date on the start side and only the time on the end side (e.g., start: MMM dd, HH:mm, end: HH:mm produces Mar 19, 14:30 - 16:00).

Month and day names are locale-aware (defaults to en-US).

Separator​

The text displayed between the start and end formatted values.

Default: -

Spacing Around Separator​

When enabled, a space is automatically added before and after the separator text. This is needed because the platform trims whitespace from text fields.

Default: Enabled

Combined examples:

SeparatorSpacingOutput
-On14:30 - 16:00
/On14:30 / 16:00
toOn14:30 to 16:00
|On14:30 | 16:00
-Off14:30-16:00
(empty)On14:30 16:00
(empty)Off14:3016:00

Time Column Styling​

These settings control the font appearance of the Time column independently from the rest of the table body. When not set, the Time column inherits the table body font settings.

  • Font Size - The font size in pixels for the time column. When set to 0, inherits the event row font size. Range: 0 - 100 px. Default: 0 (inherit)
  • Font Family - The typeface for the time column. Default: (inherit from table body)
  • Font Style - The style (normal, italic, bold, etc.) for the time column. Default: (inherit from table body)
  • Font Color - The text color for the time column. Default: (inherit from table body)

Event Filtering​

This group controls which events are displayed based on their timing.

Show Expired Events​

Controls whether events that have already ended are displayed.

  • Show all events - All events are displayed regardless of their end time (default).
  • Hide expired events - Events whose end date/time has passed (relative to the current device time) are automatically hidden.

An event is considered expired when its end date and end time are both before the current time. Events without an end date or end time are never considered expired.

Default: Show all events

Event Date Filter​

Filters events by date range or limits the number of visible events per day.

  • Show all events - No date filtering is applied (default).
  • Today's Events - Only events starting today are shown.
  • 1-10 Events Today - Only events starting today are shown, limited to the first 1 through 10 events respectively.
  • Today's and Tomorrow's Events - Events starting today or tomorrow.
  • Today's and Next 2-6 Day's Events - Events starting from today through the next 2 to 6 days respectively.
  • This Week's Events - Events starting within the current week (Sunday through Saturday).
  • This Week and Next 1-3 Week's Events - Events from this week plus 1 to 3 additional weeks.
  • This Month's Events - Events starting within the current calendar month.

Default: Show all events

The date filter uses the event's start date for comparison. If an event has no start date, it is excluded when any filter other than "Show all events" is active.

When using a count-limited filter (e.g., "3 Events Today"), the limit applies to the total number of events after date filtering, not per group.

Title Settings​

This group controls the optional title bar displayed at the top of the widget.

Title Text​

The text to display as the widget title. Leave empty to hide the title entirely.

Default: (empty - no title shown)

Title Font Size​

Visible when Title Text is not empty.

The font size of the title in pixels.

  • Range: 12 - 100 px
  • Default: 24 px

Title Font Settings​

Visible when Title Text is not empty.

  • Font Family - Default: Arial
  • Font Style - Default: normal
  • Font Color - Default: #000000

Page Content Settings​

This group controls the appearance of the event table content.

Visible Columns​

A multi-line text area that controls which columns appear in the event table, their order, and optionally their width. Each line defines one column.

Default:

time
title
room

Available columns:

Column IDHeader LabelData
timeTimeCombined start + separator + end (uses Time Column format settings)
startTimeStartStart date/time only (uses the Start format pattern)
endTimeEndEnd date/time only (uses the End format pattern)
separator(none)Displays the configured separator text (e.g. -)
titleEventEvent name/subject
roomLocationRoom or venue name
ownerOwnerEvent organizer
organizationOrganizationAssociated company, department, or group

The startTime, endTime, and separator columns allow you to split the time display across separate columns for more control over layout and spacing. Use them instead of the combined time column when you need individual control.

Column Width​

You can set a column's width as a percentage by appending [size:X] after the column name, where X is the width in percent.

Columns without a [size:X] tag share the remaining width equally.

Examples:

Basic column selection (equal widths):

time
title
room

Custom widths:

time[size:25]
title[size:50]
room[size:25]

Mixed (time gets 20%, title and room split the remaining 80% equally):

time[size:20]
title
room

All five columns with custom widths:

time[size:15]
title[size:30]
room[size:20]
owner[size:15]
organization[size:20]

Spacer Columns​

A line containing only [size:X] (with no column name) creates an empty spacer column. This is useful for adding visual spacing between data columns.

time[size:20]
[size:5]
title[size:50]
[size:5]
room[size:20]

This creates a 5-column table with empty gap columns between Time, Event, and Location.

Column IDs are case-insensitive. Invalid IDs are silently skipped. If all IDs are invalid or the field is empty, the default columns are used. Legacy comma-separated format (e.g., time, title, room) is also supported for backward compatibility.

Event Row Font Size​

The font size for event data rows and table header rows, in pixels. This size also affects pagination calculation - larger fonts result in fewer events per page.

  • Range: 10 - 100 px
  • Default: 14 px

Row Colors​

Alternate row background colors for improved readability.

  • Odd Row Background - Background color for rows 1, 3, 5, etc. Default: rgba(255, 255, 255, 0.3)
  • Even Row Background - Background color for rows 2, 4, 6, etc. Default: transparent

Table Header​

Settings for the column header row (Time, Event, Location).

  • Show Table Header - Toggle the visibility of the header row. Default: Enabled
  • Font Family - Default: Arial
  • Font Style - Default: bold
  • Font Color - Default: #000000

Table Body​

Settings for the event data rows.

  • Font Family - Default: Arial
  • Font Style - Default: normal
  • Font Color - Default: #000000

No Events Text Settings​

This group controls the message displayed when no events are available (either the data source is empty, or all events have been filtered out).

Text​

The message to display when there are no events.

Default: No events scheduled

Font Size​

The font size in pixels.

  • Range: 12 - 100 px
  • Default: 24 px

Font Settings​

  • Font Family - Default: Arial
  • Font Style - Default: normal
  • Font Color - Default: #333333

How Pagination Works​

The Readerboard widget automatically splits events across multiple pages based on the available display area. The pagination system considers the following when calculating how many events fit on a page:

  1. Container height - The total height of the widget minus title and page indicator areas.
  2. Event row height - Calculated from the event font size multiplied by a line height factor of 1.3.
  3. Table header height - The height of the column header row (if visible).
  4. Group header height - The height of group caption rows (if grouping is active).
  5. Table margins - Spacing between separate group tables.

When a group has more events than can fit on a single page, the remaining events continue on the next page under the same group header.

Pagination recalculation is debounced (150ms delay) to prevent UI flickering when settings are rapidly changed in the editor.