`Scully et al.
`
`[11]
`[45]
`
`Patent Number:
`Date of Patent:
`
`4,819,191
`Apr. 4, 1989
`
`[54] ELECTRONIC CALENDARIN G METHOD TO
`ESTABLISH CALENDAR FLOATING
`TRIGGERS FOR CALENDARED EVENTS
`AND PROCESSES
`[75] Inventors: Keith J. Scully, Austin, Tex.;
`Harinder S. Singh, Boca Raton, Fla.
`[73] Assignee: International Business Machines
`Corporation, Armonk, NY.
`[21] Appl. No.: 8,039
`[22] Filed:
`Jan. 29, 1987
`
`[51] Int. Cl.4 ............................................ .. G06F 15/40
`[52] US. Cl. .................................. .. 364/518; 364/521;
`340/706
`[58] Field of Search ........................... .. 368/29, 10, 43;
`340/706, 717; 364/521, 200 MS File, 518, 401,
`407
`
`[56]
`
`References Cited
`U.S. PATENT DOCUMENTS
`
`4,194,196 3/1980 Mohiuddin ........................ .. 340/711
`4,591,840 5/1986 Curtis et a1. .
`340/706
`4,626,836 12/1986 Curtis et a1. .
`..... .. 340/706
`4,645,233 2/1987 Vincent et al. ..
`283/67
`
`OTHER PUBLICATIONS
`McGilton H. “Introducing the Unix System”
`McGraw-Hill Book Company-1983 pp. 107-129.
`Sudyam B. “Time Management Business in its Finest
`Hour" Personal Computing-—Mar. 1982 pp. 34-40.
`Rothfeder J. “Time is of the Essence” Personal Com
`puting Jun. 1983 pp. 56-61.
`Primary Examiner—-Gury V. Harkcom
`
`Assistant Examiner-Phu K. Nguyen
`Attorney, Agent, or Firm-Richard E. Cummins
`[57]
`ABSTRACT
`An electronic calendaring method for use in a data
`processing system has a plurality of workstations, each
`of which is assigned to a different individual who main
`tains an electronic calendar on the system. The method
`establishes a plurality of data structures for storing data
`that is entered into the system interactively by the cal
`endar owner during the process of calendaring an event
`which involves a number of other calendar owners e. g.
`a meeting. A Trigger data structured is included to
`store data at the time an event is being calandered that
`provides a reminder to the meeting originator or calen
`dar owner. The type of reminder may be selected by the
`meeting originator provided the system hardware sup
`ports the underlying technology. The reminder may be
`just a visual message on the display, an audio tone, an
`audio message or any combination. The official ID of
`the event that is to be triggered is included in the Trig
`ger data structure. The method allows the Trigger to
`“?oat” with the identified event so that the Trigger
`established by the meeting originator may be automati
`cally employed by the other calendar owners who re
`ceived a notice on the system inviting them to the meet
`ing. If the meeting is changed or cancelled, the other
`invitees’ triggers are changed automatically as is the
`originators’ merely by changing the meeting notice.
`The method also permits a calendar owner to start a
`process (application program) that can be run on the
`system by use of the Trigger data structure.
`
`12 Claims, 4 Drawing Sheets
`
`SYSTDl 1 (LOCAL)
`
`5
`
`5m 1m 1111mm
`AND ASSOCIATED
`RECIPIENT ADDRESS
`
`CALENDAR P1100755
`ur'ni
`COMMUNICATIONS
`l
`v
`\
`rnrecm TRANSHIT
`TIH'B
`warren 1
`
`1
`
`nueczn nzcmm
`-<—>- mun. who‘: last
`(mm. mm
`srxucnmz a
`
`TRIGGER RECIPIENT
`REMOTE NAMES
`LIST (RECEIVED)
`
`SYSTEM 2 (HD4011!)
`
`CALENDAR PROCESS
`HI’l'll
`COMMUNICATIONS
`
`In
`
`RECIPIENT ADDRESS
`
`TRIGGER TRANSHIT
`TIME
`AMORITHH Z
`
`TRIGGEI RECIPIM
`—<-—>— LOCAL NAMES LIST
`(LOCAL CALENDAR
`
`TRIGGER RECIPIENT
`REMOTE NAMES
`LIST (RECEIVED) m
`
`Petitioner Apple Inc. - Exhibit 1007, p. 1
`
`
`
`US. Patent Apr. 4, 1989
`
`Sheet 1 of4
`
`4,819,191
`
`I """"""""""""""""" "I
`
`I
`
`,'
`l
`l
`I
`DISK
`STORAGE --<->-|
`UNIT
`:
`Q
`:
`......... ..
`;
`
`12- MICRO PROCESSOR
`
`1&- CONTROL
`
`PROCESSING UNIT
`2
`
`I
`
`:
`M
`l
`E
`I
`M
`0 -l3 }
`R
`:-<—->— MODEM
`Y
`:
`Q
`;
`:
`
`. . . . . . . . . . .
`
`- - - - - - - - - - - - - - - - - --T----------l----J
`
`>-
`
`DISPLAY
`.12
`
`PRINTER
`E
`
`KEYBOARD
`_1_7
`
`>
`
`FIG. 1
`
`SYSTEM 1
`
`HOST CPU
`23
`
`l
`
`l
`
`I
`
`I
`
`SYSTEM 2
`
`24
`HOST CPU
`/
`- '''''' “A 25
`
`I
`
`l
`
`I
`
`|
`
`TERMINAL FIG. 1
`
`TERMINAL FIG. 1
`
`FIG. 2
`
`Petitioner Apple Inc. - Exhibit 1007, p. 2
`
`
`
`US. Patent Apr. 4, 1989
`
`Sheet 2 of4
`
`4,819,191
`
`MOVE THE CURSOR TO EACH SELECTION OR KEY THE ITEM DIRECTLY AND HIT ENTER
`
`1. Calendar Entry, Meeting,
`Appointment, Trigger,
`Note, Vacation,
`Holiday, Offsite,
`Not Normal Work Hours
`
`2. View Select
`
`3. Composite Calendar
`
`2
`1
`3 4 5 6 7 8 9
`10 ll l2 13 14 l5 16
`l7~ l8 19 20 21 22 23
`24 25 26 27 28 29 30
`31
`
`1 2 3 4 5 6
`7 8 9 10 ll l2 l3
`l4 l5 16 17 18 19 20
`21 22 23 24 25 26 27
`28 29 30
`
`Command:
`
`PF1=Help
`
`PF2=Return to System
`
`PF8=Next Screen
`
`FIG: 3a
`
`MOVE THE CURSOR TO EACH SELECTION OR KEY THE ITEM DIRECTLY THEN HIT ENTER
`Classification List: 1 Meeting 2 Appointment 2 Offsite 2 Vacation 2 Holiday
`6 Note 1 Not Normal Work Hours
`Additional Criteria: g Priority 2 (X=l to 10) Q Open Time
`2 User Defined Field (D+ 8 Characters)
`(Select one classification number from the above list)
`PRIORITY
`02
`(l=highest,l0=lowest)
`
`CLASSIFICATION: _l_
`USER DEFINED FIELD
`EVENT IDENTIFIER: D35 MEETING Al
`MEETING/APPOINTMENT INFORMATION:
`End Time: 5:00 PM
`Date 10/07/86
`Start Time:1: 15 PM
`End Time: 5:00 PM
`Date 10709786 Q Start Time:8:30 PM
`(Rx after Date will repeat the event at the same time, x number of days)
`Names List : D35 NAMES A1
`Caller
`: TOM ROBERTS
`Subject : 1987 Budget
`Place : Conference Room 128]‘
`Details:
`AUTO SCHEDULE: LIFE N2
`SEARCH CRETERIA;2+C+A l+C+A
`Enter the classification /criteria Number separated by a space. Select
`from
`the list above. Enter selections using the following format:
`Classification+(C-Confirmed or T-Tentative)+(A-Attending or M-May Attend)
`
`EVENT DURATION(minutes):
`
`(1 TO 480)
`
`PF3=Cancel PF5=Send Notice PF6=Begin Search
`PFl=Help
`PF8=Next Screen(Security, Status, Trigger) PF9=File PFll=Add One Line
`
`FIG. 3b
`
`Petitioner Apple Inc. - Exhibit 1007, p. 3
`
`
`
`US. Patent Apr. 4, 1989
`
`Sheet 3 of4
`
`4,819,191
`
`MOVE THE CURSOR TO EACH SELECTION OR KEY THE ITEM DIRECTLY AND HIT ENTER
`
`Public
`
`Shared
`
`Private
`
`Tentative
`
`Confirmed
`
`Process
`
`SECURITY:
`(pick one)
`STATUS:
`(pick one)
`Audio
`Message
`TRIGGER:
`(All three may be picked)
`Date: 10/07/86
`Time: 1:00 PM
`Date: 10/09/86
`Time: 8:00 AM
`(PFll will scroll and add additional Date Lines while on the Date line)
`(Rx after Date will repeat the event at the same time, x number of days)
`Names List:_D35/AUSVMl_(Enter The Notification List VNET Address)
`Message
`:__The department meeting starts in 15 minutes
`(PFll will add one line)
`:INVEST0l/AUSVM1___Enter The Process VNET Address
`Pick up these calculations before the Budget Meeting
`
`Process
`
`TRIGGER FIXED 0R FLOAT?
`(pick one)
`Float with Event Identifier: D35 MEETING ILL
`(If this event moves, the trigger will be moved to the same relative time)
`
`.
`
`Fixed
`
`Float
`
`PF3=Cancel PF5=Send Notice PF6=Begin Search
`PFl=Help
`PF7=Previous Screen PF8=Next Screen PF9=File PFl0=Add One Line
`
`FIG. 3C
`
`Petitioner Apple Inc. - Exhibit 1007, p. 4
`
`
`
`US. Patent
`
`Apr. 4, 1989
`
`Sheet 4 of 4
`
`4,819,191
`
`SYSTEM 1 (LOCAL)
`
`CALENDAR PROCESS
`WITH
`COMMUNICATIONS
`
`2
`
`SEND THE TRIGGER
`AND ASSOCIATED
`RECIPIENT ADDRESS
`
`A
`V
`|
`TRIGGER TRANSMIT
`TIME
`ALGORITHM Z
`I
`A
`V
`l
`TRIGGER RECIPIENT
`REMOTE NAMES
`LIST (RECEIVED)
`
`5
`
`TRIGGER RECIPIENT
`—<—->— LOCAL NAMES LIST
`(LoCAL CALENDAR
`sTRuCTURE 5
`
`>
`
`SYSTEM 2 (REMOTE)
`
`CALENDAR PROCESS
`>_
`WITH
`COMMUNICATIONS
`
`g
`
`l
`A I
`
`E
`
`sEND THE TRIGGER
`AND AssoCIATED
`RECIPIENT ADDRESS
`
`TRIGGER RECIPIENT
`-<->- LoCAL NAMEs LIST
`(LOCAL CALENDAR
`STRUCTURE g
`
`v
`\
`TRIGGER TRANsMIT
`TIME
`ALGORITHM 1
`,
`A
`v
`I
`TRIGGER RECIPIENT
`REMOTE NAMES
`LIST (RECEIVED)
`
`_9_
`
`FICA
`
`Petitioner Apple Inc. - Exhibit 1007, p. 5
`
`
`
`1
`
`4,819,191
`
`ELECTRONIC CALENDARING METHOD TO
`ESTABLISH CALENDAR FLOATING TRIGGERS
`FOR CALENDARED EVENTS AND PROCESSES
`
`FIELD OF INVENTION
`This invention relates in general to electronic calen
`daring methods, which provide a reminder at a prede
`termined time prior to the scheduled time of a calen
`dared event'and in particular to a method in which the
`remainder “?oats” with the calendared event.
`
`25
`
`30
`
`CROSS~REFERENCES TO RELATED
`APPLICATIONS
`l. Co-pending application Ser. No. 008,033 ?led con
`currently herewith, entitled “Method For Developing
`Automatic Replies in an Interactive Electronic Calen
`daring System,” and assigned to the assignee of the
`present application is directed to an electronic calendar
`ing method in which a calendar owner can respond
`automatically to requests for participation in events
`being calendared by another person. The nature of the
`reply is based on an analysis of the parameters set forth
`in the request and an algorithm employing a set of prio
`ritized criteria that the calendar owner has established
`to provide the automatic response.
`2. Co-pending application Ser. No. 008,034 ?led con
`currently herewith, entitled “Method For Concurrently
`Displaying Entries From a Plurality of Different Elec
`tronic Calendars Based on Interactively Entered Crite
`ria,” and assigned to the assignee of the present applica
`tion is directed to an electronic calendaring method in
`which a calendar owner can display a set of calendar
`entries which have been selected based on one or more
`criteria, from different calendars within a time span that
`has been established by a calendar owner who is re
`questing a speci?c “view” of calendars on the systems.
`3. Co-pending application Ser. No. 008,249 ?led con
`currently herewith, entitled “Method For Automati
`cally Reconciling Entries on Two Copies of Indepen
`dently Maintained Electronic Calendars,” and assigned
`to the assignee of this application is directed to an elec
`tronic calendaring method in which a calendar owner
`who keeps a detached personal copy of his master cal
`endar can automatically reconcile the calendar entries
`that have been made independently on each calendar
`since the reconciliation, and interactively resolve any
`calendar event con?icts.
`4. Co-pending application Ser. No. 008,038 ?led con
`currently herewith, entitled “Electronic Calendaring
`Method Which Provides for Automatic Assignment of
`Alternates In Requested Events,” and assigned to the
`assignee of this application is directed to an electronic
`calendaring method in which a calendar owner, who
`receives a request to participate in a calendared event
`originated by another calendar owner, can assign an
`alternate to the event that will be designated in the
`automatic response which re?ects the assignment of an
`alternate to the event. The assignment of the alternate is
`based on the relationship of the information that accom
`60
`panies the request and criteria that the calendar owner
`has pre~established for each potential alternate.
`5. Co-pending application Ser. No. 008,036 ?led con
`currently herewith for Cree, et a1, entitled “Electronic
`Calendaring Method for Automatic Con?rmation of
`65
`Resource Availability During Event Calendaring,” and
`assigned to the assignee of this application is directed to
`an electronic calendaring method in which a calendar
`
`40
`
`2
`owner, when calendaring an event such as a meeting,
`which requires, in addition to a meeting room, such
`resources as a projector, video conferencing equipment,
`etc., automatically receives con?rmation that the re
`quested articles are available and reserved for the calcu
`dared meeting event.
`
`BACKGROUND ART
`The prior art has disclosed a number and variety of
`interactive electronic calendaring systems and method.
`The objective of all of these systems is primarily to
`assist the person who, for a number of different reasons,
`maintains a calendar of future events containing various
`information about the events at entry points on the
`calendar which relate to the time of the event.
`The increase of personal computers and intelligent
`workstations in recent years has made it possible for
`calendar owners to establish and maintain these calen
`dars on these interactive type data processing systems.
`Hence, the term “electronic calendaring systems.”
`Two general types of interactive electronic calendar
`ing systems have thus evolved in the art. In one type of
`calendaring system, the owner of the calendar is gener
`ally also the user of the workstation and that worksta
`tion is generally not part of a larger network. Generally,
`in these type of systems, the calendar function involves
`presenting a screen to the user which represents a day
`calendar format divided into a number of time periods.
`Each period is capable of displaying a limited amount of
`text that the user enters. In some systems, the day calen
`dar can scroll vertically to present more time periods
`and/or horizontally to permit longer text entries. The
`operator can “page” forward or backward and, in most
`arrangements, can display a requested date. These cal
`endaring methods generally do not limit the type of
`event that is calendared nor the terminology employed
`at any of the entry points and, to that extent, function in
`the same manner as conventional manner calendars or
`appointment books.
`Electronic calendars do possess an advantage over
`manual entry calendars, however, in that the calendar
`owner can, in many systems, enter an alarm type entry
`which places a reminder message on the display screen
`at a predetermined time and date. The message may also
`be accompanied by an audio signal in order to get the
`user’s attention. In most cases, the message is a reminder
`of some subsequent calendared event that the calendar
`owner has entered.
`Another advantage of the electronic calendaring
`systems is that they often permit the calendar owner to
`scan a large number of calendar entries covering an
`extended period of time to find a speci?c de?ned entry.
`This latter function is achieved generally in a manner of
`seconds.
`In general, while this type of electronic calendaring
`system is an improvement over the manual approach to
`maintaining a calendar, it does have its limitations. For
`example, the alarm function, when it is‘ used as a re
`minder, is completely independent of the event for
`which the alarm is established. As a result, if the event
`is cancelled or the time of the event is changed, then a
`new alarm entry must be created by the user, and the
`old entry deleted or moved.
`The other type of calendaring arrangement that has
`developed in the prior art involves multi-user environ
`ments having a large number of terminals or worksta
`tions which are generally part of a larger communica
`
`Petitioner Apple Inc. - Exhibit 1007, p. 6
`
`
`
`4,819,191
`4
`entry may be automatically changed when its related
`event is changed.
`'
`In a network environment in which calendar entries
`are created automatically in response to requests by one
`owner for the other owner’s participation in the event,
`the new method may automatically duplicate for the
`other calendar owners, any alarm-type messages that
`the originator has established on his own calendar and
`can insure that these messages are moved or modi?ed if
`the time of the event is moved or the event cancelled.
`The new method also allows an external process that is
`related to a calendered event to be started automatically
`at a preset time and ?oat with the related event.
`
`35
`
`45
`
`3
`tion network that has been established to permit the
`users to interact with each other and with data main
`tained on the system. In this environment, a user at a
`terminal or workstation can send a message to one or
`more of the other users on the network and is noti?ed
`when the addressee has received and read the meassage.
`In most of these environments, each user generally
`maintains a calendar, and in many of these environ
`ments the reason for the system interconnections among
`workstations is dictated by the need of these users to
`interact. Further, the nature of such interaction gener
`ally involves reference to respective calendars.
`A considerable amount of time is therefore spent in
`many organizations, with people checking and rear
`ranging their calendars to accommodate various events
`such as meetings, presentations, etc. In this environ
`ment, the electronic calendaring systems and method
`have progressed to the point where a person who is
`calling a meeting can at least view the calendars of a
`number of users that he intends to invite to a meeting, to
`determine a common available time for the meeting. See
`for example US. Pat. No. 4,626,836 ?led 11/4/83 enti
`tled “Method of Scheduling Meetings”. See also the
`cross-referenced application Ser. No. 008,034 which
`describes an improved method of ?nding a meeting
`time.
`However, in each of those systems, once the meeting
`time is set and the prospective participants noti?ed of
`the date, time, and subject of the meeting, each partici
`pant must update his own electronic calendar and also
`reply to the meeting request. While the system can
`facilitate the request and reply message process, it is
`sometimes less frustrating to merely use the telephone
`to arrive at a mutually convenient time.
`Co-pending cross-referenced application Ser. No.
`008,033 discloses an electronic calendaring method in
`which replies to meeting requests are developed auto
`matically for the calendar owner, based on criteria that
`the user has established or a set of default criteria that
`the system has established. This method is a vast im
`provement over prior art non-automatic systems. How
`ever, in the automatic method, each participant in the
`meeting must provide an entry into his own calendar to
`be reminded of the meeting that was automatically
`calendared for him. This is the same awkward position
`that the calendar owner who is not attached to a net
`work is in, that is, if the meeting is changed or can
`celled, the responsibility for managing the alarm for the
`calendared event is the receivers’ responsibility. The
`invitee must therefore individually cancel the reminder
`or move it to the new time if the meeting time has been
`changed. These functions generally involve program
`ming complexities that are costly and time-consuming.
`Electronic calendaring systems also permit calendar
`owners to enter notes into the system to remind them to
`do certain things prior to a scheduled event, such as
`obtaining a current printout of the latest sales ?gures
`just before the meeting. If the owner is away from the
`system at the time the note is triggered by a reminder,
`there may not be suf?cient time to obtain the printout at
`the time the owner remembers to order the printout.
`The present invention provides an electronic calen
`daring method in which the above-de?ned problems of
`the prior art are eliminated. In accordance with this
`65
`new method, if the calendar owner changes a calendar
`event entry to a different time, any alarm-type message
`that the owner entered in connection with the original
`
`40
`
`SUMMARY OF THE INVENTION
`The present invention is directed to a method for
`assisting a calendar owner in maintaining an electronic
`calendar on an interactive type terminal such as an
`intelligent workstation or a standalone personal com
`puter system. The method involves creating a calendar
`object data structure of the type described in cross
`referenced application Ser. No. 008,034, in which infor
`mation of a predetermined nature concerning an event
`that is being calendared is stored, as the data is being
`entered into the system interactively by the calendar
`owner in response to displayed prompts for the various
`pieces of data.
`In accordance with the improved method, a new data
`structure, referred to as the “Trigger data structure” is
`established for use by the system. A trigger data struc
`ture comprises a set of attributes that causes the system
`to take some action at a predetermined time. The attri
`butes include a relative date and time for the trigger or
`an absolute date and time. The owner/user can also
`specify the trigger type which depends on the technol
`ogy supported by the system hardware and may include
`an audio alarm, a visual indication on the display screen,
`or even the name of a process (i.e., an application pro
`gram) to be started.
`The method involves the step of presenting to the
`user/owner, a display screen in the process of calendar
`ing an event that requests data for the Trigger function.
`As the data is entered by the user/owner, it is stored at
`the appropriate ?eld positions of the trigger data struc
`ture.
`The method then automatically establishes the cor
`rect time for the trigger to be activated from the data
`entered and the calendar system then compares the
`system clock to the automatically established trigger
`time at present clock intervals. If the comparison indi
`cates a match, the identi?ed trigger is activated and the
`user or users are noti?ed, or the external process identi
`?ed is dispatched.
`In the situation where the calendar event is distrib
`uted to other owners/users in the network to update
`their calendars with the corresponding entry, the
`method also automatically establishes the time for the
`trigger to be activated for the other calendar owners.
`Since the trigger data structure includes a ?eld to
`identify the event being calendared, if the time of the
`event is changed or the event is cancelled, the method
`also automatically modi?es the time the trigger was to
`be actuated. This latter step occurs automatically for
`the other users when they are noti?ed of the change in
`the time of the calendared event.
`It is therefore an object of the present invention to
`provide an improved electronic calendar method.
`
`Petitioner Apple Inc. - Exhibit 1007, p. 7
`
`
`
`25
`
`DESCRIPTION OF THE DRAWING
`FIG. 1 is a block diagram of an interactive data pro
`cessing terminal in which the electronic calendaring
`method of the present invention may be advantageously
`employed.
`FIG. 2 is a block diagram of a network of terminals of
`the type shown in FIG. 1.
`FIGS. 3a through 30 illustrate display screens that are
`presented to a calendar owner during the event calen
`daring process.
`FIG. 4 is a ?owchart, illustrating various detailed
`steps involved in the improved electronic calendaring
`method.
`
`4,819,191
`6
`5
`Another object of the present invention is to provide
`to run. Depending on the capacity of memory 13 and
`the size of the application programs, portions of these
`a method to assist the operator of an interactive data
`processing type workstation to maintain an electronic
`programs, as needed, may be transferred to memory 13
`from the disk storage unit 19 which may include, for
`calendar that can alert the user a predetermined time
`example, a 30 megabyte hard disk drive and a diskette
`before the scheduled time of a calendar event.
`drive. The basic function of the disk storage unit is to
`A further object of the present invention is to provide
`store programs and data that are employed by the sys
`a method to assist the operators of interactive type data
`processing terminals that are interconnected through
`tem and which may readily be transferred to the mem
`ory unit 13 when needed. The function of the diskette
`one or more communications links to maintain their
`drive is to provide a removable storage function for
`respective electronic calendars in a manner that permits
`entering programs and data into the system, and a vehi
`an event that has been automatically calendared on
`cle for storing data in a form that is readily transport
`more than one calendar, to also automatically generate
`able for use on other terminals or systems.
`a reminder to the respective calendar owners, a prede
`Display device 16 and keyboard 17 together provide
`termined time before the event is to occur.
`for the interactive nature of the terminal, in that in
`A still further object of the present invention is to
`normal operation, the interpretation that the system
`provide an electronic calendaring method in which a
`gives to a speci?c keystroke by the operator depends, in
`calendar owner may specify a time for a reminder when
`substantially all situations, on what is being displayed to
`an event is being calendared and the time for the re
`the operator at that point in time.
`minder is automatically modi?ed in response to any
`In some situations, the operator, by entering com
`change in the time of the calendared event.
`Objects and advantages other than those mentioned
`mands into the system, causes the system to perform a
`certain function. In other situations, the system requests
`above will become apparently from the following de
`the entry of certain data, generally by displaying a
`scription when read in connection with the drawing.
`prompt type of menu/message screen. The depth of the
`interaction between the operator and the system varies
`by the type of operating system and the application
`program, but is a necessary characteristic of terminals
`on which the method of the present invention may be
`employed.
`The terminal shown in FIG. 1 further includes a
`printer 18, which functions to provide hard copy output
`of data developed or stored in the terminal. Lastly, the
`modem 20 functions to transfer data from the terminal
`of FIG. 1 to a host system through one or more commu
`nication links which may be a commercial type link or
`a dedicated communication link.
`FIG. 2 illustrates a network 21 of interactive type
`workstations of the type shown in FIG. 1. As illus
`trated, the network includes a plurality of terminals
`which are interconnected with each other and to a host
`central processing unit 23, which in turn is connected
`via communication link 24 to a second host processing
`unit 25, which also connects to another network 26 of
`interactive workstations. Functionally, the system oper
`ates to allow one terminal to communicate to one or
`more other terminals using established communication
`protocols, so that the various serially connected com
`munication links are transparent to the operator. Such
`systems are well known in the art, and are currently in
`extensive commercial use. Since these communication
`links per se are not part of the present invention, only
`those details that are necessary for an understanding of
`the calendaring method of the present invention will be
`described. It should therefore be assumed in the follow
`ing description, that each workstation on the network
`has a system node address and a “post office” address,
`and that to simplify the description, there is only one
`individual assigned to each node on the network. It
`should further be assumed that conventional communi
`cation services are provided by the system, such as
`directory listings of individual calendar owners and
`shareable resources such as meeting rooms, etc., which
`require scheduling. The system shown in FIG. 2 pro
`cesses information as various types of data objects such
`as text data objects, graphic data objects, and calendar
`data objects. Each of these data objects are represented
`by a datastream which comprises a series of structured
`fields.
`
`BRIEF DESCRIPTION OF THE PREFERRED
`EMBODIMENT
`FIG. 1 illustrates the functional components of an
`interactive type data processing terminal on which the
`electronic calendaring method of the present invention
`may be advantageously employed. The terminal com
`prises a processing unit 11 which includes a micro
`processor block 12, a semiconductor memory 13, and a
`control block 14 which functions to control input/out
`put operations in addition to the interaction between the
`microblock processor block 12 and the memory unit 13.
`The terminal further includes a group of conven
`tional peripheral units including a display device 16, a
`keyboard 17, a printer 18, a disk storage unit 19, and a
`modem 20. Since the details of the above-described
`functional blocks form no part of the present invention
`and can be found in the prior art, only a brief functional
`description of each block is set forth, along with a de
`scription of their interactions, sufficient to provide a
`person of ordinary skill in the art with a basis of under
`standing applicants’ improved electronic calendaring
`method.
`Processing unit 11 corresponds to the “system unit”
`of a personal computer system such as the IBM XT or
`IBM AT type systems. Unit 11 is provided with an
`operating system program which may be one of the
`many versions of DOS (Disk Operating System) which
`is normally employed to run the systems. The operating
`system program is stored in memory 13 along with one
`or more application programs that the user has selected
`
`45
`
`65
`
`Petitioner Apple Inc. - Exhibit 1007, p. 8
`
`
`
`4,819,191
`8
`7
`2. COD—This is a code assigned a speci?c meaning.
`A calendar object datastream has the following se
`3. BST-This is a bit string of binary elements, each
`quence of structures.
`of which is usually independent of the other.
`In the following discussion it will be assumed that a byte
`comprises 8 bit positions numbered 0-7 from left to
`right, with position 0 being the high order position. Bit
`position 0 represents 2*"7 (2 to the 7th power), while bit
`7 represents 2**O (2 to the 0 power).
`The various calendar structured ?elds and calendar
`triplets are de?ned by the following type of table.
`
`Begin Document (BDT)
`Begin Page (BPG)
`Begin Calendar Data (BCL)
`Calendar Data Descriptor (CDD) (Optional)
`Calendar Data SF (CAD)
`Calendar Structures (COCA)
`End Calendar Data (ECL)
`End Page (EPG)
`End Document (EDT)
`
`10
`
`The format of the datastream for other type data
`objects contain the begin document, begin page, end
`page, and end document data structures. Structured
`?elds corresponding to those listed above for a calendar
`object are also employed for other type objects.
`A structured ?eld is a self-describing entity which
`contains related groupings of parameter values and
`triplets. The structure field, as shown below, has two
`parts: the Structured Field Introducer and the Struc
`tured Field Content.
`
`SFl P1 P2 P3
`
`0
`
`AI '4
`
`Pn
`
`n-l
`
`25
`
`30
`
`35
`
`The structured ?eld begins with a Structured Field
`Introducer. The syntax and semantics of the Structured
`Field Introducer are de?ned by the architecture which
`governs the datastream in which the structured ?eld is
`found. The Structured Field Introducer contains as the
`?rst two bytes a parameter which de?nes the length of
`the structured ?eld. It also contains an identi?cation
`code which uniquely identi?es the structured ?eld.
`The Structure Content portion of each structured
`?eld contains structures and triplets, which give the
`structured ?eld its meaning. Parameters in the triplets
`40
`de?ne the attributes of the Calendar Object. Every
`parameter has a value either explicitly appearing in a
`triplet, inherited from a control structure in the datas
`tream’s hierarchy, or implicitly de?ned as a default.
`This default may also be the alternate action value.
`Every structure is either required or optional. A re
`quired structure appears in the object because the func
`tion of that structure is required and for proper perfor
`mance of the function an value is necessary.
`An optional structure need not appear in the object
`either because the function of that structure is not re
`quired or because the function is required, but default
`values are acceptable for all parameters.
`As shown above, a calendar data (CAD) structured
`?eld (SF) precedes the actual calendar data. A calendar
`data descriptor (CDD) SF can precede the CAD SF to
`provide formatting information for the data that fol
`lows.
`Calendar data comprises named data structures and
`named triplets which are composed of parameters. A
`60
`parameter is a variable to which a value is assigned.
`Parameters can be optional or required. Parameters are
`also classi?ed as terminal or non-terminal. A terminal
`parameter is merely the last parameter in a string of
`parameters.
`A parameter can have one of three types of values
`assigned.
`1. NUM-This is a number or a numerical value.
`
`45
`
`65
`
`BYTES
`
`NAME TYPE MIN MAX LGTH OPT
`
`n-m
`
`name
`
`type
`
`v
`
`it
`
`www
`
`In the ?gure:
`BYTES refers to the position, indexed on zero.
`NAME is the name by which reference is made to the
`parameter.
`TYPE denotes the syntax of the parameter by “type,”
`The architected types NUM, COD, and BST were
`described earlier.
`LGTH denotes the‘length of the ?eld in terms of the
`exact number of bytes or the maximum number of
`bytes permitted.
`OPT refers to the optionality of the parameter’s ap
`pearance in the structure or triplet:
`0 means that the parameter is optional.
`R means that the paramete