{"id":19224575,"url":"https://github.com/josephm101/appdaemon-schedules","last_synced_at":"2026-05-14T08:42:56.302Z","repository":{"id":198165214,"uuid":"700222211","full_name":"JosephM101/appdaemon-schedules","owner":"JosephM101","description":"A simple scheduler for automating binary switches for Home Assistant/AppDaemon","archived":false,"fork":false,"pushed_at":"2023-10-05T17:55:11.000Z","size":22,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-04T21:20:20.624Z","etag":null,"topics":["appdaemon","appdaemon-apps","hacs","hacs-custom","home-assistant"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JosephM101.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2023-10-04T07:23:32.000Z","updated_at":"2023-10-04T23:37:40.000Z","dependencies_parsed_at":"2023-12-31T04:15:09.143Z","dependency_job_id":null,"html_url":"https://github.com/JosephM101/appdaemon-schedules","commit_stats":{"total_commits":19,"total_committers":1,"mean_commits":19.0,"dds":0.0,"last_synced_commit":"2959da75f23e08ffaf36fc7b25dad84dba07beec"},"previous_names":["josephm101/appdaemon-schedule"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JosephM101%2Fappdaemon-schedules","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JosephM101%2Fappdaemon-schedules/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JosephM101%2Fappdaemon-schedules/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JosephM101%2Fappdaemon-schedules/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JosephM101","download_url":"https://codeload.github.com/JosephM101/appdaemon-schedules/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240298487,"owners_count":19779283,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["appdaemon","appdaemon-apps","hacs","hacs-custom","home-assistant"],"created_at":"2024-11-09T15:12:16.873Z","updated_at":"2026-05-14T08:42:51.269Z","avatar_url":"https://github.com/JosephM101.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# appdaemon-schedules\nA simple scheduler for Home Assistant/AppDaemon.\nOriginally written for controlling an irrigation system, but can be used to control anything with a binary on/off function.\n\nI wrote this because I couldn't find a library/applet for Home Assistant that was good enough to suit my needs, so I decided to make my own, aimed at being flexible and easy to set up, even for multiple schedules.\n\n\n## Install\n\n### Install using HACS\nNOTE: This applet is not currently in HACS' default repository, so it needs to be added as a custom repository.\n\n\u003cb\u003eTo add this repo to HACS, follow these instructions:\u003c/b\u003e\n- In your Home Assistant dashboard, click on `HACS` in the left-hand panel.\n- In HACS, click `Automation`.\n- At the top-left, click the three dots, and in the menu that appears, click `Custom repositories`.\n- In the dialog that appears, do the following:\n  - Paste this repo's URL (https://github.com/JosephM101/appdaemon-schedules) in the `Repository` box\n  - Select `AppDaemon` from the `Category` drop-down menu.\n  - Click `Add`\n- If the repository was added successfully, you should see it in the dialog. At this point, you can close the dialog.\n- Back in the `Automation` section of `HACS`, click on the `Explore \u0026 Download Repositories` button in the bottom-right corner of the page.\n- In the dialog that appears, type `schedule` in the search bar, click on the result that appears, and click the `Download` button. At this point, it should be just like installing a regular HACS addon. \n\n### Manual install (no updates)\n- Download this repository, and copy the \"schedule\" folder to \"appdaemon/apps\".\n- Add your configuration to `apps.yaml` by modifying one of the examples below to fit your needs. Once you add the configuration, the module will be enabled.\n\n\n## Usage\n\n```yaml\nmy_schedules:\n  module: schedule\n  class: Schedule\n  schedules: # ...\n```\n\n### Example `apps.yaml` configuration\n```yaml\n# Irrigation system\nmy_schedules:\n  module: schedule\n  class: Schedule\n  schedules:\n    water_the_plants:\n      on_at: \"8:00:00\" # 24hr\n      off_at: \"8:10:00\"\n      target_entity: switch.irrigator_switch\n```\n\n## 12-hour (AM/PM) time support\n#### \u003ci\u003eThis feature was introduced with version 1.0.1.\u003c/i\u003e\n\nThe variables `on_at` and `off_at`, by default, take 24-hour time strings. But optionally, you can provide 12-hour times using the `hour`, `minute`, `second` and `meridiem` parameters in place of the standard 24-hour time string.\n\n\n### Here's an example of the 12-hour format in action:\n```yaml\n# Irrigation system\nmy_schedules:\n  module: schedule\n  class: Schedule\n  schedules:\n    water_the_plants:\n      on_at:\n        hour: 8\n        meridiem: AM  # Accepts either AM or PM; not case-sensitive\n      off_at: \n        hour: 8\n        minute: 15\n        meridiem: AM\n      target_entity: switch.irrigator_switch\n```\nIn the above example, you might have noticed that the `minute` variable was missing from `on_at`. That's because `hour` and `meridiem` are the only required variables; `minute` and `second` default to 0 if not specified.\n\n### 12-hour time parameters:\n| Parameter name | Optional | Default value | Description |\n| --- | --- | --- | --- |\n| `hour`     | \u003ci\u003e False \u003c/i\u003e |     | An hour value (1 to 12)\n| `minute`   | \u003ci\u003e True  \u003c/i\u003e | `0` | A minute value (0 to 59)\n| `second`   | \u003ci\u003e True  \u003c/i\u003e | `0` | A second value (0 to 59)\n| `meridiem` | \u003ci\u003e False \u003c/i\u003e |     | AM/PM\n\n## Condition support for schedules\n#### \u003ci\u003eThis feature was introduced with version 1.0.2.\u003c/i\u003e\nRun conditions can be used to determine if your schedule should work or not. For example, if you have an irrigation system schedule, but there's rain in the weather forecast, you can use a condition to only run the irrigation system if the forecast is sunny.\n\n### Here's an example of the condition parameter\n```yaml\n# Irrigation system\nmy_schedules:\n  module: schedule\n  class: Schedule\n  schedules:\n    water_the_plants_on_one_condition:\n      on_at: '8:00:00'\n      off_at: '8:15:00'\n      target_entity: switch.irrigator_switch\n      conditions:\n        - sensor: weather.kfmh_daynight\n          state: \"sunny\" # Only run if it's sunny out\n```\n\n\n## Schedules: extra parameters\n| Parameter name | Optional | Default value | Description |\n| --- | --- | --- | --- |\n| `[schedule].react_immediately_when_conditions_change`   | \u003ci\u003e True \u003c/i\u003e | False | If set to true, as soon as a condition changes (eg. a switch is toggled), instead of waiting until the next cycle, immediately turn on/off the controlled entity (depending on whether it is supposed to be on or not)\n| `[schedule].change_state_on_schedule_load`              | \u003ci\u003e True \u003c/i\u003e |       | When the schedule is initialized (eg. after a settings change or at bootup), automatically set the state of the controlled entity (for example, if the current time is between the times specified in the `on_at` and `off_at` parameters, turn the entity on \u003ci\u003enow\u003c/i\u003e instead of waiting for the next cycle).\n\n## \u003cb\u003eTODO: Plans for the future\u003c/b\u003e\n- Allow for specifying a run duration instead of an end time\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjosephm101%2Fappdaemon-schedules","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjosephm101%2Fappdaemon-schedules","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjosephm101%2Fappdaemon-schedules/lists"}