I recently did a project.
Self-hosted Ntfy as communication, python bot in a container. If you say remember something It drops it into a text file verbatim. If you say remind me, It loads the text file into an ollama AI RAG and queries it with whatever you asked it to remind you. At the moment it can take a good 5 seconds to get back to you.
Then I added a grocery list and a separate bot that handles scheduling reminders. Remind me in 20 minutes to feed the dog. Forget this item. Remind me on the 20th of every April that it's fu's birthday.
At the moment, it's based on keywords and if you don't specify a keyword it just asks the model directly. I'm thinking about having it send all requests through the model and giving the model a prompt that has a determines what you're trying to do and translates that to a keyword that the bot can act on.