IP Library › Granted Patent US 11,263,592
Granted Patent B2
US 11,263,592 · App. 15/863,975 · Granted Mar 1, 2022

Multi-calendar harmonization

Inventors: Dikla Dotan-Cohen (Herzliya, IL); Ido Priness (Herzliya, IL); Haim Somech (Herzliya, IL)
Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
G06Q10/1093H04L67/22H04L67/1095
View Patent ↗
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 11,263,592
App. No.
15/863,975
Granted
Mar 1, 2022
Kind
B2
Abstract

Computerized systems for synchronizing multiple calendars are provided. User activity is monitored via sensors and user devices associated with the user. Monitoring user activity includes detecting calendar activity associated with a set of calendars that includes a first calendar. A first calendar event associated with the first calendar is detected. A second calendar included in the set of calendars and associated with the first event is determined. The second calendar is determined based on the user activity, the first calendar, or the first event. The second calendar may be determined based on a synchronization profile associated with the first calendar. The second calendar is updated to include at least a portion of the first event. The first event is synchronized and/or shared with the second calendar. Only selective portions of the event data of the first event may be provided to the second calendar.

Claims (84)

1. A computerized system for enforcing security of event data when synchronizing calendars, the system comprising:

one or more processors; and

computer storage memory having computer-executable instructions stored thereon which, when executed by the one or more processors, implement a method comprising:

obtaining monitored data from monitoring activity via one or more user devices associated with a user to detect calendar activity associated with a set of calendars in a data store, wherein the monitored data comprises user activity, user preferences, synchronization events, calendar event data, a calendar context, an event context, or a user device context;

applying pattern inference logic of a machine learning process, comprising rules, associations, conditions, a prediction model, a classification model, or a pattern inference algorithm, to the monitored data to determine synchronization patterns or features;

dynamically updating a synchronization profile of a first calendar in the set of calendars, wherein the synchronization profile is learned over time, based at least in part on the synchronization patterns or features determined by the pattern inference logic, wherein the synchronization profile indicates accessibility, by particular calendars in the set of calendars, to selective portions of event data associated with the first calendar;

detecting a first event that is a first calendar event, comprising first event data, wherein the first event is associated with the first calendar;

determining a second calendar based on at least one of the user activity, the first calendar, or the first event, wherein the second calendar is included in the set of calendars;

determining that one or more items of the first event data in the first event are accessible to the second calendar based on the synchronization profile associated with the first calendar, the synchronization profile providing accessibility settings for respective items of the first event data, each accessibility setting indicating whether the respective item of the first event data is accessible or non-accessible to the second calendar;

generating a scrubbed first event to be synchronized with the second calendar, the scrubbed first event generated by scrubbing the first event data based at least in part on the accessibility settings in the synchronization profile; and

updating the second calendar to display the scrubbed first event.

2. The system of claim 1 , wherein a portion of the first event data included in the first event is displayed in the first calendar and access to the portion of the first event data is selectively restricted from the second calendar.

3. The system of claim 1 , wherein the method further comprises:

in response to updating the second calendar, providing, to a user that is enabled to view the second calendar, a notification that the second calendar includes the first event.

4. The system of claim 1 , wherein the method further comprises:

determining a location of the first event; and

updating at least one of a start time or a stop time of the first event based on the location of the first event.

5. The system of claim 1 , wherein the method further comprises:

detecting a second event included in the second calendar;

detecting a conflict between the first event and the second event; and

providing a suggestion, to the user, of at least one alternative date, time, or location for at least one of the first event or the second event, wherein the at least one of the alternative date, time, or location resolves the conflict between the first event and the second event.

6. The system of claim 1 , wherein the method further comprises:

determining a first schedule based on the first calendar;

determining a second schedule based on the second calendar; and

determining at least one of a date, a time, or a location for a second event based on the first schedule and the second schedule.

7. The system of claim 1 , wherein the method further comprises:

in response to determining the second calendar, providing the user an option to include the first event in the second calendar; and

in response to receiving a user selection of the option, updating the second calendar to include the first event.

8. The system of claim 1 , wherein the method further comprises:

detecting an update to the first event that includes at least one of an update to a date, a start time, a stop time, or a location of the first event; and

updating the second calendar to include the update to the first event.

9. The system of claim 1 , wherein the method further comprises:

determining a shared portion of the first event data included in the first event based on at least one of a context of the first event, a context of the first calendar, or the user activity;

determining a restricted portion of the first event data included in the first event based on at least one of the context of the first event, the context of the first calendar, or the user activity;

providing each of the first calendar and the second calendar the shared portion of the first event data;

providing the first calendar the restricted portion of the first event data; and

restricting the second calendar from accessing the restricted portion of the first event data.

10. The system of claim 1 , wherein the method further comprises:

determining a first weight associated with a first user of the first calendar;

determining a second weight associated with a second user of the second calendar; and

scheduling a second event based on the first calendar, the second calendar, the first weight associated with the first user, and the second weight associated with the second user.

11. The system of claim 1 , wherein the method further comprises:

determining a first weight associated with the first event;

determining a second weight associated with a second event that is included in the second calendar; and

scheduling a third event based on the first calendar, the second calendar, the first weight associated with the first event, and the second weight associated with the second event.

