IP Library Patent Application 13951353
Patent Application
App. No. 13/951,353

METHOD AND APPARATUS FOR CALENDARING REMINDERS

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
13/951,353
Abstract

An electronic calendar includes such features as recurring reminders, dividing unpredictable work loads into equal pieces, template free parsing, a reminders scheduling algorithm to reduce spikes, dynamic delivery and recovery algorithms, methods for splitting the work load between controllers and workers and for monitoring progress, all within the context of a calendar architecture for a large enterprise.

Claims (48)

1 .- 7 . (canceled)

8 . A method for delivering messages that are composed of standard reminder content and event-specific content, comprising the steps of:

storing all standard content for reminders in a set of template files;

specifying in each template file all standard content for a specific reminder; and

including in each template a set of directives that indicate where a substitution of event-specific content should occur.

9 . The method of claim 8 , further comprising the steps of:

at runtime, loading a template file into a cache when it is first needed; and

pre-parsing said template file when said template is first loaded into said cache by dissecting said template into an array of hard coded string constants and variable names.

10 . The method of claim 9 , further comprising the steps of:

assembling final reminder content by walking said array of hard coded string constants and variable names once;

appending string constants to final message content; and

using template variable names as a lookup into a dictionary of keyvalue pairs for a particular reminder.

11 . A reminders scheduling method for reducing spikes in delivery volume, comprising the steps of:

spreading a load of reminder deliveries across time without delivering said reminders too late or too early by weighing one or more factors in deciding when to schedule a reminder for delivery, where said factors may comprise any of an intent of a user and a destination device.

12 . The method of claim 11 , further comprising the step of:

inferring said intent of said user by examining a lead time of said reminder, where lead time is a difference between a time an event occurs and a time for which a reminder for said event occurs, wherein the shorter a lead time for a reminder, the less accuracy is required in its delivery.

13 . The method of claim 12 , further comprising the step of:

assigning each reminder to a priority class based on the lead time of said reminder;

wherein each priority class has a delivery window during which reminders of that class may be delivered; and

wherein size of a window varies according to urgency of a priority class, measured backwards from an ideal delivery time.

14 . The method of claim 11 , further comprising the step of:

clustering reminders into different priority classes based upon any of lead time and destination device.

15 . The method of claim 11 , further comprising the step of:

providing a dynamic priority queue; and

using a dynamic prioritization scheme to determine which reminders to deliver;

wherein reminders with similar delivery properties are grouped into units of work referred to as jobs.

16 . The method of claim 15 , wherein jobs in said dynamic priority queue are prioritized by their delivery urgency as follows:

jobs that are not yet late are always preferred over jobs that are late;

for jobs that are not late, the closer to late they are, the more urgent they are;

for jobs that are already late, the less late a job is, the more urgent the job is; and

in the event of a tie, prefer a job with the smallest delivery window.

17 . The method of claim 15 , further comprising the step of:

delivering jobs which have less accurate delivery requirements earlier.

18 . A method for splitting a large workload, for executing said workload at a specific time, and for finishing said execution within a small period of time, comprising the steps of:

providing a controller for starting a job as a worker on a different worker machine to distribute said workload evenly across a plurality of worker machines, depending upon said worker machines' capacity and current usage; and

said controller dividing a large job into smaller jobs by grouping records within said large job by a distribution ID that is randomly assigned to each record upon its creation, and by assigning a range of distribution IDs to a job.

19 . The method of claim 18 , further comprising the step of:

removing a worker machine on the fly should said worker machine fail or need to be taken down;

wherein said controller does not start any new work on said worker machine.

20 . The method of claim 18 , further comprising the step of:

said worker starts executing a job that is sorted by a distribution ID; and

said worker updating said controller at a regular interval with its progress, measured in terms of said distribution ID.

21 . The method of claim 18 , wherein if a worker fails to complete a job, then said controller identifying said failure and restarting a new job that only does work that was not completed by a previous worker, thereby reducing redundant work.

22 . The method of claim 18 , further comprising the step of:

running of a backup controller which keeps an eye on a primary controller and takes charge when said primary controller is not able to do its job to safeguard against any single point of failure.

23 . The method of claim 18 , further comprising the steps of:

adding a new worker machine on the fly; and

said controller assigning new work on said new machine.

Assignments (5)
CHANGE OF NAME Recorded Dec 20, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058961/0436 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 13, 2015
From: CHHATRAPATI, RUPESH; TREITEL, RICHARD J.; CHESTER, JON; SOBOTKA, DAVID; LAO, LOUIS; ZAESKE, ANDREW; VENGADASUBBU, MEERA
To: AMERICA ONLINE, INC.
Reel/Frame 036321/0561 →
CHANGE OF NAME Recorded Aug 13, 2015
From: AMERICA ONLINE, INC.
To: AOL LLC
Reel/Frame 036345/0614 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 13, 2015
From: AOL INC.
To: FACEBOOK, INC.
Reel/Frame 036346/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 13, 2015
From: AOL LLC
To: AOL INC.
Reel/Frame 036346/0146 →