# US 12,120,260 B2 · Computing system that generates a predicted routine of a user

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,120,260 B2
- Document ID: US12120260B2
- Status: Granted
- Kind: B2
- Application number: 17/397,467
- Filed: 2021-08-09
- Published: 2021-11-25
- Granted: 2024-10-15
- Earliest claimed: 2019-07-02
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Dragomir Dimitrov Yankov; Michael Robert Evans; Renzhong Wang; Senthil Kumar Palanisamy; Siddhartha Cingh Arora; Alex Jordan Yuter; Beibei Cheng; Wei Wu
- Web page: https://patentgrep.com/patent/US12120260B2

## CPC

- G06F 16/29: Geographical information databases
- H04M 1/72451: according to schedules, e.g. using calendar applications
- G01C 21/3617: {using user history, behaviour, conditions or preferences, e.g. predicted or inferred from previous use or current movement}
- G01C 21/3679: {Retrieval, searching and output of POI information, e.g. hotels, restaurants, shops, filling stations, parking facilities (G01C21/3611 takes precedence)}
- G06F 16/9537: Spatial or temporal dependent retrieval, e.g. spatiotemporal queries
- G06N 3/049: Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
- G06Q 10/0833: Tracking
- H04L 51/046: Interoperability with other network applications or services
- H04W 4/029: Location-based management or tracking services
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04M: TELEPHONIC COMMUNICATION (circuits for controlling other apparatus via a telephone cable and not involving telephone switching apparatus G08)
- G01C: MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY (measuring liquid level G01F; radio navigation, determining distance or velocity by use of propagation effects, e.g. Doppler effects, propagation time, of radio waves, analogous arrangements using other waves G01S)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)

## Abstract

Described herein are technologies related to generating a predicted routine of a user of a mobile computing device. Location entries generated by the mobile computing device are processed to generate visit entries, wherein the visit entries are representative of visits made by the user to places over several days. An input sequence of states is constructed based upon the visit entries, wherein each state has a place identifier assigned thereto, and further wherein each state corresponds to a time interval of predefined length. A predicted routine of the user is generated based upon the input sequence of states.

## Claims

### Claim 1

A method for updating a computer-implemented calendar of a user based upon a routine predicted for the user, the method comprising:
predicting the routine for the user based upon location data generated by a mobile computing device over a period of at least two days, wherein predicting the routine of the user comprises:
dividing a future window of time into contiguous blocks of time, wherein the future window of time includes at least two upcoming days, and further wherein the contiguous blocks of time are of equivalent length; and
for all blocks of time in the contiguous blocks of time, assigning respective labels to the blocks of time, wherein the labels identify places where the user is predicted to be during the blocks of time;
based upon the predicted routine for the user, generating a calendar entry for the user, wherein the calendar entry is for a block of time in the contiguous blocks of time, and further wherein the calendar entry identifies a place where the user is predicted to be during the block of time based on the assigned label for the block of time; and
sending the calendar entry to the user.

### Claim 2 (depends on 1)

The method of claim 1, wherein predicting the routine for the user comprises:
generating visit entries based upon the location data generated by the mobile computing device of the user, wherein the visit entries are for a previous window of time, and further wherein each visit entry comprises:
a date of a visit;
an identity of a place of the visit;
a start time of the visit, wherein the start time identifies when the location data generated by the mobile computing device indicates that the mobile computing device arrived at the place; and
data that is indicative of a duration of the visit, wherein the duration of the visit is an amount of time that the mobile computing device was determined to be at the place from the start time to when the mobile computing device departed the place, wherein the visit entries collectively correspond to the at least two days.

### Claim 3 (depends on 2)

The method of claim 2, wherein generating the visit entries comprises clustering location entries in the location data to generate location clusters, wherein each location entry includes a latitude/longitude pair and a timestamp, and further wherein the location entries are clustered as a function of time and space.

### Claim 4 (depends on 1)

The method of claim 1, wherein the future window of time is between one day and two weeks.

### Claim 5 (depends on 4)

The method of claim 4, wherein the length of the contiguous blocks of time is one of fifteen minutes, thirty minutes, or one hour.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
based upon a label assigned to a second block of time in the contiguous blocks of time, generating an electronic message; and
transmitting the electronic message to the mobile computing device of the user.

### Claim 7 (depends on 6)

