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
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.