AFAIK there isn’t an easy way to do what you want…
Here’s an outline for scheduled notifications that might help you get started.
Script to create calendar event
alias: Schedule a Notification Event
sequence:
- service: calendar.create_event
data:
summary: >
{% set d = {
'Person 1': 'notify.mobile_app_1',
'Person 2': 'notify.mobile_app_2',
'All Mobile': 'notify.all_mobile',
'Whole House TTS': 'notify.alexa_media_everywhere' }%}
{{ { "service": d.get(states("input_select.scheduled_notifications_target")),
"message": states("input_text.scheduled_notification_message") } }}
description: Notification Added via UI
start_date_time: "{{ (states('input_datetime.scheduled_notification')}}"
end_date_time: >
{{ states('input_datetime.scheduled_notification')
| as_datetime + timedelta(minutes=10)}}
target:
entity_id: calendar.home_assistant_events
- delay: 3
- alias: Clear the helper so the input row is empty
service: input_text.set_value
data:
value: ""
target:
entity_id: input_text.scheduled_notification_message
mode: single
Automation to send notification
alias: Notify - Scheduled
description: Use UI-Added Calendar Events to send scheduled notifications
trigger:
- platform: calendar
event: start
entity_id: calendar.home_assistant_events
variables:
summary_from: |
{{ trigger.calendar_event.summary
|replace("\'","\"")|string|from_json }}
condition:
- condition: template
value_template: |
{{ trigger.calendar_event.description
== 'Notification Added via UI' }}
action:
- service: "{{ summary_from.service }}"
data:
title: Scheduled Notifications
message: "{{ summary_from.message }}"
mode: parallel
Dashboard Card
Card Config
type: custom:stack-in-card
cards:
- type: entities
entities:
- entity: input_select.scheduled_notifications_target
name: 'Select Notification Target:'
- entity: input_datetime.scheduled_notification
name: Notification Date & Time
- entity: input_text.scheduled_notification_message
name: 'Notification Message:'
type: custom:text-input-row
- show_name: true
show_icon: true
type: button
tap_action:
action: call-service
service: script.turn_on
target:
entity_id: script.schedule_notification_event
data: {}
entity: script.schedule_notification_event
icon_height: 28px
icon: mdi:calendar-edit
title: Schedule Notifications
Things to consider:
Calendars are only read every 15 minutes, so if you think you might be scheduling notifications that are sooner than that you will need to include an action in the script to reload the automation to force a calendar update.
If you really need to have repeating notifications you may want to take look at this thread about using alerts with conditional logic.