The method of claim 6, wherein the electronic message includes a reminder to complete a task that is assigned to a second place that is identified by the label.

### Claim 8 (depends on 6)

The method of claim 6, wherein the electronic message includes a recommendation to visit a second place, wherein the second place is recommended to visit based upon a third place that is identified by the label.

### Claim 9

A computing system comprising:
a processor; and
memory storing instructions that, when executed by the processor, cause the processor to perform acts comprising:
based upon location data generated by a mobile computing device of a user over several days, generating a predicted routine of the user, wherein the predicted routine of the user comprises a sequence of labels assigned to a sequence of contiguous time blocks over a future window of time, wherein:
each time block in the sequence of contiguous time blocks has a respective label assigned thereto;
each time block in the sequence of contiguous time has a same length;
the future window of time includes at least one day; and
the labels identify places where the user is predicted to be during the sequence of contiguous time blocks over the future window of time;
based upon a label assigned to a time block in the predicted routine of the user, updating an electronic calendar of the user to include a calendar entry for the time block, wherein the calendar entry includes an identity of a place identified by the label; and
transmitting the calendar entry to a computing device of the user.

### Claim 10 (depends on 9)

The system of claim 9, wherein the future window of time comprises a week.

### Claim 11 (depends on 9)

The system of claim 9, wherein each time block in the sequence of contiguous time blocks is one half hour in length.

### Claim 12 (depends on 9)

The system of claim 9, wherein generating the predicted routine of the user comprises:
generating a second sequence of labels for a second sequence of contiguous time blocks included in the several days, wherein the second sequence of labels identifies places visited by the user during the several days, wherein the predicted routine of the user is generated based upon the second sequence of labels.

### Claim 13 (depends on 12)

The system of claim 12, wherein each time block in the second sequence of contiguous time blocks is of equivalent length.

### Claim 14 (depends on 12)

The system of claim 12, wherein generating the predicted routine of the user further comprises providing the second sequence of labels to a convolutional neural network as input to the convolutional neural network, wherein the convolutional neural network is configured to output the predicted routine of the user based upon the second sequence of labels.

### Claim 15 (depends on 14)

The system of claim 14, wherein the convolutional neural network is a masked time dilated convolutional neural network.

### Claim 16 (depends on 9)

The system of claim 9, the acts further comprising:
based upon a second label assigned to a second time block in the sequence of contiguous time blocks, generating an electronic message; and
transmitting the electronic message to the mobile computing device of the user.

### Claim 17 (depends on 16)

The system of claim 16, wherein the electronic message includes a reminder to complete a task that is assigned to a second place that is identified by the second label.

### Claim 18 (depends on 16)

The system of claim 16, wherein the electronic message includes a recommendation to visit a second place, wherein the second place is recommended to visit based upon a third place that is identified by the second label.

### Claim 19

A computer-readable storage medium comprising instructions that, when executed by a processor, cause the processor to perform acts comprising:
predicting a routine for a user based upon location data generated by a mobile computing device of the user over a period of at least two days, wherein predicting the routine of the user comprises:
dividing a future window of time into contiguous blocks of time, wherein the future window of time includes at least two upcoming days, and further wherein the contiguous blocks of time are of equivalent length; and
for all blocks of time in the contiguous blocks of time, assigning respective labels to the blocks of time, wherein the labels identify places where the user is predicted to be during the blocks of time;
based upon the predicted routine for the user, generating a calendar entry for the user, wherein the calendar entry is for a block of time in the contiguous blocks of time, and further wherein the calendar entry identifies a place where the user is predicted to be during the block of time based on the assigned label for the block of time; and
sending the calendar entry to the user.

### Claim 20 (depends on 19)

The computer-readable storage medium of claim 19, wherein predicting the routine for the user comprises:
generating visit entries based upon the location data generated by the mobile computing device of the user, wherein the visit entries are for a previous window of time, and further wherein each visit entry comprises:
a date of a visit;
an identity of a place of the visit;
a start time of the visit, wherein the start time identifies when the location data generated by the mobile computing device indicates that the mobile computing device arrived at the place; and
data that is indicative of a duration of the visit, wherein the duration of the visit is an amount of time that the mobile computing device was determined to be at the place from the start time to when the mobile computing device departed the place, wherein the visit entries collectively correspond to the at least two days.
