ToDo Lists: Callback or info about last "completed"

I often have ToDos like “Change filter” or “clean drain” that my home needs to be done by me every 6 months.

Is it possible to get information about when a ToDo has been completed so that my scripts can add a new task after 6 months?

(Or is it possible to add a start date and a callback? Then the script could itself trigger a callback to add this ToDo again in 6 months after completing the Todo)

I am also wondering about this.

I found that you can get the time that a task was completed from the event fired for the update_item service call, but this does not seem to be stored anywhere.

event_type: call_service
data:
  domain: todo
  service: update_item
  service_data:
    rename: Replace Furnace Filter:(Period:90 days;Last:2023-06-01)
    status: completed
    entity_id:
      - todo.home_chores
origin: LOCAL
time_fired: "2023-11-10T00:13:45.221237+00:00"

I then had the idea to listen for this event, and take the date from time_fired, and put it back into the item name with an automation (along with the repeat period), like so:
Replace Furnace Filter:(Period:90 days;Last:2023-06-01)

The idea being that a script/automation could loop over the task list once per day, and process each name to determine whether or not it is due, change the status to needs_action, and send a notification to my phone…but that’s where I am stuck. There is no way to read the list of tasks. As far as I can tell, the only time any task info is available is when it has been changed, and it is sent in an event/service call.

Appreciate any ideas here, especially if I am missing something obvious. I feel like this To-Do integration has huge potential, and this is a great first step, but it just needs a couple more things to be able to be fully utilized.

@allenporter as a feature request, would it be possible to add an attribute for this? Pulling a list doesn’t include a timestamp of when something was completed. Maybe something list last_completed ?

todo.mychores:
  items:
    - summary: Haircut - 60
      uid: cffe0004-900c-11ee-a3bf-32c19558e75f
      status: completed
      last_completed: TIMESTAMP_HERE
    - summary: Take out trash
      uid: f94c6ad4-900e-11ee-89a4-32c19558e75f
      status: needs_action

Hi, best not to tag folks directly here. Yes, any attributes in the rfc5545 spec are technically possible.