Proper way to schedule automation based on reoccurring day, date, week, with time?

I would like to schedule automations using the UI based on these scenarios:

  1. Every week on a certain day and certain time
  2. Every x weeks on a certain day and time
  3. Every specific date or dates of month

I am looking for help with the best way to create these automations using the GUI rather than YAML, what triggers and conditions are used? Do I need to create a helper?

Thank you.

I think these will all need template conditions if done via the UI.

  1. Time trigger for the certain time; use a template condition like {{ now().isoweekday() == 2 }} for Tuesday.
  2. As before, but with an additional template condition to ensure it’s been long enough since last run. Something like this, where the “3.5” says it must be 3½ weeks since last run, so it’ll run every four weeks on the given weekday.
{{ now()|as_timestamp -
   state_attr('automation.AUTOMATION_NAME', 'last_triggered')|as_timestamp(0) >
   3.5 * 7 * 86400 }}
  1. Same as 1, but with a different template condition, like {{ now().day == 11}} for the 11th of the month; or {{ now().day in [11,22] }} for the 11th or 22nd.
1 Like

Or use a local calendar and trigger off that.

2 Likes

Thank you, @Troon and @tom_l, I found the local calendar integration. Looks promising!