Patent ID: 8484061

Claim:
A method of scheduling events having multiple meetings and multiple attendees, the method comprising: receiving, by a computer system, a set of event data including a plurality of sessions each comprising a plurality of sub-meetings, an event duration that encompasses a plurality of time slots, a respective duration for each sub-meeting, a respective start time for the event and each of the plurality of sub-meetings, and a set of information describing a plurality of event attendees that includes a respective list of one or more mandatory attendees for each sub-meeting, wherein the set of sub-meetings further includes one or more group sessions for the event, wherein set of event data specifies a hierarchical relationship for the event and the set of sub-meetings with the event at a highest level of the hierarchical relationship, wherein each sub-meeting has a parent selected from the event and the sub-meetings of the set of sub-meetings in the hierarchical relationship, wherein each sub-meeting can inherit event data from the set of event data specified for the parent of the sub-meeting, wherein each group session is the parent of at least one of the one or more sessions for the event, and wherein generating the second list further includes removing each possible set of time slots from the first list for each session having one of the one or more group sessions as the parent of the session that is not within the respective duration specified for the group session; generating, by the computer system, a first list of each possible set of time slots from the plurality of time slots for each session within which the session can be scheduled based upon the specified lists of one or more mandatory attendees and the respective start times for the sub-meetings; generating, by the computer system, a second list by removing each possible set of time slots from the first list for each session that is less than the duration specified for the session; individually performing a scheduling process for each session that comprises allocating a respective set of time slots for the session in an event schedule, removing each possible set of time slots for the session that is not equivalent to the set of time slots allocated for the session from the second list, and removing each possible set of time slots for each other session that includes at least one time slot allocated for the session in the event schedule from the second list; and sending, by the computer system, a respective electronic message presenting the event schedule to each event attendee of the plurality of event attendees.