Welcome, guest | Sign In | My Account | Store | Cart

Notice! PyPM is being replaced with the ActiveState Platform, which enhances PyPM’s build and deploy capabilities. Create your free Platform account to download ActivePython or customize Python with the packages you require and get automatic updates.

pypm install watdo

How to install watdo

  1. Download and install ActivePython
  2. Open Command Prompt
  3. Type pypm install watdo
 Python 2.7Python 3.2Python 3.3
Windows (32-bit)
Windows (64-bit)
Mac OS X (10.5+)
Linux (32-bit)
Linux (64-bit)
0.1.2 Available View build log
Lastest release
version 0.1.2 on Jan 9th, 2014

# 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

  1. Install watdo with pip install --user watdo.
  2. First you will need the proper CalDAV URL for your calendars. For ownCloud 5 this is https://my.server/remote.php/caldav/calendars/yourusername/.
  3. 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.
  1. 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.

  2. 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:


    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.

  3. Save and close the file. Watdo shows all changes you've made in a basic overview:

    1. Modify: My cool task => My super-cool task
    2. Delete: Something useless

    If you don't want watdo to do these things, enter 0 1 and hit enter. You could also hit ^C.

  4. 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

System Message: ERROR/3 (<string>, line 71)

Unexpected indentation.
/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.
  1. 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.

  2. Use watdo to modify your tasks somehow. You probably will notice the performance improvements.

  3. Run unison -batch /mnt/calendar/ ~/.watdo/tasks/ after your changes.

  4. Set up some sort of cronjob that runs the unison command for you.

Subscribe to package updates

Last updated Jan 9th, 2014

What does the lock icon mean?

Builds marked with a lock icon are only available via PyPM to users with a current ActivePython Business Edition subscription.

Need custom builds or support?

ActivePython Enterprise Edition guarantees priority access to technical support, indemnification, expert consulting and quality-assured language builds.

Plan on re-distributing ActivePython?

Get re-distribution rights and eliminate legal risks with ActivePython OEM Edition.