workday binary sensor indicates whether the current day is a workday or not.
It allows specifying which days of the week will count as workdays and also uses the Python module holidays to incorporate information about region-specific public holidays.
This can be used to make daily automations that act differently on workdays than non-workdays. For example, you could make your bedroom lights turn on (gently) at 7 in the morning if it is a workday but wait until 11 if it is a non-working day.
Check the country list for available provinces (and other subdivisions, like states and territories) for each country.
To add the Workday integration to your Home Assistant instance, use this My button:
If the above My button doesn’t work, you can also perform the following steps manually:
Days are specified as follows:
holiday is used for public holidays identified by the holidays module and holidays added by the
add_holidays configuration option.
Take note of the
holiday keyword. Your first instinct might be to add it to the
exclude configuration, thinking it means skipping the holidays. But it is meant to exclude the days in the holiday list from the workdays. So, when you exclude
holiday and a workday falls on that day, that workday is excluded, and the sensor will be off. If you want every workday flagged with no regard to holidays, ensure that there is something in your
Excludes configuration other than
Country code must be given according to holidays notation. The country can also be set to
None to start with an empty set of holidays. This is useful in conjunction with the add holidays field.
Subdivision code must be given according to holidays notation.
Add holidays will only take dates formatted with
YYYY-MM-DD or a date range formatted with
Remove holidays will take dates formatted with
YYYY-MM-DD, a date range formatted with
YYYY-MM-DD,YYYY-MM-DD or partial of name, for example,
christmas will exclude
The offset can be used to see if future days are workdays. For example, put
1 to see if tomorrow is a workday.
This service populates Response Data providing feedback if the date is a workday or not.
|Service data attribute||Required||Description||Example|
||yes||Date to test if workday or not.||2022-03-10|
service: workday.check_date target: entity_id: binary_sensor.workday data: check_date: "2023-12-25" response_variable: check_date
The response data field
check_date is providing:
||Is date a workday.||True|
Example usage for automation:
automation: alias: "Turn on heater on workdays" trigger: platform: time at: "08:00:00" condition: condition: state entity_id: binary_sensor.workday_sensor state: "on" action: service: switch.turn_on target: entity_id: switch.heater