DTC - The Desk Top Calender Mitch Wyle Glenn Everhart January, 1984 The idea here is to automate an appointment calender. Most appointment calenders give only one of Month-At-A-Glance, Week-At-A-Glance, or Day-At-A-Glance. DTC is an attempt to give all of these functions in a paperless, fast, menu-driven format. This program is a straightforward desk calendar which is intended to allow a person or group to manage their appointments with half hour granularity. It requires a VT100 or other ANSI terminal, or can use the MSDOS ANSI.SYS device driver, since that supports the necessary cursor positioning. Data files are sequential and may be edited with ordinary editors, or transferred easily between machines; all data is ordinary ASCII text. DTC initially displays a command menu. The commands accept date arguments in any of 3 formats. The format labelled mmddyy would translate 031584 as March 15, 1984. In this format, notice the leading zeroes are required; otherwise the program cannot know where fields end. A second format is mm/dd/yy, in which one might write the date as 3/15/84. In this case, leading zeroes are optional. Both digits of year are however required. The third format is the RSX-11 date format, dd-mmm-yy, in which 3 letter month abbreviations are used. In this format, the date would be given as 15-MAR-84, which is easier yet. The date formats may be mixed and matched. To see a day's appointments, type D mm/dd/yy which will display appointments for the date specified. The initial default is the system date. If you want to see this week's appointment times, type the command W and the times currently filled in will be shown. Evening appointments are all flagged as happening at 17:00 (5PM for those not used to 24 hour time). To see the month's days having appointments, the command M can be given. This will display a calendar of the current month (with the last and next months drawn small at the page top) with asterisks by any dates on which there are appointments and a pound sign (#) by the current default date. To enter appointments on a given date and time, the command is D mm/dd/yy hh:mm appointment text where the D is a literal D (may be lower case too), the date is given in one of the legal formats and is the date of the appointment, hh:mm is the time of the appointment, from 08:00 to 17:00 (leading zeroes in hours are needed), and the part after the colon may be either 00 or 30. Thus, an appointment of 09:30 is legal, but one of 09:45 is NOT (appointments must be on half hour boundaries), and one of 9:30 is NOT (the hours must have leading zeroes). Afternoon appointments may be entered in either 12 or 24 hour notation; they will be translated. If the string EV is used instead of an hour, an evening appointment is scheduled. appointment text is any text describing the appointment. Only 60 characters are available owing to screen size limits. For appointments longer than 30 minutes, one may use the time range notation hh:mm>hh:mm, where the second time is after the first. Thus a meeting running from 9:30AM to 11:00 AM could be entered as having a time of 09:30>11:00, followed by the text. The entry is placed in each slot automatically then. We will now go over the functions provided by DTC. Command Format Function Day D mmddyy Display appointments for the given date. Week W mmddyy Display appointment times for the week containing the given date, from Sunday through Saturday. Month M mmyy Draw a calendar of the month given (form mm/yy permitted too), showing days with appointments scheduled. Enter appts D mmddyy HH:MM text Enter appointment "text" on the given date and time (time may be a range h1:m1>h2:m2, e.g., 12:30>16:00 for longer meetings). NOTE: If the default date is already set to the desired date, the appointments may be entered in the abbreviated form: HH:MM text or EV text for appointments at the given time, or evening appointments. Time ranges may be used here too. This speeds the process of entering activities, since the date need not be re-entered. The + and - commands permit rapid movement in default dates as a further aid. Quit DTC Q Exits from DTC Exit DTC EX Exits DTC Year Y yy Displays year on screen (not functional on IBM and similar machines with small screens; DEC Rainbows can use this, however.) Today T mmddyy Displays reminders like Day command but then exits from DTC. Reminder R mmddyy Displays week's meeting times like W command, then exits DTC Calendar C mmyy Draws month calendar like M command, then exits DTC. Purge P mmddyy Erases old appointments prior to mmddyy, permitting cleanup of calendar file. Negate NW mmddyy Show free times available this week NM mmyy Show days with nothing scheduled this month (both use default date if none supplied). Showing free time within a Day format was deemed not useful, so it was left out there. File F filename Set DTC to use filename as its' data file containing appointments. Since an appointment file may contain pointers to multiple other files, this permits DTC to access files of appointments for different people or groups. The free time search and Locate function (below) then allow DTC to find times when meetings could be held among groups. Indirection is flagged by having year 99 for the appointment, and the filename is placed in the appointment field. Schedule S mmddyy hh:mm text Schedule meeting at given time with text. This command assumes that the current appointment file has pointers to a group's files of appoint- ments, and that it is desired to add the text for an appointment at the given hour to each, without using a series of F and D commands to drop the notices in each serially. DTC will put the notice in each indirected file, but NOT in the current top-level file of appointments. (The G command will place notices in both the indirected files and the top level one, and the D command places notices only in the top level one; the form of each is the same.) Locate L mmddyy nn Locates time for meetings. This command will find times, in the week containing the date mmddyy, when a meeting of nn half hour intervals may begin. The range of nn must lie between 01 and 18. The times shown are times in which no activities are scheduled in the top level data file or in any files to which it points. If the date is left out, the current date is used. For meeting scheduling, one would use the F command to set a file of pointers up as the current data file, pointing to a group's schedule files, then use the L command to find free time, and then use the S command to place notices of the meeting in all files. Reset default date +nnU Move default date forward or backward -nnU by nn Units. U may be D, W, M, or Y for Day, Week, Month or Year. + moves forward, - back. If the numeric nn is omitted, 1 is assumed, and the unit is assumed to be the last display used. Thus, just typing "+" after display of a week moves forward by one week. The nn field may be zero, one, or two digits and is in decimal. For example, the command +3D moves default date forward 3 days. These commands do not redraw any displays, so a new D, W, or M display is needed next to see the new date's appointment information. Output O Outputs current calendar onto a file DTC.OUT suitable for printing. Some calendar printouts for the current date precede the appointment list. Note this function is rather crude but useful. Help H Prints a short help message on the screen (from file DTC.HLP). 132 col 132 For DEC Rainbow users who have 132 column capability, the 132 command allows use of wide screen mode and allows the Y (year at a glance) command to work. The 80 command resets. 80 col 80 This command resets 132 col max width. Note that wide screen mode is used only for the Year display even if the 132 command was given. The syntax of the Y command is Y yy (e.g., Y 84 displays a 1984 calendar.) IBM PC and similar machines can forget this, or go out and buy a Rainbow to gain better displays. POINTERS in CALENDAR FILES The calendar file format is sequential records of the format: YYMMDDTTTappointment text of 60 characters length in which every record has this form, and the time TTT is in the range (for correct files) of 080 through 170 (for 08:00 through 17:00). The third digit is always either 3 or 0 as well, since DTC only schedules half hour periods. Indirection is accomplished by editing your calendar file (with any editor) or just entering an "appointment" for year 99 (by which time somebody should have hacked some more on this to fix it up not to mess up real appointments). The text of the "appointment" should be just filespec=, with the = sign as the terminator of the file spec. This will lead to the file you specified being opened and treated as if it existed inside your own calendar file (except you need to use the S function rather than the D function to enter appointments in it as well as your own.) To use DTC, you need to create an empty DTC.DAT file first (and also any other calendar files you expect to need.) Any method will do, including using an editor to set it up. Just make up an empty file initially, possibly just copying from con: with a single return. Glenn Everhart RCA GSD Engineering 206-1 Rt. 38 Cherry Hill, NJ 08358 1/24/84