I second these recommendations. I've been using khal and khard (plus `todoman` for to-do list management). They're all nice tools that work well in my CLI-focused workflow. And `vdirsyncer` is a key component, that syncs to my other computers and phone, via a NextCloud instance.