[comp.sources.misc] v17i087: calentool - day/week/month/year-at-a-glance SunView tool, Part06/23

billr@saab.CNA.TEK.COM (Bill Randle) (04/05/91)

Submitted-by: Bill Randle <billr@saab.CNA.TEK.COM>
Posting-number: Volume 17, Issue 87
Archive-name: calentool/part06

#! /bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of archive 6 (of 23)."
# Contents:  Fixes2_1 calencheck.c calentool.1
# Wrapped by billr@saab on Thu Mar 28 08:38:15 1991
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'Fixes2_1' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'Fixes2_1'\"
else
echo shar: Extracting \"'Fixes2_1'\" \(12247 characters\)
sed "s/^X//" >'Fixes2_1' <<'END_OF_FILE'
X# $Header: Fixes2_1,v 2.1 89/05/09 14:26:54 billr Exp $
XBugs fixed in version 2.1:
X	- the -m option does not use a default userid
X	:: fixed to default to userid that started calentool
X
X	- problems if no .appointment files exists
X	:: calentool now prompts the user asking if he wishes to create
X	:: a new .appointmnet file if it does not exist.
X
X	- if there is only one entry in the .appointments file, it
X	  can not be deleted.
X	:: this is actually an attempt at safety checking, to avoid
X	:: copying a zero length file over the original .appointments
X	:: file (in case of file system full or whatever). A check
X	:: for zero length file is still made, but due to the new format
X	:: it should never happen.
X
X	- calentool dies if the input file is not in the expected
X	  format
X	:: the whole input and output portions of the code have been
X	:: rewritten with an eye towards making it more robust. Things
X	:: like this should now print an error message, rather than
X	:: just dumping core.
X
X	- When going from month display to week display, sometimes the
X	  week displayed is not the one that was selected.
X	:: fixed.
X
X	- Calentool dies on OS 4.x machines when certain panel buttons
X	  are selected.
X	:: argument list for some of the notify functions were incorrect.
X	:: fixed.
X
XNew features in version 2.1:
X	:: The user interface panel layout and button functionality
X	   has been redesigned (again) based on feedback from beta
X	   testers of version 2.0.  The new panel layout has the buttons
X	   grouped closer together (for ease of moving the mouse
X	   around) and is more consistent.  Most of the buttons also
X	   have menus accessible by pushing the right mouse button.
X	   "Current" and "Today" do not have menus.  When
X	   displaying a day or week, a particular day of that week
X	   can be displayed by selecting it from the menu under the
X	   "Day" button.  The "Next" and "Previous" buttons allow
X	   moving forward and back by days, weeks, months or years.
X	   The display type stays the same, so some options may be
X	   disabled, depending on display mode.  E.g., from a day
X	   display you can go to the same day next week, month or year
X	   (or the next day); but with a month display you can not
X	   go to the next week or day, only the next month or year.
X	   Clicking the left mouse button selects the next <whatever
X	   is currently displayed>.
X	   The Week, Month and Year buttons work much as they did in
X	   the 2.0 version, with the selection of larger timespans
X	   (e.g. week to month) keeping you in the same time period
X	   (e.g. same month) as you started.  When going to shorter
X	   time spans (e.g. month to week) the first event is displayed
X	   (e.g. first week in the month).  Current selects the
X	   current <whatever is displayed> that matches today.
X	   The Done button has been removed.  Use the frame menu
X	   close or quit options to close to an icon or quit the tool.
X	   A File button has been added to allow switching appointment
X	   files while calentool is running.
X
X	:: Today is grayed out in the year, month, week and day displays
X	   as a way to highlight it.
X	
X	:: The current date and time is displayed in the control panel.
X	   The default is to update the time every second.  Optionally,
X	   one can set the UPDATE_RATE to "minute" in ct.h (or the
X	   Makefile) to change the update rate to every minute - with
X	   no seconds field displayed.
X
X	:: A future appointment reminder is available to remind you
X	   every day for n days in advance about an appointment.  A
X	   popup frame is created to display the future appointments.
X	   This frame may be removed by selecting the "Done" button.
X	   Selecting one of the future appointments with the left
X	   mouse button moves you to that day and displays it.  (This
X	   can be handy for turning off the reminder, see below.)
X	
X	:: The repeating appointment facility has been expanded in
X	   capability.  In addition to the every year, month, day
X	   or repeat every n days appointments in 2.0, you can now
X	   specify a specific day of the week (e.g. every Monday).
X	   One can also tag that with specific weeks (e.g. 1st & 3rd
X	   Monday, Last Thursday).
X
X	:: In the day display a menu is available with the right
X	   mouse button to allow cut and paste operations on appointment
X	   entries, as well as modification of an appointment.
X	   When Modify is selected, a popup window appears to allow
X	   setting special attributes, such as repeating appointments
X	   and future reminders.  This should eliminate the need for
X	   ever having to manually edit the .appointments file.  Note
X	   that the cursor has to be in an appointment slot to get the
X	   menu.
X	
X	:: The .appointments file format also supports the use of
X	   #include files to include *non-editable* appointments
X	   (such as site specific holidays, etc.).  The format for
X	   this is:
X		#include "file"
X	   or
X		#include "/somepathname/file"
X	   Where the '#' *must* start in column 1 of the .appointments
X	   file.  If the "file" form is used, the file is prepended
X	   with the pathname used for the initial .appointments file.
X	   Include files are not nestable.  Using include files is the
X	   one case where manual editing of the .appointments file is
X	   still necessary. Included appointments are marked as read-
X	   only, they can not be deleted or modified. (You can still
X	   modify it my invoking calentool with the include file as
X	   the alternate appts file (-f option).)
X
X	:: Clicking the left mouse button on an existing appointment
X	   no longer deletes it.  You must use the "Cut" option of
X	   the popup menu to delete the appointment.
X
X	:: An optional date may be specified on the command line.  This
X	   will tell calentool to display that day when it starts up.
X	   The date format is pretty flexible - it will accept day
X	   names (e.g. Tue, Th, fr, MONDAY) or numeric dates in m/d/y
X	   format.  Valid forms are: dd (e.g. 27 => 27th of this month),
X	   mm/dd (e.g. 11/27 => Nov 27th of this year) and mm/dd/yy
X	   (e.g. 11/27/90 => Nov 27th, 1990).  Preface the date with
X	   the "-d" flag.
X
X	:: In the .appointments file, notes are now indicated by a "99"
X	   in the hour field, rather than "00".  This is in case
X	   someone works graveyard or wanted a 24-hour appointment
X	   display. The minutes field defaults to 00.  A "99" in the
X	   minutes field marks this note so that it will not show up
X	   in the month or year display.
X
X	:: The .appointments file is now one-based - i.e., months and
X	   days start at 1, rather than zero. This was an option in
X	   2.0, but is now standard in 2.1.  Calentool has the built-in
X	   capability to automatically convert existing .appointment
X	   files (see the README file).
X	
X	:: Support has been added for keeping outdated appointments in
X	   a seperate file of the form ".appointments.YY", where YY
X	   is the year.  This is controlled with the "-i" (include
X	   outdated appointments) and "-o" (save outdated appointments)
X	   flags.  If "-o" is specified on an appointment file with
X	   outdated entries, the save file(s) is(are) automatically
X	   created upon quiting the calentool program.  If "-o" is
X	   specified on the first time calentool is invoked on a
X	   version 1 file, the outdated appointment files are created
X	   when the file format is converted from version 1 to
X	   version 2.
X	
X	:: Calentool now allows you to temporarily delete a recurring
X	   appointment.  That is, if one has a meeting every Monday,
X	   except next Monday, then the appointment can be "deleted"
X	   (or hidden, actually) for that day only.  Recurring
X	   appointments that are deleted for a single occurance like
X	   this are the only ones that can be "undeleted".
X	
X	:: Calentool finally supports overlapping and mulitple
X	   appointments for a given time period.  When more than one
X	   appointment exists during a particular 30 minute timeslot,
X	   a "More" button appears to the right of the timeslot in
X	   the day display.  Clicking on this button with the left MB
X	   will show the next appointment in sequence.  To add another
X	   appointment on top of an existing appointment, click the
X	   left MB as normal and enter the new message.
X	
X	:: Support for common date directory.  If an included file
X	   has the form '#include <file>' then "file" is prepended
X	   with a library directory path determined from the
X	   /CalenTool//LibDir entry in the suntools
X	   defaults file (if it exists) or from the compile time
X	   specified name (DATELIB_DIR), which defaults to
X	   "/usr/local/lib/calentool".  Several date/event files
X	   are included in the distribution in the "dates" subdirectory.
X	
X	:: Day of year and days remaining in year added to the bottom
X	   of the day display.
X	
X	:: Appointment entries that are longer than the width of the
X	   display are normally displayed left justified.  When a
X	   keyboard character is typed into the timeslot the displayed
X	   message is right justified for editing.  A set of left and
X	   right arrows are also displayed to allow viewing the entire
X	   text of the message.
X	
X	:: An up-arrow cursor has been added to the currently selected
X	   day slot to show where text entry/deletion will take place.
X	
X	:: A sun and moon image have been added to the main control panel.
X	   When they are selected, interesting information about the sun
X	   and/or moon is displayed in a popup window.  Edit the riseset.h
X	   file to adjust for your specific lattitude and longitude.  This
X	   code is based on code from the riseset and moontool programs.
X
X	:: A "Print" button has been added to the main control panel to
X	   generate a raster or Postscript image file and send it to
X	   your printer.  This works for day, week and month displays.
X	   The day and week printouts are exact copies of what is seen on
X	   the screen. The month printout is in a different format.
X	   A menu is available with the Print button to allow changing
X	   the print command. The default print command is obtained
X	   from (in order): the suntool defaults file, the PRINTER
X	   environment variable and the #define for PRINT_CMD.
X
X	:: A "File" button has been added to the control panel to
X	   allow selecting a different appointments file after
X	   calentool has been started.
X
X	:: Calentool tries to auto-size itself based on the font in use.
X	   This should keep buttons, etc from overlapping when fonts
X	   other than screen.r.14 (default) are used.
X	
X	:: Once the tool is started, error messages are displayed in a
X	   popup window, rather than the console, if possible.
X	
X	:: The action of the middle mouse button in the day display
X	   has been changed. Point to the selected appt, push the middle
X	   button, drag the mouse to the termination timeslot and release
X	   the button.
X	
X	:: The "-t" option will display the current time below the icon
X	   when the tool is closed. The displayed time format and update
X	   rate is governed by the -u option (or UPDATE_INTERVAL #define).
X	
X	:: "-b" also puts a copy of the appt string in $HOME/.msgfile
X	   (in addition to the console) for use with nlock(1).
X
X	:: Today's day and month are now displayed on the bottom of
X	   the icon's calendar page.
X	
X	:: Popup window added to allow direct entry of a date to view.
X	   Selected by a menu entry under the "Current" button.
X	
X	:: Extended "Current" button menu to allow selecting current
X	   year, month, week or day, along with setting the date as
X	   noted above.
X	
X	:: Add "Save" button to the "File" frame that forces an update
X	   to the current appointments file.
X	
X	:: Change the defaults entry from an appointment directory to
X	   the actual appointment file.  New name is /CalenTool/Appts.
X	   This change was made to (hopefully) allow easier use of
X	   the tool when accessing multiple people's calendars when
X	   using the "File" frame.  /Lib entry changed to /LibDir.
X	
X	:: Create the tmp file in /tmp, with a name /tmp/apptsNNNNN
X	   where NNNNN is the pid.  The file name used to be
X	   .tmp.apts.NNNNN created in whatever directory the appointments
X	   file was found in.
X
X	:: Add "-w" option to turn off display of "Working!" message.
X
XAs always, bug reports and suggestions for improvements are encouraged.
X
X		-Bill Randle
X		Tektronix, Inc.
X		billr@saab.CNA.TEK.COM
X		May 9, 1989
END_OF_FILE
if test 12247 -ne `wc -c <'Fixes2_1'`; then
    echo shar: \"'Fixes2_1'\" unpacked with wrong size!
fi
# end of 'Fixes2_1'
fi
if test -f 'calencheck.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'calencheck.c'\"
else
echo shar: Extracting \"'calencheck.c'\" \(2774 characters\)
sed "s/^X//" >'calencheck.c' <<'END_OF_FILE'
X/*
X * $Header: calencheck.c,v 2.3 91/03/27 16:44:57 billr Exp $
X *
X * calencheck.c - check for pending appts without the overhead
X *		  of the full blown calentool
X *
X * Copyright (C) 1989, 1991 Tektronix, Inc.
X *	All Rights Reserved
X * Permission is hereby granted to use and modify this file in source
X * or binary form as long as it is not sold for profit and this copyright
X * notice remains intact.
X */
X
X/*
X * define NO_DEFAULTS if you don't need info looked up in the .defaults
X * file (saves memory by not linking in pixrect lib with SunOs > 4.0).
X */
X#include <stdio.h>
X#include <sys/time.h>
X#include <sys/file.h>
X#include "ct.h"
X
Xint read_only = 1;		/* no modifications allowed */
Xint n_tslots, otherfile = 0;
Xint include_old = 0, save_old = 0;
Xint new_entry = 0;
Xint start_hour, end_hour, n_slots;
Xstruct tm current, today, closedate;
Xstruct tm First, Last;
Xchar *progname, *othername;
Xstruct dayslot *slots;
Xint show_future = 1;
Xint one_based = 0, version2 = 0;
X
Xmain(argc,argv)
Xint argc;
Xchar *argv[];
X{
X	int flag;
X	extern char *optarg;
X	char *rindex();
X	
X	if (progname = rindex(*argv, '/'))
X		progname++;
X	else
X		progname = *argv;
X
X	start_hour = START_HOUR;
X	end_hour = END_HOUR;
X
X	get_today();	/* initial day is today */
X	current = today;
X	
X	while ((flag = getopt(argc, argv, "f:S:s:")) != EOF)
X		switch (flag) {
X		    case 'f':   /* use this file */
X			otherfile = 1;
X			othername = optarg;
X			break;
X
X		    case 's':
X			start_hour = atoi(optarg);
X			if (start_hour > 23 || start_hour < 0)
X				printf("start hour must be in range 0 - 23\n");
X			break;
X
X		    case 'S':
X			end_hour = atoi(optarg);
X			if (end_hour > 24 || end_hour < 1)
X				printf("end hour must be in range 1 - 24\n");
X			break;
X
X		    case '?':
X		    default:
X			fprintf(stderr, "usage: %s [-f <appt_file>]", progname);
X			fprintf(stderr, " [-s <starthour>]");
X			fprintf(stderr, " [-S <endhour>]\n");
X			exit(1);
X		}
X
X	err2console(TRUE);
X
X	/*
X	** setup number of slots and allocate memory for them
X	*/
X	if ( start_hour >= end_hour )
X		err_rpt("Start Hour must be less than Stop Hour", FATAL);
X	n_tslots = (end_hour - start_hour) * 2;
X	n_slots = n_tslots + N_NOTESLOTS;
X	/* make room for n_slot dayslot entries and week entries */
X	if ((slots = (struct dayslot *)malloc(n_slots* sizeof(struct dayslot))) == NULL)
X		err_rpt("Can't get enough storage for day slots", FATAL);
X
X	do_files();
X	closedate = today;
X	check_calendar();
X	for (;;) {
X		/* only check appointments every TIME_OUT minutes */
X		sleep(TIME_OUT);
X		check_calendar();
X	}
X}
X
X/* some stubs required by routines in common.c not used by calencheck */
Xnext_appt(i, j)
Xint i, j;
X{
X}
X
Xdraw_day_appts()
X{
X}
X
Xdeactivate_slot(i, j)
Xint i, j;
X{
X}
X
Xint
Xput_aentry(f, a)
XFILE *f;
Xstruct appts_entry *a;
X{
X	return 0;
X}
X
Xworking(i)
Xint i;
X{
X}
END_OF_FILE
if test 2774 -ne `wc -c <'calencheck.c'`; then
    echo shar: \"'calencheck.c'\" unpacked with wrong size!
fi
# end of 'calencheck.c'
fi
if test -f 'calentool.1' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'calentool.1'\"
else
echo shar: Extracting \"'calentool.1'\" \(37695 characters\)
sed "s/^X//" >'calentool.1' <<'END_OF_FILE'
X.\" $Header: calentool.1,v 2.8 91/03/27 17:01:33 billr Exp $
X.\"
X.TH CALENTOOL 1 "7 March 1991"
X.ds Ps P\s-2OST\s+2S\s-2CRIPT\s+2\*R
X.SH NAME
Xcalentool - day/week/month/year-at-a-glance SunView tool (the Hacker's Almanac)
X.SH SYNOPSIS
X.B calentool
X[
X.B \-b
X]
X[
X.B \-B
X]
X[
X.B \-d
X.I date
X]
X[
X.B \-f
X.I apptsfile
X]
X[
X.B \-h
X[
X.IR A | a | c | i | l | j | s
X]]
X[
X.B \-H
X[
X.IR A | a | c | i | l | j | s
X]]
X[
X.B \-i
X]
X[
X.B \-l
X[
X.IR 0 | 1
X]]
X[{
X.B \-m
X|
X.B \-M
X}
X.I userid
X]
X[
X.B \-o
X]
X[{
X.B \-p
X|
X.B \-P
X}{
X.IR d | w | W | m
X}]
X[
X.B \-r
X]
X[
X.B \-t
X]
X[
X.B \-u
X.I int
X]
X[
X.B \-w
X]
X[
X.B \-z
X]
X[
X.B \-5
X]
X[
X.B \-6
X]
X[
X[
X.B \-7
X]
X[
X.B \-12
X]
X[
X.B \-24
X]
X[
X.B \-e
X]
X[
X.B \-E
X]
X[
X.B \-T
X.I printdev
X]
X[
X.B \-s
X.I starthour
X]
X[
X.B \-S
X.I stophour
X]
X[
X.B \-N
X.I int
X]
X[
X.B \-x
X.I int
X]
X[
X.I sunview options
X]
X.SH DESCRIPTION
X.I Calentool
Xis a day/week/month/year-at-a-glance tool.  It is a
Xwindow-based calendar; the only time you should have to type is
Xwhen entering the text for an appointment.
X.I Calentool
Xprovides for both one-time and recurring appointments, as well as notes
X(appointments or reminders with no associated time).  A period of advance
Xwarning can be specified.  A visual warning (and optional auditory bell)
Xare produced at the approach of a scheduled appointment.
X.LP
XBy employing appropriate options, this tool can be used to send reminders
Xof appointments by
X.IR mail (1),
Xand to examine colleagues appointment schedules.  Daily, weekly and
Xmonthly schedules
Xcan be sent to a \*(Ps printer.  Outdated appointments can be sent
Xautomatically to an archival file.  An extensive set of files containing
Xcommemorative dates is included, as well as a library of routines which
Xcomputes the dates of various holidays which do not fall on fixed days
Xof the Gregorian calendar (including religious holidays and astronomical
Xevents).  Lunar and solar almanacs are also included.
X.LP
XAlthough to take full advantage of
X.I calentool
Xyou should be operating within the SunView environment, the
X.BR \-m ,
X.BR \-M ,
X.BR \-p ,
X.BR \-P ,
Xand
X.B \-T
Xoptions allow the Hacker's Almanac to be employed even from ordinary terminals.
XThe accompanying utilities
X.IR cal2ct (1L),
X.IR month2ct (1L),
Xand
X.IR mt2ct (1L),
Xtransform appointment files in
X.IR calendar (1),
X.IR month (1L),
Xand
X.IR monthtool (1L)
Xformats to
X.I calentool
Xformat.
X.LP
XInstructions appear in the section DETAILED INSTRUCTIONS, which follows the
XOPTIONS section.
X.SH OPTIONS
X.I Calentool
Xaccepts standard
X.I sunview
Xcommand line options at the end of the command line.
X.TP 15
X.B \-b
XWhen an appointment is pending, a bell character (along with the appointment
Xmessage) is sent to the console; only one reminder is sent for each
Xappointment.  Also, place a copy of the appointment text in the file
X.IR $HOME/.msgfile .
XThe text in this file is displayed by the screen lock program
X.IR nlock (1L);
Xnotifying passers-by of the user's current activity.
X.TP
X.B \-B
XSimilar to
X.B \-b
Xexcept that the
X.I calentool
Xframe is opened instead of writing to the console.  If both features are
Xdesired, both options may be specified.
X.TP
X.BI \-d \ date
XOpen the calendar at the day
X.IR date ,
Xwhich may take on several formats:
X.RS
X.TP
Xday of current week:
XTue, Th, fr, MONDAY
X.TP
Xnumeric dates:
XDD (day DD of current month, for example 27 for the 27th of this month)
X.br
XMO/DD (day DD of month MO, for example 11/12 for November 12)
X.br
XMO/DD/YY (day DD of month MO, year YY, for example 9/1/88 for 1 September 1988).
X(If the
X.B \-e
Xor
X.B \-E
Xoptions are used, the date format is DD/MO and DD/MO/YY.
X.TP
Xrelative dates:
X+n (n days from now, for example +1 for tomorrow)
X.br
X-n (n days ago, for example -1 for yesterday)
X.RE
X.TP
X.B \-e
XSet European (ISO) week display format (Monday through Sunday).  When 7 day
Xweek display is set, the display shows the days Monday through Sunday,
Xrather than Sunday through Saturday.  This also affects the month
Xand year displays.  With this option the weeks are numbered according
Xto ISO standard.
X.TP
X.B \-E
XSet all European style options.  Currently, this includes:
X.B \-24
Xand
X.BR \-e .
X.TP
X.BI \-f \ apptsfile
XUse
X.I apptsfile
Xas the appointments file.  This is useful for seeing if
Xother people on the net are free to attend a meeting.
XIf everyone exports his appointments file (in a NFS environment) then
Xpeople can plan appointments more effectively.
X.IP
XFile integrity can NOT be assured when this option is in use;
Xif two people try to write to the same appointments file at the same time, the
Xresult could be tragic.  Only the person whose schedule is
Xdescribed by a particular appointments file should have write permission for
Xthat file.
X.TP
X.BI \-h " char"
XCompute and display holidays which do not fall on set dates of the Gregorian
Xcalendar.  Notes appear in the day and week displays, and marks appear in
Xthe month and year displays.  This option is followed by a single character
Xwhich indicates which set of holidays is to be computed (the option can be
Xinvoked multiple times on the command line).  The character codes for
Xsupported date sets are:
X.RS
X.TP
X.B A
XUse all available date sets.  When this option is chosen, the time required
Xto produce a new display increases.  It becomes long for the month display
Xand extremely long for the year display.
X.TP
X.B a
XAstronomical events (solstices and equinoxes).
X.TP
X.B c
XChristian religious holidays.  These dates may be inaccurate for years
Xprior to the advent of the Gregorian calendar in 1582.
X.TP
X.B i
XIslamic religious holidays.  There are different conventions used by Muslim
Xcountries to determine the dates in the Islamic calendar; the dates computed
Xhere may differ by 1-2 days from the locally determined date.
X.TP
X.B l
XLunar calendar (Chinese/Oriental) holidays (not yet implemented).
X.TP
X.B j
XJewish religious holidays.  These may not be accurate for years after 2000.
XAlso note that until recent centuries, the Jewish calendar was regulated (like
Xthe modern Islamic calendar) by sightings of the crescent Moon, so that
Xdates for previous years must be interpreted with caution.
X.TP
X.B s
XUS Secular holidays.
X.RE
X.TP
X.BI \-H " char"
XIdentical to the
X.B \-h
Xoption, except that computed dates are displayed only in the day and week
Xdisplays; the month and year displays are not marked for these dates.
X.TP
X.B \-i
XInclude all outdated appointments files (files named
X.IR .appointments.yy ,
Xwhere
X.I yy
Xrepresents the last two digits of the appointment's year).
X.TP
X.BI \-l " int"
XSet limit check for appointments.  If
X.I int
Xis 0 or missing, then only the appointment time slots are checked when
Xdetermining whether to show a "no appointments" icon or a standard icon.
XWhen
X.I int
Xis 1, the notes are also included in the check.
X.TP
X.BI \-m " userid"
X.PD 0
X.TP
X.BI \-M " userid"
X.PD
XSend mail listing todays appointments to the user specified by
X.I userid
Xand exit.
X.B \-m
Xshows all notes, while
X.B \-M
Xdoes not show notes not marked for display in the month/year displays.
XThis feature is useful when calentool is run from
X.IR cron (1),
Xto send yourself mail about today's appointments.  No mail is
Xsent about today's appointments, if there are none.
XThe
X.B \-p
Xand
X.B \-P
Xoptions may be used with these options to mail yourself a whole weeks
Xworth of appointments, e.g.:
X.I
Xcalentool -Pw -m billr.
X(Note: this option eliminates the need for the separate program,
X.IR calenmail (1L),
Xwhich was distributed with earlier releases of
X.IR calentool ).
XBy default, the output generated by the -[mM] command is
Xin ASCII.  By using the
X.B \-T
Xoption, a different output format (e.g. \*(Ps) may be chosen.  Month
Xoutput is in \*(Ps only.
X.TP
X.BI \-N " int"
XSet the number of noteslots displayed to
X.I int
Xslots.  This is useful if the you increase the number of timeslots used
Xand want to keep the overall display size down.
X.TP
X.B \-o
XSave outdated appointments to an outdated
Xappointments file (e.g., a file named
X.IR .appointments.yy ,
Xwhere
X.I yy
Xrepresents the last two digits of the appointments year).
XAn appointment is considered outdated at the beginning of the next
Xyear or, if the
X.BI \-x n
Xoption is specified,
X.I n
Xdays after the appointment.
X.TP
X.BI \-p " char"
X.PD 0
X.TP
X.BI \-P " char"
X.PD
XPrint today's appointments and exit.  This is useful for reviewing
Xappointments from an ordinary terminal or
X.IR shelltool "(1)."
XThe
X.I d, w, W, m
Xmodifiers select a printout of the current day, week, week or month,
Xrespectively.  The
X.I w
Xoption prints a weeks worth starting at the beginning of the current week.
X.I W
Xprints a weeks worth starting at the current day.
X.B \-p
Xshows all notes, while
X.B \-P
Xdoes not show notes not marked for display in the month/year displays.
XNo printout is provide of the current day's appointments, if there
Xare none.
XBy default, the output generated by the -[pP] command is
Xin ASCII, except for month printouts where the default is \*(Ps.
XBy using the
X.B \-T
Xoption, a different output format (e.g. \*(Ps) may be chosen.  Month
Xoutput is in \*(Ps only.
X.TP
X.B \-r
XOpen the calendar tool in read-only mode.
XAppointments can be edited, but no changes will be saved.
XThe tool's banner strip will contain the string "[Read Only]".
XThis is particularly useful for inspecting other users' appointment files
Xwith the
X.B -f
Xoption.
X.TP
X.BI \-s " starthour"
XSet the start hour for the day and week displays to
X.I starthour
Xhour (0 to 23).
X.TP
X.BI \-S " stophour"
XSet the stop (end) hour for the day and week displays to
X.I stophour
Xhour (1 to 24).  The end hour must be greater than the start hour.
XIf the start stop span is large, you should change the default font
Xto a smaller size font.  This can be done with the
X.B \-Wi
XSunView window option or by setting it explicity in the defaults file
X(see below).
X.TP
X.B \-t
XDisplay the current time below the
X.I calentool
Xicon (no further need for
X.IR clocktool (1)).
X.TP
X.BI \-T " device"
XUse
X.I device
Xas the output format for printing or mailing appointments.  The default
Xis ASCII.  The only currently supported option for
X.I device
Xis
X.B ps
Xor
X.B psc
Xwhich specifies \*(Ps output instead.
X.TP
X.BI \-u " int"
XUpdate the time at the interval of
X.I int
Xseconds.
X.TP
X.B \-w
XDisplay the "Working!" message in the control panel during
Xlengthy operations.  The cursor also changes to an hourglass.
X.TP
X.BI \-x " int"
XExpire (delete) appointment file entries if they are older than
X.I int
Xdays old.  If
X.B \-o
Xis set, entries are moved from
Xthe appointments file to the outdated appointments file.
XAppointments in #include files and read only appointments are not
Xexpired.  To expire included appointments,
X.I calentool
Xmust be run on the included file directly.
X.TP
X.B \-z
XConvert appointments file used by earlier (pre 2.0) versions of
X.I calentool
Xto the format used by the current version.  This option should be invoked only
Xonce, the first time an old format file is read by
X.IR calentool .
X.TP
X.B \-5
XDisplay only five days (Monday through Friday) in the week display.  This is
Xuseful if the installer has set the default display format to 6 or 7 days.
X.TP
X.B \-6
XDisplay six days (Monday through Saturday) in the week display.  This is
Xuseful if the installer has set the default display format to 5 or 7 days.
X.TP
X.B \-7
XDisplay all seven days in the week display.  This is useful if the installer
Xhas set the default value to 5 or 6 days.
XSundat through Saturday is the standard format.  Using the
X.B \-e
Xor
X.B \-E
Xoptions displays a Monday through Sunday format.
XThe 7-day display is wider than the 5-day
Xdisplay, allowing longer messages to be displayed on the day page.
X.TP
X.B \-12
XDisplay time in a 12-hour AM/PM format whenever practical.  This is useful
Xif the installer has set the default time format to 24-hour time.
X.TP
X.B \-24
XDisplay time in a 24-hour format.  This is useful
Xif the installer has set the default time format to 12-hour time.
X.LP
X.SH "DETAILED INSTRUCTIONS"
X.SS "Examining the calendar"
XWhen first opened, the tool displays the appointments for a single day (today
Xif the
X.B \-d
Xoption has not been employed).  The day page for today is demarcated in gray.
XEach appointment or reminder is shown at its start time in reverse video.
XIf the appointment lasts longer than 30 minutes an arrow is drawn from
Xthe starting timeslot to the end of the appointment.
XIf advance warning of future appointments has been requested, a popup
Xdisplay appears.  The day display containing a future appointment may be
Xdisplayed if the future appointment is selected with the
X.IR mouse-LB .
XThe reminder popup may be removed permanently (during this
X.I calentool
Xsession) by selecting the
X.B Done
Xoption; if the
X.B Keep
Xoption is selected, the reminder window will reappear each time the current
Xday page is displayed.
X.LP
XIf there are multiple appointments sharing a time slot, a
X.B More
Xbutton appears to the right of the time slot.  This may be toggled repeatedly
Xto view each appointment in turn.  Any arrows for hidden appointments
Xare drawn as
X.I dashed
Xlines to show all scheduled time at a glance.  As the
X.B More
Xbutton is toggled, the arrows change state such that the new active
Xappointment has arrows drawna s solid lines and the previous appointment's
Xarrows (if any) are now dashed.
XIf appointment text is too wide for the
Xday page, scroll buttons appear to the right of the text and may be used to
Xview the text in its entirety.  When first displayed, all text is left
Xjustified.
X.SS "The control panel"
XThe control subwindow contains various control buttons and todays date and
Xtime.  View the current week, month, or year by employing
Xthe
X.I mouse-LB
Xto select the
X.BR Week ,
X.BR Month ,
Xor
X.B Year
Xpanel buttons.  Pushing the
X.I mouse-RB
Xin the
X.BR Day ,
X.BR Week ,
X.BR Month ,
Xor
X.BR Year
Xpanel buttons activates pull-down menus with appropriate selections (certain
Xof the selections may be inactivated due to the current display mode).  The
X.B Today
Xpanel button redisplays today's day page.  In each of the four display modes,
Xthe
X.B Previous
Xand
X.B Next
Xpanel buttons move backward or forward one day, week, month or year, as
Xappropriate (maintaining the current display mode).  There are also pull-down
Xmenus associated with these buttons, produced by selecting the
X.I mouse-RB
X(again, certain options may be inactivated according to the current display
Xmode).  The
X.B Current
Xbutton displays the current day, week, month or year, depending upon the current
Xdisplay mode.  A pull-down menu associated with the
X.B Current
Xbutton allows selection of the current day, week, month, or year displays, or
Xdirect entry of a specific date for which a day page is to be displayed.
XThe
X.B Done
Xbutton closes the frame to an icon.  A pull-down menu associated with
Xthe
X.B Done
Xbutton allows selection of either closing the frame or exiting the tool.
X.SS "Week, month and year displays"
XIn the week display, the initial part of each appointment message is visible.
XIf there are overlapping appointments/notes, a
X.B More
Xbutton appears at the bottom of the day column, which prints a message
Xreminding the user to select the day display to be able to view all of the
Xappointments/notes.
XThe day strip for today, if present, is demarcated in gray.
XMove the cursor over any day of the week and select the
X.I mouse-LB
Xto view the indicated day display.
X.LP
XIn the month display, a triangular hatch-mark in the
Xupper right-hand corner of a day indicates an appointment.
XThe day box for today, if present, is demarcated in gray.
XMove the cursor over any day of the month and select the
X.I mouse-LB
Xto view the indicated day display.  Position the cursor
Xover the arrow to the left of a week and select the
X.I mouse-LB
Xto view the indicated week.
X.LP
XIn the year display, a reverse-video date indicates an appointment.
XToday's date, if present, is marked in gray.
XMove the cursor over a particular month and select the
X.I mouse-LB
Xto select the indicated month display.
X.LP
XThe pulldown menu actuated within the top control bar of the window
Xby selecting the
X.I mouse-RB
Xallows the tool to be closed, moved, terminated, etc.
X.SS "Lunar and Solar data"
XSelection of the Sun or Moon icons in the day display reveals
Xinformation about rising and setting times, lunar phases, local
Xtime, sidereal time, etc.  An abbreviated solar data display is shown
Xif the day currently being displayed is not today.
X.SS "Iconic warning of an appointment"
XWhen
X.I calentool
Xis in iconic form, the icon is inverted to a reverse video representation
Xprior to a scheduled appointment and remains inverted
Xfor the duration of the appointment.  The amount of advance warning given
Xis set by the
X.B modify
Xmenu, with a default of 10 minutes.
X.LP
XWhen there are no appointments or notes remaining for the current day,
Xan alternate icon with an empty page is displayed instead of the
Xstandard or reverse video icons.
XFor all icons, today's month and day of month are displayed at the
Xbottom of the icon's calendar page.
X.SS "Entering appointments"
XAppointments can only be entered in the day display.  The day display presents
Xa number of labeled time slots (generally 30 minute intervals) as well as a
X.I notes
Xsection at the end of the day page, to enter reminders not associated with a
Xspecific time.  To enter an appointment, position the cursor over the required
Xtime slot and press the
X.IR mouse-LB .
XThe slot is toggled from white to black, leaving the cursor positioned in the
Xslot; type appropriate descriptive text.  If the text exceeds the size of the
Xwindow, scroll buttons will appear to the right.  Typing new text into the
Xtime slot automatically right-justifies the text already present, so that the
Xnew text is appended.  To indicate the duration of any appointment, click the
X.I mouse-MB
Xin the initial time slot (any existing duration arrow will be deleted);
Xa vertical indicator arrow appears and follows the cursor.  Drag the cursor
Xto the location of the final time slot and release the button.
XThe SunView L6 and L8 keys (COPY/PASTE or PUT/GET) may be also be
Xused to paste the text from the shelf to an active appoinment slot
Xor from an appointment slot to the shelf.  When inserting a string
Xin calentool using PASTE the slot must be active first (i.e. the
X.I mouse-LB
Xmust have been pressed first.
X.SS "Changing an appointment"
XSelecting the
X.I mouse-RB
Xin the highlighted time slot produces a popup menu with the options
X.BR modify ,
X.BR cut ,
X.BR paste ,
X.BR copy ,
X.BR delete ,
Xand
X.BR undelete .
XTo delete the current appointment, storing it in a temporary buffer,
Xselect the
X.B cut
Xoption.  To copy the text of an appointment into the buffer without deleting
Xit, select
X.BR copy ,
XTo place the text of a buffer-stored appointment into a time slot, click the
X.I mouse-RB
Xin the new time slot, and then select the
X.B paste
Xoption.
X.LP
XTo delete the current appointment, select the
X.B delete
Xoption.  If the appointment in question is recurring, a special subwindow
Xappears which allows the user to delete (or move) every occurrence or
Xjust today's occurrence.  If the latter is selected, the
X.B undelete
Xoption is activated, which allows today's occurrence to be reinstated.
X.SS "Appointment modifiers"
XAn appointment may be further modified be selecting the
X.B modify
Xoption.  This causes an options subwindow to appear, in which the user
Xmay specify that the appointment is to be repeated every day, for selected
Xweeks of the month (first through fifth, last or every Monday thru
XFriday), every month, and/or every year.  Alternatively,
Xthe appointment may be repeated at a specified interval of days.  The user can
Xalso specify a period of days prior to the appointment for which an
Xadvance warning will be printed; how many times this appointment will be repeated;
Xand how many minutes ahead of the scheduled time the user should be
Xreminded about an appointment (default is 10 minutes).
XFor example, one could specify that a meeting is to occur
Xon the first and third Tuesday of the month, in perpetuity, by selecting
Xthe repeat options
X.BR "Selected Week" ,
X.BR "Every Month" ,
Xand
X.BR "Every Year" ,
Xas well as the selected week indicators
X.B 1st
Xand
X.BR 3rd .
XAfter selecting the appointment options, the user can select either
X.B Accept
Xor
X.B Abort
Xto close the options subwindow.
X.SS "Entering notes"
XEntering notes is similar to entering appointments, except that no duration
Xarrows can be appended, and the modify panel allows the user to indicate
Xwhether or not the note is to be used to mark the month and year displays,
Xor to be printed (or mailed) when the
X.B \-P
X(or
X.BR \-M )
Xoption is invoked.
X.SS "Printing appointments"
XThe
X.B Print
Xbutton prints a copy of the day, week, or month display.  Pressing the
X.I mouse-RB
Xover this button produces a popup menu which allows either a raster image or
Xa \*(Ps version of the current display to be printed.  A third option allows
Xmodification of the default print command.  The default print command is taken from
Xthe first provided by the following sources: the 
X.I $HOME/.defaults
Xfile, the
X.I PRINTER
Xenvironment variable, and the
X.I PRINT_CMD
Xvalue provided by the system manager at the time of installation.
XThe printer output can also be sent to a file instead of directly to
Xthe printer.
X.SS "Saving outdated appointments"
XAppointments are recorded in a file named
X.IR .appointments .
XIf the
X.B \-o
Xoption is in effect, at the end of a year all appointments for the
Xpast year are copied into a special file with a name
X.I <appts_file>.yy
X(where
X.I yy
Xcontains the final two digits of the past year).  These appointments are then
Xdeleted from the current appointments file.  If the
X.B \-x
Xand
X.B \-o
Xoptions are in effect, expired appointments are also copied to the outdated
Xfile, rather than being purged.
X.SS "Examining other appointment files"
XThe
X.B File
Xbutton displays a window in which an alternate
X.I .appointments
Xfile can be specified.  This is useful for maintaining multiple appointment
Xbooks or for examining colleagues' calendars.  The file can be made
Xread-only or read-write according to the toggle option, and a file name can
Xbe typed into the window.  The
X.B Accept
Xbutton
Xinitiates reading of the currently displayed file, while
X.B Done
Xcloses the window without further action.
XThe
X.B Original
Xbutton restores the original file name that calentool was invoke with.
XThe
X.B Reset
Xbutton undoes any filename changes that have been made prior to
Xselecting
X.BR Accept .
XThe
X.B Update
Xbutton updates the current appointments file with any changes made that
Xhave not yet been logged.
X.SH "FILE FORMAT"
XUsing an included file (see below) is the one instance where manual editing
Xof the
X.I .appointments
Xfile is still required (although one could use the window-based aids of
X.I calentool
Xto build such a file, by means of the
X.B \-f
Xoption, the include command must still be edited into the primary
Xappointment file).  The appointments file contains four types of lines:
X.br
X.nf
X	\fC# CalenTool V2 - DO NOT REMOVE THIS LINE
X	#include "file"
X	# <comment string>
X	YY MO DD HH MI AA [II] <WW> +RR %AA # \fImessage\fP
X.fi
X.SS Header line
XThe first line in an
X.I appointments
Xfile identifies the version of
X.I calentool
Xin use.  This line should never be removed.
X.SS Included appointment files
XA
X.B non-editable
Xappointments file (for example, one containing site specific holidays) can
Xbe included.  Three formats are possbile for specifying such a file:
X.br
X	#include "/pathname/file"
X.br
Xor
X.br
X	#include "file"
X.br
Xor
X.br
X	#include <file>
X.br
XIn the second case, the file will be prepended with the pathname used for the
Xappointments file.  In the last case, the included file is assumed to reside
Xin a system-wide library directory specified at the time of installation
X(see your system administrator).  The #
X.B must
Xstart in column 1 of the appointments file.  The first line of an included file
Xmust also have a header line.  Included files may not include other files.
X.SS Comment line
XA
X.I #
Xin column one (not followed by the string "include") indicates a comment;
Xthe rest of the line is ignored.
X.SS Appointment/Note entries
XAll fields are separated by at least one space character.
X.RS
X.SS Mandatory entries
XThe
X.I YY
Xfield is the year (00-99), the
X.I MO
Xfield is the month (1-12) and
X.I DD
Xis the day (1-31).  The
X.I DD
Xfield can also contain a two-character alphabetic string describing
Xa day of the week: Su, Mo, Tu, We, Th, Fr, Sa or MF (Monday thru Friday).
XThis feature is used in conjunction with wildcards (see below), and the
X.I [II]
Xfield, which must appear within square brackets, and which can contain the
Xdigits 1-5 and the letter L, separated by commas, to indicate the first
Xthrough fifth (or last) monthly occurrence of the specified day of the week.
X.I HH
Xand
X.I MI
Xare the starting hour (00-23) and
Xminutes (00 or 30).
XThe
X.I AA
Xfield is the number of arrow bars (additional 30 minute
Xtime slots) required.
X.SS Notes
XA
X.I HH
Xvalue of 99 indicates a note, rather than an appointment,
Xwith
X.I MI
Xdesignating whether presence of the note is to be shown (marked) in the month and year
Xpanels (00 indicates that it is to be marked, 99 indicates that it should not
Xbe marked).
X.SS Wildcards for recurring appointments/notes
XA double asterisk (**) can be used in place of the year, month and/or day
Xfields to indicate every year, month or day.
X.SS Optional entries
XThe
X.I [II]
Xfield appears within square brackets, and (if the DD field contains a
Xnumerical value) is taken to be an interval in days between recurring
Xappointments.  The
X.I <WW>
Xfield appears within broken brackets, and indicates the number of
Xdays of advance warning required.  The
X.I +RR
Xfield is preceded by a plus sign, and indicates the repetition count
Xfor a given appointment.  The
X.I %AA
Xfield is preceded by a percent sign, and indicates the number of minutes
Xin advance of an appointment the user should be reminded.  If this field
Xdoes not exist, the default value of 10 minutes is used.
X.SS Appointment text
XIf a # character appears in front of the text, it indicates that a recurring
Xappointment has been suppressed for that day.  A leading '\\' character
Xis prepended to a text entry that starts with special characters to
Xprevent the text from being misinterpreted as appointment options.
X.SS Example entries
XA meeting that occurs weekly at 0900 and lasts for 1 hour, starting on
XApril 1st, would be represented as:
X.br
X.nf
X	\fC88 04 01 09 00 01 [7]        Weekly status meeting\fP
X.fi
XSeveral other examples:
X.nf
X	\fC** 04 01 99 99 00            April Fool's Day
X	** ** Tu 10 30 00 [1,3]      Meeting on 1st and 3rd Tues. of Month
X	** ** 01 99 00 00 <1>        First day of every month, one day warning
X	88 05 ** 99 99 00            On vacation for entire month of May 1988
X	89 11 06 99 00 00 +4         SigFishing Conference
X	** ** MF 17 00 00            Daily backups\fP
X.fi
X.RE
X.SH "SUPPLIED SPECIAL DATES FILES"
X.I Calentool
Xis supplied with a number of system-wide special dates files which may be
Xincluded in a user's
X.I .appointments
Xfile:
X.RS
X.TP 15
Xancient
XEvents celebrated in ancient times
X.TP
Xcan_holiday
XMajor Canadian holidays (holidays from work)
X.TP
Xceltic
XHolidays/events of interest to Celts
X.TP
Xcomputing
XEvents in the history of computing
X.TP
Xevents
XHistorical events (major and minor)
X.TP
Xgdead
XDates concerning the rock group Grateful Dead
X.TP
Xhawaii
XHistorical events pertaining to Hawaii
X.TP
Xliterature
XHistorical events pertaining to literature, newspapers and comics
X.TP
Xlives
XBiographical dates of note (births, deaths, weddings)
X.TP
Xlotr
XSpecial dates for fans of Tolkien's
X.I Lord of the Rings
X.TP
Xmovies
XHistorical events pertaining to motion pictures
X.TP
Xmovies
XHistorical events pertaining to the music world (both popular and traditional)
X.TP
Xradio
XHistorical events pertaining to radio
X.TP
Xsfo
XHistorical events pertaining to San Francisco, CA and the surrounding area
X.TP
Xspace
XDates of note in the history of the exploration of outer space
X.TP
Xsports
XDates concerning sports.
X.TP
Xtelevision
XDates concerning television programs and history of tv.
X.TP
Xusa_holiday
XMajor US holidays (holidays from work)
X.TP
Xusa_other
XMinor US/Canadian holidays
X.TP
Xusa_states
XUS holidays specific to selected states
X.TP
Xwitchcraft
XDates of interest to witches and warlocks
X.TP
Xworld
XHolidays from countries other than the US/Canada
X.RE
X.SH "ENVIRONMENT VARIABLES, INITIALIZATION FILES, AND COMPILATION OPTIONS"
X.LP
XBy default, the
X.I .appointments
Xfile employed by
X.I calentool
Xresides
Xin the users' home directory.  Alternatively, the environment variable
XCALENTOOL_DIR can be set to the full pathname of a directory where the
X.I .appointments
Xfile resides.
X.I Calentool
Xmust have write permission in the directory to be used.
X.LP
X.I Calentool
Xalso recognizes "/CalenTool/Appts", "/CalenTool/Font", "/CalenTool/BigFont",
X"/CalenTool/LibDir" and "/CalenTool/Printer"
Xentries in the
X.IR suntools (1)
Xinitialization file,
X.IR .defaults .
XThe "/CalenTool/Appts" entry, if it exists, is used instead of the CALENTOOL_DIR
Xor HOME environment variables when searching for the
X.I .appointments
Xfile.  "/CalenTool/Appts" should be the full pathname of the appointments
Xfile (e.g. /usr/local/lib/calentool/billr.appts).  [Useful if everyone's
Xappointment files are NFS'd from a common directory.]
XThe normal font (by default, the default system font) may be changed
Xby use of the "/CalenTool/Font" entry.  The
X.IR suntools (1)
X.B \-Wt
Xoption will override the entry in the
X.I .defaults
Xfile.
XThe default large font (gallant.r.10) may be changed by use of
Xthe "/CalenTool/BigFont" entry.
XThe "/CalenTool/LibDir" entry overrides the compile time default directory
Xfor files specified with the
X.I #include <file>
Xappointment file entry (such as the special date files mentioned
Xabove).  The "/CalenTool/Printer" entry overrides the compile time
Xdefault and PRINTER environment variable for the printer name.
X.LP
XCompile time options allow modification of the start and ending year for the
Xyear pull-down menu, and various parameters defining the display.
X.SH FILES
X.TP 30
X$HOME/.appointments
Xdefault appointments file
X.TP
X$HOME/.defaults	
X.IR suntools (1)
Xdefaults initialization file
X.TP
X/tmp/appts*
Xdefault temporary appointments file, while active
X.TP
X$HOME/.msgfile
Xmessage file (containing current appointment) for
X.IR nlock (1L)
Xprogram
X.TP
X/usr/local/lib/calentool
Xdefault directory containing special date inclusion files
X.TP
X/usr/lib/defaults/CalenTool.d
Xfile specifying system-wide alternate fonts and directories; such information may also be appended to a user's
X.I $HOME/.defaults
Xfile
X.TP
X/usr/tmp/calentool.ps
Xfile used when \*(Ps printer File Only output is selected
X.TP
X/usr/tmp/calentool.ras
Xfile used when raster printer File Only output is selected
X.SH "SEE ALSO"
Xcal(1), cal2ct(1L), calencheck(1L), calendar(1), clocktool(1), cron(8),
Xmail(1), month(1L), monthtool(1L), month2ct(1L), mt2ct(1L),
Xnlock(1L), suntools(1)
X.SH REFERENCES
XAn excellent compendium which describes basic terminology of time measurement,
Xmethods of astronomical computation, and the convoluted history of calendars:
X.IP ""
XThe Nautical Almanac Offices of the United Kingdom and the United States of
XAmerica, \fIExplanatory Supplement to the Astronomical Ephemeris and the
XAmerican Ephemeris and Nautical Almanac\fP, Her Majesty's Stationery Office,
XLondon, 1961 (reprinted with amendments, 1977).
X.LP
XThe best single source for practical computations of solar and lunar data: 
X.IP ""
XJean Meeus, \fIAstronomical Formulae for Calculators\fP, \fIMonografieen
Xover Astronomie en Astrofysica\fP, Volkssterrenwacht Urania V.Z.W.,
XMattheessensstraat 62, B 2540 Hove, Belgium, Vereniging voor Sterrenkunde
XV.Z.W., Ringlaan 3, B 1180 Brussel, Belgium, Vol. 4, Derde Druk, October 1980.
X.LP
XOther helpful references for astronomical computations:
X.IP ""
XEric Burgess, \fICelestial BASIC\fP, Revised Edition, Sybex, 1985 (cookbook
Xoriented, many algorithms hard to dig out of turgid BASIC).
X.IP ""
XPierre Bretagnon and Jean-Louis Simon, \fIPlanetary Programs and Tables
Xfrom -4000 to +2800\fP, Willmann-Bell, 1986 (for utmost accuracy in
Xplanetary computations).
X.LP
XA non-scholarly work with easily implemented algorithms for computation of
XChristian and Jewish holidays and (an approximation to) the Islamic New Year:
X.IP ""
XWolfgang Alexander Schocken, \fIThe calculated confusion of calendars;
Xpuzzles in Christian, Jewish and Moslem calendars\fP, 1st Ed., Vantage Press,
XNew York, 1976.
X.LP
XUseful tables and additional information about the Islamic calendar:
X.IP ""
XG. S. P. Freeman-Grenville, \fIThe Muslim and Christian Calendars\fP,
XOxford University Press, London, 1963.
X.IP ""
XF. R. Unat, \fIHicri Tarihleri\fP, Turktarih Kurumu Basimevi, Ankara, 1959 (Turkish).
X.IP ""
XU. V. Tsybulsky, \fICalendar of Middle Eastern Countries\fP, Nauka
XPublishing House, Moscow, 1979 (English).
X.LP
XInformation (regrettably, not at all current) about Japanese holidays:
X.IP ""
XW. H. Erskine, \fIJapanese Festival and Calendar Lore\fP,
XKyo Bun Kwan, Tokyo, 1933.
X.SH "CALLING ALL HACKERS"
XPlease help extend the special dates files and date computation library
X(only carefully verified dates and algorithms, please!).  In particular, it
Xwould be splendid if someone would expand the range of astronomical
Xcomputations, which currently include only the equinoxes and solstices;
Xone could add dates/times of the major meteor showers, planetary risings and
Xsettings, etc.  Perhaps a sailing buff could build in high/low tide estimations.
XThe lunar calendar date computation library remains to be completed.
XThere are many other historical and contemporary calendrical systems we have
Xoverlooked (Egyptian, Armenian, Babylonian, Greek, Julian, Indian, and Russian,
Xas well as ecclesiatical calendars such as the Alexandrian).  The present dates
Xlibrary provides useful calendrical computations not currently exploited by
X.IR calentool ,
Xsuch as determining the number of days, or weekdays, or Mondays
Xbetween two dates.  Perhaps a third icon could be placed next to those for
Xthe solar and lunar almanacs, which would open a calendrical computation window.
XIt would be very useful if someone would write a
X.IR curses (3X)
Xbased front-end for
X.I calentool
Xformat date files for those not using
X.IR suntools (1).
XAn efficient way of doing this might be to merge
X.I calentool
Xwith the excellent
X.IR Dates (1L)
Xprogram of Dain Samples (samples@dougfir.berkeley.edu).
X.LP
XAn XView version of
X.I calentool
Xis also available.
X.LP
XMail suggestions, corrections, and additions for the Hacker's Almanac to
XBill Randle (billr@saab.CNA.TEK.COM).
X.SH BUGS
XWithout a doubt, but hopefully pretty minor.
X.SH CAUTIONS
XNote that the dates computed here are for the Gregorian calendar, which
Xwas a modification of the Julian calendar first introduced in 1582.
XCountries have adapted this system as recently as 1927 (Turkey), and in
Xsome countries it is used as a civil calendar in co-existence with a separate
Xindigenous calendar system.  Apply caution in using computed dates for
Xnon-recent years and non-European countries.
X.SH AUTHORS
XThe original version of
X.I calentool
Xwas contributed to the Sun User Group tape (17 April 1987) by
XPhilip Heller (Sun Microsystems, heller%terrapin@sun.COM).  Sun Microsystems
Xowns this program, but has no interest in maintaining it.
X.LP
XExtensive corrections and additions have been executed by
XBill Randle (Tektronix, Inc., billr@saab.CNA.TEK.COM); it is likely that
XPhil Heller would recognize little of the current program!
XR. P. C. Rodgers (rodgers@maxwell.mmwb.ucsf.edu, School of Pharmacy,
XUniversity of California, San Francisco) performed extensive beta
Xtesting, made numerous design suggestions, and contributed the holiday
Xcomputation library, icons, manual pages, and special dates files.  The initial
Xset of special dates files were modified from earlier net postings contributed
Xby Rich Kulawiec (rsk@boulder.Colorado.EDU) and
XDick Wexelblat (...decvax!ittvax!wxlvax!rlw), assisted by the following
Xcontributors known only by their network addresses:
X(ittvax!decvax!harpo!eagle!mhuxl!ihnp4!ihuxw!pector),
X(ittvax!bunker!dick),
X(decvax!sii!mem),
X(ittvax!decvax!bellcore!yquem!psl),
X(seismo!rochester!rocksvax!sunybcs!colonel),
Xand
X(decvax!seismo!rochester!ritcv!ccieng5!ccieng6!wla),
Xin addition to others whose identifications have been lost (speak up!).
XMore dates were obtained from "Today in History" by Robert Heckendorn
Xat Hewlett-Packard in Fort Collins, Colorado (robert@fc.hp.com) for
Xwhich the conversion to calentool format was done by Larry W. Virden
X(lwv27%cas.BITNET@CUNYVM.CUNY.Edu).
X.LP
XWe thank Dr. Omar Afzal of Cornell University (Chairman of the Committee
Xfor Crescent Observation) for his help in implementing the Islamic date
Xcomputations.
XThe lunar computations were adapted from a network posting of John Walker
Xof Autodeck, Inc. (Sausalito, CA, sun!acad!kelvin), the solar computations
Xwere adapted from a network posting of Marc T. Kaufman (Los Altos, CA),
Xthe raster to \*(Ps conversion was adapted from a network posting
Xby Glenn Boysko of Case Western Reserve University and the pcal code
Xfor printing the pretty month calendar was adapted from a network
Xposting by Ken Keirnan of Pacific Bell.
X.LP
XPaul Blumstein (Citicorp/TTI, paulb@harley.tti.COM),
XMark Feblowitz (GTE Laboratories, mdf0%shemesh@gte.COM), 
XDennis Calkins (Teradata Corp., tdat!dc1@suntzu.sun.com),
XHakan Kallberg (Simulina AB, hk@simulina.se),
XBaron O.A. Grey (UCLA, baron@lanai.cs.ucla.edu),
XMatt Landau (BBN Laboratories, mlandau@bbn.COM),
XDavid St. Pierre (Pacific Bell, david@pbsaint.PacBell.COM),
XCasey Leedom (Lawrence Livermore Laboratories, casey@lll-crg.llnl.GOV),
Xand Alfred Correira (UniSQL, Inc. alfred@unisql.uucp)
Xalso provided useful suggestions, patches and feedback on previous releases,
Xas did many others.
X.\" end of man page
END_OF_FILE
if test 37695 -ne `wc -c <'calentool.1'`; then
    echo shar: \"'calentool.1'\" unpacked with wrong size!
fi
# end of 'calentool.1'
fi
echo shar: End of archive 6 \(of 23\).
cp /dev/null ark6isdone
MISSING=""
for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ; do
    if test ! -f ark${I}isdone ; then
	MISSING="${MISSING} ${I}"
    fi
done
if test "${MISSING}" = "" ; then
    echo You have unpacked all 23 archives.
    rm -f ark[1-9]isdone ark[1-9][0-9]isdone
else
    echo You still need to unpack the following archives:
    echo "        " ${MISSING}
fi
##  End of shell archive.
exit 0

exit 0 # Just in case...
-- 
Kent Landfield                   INTERNET: kent@sparky.IMD.Sterling.COM
Sterling Software, IMD           UUCP:     uunet!sparky!kent
Phone:    (402) 291-8300         FAX:      (402) 291-4362
Please send comp.sources.misc-related mail to kent@uunet.uu.net.