The iCalendar format also supports saving tasks in form of VTODO-entries, with the same file extension as normal events: .ics. Many CalDAV servers support synchronizing tasks, vdirsyncer does too.

todoman is a CLI task manager supporting vdir. Its interface is similar to the ones of Taskwarrior or the todo.txt CLI app. You can use filesystem with it.

Setting up vdirsyncer

For this tutorial we will use NextCloud.

Assuming a config like this:

status_path = "~/.vdirsyncer/status/"

[pair calendars]
conflict_resolution = "b wins"
a = "calendars_local"
b = "calendars_dav"
collections = ["from b"]
metadata = ["color", "displayname"]

[storage calendars_local]
type = "filesystem"
path = "~/.calendars/"
fileext = ".ics"

[storage calendars_dav]
type = "caldav"
url = ""
username = "..."
password = "..."

vdirsyncer sync will then synchronize the calendars of your NextCloud instance to subfolders of ~/.calendar/.

Setting up todoman

Write this to ~/.config/todoman/todoman.conf:

path = ~/.calendars/*

The glob pattern in path will match all subfolders in ~/.calendars/, which is exactly the tasklists we want. Now you can use todoman as described in its documentation and run vdirsyncer sync to synchronize the changes to NextCloud.

Other clients

The following client applications also synchronize over CalDAV: