Dynamic notifications using text field and time in card

My wife has a bad habbit of asking me to remind her to do X at X time or “when i get home”. Of course, I always forget.
How might I go about crating a card whene I can type in free text, select time and phone to call notification push message to phone?
I would want to use action for acknowledgement, clearing the text within the card.
If notification cleared (clicking X or swipe up) or notascknowledged after 5 minutes, loop every 5 minutes until acknowledged.

This would also be great to use for washing machine notifications :exploding_head: haha

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
  - service: calendar.create_event
      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)}}
      entity_id: calendar.home_assistant_events
  - delay: 3
  - alias: Clear the helper so the input row is empty
    service: input_text.set_value
      value: ""
      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
  - platform: calendar
    event: start
    entity_id: calendar.home_assistant_events
      summary_from: |
        {{ trigger.calendar_event.summary
        |replace("\'","\"")|string|from_json }}
  - condition: template
    value_template: |
      {{ trigger.calendar_event.description 
      == 'Notification Added via UI' }}
  - service: "{{ summary_from.service }}"
      title: Scheduled Notifications
      message: "{{ summary_from.message }}"
mode: parallel

Dashboard Card

Card Config
type: custom:stack-in-card
  - type: 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
      action: call-service
      service: script.turn_on
        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.