Displaying a countdown timer for a next calendar event in an electronic mail inbox
Summary by NHIP
Countdown timer in email inbox
The system displays a persistent countdown timer for the next calendar event within an email interface. It calculates the indicator duration based on the event length and updates the timer until a threshold time after the scheduled start is reached.
Claim Score by NHIP
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.

Term
11.3 yearsleft in the term
Expires 2 January 2038, including 222 days of term adjustment.
- Priority and filed
- Granted
- Today
- Expires
16 claims: 3 independent, 13 dependent
- 1A computing system, comprising:at least one processor;andmemory storing instructions executable by the at least one processor, wherein the instructions, when executed, cause the computing system to: search an electronic calendar that is associated with a user and stores a plurality of calendar items representing calendar events;identify, by the at least one processor, 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 a first calendar item, from the plurality of calendar items, based on the scheduled start times corresponding to the calendar events, the first calendar item comprising a next calendar item relative to a current time;generate a countdown time indicator by determining a time period from the current time to the scheduled start time of the next calendar item;instruct an email client to display an email user interface display on a display device, the email user interface display comprising: a message display pane that displays a plurality of email messages in a mailbox corresponding to the user;a reading display pane that displays a selected email message from the plurality of email messages in the mailbox;anda 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 the countdown time indicator that is dynamically updated to indicate a time until the scheduled start time for the next calendar item;identify a duration of the calendar event represented by the next calendar item;determine a threshold time period for display of the countdown time indicator based on the duration of the calendar event;andupdate the countdown time indicator until the threshold time period after the scheduled start time of the next calendar item is reached.
- 8A method performed by a computing system, the method comprising:searching an electronic calendar that is associated with a user and stores a plurality of calendar items representing calendar events;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 a first calendar item, from the plurality of calendar items, based on the scheduled start times corresponding to the calendar events, the first calendar item comprising a next calendar item relative to a current time;generating a countdown time indicator by determining a time period from the current time to the scheduled start time of the identified next calendar item;instructing an email client to display an email user interface display on a display device, the email user interface display comprising: a message display pane that displays a plurality of email messages in a mailbox corresponding to the user;a reading display pane that displays a selected email message from the plurality of email messages in the mailbox;anda 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;identifying a duration of the calendar event represented by the next calendar item;determining, by a processor of the computing system, a threshold time period for display of the countdown time indicator based on the duration of the calendar event;andupdating, by the processor of the computing system, the countdown time indicator until the threshold time period after the scheduled start time of the next calendar item is reached.
- 14Broadest claimClaim Score 26, narrow(NHIP)A computing system comprising:at least one processor;andmemory storing instructions executable by the at least one processor, wherein the instructions, when executed, cause the computing system to: search, by the at least one processor, an electronic calendar that is associated with a user and stores a plurality of calendar items each representing a calendar event having a corresponding scheduled start time;identify a first calendar item, from the plurality of calendar items, based on the corresponding scheduled start times, the first calendar item comprising a next calendar item from a current time;filter out the first calendar item based on the first calendar item meeting a filter criterion;in response to the first calendar item being filtered out, identify a second calendar item comprising a next calendar item from the first calendar item;generate a countdown time indicator by determining a time period from the current time to the scheduled start time corresponding to the second calendar item;andinstruct an email client to display an email user interface display on a display device, the email user interface display comprising: a message display pane that displays a plurality of email messages in a mailbox corresponding to the user;a reading display pane that displays a selected email message from the plurality of email messages in the mailbox;anda next calendar item display pane that persistently displays a next item display element that includes details of the second calendar item from the electronic calendar and the countdown time indicator that is dynamically updated to indicate a time until the scheduled start time for the second calendar item.
Independent claims3
128 paragraphs in 4 sections, as filed
BACKGROUND
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.
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.
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.
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
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.
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
<figref idref="DRAWINGS">FIG. 1</figref> is a block diagram of one example of a computing system architecture.
<figref idref="DRAWINGS">FIG. 2</figref> is a block diagram showing one example of calendar search logic in more detail.
<figref idref="DRAWINGS">FIGS. 3A and 3B</figref> (collectively referred to herein as <figref idref="DRAWINGS">FIG. 3</figref>) show a flow diagram illustrating one example of the operation of the architecture illustrated in <figref idref="DRAWINGS">FIG. 1</figref>.
<figref idref="DRAWINGS">FIGS. 4A-4F</figref> show examples of user interface displays.
<figref idref="DRAWINGS">FIG. 5</figref> is a block diagram showing one example of the architecture illustrated in <figref idref="DRAWINGS">FIG. 1</figref>, deployed in a cloud computing architecture.
<figref idref="DRAWINGS">FIGS. 6-8</figref> show examples of mobile devices that can be used in the architectures shown in the previous figures.
<figref idref="DRAWINGS">FIG. 9</figref> is a block diagram of one example of a computing environment that can be used in the architectures shown in previous figures.
DETAILED DESCRIPTION
<figref idref="DRAWINGS">FIG. 1</figref> is a block diagram of one example of computing system architecture <b>100</b>. Architecture <b>100</b>, in the example shown in <figref idref="DRAWINGS">FIG. 1</figref>, shows computing system <b>102</b> connected to a variety of other services, such as weather service <b>104</b>, traffic service <b>106</b>, or other services <b>108</b>, as well as to a user device <b>110</b>, over network <b>112</b>. Network <b>112</b> 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 <figref idref="DRAWINGS">FIG. 1</figref>, user <b>114</b> can access computing system <b>102</b> either directly, as indicated by arrow <b>116</b>, or through user device <b>110</b>, as indicated by arrow <b>118</b>. In either case, user interfaces <b>120</b> are generated with user input mechanisms <b>122</b>, for interaction by user <b>114</b>. User <b>114</b> illustratively interacts with user input mechanisms <b>122</b> in order to control and manipulate user device <b>110</b> and/or computing system <b>102</b>.
User device <b>110</b> can include one or more processors or servers <b>124</b>, data store <b>126</b>, user interface logic <b>128</b>, one or more client components <b>130</b> (that can be components of one or more services hosted by computing system <b>102</b>), and it can include a wide variety of other items <b>132</b>. In a scenario in which user <b>114</b> uses user device <b>110</b>, user interface logic <b>128</b> either by itself, or under the control of other items, generates user interfaces <b>120</b> and detects user interactions with user input mechanisms <b>122</b>. It can provide an indication of those interactions to other items in architecture <b>100</b>.
Computing system <b>102</b> illustratively includes one or more processors or servers <b>134</b>, electronic mail (e-mail) system <b>136</b>, calendar system <b>138</b>, user interface logic <b>140</b>, and it can include a wide variety of other computing system functionality <b>142</b>. It will be noted that calendar system <b>138</b> can be within, and part of, email system <b>136</b> or the two systems can be separate. They are shown as separate systems in <figref idref="DRAWINGS">FIG. 1</figref> for the sake of example only.
E-mail system <b>136</b> illustratively includes e-mail functionality logic <b>144</b>, data store <b>146</b> visualization logic <b>156</b>, new calendar item search system <b>158</b>, and it can include other items <b>160</b>. Data store <b>146</b> can include one or more mailboxes <b>147</b>-<b>149</b> and other items <b>154</b>. Each mailbox can include, a set of folders <b>148</b>-<b>150</b>, each of which includes messages <b>153</b>, and it can include other items <b>152</b> as well. Next calendar item search system <b>158</b> illustratively includes search initiation logic <b>162</b>, service identification logic <b>164</b>, query generation/execution logic <b>166</b>, countdown generator logic <b>168</b>, and it can include other items <b>170</b>. Service identification logic <b>164</b>, itself, can include metadata (e.g., location) identifier <b>172</b>, service identifier <b>174</b>, and other items <b>176</b>. Query generation/execution logic <b>166</b>, itself, can include calendar search logic <b>178</b>, weather search logic <b>180</b>, traffic search logic <b>182</b>, and a wide variety of other items <b>184</b>.
Calendar system <b>138</b> can include scheduling functionality logic <b>186</b>, data store <b>188</b>, and a wide variety of other calendar functionality logic <b>190</b>. Data store <b>188</b>, itself, illustratively includes user calendar data <b>192</b> corresponding to a user. User calendar data <b>192</b> can include a set of calendar items <b>194</b>-<b>196</b>, each of which appear on a day and/or at a time, and for a duration, within a user's calendar. Data store <b>188</b> can include a wide variety of other items <b>198</b> as well.
Before describing the operation of architecture <b>100</b> in more detail, a brief overview of some of the items in architecture <b>100</b>, and their operation, will first be provided. E-mail functionality logic <b>144</b> illustratively exposes interfaces (either by itself or through user interface logic <b>140</b>) that allow user <b>114</b> 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 <b>146</b> illustratively stores mailbox data <b>147</b>-<b>149</b> for different mailboxes for different users. As mentioned above, each mailbox <b>147</b> can include a set of folders <b>148</b>-<b>150</b>, each of which have one or more messages <b>152</b> in them. A number of examples of this are described in greater detail below.
Scheduling functionality logic <b>186</b> in calendar system <b>138</b> illustratively allows user <b>114</b> to schedule items on his or her calendar. When this occurs, they are represented by calendar items <b>194</b>-<b>196</b> in the user calendar data <b>192</b> corresponding to the calendar for user <b>114</b>. Other calendar functionality logic <b>190</b> allows user <b>114</b> to perform other calendar functionality, such as to send meeting requests, etc.
Next calendar item search system <b>158</b> in email system <b>136</b> illustratively uses search initiation logic <b>162</b> 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.
Query generation/execution logic <b>166</b> then uses calendar search logic <b>178</b> to search user calendar data <b>192</b> for user <b>114</b>, in calendar system <b>138</b>. It identifies the next calendar item for user <b>114</b>. Service identification logic <b>164</b> then uses metadata identifier <b>172</b> to identify metadata (such as the location) corresponding to that calendar item. Service identifier <b>174</b> can then identify other services of interest (such as weather service <b>104</b>, traffic service <b>106</b>, 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 <b>114</b> is an outdoor meeting or event, then service identifier <b>174</b> may identify that weather service <b>104</b> should be searched for weather information. In that case, weather search logic <b>180</b> illustratively searches weather service <b>104</b> 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 <b>174</b> may identify traffic service <b>106</b> as a service that should be searched for traffic information. In that case, traffic search logic <b>182</b> searches for traffic information from traffic service <b>106</b>. 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 <b>174</b> can identify a wide variety of other services that may be searched by other items <b>184</b> in query generation/execution logic <b>166</b>.
Countdown generator logic <b>168</b> generates a countdown identifier (such as indicating minutes, hours, etc.) to the scheduled start time of the user's next calendar item. Visualization logic <b>156</b> generates a visual representation of the user's next calendar item, along with the countdown indicator generated by countdown generator logic <b>168</b>. User interface logic <b>140</b> illustratively surfaces that visualization on a user interface <b>120</b> for user <b>114</b>. Some examples of this are also described in greater detail below.
<figref idref="DRAWINGS">FIG. 2</figref> is a block diagram showing one example of calendar search logic <b>178</b>, in more detail. In the example shown in <figref idref="DRAWINGS">FIG. 2</figref>, calendar search logic <b>178</b> includes next calendar item identifier logic <b>200</b>, filtering logic <b>202</b>, and it can include a wide variety of other items <b>204</b>. Next calendar item identifier logic <b>200</b> illustratively identifies the next calendar item on the calendar of user <b>114</b>. 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 <b>202</b> 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 <b>178</b> does not surface all day meetings or other day long items on the user's calendar. In that case, filtering logic <b>202</b> 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 <b>178</b> as the next calendar item for user <b>114</b>. 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.
<figref idref="DRAWINGS">FIGS. 3A and 3B</figref> (collectively referred to herein as <figref idref="DRAWINGS">FIG. 3</figref>) show a flow diagram illustrating one example of the operation of architecture <b>100</b>, shown in <figref idref="DRAWINGS">FIG. 1</figref>, in surfacing a next calendar item, for user <b>114</b>, in the mailbox display of user <b>114</b>. <figref idref="DRAWINGS">FIGS. 4A-4E</figref> show some examples of user interface displays that can be generated. <figref idref="DRAWINGS">FIGS. 1, 3, and 4A-4E</figref> will now be described in conjunction with one another.
It is first assumed that e-mail system <b>136</b> is running on computing system <b>102</b>. This is indicated by block <b>210</b> in the flow diagram of <figref idref="DRAWINGS">FIG. 3</figref>. In one example, it may be generating an e-mail display for user <b>114</b>. This is indicated by block <b>212</b>. It may be running and displaying other items, in other ways as well, and this is indicated by block <b>214</b>.
At some point, search initiation logic <b>162</b> determines whether it is time to update the next calendar item display that is displayed on the e-mail user interface display of user <b>114</b> (some examples of which are described below with respect to <figref idref="DRAWINGS">FIGS. 4A-4E</figref>). This is indicated by block <b>216</b>. 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.
Assuming that it is time to update the next calendar item display, then next calendar item identifier logic <b>200</b> in calendar search logic <b>178</b> accesses the calendar data <b>192</b> for user <b>114</b>. This is indicated by block <b>218</b>. This can be done by calendar system <b>138</b> exposing a search interface so that logic <b>178</b> can search through the user's calendar data <b>192</b>. It can be done in other ways as well.
Next calendar item identifier logic <b>200</b> then identifies a next calendar item, on the calendar of user <b>114</b>, given the current time. This is indicated by block <b>220</b>. For instance, in one example, logic <b>200</b> looks for the next calendar item that begins at or after the current time. This is indicated by block <b>222</b>. In another example, logic <b>200</b> 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 <b>200</b> 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 <b>224</b> in the flow diagram of <figref idref="DRAWINGS">FIG. 3</figref>. Logic <b>200</b> can also identify the next calendar item by searching from the end time of the previous calendar item. This is indicated by block <b>225</b>. The next calendar item, given the current time, can be identified in other ways as well, and this is indicated by block <b>226</b>.
Filtering logic <b>202</b> 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 <b>228</b>. It will be noted that filtering can take place as part of the process of identifying the next calendar item in block <b>220</b>. It is described separately for the sake of example only. For instance, in one example, filtering logic <b>202</b> filters out all day meetings as indicated by block <b>230</b>. It can apply a wide variety of other filter criteria as well, and this is indicated by block <b>232</b>. If the currently selected next calendar item is filtered out by filtering logic <b>202</b>, then the process reverts to block <b>218</b> where next calendar item identifier logic <b>200</b> accesses the calendar data for user <b>114</b> to identify the next subsequent calendar item, and processing continues at blocks <b>220</b>, <b>228</b>, etc. Determining whether the selected calendar item is filtered out is indicated by block <b>234</b> in the flow diagram of <figref idref="DRAWINGS">FIG. 3</figref>.
Once a next calendar item is selected, that is not filtered out, then service identification logic <b>164</b> determines whether any additional information should be obtained for the next calendar item, from any other services. This is indicated by block <b>236</b> in the flow diagram of <figref idref="DRAWINGS">FIG. 3</figref>. The additional information may include a wide variety of information such as metadata or chained metadata corresponding to the calendar item, and metadata identifier <b>172</b> can identify such metadata, as indicated by block <b>238</b>. The metadata can include, as an example, location <b>239</b>, time of day <b>241</b>, chained metadata such as location weather <b>243</b>, among others <b>245</b>. Service identifier <b>174</b> then identifies any other services that are to be searched, for additional information about the next identified calendar item. This is indicated by block <b>240</b>. 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 <b>104</b> can be searched to obtain weather information as indicated by block <b>242</b>. If the location is remote, then traffic service <b>106</b> can be searched to obtain traffic information, as indicated by block <b>244</b>. 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 <b>246</b>.
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.
The other search logic (such as weather search logic <b>180</b> and traffic search logic <b>182</b>) is then used to search the other sources to obtain the additional data. This is indicated by block <b>248</b>.
Countdown generator logic <b>168</b> generates, and intermittently or continually updates, a countdown timer. This is indicated by block <b>250</b>. For instance, if the identified next calendar item starts in 35 minutes, then countdown generator logic <b>168</b> 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.
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 <b>156</b> illustratively generates a representation of the next calendar item that has been identified. This is indicated by block <b>252</b>. The representation can include a textual description or title <b>254</b> for the next calendar item. It can include the countdown timer indicator <b>256</b>, it can include the other information such as weather information <b>258</b>, traffic or travel time information <b>260</b>, and it can include a wide variety of other information <b>262</b>.
Visualization logic <b>156</b> then surfaces the representation on the user's e-mail display. This is indicated by block <b>264</b>. 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 <b>266</b> in the flow diagram of <figref idref="DRAWINGS">FIG. 3</figref>.
In one example, it is displayed above a messages pane in the user's mailbox, and this is indicated by block <b>268</b>. Again, examples of this are illustrated below in <figref idref="DRAWINGS">FIGS. 4A-4B</figref>. 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 <b>270</b>. Also, in one example, the representation is displayed without any scheduling functionality, as indicated by block <b>272</b>. 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.
The representation can be surfaced in the user's e-mail display in other ways as well. This is indicated by block <b>274</b>. <figref idref="DRAWINGS">FIG. 4A</figref> shows one example of a surfaced representation. It can be seen in <figref idref="DRAWINGS">FIG. 4A</figref> that a user's e-mail display <b>276</b> is being shown. The e-mail display includes a folders pane <b>278</b> that shows various folders for the user, such as the user's inbox, outbox, sent items, etc. It also shows a messages pane <b>280</b> that shows the messages in the particular folder selected in pane <b>278</b>. It can be seen in <figref idref="DRAWINGS">FIG. 4A</figref> that the inbox folder <b>282</b> has been selected so that the messages in the user's inbox are shown in pane <b>280</b>. Display <b>276</b> also includes a reading pane <b>284</b> that shows a message that is selected from the messages pane <b>280</b>.
<figref idref="DRAWINGS">FIG. 4A</figref> also shows that a representation of the next calendar item, shown generally at <b>286</b>, is displayed on the e-mail display <b>276</b>. In the example illustrated, it is located below the heading or title of the messages pane <b>280</b> (below the word “Inbox”) but above the first message in the messages pane <b>280</b>. It includes a number of things, such as a calendar item symbol <b>288</b> indicating that it corresponds to a calendar item. A textual description “next” represented by number <b>290</b>, indicating that it is the next calendar item on the user's calendar, and a brief textual description <b>292</b> briefly describing the calendar item. The textual description <b>292</b> 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 <b>286</b> also illustratively includes a countdown indicator <b>294</b> that indicates the countdown time which is a time before the next calendar item is scheduled to occur.
In one example, the representation <b>286</b> 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 <b>286</b> 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 <b>286</b> 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.
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.
Also, in one example, representation <b>286</b> is interactive, in that the user can interact with it in certain ways to perform certain actions. User interface logic <b>140</b> may illustratively detect a user interaction and provide it to visualization logic <b>156</b> 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 <b>300</b> in the flow diagram of <figref idref="DRAWINGS">FIG. 3</figref>. Performing interaction processing is indicated by block <b>302</b>. 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 <b>304</b>) on representation <b>286</b>, this may cause visualization logic <b>156</b> to display additional information about the next calendar item. This is indicated by block <b>306</b> in the flow diagram of <figref idref="DRAWINGS">FIG. 3</figref>. 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 <b>286</b>, then visualization logic <b>156</b> may show other calendar items (such as those coming after the next calendar item currently displayed). This is indicated by block <b>308</b> in the flow diagram of <figref idref="DRAWINGS">FIG. 3</figref>. Interaction processing can be performed in a wide variety of other ways as well, and this is indicated by block <b>310</b>.
<figref idref="DRAWINGS">FIGS. 4B-4E</figref> show examples of different interfaces and different interaction processing. <figref idref="DRAWINGS">FIG. 4B</figref> is similar to FIG. A, and similar items are similarly numbered. However, <figref idref="DRAWINGS">FIG. 4B</figref> shows that the user has now actuated actuatable display element <b>304</b>. In the example shown in <figref idref="DRAWINGS">FIG. 4B</figref>, visualization logic <b>156</b> then interacts with query generation/execution logic <b>166</b> and calendar search logic <b>178</b> to search the user calendar data <b>192</b> for user <b>114</b> to show additional calendar items occurring after the next calendar item represented by visual representation <b>286</b>. In the example shown in <figref idref="DRAWINGS">FIG. 4B</figref>, this information is shown using a display element <b>312</b>. Display element <b>312</b> shows a calendar timeline <b>314</b> with calendar items displayed along the timeline <b>314</b>, at the scheduled start time and for the scheduled duration. Thus, the calendar item <b>316</b> corresponds to that represented by visual representation <b>286</b>. Additional calendar items <b>318</b>, <b>320</b> and <b>322</b> are shown for the sake of example only.
<figref idref="DRAWINGS">FIG. 4C</figref> is also similar to FIG. A, and similar items are similarly numbered. However, instead of displaying the next calendar item representation <b>286</b> on the top of the messages pane <b>280</b>, it is displayed in a right panel <b>326</b> located to the right of reading pane <b>284</b>. The next calendar item representation <b>286</b> includes some of the same items shown in <figref idref="DRAWINGS">FIG. 4A</figref>, and they are similarly numbered but it also specifically illustrates the start time <b>328</b>. Also, it shows a reminder element <b>330</b> 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 <b>332</b> showing a location where the calendar item is to occur. In addition, it shows later calendar items illustrated generally at <b>334</b> as well, for the same day, and for a next subsequent day. It includes a countdown timer shown generally at <b>336</b>, for each of those items.
<figref idref="DRAWINGS">FIGS. 4D-4F</figref> show yet another example of displaying the next calendar item. <figref idref="DRAWINGS">FIG. 4D</figref> is similar to FIG. A, and similar items are similarly numbered. However, instead of having the next calendar item representation <b>286</b> displayed as shown in previous figures, it is now displayed on a right rail display shown generally at <b>340</b>. 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 <b>286</b>. The start time is indicated, and a category (such as a meal category) is illustrated as well.
<figref idref="DRAWINGS">FIG. 4E</figref> shows that, when the user interacts with the right rail display <b>340</b>, a next item panel slides in from the right of the display. The panel is illustrated generally at <b>342</b>. It now shows more detailed information corresponding to the next calendar item representation <b>286</b>, and the additional calendar items displayed along the timeline. In the example shown in <figref idref="DRAWINGS">FIG. 4E</figref>, 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 <b>156</b> generates an additional visualization showing additional information. <figref idref="DRAWINGS">FIG. 4F</figref> shows one example of this.
In <figref idref="DRAWINGS">FIG. 4F</figref>, the user has actuated the visual display element <b>344</b> corresponding to a calendar item entitled “Marketing Sync”. When this occurs, visualization logic <b>156</b> displays additional information in a corresponding display <b>346</b>. 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.
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.
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.
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.
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.
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.
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.
<figref idref="DRAWINGS">FIG. 5</figref> is a block diagram of architecture <b>100</b>, shown in <figref idref="DRAWINGS">FIG. 1</figref>, except that its elements are disposed in a cloud computing architecture <b>500</b>. 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 <b>100</b> 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.
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.
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.
In the example shown in <figref idref="DRAWINGS">FIG. 5</figref>, some items are similar to those shown in <figref idref="DRAWINGS">FIG. 1</figref> and they are similarly numbered. <figref idref="DRAWINGS">FIG. 5</figref> specifically shows that computing system <b>102</b> and services <b>104</b>-<b>108</b> can be located in cloud <b>502</b> (which can be public, private, or a combination where portions are public while others are private). Therefore, user <b>114</b> uses user device <b>110</b> to access those systems through cloud <b>502</b>.
<figref idref="DRAWINGS">FIG. 5</figref> also depicts another example of a cloud architecture. <figref idref="DRAWINGS">FIG. 5</figref> shows that it is also contemplated that some elements of computing system <b>102</b> can be disposed in cloud <b>502</b> while others are not. By way of example, data stores <b>146</b>, <b>188</b> can be disposed outside of cloud <b>502</b>, and accessed through cloud <b>502</b>. In another example, email system <b>136</b> can be outside of cloud <b>502</b>. Regardless of where they are located, they can be accessed directly by device <b>110</b>, 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.
It will also be noted that architecture <b>100</b>, 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.
<figref idref="DRAWINGS">FIG. 6</figref> 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 <b>16</b>, in which the present system (or parts of it) can be deployed. <figref idref="DRAWINGS">FIGS. 7-8</figref> are examples of handheld or mobile devices.
<figref idref="DRAWINGS">FIG. 6</figref> provides a general block diagram of the components of a client device <b>16</b> that can run components of architecture <b>100</b> or that interacts with architecture <b>100</b>, or both. In the device <b>16</b>, a communications link <b>13</b> 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 <b>13</b> 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×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.
In other examples, applications or systems are received on a removable Secure Digital (SD) card that is connected to a SD card interface <b>15</b>. SD card interface <b>15</b> and communication links <b>13</b> communicate with a processor <b>17</b> (which can also embody processors or servers from previous FIGS.) along a bus <b>19</b> that is also connected to memory <b>21</b> and input/output (I/O) components <b>23</b>, as well as clock <b>25</b> and location system <b>27</b>.
I/O components <b>23</b>, in one embodiment, are provided to facilitate input and output operations. I/O components <b>23</b> for various embodiments of the device <b>16</b> 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 <b>23</b> can be used as well.
Clock <b>25</b> illustratively comprises a real time clock component that outputs a time and date. It can also, illustratively, provide timing functions for processor <b>17</b>.
Location system <b>27</b> illustratively includes a component that outputs a current geographical location of device <b>16</b>. 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.
Memory <b>21</b> stores operating system <b>29</b>, network settings <b>31</b>, applications <b>33</b>, application configuration settings <b>35</b>, data store <b>37</b>, communication drivers <b>39</b>, and communication configuration settings <b>41</b>. Memory <b>21</b> can include all types of tangible volatile and non-volatile computer-readable memory devices. It can also include computer storage media (described below). Memory <b>21</b> stores computer readable instructions that, when executed by processor <b>17</b>, cause the processor to perform computer-implemented steps or functions according to the instructions. Similarly, device <b>16</b> can have a client system <b>24</b> which can run various applications or embody parts or all of architecture <b>100</b>. Processor <b>17</b> can be activated by other components to facilitate their functionality as well.
Examples of the network settings <b>31</b> include things such as proxy information, Internet connection information, and mappings. Application configuration settings <b>35</b> include settings that tailor the application for a specific enterprise or user. Communication configuration settings <b>41</b> provide parameters for communicating with other computers and include items such as GPRS parameters, SMS parameters, connection user names and passwords.
Applications <b>33</b> can be applications that have previously been stored on the device <b>16</b> or applications that are installed during use, although these can be part of operating system <b>29</b>, or hosted external to device <b>16</b>, as well.
<figref idref="DRAWINGS">FIG. 7</figref> shows one example in which device <b>16</b> is a tablet computer <b>600</b>. In <figref idref="DRAWINGS">FIG. 7</figref>, computer <b>600</b> is shown with user interface display screen <b>602</b>. Screen <b>602</b> 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 <b>600</b> can also illustratively receive voice inputs as well.
<figref idref="DRAWINGS">FIG. 8</figref> shows that the device can be a smart phone <b>71</b>. Smart phone <b>71</b> has a touch sensitive display <b>73</b> that displays icons or tiles or other user input mechanisms <b>75</b>. Mechanisms <b>75</b> can be used by a user to run applications, make calls, perform data transfer operations, etc. In general, smart phone <b>71</b> is built on a mobile operating system and offers more advanced computing capability and connectivity than a feature phone.
Note that other forms of the devices <b>16</b> are possible.
<figref idref="DRAWINGS">FIG. 9</figref> is one example of a computing environment in which architecture <b>100</b>, or parts of it, (for example) can be deployed. With reference to <figref idref="DRAWINGS">FIG. 9</figref>, an example system for implementing some embodiments includes a general-purpose computing device in the form of a computer <b>810</b>. Components of computer <b>810</b> may include, but are not limited to, a processing unit <b>820</b> (which can comprise processors or servers from previous Figures), a system memory <b>830</b>, and a system bus <b>821</b> that couples various system components including the system memory to the processing unit <b>820</b>. The system bus <b>821</b> 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 <figref idref="DRAWINGS">FIG. 1</figref> can be deployed in corresponding portions of <figref idref="DRAWINGS">FIG. 9</figref>.
Computer <b>810</b> typically includes a variety of computer readable media. Computer readable media can be any available media that can be accessed by computer <b>810</b> 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 <b>810</b>. 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.
The system memory <b>830</b> includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) <b>831</b> and random access memory (RAM) <b>832</b>. A basic input/output system <b>833</b> (BIOS), containing the basic routines that help to transfer information between elements within computer <b>810</b>, such as during start-up, is typically stored in ROM <b>831</b>. RAM <b>832</b> typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit <b>820</b>. By way of example, and not limitation, <figref idref="DRAWINGS">FIG. 9</figref> illustrates operating system <b>834</b>, application programs <b>835</b>, other program modules <b>836</b>, and program data <b>837</b>.
The computer <b>810</b> may also include other removable/non-removable volatile/nonvolatile computer storage media. By way of example only, <figref idref="DRAWINGS">FIG. 9</figref> illustrates a hard disk drive <b>841</b> that reads from or writes to non-removable, nonvolatile magnetic media, and an optical disk drive <b>855</b> that reads from or writes to a removable, nonvolatile optical disk <b>856</b> 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 <b>841</b> is typically connected to the system bus <b>821</b> through a non-removable memory interface such as interface <b>840</b>, and optical disk drive <b>855</b> are typically connected to the system bus <b>821</b> by a removable memory interface, such as interface <b>850</b>.
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.
The drives and their associated computer storage media discussed above and illustrated in <figref idref="DRAWINGS">FIG. 9</figref>, provide storage of computer readable instructions, data structures, program modules and other data for the computer <b>810</b>. In <figref idref="DRAWINGS">FIG. 9</figref>, for example, hard disk drive <b>841</b> is illustrated as storing operating system <b>844</b>, application programs <b>845</b>, other program modules <b>846</b>, and program data <b>847</b>. Note that these components can either be the same as or different from operating system <b>834</b>, application programs <b>835</b>, other program modules <b>836</b>, and program data <b>837</b>. Operating system <b>844</b>, application programs <b>845</b>, other program modules <b>846</b>, and program data <b>847</b> are given different numbers here to illustrate that, at a minimum, they are different copies.
A user may enter commands and information into the computer <b>810</b> through input devices such as a keyboard <b>862</b>, a microphone <b>863</b>, and a pointing device <b>861</b>, 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 <b>820</b> through a user input interface <b>860</b> 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 <b>891</b> or other type of display device is also connected to the system bus <b>821</b> via an interface, such as a video interface <b>890</b>. In addition to the monitor, computers may also include other peripheral output devices such as speakers <b>897</b> and printer <b>896</b>, which may be connected through an output peripheral interface <b>895</b>.
The computer <b>810</b> is operated in a networked environment using logical connections to one or more remote computers, such as a remote computer <b>880</b>. The remote computer <b>880</b> 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 <b>810</b>. The logical connections depicted in <figref idref="DRAWINGS">FIG. 10</figref> include a local area network (LAN) <b>871</b> and a wide area network (WAN) <b>873</b>, but may also include other networks. Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets and the Internet.
When used in a LAN networking environment, the computer <b>810</b> is connected to the LAN <b>871</b> through a network interface or adapter <b>870</b>. When used in a WAN networking environment, the computer <b>810</b> typically includes a modem <b>872</b> or other means for establishing communications over the WAN <b>873</b>, such as the Internet. The modem <b>872</b>, which may be internal or external, may be connected to the system bus <b>821</b> via the user input interface <b>860</b>, or other appropriate mechanism. In a networked environment, program modules depicted relative to the computer <b>810</b>, or portions thereof, may be stored in the remote memory storage device. By way of example, and not limitation, <figref idref="DRAWINGS">FIG. 9</figref> illustrates remote application programs <b>885</b> as residing on remote computer <b>880</b>. 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.
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.
Example 1 is a computing system, comprising:
electronic mail (email) functionality displaying an email display corresponding to a user;
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
visualization logic that surfaces the next item representation on the email display.
Example 2 is the computing system of any or all previous examples wherein the next calendar item search system comprises:
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.
Example 3 is the computing system of any or all previous examples wherein the next calendar item search system comprises:
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.
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.
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.
Example 6 is the computing system of any or all previous examples wherein the next calendar item search system comprises:
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.
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.
Example 8 is the computing system of any or all previous examples wherein the next calendar item search system comprises:
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.
Example 9 is the computing system of any or all previous examples wherein the next calendar item search system comprises:
a metadata identifier configured to identify metadata corresponding to of the identified next calendar item; and
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.
Example 10 is the computing system of any or all previous examples wherein the query generation/execution logic comprises:
search logic that searches the identified service to obtain the additional information corresponding to the identified next calendar item.
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.
Example 12 is a computer implemented method, comprising:
displaying an email display corresponding to a user;
identifying a next calendar item on a calendar for the user;
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
surfacing the next item representation on the email display.
Example 13 is the computer implemented method of any or all previous examples wherein identifying the next calendar item comprises:
searching calendar data, for the calendar corresponding to the user, to identify the next calendar item, relative to a current time.
Example 14 is the computer implemented method of any or all previous examples wherein identifying the next calendar item comprises:
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
updating the countdown time indicator on the surfaced next item representation.
Example 15 is the computer implemented method of any or all previous examples wherein updating the countdown time indicator comprises:
updating the countdown time indicator until a threshold time period after the scheduled start time of the identified next calendar item.
Example 16 is the computer implemented method of any or all previous examples wherein updating the countdown time indicator comprises:
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.
Example 17 is the computer implemented method of any or all previous examples wherein identifying the next calendar item comprises:
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
if the next calendar item is filtered out, identifying a subsequent calendar item as the identified next calendar item.
Example 18 is the computer implemented method of claim <b>14</b> wherein identifying the next calendar item comprises: <ul id="ul0001" list-style="none"><li id="ul0001-0001" num="0000"><ul id="ul0002" list-style="none"><li id="ul0002-0001" num="0121">identifying metadata corresponding to the identified next calendar item;</li><li id="ul0002-0002" num="0122">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</li><li id="ul0002-0003" num="0123">searching the identified service to obtain the additional information corresponding to the identified next calendar item.</li></ul></li></ul>
Example 19 is the computer implemented method of any or all previous examples wherein surfacing the next item representation comprises:
surfacing the additional information on the next item representation on the email display.
Example 20 is a computing system, comprising:
electronic mail (email) functionality displaying an email display corresponding to a user;
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;
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
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.
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.
Contents4
17 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15 Sheet 16 Sheet 17
Every citation, both waysCites: the store holds 109 of 110
| Document | Relation | Office | Cited during |
|---|---|---|---|
| WO2023039418A1 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US10127188B2 | Cites | United States of America | Search report |
| US10304347B2 | Cites | United States of America | Search report |
| US2003167310A1 | Cites | United States of America | Applicant |
| US2004044583A1 | Cites | United States of America | Search report |
| US2007198314A1 | Cites | United States of America | Search report |
| US2007226204A1 | Cites | United States of America | Search report |
| US2007233291A1 | Cites | United States of America | Search report |
| US2007255593A1 | Cites | United States of America | Search report |
| US2007279247A1 | Cites | United States of America | Search report |
| US2008034047A1 | Cites | United States of America | Search report |
| US2008201647A1 | Cites | United States of America | Search report |
| US2009158200A1 | Cites | United States of America | Search report |
| US2010159967A1 | Cites | United States of America | Search report |
| US2010241663A1 | Cites | United States of America | Search report |
| US2010254223A1 | Cites | United States of America | Search report |
| US2010274865A1 | Cites | United States of America | Search report |
| US2011255379A1 | Cites | United States of America | Search report |
| US2011296312A1 | Cites | United States of America | Search report |
| US2012136572A1 | Cites | United States of America | Search report |
| US2012179606A1 | Cites | United States of America | Applicant |
| US2012191500A1 | Cites | United States of America | Search report |
| US2012239451A1 | Cites | United States of America | Search report |
| US2012242488A1 | Cites | United States of America | Search report |
| US2013042169A1 | Cites | United States of America | Search report |
| US2013151149A1 | Cites | United States of America | Search report |
| US2013282836A1 | Cites | United States of America | Search report |
| US2013297468A1 | Cites | United States of America | Search report |
| US2014006993A1 | Cites | United States of America | Search report |
| US2014059487A1 | Cites | United States of America | Search report |
| US2014244734A1 | Cites | United States of America | Search report |
| US2014278086A1 | Cites | United States of America | Search report |
| US2014293755A1 | Cites | United States of America | Search report |
| US2015007056A1 | Cites | United States of America | Search report |
| US2015127403A1 | Cites | United States of America | Search report |
| US2015135088A1 | Cites | United States of America | Search report |
| US2015160799A1 | Cites | United States of America | Search report |
| US2016003637A1 | Cites | United States of America | Search report |
| US2016012368A1 | Cites | United States of America | Search report |
| US2016034133A1 | Cites | United States of America | Search report |
| US2016042324A1 | Cites | United States of America | Search report |
| US2016063450A1 | Cites | United States of America | Search report |
| US2016224752A1 | Cites | United States of America | Search report |
| US2016234276A1 | Cites | United States of America | Search report |
| US2016239354A1 | Cites | United States of America | Search report |
| US2016267228A1 | Cites | United States of America | Search report |
| US2016277330A1 | Cites | United States of America | Search report |
| US2016358125A1 | Cites | United States of America | Search report |
| US2016360485A1 | Cites | United States of America | Search report |
| US5790974A | Cites | United States of America | Search report |
| US6351763B1 | Cites | United States of America | Search report |
| US7017292B1 | Cites | United States of America | Search report |
| US7035169B2 | Cites | United States of America | Search report |
| US7363590B2 | Cites | United States of America | Applicant |
| US7584253B2 | Cites | United States of America | Applicant |
| US8069417B2 | Cites | United States of America | Applicant |
| US8244566B1 | Cites | United States of America | Search report |
| US8296686B1 | Cites | United States of America | Search report |
| US8745141B2 | Cites | United States of America | Applicant |
| US8798445B2 | Cites | United States of America | Search report |
| US8839139B2 | Cites | United States of America | Applicant |
| US8910067B1 | Cites | United States of America | Search report |
| US9552560B1 | Cites | United States of America | Search report |
| US9614804B2 | Cites | United States of America | Search report |
| US20030167310A1 | Cites | United States of America | Applicant |
| US20040044583A1 | Cites | United States of America | Search report |
| US20070198314A1 | Cites | United States of America | Search report |
| US20070226204A1 | Cites | United States of America | Search report |
| US20070233291A1 | Cites | United States of America | Search report |
| US20070255593A1 | Cites | United States of America | Search report |
| US20070279247A1 | Cites | United States of America | Search report |
| US20080034047A1 | Cites | United States of America | Search report |
| US20080201647A1 | Cites | United States of America | Search report |
| US20090158200A1 | Cites | United States of America | Search report |
| US20100159967A1 | Cites | United States of America | Search report |
| US20100241663A1 | Cites | United States of America | Search report |
| US20100254223A1 | Cites | United States of America | Search report |
| US20100274865A1 | Cites | United States of America | Search report |
| US20110255379A1 | Cites | United States of America | Search report |
| US20110296312A1 | Cites | United States of America | Search report |
| US20120136572A1 | Cites | United States of America | Search report |
| US20120179606A1 | Cites | United States of America | Applicant |
| US20120191500A1 | Cites | United States of America | Search report |
| US20120239451A1 | Cites | United States of America | Search report |
| US20120242488A1 | Cites | United States of America | Search report |
| US20130042169A1 | Cites | United States of America | Search report |
| US20130151149A1 | Cites | United States of America | Search report |
| US20130282836A1 | Cites | United States of America | Search report |
| US20130297468A1 | Cites | United States of America | Search report |
| US20140006993A1 | Cites | United States of America | Search report |
| US20140059487A1 | Cites | United States of America | Search report |
| US20140244734A1 | Cites | United States of America | Search report |
| US20140278086A1 | Cites | United States of America | Search report |
| US20140293755A1 | Cites | United States of America | Search report |
| US20150007056A1 | Cites | United States of America | Search report |
| US20150127403A1 | Cites | United States of America | Search report |
| US20150135088A1 | Cites | United States of America | Search report |
| US20150160799A1 | Cites | United States of America | Search report |
| US20160003637A1 | Cites | United States of America | Search report |
| US20160012368A1 | Cites | United States of America | Search report |
7 members in 4 offices
Priority claims2
| Document | Office | Kind | Date |
|---|---|---|---|
| 201715605127 | United States of America | A | |
| US201715605127 | – | – | – |
Members7
| Document | Office | Kind | |
|---|---|---|---|
| US2018341923A1 | United States of America | A1 | |
| WO2018217379A1 | World Intellectual Property Organization (WIPO) | A1 | |
| CN110663052A | China | A | |
| EP3631713A1 | European Patent Office (EPO) | A1 | |
| US10692049B2This record | United States of America | B2 | |
| US2020293998A1 | United States of America | A1 | |
| CN110663052B | China | B |
14 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Maintenance fee paymentMAFP | MAFP | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| Information on status: patent application and granting procedure in generalPUBLICATIONS -- ISSUE FEE PAYMENT VERIFIEDSTPP | STPP | |
| Information on status: patent application and granting procedure in generalNOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONSSTPP | STPP | |
| Information on status: patent application and granting procedure in generalNOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONSSTPP | STPP | |
| Information on status: patent application and granting procedure in generalRESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINERSTPP | STPP | |
| Information on status: patent application and granting procedure in generalNON FINAL ACTION MAILEDSTPP | STPP | |
| Information on status: patent application and granting procedure in generalDOCKETED NEW CASE - READY FOR EXAMINATIONSTPP | STPP | |
| Information on status: patent application and granting procedure in generalADVISORY ACTION MAILEDSTPP | STPP | |
| Information on status: patent application and granting procedure in generalADVISORY ACTION MAILEDSTPP | STPP | |
| Information on status: patent application and granting procedure in generalFINAL REJECTION MAILEDSTPP | STPP | |
| Information on status: patent application and granting procedure in generalRESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINERSTPP | STPP | |
| Information on status: patent application and granting procedure in generalNON FINAL ACTION MAILEDSTPP | STPP | |
| AssignmentAS | AS |
Numbers
- Publication
- 10692049
- Publication, DOCDB
- 10692049
- Publication, EPODOC
- US10692049
- Application
- 15605127
- Application, DOCDB
- 201715605127
- Application, EPODOC
- US201715605127
Titles
- English
- Displaying a countdown timer for a next calendar event in an electronic mail inbox
Patent term adjustment
- A delay
- +230 daysthe office missed an examination deadline
- Applicant delay
- −8 days
- Net adjustment
- 222 days
Classification
- CPC, 4
- G06Q10/1093
- G06Q10/107
- G06F16/2477
- G06F3/0482
- IPC, 3
- G06Q10 10
- G06F16 2458
- G06F3 0482
- USPC, 1
- 340988000