U.S. patent application number 16/888953 was filed with the patent office on 2020-09-17 for displaying a countdown timer for a next calendar event in an electronic mail inbox.
The applicant listed for this patent is Microsoft Technology Licensing, LLC. Invention is credited to Zohaib Haider ALI, Linda Chen GRAY, David Paul LIMONT, Selvaraj NALLIAH, William Dean SAULNIER, Russell Lee SIMPSON, JR., Deborah Eileen SOMMERS.
Application Number | 20200293998 16/888953 |
Document ID | / |
Family ID | 1000004860551 |
Filed Date | 2020-09-17 |
![](/patent/app/20200293998/US20200293998A1-20200917-D00000.png)
![](/patent/app/20200293998/US20200293998A1-20200917-D00001.png)
![](/patent/app/20200293998/US20200293998A1-20200917-D00002.png)
![](/patent/app/20200293998/US20200293998A1-20200917-D00003.png)
![](/patent/app/20200293998/US20200293998A1-20200917-D00004.png)
![](/patent/app/20200293998/US20200293998A1-20200917-D00005.png)
![](/patent/app/20200293998/US20200293998A1-20200917-D00006.png)
![](/patent/app/20200293998/US20200293998A1-20200917-D00007.png)
![](/patent/app/20200293998/US20200293998A1-20200917-D00008.png)
![](/patent/app/20200293998/US20200293998A1-20200917-D00009.png)
![](/patent/app/20200293998/US20200293998A1-20200917-D00010.png)
View All Diagrams
United States Patent
Application |
20200293998 |
Kind Code |
A1 |
NALLIAH; Selvaraj ; et
al. |
September 17, 2020 |
DISPLAYING A COUNTDOWN TIMER FOR A NEXT CALENDAR EVENT IN AN
ELECTRONIC MAIL INBOX
Abstract
An electronic mail (e-mail) display is generated for a user,
showing a mailbox for the user. A next calendar item indication is
persistently displayed on the e-mail display. The next calendar
item includes a countdown timer showing a time until the next
calendar item is scheduled to begin.
Inventors: |
NALLIAH; Selvaraj; (Redmond,
WA) ; SOMMERS; Deborah Eileen; (Seattle, WA) ;
LIMONT; David Paul; (Seattle, WA) ; SIMPSON, JR.;
Russell Lee; (Clyde Hill, WA) ; ALI; Zohaib
Haider; (Everett, WA) ; GRAY; Linda Chen;
(Kirkland, WA) ; SAULNIER; William Dean; (Seattle,
WA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Microsoft Technology Licensing, LLC |
Redmond |
WA |
US |
|
|
Family ID: |
1000004860551 |
Appl. No.: |
16/888953 |
Filed: |
June 1, 2020 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
15605127 |
May 25, 2017 |
10692049 |
|
|
16888953 |
|
|
|
|
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
G06F 16/2477 20190101;
G06F 3/0482 20130101; G06Q 10/1093 20130101; G06Q 10/107
20130101 |
International
Class: |
G06Q 10/10 20060101
G06Q010/10; G06F 16/2458 20060101 G06F016/2458 |
Claims
1. A computer-implemented method comprising: accessing an
electronic calendar that stores a plurality of calendar items
representing calendar events associated with a user; identifying a
scheduled start time for each particular calendar item of the
plurality of calendar items, the scheduled start time corresponding
to the calendar event represented by the particular calendar item;
identifying, from the plurality of calendar items, a next calendar
item relative to a current time based on the scheduled start times
corresponding to the calendar events; and generate an email user
interface display comprising: a message display pane that displays
email messages in a mailbox associated with the user; a reading
display pane that displays a selected email message from the email
messages in the mailbox; and a next calendar item display pane that
persistently displays a next item display element that includes
details of the next calendar item and a countdown time indicator
that is dynamically updated to indicate a time until the scheduled
start time for the next calendar item.
2. The computer-implemented method of claim 1, and further
comprising: generating the countdown time indicator to represent a
time period from the current time to the scheduled start time of
the next calendar item.
3. The computer-implemented method of claim 2, and further
comprising: updating the countdown time indicator until a threshold
time period after the scheduled start time of the next calendar
item.
4. The computer-implemented method of claim 3, and further
comprising: setting the threshold time period based on a duration
of the next calendar item.
5. The computer-implemented method of claim 3, wherein the next
calendar item comprises a first calendar item, and the method
further comprises: upon reaching the threshold time period,
changing the countdown time indicator to indicate a time until the
scheduled start time for a second calendar item that temporally
subsequent to the first calendar item.
6. The computer-implemented method of claim 1, and further
comprising: applying a filter criterion to a first calendar item to
filter out the first calendar item based on the first calendar item
meeting the filter criterion; and in response to the first calendar
item being filtered out, identifying a second calendar item,
temporally subsequent to the first calendar item, as the next
calendar item.
7. The computer-implemented method of claim 1, and further
comprising: determining that a calendar search is to be performed
to identify the next calendar item and, in response, initiate the
search of the electronic calendar.
8. The computer-implemented method of claim 1, and further
comprising: identifying metadata corresponding to of the identified
next calendar item; and identifying a service to be searched to
obtain additional information corresponding to the identified next
calendar item, based on the metadata corresponding to the
identified next calendar item.
9. The computer-implemented method of claim 8, and further
comprising: searching the identified service to obtain the
additional information corresponding to the identified next
calendar item.
10. The computer-implemented method of claim 9, and further
comprising: displaying the additional information on the next item
display element on the email user interface display.
11. A computing system comprising: at least one processor; and
memory storing instructions executable by the at least one
processor, wherein the instructions, when executed, cause the
computing system to: search an electronic calendar that stores a
plurality of calendar items representing calendar events associated
with a user; identify a scheduled start time for each particular
calendar item of the plurality of calendar items, the scheduled
start time corresponding to the calendar event represented by the
particular calendar item; identify, from the plurality of calendar
items, a next calendar item relative to a current time based on the
scheduled start times corresponding to the calendar events; and
generate an email user interface display comprising: a message
display pane that displays email messages in a mailbox associated
with the user; a reading display pane that displays a selected
email message from the email messages in the mailbox; and a next
calendar item display pane that persistently displays a next item
display element that includes details of the next calendar item
from the electronic calendar and a countdown time indicator that is
dynamically updated to indicate a time until the scheduled start
time for the next calendar item.
12. The computing system of claim 11, wherein the instructions
cause the computing system to: generate the countdown time
indicator to represent a time period from the current time to the
scheduled start time of the next calendar item.
13. The computing system of claim 12, wherein the instructions
cause the computing system to update the countdown time indicator
until a threshold time period after the scheduled start time of the
next calendar item.
14. The computing system of claim 13, wherein the instructions
cause the computing system to set the threshold time period based
on a duration of the next calendar item.
15. The computing system of claim 13, wherein the next calendar
item comprises a first calendar item, and the instructions cause
the computing system to: and the method further comprises: upon
reaching the threshold time period, change the countdown time
indicator to indicate a time until the scheduled start time for a
second calendar item that temporally subsequent to the first
calendar item.
16. The computing system of claim 11, wherein instructions cause
the computing system to: apply a filter criterion to the first
calendar item to filter out the first calendar item based on the
first calendar item meeting the filter criterion; in response to
the first calendar item being filtered out, identify a second
calendar item, temporally subsequent to the first calendar item, as
the next calendar item.
17. The computing system of claim 11, wherein the instructions
cause the computing system to: determine that a calendar search is
to be performed to identify the next calendar item and, in
response, initiate the search of the electronic calendar.
18. The computing system of claim 11, wherein the instructions
cause the computing system to: identify metadata corresponding to
of the identified next calendar item; and identify a service to be
searched to obtain additional information corresponding to the
identified next calendar item, based on the metadata corresponding
to the identified next calendar item.
19. The computing system of claim 18, wherein the instructions
cause the computing system to: search the identified service to
obtain the additional information corresponding to the identified
next calendar item.
20. The computing system of claim 11, wherein the instructions
cause the computing system to display the additional information on
the next item display element on the email user interface display.
Description
CROSS-REFERENCE TO RELATED APPLICATION
[0001] The present application is a continuation of and claims
priority of U.S. patent application Ser. No. 15/605,127, filed May
25, 2017, the content of which is hereby incorporated by reference
in its entirety.
BACKGROUND
[0002] Computing systems are currently in wide use. Some computing
systems include electronic mail (e-mail) computing systems and
calendar computing systems. These systems can be combined into a
single application, or they can be different applications.
[0003] E-mail computing systems surface user interfaces that allow
users to perform e-mail functions, such as author, send, receive
and organize e-mail messages. They also allow the user to configure
folders and filter settings, among other things.
[0004] Calendar computing systems surface user interfaces that
allow users to perform calendar operations. Calendar operations can
include such things as scheduling tasks or appointments, scheduling
meetings, sending and receiving meeting requests, among other
things.
[0005] The discussion above is merely provided for general
background information and is not intended to be used as an aid in
determining the scope of the claimed subject matter.
SUMMARY
[0006] An electronic mail (e-mail) display is generated for a user,
showing a mailbox for the user. A next calendar item indication is
persistently displayed on the e-mail display. The next calendar
item includes a countdown timer showing a time until the next
calendar item is scheduled to begin.
[0007] This Summary is provided to introduce a selection of
concepts in a simplified form that are further described below in
the Detailed Description. This Summary is not intended to identify
key features or essential features of the claimed subject matter,
nor is it intended to be used as an aid in determining the scope of
the claimed subject matter. The claimed subject matter is not
limited to implementations that solve any or all disadvantages
noted in the background.
BRIEF DESCRIPTION OF THE DRAWINGS
[0008] FIG. 1 is a block diagram of one example of a computing
system architecture.
[0009] FIG. 2 is a block diagram showing one example of calendar
search logic in more detail.
[0010] FIGS. 3A and 3B (collectively referred to herein as FIG. 3)
show a flow diagram illustrating one example of the operation of
the architecture illustrated in FIG. 1.
[0011] FIGS. 4A-4F show examples of user interface displays.
[0012] FIG. 5 is a block diagram showing one example of the
architecture illustrated in FIG. 1, deployed in a cloud computing
architecture.
[0013] FIGS. 6-8 show examples of mobile devices that can be used
in the architectures shown in the previous figures.
[0014] FIG. 9 is a block diagram of one example of a computing
environment that can be used in the architectures shown in previous
figures.
DETAILED DESCRIPTION
[0015] FIG. 1 is a block diagram of one example of computing system
architecture 100. Architecture 100, in the example shown in FIG. 1,
shows computing system 102 connected to a variety of other
services, such as weather service 104, traffic service 106, or
other services 108, as well as to a user device 110, over network
112. Network 112 can be any of a wide variety of different types of
networks, such as a wide area network, a local area network, a
cellular communication network, a near field communication network,
or any of a variety of other networks or combinations of networks.
In the example shown in FIG. 1, user 114 can access computing
system 102 either directly, as indicated by arrow 116, or through
user device 110, as indicated by arrow 118. In either case, user
interfaces 120 are generated with user input mechanisms 122, for
interaction by user 114. User 114 illustratively interacts with
user input mechanisms 122 in order to control and manipulate user
device 110 and/or computing system 102.
[0016] User device 110 can include one or more processors or
servers 124, data store 126, user interface logic 128, one or more
client components 130 (that can be components of one or more
services hosted by computing system 102), and it can include a wide
variety of other items 132. In a scenario in which user 114 uses
user device 110, user interface logic 128 either by itself, or
under the control of other items, generates user interfaces 120 and
detects user interactions with user input mechanisms 122. It can
provide an indication of those interactions to other items in
architecture 100.
[0017] Computing system 102 illustratively includes one or more
processors or servers 134, electronic mail (e-mail) system 136,
calendar system 138, user interface logic 140, and it can include a
wide variety of other computing system functionality 142. It will
be noted that calendar system 138 can be within, and part of, email
system 136 or the two systems can be separate. They are shown as
separate systems in FIG. 1 for the sake of example only.
[0018] E-mail system 136 illustratively includes e-mail
functionality logic 144, data store 146 visualization logic 156,
new calendar item search system 158, and it can include other items
160. Data store 146 can include one or more mailboxes 147-149 and
other items 154. Each mailbox can include, a set of folders
148-150, each of which includes messages 153, and it can include
other items 152 as well. Next calendar item search system 158
illustratively includes search initiation logic 162, service
identification logic 164, query generation/execution logic 166,
countdown generator logic 168, and it can include other items 170.
Service identification logic 164, itself, can include metadata
(e.g., location) identifier 172, service identifier 174, and other
items 176. Query generation/execution logic 166, itself, can
include calendar search logic 178, weather search logic 180,
traffic search logic 182, and a wide variety of other items
184.
[0019] Calendar system 138 can include scheduling functionality
logic 186, data store 188, and a wide variety of other calendar
functionality logic 190. Data store 188, itself, illustratively
includes user calendar data 192 corresponding to a user. User
calendar data 192 can include a set of calendar items 194-196, each
of which appear on a day and/or at a time, and for a duration,
within a user's calendar. Data store 188 can include a wide variety
of other items 198 as well.
[0020] Before describing the operation of architecture 100 in more
detail, a brief overview of some of the items in architecture 100,
and their operation, will first be provided. E-mail functionality
logic 144 illustratively exposes interfaces (either by itself or
through user interface logic 140) that allow user 114 to perform a
wide variety of e-mail functions, such as authoring and sending
e-mail messages, receiving, viewing, deleting and organizing e-mail
messages, sending group messages, organizing folders and filters,
etc. Data store 146 illustratively stores mailbox data 147-149 for
different mailboxes for different users. As mentioned above, each
mailbox 147 can include a set of folders 148-150, each of which
have one or more messages 152 in them. A number of examples of this
are described in greater detail below.
[0021] Scheduling functionality logic 186 in calendar system 138
illustratively allows user 114 to schedule items on his or her
calendar. When this occurs, they are represented by calendar items
194-196 in the user calendar data 192 corresponding to the calendar
for user 114. Other calendar functionality logic 190 allows user
114 to perform other calendar functionality, such as to send
meeting requests, etc.
[0022] Next calendar item search system 158 in email system 136
illustratively uses search initiation logic 162 to determine
whether it is time to search for a next calendar item, so an
indication of that next calendar item can be displayed within the
user's mailbox. This can be done, for instance, on an intermittent
or periodic basis, it can be triggered by changes to the user's
calendar, or it can be done in other ways.
[0023] Query generation/execution logic 166 then uses calendar
search logic 178 to search user calendar data 192 for user 114, in
calendar system 138. It identifies the next calendar item for user
114. Service identification logic 164 then uses metadata identifier
172 to identify metadata (such as the location) corresponding to
that calendar item. Service identifier 174 can then identify other
services of interest (such as weather service 104, traffic service
106, etc.) that may be searched, based upon the metadata (e.g.,
location) of the next calendar item for the user. For instance, if
the next calendar item for user 114 is an outdoor meeting or event,
then service identifier 174 may identify that weather service 104
should be searched for weather information. In that case, weather
search logic 180 illustratively searches weather service 104 to
obtain weather forecast information for the location of the user's
outdoor meeting or event, at the meeting or event time. If the
location of the next item is a remote location where the user must
travel, then service identifier 174 may identify traffic service
106 as a service that should be searched for traffic information.
In that case, traffic search logic 182 searches for traffic
information from traffic service 106. The traffic information may,
for example, identify a best route or travel time when traveling
from the user's current location to the location of the next
calendar item. Service identifier 174 can identify a wide variety
of other services that may be searched by other items 184 in query
generation/execution logic 166.
[0024] Countdown generator logic 168 generates a countdown
identifier (such as indicating minutes, hours, etc.) to the
scheduled start time of the user's next calendar item.
Visualization logic 156 generates a visual representation of the
user's next calendar item, along with the countdown indicator
generated by countdown generator logic 168. User interface logic
140 illustratively surfaces that visualization on a user interface
120 for user 114. Some examples of this are also described in
greater detail below.
[0025] FIG. 2 is a block diagram showing one example of calendar
search logic 178, in more detail. In the example shown in FIG. 2,
calendar search logic 178 includes next calendar item identifier
logic 200, filtering logic 202, and it can include a wide variety
of other items 204. Next calendar item identifier logic 200
illustratively identifies the next calendar item on the calendar of
user 114. In one example, it can identify the next calendar item
that begins at or after the present time. In another example, it
can identify, as the next calendar item, an item on the user's
calendar that began up to a threshold time before the present time
(such as 10 minutes ago) as well. Filtering logic 202 then applies
any desired filtering criteria to determine whether the next
calendar item identified should be filtered out, and another
calendar item identified. For instance, it may be that calendar
search logic 178 does not surface all day meetings or other day
long items on the user's calendar. In that case, filtering logic
202 would apply an "all day meeting" filter criterion to filter out
any calendar items that were all day meetings. Thus, those calendar
items would not be output by calendar search logic 178 as the next
calendar item for user 114. Instead, it would be the next
subsequent calendar item that has a next subsequent scheduled start
time and that is not filtered out based on any filter criteria.
[0026] FIGS. 3A and 3B (collectively referred to herein as FIG. 3)
show a flow diagram illustrating one example of the operation of
architecture 100, shown in FIG. 1, in surfacing a next calendar
item, for user 114, in the mailbox display of user 114. FIGS. 4A-4E
show some examples of user interface displays that can be
generated. FIGS. 1, 3, and 4A-4E will now be described in
conjunction with one another.
[0027] It is first assumed that e-mail system 136 is running on
computing system 102. This is indicated by block 210 in the flow
diagram of FIG. 3. In one example, it may be generating an e-mail
display for user 114. This is indicated by block 212. It may be
running and displaying other items, in other ways as well, and this
is indicated by block 214.
[0028] At some point, search initiation logic 162 determines
whether it is time to update the next calendar item display that is
displayed on the e-mail user interface display of user 114 (some
examples of which are described below with respect to FIGS. 4A-4E).
This is indicated by block 216. This can be done, as mentioned
above, in a variety of ways. For instance, it may be that the next
calendar item display is updated periodically (such as every 10
minutes). It may be that it is updated based on a change to the
user's calendar data. It may be updated in a wide variety of other
ways as well.
[0029] Assuming that it is time to update the next calendar item
display, then next calendar item identifier logic 200 in calendar
search logic 178 accesses the calendar data 192 for user 114. This
is indicated by block 218. This can be done by calendar system 138
exposing a search interface so that logic 178 can search through
the user's calendar data 192. It can be done in other ways as
well.
[0030] Next calendar item identifier logic 200 then identifies a
next calendar item, on the calendar of user 114, given the current
time. This is indicated by block 220. For instance, in one example,
logic 200 looks for the next calendar item that begins at or after
the current time. This is indicated by block 222. In another
example, logic 200 can wait until a threshold amount of time after
the start time of the currently display calendar item. For
instance, if the currently displayed next calendar item is a
meeting that begins at 10:00 AM, then next calendar item identifier
logic 200 may look for the next calendar item that begins at or
after 12:10. Identifying a next calendar item that begins a
threshold amount of time after the start time of the currently
displayed calendar item is indicated by block 224 in the flow
diagram of FIG. 3. Logic 200 can also identify the next calendar
item by searching from the end time of the previous calendar item.
This is indicated by block 225. The next calendar item, given the
current time, can be identified in other ways as well, and this is
indicated by block 226.
[0031] Filtering logic 202 then applies any desired filtering
criteria to filter out calendar items that need not be displayed as
the next calendar item in the user's e-mail display. This is
indicated by block 228. It will be noted that filtering can take
place as part of the process of identifying the next calendar item
in block 220. It is described separately for the sake of example
only. For instance, in one example, filtering logic 202 filters out
all day meetings as indicated by block 230. It can apply a wide
variety of other filter criteria as well, and this is indicated by
block 232. If the currently selected next calendar item is filtered
out by filtering logic 202, then the process reverts to block 218
where next calendar item identifier logic 200 accesses the calendar
data for user 114 to identify the next subsequent calendar item,
and processing continues at blocks 220, 228, etc. Determining
whether the selected calendar item is filtered out is indicated by
block 234 in the flow diagram of FIG. 3.
[0032] Once a next calendar item is selected, that is not filtered
out, then service identification logic 164 determines whether any
additional information should be obtained for the next calendar
item, from any other services. This is indicated by block 236 in
the flow diagram of FIG. 3. The additional information may include
a wide variety of information such as metadata or chained metadata
corresponding to the calendar item, and metadata identifier 172 can
identify such metadata, as indicated by block 238. The metadata can
include, as an example, location 239, time of day 241, chained
metadata such as location weather 243, among others 245. Service
identifier 174 then identifies any other services that are to be
searched, for additional information about the next identified
calendar item. This is indicated by block 240. In one example, the
additional services or other services can be identified based upon
the location of the next calendar item. If it is outside, then
weather service 104 can be searched to obtain weather information
as indicated by block 242. If the location is remote, then traffic
service 106 can be searched to obtain traffic information, as
indicated by block 244. A wide variety of other services can be
identified to obtain a wide variety of other information as well,
and this is indicated by block 246.
[0033] Some example scenarios might include seeing that it's a
dinner meeting based on the provided location, the time of day, the
title, and searching a service to obtain details of restaurants or
bars in the area. Or, in a more personal assistant style scenario,
searching a weather service to know that it's raining to provide
extra buffer time for travel.
[0034] The other search logic (such as weather search logic 180 and
traffic search logic 182) is then used to search the other sources
to obtain the additional data. This is indicated by block 248.
[0035] Countdown generator logic 168 generates, and intermittently
or continually updates, a countdown timer. This is indicated by
block 250. For instance, if the identified next calendar item
starts in 35 minutes, then countdown generator logic 168 generates
a countdown indicator indicating that there are 35 minutes to go
before the next calendar item is scheduled to occur. It can update
the countdown timer indicator periodically (such as every minute,
every second, etc.). It can update the countdown timer in other
ways as well. For instance, the countdown timer may be an analog
clock display that is updated. It may be a status bar display that
is updated to go from fifteen minutes down to zero minutes. It can
be a static start time display that shows the start time of the
calendar item. These are examples only.
[0036] Once the next calendar item is identified, any other
information is obtained from other services, and the countdown
timer indication is generated, then visualization logic 156
illustratively generates a representation of the next calendar item
that has been identified. This is indicated by block 252. The
representation can include a textual description or title 254 for
the next calendar item. It can include the countdown timer
indicator 256, it can include the other information such as weather
information 258, traffic or travel time information 260, and it can
include a wide variety of other information 262.
[0037] Visualization logic 156 then surfaces the representation on
the user's e-mail display. This is indicated by block 264. In one
example, the representation is surfaced persistently, in that it is
unlike a notification which is displayed for a certain amount of
time and then is hidden or removed (or can be dismissed) from the
display. Displaying the representation persistently (that is,
continuously) is indicated by block 266 in the flow diagram of FIG.
3.
[0038] In one example, it is displayed above a messages pane in the
user's mailbox, and this is indicated by block 268. Again, examples
of this are illustrated below in FIGS. 4A-4B. It can be
interactive, in that the user can interact with it to perform
operations (such as to see additional information, etc.). This is
indicated by block 270. Also, in one example, the representation is
displayed without any scheduling functionality, as indicated by
block 272. For instance, it is displayed without user input
actuators that allow a user to edit a calendar item, to schedule a
new calendar item, etc. These types of actuators can inhibit the
surfaced representation, from providing a simple indicator as to
the next calendar item for the user, and how long before that
calendar item occurs. Providing additional controls, user input
mechanisms, buttons, etc. for performing scheduling functionality,
and providing a great deal of additional functionality can clutter
the display. It can undesirably cover e-mail display real estate on
the display screen. It can be confusing and cumbersome to use,
etc.
[0039] The representation can be surfaced in the user's e-mail
display in other ways as well. This is indicated by block 274. FIG.
4A shows one example of a surfaced representation. It can be seen
in FIG. 4A that a user's e-mail display 276 is being shown. The
e-mail display includes a folders pane 278 that shows various
folders for the user, such as the user's inbox, outbox, sent items,
etc. It also shows a messages pane 280 that shows the messages in
the particular folder selected in pane 278. It can be seen in FIG.
4A that the inbox folder 282 has been selected so that the messages
in the user's inbox are shown in pane 280. Display 276 also
includes a reading pane 284 that shows a message that is selected
from the messages pane 280.
[0040] FIG. 4A also shows that a representation of the next
calendar item, shown generally at 286, is displayed on the e-mail
display 276. In the example illustrated, it is located below the
heading or title of the messages pane 280 (below the word "Inbox")
but above the first message in the messages pane 280. It includes a
number of things, such as a calendar item symbol 288 indicating
that it corresponds to a calendar item. A textual description
"next" represented by number 290, indicating that it is the next
calendar item on the user's calendar, and a brief textual
description 292 briefly describing the calendar item. The textual
description 292 may be taken from the title or description of the
calendar item in the user's calendar data, it can be a paraphrase
generated from that information, or it can be generated in other
ways. Representation 286 also illustratively includes a countdown
indicator 294 that indicates the countdown time which is a time
before the next calendar item is scheduled to occur.
[0041] In one example, the representation 286 for the next calendar
item is persistently displayed until a threshold time after its
start time. For instance, if it was scheduled to start at noon,
then representation 286 for that calendar item is illustratively
displayed until a threshold time after noon (such as 10
minutes--meaning that it would be displayed until 12:10), at which
time the next chronologically occurring calendar item in the user's
calendar data will be identified and a representation 286 will be
displayed for that calendar item. In this way, even if the user is
slightly late for the next calendar item currently being displayed,
the user will still be aware that it is occurring some time after
it has started.
[0042] Also, in one example, the threshold time period during which
the next calendar item representation is displayed, after its
scheduled start time, can be variable based on the item's duration
or based on other criteria. For example, if the next calendar item
is scheduled to last for a one hour duration, then a first
threshold (such as 10 minutes) may be used. However, if the next
calendar item is scheduled to last for a three hour duration, then
a different threshold (such as 15 minutes) may be used. In this
way, the next calendar item representation will be displayed for a
longer period of time, after its scheduled start time, if the
duration of that calendar item is longer. This is only one
example.
[0043] Also, in one example, representation 286 is interactive, in
that the user can interact with it in certain ways to perform
certain actions. User interface logic 140 may illustratively detect
a user interaction and provide it to visualization logic 156 which
may change the visualization or perform other actions based on the
user interaction. Detecting an interaction input by the user is
indicated by block 300 in the flow diagram of FIG. 3. Performing
interaction processing is indicated by block 302. The interaction
processing may take a wide variety of different forms, based upon
the particular user interaction. For instance, when the user
actuates an actuatable display element (such as actuatable display
element 304) on representation 286, this may cause visualization
logic 156 to display additional information about the next calendar
item. This is indicated by block 306 in the flow diagram of FIG. 3.
The additional information may include the weather information, the
traffic or travel time, etc. Further, when the user actuates or
hovers over or otherwise interacts with representation 286, then
visualization logic 156 may show other calendar items (such as
those coming after the next calendar item currently displayed).
This is indicated by block 308 in the flow diagram of FIG. 3.
Interaction processing can be performed in a wide variety of other
ways as well, and this is indicated by block 310.
[0044] FIGS. 4B-4E show examples of different interfaces and
different interaction processing. FIG. 4B is similar to FIG. A, and
similar items are similarly numbered. However, FIG. 4B shows that
the user has now actuated actuatable display element 304. In the
example shown in FIG. 4B, visualization logic 156 then interacts
with query generation/execution logic 166 and calendar search logic
178 to search the user calendar data 192 for user 114 to show
additional calendar items occurring after the next calendar item
represented by visual representation 286. In the example shown in
FIG. 4B, this information is shown using a display element 312.
Display element 312 shows a calendar timeline 314 with calendar
items displayed along the timeline 314, at the scheduled start time
and for the scheduled duration. Thus, the calendar item 316
corresponds to that represented by visual representation 286.
Additional calendar items 318, 320 and 322 are shown for the sake
of example only.
[0045] FIG. 4C is also similar to FIG. A, and similar items are
similarly numbered. However, instead of displaying the next
calendar item representation 286 on the top of the messages pane
280, it is displayed in a right panel 326 located to the right of
reading pane 284. The next calendar item representation 286
includes some of the same items shown in FIG. 4A, and they are
similarly numbered but it also specifically illustrates the start
time 328. Also, it shows a reminder element 330 that can be
actuated to remind those people who will be attending the next
calendar item that it is about to begin. Similarly, it includes
other information, such as map information 332 showing a location
where the calendar item is to occur. In addition, it shows later
calendar items illustrated generally at 334 as well, for the same
day, and for a next subsequent day. It includes a countdown timer
shown generally at 336, for each of those items.
[0046] FIGS. 4D-4F show yet another example of displaying the next
calendar item. FIG. 4D is similar to FIG. A, and similar items are
similarly numbered. However, instead of having the next calendar
item representation 286 displayed as shown in previous figures, it
is now displayed on a right rail display shown generally at 340.
Right rail display includes a timeline, and a set of calendar items
shown along the timeline, for the present day. In the example
illustrated, the next calendar item is displayed generally at 286.
The start time is indicated, and a category (such as a meal
category) is illustrated as well.
[0047] FIG. 4E shows that, when the user interacts with the right
rail display 340, a next item panel slides in from the right of the
display. The panel is illustrated generally at 342. It now shows
more detailed information corresponding to the next calendar item
representation 286, and the additional calendar items displayed
along the timeline. In the example shown in FIG. 4E, each of the
display elements representing the calendar items displayed along
the timeline are user actuatable elements. Therefore, when the user
actuates them (such as by clicking on them, double clicking them,
hovering over them, tapping them, etc.), visualization logic 156
generates an additional visualization showing additional
information. FIG. 4F shows one example of this.
[0048] In FIG. 4F, the user has actuated the visual display element
344 corresponding to a calendar item entitled "Marketing Sync".
When this occurs, visualization logic 156 displays additional
information in a corresponding display 346. The additional
information can show the location of the calendar item, who
organized it, it can provide traffic information, and additional
actuators to view additional information about the calendar
item.
[0049] It can thus be seen that the present description improves
the computing system by incorporating calendar information into the
e-mail display of the computing system. The calendar information,
however, is incorporated in such a way that it is easily accessible
and digestible by a user. It displays a next calendar item with a
countdown time, persistently, so a user can easily identify the
user's next calendar item and how much time the user has before it
is scheduled to begin. The user need not perform any navigation
steps to navigate away from the e-mail display and into the
calendar display to see this information. This reduces the
computing overhead needed to navigate away from one display and
generate a separate display. Instead, the next calendar item is
intermittently identified and a representation is generated for
that calendar item, along with a countdown timer that is updated to
show a countdown time. The next calendar item representation, in
one example, does not include controls for performing any other
scheduling functions (such as to schedule a meeting, delete one,
schedule a task or appointment, send a meeting request, etc.). This
reduces the complexity of the interface, the computing system
overhead, and the cumbersome nature of identifying a next calendar
over previous systems.
[0050] It will be noted that the above discussion has described a
variety of different systems, components and/or logic. It will be
appreciated that such systems, components and/or logic can be
comprised of hardware items (such as processors and associated
memory, or other processing components, some of which are described
below) that perform the functions associated with those systems,
components and/or logic. In addition, the systems, components
and/or logic can be comprised of software that is loaded into a
memory and is subsequently executed by a processor or server, or
other computing component, as described below. The systems,
components and/or logic can also be comprised of different
combinations of hardware, software, firmware, etc., some examples
of which are described below. These are only some examples of
different structures that can be used to form the systems,
components and/or logic described above. Other structures can be
used as well.
[0051] The present discussion has mentioned processors and servers.
In one embodiment, the processors and servers include computer
processors with associated memory and timing circuitry, not
separately shown. They are functional parts of the systems or
devices to which they belong and are activated by, and facilitate
the functionality of the other components or items in those
systems.
[0052] Also, a number of user interface displays have been
discussed. They can take a wide variety of different forms and can
have a wide variety of different user actuatable input mechanisms
disposed thereon. For instance, the user actuatable input
mechanisms can be text boxes, check boxes, icons, links, drop-down
menus, search boxes, etc. They can also be actuated in a wide
variety of different ways. For instance, they can be actuated using
a point and click device (such as a track ball or mouse). They can
be actuated using hardware buttons, switches, a joystick or
keyboard, thumb switches or thumb pads, etc. They can also be
actuated using a virtual keyboard or other virtual actuators. In
addition, where the screen on which they are displayed is a touch
sensitive screen, they can be actuated using touch gestures. Also,
where the device that displays them has speech recognition
components, they can be actuated using speech commands.
[0053] A number of data stores have also been discussed. It will be
noted they can each be broken into multiple data stores. All can be
local to the systems accessing them, all can be remote, or some can
be local while others are remote. All of these configurations are
contemplated herein.
[0054] Also, the figures show a number of blocks with functionality
ascribed to each block. It will be noted that fewer blocks can be
used so the functionality is performed by fewer components. Also,
more blocks can be used with the functionality distributed among
more components.
[0055] FIG. 5 is a block diagram of architecture 100, shown in FIG.
1, except that its elements are disposed in a cloud computing
architecture 500. Cloud computing provides computation, software,
data access, and storage services that do not require end-user
knowledge of the physical location or configuration of the system
that delivers the services. In various embodiments, cloud computing
delivers the services over a wide area network, such as the
internet, using appropriate protocols. For instance, cloud
computing providers deliver applications over a wide area network
and they can be accessed through a web browser or any other
computing component. Software or components of architecture 100 as
well as the corresponding data, can be stored on servers at a
remote location. The computing resources in a cloud computing
environment can be consolidated at a remote data center location or
they can be dispersed. Cloud computing infrastructures can deliver
services through shared data centers, even though they appear as a
single point of access for the user. Thus, the components and
functions described herein can be provided from a service provider
at a remote location using a cloud computing architecture.
Alternatively, they can be provided from a conventional server, or
they can be installed on client devices directly, or in other
ways.
[0056] The description is intended to include both public cloud
computing and private cloud computing. Cloud computing (both public
and private) provides substantially seamless pooling of resources,
as well as a reduced need to manage and configure underlying
hardware infrastructure.
[0057] A public cloud is managed by a vendor and typically supports
multiple consumers using the same infrastructure. Also, a public
cloud, as opposed to a private cloud, can free up the end users
from managing the hardware. A private cloud may be managed by the
organization itself and the infrastructure is typically not shared
with other organizations. The organization still maintains the
hardware to some extent, such as installations and repairs,
etc.
[0058] In the example shown in FIG. 5, some items are similar to
those shown in FIG. 1 and they are similarly numbered. FIG. 5
specifically shows that computing system 102 and services 104-108
can be located in cloud 502 (which can be public, private, or a
combination where portions are public while others are private).
Therefore, user 114 uses user device 110 to access those systems
through cloud 502.
[0059] FIG. 5 also depicts another example of a cloud architecture.
FIG. 5 shows that it is also contemplated that some elements of
computing system 102 can be disposed in cloud 502 while others are
not. By way of example, data stores 146, 188 can be disposed
outside of cloud 502, and accessed through cloud 502. In another
example, email system 136 can be outside of cloud 502. Regardless
of where they are located, they can be accessed directly by device
110, through a network (either a wide area network or a local area
network), they can be hosted at a remote site by a service, or they
can be provided as a service through a cloud or accessed by a
connection service that resides in the cloud. All of these
architectures are contemplated herein.
[0060] It will also be noted that architecture 100, or portions of
it, can be disposed on a wide variety of different devices. Some of
those devices include servers, desktop computers, laptop computers,
tablet computers, or other mobile devices, such as palm top
computers, cell phones, smart phones, multimedia players, personal
digital assistants, etc.
[0061] FIG. 6 is a simplified block diagram of one illustrative
example of a handheld or mobile computing device that can be used
as a user's or client's hand held device 16, in which the present
system (or parts of it) can be deployed. FIGS. 7-8 are examples of
handheld or mobile devices.
[0062] FIG. 6 provides a general block diagram of the components of
a client device 16 that can run components of architecture 100 or
that interacts with architecture 100, or both. In the device 16, a
communications link 13 is provided that allows the handheld device
to communicate with other computing devices and under some
embodiments provides a channel for receiving information
automatically, such as by scanning. Examples of communications link
13 include an infrared port, a serial/USB port, a cable network
port such as an Ethernet port, and a wireless network port allowing
communication though one or more communication protocols including
General Packet Radio Service (GPRS), LTE, HSPA, HSPA+ and other 3G
and 4G radio protocols, 1.times.rtt, and Short Message Service,
which are wireless services used to provide cellular access to a
network, as well as Wi-Fi protocols, and Bluetooth protocol, which
provide local wireless connections to networks.
[0063] In other examples, applications or systems are received on a
removable Secure Digital (SD) card that is connected to a SD card
interface 15. SD card interface 15 and communication links 13
communicate with a processor 17 (which can also embody processors
or servers from previous FIGS.) along a bus 19 that is also
connected to memory 21 and input/output (I/O) components 23, as
well as clock 25 and location system 27.
[0064] I/O components 23, in one embodiment, are provided to
facilitate input and output operations. I/O components 23 for
various embodiments of the device 16 can include input components
such as buttons, touch sensors, multi-touch sensors, optical or
video sensors, voice sensors, touch screens, proximity sensors,
microphones, tilt sensors, and gravity switches and output
components such as a display device, a speaker, and or a printer
port. Other I/O components 23 can be used as well.
[0065] Clock 25 illustratively comprises a real time clock
component that outputs a time and date. It can also,
illustratively, provide timing functions for processor 17.
[0066] Location system 27 illustratively includes a component that
outputs a current geographical location of device 16. This can
include, for instance, a global positioning system (GPS) receiver,
a LORAN system, a dead reckoning system, a cellular triangulation
system, or other positioning system. It can also include, for
example, mapping software or navigation software that generates
desired maps, navigation routes and other geographic functions.
[0067] Memory 21 stores operating system 29, network settings 31,
applications 33, application configuration settings 35, data store
37, communication drivers 39, and communication configuration
settings 41. Memory 21 can include all types of tangible volatile
and non-volatile computer-readable memory devices. It can also
include computer storage media (described below). Memory 21 stores
computer readable instructions that, when executed by processor 17,
cause the processor to perform computer-implemented steps or
functions according to the instructions. Similarly, device 16 can
have a client system 24 which can run various applications or
embody parts or all of architecture 100. Processor 17 can be
activated by other components to facilitate their functionality as
well.
[0068] Examples of the network settings 31 include things such as
proxy information, Internet connection information, and mappings.
Application configuration settings 35 include settings that tailor
the application for a specific enterprise or user. Communication
configuration settings 41 provide parameters for communicating with
other computers and include items such as GPRS parameters, SMS
parameters, connection user names and passwords.
[0069] Applications 33 can be applications that have previously
been stored on the device 16 or applications that are installed
during use, although these can be part of operating system 29, or
hosted external to device 16, as well.
[0070] FIG. 7 shows one example in which device 16 is a tablet
computer 600. In FIG. 7, computer 600 is shown with user interface
display screen 602. Screen 602 can be a touch screen (so touch
gestures from a user's finger can be used to interact with the
application) or a pen-enabled interface that receives inputs from a
pen or stylus. It can also use an on-screen virtual keyboard. Of
course, it might also be attached to a keyboard or other user input
device through a suitable attachment mechanism, such as a wireless
link or USB port, for instance. Computer 600 can also
illustratively receive voice inputs as well.
[0071] FIG. 8 shows that the device can be a smart phone 71. Smart
phone 71 has a touch sensitive display 73 that displays icons or
tiles or other user input mechanisms 75. Mechanisms 75 can be used
by a user to run applications, make calls, perform data transfer
operations, etc. In general, smart phone 71 is built on a mobile
operating system and offers more advanced computing capability and
connectivity than a feature phone.
[0072] Note that other forms of the devices 16 are possible.
[0073] FIG. 9 is one example of a computing environment in which
architecture 100, or parts of it, (for example) can be deployed.
With reference to FIG. 9, an example system for implementing some
embodiments includes a general-purpose computing device in the form
of a computer 810. Components of computer 810 may include, but are
not limited to, a processing unit 820 (which can comprise
processors or servers from previous Figures), a system memory 830,
and a system bus 821 that couples various system components
including the system memory to the processing unit 820. The system
bus 821 may be any of several types of bus structures including a
memory bus or memory controller, a peripheral bus, and a local bus
using any of a variety of bus architectures. By way of example, and
not limitation, such architectures include Industry Standard
Architecture (ISA) bus, Micro Channel Architecture (MCA) bus,
Enhanced ISA (EISA) bus, Video Electronics Standards Association
(VESA) local bus, and Peripheral Component Interconnect (PCI) bus
also known as Mezzanine bus. Memory and programs described with
respect to FIG. 1 can be deployed in corresponding portions of FIG.
9.
[0074] Computer 810 typically includes a variety of computer
readable media. Computer readable media can be any available media
that can be accessed by computer 810 and includes both volatile and
nonvolatile media, removable and non-removable media. By way of
example, and not limitation, computer readable media may comprise
computer storage media and communication media. Computer storage
media is different from, and does not include, a modulated data
signal or carrier wave. It includes hardware storage media
including both volatile and nonvolatile, removable and
non-removable media implemented in any method or technology for
storage of information such as computer readable instructions, data
structures, program modules or other data. Computer storage media
includes, but is not limited to, RAM, ROM, EEPROM, flash memory or
other memory technology, CD-ROM, digital versatile disks (DVD) or
other optical disk storage, magnetic cassettes, magnetic tape,
magnetic disk storage or other magnetic storage devices, or any
other medium which can be used to store the desired information and
which can be accessed by computer 810. Communication media
typically embodies computer readable instructions, data structures,
program modules or other data in a transport mechanism and includes
any information delivery media. The term "modulated data signal"
means a signal that has one or more of its characteristics set or
changed in such a manner as to encode information in the signal. By
way of example, and not limitation, communication media includes
wired media such as a wired network or direct-wired connection, and
wireless media such as acoustic, RF, infrared and other wireless
media. Combinations of any of the above should also be included
within the scope of computer readable media.
[0075] The system memory 830 includes computer storage media in the
form of volatile and/or nonvolatile memory such as read only memory
(ROM) 831 and random access memory (RAM) 832. A basic input/output
system 833 (BIOS), containing the basic routines that help to
transfer information between elements within computer 810, such as
during start-up, is typically stored in ROM 831. RAM 832 typically
contains data and/or program modules that are immediately
accessible to and/or presently being operated on by processing unit
820. By way of example, and not limitation, FIG. 9 illustrates
operating system 834, application programs 835, other program
modules 836, and program data 837.
[0076] The computer 810 may also include other
removable/non-removable volatile/nonvolatile computer storage
media. By way of example only, FIG. 9 illustrates a hard disk drive
841 that reads from or writes to non-removable, nonvolatile
magnetic media, and an optical disk drive 855 that reads from or
writes to a removable, nonvolatile optical disk 856 such as a CD
ROM or other optical media. Other removable/non-removable,
volatile/nonvolatile computer storage media that can be used in the
exemplary operating environment include, but are not limited to,
magnetic tape cassettes, flash memory cards, digital versatile
disks, digital video tape, solid state RAM, solid state ROM, and
the like. The hard disk drive 841 is typically connected to the
system bus 821 through a non-removable memory interface such as
interface 840, and optical disk drive 855 are typically connected
to the system bus 821 by a removable memory interface, such as
interface 850.
[0077] Alternatively, or in addition, the functionality described
herein can be performed, at least in part, by one or more hardware
logic components. For example, and without limitation, illustrative
types of hardware logic components that can be used include
Field-programmable Gate Arrays (FPGAs), Program-specific Integrated
Circuits (ASICs), Program-specific Standard Products (ASSPs),
System-on-a-chip systems (SOCs), Complex Programmable Logic Devices
(CPLDs), etc.
[0078] The drives and their associated computer storage media
discussed above and illustrated in FIG. 9, provide storage of
computer readable instructions, data structures, program modules
and other data for the computer 810. In FIG. 9, for example, hard
disk drive 841 is illustrated as storing operating system 844,
application programs 845, other program modules 846, and program
data 847. Note that these components can either be the same as or
different from operating system 834, application programs 835,
other program modules 836, and program data 837. Operating system
844, application programs 845, other program modules 846, and
program data 847 are given different numbers here to illustrate
that, at a minimum, they are different copies.
[0079] A user may enter commands and information into the computer
810 through input devices such as a keyboard 862, a microphone 863,
and a pointing device 861, such as a mouse, trackball or touch pad.
Other input devices (not shown) may include a joystick, game pad,
satellite dish, scanner, or the like. These and other input devices
are often connected to the processing unit 820 through a user input
interface 860 that is coupled to the system bus, but may be
connected by other interface and bus structures, such as a parallel
port, game port or a universal serial bus (USB). A visual display
891 or other type of display device is also connected to the system
bus 821 via an interface, such as a video interface 890. In
addition to the monitor, computers may also include other
peripheral output devices such as speakers 897 and printer 896,
which may be connected through an output peripheral interface
895.
[0080] The computer 810 is operated in a networked environment
using logical connections to one or more remote computers, such as
a remote computer 880. The remote computer 880 may be a personal
computer, a hand-held device, a server, a router, a network PC, a
peer device or other common network node, and typically includes
many or all of the elements described above relative to the
computer 810. The logical connections depicted in FIG. 10 include a
local area network (LAN) 871 and a wide area network (WAN) 873, but
may also include other networks. Such networking environments are
commonplace in offices, enterprise-wide computer networks,
intranets and the Internet.
[0081] When used in a LAN networking environment, the computer 810
is connected to the LAN 871 through a network interface or adapter
870. When used in a WAN networking environment, the computer 810
typically includes a modem 872 or other means for establishing
communications over the WAN 873, such as the Internet. The modem
872, which may be internal or external, may be connected to the
system bus 821 via the user input interface 860, or other
appropriate mechanism. In a networked environment, program modules
depicted relative to the computer 810, or portions thereof, may be
stored in the remote memory storage device. By way of example, and
not limitation, FIG. 9 illustrates remote application programs 885
as residing on remote computer 880. It will be appreciated that the
network connections shown are exemplary and other means of
establishing a communications link between the computers may be
used.
[0082] It should also be noted that the different examples
described herein can be combined in different ways. That is, parts
of one or more examples can be combined with parts of one or more
other examples. All of this is contemplated herein.
[0083] Example 1 is a computing system, comprising:
[0084] electronic mail (email) functionality displaying an email
display corresponding to a user;
[0085] a next calendar item search system that identifies a next
calendar item on a calendar for the user and generates a next item
representation that includes a countdown time indicator indicative
of a time until a scheduled start time for the identified next
calendar item; and
[0086] visualization logic that surfaces the next item
representation on the email display.
[0087] Example 2 is the computing system of any or all previous
examples wherein the next calendar item search system
comprises:
[0088] query generation/execution logic configured to search
calendar data, for the calendar corresponding to the user, to
identify the next calendar item, relative to a current time.
[0089] Example 3 is the computing system of any or all previous
examples wherein the next calendar item search system
comprises:
[0090] countdown generator logic configured to generate the
countdown time indicator by determining a time period from the
current time to the scheduled start time of the identified calendar
item, the countdown generator logic being configured to update the
countdown time indicator on the surfaced next item
representation.
[0091] Example 4 is the computing system of any or all previous
examples wherein the countdown generator logic is configured to
update the countdown time indicator until a threshold time period
after the scheduled start time of the identified next calendar
item.
[0092] Example 5 is the computing system of any or all previous
examples wherein the countdown generator logic is configured to
update the countdown time indicator until a variable threshold time
period after the scheduled start time of the identified next
calendar item, the variable threshold time period varying based on
a duration of the identified next calendar item.
[0093] Example 6 is the computing system of any or all previous
examples wherein the next calendar item search system
comprises:
[0094] filter logic configured to apply a filter criterion to the
identified next calendar item to filter out the identified next
calendar item if it meets the filter criterion.
[0095] Example 7 is the computing system of any or all previous
examples wherein, if the filter logic filters the next calendar
item, then the query generation/execution logic is configured to
identify a subsequent calendar item as the identified next calendar
item.
[0096] Example 8 is the computing system of any or all previous
examples wherein the next calendar item search system
comprises:
[0097] search initiation logic configured to determine that a
calendar search is to be performed to identify the next calendar
item and initiate the query generation/execution system to search
the calendar data.
[0098] Example 9 is the computing system of any or all previous
examples wherein the next calendar item search system
comprises:
[0099] a metadata identifier configured to identify metadata
corresponding to of the identified next calendar item; and
[0100] a service identifier configured to identify a service to be
searched to obtain additional information corresponding to the
identified next calendar item, based on the metadata corresponding
to the identified next calendar item.
[0101] Example 10 is the computing system of any or all previous
examples wherein the query generation/execution logic
comprises:
[0102] search logic that searches the identified service to obtain
the additional information corresponding to the identified next
calendar item.
[0103] Example 11 is the computing system of any or all previous
examples wherein the visualization logic surfaces the additional
information on the next item representation on the email
display.
[0104] Example 12 is a computer implemented method, comprising:
[0105] displaying an email display corresponding to a user;
[0106] identifying a next calendar item on a calendar for the
user;
[0107] generating a next item representation that includes a
countdown time indicator indicative of a time until a scheduled
start time for the identified next calendar item; and
[0108] surfacing the next item representation on the email
display.
[0109] Example 13 is the computer implemented method of any or all
previous examples wherein identifying the next calendar item
comprises:
[0110] searching calendar data, for the calendar corresponding to
the user, to identify the next calendar item, relative to a current
time.
[0111] Example 14 is the computer implemented method of any or all
previous examples wherein identifying the next calendar item
comprises:
[0112] generating the countdown time indicator by determining a
time period from the current time to the scheduled start time of
the identified calendar item; and
[0113] updating the countdown time indicator on the surfaced next
item representation.
[0114] Example 15 is the computer implemented method of any or all
previous examples wherein updating the countdown time indicator
comprises:
[0115] updating the countdown time indicator until a threshold time
period after the scheduled start time of the identified next
calendar item.
[0116] Example 16 is the computer implemented method of any or all
previous examples wherein updating the countdown time indicator
comprises:
[0117] updating the countdown time indicator until a variable
threshold time period after the scheduled start time of the
identified next calendar item, the variable threshold time period
varying based on a duration of the identified next calendar
item.
[0118] Example 17 is the computer implemented method of any or all
previous examples wherein identifying the next calendar item
comprises:
[0119] applying a filter criterion to the identified next calendar
item to filter out the identified next calendar item if it meets
the filter criterion; and
[0120] if the next calendar item is filtered out, identifying a
subsequent calendar item as the identified next calendar item.
[0121] Example 18 is the computer implemented method of claim 14
wherein identifying the next calendar item comprises: [0122]
identifying metadata corresponding to the identified next calendar
item; [0123] identifying a service to be searched to obtain
additional information corresponding to the identified next
calendar item, based on the metadata corresponding to the
identified next calendar item; and [0124] searching the identified
service to obtain the additional information corresponding to the
identified next calendar item.
[0125] Example 19 is the computer implemented method of any or all
previous examples wherein surfacing the next item representation
comprises:
[0126] surfacing the additional information on the next item
representation on the email display.
[0127] Example 20 is a computing system, comprising:
[0128] electronic mail (email) functionality displaying an email
display corresponding to a user;
[0129] query generation/execution logic configured to search
calendar data, for a calendar corresponding to the user, to
identify a next calendar item, relative to a current time, on the
calendar corresponding to the user;
[0130] countdown generator logic configured to generate a countdown
time indicator by determining a time period from the current time
to a scheduled start time of the identified calendar item, the
countdown generator logic being configured to update the countdown
time indicator; and
[0131] visualization logic that surfaces a next item representation
on the email display, the next item representation including a next
item identifier identifying the identified next calendar item and
the countdown time indicator.
[0132] Although the subject matter has been described in language
specific to structural features and/or methodological acts, it is
to be understood that the subject matter defined in the appended
claims is not necessarily limited to the specific features or acts
described above. Rather, the specific features and acts described
above are disclosed as example forms of implementing the
claims.
* * * * *