DATEBOOK(1) SysV DATEBOOK(1)
NAME
datebook - calendar and reminder program for X11
SYNOPSIS
datebook [-Ww] [-Vv] [-Dd date] [-Ff datefile]
DESCRIPTION
Datebook (Event Timer) was written to solve the never-ending problem of
forgetting when you need to attend a meeting, go to the doctor, or phone
home. Datebook provides calendar features that let you browse your
events for a particular day or week, as well as reminder features that
notify you before particular events.
Events that are specified with a time will generate alarms. In the X11
environment, an alarm will cause an alarm window to appear on the user's
screen. This window will present the user with the option to
acknowledge, delay (snooze) or delete the event in question. Outside of
X11 the user can have datebook call a program or script when the alarm
occurs (see AlarmNotify).
Events can be classified into various event classes. Each class can have
a different amount of time that the user will be warned in advance of the
event. For example, for local meetings you might want 5 minutes warning,
but if the meeting is offsite, then 30 minutes warning would be more
appropriate. The class can also specify the time to "snooze" before
repeating an alarm. The class can also be used to specify a bitmap to be
displayed in the alarm window.
OPTIONS
datebook options are case insensitive. You may use capital or lower-case
letters for command-line options.
-W List the events for the next week to stdout. This option will not
bring up X windows and will therefore work outside of X.
-D date This option is like the list week option, but it only lists the
events for a particular date. This date should be in a simple
date (month, day and year) like 12/14/89 or November 28. If used
in combination with -W the week starting at date will be listed.
-F datefile
This option allows the user to start with one or more (one -F
option per file) date files instead of the date files specified
by the ~/.datebookrc file.
-V Turns on the verbose mode. The program will print additional
information about the program state.
Display
The calendar window is composed of three parts: previous and next month
buttons, a pull-down menu bar, and the calendar portion. The previous
and next month buttons allow you to change to the previous and next
month's calendar. There are two pull-down menus on the menu bar. The
first is labeled "Cmds," and allows access to datebook commands. The
second, labeled with the name and year of the current month, allows you
to change the currently displayed year and month.
In the calendar portion, the left mouse button will select (highlight) a
date and pop up a browser on that date.
The browser window is composed of three major parts: the event list
portion, the buttons portion and the event specification portion.
In the event list portion each line is composed of fields which summarize
the event. The fields in the list are: the starting time of the event
(if specified), the ending time of the event (if specified), and the
first line of the event description.
The left mouse button in the event list portion will select an event, and
display the complete event specification in the bottom portion of the
window. The event specification is composed of the Date Specification, a
Description, an optional start time , an optional end time, the class of
the event and the file to which the event belongs.
Between the list of events and the event specification is a row of
buttons that operate on event list and the event specification. The
Create Event button will create a new event from the specifications. The
Delete Selection button will delete the event that is selected in the
event list. The Clear Template button will remove all data in the event
specification portion but does not affect the event list. The Replace
Selection button will substitute the data in the event specification
portion for that in the currently selected event.
On the browser title bar will be found a left and a right arrow. These
can be used to browse the next or previous date, week or file (depending
on the current browser contents).
$HOME/.datebookrc
Facets of the Datebook program not related to window appearance can be
controlled by the appropriate entries in your ~/.datebookrc file. If the
~/.datebookrc does not exist, then the file /etc/datebookrc will be
checked.
DateFiles
This is the single most important value as it allows the user to
specify which event files to read in when the program is started.
Some of these files will be owned by the user and others may be
files that are common to a project, section, etc. Users will
only be allowed to edit, delete from, or add to files that are
owned by them. For this reason, at least one of the files in this
list should be owned by the user. Defaults to ``~/.events''. A
relative file name will be interpreted to be relative to $HOME.
Snooze: Determines how many minutes to delay when the user responds to an
alarm with the snooze button. At the end of that time the alarm
will be redisplayed. This is the default snooze time. The snooze
time can also be set on the basis of the event class.
PrintWeek:
Specifies a program that will read the data to be printed on its
standard input and send it to a printer. This program must be
written to parse the standard datebook week summary format. The
programs dbweek and dbweek_ps (postscript) are shipped with
datebook.
PrintMonth:
Specifies a program that will read the data to be printed on its
standard input and send it to a printer. This program must be
written to parse the standard datebook month summary format. The
programs dbmonth and dbmonth_ps (postscript) are shipped with
datebook.
Morning:
Morning is set to an integer that represents the typical starting
time of your day. When the user specified a meeting at 2:00, it
is rare for this to mean 2 AM. However, that is how datebook
will interpret this input if the Morning entry is not set. If
the hour portion of a time is less than Morning, 12 is added to
it to map it into the PM range. This will only be used then to
map times that are not specified with AM or PM. Morning must be
set to an integer.
AlarmNotify:
When datebook is started from outside the X11 environment, this
entry determines the program to call with the alarm message.
After this program has been called, the alarm will be
acknowledged. There is no way to snooze or to delete events from
outside X11.
Check How often (in seconds) should datebook check to see if it is the
time for any event.
Synchronize
How many times should datebook check for alarms between checking
to see if the date files need to be synchronized. If Check were
30 seconds and Synchronize were 2 then datebook would check the
datefiles every minute.
Hidden This entry is followed by the class names of events that should
not show up in the browser or calendar. They will display alarms
in the normal fashion. A typical use for Hidden event classes
would be an everyday event telling you to go home. Hidden
classes also are not printed (Print Month, Print Week) or listed
(-W, -D).
Common This entry is followed by the class names of events that should
not show up in the calendar. They will appear in the browser and
will display alarms in the normal fashion. A typical use for
Common event classes would be meetings that occur periodically
(every Monday perhaps). The calendar could then highlight days
with unusual (uncommon) events.
Classes:
This entry describes the event classes enclosed in {}'s. In the
example .datebookrc below, one of the classes specified is
``meeting''. There is then an entry ``meeting: 10 2 stop Red''.
This entry specifies that the user wishes to be notified 10
minutes before a meeting, wishes to snooze 2 minutes, wishes the
stop bitmap to be used in the alarm window, and wishes the stop
bitmap to be red. The syntax of a class entry is:
classname: warning [snooze [bitmap [fg_color [bg_color]]]]
where fg_color and bg_color specify what foreground and
background colors to use to display the bitmap in the alarm
window.
One sample ~/.datebookrc might look like:
# this is my .datebookrc file
DateFiles: .appts .birthdays /usr/local/lib/holidays
Snooze: 5
Morning: 6
Check: 30
Synchronize: 1
PrintWeek: dbweek "lp -or"
PrintMonth: dbmonth | lp
Hidden: nag
Common: periodic
Classes
{
periodic: 10 5 remind
meeting: 10 2 stop Red
offsite: 30 5
nag: 0 10 michael
birthday: 0 5 cake
trip: 0 5 camera
}
Menu Commands
A number of commands are available via the pulldown menus.
Version This command displays the version dialog.
View Week
Change the cursor to prompt the user for a week to view (browse).
When the user picks a week, then the browser will be changed to
display all events of that week.
View File
Browse the events that are contained in a particular date file.
View Year
Bring up the year at a glance window. Picking on a particular
month in this window will change the monthly calendar to the
month selected.
Print Week
Change the cursor to prompt the user for a week to print. When
the user picks a week, then the week will be formatted and
printed using the program specified by the PrintWeek entry in the
~/.datebookrc file.
Print Month
The events for the currently displayed month will be formatted
and printed using the program specified by the PrintMonth entry
in the ~/.datebookrc file.
Write Events
The user will not usually need to explicitly write events. They
are written when the browser is closed or when the user quits the
program.
Synchronize Datefiles
The user will not usually need to explicitly synchronize
datefiles. The program will periodically check to see if date
files have been modified and will attempt to reparse and merge
changed files.
Highlight Classes
This command displays a dialog that will allow the user to change
whether any (non-Hidden) class is Common or not (see above).
Common classes are not highlighted on the calendar. The most
common way to use this dialog would be to make all but a certain
class Common to see if, for instance, there were any birthdays or
meetings this month.
Quit Update all event files and exit the datebook program.
$HOME/.Xdefaults
The visual appearance of the datebook windows is controlled by the
/usr/X11/lib/app-defaults/Datebook. It might be useful to look at the
app-defaults file for Datebook to see what resources can be set, many are
resources that are specific to the Motif Widgets that datebook is built
from. Also be sure to see datebook.5 for a complete description of the
widget hierarchy.
datebook.BitmapPath:
Specifies the directories to look in to find bitmaps used for the
event classes. The default path is "/usr/X11/lib/bitmaps".
datebook.showDayNames:
Indicates if daynames are to be shown the calendar window.
Default is yes.
datebook.showClock:
Indicates if clock is to be shown the calendar window. Default is
yes.
datebook.traversalOn:
Indicates if keyboard traversal is to be enabled in the text-edit
widgets of the browser window. If set to True then the mouse
will no longer control which text-edit widget gets the keyboard
input, but rather the highlighted widget will get all keystrokes
until one of the keyboard traversal keys is used. Cntrl Next is
the standard way to traverse to the next widget. In datebook the
Return key will traverse to the next widget if the current widget
can only hold a single line. In addition, the tab key will
traverse to the next and Shift Tab to the previous widget.
Datebook*TextEdit*highlightColor: Indicates what color should be
used to highlight the textEdit widget to which typed input will
be sent. This is only significant if traversalOn is set to True.
One sample ~/.Xdefaults might look like:
datebook.BitmapPath: /usr/X11/lib/bitmaps
# Datebook, colored like Excalibur
Datebook*topShadowColor: LightBlue
Datebook*Foreground: White
Datebook*Background: SlateBlue
Datebook*bottomShadowColor: DarkSlateBlue
# Menus
Datebook*Pulldown*bottomShadowColor: MidnightBlue
Datebook*Pulldown*Background: SteelBlue
Datebook*Pulldown*topShadowColor: LightSteelBlue
# Places where you can type
Datebook*TextEdit*Background: MediumSlateBlue
Date Specification
The date specification for Datebook can take many forms. The simplest
form is a single date. Periodic events can also be specified using some
of the more advanced constructs. (The exact syntax is covered in the
datebook(4) man page.)
Some sample date specifications are:
March 18, 1989
October 10
Monday
2nd Tuesday
Aug 1 - Aug 5
Tuesday and Thursday between Jan 1 and Mar 15
Thursday after January 19
Everyday
Tuesday except April 25
1st Weekday
All but the first date (March 18, 1989) will be repeating events.
SEE ALSO
datebook(4), datebook(5), calendar(1), cron(1)