Qt manage events and tasks using simple text files

etm is an acronym for event and task manager. This application provides a simple, intuitive format for using plain text files to store events, tasks and other data items. Items can be created, modified and viewed in a variety of convenient ways using either the command line or a cross-platform, PyQt based GUI. Repetition is supported in a powerful and flexible manner for tasks as well as events. Supported alarm types in the GUI include display, sound, voice (using system text to speech), email, text message and process.

This is the home page for the version of etm that is based on Qt. A newer version based on Tk is available at etmtk.

In contrast to most calendar/todo applications, creating items (events, tasks, and so forth) in etm does not require filling out fields in a form. Instead, items are created as free-form text entries using a simple, intuitive format and stored in plain text files.

Items in etm begin with a type character such as an asterisk (event) and continue on one or more lines either until the end of the file is reached or another line is found that begins with a type character. The beginning type character for each item is followed by the item summary and then, perhaps, by one or more @key value pairs. The order in which such pairs are entered does not matter.

A sales meeting (an event) [s]tarting seven days from today at 9:00am and [e]xtending for one hour with a default [a]lert 5 minutes before the start: * sales meeting @s +7 9a @e 1h @a 5

The sales meeting with another [a]lert 2 days before the meeting to (e)mail a reminder to a list of recipients: * sales meeting @s +7 9a @e 1h @a 5 @a 2d: e; who@when.com, what@where.org

Prepare a report (a task) for the sales meeting [b]eginning 3 days early: - prepare report @s +7 @b 3

A period [e]xtending 35 minutes (an action) spent working on the report yesterday: ~ report preparation @s -1 @e 35

Get a haircut (a task) on the 24th of the current month and then [r]epeatedly at (d)aily [i]ntervals of (14) days and, [o]n completion, (r)estart from the completion date: - get haircut @s 24 @r d &i 14 @o r

Payday (an occassion) on the last week day of each month. The &s -1 part of the entry extracts the last date which is both a weekday and falls within the last three days of the month): ^ payday @s 1/1 @r m &w (MO, TU, WE, TH, FR) &m (-1, -2, -3) &s -1

Take a prescribed medication daily (a reminder) [s]tarting today and [r]epeating (d)aily at [h]ours 10am, 2pm, 6pm and 10pm [u]ntil (12am on) the fourth day from today. Trigger the default [a]lert zero minutes before each event: * take Rx @s +0 @r d &h 10, 14, 18, 22 &u +4 @a 0

Presidential election day (an occasion) every four years on the first Tuesday after a Monday in November: ^ Presidential Election Day @s 2012-11-06 @r y &i 4 &M 11 &m (2,3,4,5,6,7,8) &w TU

Join the etm discussion group (a task) [s]tarting on the first day of the next month. Because of the @g (goto) link, pressing Ctrl-G when the details of this item are displayed in the gui would open the link using the system default application which, in this case, would be your default browser: - join the etm discussion group @s +1/1 @g http://groups.google.com/group/eventandtaskmanager/topics

Approximately 29 minutes - click image to play.

Please share your ideas in the discussion group at GoogleGroups.

Copyright (c) 2009-2013 Daniel Graham (//daniel.graham at duke dot edu) . All rights reserved.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.