FeatureUSENIX

 

Agenda: a reminder tool

anastacio_rui
Rui Miguel Dias Anastacio
<[email protected]>

Rui Anastacio is a system analyst/programmer at UNISYS/M&P in Lisbon,Portugal, working mainly with Oracle databases. He has experience with many languages like C++ and Cobol, and some graphics libraries like Motif and Qt.

Agenda is a small, multiplatform tool with one purpose: to inform the user about scheduled events. How many times have you forgotten a friend's birthday or anniversary or some exhibition you wanted so much to see? With Agenda you merely enter the event description, date, the number of days you want to be informed before the event, and some other things, and that's it. Just turn on the computer and you'll be told all about it.

Agenda is divided in two scripts written in Tcl/Tk. The availability of this language on a wide variety of platforms makes it possible to run this application in many environments. For more information on Tcl/Tk refer to Scriptics home page at: <http://www.scriptics.com> or The Tcl/Tk Consortium at <http://www.tclconsortium.org>.

Downloading, Installing and Configuring Agenda

To download Agenda go to <http://www.geocities.com/SiliconValley/6333/agenda>. This is the official, and only, site. Download the files Readme, agenda, and agenda_chk. A brief description of each follows:

  • Readme (text file). This contains installation procedures and other information.
  • agenda (Tcl/Tk script). This script is the editor of events. You can add, remove, or edit events written in the event file.
  • agenda_chk (Tcl/Tk script). This script will read the event file and notify you about the events that are going to happen.

To install and configure Agenda follow these three steps:

Step 1

Change the parameters in the first lines of the scripts. In the script agenda:

EVENT_FILE: the path and name of the text file where the events are to be stored. In a UNIX environment this should be something like ~/.events. This is the default. If you are a no-UNIX user, this will probably not work. For example, a Windows user might change it to c:\data\events.

In the script agenda_chk:

EVENT_FILE should be exactly the same as in agenda

WIDTH: number of columns in the window list of events presented by this script

POS_X, POS_Y: the position on screen of the window list

Step 2

Copy the modified scripts to some directory in your path.

Step 3

Edit the startup procedure of your machine to call agenda_chk. This way your machine will inform you of the schedule at startup. You can call agenda_chk any other time.

Note that the first line of each script has a reference to the wish interpreter. Though usually installed in /usr/local, this might not be the case. If not, you have to change this line appropriately.

Working with Agenda

Now we are ready to go. Let's start by calling the Agenda editor. You should see a window with two buttons on top, about and quit, and four buttons on the bottom, add, edit, mark/unmark for removal, and write. In the middle is the list of events in the event file. It should be empty now.

Let's add an event. Pressing add will pop up a window requesting the event data:

? Event: the name of the event. For our tour type "Ana's Anniversary."

? Day: the day of the event. Let's assume it's February 12. Type 12.

? Month: the month: Type 2

? Year: Any year should do. Type an asterisk (symbol *). The asterisk can be used in the day and month fields, too. When agenda_chk finds this symbol, it replaces it with the current day/month or year.

? Before: number of days before the event you should be notified. For example, if you type 5, then you are notified from day 7 (12-5) on. (This gives you time to buy Ana her present.)

? After: number of days after the event you should still be notified. If you type 2, you will be notified until day 14. (In case you don't turn on the computer until the 14th, you can always call Ana and make up a tale.)

? Action: this field has three flags: Cyclic, Once, and Don't show.

? Cyclic: if flag is on, then after the event has been posted, it is left in the event file. If off, this event is deleted from the event file and appended to the event log. In our case it should be on.

? Once: if on, you are notified only once during the valid period, that is between days day-before and day+after. If off, you are notified every time in that period. Just leave it off.

? Don't show: if on, this event will not be shown. This flag is turned on after the first notification when Once is on.

? Command: command to run. Let's say you have a playmidi program and a birthday.wav sound file. Type "playmidi birthday.wav". This can be very useful for periodic tasks like backups or other system maintenance.

? Comments: any comments needed. Just type "Buy her something nice."

Because the separator used in the event file is the comma, be sure never to use it in the fields described above. Press OK to add the event. It should appear in the list. As an exercise, add two or three more events that should be noted today. To edit, just press the button. To delete, mark it as deleted (D).

Finally, press the write button to actually write the list to the event file.

Now let's call Agenda_chk to check the events. If any of those extra events you supposedly added is correct, you should have something on the list. Events with an * at the beginning have extra comments. Double click on them to see the comments.

The File Format

The format is as follows:

Day:month:year:before:after:action:command:event

In the action field we can find the letters c, o, or x if the flags cyclic, once, or don't show are on respectively. Should you want to write more about an event, just terminate the line with a backslash and continue on the following line. Several lines are permitted, just terminate them with the backslash. Note: use a \ only if there is another line to come. Some examples
follow:

10:6:*:0:0:c:Portugal Day
15:*:*:0:10:co:backup_data:Data Backup
3:12:1998:0:4:::Contact Mike \
Discuss the house problem \
Don't forget to mention the payment method

Some Interesting Events

Next are some ideas worth looking at:

*:*:*:0:0:c:show_joke random:Joke a Day
1:*:*:5:0:c:backup:BACKUP TIME \
 mail boxes \
 mydata directory \
 server configuration
1:*:*:0:10:co:scanvirus alldrives:Checking for VIRUS
12:*:*:0:0:c::Tomorow is 13th. Lookout for VIRUS

The Future of Agenda

The future will be decided mainly by the acceptance of this application. If I have enough encouragement, I will try to work on it some more. If you like this application and find it useful, let me know. Send me mail with some nice words. Contributions are welcome. If you have new ideas for Agenda, more features, bug reports, etc., send them in. Another way to contribute is by building lists of events and distributing them. For example you could compile all the social events of your city and distribute it. This could boost your social life.

 

?Need help? Use our Contacts page.
First posted: 17th February 1999 jr
Last changed: 17th February 1999 jr
Issue index
;login: index
USENIX home