Add agenda mode to ical command

Registered by Chris Parsons

Add a new option to "ical" mode where
a) only "active" tasks are output
b) instead of the tasks due date, the vevent start time is today

The idea is the vevent is a list of "todo" items to be achieved today. I use this with my mobile phone - the calendar application is better than the todo application.

Two new configuration options control the time at which the events appear in today's calendar.

agenda_time is a string in the form "10:00". By default tasks are scheduled starting at this time and then at 15 minute intervals.

additionally agenda_place_time can be used to specify that tasks with certain contexts should be scheduled in a different part of the day. This is a dict of the form

agenda_place_time = dict(home="19:30",work="12:00")

Tasks with these contexts will be based at the given time of day, in 15 minute increments. Tasks with no or other context will be scheduled from agenda_time.

I've implemented this as
    lp:~cjparsons1/tkdo/agenda

(Note on exactly how I use this:
In the morning I review my task list and set active the things I want to achieve today. I put the resulting ics file on a memory stick. When I get to work I plug in the memory stick.
Separately my mobile phone automatically syncs to a personal folder tree in Outlook.
Running every couple of hours In the background I have a scheduled python task which
a) removes any previous day's items from outlook
b) reads the .ics file and puts the events into outlook for today

Then when my phone synchronises again, the appointments show up in the calendar application on my phone.

There is also a sync in the other direction: it's very quick to add todo items in my phone when I think of a task that needs doing. These get synced to Outlook. The background python task takes these out of outlook (which will remove them from the phone) and appends them to the end of a tkdo .otl file. They are then there for review the next time I look at them.)

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
None
Direction:
Needs approval
Assignee:
None
Definition:
New
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.