How to install watdo
- Download and install ActivePython
- Open Command Prompt
pypm install watdo
# A task-manager for the command line.
- Watdo stores task lists as directories and tasks as [iCalendar](https://en.wikipedia.org/wiki/ICalendar) files in these directories. Because CalDAV basically uses the same storage structure, it is very easy to access tasks of a remote CalDAV server using watdo and davfs.
- Watdo will open a markdown-file containing your tasks in an editor of your choice. Any changes you make to that file will be mirrored to the described storage system after closing the editor.
- Watdo will never support syncronization to remote servers in the core. Instead, these tasks should be accomplished by additional programs that access watdo's storage. This concept is inspired by the popular combination of mutt and offlineimap.
- Watdo is written in Python 2 and depends on the icalendar package on PyPI.
# Full tutorial: watdo + davfs + owncloud
- Install watdo with pip install --user watdo.
- First you will need the proper CalDAV URL for your calendars. For ownCloud 5 this is https://my.server/remote.php/caldav/calendars/yourusername/.
- Configure davfs. I won't go into this. [ArchLinux' wiki has a complete yet concise guide on it.](https://wiki.archlinux.org/index.php/Davfs) I'll assume you have your /etc/fstab set up to mount your calendar at /mnt/calendar. Add mount /mnt/calendar to the autostart of your desktop and you won't have to bother about authentication any more.
Run watdo from the command line. It will ask you a few questions. If it asks you where your tasks are stored, say /mnt/calendar.
Your favorite editor should open. Edit the file as you wish. It's a markdown file that maps calendars/task-lists to markdown headlines and tasks to list items.
The first line contains the summary and some other metadata. It looks something like this:
SUMMARY[ -- FLAGS]
The flags part is a semicolon (;) separated list of the following properties, all of them optional:
Date -- (YYYY/mm/dd), time (HH:MM) xor datetime (YYYY/mm/dd HH:MM).
Status -- one of the values specified in [the iCalendar standard](http://www.kanzaki.com/docs/ical/status.html).
If you get the syntax of your file wrong, watdo should allow you to edit it again after showing an error. It's still in alpha though.
Save and close the file. Watdo shows all changes you've made in a basic overview:
- Modify: My cool task => My super-cool task
- Delete: Something useless
If you don't want watdo to do these things, enter 0 1 and hit enter. You could also hit ^C.
Tasks with the status COMPLETED or CANCELLED are not shown by default. You can view these tasks with watdo -a.
# Bonus: Offline sync 1. Play around with watdo and look what it does to the files in
/mnt/calendar. Then take a look at [Unison](http://www.cis.upenn.edu/~bcpierce/unison/). It is able to sync two folders, like rsync. But unlike rsync, it doesn't ignore changes on one side.
- Edit ~/.watdo/config and remove your custom path. Create the directory
~/.watdo/tasks/ and copy everything from /mnt/calendar/ over there. Then run unison -batch /mnt/calendar/ ~/.watdo/tasks/. It won't do anything, since both folders are up-to-date.
Use watdo to modify your tasks somehow. You probably will notice the performance improvements.
Run unison -batch /mnt/calendar/ ~/.watdo/tasks/ after your changes.
Set up some sort of cronjob that runs the unison command for you.