I've been using xterm, urxvt, and st. Also tested alacrity, kitty, and wezterm. Your shell also plays a critical role in your terminal usage (but I won't deviate here).
For my use-case, the latter are overkill so I stayed with st. The only missing feature for me was image support even though I use it sporadically. To cover that I use a script that relies on ueberzug or ucollage if I need to browse folders.
I've wrote a small post about ucollage if you're interested.
Khal is also my app of choice for calendars, though it may not suit OP requirements since files are .ics Everything is kept in sync on my phone with Etar and DavX5.
Note that khal itself is the CLI aspect. It's interactive interface (ikhal) is really the TUI aspect of this app.
ikhal is great to manage events but I prefer to use the command-line to create events. And this is the only minor complaint I have against khal: its lengthy commands and lack of user friendly dates support (like "today", "next mon"...). Luckily all of that is easily fixable with a script which I should upload on my codeberg one day... I actually ended up adding edition and deletion support using (neo)vim and fzf so I don't use ikhal anymore but only creating events is really faster and easier with my script compare to using ikhal.