I also don't need my immediate todo list on a calendar. I organize my to-do list simply as "Immediate", "Future", "Distant future", and then put things under heading. Sometimes I add a due date if there is one.
I just had a few markdown documents in a "todo" folder, eg <work>.md <project1>.md etc. Recently I changed it to org-mode because that's a syntax designed for the purpose. https://nvim-orgmode.github.io/ works excellently.
Never been an emacs user in my life. I spent about 5 minutes perusing https://orgmode.org/org.html and was able to do the same.
I use syncthing to sync it between my devices. https://www.orgzlyrevived.com/ works great on android.
I understand the privacy concerns, I can host a nextcloud in a secure location if I need it.
DESCRIPTION: not secret
DTSTART:with week
X-mydata:
ENCODING=Ascii85;FMTTYPE=application/octet-stream
<~6q($A;Fs\a8P`)B+EM+(Eb0>"6r[)a5uLZCGA2/4+D>\9EcVQ~>
and then just decode that and replace the X-mydata with the decoded data: DESCRIPTION: secret
DTSTART: with hours
perhaps support for removing existing fields that is in the encrypted blob as well, if you do not need state in the encryption it should be good. I do not know how to create a good encryption protocol so I am sure there are lots of stupid ways to mess this up. I only need to encrypt the content of my description and time I never need to hide that I created a meeting when I had a meeting with a Spy from the NSA.