US2013332218A1PendingUtilityA1

Method and apparatus for calendaring reminders

Assignee: FACEBOOK INCPriority: Jul 16, 2001Filed: Jul 25, 2013Published: Dec 12, 2013
Est. expiryJul 16, 2021(expired)· nominal 20-yr term from priority
G06Q 10/06G06Q 10/1093H04L 67/535G06Q 10/109Y02P90/80G06F 16/24547Y10S707/99945Y10S707/99948Y10S707/951G06Q 10/1095
64
PatentIndex Score
0
Cited by
0
References
0
Claims

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

exact text as granted — not AI-modified
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.

Join the waitlist — get patent alerts

Track US2013332218A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.