LibreTasker is an event-based task performer, similar to Tasker. This means that you can trigger Actions when events (filtered on input) occur, taking into consideration current state. Supported events (and their conditions): - Network: - Type: Wifi / Cellular / VPN - State: Connected / Disconnected - SSIDs: List of SSIDs when Type is Wifi - DateTime (Similar to cron): - Month: List of ints - DOM: List of ints (Day of Month, 1-31) - DOW: List of ints (Day of Week, 1-7) - Hour: List of ints (00-24) - Minute: List of ints (00-59) - InvertHour: boolean (whether to invert the match on the 'Hour' field) - InvertMinute: boolean (whether to invert the match on the 'Minute' field) - Screen: - OFF: boolean (whether to trigger on ON or OFF ) - SMS: - BodyRegex (String, Regex) - NameRegex (String, Regex) - Sender (String, matching Phone number exactly) - PhoneCall: - Name (String) - Number (String) - State (String) { RINGING, IDLE } There's an special event called 'State'. State takes a Key (String) and Value (Object). This gets triggered automatically when an Action with type 'State' **changes** its value. Supported Actions (and their parameters): - Toast: - String (text to display) - Notification: - , with 2 Pairs: Title and Value, both must be non-null. - Beep: - None (Plays the default notification ringtone) - Volume: - Stream (Ring, Alarm, Music, Notification, System), Volume in % - State: - , set a state key to a value. Will trigger the 'State' special event if the value changed. For example you could do something like: - At 22:59 => Set Ringtone volume to 0% - At 7:59 => Set Ringtone volume to 100% or achieve the same thing with states: - Between 22:59 and 7:59 => Set state 'sleepy' to true - On 'sleepy' change to true => Set volume to 0% - On 'sleepy' change to false => Set volume to 100%