Recurrence definition identification
First Claim
1. A computer-implemented method of managing dates using a recurrence definition, comprising:
- obtaining, by a first computer system from a second computer system over a communications network, a list of dates of previously-scheduled event occurrences, using a processor of the first computer system; and
executing stored instructions, by the processor, to improve storage efficiency of a storage device from which a scheduling module operating on the first computer system manages storage of event data, comprising;
from the list of dates of occurrences, using the processor for programmatically determining a recurrence definition that represents the list of dates of occurrences, the recurrence definition comprising a recurrence rule from which the dates of occurrences can be recreated; and
storing the determined recurrence definition on the storage device instead of storing the list of dates of occurrences.
1 Assignment
0 Petitions
Accused Products
Abstract
A solution for managing dates is provided, in which a recurrence definition that represents a list of dates using a recurrence rule is automatically identified. The recurrence definition may also include a set of exceptions, which account for variations from a recurring pattern in the list of dates. In one embodiment, an efficiency measure is obtained for each of various proposed recurrence definitions, and a recurrence definition that most efficiently represents the list of dates is identified. In one application, an event management (e.g., calendaring) program automatically identifies an efficient recurrence rule for a list of event occurrences.
-
Citations
17 Claims
-
1. A computer-implemented method of managing dates using a recurrence definition, comprising:
-
obtaining, by a first computer system from a second computer system over a communications network, a list of dates of previously-scheduled event occurrences, using a processor of the first computer system; and executing stored instructions, by the processor, to improve storage efficiency of a storage device from which a scheduling module operating on the first computer system manages storage of event data, comprising; from the list of dates of occurrences, using the processor for programmatically determining a recurrence definition that represents the list of dates of occurrences, the recurrence definition comprising a recurrence rule from which the dates of occurrences can be recreated; and storing the determined recurrence definition on the storage device instead of storing the list of dates of occurrences. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system for managing dates using a recurrence definition, comprising:
-
a first computer system comprising a processor; and instructions which are executable, using the processor, to implement functions comprising; obtaining, by the first computer system from a second computer system over a communications network, a list of dates of previously-scheduled event occurrences; and improving storage efficiency of a storage device from which a scheduling module operating on the first computer system manages storage of event data, comprising; from the list of dates of occurrences, programmatically determining a recurrence definition that represents the list of dates of occurrences, the recurrence definition comprising a recurrence rule from which the dates of occurrences can be recreated; and storing the determined recurrence definition on the storage device instead of storing the list of dates of occurrences. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A computer-implemented method of managing previously-scheduled event occurrence dates for an electronic system using a recurrence definition, comprising using a processor of a first computer system to perform:
-
obtaining, by the first computer system from a second computer system over a communications network, a list comprising a plurality of dates, each of the dates representing a previously-scheduled event occurrence; and executing stored instructions, by the processor, to improve storage efficiency of a storage device from which a scheduling module operating on the first computer system manages storage of event data, comprising; sorting the list of dates into sequential order; determining a most common number of days between consecutive ones of the dates in the sorted list of dates; responsive to determining that the most common number is approximately 7 or 30, selecting to use a weekly or monthly recurrence rule type, respectively, and otherwise selecting to use a daily recurrence rule type; choosing a set of modifier groups corresponding to the selected recurrence rule type; organizing each of the dates into a corresponding one of the modifier groups in the chosen set, wherein each of the dates corresponds to only a unique one of the modifier groups in the chosen set; selecting, from the modifier groups, a particular one having a highest number of dates organized therein; calculating a number of time units between each pair of consecutive ones of the dates organized into the selected modifier group, the time units corresponding to the selected recurrence rule type; selecting a most common one of the calculated number of time units as a first proposed interval for the particular modifier group and selecting one as a second proposed interval for the particular modifier group; determining a starting date and an ending date for the plurality of dates, the starting date being an earliest of the dates in the list and the ending date being a latest of the dates in the list; generating a first representation of dates and a second representation of dates, comprising; setting a first date in the first and the second representations equal to the starting date; and iteratively computing, for the first and the second representations until reaching the ending date, a next date in the first and the second representations by adding a number of days corresponding to the first and the second interval, respectively, to a next-previous date in the respective representation; comparing, for each of the first and the second representations as a sequence, the dates therein to the dates in the sorted list to determine a count of matching dates in each of the first and the second representations and a count of non-matching dates in each of the first and the second representations; multiplying, for each of the first and the second representations, the count of non-matching dates by an exceptions multiplier to generate an exceptions cost for each of the first and the second representations; selecting, as a determined interval, either the first interval or the second interval based on a lower of the corresponding exceptions cost; and storing, on the storage device instead of storing the list of dates, a recurrence definition from which the list of dates can be recreated, the recurrence definition comprising the recurrence definition type, the selected interval, the start date, the ending date, and an exceptions list, wherein the exceptions list comprises each non-matching date from the representation corresponding to the selected interval. - View Dependent Claims (16, 17)
-
Specification