DTC - The Desk Top Calender Mitch Wyle December 1982 Version 1: REVISED BY GCE 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 release has had considerable work done to it to make it a more general tool. See the addendum for the extras. Among the features I would like to see added: - Year-At-A-Glance in 132 column mode with two rows of six months each - Menu option(s) to print out appointments, in day, week, month format - Support for non VT-100 terminals (general cursor positioning calls) DTC is one of a number of Paperless Office programs I have been developing for two years. Other related programs are an on-line telephone directory, an electronic mail system, an automatic "While You Were Out" message taker which spawns mail directives, Memo and Form letter templates and programs, and software tools for writers in a business environment. Is there a DECUS sig for Office Automation? Please call me with your problems and suggestions. I am very new at programming in Fortran in the DEC world. I have already developed the paperless office package on a Honeywell Level 6 running Ultimate. Source code is in PROC and Data Basic. Hope to hear from someone, Mitchell F. Wyle Data Systems Supervisor, NUS Pittsburgh Radiological Laboratory 5350 Campbells Run Rd. Pittsburgh, PA 15205 (412) 788-1080 x405 Revision 1: Glenn C. Everhart I have added a few extras to the program to make it more usable and fix a few small bugs. The following has been done: * Date bugs in displaying weeks at the beginnings of months are fixed. * The E in Evening now is a pseudo time and gets displayed as 17:00 on the weekly summary. You can enter evening appointments using the D command with E for time. (EV works OK too.) * Most commands are accepted in lower case or upper case. * Commands T (Today), R (Reminder), and C (Calendar) correspond to Day, Week, and Month exactly but cause DTC to exit after they are executed. This permits them to be used from MCR with instant exit, thus to be placed into login.cmd files for an "auto reminder" service. * Time ranges may be input (so long as it is done with no format errors) in the form hh:mm>h2:m2 (e.g. 09:00>15:30) which will replicate the appointment part of the line into DTC.DAT over the indicated range. * Purge of old appointments (clear out appointments from before a given date, defaulting to today) * Reverse display of week/month times permitting FREE times to be found and displayed rather than occupied ones (potentially for a group of people) * A second level of data files, permitting an appointment file to contain pointers (1 level deep) to other files which can be searched as well as the first * Multiple appointment files, changeable on command (permitting "private" appointment calendars) * Scheduling of appointments in multiple files (useful for setting up meetings or maintaining multiple files) * Lookup for free times of length n * 30 minutes (where n is any number in the range 1 to 18) over a week period; display of times is made in Week format. Valid start times for meetings of given lengths are shown. This distribution kit includes the following files: DTC.ULB - Universal library with Fortran source code - and DTC.HLP which DTC needs to be in [1,2] DTC.OLB - Object library containing DTC object code DTCF.TSK - Task image of DTC for PDP-11's with floating point processor DTCN.TSK - Task image of DTC for machines without floating point processor DTC.DAT - Empty text file for appointments README.1ST - This file You will have to extract the help file DTC.HLP from the universal library DTC.ULB, and put it in [1,2]. DTC needs [1,2]DTC.HLP to execute the H option from its menu. >LBR DTC.HLP=DTC.ULB/EX:HLP >PIP SY:[1,2]DTC.HLP=DTC.HLP The tape is an ANSI tape with the following contents: 1. All source and help files of the second revision of DTC 2. DTCOLD.BCK - an RMSBCK container file of the original DTC submission 3. DTCNEW.BCK - an RMSBCK container file of the new DTC submission (in case of bad files on tape...) New commands: P [mmddyy] - Removes all appointments from current calendar file whose date is BEFORE the date specified. If no date is specified, today's is assumed. N(command) (for example NW [mmddyy] ) - Displays FREE time instead of scheduled time in week or month formats. Not deemed useful for Day format, so left out there. F filename - Closes current calendar file (defaults to DTC.DAT initially) and opens filename instead S [mmddyy hh:mm[>hh:mm]] appointment/meeting - Schedules appointment /meeting at the given time. If current calendar file contains pointers to other files (see below; year=99 and appointment part has 'filename=' in it) then each of those gets a notice of the appointment or meeting added to it as well as the current calendar. Otherwise only the current calendar file is updated in the D format. L [mmddyy] nn - Locate a period of nn half-hours in the week containing mmddyy. Displays the free time in week format. Used to schedule meetings. nn must be 01 thru 18 and is clamped to this range 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.) CAVEATS: DTC is a bit touchy about illegal inputs. Be sure you input the mmddyy in the format given (i.e. July 4, 1983 is entered as just "070483", NOT as "7/4/83" or "7483" or anything else. If DTC seems to generate weird displays, edit DTC.DAT (or whatever else is your calendar file) and remove or edit lines in which the date or time are in illegal format. To use DTC, you need to create an empty DTC.DAT file first (and also any other calendar files you expect to need.) The simplest way to do this in RSX is to use the command PIP DTC.DAT=NL: and in VMS MCR PIP DTC.DAT=NL: but any method will do, including using an editor to set it up. Don't be alarmed about occasional open file errors; most have been fixed but just re-run DTC if any still show up; they don't corrupt your calendar file. I haven't seen any for awhile, so don't think many (if any) remain, but I could have missed a spot where a redundant close is needed. You may fix if need be.