I like to use lightweight tools whenever possible as there is no point in running IceWM if one uses KDE or GNOME applications for everyday tasks. Because my memory is far from perfect, I like my computer to remind me about the projects I have to work on and about classes I have to attend.
There are some obvious choices for this kind of task if one uses KDE or GNOME. For exapmle, Korganizer would be great tool for keeping your calendar and to do lists. I decided to use a command line tool, remind, for storing all the information about my meetings, classes, and deadlines.
Remind uses a plain text file for storing information. The syntax for ordinary reminders is pretty simple and evident, as you can see from a few lines of my .reminders:
REM 22 September AT 16:00 YLY Mercatori
REM Tue AT 08:30 YLY/MENY1
REM Tue AT 11:15 TKMY1_ls17
REM Tue AT 14:15 RuIb1
These are reminders for a meeting on the 22nd of September at 16:00 and three reminders for my classes on tuesdays. It is possible to use much more sophisticated reminders that have rules for deciding the date of some action. You can also set the remind to warn you in advance, before the actual date of the reminder, but I like to keep my reminders simple.
I like to use remind for printing a schedule for the next week every sunday. As I have stored my reminders in the file .reminders this can be done easily with a simple command: rem -c+1
If a weekly calendar is not enough for you, you might consider printing out a PostScript calendar of your reminders for the next twelve months with remind -p12 .reminders |rem2ps >remind.ps.
There are many good sites about using remind in an efficient way. Let your computer remind you of your meetings, classes and deadlines. It will help you to get things done!
 Manage your time with Remind
 Remind: The Ultimate Personal Calendar
 43 Folders' wiki