This is an old revision of the document!
In the IOM, all schedules are derived from a common Schedule base class. This base contains all the shared components of schedules.
All schedules will inherit properties from the Schedule base class.
Like other high-level objects in Indigo, there are rules for modifying schedules. For Scripters and Plugin Developers:
To create, duplicate, delete, and send commands to a schedule, use the command namespace as described below
To modify an object's definition, get a copy of the schedule, make the necessary changes, then call mySchedule.replaceOnServer(newPropsDict)
For Plugin Developers:
To update a plugin's props on a schedule, call mySchedule.replacePluginPropsOnServer(newPropsDict) rather than try to update them on the local schedule
Unlike Devices, you can't call create() in the the schedule base class command namespace (indigo.schedule.*). Rather, each subclass has its own create() method that takes the appropriate arguments for that schedule type.
Under construction
| Property | Type | Writable | Description |
absoluteDate | datetime.datetime / None | | |
absoluteDateTime | datetime.datetime / None | | |
absoluteTime | datetime.datetime / None | | |
autoDelete | boolean | Yes | true if Indigo should automatically delete this schedule after the next execution, otherwise false |
configured | boolean | Yes | true if the schedule has been fully configured, otherwise false |
dateType | indigo.kDateType / None | | |
description | string | Yes | description of the schedule |
enabled | boolean | Yes | |
folderId | integer | No | unique ID of the folder this schedule is in |
globalProps | dictionary | No | |
id | integer | No | a unique id of the schedule, assigned on creation by IndigoServer |
name | string | Yes | the unique name of the schedule - no two schedules can have the same name |
nextExecution | datetime.datetime / None | | |
pluginProps | dictionary | No | |
randomizeBy | integer | Yes | the number of minutes (plus or minus) Indigo should use to randomize the execution of the schedule. |
remoteDisplay | boolean | Yes | true if remote clients should display the schedule, otherwise false (does not affect the Indigo client UI |
sharedProps | dictionary | No | |
sunDelta | integer | | |
suppressLogging | boolean | Yes | true if Indigo should skip logging the schedule's execution in the event log, otherwise false |
timeType | indigo.kTimeType | | |
upload | boolean | Yes | true if IndigoServer should attempt to upload this schedule to the interface |
Commands (indigo.schedule.*)
Delete
Delete the specified schedule.
| Command Syntax Examples |
indigo.schedule.delete(123)
|
| Parameters |
| Parameter | Required | Type | Description |
| direct parameter | Yes | integer | id or instance of the schedule to delete |
Duplicate
Duplicate the specified schedule regardless of the type. This method returns a copy of the new schedule.
| Command Syntax Examples |
indigo.schedule.duplicate(123, duplicateName="my duplicate name")
|
| Parameters |
| Parameter | Required | Type | Description |
| direct parameter | Yes | integer | id or instance of the schedule to duplicate |
duplicateName | No | string | name for the newly duplicated schedule |
Enable
Enables or disables the specified schedule.
| Command Syntax Examples |
indigo.schedule.enable(123, value=True, delay=0, duration=0)
|
| Parameters |
| Parameter | Required | Type | Description |
| direct parameter | Yes | integer | id or instance of the schedule to enable/disable |
value | Yes | bool | set to True to enable the schedule, False to disable the control |
delay | No | int | the number of seconds to wait before executing the command |
duration | No | int | the number of seconds to wait before reverting the executed command |
Execute
Execute the specified schedule.
| Command Syntax Examples |
indigo.schedule.execute(123, ignoreConditions=False, schedule_data=None)
|
| Parameters |
| Parameter | Required | Type | Description |
| direct parameter | Yes | integer | id or instance of the schedule to execute |
ignoreConditions | No | bool | True will execute the schedule regardless of the conditions set within the schedule, False will honor them |
schedule_data | No | object | data to be passed to the schedule before it is executed |
Get Dependencies
Get the dependencies of the specified schedule. Returns an indigo.Dict object that contains the schedule's dependencies. Will return an empty indigo.Dict object if the schedule has no dependencies.
| Command Syntax Examples |
indigo.schedule.getDependencies(123)
|
| Parameters |
| Parameter | Required | Type | Description |
| direct parameter | Yes | integer | id or instance of the schedule |
Move to Folder
Move the specified schedule to the designated folder.
| Command Syntax Examples |
indigo.schedule.moveToFolder(123, value=)
|
| Parameters | |
| Parameter | Required | Type | Description | |
| direct parameter | Yes | integer | id or instance of the schedule | |
| value | Yes | int | string | id or instance of the schedule |
Move to Folder
Remove any outstanding delayed actions from the specified schedule.
| Command Syntax Examples |
indigo.schedule.removeDelayedActions(123)
|
| Parameters |
| Parameter | Required | Type | Description |
| direct parameter | Yes | integer | id or instance of the schedule |