Khal

From wikinotes

Commandline calendar tool.
Supports CalDav. Loads calendars from vdir folders (inspired by mbox/maildir).

Khal depends on an external vcal server, and vdirsyncer. For a full setup see baikal for a VCal/VCard server, and vdirsyncer for instructions on setting up a vdir directory.

Documentation

official docs http://khal.readthedocs.org/en/latest/configure.html
github https://github.com/pimutils/khal

Locations

~/.config/khal/config config

Install

pacman -S khal          # archlinux
pkg install py38-khal   # FreeBSD
sudo pip2 install khal  # other

Usage

NOTE:

I wrote a wrapper function cal that uses cal-like date selection.

ikhal                               # interactive calendar
khal                                 # see calendar at now
khal calendar at 2021-12-01T10:00pm  # see calendar at datetime (in configured 'datetimeformat')
khal calendar 2021-12-01T10:00pm

khal agenda   -a my_calendar         # prints events for that day
khal calendar -a my_calendar         # prints all calendars
khal search    party                 # search all events for work 'party'

khal printcalendars                  # list available calendars
khal import -a my_calendar file.ics  # import event

Config

Khal's config is fairly simple, simply choose a vdir for a calendar, and choose the colour it should be displayed in.
Khal's configuration is parsed using python configobj, but you can also parse with builtin python configparser.

# ~/.config/khal.conf
[calendars]
	[[default]]
		path  = ~/.calendars/default/
		color = dark green
	[[work]]
		path  = ~/.calendars/work/
		color = #FFFFFF