set_schedule
Manage schedules for IoT nodes: add, edit, remove, enable, or disable time-based triggers and actions across single or multiple devices.
Instructions
Manage schedules for one or more nodes.
Parameters:
node_id: Single node ID or comma-separated list of node IDs (e.g., "node1" or "node1,node2,node3")
operation: Operation to perform (add, edit, remove, enable, disable)
schedule_id: Schedule ID (required for edit, remove, enable, disable operations)
name: Schedule name (required for add operation, optional for edit)
trigger: Dictionary defining when to trigger (required for add, optional for edit)
action: Dictionary defining what to do (required for add, optional for edit)
info: Additional information for the schedule (optional)
flags: General purpose flags for the schedule (optional)
When multiple node IDs are provided:
For 'add' operations: Creates the same schedule on all specified nodes with a common schedule ID
For 'edit/remove/enable/disable' operations: Applies the operation to the specified schedule on all nodes
This is useful for bulk schedule management across multiple devices
TRIGGER FORMAT GUIDE: Time-based triggers use these fields:
"m": Minutes since midnight (0-1439). Example: 480 = 8:00 AM, 1110 = 6:30 PM
"d": Day bitmap for which days to trigger:
31 = Weekdays (Mon-Fri)
96 = Weekends (Sat-Sun)
127 = Every day
0 = One-time only
Individual days: 1=Mon, 2=Tue, 4=Wed, 8=Thu, 16=Fri, 32=Sat, 64=Sun
"dd": Day of month (1-31)
"mm": Month bitmap (4095 = all months)
"rsec": Relative seconds from now
"ts": Exact Unix timestamp
COMMON TRIGGER EXAMPLES:
Daily 8:00 AM: {"m": 480, "d": 127}
Weekdays 6:30 PM: {"m": 1110, "d": 31}
Weekends 10:00 AM: {"m": 600, "d": 96}
One-time 7:00 PM: {"m": 1140, "d": 0}
15th of every month at noon: {"m": 720, "dd": 15, "mm": 4095}
In 1 hour: {"rsec": 3600}
ACTION EXAMPLES:
Turn on light: {"Light": {"Power": true}}
Set brightness: {"Light": {"Power": true, "Brightness": 80}}
Control thermostat: {"Thermostat": {"Power": true, "Temperature": 22}}
NOTE: Action keys use device type names (like "Light") not display names. Use get_node_details to see device types in config.devices[].name.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| node_id | Yes | ||
| operation | Yes | ||
| schedule_id | No | ||
| name | No | ||
| trigger | No | ||
| action | No | ||
| info | No | ||
| flags | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |