Skip to content
Stand with Ukraine flag

Scheduler

The Scheduler lets you fire Rule Engine messages on a one-time or recurring basis. Each scheduler event produces a message with a configurable originator, type, body, and metadata — then forwards it to the root rule chain for processing.

Scheduler event flow — event fires on schedule, generates a Rule Engine message, and forwards it to the root rule chain

Both tenant administrators and customer users can create and manage scheduler events from the Scheduler events page. The maximum number of scheduler events per tenant is configurable in the Tenant Profile. The page supports two view modes:

  • List view — tabular list of all configured events showing event name, type, schedule, and status
  • Calendar view — events displayed on a calendar according to their schedule; click any cell to create a new event for that date

You can switch between views using the toggle icons in the page header. Calendar view defaults to Month but supports other types: Week, Day, List Year, List Month, List Week, List Day, Agenda Week, Agenda Day.

  1. Click + in the top-right corner, or click any cell in the calendar view.
  2. Fill in the Configuration form — select an event type and provide event-specific parameters (see Event types below).
  3. Switch to the Schedule form and configure the timing.
  4. Click Add.

The event dialog has two tabs:

  • Configuration — event type selection and type-specific parameters (originator, message body, metadata, etc.)
  • Schedule — timing settings (timezone, start date/time, repeat rules)
ParameterDescription
TimezoneTimezone in which the event is processed
Start Date/TimeWhen the event fires for the first time
RepeatWhether the event is one-time or recurring
RepeatsRepeat rule — Daily or Weekly
Repeat onWeekdays when the event fires (Weekly only)
Ends onDate after which the event stops repeating

The Event type field in the Configuration form determines what message the scheduler generates. You can select a built-in type or specify a custom one.

The default configuration form that maps directly to the Rule Engine message structure.

FieldDescription
OriginatorMessage originator — a single entity (Device, Asset, etc.) or a group of entities. If not specified, the scheduler event entity itself is the originator
Message typeRule Engine message type — a predefined type or custom string. If not specified, the event type name is used
Message bodyMessage payload in JSON format
MetadataKey-value pairs added to the message metadata

Schedule automatic report generation powered by the Reporting feature. Configure the target dashboard, time window, report format (PDF / PNG / JPEG), and optional email delivery — all from the scheduler event dialog.

See Reporting — Getting Started for full configuration details.

Schedule updates to attributes for a single entity or a group of entities.

FieldDescription
TargetEntity or group of entities whose attributes will be updated
Entity attributes scopeServer attributes or Shared attributes (Shared is available only for Device targets)
AttributesKey-value pairs to write

Schedule a command (RPC call) to a device or group of devices.

FieldDescription
TargetSingle device or group of devices
MethodRPC method name
ParamsMethod parameters in JSON format

The Scheduler events and Reports schedule widgets (part of the Scheduling widgets bundle) provide the same capabilities as the Scheduler events page and can be added to any dashboard. The widget also supports custom event types with configurable forms via the Advanced tab.

See Widgets documentation for details on widget configuration.

Scheduler events are processed internally by ThingsBoard and delivered through the message queue (Kafka). This means scheduled messages survive server restarts and are processed once the system is back online. However, if the system is completely down at the scheduled time, the event is not fired retroactively.

Scheduler events can also target Edge instances indirectly — configure the event to push a message into a rule chain that conditionally forwards it to the appropriate Edge instance using your custom routing logic.