12. The system of claim 1 , wherein determining the second calendar is based on the synchronization profile associated with the first calendar.

13. The system of claim 1 , wherein dynamically updating the synchronization profile of the first calendar thereby reduces, over time, manual effort required for calendar synchronization.

14. The system of claim 1 , wherein dynamically updating the synchronization profile of the first calendar comprises using the machine learning process that learns synchronization preferences of the user over time at least in part from the monitored data.

15. A computerized method for enforcing security of event data during calendar synchronization, the method comprising:

providing a synchronization profile of a first calendar, the synchronization profile providing a list of rules, heuristics, or policies that restrict or allow access, by calendars in a set of calendars, to selective portions of event data associated with the first calendar;

obtaining monitored data from monitoring activity via one or more user devices to detect calendar activity associated with the set of calendars in a data store, wherein the monitored data comprises user activity, user preferences, synchronization events, calendar event data, a calendar context, an event context, or a user device context;

applying pattern inference logic of a machine learning process, comprising rules, associations, conditions, a prediction model, a classification model, or a pattern inference algorithm, to the monitored data to determine synchronization patterns or features;

dynamically updating the synchronization profile, wherein the synchronization profile is learned over time, based at least in part on the synchronization patterns or features determined by the pattern inference logic;

generating a calendar-event data accessibility map, based at least in part on the synchronization profile, that includes, for respective calendars in the set of calendars, an accessibility setting for each item of event data included in individual events in the first calendar indicating whether to make the item of event data accessible to the respective calendar;

detecting a first event that is a calendar event, comprising first event data, wherein the first event is associated with the first calendar;

determining a second calendar based on at least one of user activity, the first calendar, or the first event, wherein the second calendar is included in the set of calendars;

determining that a first item of the first event data in the first event is accessible to the second calendar, and a second item of the first event data is restricted from access by the second calendar, based on accessing corresponding accessibility settings in the calendar-event data accessibility map; and

updating the second calendar to display the first item of the first event data in the first event, without displaying the second item of the first event data, as determined from the calendar-event data accessibility map.

16. The computerized method of claim 15 , further comprising:

detecting a second event included in the second calendar;

detecting a conflict between the first event and the second event; and

providing a suggestion, to a user, of at least one alternative date, time, or location for at least one of the first event or the second event, wherein the at least one of the alternative date, time, or location resolves the conflict between the first event and the second event.

17. The computerized method of claim 15 , further comprising:

detecting an update to the first event that includes at least one of an update to a date, a start time, a stop time, or a location of the first event; and

updating the second calendar to include the update to the first event.

18. The computerized method of claim 15 , further comprising:

determining a shared portion of the first event data included in the first event based on at least one of a context of the first event, a context of the first calendar, or the user activity;

determining a restricted portion of the first event data included in the first event based on at least one of the context of the first event, the context of the first calendar, or the user activity;

providing each of the first calendar and the second calendar the shared portion of the first event data;

providing the first calendar the restricted portion of the first event data; and

restricting the second calendar from accessing the restricted portion of the first event data.

19. One or more computer-storage media having instructions stored thereon, wherein the instructions, when executed by a processor of a computing device, cause the computing device to perform actions for enforcing security of event data when synchronizing calendars, the actions including:

obtaining monitored data from monitoring activity via one or more user devices associated with a user to detect calendar activity associated with a set of calendars in a data store, wherein the monitored data comprises user activity, user preferences, synchronization events, calendar event data, a calendar context, an event context, or a user device context;

applying pattern inference logic of a machine learning process, comprising rules, associations, conditions, a prediction model, a classification model, or a pattern inference algorithm, to the monitored data to determine synchronization patterns or features;

dynamically updating a synchronization profile of a first calendar in the set of calendars, wherein the synchronization profile is learned over time, based at least in part on the synchronization patterns or features determined by the pattern inference logic,

thereby reducing, over time, manual effort required for calendar synchronization, the synchronization profile indicating accessibility, by particular calendars in the set of calendars, to selective portions of event data associated with the first calendar;

detecting a first event that is a calendar event, comprising first event data, wherein the first event is associated with the first calendar;

determining a second calendar based on at least one of the user activity, the first calendar, or the first event, wherein the second calendar is included in the set of calendars;

determining that a first item of the first event data in the first event is accessible to the second calendar, and second item of the first event data is non-accessible to the second calendar, based on the synchronization profile associated with the first calendar, the synchronization profile providing accessibility settings for respective items of the first event data, each accessibility setting indicating whether the respective item of the first event data is accessible or non-accessible to the second calendar; and

updating the second calendar to display the first item of the first event data in the first event, wherein access to the second item of the first event data is restricted from the second calendar, as determined at least in part from the synchronization profile.

20. The one or more computer-storage media of claim 19 , the actions further comprising:

determining a first schedule based on the first calendar;

determining a second schedule based on the second calendar; and

determining at least one of a date, a time, or a location for a second event based on the first schedule and the second schedule.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 22, 2018
From: DOTAN-COHEN, DIKLA; PRINESS, IDO; SOMECH, HAIM
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 044685/0718 →
Continuity (1)
Related Publication 20190213557A1 · Jul 11, 2019