1. A computer system, comprising: a memory; a display; an input device that is adapted to receive input from a user of the computer system; a processor that is operatively coupled to the memory, the display and the input device; wherein computer executable instructions are stored in the memory that, when executed by the processor, causes the following steps to be performed: assigning a first time interval to a first block of time, the first time interval comprising a first start time and a first end time; assigning a first metadata to the first block of time, the first metadata having a first numerical value and a first type; assigning a second time interval to a second block of time, the second time interval comprising a second start time and a second end time; assigning a second metadata to the second block of time, the second metadata having a second numerical value and a second type; determining that the first type of the first metadata matches the second type of the second metadata; in response to determining the first type of the first metadata matches the second type of the second metadata, aggregating the first block of time with the second block of time by: determining an aggregate time interval using at least one of four different operations between the first time interval and the second time interval, the operations including a union operation, an intersection operation, a subtraction operation, and an inversion operation; determining an aggregate metadata by combining the first numerical value of the first metadata with the second numerical value of the second metadata; generating an aggregate time block having the aggregate time interval and the aggregate metadata.