US11120407B2 - Real time collaboration in calendar - Google Patents
Real time collaboration in calendar Download PDFInfo
- Publication number
- US11120407B2 US11120407B2 US16/414,367 US201916414367A US11120407B2 US 11120407 B2 US11120407 B2 US 11120407B2 US 201916414367 A US201916414367 A US 201916414367A US 11120407 B2 US11120407 B2 US 11120407B2
- Authority
- US
- United States
- Prior art keywords
- calendar
- user interface
- interface state
- change
- data structure
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active, expires
Links
- 230000008859 change Effects 0.000 claims abstract description 96
- 238000009877 rendering Methods 0.000 claims abstract description 27
- 238000000034 method Methods 0.000 claims description 49
- 230000004044 response Effects 0.000 claims description 22
- 230000008878 coupling Effects 0.000 claims 1
- 238000010168 coupling process Methods 0.000 claims 1
- 238000005859 coupling reaction Methods 0.000 claims 1
- 238000003860 storage Methods 0.000 description 19
- 230000006870 function Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 16
- 230000008520 organization Effects 0.000 description 11
- 238000004091 panning Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 230000033001 locomotion Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000006855 networking Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 235000021152 breakfast Nutrition 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000007177 brain activity Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005684 electric field Effects 0.000 description 1
- 238000000537 electroencephalography Methods 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 235000019580 granularity Nutrition 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- 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
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- 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
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/109—Time management, e.g. calendars, reminders, meetings or time accounting
- G06Q10/1093—Calendar-based scheduling for persons or groups
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- 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
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06314—Calendaring for a resource
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- 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
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/103—Workflow collaboration or project management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
- H04L51/046—Interoperability with other network applications or services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
- H04L65/403—Arrangements for multi-party communication, e.g. for conferences
Definitions
- the present disclosure generally relates to calendar systems.
- the present disclosure relates to real-time collaboration in calendar.
- an apparatus for a real-time collaboration in calendar includes a state change module to receive a change notification at a second calendar client rendering a shared calendar.
- the apparatus also includes an identification module to retrieve an identification (ID) of calendar content, a change in a user interface state, and an extent of a calendar view from a first data structure.
- the apparatus includes a replica module of the second client to retrieve calendar content from a second data structure using the ID as an index value.
- a method in another embodiment described herein, includes receiving a change notification and retrieving an identification (ID) of calendar content, a change in a user interface state, and an extent of a calendar view from a first data structure.
- the method also includes retrieving the calendar content from a second data structure using the ID as an index value.
- a system includes a first calendar client rendering a shared calendar, wherein the first calendar client issues a change to a user interface state of the shared calendar, an extent of a calendar view, or calendar content, and updates a first data structure in response to the change in the user interface state or the extent of the calendar view, and updates a second data structure in response to the change in the calendar content.
- the system also includes a state change module to receive a change notification at a second calendar client rendering the shared calendar, and an identification module to retrieve an identification (ID) of calendar content, the change in the user interface state, and the extent of the calendar view from the first data structure.
- the system includes a replica module of the second client to retrieve calendar content from the second data structure using the ID as an index value.
- FIG. 1A is a block diagram of a map calendar with a day-based time organization
- FIG. 1B is a block diagram of the map calendar with a thirty minute-based time organization
- FIG. 2A is a block diagram of a map calendar with a multiple hour-based time organization
- FIG. 2B is a block diagram of a map calendar with a multiple hour-based time organization
- FIG. 3 is a process flow diagram of a method that enables a real-time collaboration in calendar
- FIG. 4 illustrates a block diagram of a non-transitory computer readable media for that enables real-time collaboration in calendar
- FIG. 5 is a block diagram of an example of a computing system that can enables real-time collaboration in calendar.
- a digital calendar is an electronic system used to organize time.
- the digital calendar may be implemented as an application (app) on a user device.
- the digital calendar may include, but is not limited to, interfaces, routines, data structures, data storage, or any combination thereof.
- Portions of the calendar system are stored locally on a computing device, such as a state of the user interface. Other portions of the calendar system may be stored locally on the computing device or remotely across a networked connection. Remote storage locations include, but are not limited to, a cloud computing device or a remote network server.
- Calendar applications often enable synchronization of calendar content between users via networking protocols that define services and protocols for communication between devices on a network. In some cases, access to the calendar content associated with a particular calendar may be shared across a plurality of users.
- calendar content may be transmitted to a remote server for storage.
- Devices with permission to access the calendar content of the shared calendar may access the remote server to retrieve and render the shared calendar content.
- Some devices may have permission to make changes to the content, including but not limited to the ability to modify, share, add, or delete calendar content.
- These changes to the calendar content may be available for rendering on other devices with access to the calendar content for rendering.
- changes to the calendar content of a shared calendar are not immediately rendered on network devices.
- the user interface and an associated user interface state of a first calendar client are not shared in a traditional electronic calendar system. Rather, the user interface and the user interface state are stored locally.
- traditional electronic calendar systems mimics the same cyclic patterns established by paper calendars.
- traditional electronic calendar systems also include groupings of days, weeks, and years.
- the traditional electronic calendar systems can enable views of time according to each unit of time. For example, with a traditional electronic calendar system a user can view a particular day and the events scheduled for that day. Traditionally, a user may also view a month. The conventional month view typically renders the days of the month in a two-dimensional format.
- years are viewable in a traditional electronic calendar system as a grouping of several months. In some cases, each year is a plurality of months rendered in a sequential fashion.
- measures of time are illustrated as a two-dimensional block diagram time.
- the present techniques enable real-time collaboration in calendar.
- the present techniques enable the real-time sharing of content and a user interface state of an electronic calendar system.
- Collaboration across multiple calendar clients is enabled via a manipulation of the user interface, changes to the calendar content, and the subsequent retrieval of the changes to the user interface and calendar content.
- manipulation of a shared calendar rendered at a first calendar client of a first device causes the same manipulation to be rendered on all devices executing a local calendar client with the shared calendar visible. In this manner, changes made to a shared calendar at a first user interface are immediately reflected by all other calendar clients where the shared calendar is open and presently rendered on a display.
- the user interface of the calendar described herein is a digital map calendar user interface.
- the digital map calendar is a map-based system for organizing time, where the calendar content is rendered using a coordinate plane.
- the digital map calendar user interface is an extension of widely accepted calendar systems as described below.
- the present techniques organize time into a continuous, manipulatable sequence of data.
- the manipulation of the map calendar enables real-time shifting or conversion of the units of time used to render calendar content.
- the calendar system according to the present techniques is able to be panned as though moving across a panorama.
- the calendar system according to the present techniques is zoomable, where a user can zoom-in or out to view time organized in different units.
- the present techniques enable relationships between calendar content rendered by the map calendar system, including events.
- FIG. 5 provides details regarding different systems that may be used to implement the functions shown in the figures.
- the phrase “configured to” encompasses any way that any kind of structural component can be constructed to perform an identified operation.
- the structural component can be configured to perform an operation using software, hardware, firmware and the like, or any combinations thereof.
- the phrase “configured to” can refer to a logic circuit structure of a hardware element that is to implement the associated functionality.
- the phrase “configured to” can also refer to a logic circuit structure of a hardware element that is to implement the coding design of associated functionality of firmware or software.
- module refers to a structural element that can be implemented using any suitable hardware (e.g., a processor, among others), software (e.g., an application, among others), firmware, or any combination of hardware, software, and firmware.
- logic encompasses any functionality for performing a task. For instance, each operation illustrated in the flowcharts corresponds to logic for performing that operation. An operation can be performed using software, hardware, firmware, etc., or any combinations thereof.
- ком ⁇ онент can be a process running on a processor, an object, an executable, a program, a function, a library, a subroutine, and/or a computer or a combination of software and hardware.
- a component can be a process running on a processor, an object, an executable, a program, a function, a library, a subroutine, and/or a computer or a combination of software and hardware.
- an application running on a server and the server can be a component.
- One or more components can reside within a process and a component can be localized on one computer and/or distributed between two or more computers.
- the claimed subject matter may be implemented as a method, apparatus, or article of manufacture using standard programming and/or engineering techniques to produce software, firmware, hardware, or any combination thereof to control a computer to implement the disclosed subject matter.
- article of manufacture as used herein is intended to encompass a computer program accessible from any tangible, computer-readable device, medium, or media.
- Computer-readable storage media can include but are not limited to magnetic storage devices (e.g., hard disk, floppy disk, and magnetic strips, among others), optical disks (e.g., compact disk (CD), and digital versatile disk (DVD), among others), smart cards, and flash memory devices (e.g., card, stick, and key drive, among others).
- computer-readable media generally may additionally include communication media such as transmission media for wireless signals and the like.
- the communication media may include cables, such as fiber optic cables, coaxial cables, twisted-pair cables, and the like.
- transmission media for wireless signals may include hardware that enables the transmission of wireless signals such as broadcast radio waves, cellular radio waves, microwaves, and infrared signals.
- the transmission media for wireless signals is a component of a physical layer of a networking stack of an electronic device.
- computer-readable media may reproduce and/or cause to deliver the computer-executable instructions and data to a computing device for execution by one or more processor via various transmission means and mediums including carrier waves and/or propagated signals, for purposes of this disclosure computer readable media or a computer readable medium expressly excludes carrier waves and/or propagated signals.
- FIG. 1A is a block diagram of a map calendar 100 with a day-based time organization.
- the map calendar 100 may be generated by a calendar client and rendered on a view 100 A of a display of an electronic device, such as the computing device 502 of FIG. 5 .
- the view 100 A rendered at the display may be manipulated via input from a user.
- Manipulation of the map calendar may be defined as a continuous movement of a calendar view.
- the manipulation can result in the addition of calendar content to the calendar view, or the manipulation can result in the subtraction of calendar content from the calendar view.
- the manipulation of the calendar content may result in any combination of addition or subtraction of the calendar content to a calendar view.
- a user interface may be generally defined as elements that enable interaction between a user and an electronic device.
- the user interface may include elements such as images, text, links, buttons, scroll bars, and the like.
- the user interface can include gestures as captured by a touchscreen of an electronic device.
- a user When manipulating the user interface, a user may pan or scroll along an axis of time presented by the map calendar. In this manipulation, content is added and subtracted to the calendar view as the view changes to render future or past calendar content at differing times, according to the same time unit.
- a user may also zoom-in or zoom-out of a time representation presented by the map calendar. In embodiments, a zoom-in function results in increasingly smaller units of time rendered by the map calendar. Conversely, a zoom-out function results in increasingly larger units of time rendered by the map calendar.
- content is added and subtracted to the calendar view as the view changes to render future or past calendar content at substantially the same times using varying time unit granularities.
- the map calendar is a dynamic organization of time that can be manipulated by a user.
- the organization of time enabled by the map calendar is not limited by the particular format of calendar system.
- the time units may be according to any calendar system.
- the present techniques also enable a toggle between different calendar systems. For example, a calendar view may be rendered according to a Gregorian calendar system and the toggled to render the same calendar view according to a Japanese calendar system, where the Japanese calendar system includes representing time based on the reign of the current Emperor.
- the map calendar organizes calendar content using a coordinate plane.
- the coordinate plane may be considered a grid that is used to convey time information associated with content to be rendered by the map calendar.
- the map calendar can include a horizontal axis and a vertical axis.
- the horizontal axis and the vertical axis are perpendicular to each other.
- the horizontal axis may be generally referred to as the X-axis
- the vertical axis may be generally referred to as the Y-axis.
- the X-axis of the map calendar represents time.
- a time value may increase when moving from left to right along the x-axis of the map calendar 100 .
- the present techniques describe time as being a unit of measure along the X-axis.
- time can be organized along either the X-axis or the Y-axis, and the map calendar according to the present techniques should not be viewed as limited by a particular axis of the coordinate plane.
- the remaining axis (the axis other than the axis used to represent time) is not limited to the representation of a particular value.
- the remaining axis can be modified according to rules and user preferences as described herein.
- the remaining axis (the Y-axis in the example of FIGS. 1A, 1B, 2A, and 2B ) is used to partition the calendar content according to a calendar content type.
- content items from a work calendar may be referred to as work-type content items
- content items from a school calendar may be referred to as school-type content items
- the differing content item types may be rendered at different positions along Y-axis according to type.
- a content item type refers to a category associated with the content item.
- the content item type includes, but is not limited to, locations, people, sources, and levels of time.
- the map calendar 100 includes a label section 102 , a header section 104 , and an event section 106 .
- the label section 102 , the header section 104 , and the event section 106 are positioned in certain layout.
- the label section is illustrated at the top of the rendered map calendar 100 , with the header section 104 immediately below the label section 102 .
- section 106 is illustrated as immediately below the header section 104 .
- the present techniques are not limited to the particular layout illustrated in the Figures. Rather, the label section 102 , the header section 104 , and the event section 106 can be positioned at any location in the rendered map calendar 100 . Moreover, some sections may be hidden or otherwise removed from the map calendar.
- the label section 102 provides labels or names associated with the particular unit of time presently rendered by the map calendar 100 .
- the label section 102 of FIG. 1A is illustrated as rendering Feb. 5, 2019.
- the map calendar 100 includes events that occur on Feb. 5, 2019.
- the label section 102 will update in response to a user manipulating the calendar view within the event section 106 .
- the label section 102 enables a dynamic labeling function that corresponds to the unit of time rendered in the calendar view.
- the label rendered by the label section 102 may be approximate, where the label to be rendered is selected based on a closest or nearest unit of time rendered in the calendar view.
- the header section 104 renders the particular units of time along the X-axis.
- the header section 104 is illustrated as including header blocks with units of time designated in the header.
- “Feb. 5, 2019” is rendered in the label section 102 .
- the header section 104 includes the number five to indicate the calendar content rendered is from the fifth day of February.
- the events section 106 includes calendar content, such as events associated with particular times on Feb. 5, 2019.
- an event is a circumstance associated with a general time frame.
- An event is calendar content, where other examples of calendar content include but are not limited to, media content such as photographs, audio, video, social networking blurbs, links such as links to other applications, and the like. Calendar content may also include applications.
- a drawing application may be considered calendar content.
- the drawing application enables a user to share drawings with other users of the same calendar.
- calendar content can also include “To-Do” item or a “Task” item.
- a To-Do or Task item is generally calendar content that indicates to a user a specific action that should be taken by the user prior to a specific deadline.
- an event is a circumstance which may or may not include a specific action associated with a general time frame.
- the To-Do and Task items can be rendered in a list format, where a user can revise the To-Do and Task items to reflect progress made by the user on completing the items.
- some events may have well defined start and stop times, whereas other events are associated with a general time.
- calendar content can have relationships with other calendar content as discussed herein. The event relationships, the pan level and the zoom level are factors in how events are rendered in the events section 106 .
- the map calendar 100 includes event 108 and event 110 .
- Each of the events are illustrated along in the X-axis of the map calendar according to their scheduled occurrence in time.
- the event 108 has a description block that provides additional details regarding the event.
- the event 108 has a title of “Daily Sync,” a location portion of “Conference Rm 5,” and a time from 130-200 hours.
- the event 110 has a title of “Team Ramp-Up,” an enumeration portion that reads “3 events,” and a time from 130-200 hours.
- the event 110 may be considered a parent event.
- the additional events identified by the event enumeration portion of a parent event may be referred to as child events.
- a child event may also be a parent event.
- the time indication portion of the description block gives a specific time range associated with the event 110 .
- FIG. 1B is a block diagram of the map calendar 100 with a thirty minute-based time organization.
- the map calendar 100 in FIG. 1B may be rendered on a view 100 B of an electronic device.
- the view rendered at the view 100 B may be manipulated via input from a user.
- the map calendar 100 in FIG. 1B is a different view of the map calendar 100 as illustrated in FIG. 1A .
- a zoom-in function has changed the calendar view to a thirty minute-based organization system.
- the label section 102 of FIG. 1B is illustrated as a particular day, Feb. 5, 2019.
- the header section 104 includes header blocks, where each header block corresponds to a period of thirty minutes.
- the events section 106 of FIG. 1B includes event 108 , parent event 110 , child 112 , child event 114 , and child event 116 .
- Each of the event is associated with a description block as illustrated.
- child event 112 is associated with a description block that includes a title “Team Ramp-Up,” a location of “Conference Room 10 ,” at a time from 800 hours to 900 hours.
- child event 114 is associated with a description block that includes a title “Team Ramp-Up,” a location of “Lab Visit,” and a time period from 945 hours to 1030 hours.
- child event 116 is associated with a description block that includes a title of “Team Ramp-Up,” an action of “Breakfast,” and a time period from 800 hours to 1030 hours.
- Event 110 is a parent event.
- the event 110 has three child events as indicated by the description block.
- a parent event may be a semantic parent event.
- a semantic parent event may refer to the parent event in a parent-child relationship that is understood by humans. For example, consider a shared calendar with events centered around a “Team Ramp-up” meeting. The meeting will include (1) Breakfast, (2) Meeting in Conference Room 10 , and (3) Visiting a lab. When the map calendar is displayed at a single day view, the parent event 110 is rendered in a general, less busy view. However, in a finer, zoomed-in hour-by-hour view, each child event is rendered, thereby enabling a more detailed view.
- the view 100 A may be manipulated via input from a user at a user interface. For example, the user may pan across time or the user may zoom-in on a particular time instance.
- the user may pan across time or the user may zoom-in on a particular time instance.
- FIG. 100B The resulting view is that of FIG. 100B , where the parent event is represented by three child events.
- the manipulation of the user interface of a shared calendar at a first client device is reflected immediately at the user interfaces of other client devices viewing the same shared calendar.
- the manipulation of the user interface at a first client device is also a manipulation of calendar content rendered at first client device.
- a state of the user interface or a user interface state may refer to, for example, a condition or position of the user interface at a specific time as rendered at a client device.
- a manipulation of the user interface may result in a change to the user interface state.
- FIGS. 1A and 1B a zoom function is applied to the user interface.
- An initial user interface state in FIG. 1A may be at a first zoom level. Once the zoom function is applied to the user interface, the user interface state in FIG. 1B may be at a second zoom level.
- the extent of the current view across time may change.
- the extents of a calendar view refer generally to the duration of time rendered by the calendar view. For example, in the calendar view 100 of FIG. 1A , the entire time period from 1300 hrs. to 1630 hrs. is visible. However, in the calendar view 100 of FIG. 1B , the full extent of event 108 is not visible. Put another way, a portion of time visible in FIG. 1A is not visible in FIG. 1B .
- the user interface state, the extent of the calendar view, and calendar content are stored using a set of networking services and protocols that is able to replicate changes between multiple clients.
- a set of distributed data structures may be used to store the user interface state, the extent of the calendar view, and calendar content associated with the calendar system. The distributed set of data structures may be integrated with the services and protocols used to replicate changes between multiple clients.
- the core data structure used to support the networking services and protocols described herein may be referred to as a merge tree.
- the merge tree may be a data structure that enables indexing for a file that is subjected to a high rate of record inserts and deletes over a period of time.
- the merge tree may store data in a plurality of separate data structures, where each data structure is optimized for the particular storage medium used.
- the merge tree includes a number of levels, and each level stores an array of data. The data is indexed using a key to enable fast and reliable reads of data stored by the merge tree.
- an interval collection tree may store values used to render calendar content, such as unique identification (ID) values for each item of calendar content, changes in the user interface state, the extents of the calendar view, the zoom level, or any combination thereof.
- the extents of the calendar view may include an identification of the first and last time in the view.
- the interval collection tree is an implementation of a balanced tree, such as a red-black tree, where each node of the tree is an interval indicating the branch of the interval collection tree that stores values within the interval.
- Another data structure that enables an additional level of abstraction over the merge tree is a dictionary or map data structure.
- the map data structure maintains a set of key-value pairs.
- the map may be referred to as a key-value store.
- a change in the user interface state creates data regarding the interface state that is typically stored locally on a client device.
- the data may fully specify the new extents and zoom-level of the current view, or the data may include the change in the extents and zoom-level from a first user interface state to a second user interface state.
- each item in the calendar is assigned a unique identification (ID) by the client that creates the item of calendar content.
- ID unique identification
- the client that creates the calendar content then transmits the item for storage in the map data structure.
- the unique ID may serve as the key.
- the value associated with the key in this map data structure is the calendar content.
- the calendar content may include, but is not limited to, pictures, videos, animations, GIFs, events, titles, times, location, and the like.
- the calendar data appears instantly on other client devices executing the shared calendar as each client retrieves the stored calendar content in real-time.
- a second client device executing the calendar application and currently rendering shared calendar receives a change notification issued in response to an updated map data structure.
- the change notification may be an alert that the user interface state, the extent of the calendar view, and calendar content rendered in a current calendar view at a first client device has changed.
- the change notification may also be an indication that new data is stored in the interval collection tree or the map data structure.
- the change notification may also include a pointer or other identification of the particular data structure has changed and an identification of a key into that data structure to indicate which fields are changing.
- a change notification may include the following information: “Data at key 123 in map 456 is updated.”
- a client that receives this change notification accesses the data structure, which is a map 456 in this example.
- the client then traverses the data structure via the key value, which is 123 in this example. In this manner, the second client is able to the updated data. That updated data might be, for instance, the new extents of the view on the screen.
- the calendar client stored on a remote, second client device may retrieve the updated user interface state, extent of the calendar view, calendar content, or any combination thereof.
- the interval collection tree may be used to retrieve an identification of the changed calendar content within a particular interval.
- the map is used to retrieve calendar content associated with unique ID.
- the second calendar client may then use the new data retrieved from the interval collection tree and the map to instantly and incrementally update the rendered calendar user interface at the second client device to reveal the new user interface state.
- By incrementally updating the calendar user interface to render the new user interface state at the second client device the changes to the user interface are rendered in a smooth, continuous motion. This smooth, continuous motion is a repeat of the motion that occurred at the first client device, in real-time.
- rendering the new user interface state results in an addition of calendar content, a new position of the calendar view, or a change to the extent of time rendered in the calendar view.
- Rendering the new user state may also be an update to an existing item.
- the present techniques are presently described as manipulating a calendar view using a zoom—in function.
- the present techniques are not limited to the particular manipulations described herein. Accordingly, in embodiments the manipulation applied to the calendar view may include a zoom function, panning, rotating, and the like.
- FIG. 2A is a block diagram of a map calendar 200 with a multiple hour-based time organization.
- FIG. 2A includes a label section 202 , a header section 204 , and an events section 206 .
- the header section 202 includes the label “Feb. 8, 2019.”
- the header section 204 illustrates multiple hours of Feb. 8, 2019, from 1100 hours through 1500 hours.
- the event section 206 includes an event 208 , event 210 , and event 212 .
- the event 208 includes a description line with the title “Dog at the Groomers,” and a time frame from 815-1615 hours.
- the event 210 includes a description block with the title “Stand Up,” a location of “Team Space,” and a timeframe from 1115-1145 hours. Additionally, description box of event 210 includes representations of people associated with event 210 .
- Event 212 includes a description box with a title “Games and Lunch,” and a timeframe from 1200 to 1300 hrs.
- the event 212 and the event 214 are rafted.
- the present techniques may “raft” events together when they no longer have enough space to be rendered in a side-by-side format without overlapping or otherwise obscuring text in the description block of the event.
- events are rafted together that are intended to be revealed at a given zoom level, do not have a semantic parent, and also do not have enough horizontal space at the zoom level to render details in the description box without overlapping.
- the event 210 has enough space to be displayed as a single item. However, the event 212 and the event 214 were deemed to be too close together, so they have formed a “raft.”
- FIG. 2B is a block diagram of a map calendar 200 with a multiple hour-based time organization. Similar to FIG. 2A , FIG. 2B also includes the label section 202 , header section 204 , and events section 206 . FIG. 2B also includes event 208 , event 210 , event 212 , and event 214 . Since the time scale illustrated has shifted, FIG. 2B also includes an event 218 , outside of the time range visible in FIG. 2A . Thus, the event 218 is not visible in FIG. 2A . Event 218 is associated with a description block that includes a title of “Team Building,” and a time range from 1600 hrs. to 1700 hrs.
- the view 200 B as illustrated in FIG. 2B is shifted to the left when compared to the view 200 A illustrated in FIG. 2A .
- the shift of the view 200 A to the view 200 B is illustrated in FIG. 2B by arrow 216 .
- the arrow 216 may represent a manipulation of the user interface of a shared calendar in a first client device from the right to the left. This manipulation may be referred to as panning across the map calendar. Panning the user interface at the first client device results in a change to the user interface state.
- a panning function is applied to the user interface.
- An initial user interface state in FIG. 2A may be at a first panning position.
- the user interface state in FIG. 2B may be at a second panning position. Changes in a panning position results in a change to the extents of the calendar view.
- each calendar item may be stored in the map data structure.
- Each event such as event 208 , event 210 , event 212 , event 214 , and event 218 , may be stored in the map where each event is associated with a unique ID.
- the value corresponding to each unique ID are the actual contents of the calendar content.
- the actual contents may include the title, times, location, and other content associated with the calendar content.
- the modification or change applied to the calendar content at a first client device may be transmitted from the first client to a map data structure.
- a change notification may be transmitted to other client devices currently rendering the shared calendar.
- the other client devices may retrieve the new calendar and render the new data in real-time based on the retrieved user interface state and extents of the calendar view.
- the manipulation of a calendar view causes a new item of calendar content to appear in a calendar view.
- All items of calendar content in a shared calendar are indexed in an interval collection tree based on the time at which the item occurs. For example, a calendar item with an associated time range from 1 PM to 2 PM on Sunday, February 8 may use this associated time as an index in the interval collection tree.
- a query can be issued to the tree for the unique ID values that correspond to each item of calendar content, changes in the user interface state, the extents of the calendar view, the zoom level, or any combination thereof, within a particular extent of time in O(log N) time.
- the values used to render calendar content include, but are not limited to, the unique identification (ID) values for each item of calendar content, changes in the user interface state, the extents of the calendar view, the zoom level, or any combination thereof, as stored in the interval collection tree.
- ID unique identification
- the interval collection tree (implemented as a balance tree) is queried to find only the IDs that occur within a particular time range.
- the time range associated with the calendar content may be a first interval
- a time range associated with a particular extent of a calendar view is a second interval.
- the interval collection tree may be used to determine if the first interval and the second interval overlap in time.
- each node of the tree may include a particular time interval.
- the time interval of a node begins with the earliest start time of all its' child nodes and ends with the latest end time of all its' child nodes.
- a calendar client accesses the map data structure to retrieve the content of the item (e.g. title, location, attendees, etc.) using the unique ID obtained from the interval collection tree.
- the items of calendar content may be identified by their unique ID in the map data structure.
- FIG. 3 is a process flow diagram of a method 300 that enables a real-time collaboration in calendar.
- block 302 in response to a changed user interface state at a first calendar client rendering a shared calendar, receiving an indication of a change in the user interface state at a second calendar client that is presently rendering the shared calendar.
- This change notification may include a pointer or other identification of the particular data structure has changed and an identification of a key into that data structure to indicate which fields are changing.
- the first calendar client is networked with a plurality of other calendar clients. Each calendar client may render a view of a shared calendar at its respective client device. Changes to the view are based on interactions or manipulations of the user interface at the first calendar client.
- the shared calendar may be a map calendar as described herein. Accordingly, the user interface of the shared calendar may be manipulated by zooming in or out of the shared calendar. The user interface of the shared calendar may also be manipulated by panning across the content of the shared calendar along an axis representing time.
- a unique ID of the changed calendar content is retrieved from a first data structure.
- the first data structure in an interval collection tree.
- An identified extent of the calendar view may be used to determine the interval used to retrieve unique IDs from the first data structure.
- the interval collection tree includes the IDs of calendar content items at various times.
- the interval collection tree may store an ID of the calendar content, the change in the user interface state, and the extent of the calendar view.
- the user interface state consists of the current zoom level or panning position.
- the extents of a current calendar view in time may be a duration of time rendered in a calendar view of a first calendar client.
- the calendar content may be retrieved from a second data structure using the unique IDs as an index value.
- the second data structure is a map that is to store the calendar content according to the unique ID of the calendar content.
- the map data structure may be a level of abstraction above a merge-tree. In some cases, the map data structure is a dictionary.
- the sharing of the user interface state enables multiple clients to navigate together, simultaneously, and in real-time.
- the change in the user interface state is updated in the map data structure.
- All other clients with that calendar currently open receive a change notification and update their user interface based on that new state stored the map data structure.
- This enables shared navigation scenarios, where a first user can pan and zoom a screen on the user's local device and one or more users at one or more remote devices observe the same view of the calendar as the first user, instantly.
- combined personal display scenarios are possible. For example, a user could the shared calendar on a mobile device to pan and zoom through the calendar, while a big-screen instance of the calendar is navigated to match user's pans, zooms, and other manipulations.
- the only state replicated between clients according to the present techniques may be the extents of the user interface. Then, each calendar app instance can use those extents to navigate its local user interface to map the first, manipulated user interface. According to the present techniques, the content of the actual pixels is not replicated to all other clients. Thus, the present techniques are incredibly lightweight when compared to other collaboration techniques. Moreover, the present techniques are lightweight enough for low bandwidth/high latency connections since the amount of data replicated is small when compared with replicating pixels. For example, the data replicated can be limited to the numbers representing the user interface extents.
- FIG. 4 illustrates a block diagram of a non-transitory computer readable media for that enables real-time collaboration in calendar.
- the tangible, non-transitory, computer-readable medium 400 may be accessed by a processor 402 over a computer interconnect 404 .
- the tangible, non-transitory, computer-readable medium 400 may include code to direct the processor 402 to perform the operations of the current method.
- a state change module 406 may receive an indication of a change in the user interface state at a second calendar client that is presently rendering the shared calendar. The indication of change may be in response to in response to a changed user interface state at a first calendar client rendering a shared calendar.
- An identification module 408 may be configured to retrieve a unique ID of the changed calendar content from a first data structure.
- a replica module 410 may be configured to retrieve calendar content from a second data structure using the unique ID as an index value.
- any suitable number of the software components shown in FIG. 4 may be included within the tangible, non-transitory computer-readable medium 400 .
- any number of additional software components not shown in FIG. 4 may be included within the tangible, non-transitory, computer-readable medium 400 , depending on the specific application.
- FIG. 5 is a block diagram of an example of a computing system that enables real-time collaboration in calendar.
- the example system 500 includes a computing device 502 .
- the computing device 502 includes a processing unit 504 , a system memory 506 , and a system bus 508 .
- the computing device 502 can be a gaming console, a personal computer (PC), an accessory console, a gaming controller, among other computing devices.
- the computing device 502 can be a node in a cloud network.
- the system bus 508 couples system components including, but not limited to, the system memory 506 to the processing unit 504 .
- the processing unit 504 can be any of various available processors. Dual microprocessors and other multiprocessor architectures also can be employed as the processing unit 504 .
- the system bus 508 can be any of several types of bus structure, including the memory bus or memory controller, a peripheral bus or external bus, and a local bus using any variety of available bus architectures known to those of ordinary skill in the art.
- the system memory 506 includes computer-readable storage media that includes volatile memory 510 and nonvolatile memory 512 .
- nonvolatile memory 512 can include read-only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), or flash memory.
- ROM read-only memory
- PROM programmable ROM
- EPROM electrically programmable ROM
- EEPROM electrically erasable programmable ROM
- Volatile memory 510 includes random access memory (RAM), which acts as external cache memory.
- RAM is available in many forms such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), SynchLinkTM DRAM (SLDRAM), Rambus® direct RAM (RDRAM), direct Rambus® dynamic RAM (DRDRAM), and Rambus® dynamic RAM (RDRAM).
- the computer 502 also includes other computer-readable media, such as removable/non-removable, volatile/non-volatile computer storage media.
- FIG. 5 shows, for example a disk storage 514 .
- the disk storage 514 may include a calendar content database that is to store at least one item of calendar content.
- Disk storage 514 includes, but is not limited to, devices like a magnetic disk drive, floppy disk drive, tape drive, Jaz drive, Zip drive, LS-210 drive, flash memory card, or memory stick.
- disk storage 514 can include storage media separately or in combination with other storage media including, but not limited to, an optical disk drive such as a compact disk ROM device (CD-ROM), CD recordable drive (CD-R Drive), CD rewritable drive (CD-RW Drive) or a digital versatile disk ROM drive (DVD-ROM).
- an optical disk drive such as a compact disk ROM device (CD-ROM), CD recordable drive (CD-R Drive), CD rewritable drive (CD-RW Drive) or a digital versatile disk ROM drive (DVD-ROM).
- CD-ROM compact disk ROM device
- CD-R Drive CD recordable drive
- CD-RW Drive CD rewritable drive
- DVD-ROM digital versatile disk ROM drive
- FIG. 5 describes software that acts as an intermediary between users and the basic computer resources described in the suitable operating environment 500 .
- Such software includes an operating system 518 .
- Operating system 518 which can be stored on disk storage 514 , acts to control and allocate resources of the computer 502 .
- System applications 520 take advantage of the management of resources by operating system 518 through program modules 522 and program data 524 stored either in system memory 506 or on disk storage 514 . It is to be appreciated that the disclosed subject matter can be implemented with various operating systems or combinations of operating systems.
- Input devices 526 include, but are not limited to, a pointing device, such as, a mouse, trackball, stylus, and the like, a keyboard, a microphone, a joystick, a satellite dish, a scanner, a TV tuner card, a digital camera, a digital video camera, a web camera, any suitable dial accessory (physical or virtual), and the like.
- an input device can include Natural User Interface (NUI) devices. NUI refers to any interface technology that enables a user to interact with a device in a “natural” manner, free from artificial constraints imposed by input devices such as mice, keyboards, remote controls, and the like.
- NUI Natural User Interface
- NUI devices include devices relying on speech recognition, touch and stylus recognition, gesture recognition both on screen and adjacent to the screen, air gestures, head and eye tracking, voice and speech, vision, touch, gestures, and machine intelligence.
- NUI devices can include touch sensitive displays, voice and speech recognition, intention and goal understanding, and motion gesture detection using depth cameras such as stereoscopic camera systems, infrared camera systems, RGB camera systems and combinations of these.
- NUI devices can also include motion gesture detection using accelerometers or gyroscopes, facial recognition, three-dimensional (3D) displays, head, eye, and gaze tracking, immersive augmented reality and virtual reality systems, all of which provide a more natural interface.
- NUI devices can also include technologies for sensing brain activity using electric field sensing electrodes.
- a NUI device may use Electroencephalography (EEG) and related methods to detect electrical activity of the brain.
- EEG Electroencephalography
- the input devices 526 connect to the processing unit 504 through the system bus 508 via interface ports 528 .
- Interface ports 528 include, for example, a serial port, a parallel port, a game port, and a universal serial bus (USB).
- Output devices 530 use some of the same type of ports as input devices 526 .
- a USB port may be used to provide input to the computer 502 and to output information from computer 502 to an output device 530 .
- Output adapter 532 is provided to illustrate that there are some output devices 530 like monitors, speakers, and printers, among other output devices 530 , which are accessible via adapters.
- the output adapters 532 include, by way of illustration and not limitation, video and sound cards that provide a means of connection between the output device 530 and the system bus 508 . It can be noted that other devices and systems of devices provide both input and output capabilities such as remote computing devices 534 .
- the computer 502 can be a server hosting various software applications in a networked environment using logical connections to one or more remote computers, such as remote computing devices 534 .
- the remote computing devices 534 may be client systems configured with web browsers, PC applications, mobile phone applications, and the like.
- the remote computing devices 534 can be a personal computer, a server, a router, a network PC, a workstation, a microprocessor-based appliance, a mobile phone, a peer device or other common network node and the like, and typically includes many or all of the elements described relative to the computer 502 .
- Remote computing devices 534 can be logically connected to the computer 502 through a network interface 536 and then connected via a communication connection 538 , which may be wireless.
- Network interface 536 encompasses wireless communication networks such as local-area networks (LAN) and wide-area networks (WAN).
- LAN technologies include Fiber Distributed Data Interface (FDDI), Copper Distributed Data Interface (CDDI), Ethernet, Token Ring and the like.
- WAN technologies include, but are not limited to, point-to-point links, circuit switching networks like Integrated Services Digital Networks (ISDN) and variations thereon, packet switching networks, and Digital Subscriber Lines (DSL).
- ISDN Integrated Services Digital Networks
- DSL Digital Subscriber Lines
- Communication connection 538 refers to the hardware/software employed to connect the network interface 536 to the bus 508 . While communication connection 538 is shown for illustrative clarity inside computer 502 , it can also be external to the computer 502 .
- the hardware/software for connection to the network interface 536 may include, for exemplary purposes, internal and external technologies such as, mobile phone switches, modems including regular telephone grade modems, cable modems and DSL modems, ISDN adapters, and Ethernet cards.
- the computer 502 can further include a radio 540 .
- the radio 540 can be a wireless local area network radio that may operate one or more wireless bands.
- the radio 540 can operate on the industrial, scientific, and medical (ISM) radio band at 2.4 GHz or 5 GHz.
- the radio 540 can operate on any suitable radio band at any radio frequency.
- ISM industrial, scientific, and medical
- the computer 502 includes one or more modules 522 , such as a state change manager 542 , an identification manager 544 , and a replica manager 546 .
- the state change manager 542 may receive an indication of a change in the user interface state at a second calendar client that is presently rendering the shared calendar. The indication of change may be in response to in response to a changed user interface state at a first calendar client rendering a shared calendar.
- the identification manager 544 may be configured to retrieve a unique ID of the changed calendar content from a first data structure.
- a replica module 546 may be configured to retrieve calendar content from a second data structure using the unique ID as an index value. In this manner, calendar content may be rendered at an electronic device based on a particular set of rules associated with the summarization level.
- FIG. 5 is not intended to indicate that the computing system 502 is to include all of the components shown in FIG. 5 . Rather, the computing system 502 can include fewer or additional components not illustrated in FIG. 5 (e.g., additional applications, additional modules, additional memory devices, additional network interfaces, etc.).
- any of the functionalities of the state change manager 542 , identification manager 544 , and replica manager 546 may be partially, or entirely, implemented in hardware and/or in the processing unit (also referred to herein as a processor) 504 .
- the functionality may be implemented with an application specific integrated circuit, in logic implemented in the processing unit 504 , or in any other device.
- Example 1 is an apparatus for a real-time collaboration in calendar.
- the apparatus includes a state change module to receive a change notification at a second calendar client rendering a shared calendar; an identification module to retrieve an identification (ID) of calendar content, a change in a user interface state, and an extent of a calendar view from a first data structure; and a replica module of the second calendar client to retrieve calendar content from a second data structure using the ID as an index value.
- ID identification
- Example 2 includes the apparatus of example 1, including or excluding optional features.
- the change notification is issued in response to a change in a user interface state of a calendar, an extent of a view of the calendar, or an item of calendar content at a first calendar client rendering the shared calendar.
- Example 3 includes the apparatus of any one of examples 1 to 2, including or excluding optional features.
- the change in the user interface state is a manipulation of a first user interface state to a second user interface state at a first calendar client.
- Example 4 includes the apparatus of any one of examples 1 to 3, including or excluding optional features.
- the extent of the calendar view is a duration of time rendered in a calendar view of a first calendar client.
- Example 5 includes the apparatus of any one of examples 1 to 4, including or excluding optional features.
- the second calendar client retrieves the calendar content and renders the calendar content according to the change in the user interface state and the extent of the calendar view.
- Example 6 includes the apparatus of any one of examples 1 to 5, including or excluding optional features.
- the first data structure is an interval collection tree that comprises the ID of the calendar content, the change in the user interface state, and the extent of the calendar view.
- Example 7 includes the apparatus of any one of examples 1 to 6, including or excluding optional features.
- the first data structure is updated in response to a manipulation of a view of the shared calendar at a first calendar client.
- Example 8 includes the apparatus of any one of examples 1 to 7, including or excluding optional features.
- the second data structure is a map data structure that comprises a plurality of key-value pairs, wherein a key of a key-value pair is the ID, and the value is the calendar content.
- Example 9 includes the apparatus of any one of examples 1 to 8, including or excluding optional features.
- the shared calendar is a map calendar.
- Example 10 includes the apparatus of any one of examples 1 to 9, including or excluding optional features.
- a first calendar client and the second calendar client share data via the first data structure and the second data structure.
- Example 11 is a method for a real-time collaboration in calendar.
- the method includes receiving a change notification; retrieving an identification (ID) of calendar content, a change in a user interface state, and an extent of a calendar view from a first data structure; and retrieving the calendar content from a second data structure using the ID as an index value.
- ID an identification
- Example 11 includes receiving a change notification; retrieving an identification (ID) of calendar content, a change in a user interface state, and an extent of a calendar view from a first data structure; and retrieving the calendar content from a second data structure using the ID as an index value.
- ID identification
- Example 12 includes the method of example 11, including or excluding optional features.
- the method includes rendering the calendar content in real-time using the change in the user interface state and the extent of the calendar retrieved from the first data structure.
- Example 13 includes the method of any one of examples 11 to 12, including or excluding optional features.
- the first data structure is an interval collection tree that comprises the ID of the calendar content, the change in the user interface state, and the extent of the calendar view.
- Example 14 includes the method of any one of examples 11 to 13, including or excluding optional features.
- the first data structure is updated in response to a manipulation of a view of a shared calendar at a first calendar client.
- Example 15 includes the method of any one of examples 11 to 14, including or excluding optional features.
- the second data structure is a map data structure that comprises a plurality of key-value pairs, wherein a key of a key-value pair is the ID, and a value is the calendar content.
- Example 16 is a system for a real-time collaboration in calendar.
- the system includes a first calendar client rendering a shared calendar, wherein the first calendar client issues a change to a user interface state of the shared calendar, an extent of a calendar view, or calendar content, and updates a first data structure in response to the change in the user interface state or the extent of the calendar view, and updates a second data structure in response to the change in the calendar content; a state change module to receive a change notification at a second calendar client rendering the shared calendar; an identification module to retrieve an identification (ID) of calendar content, the change in the user interface state, and the extent of the calendar view from the first data structure; and a replica module of the second client to retrieve calendar content from the second data structure using the ID as an index value.
- ID identification
- Example 17 includes the system of example 16, including or excluding optional features.
- the change notification is issued in response to the change in a user interface state of the shared calendar, an extent of a view of the shared calendar, or the calendar content by the first calendar client rendering the shared calendar.
- Example 18 includes the system of any one of examples 16 to 17, including or excluding optional features.
- manipulation of calendar content at the first calendar client is rendered in real-time at the second calendar client.
- Example 19 includes the system of any one of examples 16 to 18, including or excluding optional features.
- the first calendar transmits the change in user interface state to a networked calendar service that comprises the first data structure and the second data structure.
- Example 20 includes the system of any one of examples 16 to 19, including or excluding optional features.
- the first data structure and the second data structure are based on a merge tree.
- the terms (including a reference to a “means”) used to describe such components are intended to correspond, unless otherwise indicated, to any component which performs the specified function of the described component, e.g., a functional equivalent, even though not structurally equivalent to the disclosed structure, which performs the function in the herein illustrated exemplary aspects of the claimed subject matter.
- the innovation includes a system as well as a computer-readable storage media having computer-executable instructions for performing the acts and events of the various methods of the claimed subject matter.
- one or more components may be combined into a single component providing aggregate functionality or divided into several separate sub-components, and any one or more middle layers, such as a management layer, may be provided to communicatively couple to such sub-components in order to provide integrated functionality.
- middle layers such as a management layer
- Any components described herein may also interact with one or more other components not specifically described herein but generally known by those of skill in the art.
Landscapes
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Economics (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Data Mining & Analysis (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Game Theory and Decision Science (AREA)
- Development Economics (AREA)
- Educational Administration (AREA)
- Multimedia (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
Description
Claims (17)
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/414,367 US11120407B2 (en) | 2019-05-16 | 2019-05-16 | Real time collaboration in calendar |
EP20723715.7A EP3970094B1 (en) | 2019-05-16 | 2020-04-14 | Real time collaboration in calendar |
PCT/US2020/028030 WO2020231574A1 (en) | 2019-05-16 | 2020-04-14 | Real time collaboration in calendar |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/414,367 US11120407B2 (en) | 2019-05-16 | 2019-05-16 | Real time collaboration in calendar |
Publications (2)
Publication Number | Publication Date |
---|---|
US20200364673A1 US20200364673A1 (en) | 2020-11-19 |
US11120407B2 true US11120407B2 (en) | 2021-09-14 |
Family
ID=70482888
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/414,367 Active 2039-09-06 US11120407B2 (en) | 2019-05-16 | 2019-05-16 | Real time collaboration in calendar |
Country Status (3)
Country | Link |
---|---|
US (1) | US11120407B2 (en) |
EP (1) | EP3970094B1 (en) |
WO (1) | WO2020231574A1 (en) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11151104B2 (en) | 2019-05-16 | 2021-10-19 | Microsoft Technology Licensing, Llc | Time systems as data |
US11645628B2 (en) | 2019-05-16 | 2023-05-09 | Microsoft Technology Licensing, Llc | Translation of time between calendar systems |
US11061525B2 (en) | 2019-05-16 | 2021-07-13 | Microsoft Technology Licensing, Llc | Digital map calendar user interface |
US12131391B2 (en) * | 2020-10-22 | 2024-10-29 | Seize LLC | Systems and methods to organize data from multiple platforms with non-transitory computer-readable media and data organizing methods |
US11514405B1 (en) | 2021-05-14 | 2022-11-29 | Microsoft Technology Licensing, Llc | Map calendar graphical user interface with dynamic time mold functionality |
US11681424B2 (en) | 2021-05-14 | 2023-06-20 | Microsoft Technology Licensing, Llc | Map calendar graphical user interface with content-variable view levels |
WO2022240532A1 (en) * | 2021-05-14 | 2022-11-17 | Microsoft Technology Licensing, Llc | Translation of time between calendar systems |
Citations (77)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5845257A (en) | 1996-02-29 | 1998-12-01 | Starfish Software, Inc. | System and methods for scheduling and tracking events across multiple time zones |
US5970466A (en) | 1997-10-06 | 1999-10-19 | Impromed, Inc. | Graphical computer system and method for appointment scheduling |
US20030088427A1 (en) | 2001-11-02 | 2003-05-08 | Elsey Nicholas J. | Technique for effective management of schedules of time-sensitive events from different sources |
US20040104937A1 (en) | 2001-03-26 | 2004-06-03 | Hyun-Gi An | Multimedia calendar system |
US6978271B1 (en) | 2000-10-31 | 2005-12-20 | Unisys Corporation | Mechanism for continuable calls to partially traverse a dynamic general tree |
US20060136121A1 (en) | 2004-12-16 | 2006-06-22 | International Business Machines Corporation | Method, system, and computer program product for conveying a changing local time zone in an electronic calendar |
US20070005409A1 (en) | 2005-06-30 | 2007-01-04 | International Business Machines Corporation | Method and structure for overriding calendar entries based on context and business value |
US20070150502A1 (en) | 2005-12-22 | 2007-06-28 | Bloebaum L S | Methods, systems and computer program products for calendar based delivery of downloadable content |
US20070180375A1 (en) | 2006-01-31 | 2007-08-02 | Microsoft Corporation | Template format for calendars |
US20070180377A1 (en) | 2006-01-30 | 2007-08-02 | Microsoft Corporation | Self-translating template |
US20070186193A1 (en) | 2006-02-09 | 2007-08-09 | Curran Kevin M | Method and apparatus for scheduling appointments for single location entries |
US7305491B2 (en) | 2001-07-02 | 2007-12-04 | Intellisync Corporation | Techniques for handling time zone changes in personal information management software |
US7318040B2 (en) | 2002-09-17 | 2008-01-08 | International Business Machines Corporation | Predicting and adjusting users' working hours and electronic calendar events |
US20080022201A1 (en) | 2006-07-19 | 2008-01-24 | International Business Machines Corporation | Personalized fine granularity access control for calendar systems |
US7325198B2 (en) | 2002-12-31 | 2008-01-29 | Fuji Xerox Co., Ltd. | Calendar-based interfaces for browsing and manipulation of digital images |
US20080059618A1 (en) | 2006-08-30 | 2008-03-06 | Research In Motion Limited, | Automatic attachment of image and/or audio records to electronic calendar meeting event record in portable wireless devices |
CN101145223A (en) | 2007-09-27 | 2008-03-19 | 腾讯科技(深圳)有限公司 | Calendar supervision system and its supervision method |
US20080162234A1 (en) | 2006-12-27 | 2008-07-03 | Fang Lu | Time zone switcher for multi-jurisdictional end users |
US20090040875A1 (en) | 2007-08-09 | 2009-02-12 | T-Mobile Usa, Inc. | Method and system for synchronization and display of a plurality of calendars on a device |
US20090112986A1 (en) * | 2007-10-31 | 2009-04-30 | International Business Machines Corporation | System and method for publishing and subscribing to calendar events information via categorical mapping methodology |
US20090168609A1 (en) | 2007-12-28 | 2009-07-02 | Weir Robert C | Method and system for automatic time-zone sensitive scheduling |
CN101520862A (en) | 2008-02-29 | 2009-09-02 | 国际商业机器公司 | Method and equipment for updating electronic calendar appointment plan and method and equipment for generating electronic calendar appointment plan |
US20100075648A1 (en) | 2008-09-24 | 2010-03-25 | Palm, Inc. | System and method to localize applications on a mobile computing device |
US20100162105A1 (en) | 2008-12-19 | 2010-06-24 | Palm, Inc. | Access and management of cross-platform calendars |
US20100175001A1 (en) | 2009-01-06 | 2010-07-08 | Kiha Software Inc. | Calendaring Location-Based Events and Associated Travel |
US7830751B2 (en) | 2003-10-29 | 2010-11-09 | International Business Machines Corporation | Apparatus and method for handling calendar dates in a non-calendar system specific manner |
US20100330974A1 (en) * | 2009-06-30 | 2010-12-30 | Research In Motion Limited | Systems and methods for generating calendar events associated with contact information |
US20110216628A1 (en) | 2008-01-28 | 2011-09-08 | Microsoft Corporation | Maintaining date and time with time zone rule changes |
US20110252351A1 (en) | 2010-04-09 | 2011-10-13 | Calamander Inc. | Systems and methods for consuming, sharing, and synchronizing time based information |
US20110305437A1 (en) | 2010-06-15 | 2011-12-15 | Kabushiki Kaisha Toshiba | Electronic apparatus and indexing control method |
US20120084286A1 (en) | 2010-09-30 | 2012-04-05 | Verizon Patent And Licensing Inc. | Method and apparatus for group coordination of calendar events |
US20120197900A1 (en) | 2010-12-13 | 2012-08-02 | Unisys Corporation | Systems and methods for search time tree indexes |
US20120233563A1 (en) | 2011-03-10 | 2012-09-13 | International Business Machines Corporation | Acclimatizing a User to a Scheduling Pattern Change |
US8295126B2 (en) | 2009-02-25 | 2012-10-23 | Research In Motion Limited | Method and apparatus for processing a calendar database for time zone shifting |
US8375292B2 (en) | 2009-01-16 | 2013-02-12 | International Business Machines Corporation | Tool and method for mapping and viewing an event |
US8434026B2 (en) | 2005-05-09 | 2013-04-30 | International Business Machines Corporation | System and method for time dimension management for a data analyzing |
US8538992B1 (en) | 2003-06-30 | 2013-09-17 | Novell, Inc. | Methods, systems, and data structures for federating electronic calendars |
US8607250B2 (en) | 2007-09-14 | 2013-12-10 | International Business Machines Corporation | Visually indicating a calendar event among different time zones |
US20140047312A1 (en) | 2012-08-10 | 2014-02-13 | Microsoft Corporation | Displaying Temporal Information in a Spreadsheet Application |
US20140074536A1 (en) * | 2012-09-10 | 2014-03-13 | Dana Meushar | Meetings and Events Coordinating System and Method |
US8713435B2 (en) | 2010-08-26 | 2014-04-29 | Microsoft Corporation | Dynamic rebasing of persisted time information |
US20140136263A1 (en) * | 2012-11-13 | 2014-05-15 | Samsung Electronics Co., Ltd. | User equipment and method for transmitting/receiving event using calendar protocol at user equipment |
US20140156597A1 (en) | 2012-12-05 | 2014-06-05 | Microsoft Corporation | Recurring calendar item master and instance synchronization |
US20140365951A1 (en) | 2013-06-10 | 2014-12-11 | Microsoft Corporation | Navigating a calendar |
US20150156026A1 (en) | 2013-12-02 | 2015-06-04 | Guardtime Ip Holdings Limited | Non-deterministic time systems and methods |
US20150178690A1 (en) | 2012-08-02 | 2015-06-25 | Darrell Reginald May | Methods and apparatus for managing hierarchical calender events |
US20150199077A1 (en) | 2013-05-23 | 2015-07-16 | Google Inc. | Scheduling and viewing a calender event using time zones based on a user's location at event time |
US20150268839A1 (en) | 2014-03-20 | 2015-09-24 | Microsoft Corporation | Warped presentation of events in calendar views |
US20150294273A1 (en) | 2014-04-14 | 2015-10-15 | The Boeing Company | Time Zone Sensitive Calendar |
US9195972B2 (en) | 2013-09-30 | 2015-11-24 | Globalfoundries Inc. | Smart calendar |
US20150347982A1 (en) * | 2014-05-30 | 2015-12-03 | Apple Inc. | Automatic Event Scheduling |
US20150379476A1 (en) * | 2014-06-27 | 2015-12-31 | Apple Inc. | Reduced size user interface |
US20150378619A1 (en) * | 2013-03-29 | 2015-12-31 | Fujitsu Limited | Storage system, recording medium for storing control program and control method for storage system |
CN105279637A (en) | 2015-09-28 | 2016-01-27 | 小米科技有限责任公司 | Calendar information management method, device and system |
US20160104119A1 (en) | 2013-05-23 | 2016-04-14 | Skedgo Pty Ltd | Visualising multiple time zones |
US20160189111A1 (en) * | 2013-07-29 | 2016-06-30 | Skedgo Pty Ltd | Free time activity scheduler |
US20160203444A1 (en) | 2015-01-14 | 2016-07-14 | Viralocity Software, LLC | Electronic calendar devices |
US20160259761A1 (en) | 2015-03-02 | 2016-09-08 | Citrix Systems, Inc. | Enabling File Attachments in Calendar Events |
US20160275458A1 (en) * | 2012-09-10 | 2016-09-22 | Private Secretary Ltd. | Meetings and Events Coordinating System and Method |
US20160350721A1 (en) | 2013-08-22 | 2016-12-01 | Core De Vie, Llc | Behaviorally informed scheduling systems and methods |
US20160364698A1 (en) | 2015-06-15 | 2016-12-15 | International Business Machines Corporation | Conflict management for calendar events |
US20170024705A1 (en) | 2014-04-13 | 2017-01-26 | Helixaeon Inc. | Visualization and analysis of scheduling data |
US9843895B2 (en) | 2014-05-30 | 2017-12-12 | Apple Inc. | Location-based services for calendar events |
US20180077542A1 (en) * | 2015-03-16 | 2018-03-15 | Kennesaw State University Research And Service Foundation, Inc. | Unified enterprise mobile data collaboration |
US20180089632A1 (en) * | 2016-09-26 | 2018-03-29 | Microsoft Technology Licensing, Llc | Techniques for sharing electronic calendars between mailboxes in an online application and collaboration service |
US20180095938A1 (en) | 2016-09-30 | 2018-04-05 | Sap Se | Synchronized calendar and timeline adaptive user interface |
US20180114198A1 (en) * | 2016-10-24 | 2018-04-26 | Microsoft Technology Licensing, Llc | Providing users with reminders having varying priorities |
US20180189744A1 (en) * | 2015-01-14 | 2018-07-05 | Viralocity Software, LLC | Electronic calendar devices |
US10032135B2 (en) | 2012-03-19 | 2018-07-24 | Microsoft Technology Licensing, Llc | Modern calendar system including free form input electronic calendar surface |
US20180336532A1 (en) | 2017-05-16 | 2018-11-22 | Microsoft Technology Licensing, Llc | Calendar range searching |
US10140324B2 (en) | 2014-10-09 | 2018-11-27 | Crfs Limited | Processing spatiotemporal data records |
US20190121994A1 (en) | 2017-10-20 | 2019-04-25 | Dropbox, Inc. | Authentication security model for a content management system |
US10521084B2 (en) | 2008-01-06 | 2019-12-31 | Apple Inc. | Portable multifunction device, method, and graphical user interface for viewing and managing electronic calendars |
US10586216B2 (en) | 2014-03-13 | 2020-03-10 | Microsoft Technology Licensing, Llc | User work schedule identification |
US10769132B1 (en) | 2017-12-12 | 2020-09-08 | Juniper Networks, Inc. | Efficient storage and retrieval of time series data |
US20200364199A1 (en) | 2019-05-16 | 2020-11-19 | Microsoft Technology Licensing, Llc | Time Systems as Data |
US20200363910A1 (en) | 2019-05-16 | 2020-11-19 | Microsoft Technology Licensing, Llc | Digital Map Calendar User Interface |
-
2019
- 2019-05-16 US US16/414,367 patent/US11120407B2/en active Active
-
2020
- 2020-04-14 WO PCT/US2020/028030 patent/WO2020231574A1/en active Application Filing
- 2020-04-14 EP EP20723715.7A patent/EP3970094B1/en active Active
Patent Citations (80)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5845257A (en) | 1996-02-29 | 1998-12-01 | Starfish Software, Inc. | System and methods for scheduling and tracking events across multiple time zones |
US7689448B2 (en) | 1996-02-29 | 2010-03-30 | Nokia Corporation | System and methods for scheduling and tracking events across multiple time zones |
US5970466A (en) | 1997-10-06 | 1999-10-19 | Impromed, Inc. | Graphical computer system and method for appointment scheduling |
US6978271B1 (en) | 2000-10-31 | 2005-12-20 | Unisys Corporation | Mechanism for continuable calls to partially traverse a dynamic general tree |
US20040104937A1 (en) | 2001-03-26 | 2004-06-03 | Hyun-Gi An | Multimedia calendar system |
US7305491B2 (en) | 2001-07-02 | 2007-12-04 | Intellisync Corporation | Techniques for handling time zone changes in personal information management software |
US20030088427A1 (en) | 2001-11-02 | 2003-05-08 | Elsey Nicholas J. | Technique for effective management of schedules of time-sensitive events from different sources |
US7318040B2 (en) | 2002-09-17 | 2008-01-08 | International Business Machines Corporation | Predicting and adjusting users' working hours and electronic calendar events |
US7325198B2 (en) | 2002-12-31 | 2008-01-29 | Fuji Xerox Co., Ltd. | Calendar-based interfaces for browsing and manipulation of digital images |
US8538992B1 (en) | 2003-06-30 | 2013-09-17 | Novell, Inc. | Methods, systems, and data structures for federating electronic calendars |
US7830751B2 (en) | 2003-10-29 | 2010-11-09 | International Business Machines Corporation | Apparatus and method for handling calendar dates in a non-calendar system specific manner |
US20060136121A1 (en) | 2004-12-16 | 2006-06-22 | International Business Machines Corporation | Method, system, and computer program product for conveying a changing local time zone in an electronic calendar |
US8434026B2 (en) | 2005-05-09 | 2013-04-30 | International Business Machines Corporation | System and method for time dimension management for a data analyzing |
US20070005409A1 (en) | 2005-06-30 | 2007-01-04 | International Business Machines Corporation | Method and structure for overriding calendar entries based on context and business value |
US20070150502A1 (en) | 2005-12-22 | 2007-06-28 | Bloebaum L S | Methods, systems and computer program products for calendar based delivery of downloadable content |
US20070180377A1 (en) | 2006-01-30 | 2007-08-02 | Microsoft Corporation | Self-translating template |
US20070180375A1 (en) | 2006-01-31 | 2007-08-02 | Microsoft Corporation | Template format for calendars |
US20070186193A1 (en) | 2006-02-09 | 2007-08-09 | Curran Kevin M | Method and apparatus for scheduling appointments for single location entries |
US20080022201A1 (en) | 2006-07-19 | 2008-01-24 | International Business Machines Corporation | Personalized fine granularity access control for calendar systems |
US20080059618A1 (en) | 2006-08-30 | 2008-03-06 | Research In Motion Limited, | Automatic attachment of image and/or audio records to electronic calendar meeting event record in portable wireless devices |
US20080162234A1 (en) | 2006-12-27 | 2008-07-03 | Fang Lu | Time zone switcher for multi-jurisdictional end users |
US20090040875A1 (en) | 2007-08-09 | 2009-02-12 | T-Mobile Usa, Inc. | Method and system for synchronization and display of a plurality of calendars on a device |
US8607250B2 (en) | 2007-09-14 | 2013-12-10 | International Business Machines Corporation | Visually indicating a calendar event among different time zones |
CN101145223A (en) | 2007-09-27 | 2008-03-19 | 腾讯科技(深圳)有限公司 | Calendar supervision system and its supervision method |
US20090112986A1 (en) * | 2007-10-31 | 2009-04-30 | International Business Machines Corporation | System and method for publishing and subscribing to calendar events information via categorical mapping methodology |
US20090168609A1 (en) | 2007-12-28 | 2009-07-02 | Weir Robert C | Method and system for automatic time-zone sensitive scheduling |
US10521084B2 (en) | 2008-01-06 | 2019-12-31 | Apple Inc. | Portable multifunction device, method, and graphical user interface for viewing and managing electronic calendars |
US20110216628A1 (en) | 2008-01-28 | 2011-09-08 | Microsoft Corporation | Maintaining date and time with time zone rule changes |
CN101520862A (en) | 2008-02-29 | 2009-09-02 | 国际商业机器公司 | Method and equipment for updating electronic calendar appointment plan and method and equipment for generating electronic calendar appointment plan |
US20100075648A1 (en) | 2008-09-24 | 2010-03-25 | Palm, Inc. | System and method to localize applications on a mobile computing device |
US20100162105A1 (en) | 2008-12-19 | 2010-06-24 | Palm, Inc. | Access and management of cross-platform calendars |
US20100175001A1 (en) | 2009-01-06 | 2010-07-08 | Kiha Software Inc. | Calendaring Location-Based Events and Associated Travel |
US8375292B2 (en) | 2009-01-16 | 2013-02-12 | International Business Machines Corporation | Tool and method for mapping and viewing an event |
US8295126B2 (en) | 2009-02-25 | 2012-10-23 | Research In Motion Limited | Method and apparatus for processing a calendar database for time zone shifting |
US20100330974A1 (en) * | 2009-06-30 | 2010-12-30 | Research In Motion Limited | Systems and methods for generating calendar events associated with contact information |
US20110252351A1 (en) | 2010-04-09 | 2011-10-13 | Calamander Inc. | Systems and methods for consuming, sharing, and synchronizing time based information |
US20110305437A1 (en) | 2010-06-15 | 2011-12-15 | Kabushiki Kaisha Toshiba | Electronic apparatus and indexing control method |
US8713435B2 (en) | 2010-08-26 | 2014-04-29 | Microsoft Corporation | Dynamic rebasing of persisted time information |
US20120084286A1 (en) | 2010-09-30 | 2012-04-05 | Verizon Patent And Licensing Inc. | Method and apparatus for group coordination of calendar events |
US20120197900A1 (en) | 2010-12-13 | 2012-08-02 | Unisys Corporation | Systems and methods for search time tree indexes |
US20120233563A1 (en) | 2011-03-10 | 2012-09-13 | International Business Machines Corporation | Acclimatizing a User to a Scheduling Pattern Change |
US10032135B2 (en) | 2012-03-19 | 2018-07-24 | Microsoft Technology Licensing, Llc | Modern calendar system including free form input electronic calendar surface |
US20150178690A1 (en) | 2012-08-02 | 2015-06-25 | Darrell Reginald May | Methods and apparatus for managing hierarchical calender events |
US20140047312A1 (en) | 2012-08-10 | 2014-02-13 | Microsoft Corporation | Displaying Temporal Information in a Spreadsheet Application |
US20160275458A1 (en) * | 2012-09-10 | 2016-09-22 | Private Secretary Ltd. | Meetings and Events Coordinating System and Method |
US20140074536A1 (en) * | 2012-09-10 | 2014-03-13 | Dana Meushar | Meetings and Events Coordinating System and Method |
US20140136263A1 (en) * | 2012-11-13 | 2014-05-15 | Samsung Electronics Co., Ltd. | User equipment and method for transmitting/receiving event using calendar protocol at user equipment |
US20140156597A1 (en) | 2012-12-05 | 2014-06-05 | Microsoft Corporation | Recurring calendar item master and instance synchronization |
US20150378619A1 (en) * | 2013-03-29 | 2015-12-31 | Fujitsu Limited | Storage system, recording medium for storing control program and control method for storage system |
US20150199077A1 (en) | 2013-05-23 | 2015-07-16 | Google Inc. | Scheduling and viewing a calender event using time zones based on a user's location at event time |
US20160104119A1 (en) | 2013-05-23 | 2016-04-14 | Skedgo Pty Ltd | Visualising multiple time zones |
US20140365951A1 (en) | 2013-06-10 | 2014-12-11 | Microsoft Corporation | Navigating a calendar |
US20160189111A1 (en) * | 2013-07-29 | 2016-06-30 | Skedgo Pty Ltd | Free time activity scheduler |
US20160350721A1 (en) | 2013-08-22 | 2016-12-01 | Core De Vie, Llc | Behaviorally informed scheduling systems and methods |
US9195972B2 (en) | 2013-09-30 | 2015-11-24 | Globalfoundries Inc. | Smart calendar |
US20150156026A1 (en) | 2013-12-02 | 2015-06-04 | Guardtime Ip Holdings Limited | Non-deterministic time systems and methods |
US10586216B2 (en) | 2014-03-13 | 2020-03-10 | Microsoft Technology Licensing, Llc | User work schedule identification |
US20160370985A1 (en) | 2014-03-20 | 2016-12-22 | Microsoft Technology Licensing, Llc | Warped presentation of events in calendar views |
US20150268839A1 (en) | 2014-03-20 | 2015-09-24 | Microsoft Corporation | Warped presentation of events in calendar views |
US9438649B2 (en) | 2014-03-20 | 2016-09-06 | Microsoft Technology Licensing, Llc | Warped presentation of events in calendar views |
US20170024705A1 (en) | 2014-04-13 | 2017-01-26 | Helixaeon Inc. | Visualization and analysis of scheduling data |
US20150294273A1 (en) | 2014-04-14 | 2015-10-15 | The Boeing Company | Time Zone Sensitive Calendar |
US9843895B2 (en) | 2014-05-30 | 2017-12-12 | Apple Inc. | Location-based services for calendar events |
US20150347982A1 (en) * | 2014-05-30 | 2015-12-03 | Apple Inc. | Automatic Event Scheduling |
US20150379476A1 (en) * | 2014-06-27 | 2015-12-31 | Apple Inc. | Reduced size user interface |
US10140324B2 (en) | 2014-10-09 | 2018-11-27 | Crfs Limited | Processing spatiotemporal data records |
US20160203444A1 (en) | 2015-01-14 | 2016-07-14 | Viralocity Software, LLC | Electronic calendar devices |
US20180189744A1 (en) * | 2015-01-14 | 2018-07-05 | Viralocity Software, LLC | Electronic calendar devices |
US20160259761A1 (en) | 2015-03-02 | 2016-09-08 | Citrix Systems, Inc. | Enabling File Attachments in Calendar Events |
US20180077542A1 (en) * | 2015-03-16 | 2018-03-15 | Kennesaw State University Research And Service Foundation, Inc. | Unified enterprise mobile data collaboration |
US20160364698A1 (en) | 2015-06-15 | 2016-12-15 | International Business Machines Corporation | Conflict management for calendar events |
CN105279637A (en) | 2015-09-28 | 2016-01-27 | 小米科技有限责任公司 | Calendar information management method, device and system |
US20180089632A1 (en) * | 2016-09-26 | 2018-03-29 | Microsoft Technology Licensing, Llc | Techniques for sharing electronic calendars between mailboxes in an online application and collaboration service |
US20180095938A1 (en) | 2016-09-30 | 2018-04-05 | Sap Se | Synchronized calendar and timeline adaptive user interface |
US20180114198A1 (en) * | 2016-10-24 | 2018-04-26 | Microsoft Technology Licensing, Llc | Providing users with reminders having varying priorities |
US20180336532A1 (en) | 2017-05-16 | 2018-11-22 | Microsoft Technology Licensing, Llc | Calendar range searching |
US20190121994A1 (en) | 2017-10-20 | 2019-04-25 | Dropbox, Inc. | Authentication security model for a content management system |
US10769132B1 (en) | 2017-12-12 | 2020-09-08 | Juniper Networks, Inc. | Efficient storage and retrieval of time series data |
US20200364199A1 (en) | 2019-05-16 | 2020-11-19 | Microsoft Technology Licensing, Llc | Time Systems as Data |
US20200363910A1 (en) | 2019-05-16 | 2020-11-19 | Microsoft Technology Licensing, Llc | Digital Map Calendar User Interface |
Non-Patent Citations (20)
Title |
---|
"Behavior and Format of the Date and Time Field", Retrieved From: https://docs.microsoft.com/en-US/previous-Versions/dynamicscrm-2016/administering-dynamics-365/dn946904(v-crm.8)?redirectedriom-MSDN, Nov. 28, 2016, 10 Pages. |
"Final Office Action Issued in U.S. Appl. No. 15/256,666", dated Apr. 23, 2019, 14 Pages. |
"Final Office Action Issued in U.S. Appl. No. 16/414,317", dated Jul. 1, 2020, 15 Pages. |
"Google Calendar", Retrieved from: https://www.google.com/calendar/about/, Retrieved Date: Feb. 11, 2021, 2 Pages. |
"International Search Report and Written Opinion Issued in PCT Application No. PCT/US20/028030", dated Jun. 2, 2020, 11 Pages. |
"International Search Report and Written Opinion Issued in PCT Application No. PCT/US2020/028027", dated Jul. 20, 2020, 11 Pages. |
"International Search Report and Written Opinion Issued in PCT Application No. PCT/US2020/028029", dated Jul. 23, 2020, 11 Pages. |
"Non Final Office Action Issued in U.S. Appl. No. 15/256,666", dated Nov. 16, 2018, 11 Pages. |
"Non Final Office Action Issued in U.S. Appl. No. 16/414,317", dated Jan. 7, 2020, 15 Pages. |
"Non Final Office Action Issued in U.S. Appl. No. 16/414,317", dated Oct. 27, 2020, 16 Pages. |
"Non Final Office Action Issued in U.S. Appl. No. 16/414,374", dated Sep. 8, 2020, 12 Pages. |
"Notice of Allowance Issued in U.S. Appl. No. 14/220,386", dated May 6, 2016, 18 Pages. |
"Notice of Allowance Issued in U.S. Appl. No. 16/414,317", dated Mar. 16, 2021, 9 Pages. |
"Notice of Allowance Issued in U.S. Appl. No. 16/414,374", dated Jun. 23, 2021, 9 Pages. |
"Using Date, Date/Time, and Time Values in Formulas", Retrieved from: https://help.salesforce.com/articleView?id=sf. formula_using_date_datetime.htm&type=5, Retrieved Date: Feb. 11, 2021, 4 Pages. |
Agnantis, et al., "Intelligent Calendar Applications: A Holistic Framework based on Ontologies", In International Journal of Artificial Intelligence, vol. 14, Issue 2, Oct. 2016, 21 Pages. |
Cranshaw, et al., "Calendar.help: Designing a Workflow-Based Scheduling Agent with Humans in the Loop", In Repository of arXiv: 1703.08428v1, Mar. 24, 2017, 12 pages. |
Hinnant, Howard, "Chrono-Compatible Low-Level Date Algorithms", Retrieved From: https://howardhinnant.github.io/date_algorithms.html, Sep. 7, 2013, 24 Pages. |
Krzywicki, et al., "Closed Pattern Mining for the Discovery of User Preferences in a Calendar Assistant", In Book of New Challenges in Applied Intelligence Technologies, Jan. 2008, 11 Pages. |
Masoodian, et al., "A Comparison of Linear and Calendar Travel Itinerary Visualizations for Personal Digital Assistants", In Proceedings of the OZCHI, the CHISIG Annual Conference on Human-Computer Interaction, Nov. 20, 2004, 10 Pages. |
Also Published As
Publication number | Publication date |
---|---|
EP3970094B1 (en) | 2023-06-07 |
US20200364673A1 (en) | 2020-11-19 |
WO2020231574A1 (en) | 2020-11-19 |
EP3970094A1 (en) | 2022-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11120407B2 (en) | Real time collaboration in calendar | |
US10664510B1 (en) | Displaying clusters of media items on a map using representative media items | |
US10331757B2 (en) | Organizing network-stored content items into shared groups | |
US11061525B2 (en) | Digital map calendar user interface | |
US9009108B2 (en) | Minimal extensions required for multi-master offline and collaboration for devices and web services | |
CN103098002B (en) | The representing based on flake of information for mobile device | |
JP6492111B2 (en) | Remembering content items | |
CN105493077B (en) | Utilize the file management of placeholder | |
US20170371891A1 (en) | Visual file manager | |
US20150186478A1 (en) | Method and System for Tree Representation of Search Results | |
US20150177938A1 (en) | Providing access to a cloud based content management system on a mobile device | |
CN102282442A (en) | Tool and method for mapping and viewing an event | |
Cubitt | Glitch | |
CN106462541A (en) | Systems and methods for managing, sharing, and organizing information stored on multiple cloud services | |
US20120324401A1 (en) | Methods and system for three dimensional time and spacial user interface | |
US9569070B1 (en) | Assisting in deconflicting concurrency conflicts | |
US20130304802A1 (en) | Asynchronous, passive knowledge sharing system and method | |
US11681424B2 (en) | Map calendar graphical user interface with content-variable view levels | |
US20230394172A1 (en) | Digital Asset (DA) Move Option Between Personal and Shared DA Libraries | |
US20210271348A1 (en) | System for an ergonomic interaction of a user with data | |
KR102359017B1 (en) | Cinematization of output in compound device environment | |
US20240314437A1 (en) | Providing a zoomed view of a distant object to a user device using other devices closer to the distant object | |
Jacobsen et al. | Introduction: Unpicking the Automation of Memory Making | |
Sánchez et al. | Star-fish: Starfields+ fisheye visualization and its application to federated digital libraries | |
Soga et al. | VR Appreciation System for Fountain Pens and Analysis of User Behaviors in Museum Exhibition |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
AS | Assignment |
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:ENGRAV, PETER L.;ERLANDSON, AARON;HARRIS, TREVOR J.;AND OTHERS;SIGNING DATES FROM 20190510 TO 20190517;REEL/FRAME:049211/0306 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: AWAITING TC RESP., ISSUE FEE NOT PAID |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: AWAITING TC RESP., ISSUE FEE NOT PAID |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: AWAITING TC RESP, ISSUE FEE PAYMENT VERIFIED |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |