US20190149505A1 - Presenting tasks in email application and calendar application - Google Patents
Presenting tasks in email application and calendar application Download PDFInfo
- Publication number
- US20190149505A1 US20190149505A1 US16/245,864 US201916245864A US2019149505A1 US 20190149505 A1 US20190149505 A1 US 20190149505A1 US 201916245864 A US201916245864 A US 201916245864A US 2019149505 A1 US2019149505 A1 US 2019149505A1
- Authority
- US
- United States
- Prior art keywords
- task
- tasks
- application
- date
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/56—Unified messaging, e.g. interactions between e-mail, instant messaging or converged IP messaging [CPM]
-
- H04L51/36—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9577—Optimising the visualization of content, e.g. distillation of HTML documents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04842—Selection of displayed objects or displayed text elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/107—Computer-aided management of electronic mailing [e-mailing]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/109—Time management, e.g. calendars, reminders, meetings or time accounting
- G06Q10/1093—Calendar-based scheduling for persons or groups
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/109—Time management, e.g. calendars, reminders, meetings or time accounting
- G06Q10/1093—Calendar-based scheduling for persons or groups
- G06Q10/1097—Task assignment
Definitions
- This description relates to presenting tasks in computer applications.
- Task applications may maintain and present tasks to users. Users may create tasks, and indicate when the tasks has been completed. However, users may forget to visit and/or launch the task application. If the user forgets to visit and/or launch the task application, then the benefit of the task application may be lost.
- a computer system may store tasks in a task database.
- An email application and a calendar application may access the task database, and they both may present tasks from the task database.
- the presentation of the tasks by the email application and the calendar application may increase the likelihood that the tasks are seen and acted upon by a user.
- a non-transitory computer-readable storage medium may comprise instructions stored thereon for presenting tasks in an email application and a calendar application.
- the instructions when executed by at least one processor, may be configured to cause a computing system to at least generate an email application and generate a calendar application.
- the email application may be configured to retrieve at least one task from a task database, retrieve at least one email from an email database, and concurrently present the at least one retrieved task and the at least one retrieved email in an email user interface, the at least one retrieved task and the at least one retrieved email being adjacent and non-overlapping within the email user interface.
- the calendar application may be configured to retrieve the at least one task from the task database, retrieve at least one appointment from an appointment database, and concurrently present the at least one retrieved task and the at least one retrieved appointment in a calendar user interface, the at least one retrieved task and the at least one retrieved appointment being adjacent and non-overlapping within the calendar user interface.
- a non-transitory computer-readable storage medium may comprise instructions stored thereon for presenting tasks to facilitate performing the tasks by due dates.
- the instructions when executed by at least one processor, may be configured to cause a computing system to at least retrieve tasks from a task database, each of the tasks including a task title, a task creation time, a task due date, a task done state, and a task completion date, and generate a calendar application.
- the calendar application may be configured to present at least one task that has a task done state of complete on a day corresponding to the task's task completion date, present at least one task that has a task done state of incomplete, and a task due date of a previous day, on a current day, present at least one task that has a task done state of incomplete, and a task due date of the current day, on the current day, and present at least one task that has a task done state of incomplete, and a task due date of a future day, on a day corresponding to the task's task due date.
- a non-transitory computer-readable storage medium may comprise instructions stored thereon for presenting tasks in an email application and a calendar application.
- the instructions when executed by at least one processor, may be configured to cause a computing system to at least generate an email application and generate a calendar application.
- the email application may be configured to retrieve multiple tasks from a task database, retrieve multiple emails from an email database, and concurrently present the multiple tasks and the multiple emails in an order based on dates determined for the multiple tasks and the multiple emails. The dates for each of the multiple emails may be determined based on an email received date.
- the dates for each of the multiple tasks may be determined by assigning, to tasks that have a task done state of complete, a day corresponding to the tasks' task completion dates, assigning a current date to tasks that have a task done state of incomplete and a task due date of a previous day, assigning the current date to tasks that have a task done state of incomplete and a task due date of the current date, and assigning the current date to tasks that have a task done state of incomplete and no task due date.
- the calendar application may be configured to retrieve the multiple tasks from the task database, retrieve multiple appointments from an appointment database, and concurrently present the tasks that have the task done state of complete on the days corresponding to the tasks' respective task completion dates, tasks that have the task done state of incomplete, and the task due date of the previous day, on the current day, tasks that have the task done state of incomplete, and the task due date of the current day, on the current day, and tasks that have the task done state of incomplete, and the task due date of a future day, on the days corresponding to the tasks' respective task due dates.
- FIG. 1 is a diagram of a computing system for presenting tasks in an email application and in a calendar application according to an example implementation.
- FIG. 2 is a flowchart of a method for presenting tasks in the email application and the calendar application according to an example implementation.
- FIG. 3 is a flowchart of a method for presenting tasks to facilitate performing the tasks by due dates according to an example implementation.
- FIG. 4 is a flowchart of a method for presenting tasks in an email application and a calendar application according to an example implementation.
- FIG. 5 is a state diagram showing states of a task according to an example implementation.
- FIG. 6 shows the email application presenting tasks and emails according to an example implementation.
- FIG. 7 shows the calendar application presenting tasks and appointments according to an example implementation.
- FIG. 8 shows an example of a computer device and a mobile computer device that can be used to implement the techniques described here.
- FIG. 1 is a diagram of a computing system 100 for presenting tasks in an email application and in a calendar application according to an example implementation.
- the computing system 100 which may include a desktop computer, a laptop computer, a tablet computer, a smartphone, or a networked system of devices that distributes the functions described herein, may include a calendar application 102 , an email application 104 , at least one processor 106 for executing instructions 132 stored in memory 108 to launch the calendar application 102 and email application 104 , the at least one memory 108 storing instructions 132 , an email database 134 , and appointment database 150 , and a task database 158 , and one or more input/output modules 110 .
- the calendar application 102 and email application 104 may read or retrieve from, and write to, the same task database 158 , causing the fields, attributes, and/or status of the tasks to be synchronized between the calendar application 102 and the email application 104 .
- the calendar application 102 may present tasks and appointments to a user.
- the tasks and appointments may have been generated based on inputs from the user into a task application, the calendar application 102 , and/or the email application 104 , or may have been generated based on emails or other received communications.
- the calendar application 102 may include a task retriever 112 .
- the task retriever 112 may retrieve tasks, such as at least one task 160 , from a task database 158 included in the at least one memory 108 .
- the tasks 160 may each include any combination of a task title 162 describing the task 160 , a task creation time 164 indicating a time at which the task 160 was created, a task due date 166 indicating a date on which the task 160 should be performed, a task done state 168 indicating whether the task 160 has been completed, and a task completion date 170 indicating when the task 160 was completed. If the task 160 does not have a due date, then the task due date 166 may be null and/or void. If the task 160 has not been completed, then the task completion date 170 may be null and/or void.
- the calendar application 102 may also include an appointment retriever 114 .
- the appointment retriever 114 may retrieve appointments, such as at least one appointment 152 , from an appointment database 150 included in the at least one memory 108 .
- the appointments 152 may include, for example, a description 154 describing the appointment, and a date 156 indicating the date and/or time of the appointment 152 , which may include a start time and/or an end time.
- the calendar application 102 may include a calendar graphical user interface (GUI) generator 116 .
- the calendar GUI generator 116 may generate a calendar GUI for presentation to and interaction with a user.
- the GUI generator 116 may generate a calendar user interface such as a calendar interface 700 , shown in FIG. 7 , which presents tasks and appointments to the user.
- the calendar GUI may concurrently present at least one retrieved task 160 and/or multiple tasks, and at least one retrieved appointment 152 and/or multiple appointments to the user.
- the tasks 160 and appointments 152 may have, when presented by the calendar GUI, a same format and/or shape, such as all being rectangular, with same dimensions (length and width) or one of the dimensions varying based on the time duration of the appointment 152 , and may be adjacent to each other and/or non-overlapping.
- Tasks 160 that have been completed may have visual indicators that they have been completed, such as by the text in the task 160 presented by the calendar GUI being lined through.
- the calendar application 102 may include a status updater 118 .
- the status updater 118 may update the status of tasks 160 and/or appointments 152 .
- the status updater 118 may, for example, update the task done state 168 and/or the task completion date 170 of tasks 160 in response to user input into a calendar GUI.
- the calendar application 102 may include a query engine 120 .
- the query engine 120 may query tasks 160 stored in the task database 158 for tasks 160 that should be presented for a given day, such as the current day.
- the query engine 120 may query the task database 158 for tasks that should be presented on a given day, such as the current day.
- Tasks that should be presented on a current day may include tasks for which the done state 168 is incomplete and have no due date and/or the due date 166 is null or void, tasks for which the done state is incomplete and the due date is a previous day, and tasks for which the done state is incomplete and the due date is the current day.
- the query engine 120 may perform a query the first time the calendar application 102 is launched each day.
- the query may determine which tasks 160 to present for the current day by finding tasks that have the task done state 168 of incomplete and no due date 166 , tasks that have the task done state 168 of incomplete and the task due date 166 of the previous day, and tasks 160 that have the task done state 168 of incomplete and the task due date 166 of the current day.
- the tasks may be ordered and/or sorted based on their creation time 164 .
- Tasks 160 that are incomplete may be sorted, ordered, and/or presented based on their task due dates 166
- tasks 160 that are incomplete and have same task due dates 166 may be ordered, sorted, and/or presented based on their creation times 164 .
- the calendar application 102 and/or query engine 120 may not perform, on a second or subsequent launch of the calendar application on a given day, the query to determine which tasks 160 to present for the current day.
- the calendar application 102 may present tasks for which the done state 168 is complete on a date corresponding to the date identified by the completion date 170 .
- the calendar application 102 may also present tasks for which the done state 168 is incomplete and the due date 166 is a future date on a date corresponding to the due date 166 .
- the email application 104 may present tasks 160 and emails 136 to a user.
- the emails 136 may have been received from an external email server, and may have been received via the Internet.
- the email application 104 may intersperse the tasks 160 and emails 136 , and may present tasks 160 that should be performed on the current day near a top of a list of emails to increase the likelihood that the tasks that should be performed on the current day are seen and acted upon by the user.
- the email application 104 may include a task retriever 122 .
- the task retriever 122 may retrieve tasks 160 from the task database 158 included in the memory 108 .
- the email application 104 may include an email retriever 124 .
- the email retriever 124 may retrieve emails 136 from the email database 134 included in the memory 108 .
- the emails 136 may each include a header 138 , a body 146 , and a state 148 .
- the header 138 may include, for example, a from field 140 identifying a sender of the email 136 , a to field 142 identifying a recipient of the email 136 , and a received date field 144 indicating a date on which the email 136 was received.
- the body 146 of the email 136 may include any text and/or attachments included in the email 136 .
- the state 148 may indicate whether or not the email 136 has been read.
- the email application 104 may include an email graphical user interface (GUI) generator 126 .
- the email GUI generator 126 may generate an email GUI, or other user interface, for the user to view and provide input to emails and tasks.
- the GUI generator 126 may generate and present to the user, for example, an email user interface including an inbox such as the inbox 600 shown in FIG. 6 .
- the email GUI may concurrently present at least one retrieved task 160 and/or multiple tasks, and at least one retrieved email 136 and/or multiple emails, to the user in a combined list.
- the tasks 160 and emails 136 may have, when presented by the email GUI, a same format and/or shape, such as all being rectangular, with same dimensions (length and width), and may be adjacent to each other and/or non-overlapping.
- Tasks 160 that have been completed may have visual indicators that they have been completed, such as by the text in the task 160 presented by the email GUI being lined-through.
- the email application 104 may include a status updater 128 .
- the status updater 128 may update the state 148 of emails 136 from unread to read in response to a user opening and/or reading an email, and/or may update the state 148 of emails 136 from read to unread in response to a user providing input for the email 136 to be marked unread.
- the status updater 128 may also update the done state 168 of tasks 160 from incomplete to complete in response to the user marking a task 160 as complete, or may update the done state 168 from complete to incomplete in response to other user input.
- the status updater 128 may also update the completion date 170 to the current date to indicate that the task 160 was completed on the current date.
- the email application 104 may include a sorter 130 .
- the sorter 130 may sort an order of the emails 136 and tasks 160 for presentation within the inbox 600 .
- the sorter 130 may sort the emails 136 and tasks 160 based on whether they have been read and completed, such as based on their read state 148 and done state 168 .
- Emails that have not been read, and tasks that have not been completed may be placed, ranked, sorted, ordered, and/or displayed higher than emails that have been read and tasks that have been completed, except that tasks that have not been completed but have a due date 166 of a future day may not be displayed and/or may not be included in the sorted list.
- the tasks 160 and emails 136 may be sorted based on the task due dates 166 of the tasks 160 and the received dates 144 of the emails 136 . This sorting may cause unread emails received on the current day, and incomplete tasks with a due date of the current day or a previous day, to be ranked and/or displayed at the top of the list, maximizing the likelihood that the tasks will be completed and the emails will be read.
- the computing system 100 may include the at least one processor 106 .
- the at least one processor 106 may execute instructions, such as the instructions 132 stored in memory 108 , to cause the computing system 100 to perform any combination of the methods, functions, or techniques described herein.
- the computing system 100 may include at least one memory 108 .
- the at least one memory 108 may include a non-transitory computer-readable storage medium.
- the at least one memory 108 may include instructions 132 stored thereon that, when executed by the at least one processor 106 , cause the computing system 100 to perform any combination of the methods, functions, or techniques described herein.
- the computing system 100 may include an email database 134 .
- the email database 134 may store at least one, such as multiple, emails 136 .
- the emails 136 may have been received by the computing system 100 from an email server via the Internet.
- the emails 136 may each include a header 138 , a body 146 , and a state 148 .
- the header may include fields such as a from field 140 , a to field 142 , and a received date field 144 .
- the body 146 may include text and any attachments included in the email 136 .
- the state 148 may include a read state indicating whether the email 136 has been read or not.
- the computing system 100 may include the appointment database 150 .
- the appointment database 150 may include at least one, such as multiple, appointments 152 .
- the appointments 152 may have been generated by the calendar application 102 , such as based on user input into the calendar GUI.
- the appointments 152 may each include a description 154 , which may include a description of the appointment 152 , and a date 156 , which may include a date and/or time, which may include a beginning date and/or time, and/or an ending date and/or time, of the appointment 152 .
- the computing system 100 may include a task database 158 .
- the task database 158 may include one or more, such as multiple, tasks 160 .
- Each task 160 may include any combination of a task title 162 describing the task 160 , a task creation time 164 indicating a date and/or time at which the task 160 was created, a task due date 166 indicating a date and/or time at which the task 160 should be completed and/or performed, a task done state 168 indicating whether the task has been completed, and a task completion date 170 indicating a date and/or time at which the task 160 was completed.
- any combination of the email database 134 , appointment database 150 , and task database 158 may be included in a remote storage system such as a remote or back-end server. Some of the emails 136 included in the email database 134 , appointments 152 included in the appointment database 150 , and/or tasks 160 included in the task database 158 may be transferred to local, main, and/or working memory of the computing system 100 in response to requests by the calendar application 102 and/or email application 104 .
- the computing system 100 may also include an input/output module 110 .
- the input/output module 110 may include one or more input interfaces and one or more output interfaces.
- the input interfaces and output interfaces may include wired or wireless nodes for communicating with other computing systems, such as servers.
- the input interface(s) may include a keyboard, mouse, touchscreen, and/or microphone, as non-limiting examples.
- the output interface(s) may include a display and/or speaker, as non-limiting examples.
- FIG. 2 is a flowchart of a method 200 for presenting tasks 160 in the email application 104 and the calendar application 102 according to an example implementation.
- the method 200 may be performed by the computing system 100 .
- the method 200 may include generating an email application 104 ( 202 ).
- the email application 104 may retrieve at least one task 160 from a task database 158 ( 204 , retrieve at least one email 136 from an email database 134 , and concurrently present the at least one retrieved task 160 and the at least one retrieved email 136 in an email user interface 600 ( 208 ).
- the at least one retrieved task 160 and the at least one retrieved email 136 may be adjacent and non-overlapping within the email user interface 600 .
- the method 200 may also include generating a calendar application 102 ( 210 ).
- the calendar application 102 may retrieve the at least one task 160 from the task database 158 ( 212 ), retrieve at least one appointment 152 from an appointment database 150 ( 214 ), and concurrently present the at least one retrieved task 160 and the at least one retrieved appointment 152 in a calendar user interface 700 ( 216 ).
- the at least one retrieved task 160 and the at least one retrieved appointment 152 may be adjacent and non-overlapping within the calendar user interface 700 .
- the email application 104 may share the task database 158 with the calendar application 102
- the calendar application 102 may share the task database 158 with the email application 104 .
- the email application 104 may identify the at least one task 160 as a task with a task indicator instead of a sender indicator.
- the at least one task 160 may include a task title 162 , a task creation time 164 , a task due date 166 , a task done state 168 , and a task completion date 170 .
- the at least one task 160 may include multiple tasks, each of the multiple tasks including a task title 162 , a task creation time 164 , a task due date 166 , a task done state 168 , and a task completion date 170 .
- the email application 104 may sort the multiple tasks by task due date 166 , and for tasks that have a same task due date 166 , by task creation time 164 .
- the at least one task 160 may include a task title 162 describing the task 160 , a task creation time 164 indicating a time at which the task 160 was created, a task due date 166 indicating a date on which the task 160 should be performed, a task done state 168 indicating whether the task 160 has been completed, and a task completion date 170 indicating when the task 160 was completed.
- the at least one task 160 may include multiple tasks, each of the multiple tasks including a task due date 166 and a task done state 168
- the at least one email 136 may include multiple emails, each of the multiple emails including an email received date 144 and an email read state 148 .
- the email application 104 may sort the tasks and emails within a combined list based on the task done states 168 of the tasks and the email read states 148 of the emails, and for tasks and emails that have a same task done state 168 or email read state 148 , based on the task due dates 166 of the tasks and the email received dates 144 of the emails.
- the email application 104 may retrieve multiple tasks from the task database 158 , retrieve multiple emails from the email database 134 , and present the multiple tasks interspersed with the multiple emails in the email user interface 600 .
- the email application 104 may present the tasks in a same pane as the emails.
- the email application 104 may present the tasks in an inbox 600 along with the emails.
- the email application 104 may present the tasks that have a task due date 166 of a current day proximal to emails that have an email received date 144 of the current day.
- the email application 104 may present the tasks that have not been completed proximal to emails that have an email received date 144 of a current day.
- the email application 104 may present at least one task 160 that has been completed proximal to at least one email 136 that has an email received date 144 that is the same as a task completion date 170 of the task 160 .
- FIG. 3 is a flowchart of a method 300 for presenting tasks 160 to facilitate performing the tasks 160 by due dates according to an example implementation.
- the method 300 may be performed by the computing system 100 .
- the method 300 may include retrieving tasks from a task database 158 ( 302 ). Each of the tasks may include a task title 162 , a task creation time 164 , a task due date 166 , a task done state 168 , and a task completion date 170 . The method 300 may also include generating a calendar application 102 .
- the calendar application 102 may present at least one task 160 that has a task done state 168 of complete on a day corresponding to the task's 158 task completion date 170 ( 304 ), present at least one task 160 that has a task done state 168 of incomplete, and a task due date 166 of a previous day, on a current day ( 306 ), present at least one task 160 that has a task done state 168 of incomplete, and a task due date 166 of the current day, on the current day ( 308 ), and present at least one task 160 that has a task done state 168 of incomplete, and a task due date 166 of a future day, on a day corresponding to the task's 160 task due date 166 ( 310 ).
- the calendar application 102 may present the tasks 160 on a timeline, the timeline including at least the previous day, the current day, and the future day.
- the calendar application 102 may present at least one task 160 that has a task done state 168 of incomplete, and no due date 166 , on the current day.
- the calendar application 102 may perform a query a first time the calendar application 102 is launched each day, the query determining which tasks to present for the current day by finding tasks that have the task done state 168 of incomplete and no due date 166 , tasks that have the task done 168 state of incomplete and the task due date 166 of the previous day, and tasks that have the task done state 168 of incomplete and the task due date 166 of the current day.
- the calendar application 102 may not perform, on a second or subsequent launch of the calendar application 102 on a given day, the query determining which tasks to present for the current day.
- an email application 104 may present at least one task that has a task done state 168 of incomplete, and a task due date 166 of a previous day, in an inbox 600 , and present at least one task that has a task done state 168 of incomplete, and a task due date 166 of the current day, in the inbox 600 .
- the email application 104 may move, to an archive folder, tasks for which the task done state 168 is changed from incomplete to complete.
- the calendar application 102 may be presented on a display.
- FIG. 4 is a flowchart of a method 400 for presenting tasks 160 in an email application 104 and a calendar application 102 according to an example implementation.
- the method 100 may be performed by the computing system 100 .
- the method 400 may include generating an email application 104 ( 402 ).
- the email application 104 may retrieve multiple tasks from a task database 158 , retrieve multiple emails from an email database 134 , and concurrently present the multiple tasks and the multiple emails in an order based on dates determined for the multiple tasks and the multiple emails.
- the dates for each of the multiple emails may be determined based on an email received date 144 .
- the dates for each of the multiple tasks may be determined by assigning, to tasks that have a task done state of complete, a day corresponding to the tasks' task completion dates, assigning a current date to tasks that have a task done state 168 of incomplete and a task due date 166 of a previous day, assigning the current date to tasks that have a task done state 168 of incomplete and a task due date 166 of the current date, and assigning the current date to tasks that have a task done state 168 of incomplete and no task due date 166 .
- the method 400 may also include generating a calendar application 102 ( 404 ).
- the calendar application 102 may retrieve the multiple tasks from the task database 158 , retrieve multiple appointments from an appointment database 150 , and concurrently present the tasks that have the task done state 168 of complete on the days corresponding to the tasks' respective task completion dates 170 , tasks that have the task done state 168 of incomplete, and the task due date 166 of the previous day, on the current day, tasks that have the task done state 168 of incomplete, and the task due date 166 of the current day, on the current day, and tasks that have the task done state 168 of incomplete, and the task due date 166 of a future day, on the days corresponding to the tasks' respective task due dates 166 .
- FIG. 5 is a state diagram showing states of a task 160 according to an example implementation.
- This diagram shows transitions of a task 160 presented by the email application 104 between a snoozed 502 state, presentation in an inbox 504 , and a done 506 state. Any or all of these transitions may also be performed by the calendar application 102 .
- the states of the task 160 may be changed, transitioned, and/or updated by the status updater 118 of the calendar application 102 and/or by the status updater 128 of the email application 104 .
- the email application 104 may delay presentation of tasks 160 that are snoozed 502 until a later time.
- a task 160 that is snoozed 502 may not be visible and/or presented by the email application 104 .
- the later time may be a specified time, such as a certain number of minutes, hours, or days from a present time, or a specified date and time.
- a snoozed task 160 may be resnoozed 508 in response to user input, keeping the snoozed task in the snoozed 502 with a later time and/or date to come out of the snoozed 502 state.
- the email application 104 may transition the task 160 out of the snoozed 502 state and present the task 160 in an inbox 504 .
- the email application 104 may also present tasks 160 in the inbox 504 that have not been completed and have due dates of the current day, or have not been completed and have due dates of a previous day.
- the email application 104 may present the task 160 at or near a top of the inbox 504 , and/or interspersed with or adjacent to emails 136 with a received date 144 of the current date, to maximize the likelihood that the user will see and perform the task 160 .
- the email application 104 may also transition the task 160 from the snoozed 502 state to the inbox 504 in response to user input to move the task 160 to the inbox 504 ( 514 ).
- the email application 104 may also transition the task 160 from the snoozed 502 state to the done 506 state in which the task 160 will be presented interspersed with or adjacent to emails 136 with a received date 144 that is the same as the date on which the user marked the task 160 done ( 518 ) and/or is the same as the completion date 170 of the task 160 , and/or may move the task 160 to an archive folder, in response to the user marking the task 160 as done ( 518 ).
- the computing system 100 includes a touchscreen
- the user may mark the task 160 as done ( 518 ) by swiping the task 160 .
- a task 160 that is in the done 506 state may not be visible and/or presented by the email application 104 .
- a user may snooze ( 520 ) a task 160 that is in the inbox 504 .
- the email application 104 may transition the task 160 from the inbox 504 to the snoozed 502 state, with a snooze time based on user input.
- the email application 104 may also transition the task 160 from the inbox 504 to the done 506 state, and/or may move the task 160 to an archive folder, in response to user input marking the task 160 as done ( 512 ).
- the user may mark the task 160 as done ( 512 ) by swiping the task 160 .
- the email application 104 may transition a task 160 from the done 506 state to the inbox 516 in response to user input to move the task 160 to the inbox ( 516 ).
- the email application 104 may also transition the task 160 from the done 506 state to the snoozed 502 state in response to snooze ( 522 ) input from the user.
- the snooze ( 522 ) input may include either a time duration from the current time, or a specified time and/or date, at which the trigger ( 510 ) should cause the email application 104 to transition the task 160 from the snoozed 502 state to the inbox 504 .
- FIG. 6 shows the email application 104 presenting tasks 602 , 604 , 610 , 614 and emails 606 , 608 , 612 according to an example implementation.
- the email application 104 may present the tasks 602 , 604 , 610 , 614 and emails 606 , 608 , 612 interspersed within an email GUI such as an inbox 600 .
- the inbox 600 may be included in a web browser, or in a local email application running on a client machine.
- the inbox 600 may include a single pane or box presenting the tasks 602 , 604 , 610 , 614 and emails 606 , 608 , 612 in a vertical list in chronological order by received date and due date or completion date; the same pane or box may include all of the presented tasks 602 , 604 , 610 , 614 and emails 606 , 608 , 612 .
- the inbox 600 may correspond to, and/or have similar features and/or functionality to, the inbox 504 described above with respect to FIG. 5 .
- Emails 606 , 608 , 612 may include sender indicators identifying a sender of the respective email 606 , 608 , 612 , and tasks 602 , 604 , 610 , 614 may include task indicators identifying the tasks 602 , 604 , 610 , 614 as tasks.
- the tasks 602 , 604 , 610 , 614 may have similar features and/or functionality to the tasks 160 described above with respect to FIG. 1 , such as titles 616 , 622 , 640 , 652 corresponding to the task title 162 , due dates 618 , 624 , 642 , 654 corresponding to the task due dates 166 , and done states 620 , 626 , 644 , 656 corresponding to the task done states 168 .
- the emails 606 , 608 , 612 may have similar features and/or functionality to the emails 136 , such as titles 628 , 634 , 646 corresponding to subject lines which may be included in the email headers 138 , dates 630 , 636 , 648 corresponding to the email received dates 144 , and read states 632 , 638 , 650 corresponding to the read state 148 .
- the email application 104 may sort the tasks 602 , 604 , 610 , 614 and emails 606 , 608 , 612 first based on done state 620 , 626 , 644 , 656 and read state 632 , 638 , 650 .
- the tasks 602 , 604 , 610 , 614 that have a done state 620 , 626 , 644 , 656 of false and/or which have not been completed, and emails 606 , 608 , 612 that have a read state 632 , 638 , 656 of false and/or which have not been read or opened, may be ranked higher and/or sorted into a higher position, and/or displayed closer to the top of the inbox 600 , than tasks 602 , 604 , 610 , 614 that have a done state 620 , 626 , 644 , 656 of true and/or which have been completed, and emails 606 , 608 , 612 that have a read state 632 , 638 , 650 of true and/or which have been read.
- the tasks 602 , 604 , 610 , 614 that have a same done state 620 , 626 , 644 , 656 and emails 606 , 608 , 612 that have a same read state 632 , 638 , 656 the tasks 602 , 604 , 610 , 614 and emails 606 , 608 , 612 may be sorted based on their dates 618 , 624 , 630 , 636 , 642 , 648 , 654 .
- the tasks 602 , 604 , 610 , 614 may be sorted based on their respective creation times 164 .
- Ranking and/or presenting tasks 602 , 604 , that have not been completed and have due dates 618 , 624 of the current day or a previous day, higher in the inbox 600 may increase the likelihood that the tasks 602 , 604 will be seen and acted upon by the user.
- the tasks 602 , 604 , 610 , 614 and/or emails 606 , 608 , 612 may be separated into sections or panes based on their respective states of snoozed 502 , inbox 604 , or done 506 , as described above with respect to FIG. 5 .
- All of the tasks 602 , 604 , 610 , 614 and/or emails 606 , 608 , 612 in the snoozed 502 state may be included in a first section or pane, all of the tasks 602 , 604 , 610 , 614 and/or emails 606 , 608 , 612 in the inbox 504 state may be included in a second section or pane different than the first section or pane, and all of the tasks 602 , 604 , 610 , 614 and/or emails 606 , 608 , 612 in the done 506 state may be included in a third section or pane different than the first and second sections or panes.
- the tasks 602 , 604 , 610 , 614 and/or emails 606 , 608 , 612 in the snoozed 502 state may be ranked by received date 144 or due date 166
- the tasks 602 , 604 , 610 , 614 and/or emails 606 , 608 , 612 in the inbox 504 state may be ranked by received date 144 or due date 166 and/or creation time 164
- the tasks 602 , 604 , 610 , 614 and/or emails 606 , 608 , 612 in the done 506 state may be ranked by their received date 144 or completion date 170 .
- FIG. 7 shows the calendar application 102 presenting tasks 708 , 712 , 714 , 716 , 718 , 722 and appointments 710 , 720 , 724 according to an example implementation.
- the calendar application 102 may present the tasks 708 , 712 , 714 , 716 , 718 , 722 and appointments 710 , 720 , 724 within a calendar interface 700 generated by the GUI generator 116 of the calendar application 102 .
- the calendar interface 700 may be included in a web browser, or in a local calendar application running on a local machine.
- the calendar interface 700 may display all of the tasks 708 , 712 , 714 , 716 , 718 , 722 and appointments 710 , 720 , 724 in a single pane or box; the single pane or box may include sub-panes or sub-boxes corresponding to the current day 704 , one or more previous days 702 , and one or more future days 706 .
- the sub-panes or sub-boxes may form a timeline with the one or more previous days 702 , the current day 704 , and the one or more future days 706 .
- the tasks 708 , 712 , 714 , 716 , 718 , 722 may correspond to the tasks 160 stored in the task database 158
- the appointments 710 , 720 , 724 may correspond to the appointments 152 stored in the appointment database 150 .
- the calendar application 102 may display, for each of the tasks 708 , 712 , 714 , 716 , 718 , 722 , titles 726 , 736 , 742 , 748 , 754 , 764 corresponding to the titles 162 stored in the task database 158 , dates 728 , 738 , 744 , 750 , 756 , 766 corresponding to the due dates 166 stored in the task database 158 for tasks 708 , 712 , 714 , 716 , 718 , 722 that have not been completed and corresponding to the completion dates 170 for tasks 708 , 712 , 714 , 716 , 718 , 722 that have been completed, and done states 730 , 740 , 746 , 752 , 758 , 768 corresponding to the task done states 168 stored in the task database 158 .
- the calendar application 102 may display, for each of the appointments 710 , 720 , 724 , a title 732 , 760 , 770 corresponding to the appointment description 154 stored in the appointment database 150 , and a date 734 , 762 , 772 corresponding to the date 156 stored in the appointment database 150 .
- the calendar application 102 may present the appointments 710 , 720 , 724 on days corresponding to the date 734 , 762 , 772 associated with the respective appointments 710 , 720 , 724 .
- the calendar application 102 may display the appointment 710 in a box, pane, or section of the calendar interface 700 associated with the previous day 702 .
- the calendar application 102 may display the appointment 720 in a box, pane, or section of the calendar interface 700 associated with the current day 704 .
- the calendar application 102 may display the appointment 724 in a box, pane, or section of the calendar interface 700 associated with the future day 706 .
- the calendar application 102 may present the task 708 in a box, pane, or section of the calendar interface 700 associated with the previous day 702 .
- the box, pane, or section of the calendar interface 700 associated with the previous day 702 may include the task 708 and appointment 710 .
- the calendar application 102 may present the task 712 in a box, pane, or section of the calendar interface 700 associated with the current day 704 , displaying the current day as the date 738 .
- the calendar application 102 may display the task 714 in a box, pane, or section of the calendar interface 700 associated with the current day 704 .
- the calendar application 102 may assign the current day 704 as the date 750 of the task 716 , and display the task 716 in a box, pane, or section of the calendar interface 700 associated with the current day 704 .
- the calendar application 102 may display the task 718 in a box, pane, or section of the calendar interface 700 associated with the current day 704 , with the current day displayed as the date 756 .
- the box, pane, or section of the calendar interface 700 associated with the current day 704 may include the tasks 712 , 714 , 716 , 718 and appointment 720 .
- the calendar application 102 may present the task 722 in a box, pane, or section of the calendar interface 700 associated with the future day 706 .
- the box, pane, or section of the calendar interface 700 associated with the future day 706 may include the task 722 and the appointment 724 .
- FIG. 8 shows an example of a generic computer device 800 and a generic mobile computer device 850 , which may be used with the techniques described here.
- Computing device 800 is intended to represent various forms of digital computers, such as laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, and other appropriate computers.
- Computing device 850 is intended to represent various forms of mobile devices, such as personal digital assistants, cellular telephones, smart phones, and other similar computing devices.
- the components shown here, their connections and relationships, and their functions, are meant to be exemplary only, and are not meant to limit implementations of the inventions described and/or claimed in this document.
- Computing device 800 includes a processor 802 , memory 804 , a storage device 806 , a high-speed interface 808 connecting to memory 804 and high-speed expansion ports 810 , and a low speed interface 812 connecting to low speed bus 814 and storage device 806 .
- Each of the components 802 , 804 , 806 , 808 , 810 , and 812 are interconnected using various busses, and may be mounted on a common motherboard or in other manners as appropriate.
- the processor 802 can process instructions for execution within the computing device 800 , including instructions stored in the memory 804 or on the storage device 806 to display graphical information for a GUI on an external input/output device, such as display 816 coupled to high speed interface 808 .
- multiple processors and/or multiple buses may be used, as appropriate, along with multiple memories and types of memory.
- multiple computing devices 800 may be connected, with each device providing portions of the necessary operations (e.g., as a server bank, a group of blade servers, or a multi-processor system).
- the memory 804 stores information within the computing device 800 .
- the memory 804 is a volatile memory unit or units.
- the memory 804 is a non-volatile memory unit or units.
- the memory 804 may also be another form of computer-readable medium, such as a magnetic or optical disk.
- the storage device 806 is capable of providing mass storage for the computing device 800 .
- the storage device 806 may be or contain a computer-readable medium, such as a floppy disk device, a hard disk device, an optical disk device, or a tape device, a flash memory or other similar solid state memory device, or an array of devices, including devices in a storage area network or other configurations.
- a computer program product can be tangibly embodied in an information carrier.
- the computer program product may also contain instructions that, when executed, perform one or more methods, such as those described above.
- the information carrier is a computer- or machine-readable medium, such as the memory 804 , the storage device 806 , or memory on processor 802 .
- the high speed controller 808 manages bandwidth-intensive operations for the computing device 800 , while the low speed controller 812 manages lower bandwidth-intensive operations.
- the high-speed controller 808 is coupled to memory 804 , display 816 (e.g., through a graphics processor or accelerator), and to high-speed expansion ports 810 , which may accept various expansion cards (not shown).
- low-speed controller 812 is coupled to storage device 806 and low-speed expansion port 814 .
- the low-speed expansion port which may include various communication ports (e.g., USB, Bluetooth, Ethernet, wireless Ethernet) may be coupled to one or more input/output devices, such as a keyboard, a pointing device, a scanner, or a networking device such as a switch or router, e.g., through a network adapter.
- input/output devices such as a keyboard, a pointing device, a scanner, or a networking device such as a switch or router, e.g., through a network adapter.
- the computing device 800 may be implemented in a number of different forms, as shown in the figure. For example, it may be implemented as a standard server 820 , or multiple times in a group of such servers. It may also be implemented as part of a rack server system 824 . In addition, it may be implemented in a personal computer such as a laptop computer 822 . Alternatively, components from computing device 800 may be combined with other components in a mobile device (not shown), such as device 850 . Each of such devices may contain one or more of computing device 800 , 850 , and an entire system may be made up of multiple computing devices 800 , 850 communicating with each other.
- Computing device 850 includes a processor 852 , memory 864 , an input/output device such as a display 854 , a communication interface 866 , and a transceiver 868 , among other components.
- the device 850 may also be provided with a storage device, such as a microdrive or other device, to provide additional storage.
- a storage device such as a microdrive or other device, to provide additional storage.
- Each of the components 850 , 852 , 864 , 854 , 866 , and 868 are interconnected using various buses, and several of the components may be mounted on a common motherboard or in other manners as appropriate.
- the processor 852 can execute instructions within the computing device 850 , including instructions stored in the memory 864 .
- the processor may be implemented as a chipset of chips that include separate and multiple analog and digital processors.
- the processor may provide, for example, for coordination of the other components of the device 850 , such as control of user interfaces, applications run by device 850 , and wireless communication by device 850 .
- Processor 852 may communicate with a user through control interface 858 and display interface 856 coupled to a display 854 .
- the display 854 may be, for example, a TFT LCD (Thin-Film-Transistor Liquid Crystal Display) or an OLED (Organic Light Emitting Diode) display, or other appropriate display technology.
- the display interface 856 may comprise appropriate circuitry for driving the display 854 to present graphical and other information to a user.
- the control interface 858 may receive commands from a user and convert them for submission to the processor 852 .
- an external interface 862 may be provide in communication with processor 852 , so as to enable near area communication of device 850 with other devices. External interface 862 may provide, for example, for wired communication in some implementations, or for wireless communication in other implementations, and multiple interfaces may also be used.
- the memory 864 stores information within the computing device 850 .
- the memory 864 can be implemented as one or more of a computer-readable medium or media, a volatile memory unit or units, or a non-volatile memory unit or units.
- Expansion memory 874 may also be provided and connected to device 850 through expansion interface 872 , which may include, for example, a SIMM (Single In Line Memory Module) card interface.
- SIMM Single In Line Memory Module
- expansion memory 874 may provide extra storage space for device 850 , or may also store applications or other information for device 850 .
- expansion memory 874 may include instructions to carry out or supplement the processes described above, and may include secure information also.
- expansion memory 874 may be provide as a security module for device 850 , and may be programmed with instructions that permit secure use of device 850 .
- secure applications may be provided via the SIMM cards, along with additional information, such as placing identifying information on the SIMM card in a non-hackable manner.
- the memory may include, for example, flash memory and/or NVRAM memory, as discussed below.
- a computer program product is tangibly embodied in an information carrier.
- the computer program product contains instructions that, when executed, perform one or more methods, such as those described above.
- the information carrier is a computer- or machine-readable medium, such as the memory 864 , expansion memory 874 , or memory on processor 852 , that may be received, for example, over transceiver 868 or external interface 862 .
- Device 850 may communicate wirelessly through communication interface 866 , which may include digital signal processing circuitry where necessary. Communication interface 866 may provide for communications under various modes or protocols, such as GSM voice calls, SMS, EMS, or MMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS, among others. Such communication may occur, for example, through radio-frequency transceiver 868 . In addition, short-range communication may occur, such as using a Bluetooth, WiFi, or other such transceiver (not shown). In addition, GPS (Global Positioning System) receiver module 870 may provide additional navigation- and location-related wireless data to device 850 , which may be used as appropriate by applications running on device 850 .
- GPS Global Positioning System
- Device 850 may also communicate audibly using audio codec 860 , which may receive spoken information from a user and convert it to usable digital information. Audio codec 860 may likewise generate audible sound for a user, such as through a speaker, e.g., in a handset of device 850 . Such sound may include sound from voice telephone calls, may include recorded sound (e.g., voice messages, music files, etc.) and may also include sound generated by applications operating on device 850 .
- Audio codec 860 may receive spoken information from a user and convert it to usable digital information. Audio codec 860 may likewise generate audible sound for a user, such as through a speaker, e.g., in a handset of device 850 . Such sound may include sound from voice telephone calls, may include recorded sound (e.g., voice messages, music files, etc.) and may also include sound generated by applications operating on device 850 .
- the computing device 850 may be implemented in a number of different forms, as shown in the figure. For example, it may be implemented as a cellular telephone 880 . It may also be implemented as part of a smart phone 882 , personal digital assistant, or other similar mobile device.
- Implementations of the various techniques described herein may be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. Implementations may implemented as a computer program product, i.e., a computer program tangibly embodied in an information carrier, e.g., in a machine-readable storage device, for execution by, or to control the operation of, data processing apparatus, e.g., a programmable processor, a computer, or multiple computers.
- a computer program such as the computer program(s) described above, can be written in any form of programming language, including compiled or interpreted languages, and can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.
- a computer program can be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a communication network.
- Method steps may be performed by one or more programmable processors executing a computer program to perform functions by operating on input data and generating output. Method steps also may be performed by, and an apparatus may be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).
- FPGA field programmable gate array
- ASIC application-specific integrated circuit
- processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer.
- a processor will receive instructions and data from a read-only memory or a random access memory or both.
- Elements of a computer may include at least one processor for executing instructions and one or more memory devices for storing instructions and data.
- a computer also may include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks.
- Information carriers suitable for embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks.
- semiconductor memory devices e.g., EPROM, EEPROM, and flash memory devices
- magnetic disks e.g., internal hard disks or removable disks
- magneto-optical disks e.g., CD-ROM and DVD-ROM disks.
- the processor and the memory may be supplemented by, or incorporated in special purpose logic circuitry.
- implementations may be implemented on a computer having a display device, e.g., a cathode ray tube (CRT) or liquid crystal display (LCD) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer.
- a display device e.g., a cathode ray tube (CRT) or liquid crystal display (LCD) monitor
- keyboard and a pointing device e.g., a mouse or a trackball
- Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input.
- Implementations may be implemented in a computing system that includes a back-end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front-end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation, or any combination of such back-end, middleware, or front-end components.
- Components may be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (LAN) and a wide area network (WAN), e.g., the Internet.
- LAN local area network
- WAN wide area network
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Theoretical Computer Science (AREA)
- Entrepreneurship & Innovation (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Business, Economics & Management (AREA)
- Tourism & Hospitality (AREA)
- Quality & Reliability (AREA)
- Operations Research (AREA)
- Marketing (AREA)
- Economics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Transfer Between Computers (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
Description
- This application is a Continuation of, and claims priority to, U.S. patent application Ser. No. 14/862,619, filed on Sep. 23, 2015, entitled “PRESENTING TASKS IN EMAIL APPLICATION AND CALENDAR APPLICATION”, which is incorporated by reference herein in its entirety.
- This description relates to presenting tasks in computer applications.
- Task applications may maintain and present tasks to users. Users may create tasks, and indicate when the tasks has been completed. However, users may forget to visit and/or launch the task application. If the user forgets to visit and/or launch the task application, then the benefit of the task application may be lost.
- A computer system may store tasks in a task database. An email application and a calendar application may access the task database, and they both may present tasks from the task database. The presentation of the tasks by the email application and the calendar application may increase the likelihood that the tasks are seen and acted upon by a user.
- A non-transitory computer-readable storage medium may comprise instructions stored thereon for presenting tasks in an email application and a calendar application. The instructions, when executed by at least one processor, may be configured to cause a computing system to at least generate an email application and generate a calendar application. The email application may be configured to retrieve at least one task from a task database, retrieve at least one email from an email database, and concurrently present the at least one retrieved task and the at least one retrieved email in an email user interface, the at least one retrieved task and the at least one retrieved email being adjacent and non-overlapping within the email user interface. The calendar application may be configured to retrieve the at least one task from the task database, retrieve at least one appointment from an appointment database, and concurrently present the at least one retrieved task and the at least one retrieved appointment in a calendar user interface, the at least one retrieved task and the at least one retrieved appointment being adjacent and non-overlapping within the calendar user interface.
- A non-transitory computer-readable storage medium may comprise instructions stored thereon for presenting tasks to facilitate performing the tasks by due dates. The instructions, when executed by at least one processor, may be configured to cause a computing system to at least retrieve tasks from a task database, each of the tasks including a task title, a task creation time, a task due date, a task done state, and a task completion date, and generate a calendar application. The calendar application may be configured to present at least one task that has a task done state of complete on a day corresponding to the task's task completion date, present at least one task that has a task done state of incomplete, and a task due date of a previous day, on a current day, present at least one task that has a task done state of incomplete, and a task due date of the current day, on the current day, and present at least one task that has a task done state of incomplete, and a task due date of a future day, on a day corresponding to the task's task due date.
- A non-transitory computer-readable storage medium may comprise instructions stored thereon for presenting tasks in an email application and a calendar application. The instructions, when executed by at least one processor, may be configured to cause a computing system to at least generate an email application and generate a calendar application. The email application may be configured to retrieve multiple tasks from a task database, retrieve multiple emails from an email database, and concurrently present the multiple tasks and the multiple emails in an order based on dates determined for the multiple tasks and the multiple emails. The dates for each of the multiple emails may be determined based on an email received date. The dates for each of the multiple tasks may be determined by assigning, to tasks that have a task done state of complete, a day corresponding to the tasks' task completion dates, assigning a current date to tasks that have a task done state of incomplete and a task due date of a previous day, assigning the current date to tasks that have a task done state of incomplete and a task due date of the current date, and assigning the current date to tasks that have a task done state of incomplete and no task due date. The calendar application may be configured to retrieve the multiple tasks from the task database, retrieve multiple appointments from an appointment database, and concurrently present the tasks that have the task done state of complete on the days corresponding to the tasks' respective task completion dates, tasks that have the task done state of incomplete, and the task due date of the previous day, on the current day, tasks that have the task done state of incomplete, and the task due date of the current day, on the current day, and tasks that have the task done state of incomplete, and the task due date of a future day, on the days corresponding to the tasks' respective task due dates.
- The details of one or more implementations are set forth in the accompanying drawings and the description below. Other features will be apparent from the description and drawings, and from the claims.
-
FIG. 1 is a diagram of a computing system for presenting tasks in an email application and in a calendar application according to an example implementation. -
FIG. 2 is a flowchart of a method for presenting tasks in the email application and the calendar application according to an example implementation. -
FIG. 3 is a flowchart of a method for presenting tasks to facilitate performing the tasks by due dates according to an example implementation. -
FIG. 4 is a flowchart of a method for presenting tasks in an email application and a calendar application according to an example implementation. -
FIG. 5 is a state diagram showing states of a task according to an example implementation. -
FIG. 6 shows the email application presenting tasks and emails according to an example implementation. -
FIG. 7 shows the calendar application presenting tasks and appointments according to an example implementation. -
FIG. 8 shows an example of a computer device and a mobile computer device that can be used to implement the techniques described here. -
FIG. 1 is a diagram of acomputing system 100 for presenting tasks in an email application and in a calendar application according to an example implementation. Thecomputing system 100, which may include a desktop computer, a laptop computer, a tablet computer, a smartphone, or a networked system of devices that distributes the functions described herein, may include acalendar application 102, anemail application 104, at least oneprocessor 106 for executinginstructions 132 stored inmemory 108 to launch thecalendar application 102 andemail application 104, the at least onememory 108storing instructions 132, anemail database 134, andappointment database 150, and atask database 158, and one or more input/output modules 110. Thecalendar application 102 andemail application 104 may read or retrieve from, and write to, thesame task database 158, causing the fields, attributes, and/or status of the tasks to be synchronized between thecalendar application 102 and theemail application 104. - The
calendar application 102 may present tasks and appointments to a user. The tasks and appointments may have been generated based on inputs from the user into a task application, thecalendar application 102, and/or theemail application 104, or may have been generated based on emails or other received communications. - The
calendar application 102 may include atask retriever 112. Thetask retriever 112 may retrieve tasks, such as at least onetask 160, from atask database 158 included in the at least onememory 108. Thetasks 160 may each include any combination of a task title 162 describing thetask 160, atask creation time 164 indicating a time at which thetask 160 was created, a taskdue date 166 indicating a date on which thetask 160 should be performed, a task donestate 168 indicating whether thetask 160 has been completed, and a task completion date 170 indicating when thetask 160 was completed. If thetask 160 does not have a due date, then the taskdue date 166 may be null and/or void. If thetask 160 has not been completed, then the task completion date 170 may be null and/or void. - The
calendar application 102 may also include anappointment retriever 114. Theappointment retriever 114 may retrieve appointments, such as at least one appointment 152, from anappointment database 150 included in the at least onememory 108. The appointments 152 may include, for example, a description 154 describing the appointment, and a date 156 indicating the date and/or time of the appointment 152, which may include a start time and/or an end time. - The
calendar application 102 may include a calendar graphical user interface (GUI)generator 116. Thecalendar GUI generator 116 may generate a calendar GUI for presentation to and interaction with a user. TheGUI generator 116 may generate a calendar user interface such as acalendar interface 700, shown inFIG. 7 , which presents tasks and appointments to the user. The calendar GUI may concurrently present at least one retrievedtask 160 and/or multiple tasks, and at least one retrieved appointment 152 and/or multiple appointments to the user. Thetasks 160 and appointments 152 may have, when presented by the calendar GUI, a same format and/or shape, such as all being rectangular, with same dimensions (length and width) or one of the dimensions varying based on the time duration of the appointment 152, and may be adjacent to each other and/or non-overlapping.Tasks 160 that have been completed may have visual indicators that they have been completed, such as by the text in thetask 160 presented by the calendar GUI being lined through. - The
calendar application 102 may include a status updater 118. The status updater 118 may update the status oftasks 160 and/or appointments 152. The status updater 118 may, for example, update the task donestate 168 and/or the task completion date 170 oftasks 160 in response to user input into a calendar GUI. - The
calendar application 102 may include aquery engine 120. Thequery engine 120 mayquery tasks 160 stored in thetask database 158 fortasks 160 that should be presented for a given day, such as the current day. In an example implementation, thequery engine 120 may query thetask database 158 for tasks that should be presented on a given day, such as the current day. Tasks that should be presented on a current day may include tasks for which thedone state 168 is incomplete and have no due date and/or thedue date 166 is null or void, tasks for which the done state is incomplete and the due date is a previous day, and tasks for which the done state is incomplete and the due date is the current day. - The
query engine 120 may perform a query the first time thecalendar application 102 is launched each day. The query may determine whichtasks 160 to present for the current day by finding tasks that have the task donestate 168 of incomplete and nodue date 166, tasks that have the task donestate 168 of incomplete and the taskdue date 166 of the previous day, andtasks 160 that have the task donestate 168 of incomplete and the taskdue date 166 of the current day. Fortasks 160 that are incomplete and have a same taskdue date 166, the tasks may be ordered and/or sorted based on theircreation time 164.Tasks 160 that are incomplete may be sorted, ordered, and/or presented based on their taskdue dates 166, andtasks 160 that are incomplete and have same taskdue dates 166 may be ordered, sorted, and/or presented based on their creation times 164. In an example implementation, thecalendar application 102 and/orquery engine 120 may not perform, on a second or subsequent launch of the calendar application on a given day, the query to determine whichtasks 160 to present for the current day. - The
calendar application 102 may present tasks for which the donestate 168 is complete on a date corresponding to the date identified by the completion date 170. Thecalendar application 102 may also present tasks for which the donestate 168 is incomplete and thedue date 166 is a future date on a date corresponding to thedue date 166. - The
email application 104 may presenttasks 160 andemails 136 to a user. Theemails 136 may have been received from an external email server, and may have been received via the Internet. Theemail application 104 may intersperse thetasks 160 andemails 136, and may presenttasks 160 that should be performed on the current day near a top of a list of emails to increase the likelihood that the tasks that should be performed on the current day are seen and acted upon by the user. - The
email application 104 may include atask retriever 122. Thetask retriever 122 may retrievetasks 160 from thetask database 158 included in thememory 108. - The
email application 104 may include anemail retriever 124. Theemail retriever 124 may retrieveemails 136 from theemail database 134 included in thememory 108. Theemails 136 may each include a header 138, abody 146, and astate 148. The header 138 may include, for example, a fromfield 140 identifying a sender of theemail 136, a tofield 142 identifying a recipient of theemail 136, and a receiveddate field 144 indicating a date on which theemail 136 was received. Thebody 146 of theemail 136 may include any text and/or attachments included in theemail 136. Thestate 148 may indicate whether or not theemail 136 has been read. - The
email application 104 may include an email graphical user interface (GUI)generator 126. Theemail GUI generator 126 may generate an email GUI, or other user interface, for the user to view and provide input to emails and tasks. TheGUI generator 126 may generate and present to the user, for example, an email user interface including an inbox such as theinbox 600 shown inFIG. 6 . The email GUI may concurrently present at least one retrievedtask 160 and/or multiple tasks, and at least one retrievedemail 136 and/or multiple emails, to the user in a combined list. Thetasks 160 andemails 136 may have, when presented by the email GUI, a same format and/or shape, such as all being rectangular, with same dimensions (length and width), and may be adjacent to each other and/or non-overlapping.Tasks 160 that have been completed may have visual indicators that they have been completed, such as by the text in thetask 160 presented by the email GUI being lined-through. - The
email application 104 may include a status updater 128. The status updater 128 may update thestate 148 ofemails 136 from unread to read in response to a user opening and/or reading an email, and/or may update thestate 148 ofemails 136 from read to unread in response to a user providing input for theemail 136 to be marked unread. The status updater 128 may also update the donestate 168 oftasks 160 from incomplete to complete in response to the user marking atask 160 as complete, or may update the donestate 168 from complete to incomplete in response to other user input. When the status updater 128 updates the donestate 168 oftasks 160, the status updater 128 may also update the completion date 170 to the current date to indicate that thetask 160 was completed on the current date. - The
email application 104 may include asorter 130. Thesorter 130 may sort an order of theemails 136 andtasks 160 for presentation within theinbox 600. Thesorter 130 may sort theemails 136 andtasks 160 based on whether they have been read and completed, such as based on theirread state 148 and donestate 168. Emails that have not been read, and tasks that have not been completed, may be placed, ranked, sorted, ordered, and/or displayed higher than emails that have been read and tasks that have been completed, except that tasks that have not been completed but have adue date 166 of a future day may not be displayed and/or may not be included in the sorted list. Fortasks 160 andemails 136 that have a samedone state 168 or readstate 148, thetasks 160 andemails 136 may be sorted based on the taskdue dates 166 of thetasks 160 and the received dates 144 of theemails 136. This sorting may cause unread emails received on the current day, and incomplete tasks with a due date of the current day or a previous day, to be ranked and/or displayed at the top of the list, maximizing the likelihood that the tasks will be completed and the emails will be read. - The
computing system 100 may include the at least oneprocessor 106. The at least oneprocessor 106 may execute instructions, such as theinstructions 132 stored inmemory 108, to cause thecomputing system 100 to perform any combination of the methods, functions, or techniques described herein. - The
computing system 100 may include at least onememory 108. The at least onememory 108 may include a non-transitory computer-readable storage medium. The at least onememory 108 may includeinstructions 132 stored thereon that, when executed by the at least oneprocessor 106, cause thecomputing system 100 to perform any combination of the methods, functions, or techniques described herein. - The
computing system 100 may include anemail database 134. Theemail database 134 may store at least one, such as multiple, emails 136. Theemails 136 may have been received by thecomputing system 100 from an email server via the Internet. Theemails 136 may each include a header 138, abody 146, and astate 148. The header may include fields such as a fromfield 140, a tofield 142, and a receiveddate field 144. Thebody 146 may include text and any attachments included in theemail 136. Thestate 148 may include a read state indicating whether theemail 136 has been read or not. - The
computing system 100 may include theappointment database 150. Theappointment database 150 may include at least one, such as multiple, appointments 152. The appointments 152 may have been generated by thecalendar application 102, such as based on user input into the calendar GUI. The appointments 152 may each include a description 154, which may include a description of the appointment 152, and a date 156, which may include a date and/or time, which may include a beginning date and/or time, and/or an ending date and/or time, of the appointment 152. - The
computing system 100 may include atask database 158. Thetask database 158 may include one or more, such as multiple,tasks 160. Eachtask 160 may include any combination of a task title 162 describing thetask 160, atask creation time 164 indicating a date and/or time at which thetask 160 was created, a taskdue date 166 indicating a date and/or time at which thetask 160 should be completed and/or performed, a task donestate 168 indicating whether the task has been completed, and a task completion date 170 indicating a date and/or time at which thetask 160 was completed. - While the
email database 134,appointment database 150, andtask database 158 have been described as being included in thecomputing system 100, any combination of theemail database 134,appointment database 150, andtask database 158 may be included in a remote storage system such as a remote or back-end server. Some of theemails 136 included in theemail database 134, appointments 152 included in theappointment database 150, and/ortasks 160 included in thetask database 158 may be transferred to local, main, and/or working memory of thecomputing system 100 in response to requests by thecalendar application 102 and/oremail application 104. - The
computing system 100 may also include an input/output module 110. The input/output module 110 may include one or more input interfaces and one or more output interfaces. The input interfaces and output interfaces may include wired or wireless nodes for communicating with other computing systems, such as servers. The input interface(s) may include a keyboard, mouse, touchscreen, and/or microphone, as non-limiting examples. The output interface(s) may include a display and/or speaker, as non-limiting examples. -
FIG. 2 is a flowchart of amethod 200 for presentingtasks 160 in theemail application 104 and thecalendar application 102 according to an example implementation. Themethod 200 may be performed by thecomputing system 100. - According to an example implementation, the
method 200 may include generating an email application 104 (202). Theemail application 104 may retrieve at least onetask 160 from a task database 158 (204, retrieve at least oneemail 136 from anemail database 134, and concurrently present the at least one retrievedtask 160 and the at least one retrievedemail 136 in an email user interface 600 (208). The at least one retrievedtask 160 and the at least one retrievedemail 136 may be adjacent and non-overlapping within theemail user interface 600. Themethod 200 may also include generating a calendar application 102 (210). Thecalendar application 102 may retrieve the at least onetask 160 from the task database 158 (212), retrieve at least one appointment 152 from an appointment database 150 (214), and concurrently present the at least one retrievedtask 160 and the at least one retrieved appointment 152 in a calendar user interface 700 (216). The at least one retrievedtask 160 and the at least one retrieved appointment 152 may be adjacent and non-overlapping within thecalendar user interface 700. - According to an example implementation, the
email application 104 may share thetask database 158 with thecalendar application 102, and thecalendar application 102 may share thetask database 158 with theemail application 104. - According to an example implementation, the
email application 104 may identify the at least onetask 160 as a task with a task indicator instead of a sender indicator. - According to an example implementation, the at least one
task 160 may include a task title 162, atask creation time 164, a taskdue date 166, a task donestate 168, and a task completion date 170. - According to an example implementation, the at least one
task 160 may include multiple tasks, each of the multiple tasks including a task title 162, atask creation time 164, a taskdue date 166, a task donestate 168, and a task completion date 170. Theemail application 104 may sort the multiple tasks by taskdue date 166, and for tasks that have a same taskdue date 166, bytask creation time 164. - According to an example implementation, the at least one
task 160 may include a task title 162 describing thetask 160, atask creation time 164 indicating a time at which thetask 160 was created, a taskdue date 166 indicating a date on which thetask 160 should be performed, a task donestate 168 indicating whether thetask 160 has been completed, and a task completion date 170 indicating when thetask 160 was completed. - According to an example implementation, the at least one
task 160 may include multiple tasks, each of the multiple tasks including a taskdue date 166 and a task donestate 168, the at least oneemail 136 may include multiple emails, each of the multiple emails including an email receiveddate 144 and anemail read state 148. Theemail application 104 may sort the tasks and emails within a combined list based on the task donestates 168 of the tasks and the email readstates 148 of the emails, and for tasks and emails that have a same task donestate 168 or email readstate 148, based on the taskdue dates 166 of the tasks and the email receiveddates 144 of the emails. - According to an example implementation, the
email application 104 may retrieve multiple tasks from thetask database 158, retrieve multiple emails from theemail database 134, and present the multiple tasks interspersed with the multiple emails in theemail user interface 600. - According to an example implementation, the
email application 104 may present the tasks in a same pane as the emails. - According to an example implementation, the
email application 104 may present the tasks in aninbox 600 along with the emails. - According to an example implementation, the
email application 104 may present the tasks that have a taskdue date 166 of a current day proximal to emails that have an email receiveddate 144 of the current day. - According to an example implementation, the
email application 104 may present the tasks that have not been completed proximal to emails that have an email receiveddate 144 of a current day. - According to an example implementation, the
email application 104 may present at least onetask 160 that has been completed proximal to at least oneemail 136 that has an email receiveddate 144 that is the same as a task completion date 170 of thetask 160. -
FIG. 3 is a flowchart of amethod 300 for presentingtasks 160 to facilitate performing thetasks 160 by due dates according to an example implementation. Themethod 300 may be performed by thecomputing system 100. - According to this example, the
method 300 may include retrieving tasks from a task database 158 (302). Each of the tasks may include a task title 162, atask creation time 164, a taskdue date 166, a task donestate 168, and a task completion date 170. Themethod 300 may also include generating acalendar application 102. Thecalendar application 102 may present at least onetask 160 that has a task donestate 168 of complete on a day corresponding to the task's 158 task completion date 170 (304), present at least onetask 160 that has a task donestate 168 of incomplete, and a taskdue date 166 of a previous day, on a current day (306), present at least onetask 160 that has a task donestate 168 of incomplete, and a taskdue date 166 of the current day, on the current day (308), and present at least onetask 160 that has a task donestate 168 of incomplete, and a taskdue date 166 of a future day, on a day corresponding to the task's 160 task due date 166 (310). - According to an example implementation, the
calendar application 102 may present thetasks 160 on a timeline, the timeline including at least the previous day, the current day, and the future day. - According to an example implementation, the
calendar application 102 may present at least onetask 160 that has a task donestate 168 of incomplete, and nodue date 166, on the current day. - According to an example implementation, the
calendar application 102 may perform a query a first time thecalendar application 102 is launched each day, the query determining which tasks to present for the current day by finding tasks that have the task donestate 168 of incomplete and nodue date 166, tasks that have the task done 168 state of incomplete and the taskdue date 166 of the previous day, and tasks that have the task donestate 168 of incomplete and the taskdue date 166 of the current day. - According to an example implementation, the
calendar application 102 may not perform, on a second or subsequent launch of thecalendar application 102 on a given day, the query determining which tasks to present for the current day. - According to an example implementation, an
email application 104 may present at least one task that has a task donestate 168 of incomplete, and a taskdue date 166 of a previous day, in aninbox 600, and present at least one task that has a task donestate 168 of incomplete, and a taskdue date 166 of the current day, in theinbox 600. - According to an example implementation, the
email application 104 may move, to an archive folder, tasks for which the task donestate 168 is changed from incomplete to complete. - According to an example implementation, the
calendar application 102 may be presented on a display. -
FIG. 4 is a flowchart of amethod 400 for presentingtasks 160 in anemail application 104 and acalendar application 102 according to an example implementation. Themethod 100 may be performed by thecomputing system 100. - The
method 400 may include generating an email application 104 (402). Theemail application 104 may retrieve multiple tasks from atask database 158, retrieve multiple emails from anemail database 134, and concurrently present the multiple tasks and the multiple emails in an order based on dates determined for the multiple tasks and the multiple emails. The dates for each of the multiple emails may be determined based on an email receiveddate 144. The dates for each of the multiple tasks may be determined by assigning, to tasks that have a task done state of complete, a day corresponding to the tasks' task completion dates, assigning a current date to tasks that have a task donestate 168 of incomplete and a taskdue date 166 of a previous day, assigning the current date to tasks that have a task donestate 168 of incomplete and a taskdue date 166 of the current date, and assigning the current date to tasks that have a task donestate 168 of incomplete and no taskdue date 166. - The
method 400 may also include generating a calendar application 102 (404). Thecalendar application 102 may retrieve the multiple tasks from thetask database 158, retrieve multiple appointments from anappointment database 150, and concurrently present the tasks that have the task donestate 168 of complete on the days corresponding to the tasks' respective task completion dates 170, tasks that have the task donestate 168 of incomplete, and the taskdue date 166 of the previous day, on the current day, tasks that have the task donestate 168 of incomplete, and the taskdue date 166 of the current day, on the current day, and tasks that have the task donestate 168 of incomplete, and the taskdue date 166 of a future day, on the days corresponding to the tasks' respective taskdue dates 166. -
FIG. 5 is a state diagram showing states of atask 160 according to an example implementation. This diagram shows transitions of atask 160 presented by theemail application 104 between a snoozed 502 state, presentation in aninbox 504, and a done 506 state. Any or all of these transitions may also be performed by thecalendar application 102. The states of thetask 160 may be changed, transitioned, and/or updated by the status updater 118 of thecalendar application 102 and/or by the status updater 128 of theemail application 104. - The
email application 104 may delay presentation oftasks 160 that are snoozed 502 until a later time. Atask 160 that is snoozed 502 may not be visible and/or presented by theemail application 104. The later time may be a specified time, such as a certain number of minutes, hours, or days from a present time, or a specified date and time. Asnoozed task 160 may be resnoozed 508 in response to user input, keeping the snoozed task in the snoozed 502 with a later time and/or date to come out of the snoozed 502 state. - In response to a trigger (510), such as the snooze time expiring, a date occurring, a date and time occurring, or the
computing system 100 being in or near a specified location as determined by sensor input, theemail application 104 may transition thetask 160 out of the snoozed 502 state and present thetask 160 in aninbox 504. Theemail application 104 may also presenttasks 160 in theinbox 504 that have not been completed and have due dates of the current day, or have not been completed and have due dates of a previous day. Theemail application 104 may present thetask 160 at or near a top of theinbox 504, and/or interspersed with or adjacent toemails 136 with a receiveddate 144 of the current date, to maximize the likelihood that the user will see and perform thetask 160. Theemail application 104 may also transition thetask 160 from the snoozed 502 state to theinbox 504 in response to user input to move thetask 160 to the inbox 504 (514). Theemail application 104 may also transition thetask 160 from the snoozed 502 state to the done 506 state in which thetask 160 will be presented interspersed with or adjacent toemails 136 with a receiveddate 144 that is the same as the date on which the user marked thetask 160 done (518) and/or is the same as the completion date 170 of thetask 160, and/or may move thetask 160 to an archive folder, in response to the user marking thetask 160 as done (518). In an example in which thecomputing system 100 includes a touchscreen, the user may mark thetask 160 as done (518) by swiping thetask 160. Atask 160 that is in the done 506 state may not be visible and/or presented by theemail application 104. - A user may snooze (520) a
task 160 that is in theinbox 504. In response to a snooze (520) input, theemail application 104 may transition thetask 160 from theinbox 504 to the snoozed 502 state, with a snooze time based on user input. Theemail application 104 may also transition thetask 160 from theinbox 504 to the done 506 state, and/or may move thetask 160 to an archive folder, in response to user input marking thetask 160 as done (512). In an example in which thecomputing system 100 includes a touchscreen, the user may mark thetask 160 as done (512) by swiping thetask 160. - The
email application 104 may transition atask 160 from the done 506 state to theinbox 516 in response to user input to move thetask 160 to the inbox (516). Theemail application 104 may also transition thetask 160 from the done 506 state to the snoozed 502 state in response to snooze (522) input from the user. The snooze (522) input may include either a time duration from the current time, or a specified time and/or date, at which the trigger (510) should cause theemail application 104 to transition thetask 160 from the snoozed 502 state to theinbox 504. -
FIG. 6 shows theemail application 104 presentingtasks emails email application 104 may present thetasks emails inbox 600. Theinbox 600 may be included in a web browser, or in a local email application running on a client machine. Theinbox 600 may include a single pane or box presenting thetasks emails tasks emails inbox 600 may correspond to, and/or have similar features and/or functionality to, theinbox 504 described above with respect toFIG. 5 .Emails respective email tasks tasks - The
tasks tasks 160 described above with respect toFIG. 1 , such astitles due dates due dates 166, and donestates emails emails 136, such astitles dates 144, and readstates state 148. - The
email application 104 may sort thetasks emails state state tasks state emails state inbox 600, thantasks state emails state tasks done state emails same read state tasks emails dates tasks due date tasks tasks due dates inbox 600, may increase the likelihood that thetasks - In an example implementation, the
tasks emails snoozed 502,inbox 604, or done 506, as described above with respect toFIG. 5 . All of thetasks emails tasks emails inbox 504 state may be included in a second section or pane different than the first section or pane, and all of thetasks emails tasks emails date 144 ordue date 166, thetasks emails inbox 504 state may be ranked by receiveddate 144 ordue date 166 and/orcreation time 164, and thetasks emails date 144 or completion date 170. -
FIG. 7 shows thecalendar application 102 presentingtasks appointments calendar application 102 may present thetasks appointments calendar interface 700 generated by theGUI generator 116 of thecalendar application 102. Thecalendar interface 700 may be included in a web browser, or in a local calendar application running on a local machine. Thecalendar interface 700 may display all of thetasks appointments current day 704, one or moreprevious days 702, and one or morefuture days 706. The sub-panes or sub-boxes may form a timeline with the one or moreprevious days 702, thecurrent day 704, and the one or morefuture days 706. Thetasks tasks 160 stored in thetask database 158, and theappointments appointment database 150. - The
calendar application 102 may display, for each of thetasks titles task database 158, dates 728, 738, 744, 750, 756, 766 corresponding to thedue dates 166 stored in thetask database 158 fortasks tasks states states 168 stored in thetask database 158. Thecalendar application 102 may display, for each of theappointments title appointment database 150, and adate appointment database 150. - The
calendar application 102 may present theappointments date respective appointments appointment 710 with adate 734 corresponding to a previous day 702 (which may be one or more days before a current day 704), thecalendar application 102 may display theappointment 710 in a box, pane, or section of thecalendar interface 700 associated with theprevious day 702. For anappointment 720 with adate 762 corresponding to thecurrent day 704, thecalendar application 102 may display theappointment 720 in a box, pane, or section of thecalendar interface 700 associated with thecurrent day 704. For anappointment 724 with adate 772 corresponding to a future day 706 (which may be one or more days after the current day 704), thecalendar application 102 may display theappointment 724 in a box, pane, or section of thecalendar interface 700 associated with thefuture day 706. - For a
task 708 that has been completed with acompletion date 170, 728 on theprevious day 702, thecalendar application 102 may present thetask 708 in a box, pane, or section of thecalendar interface 700 associated with theprevious day 702. The box, pane, or section of thecalendar interface 700 associated with theprevious day 702 may include thetask 708 andappointment 710. - For a
task 712 that has not been completed and does not have adue date 166, thecalendar application 102 may present thetask 712 in a box, pane, or section of thecalendar interface 700 associated with thecurrent day 704, displaying the current day as thedate 738. For atask 714 that have not been completed and that has adue date 744 of thecurrent day 704, thecalendar application 102 may display thetask 714 in a box, pane, or section of thecalendar interface 700 associated with thecurrent day 704. For atask 716 that has not been completed and has adue date 166 of theprevious day 702, thecalendar application 102 may assign thecurrent day 704 as thedate 750 of thetask 716, and display thetask 716 in a box, pane, or section of thecalendar interface 700 associated with thecurrent day 704. For atask 718 that has been completed with a completion date 170 of thecurrent day 704, thecalendar application 102 may display thetask 718 in a box, pane, or section of thecalendar interface 700 associated with thecurrent day 704, with the current day displayed as thedate 756. The box, pane, or section of thecalendar interface 700 associated with thecurrent day 704 may include thetasks appointment 720. - For a
task 722 that has adue date 728 on thefuture day 706, thecalendar application 102 may present thetask 722 in a box, pane, or section of thecalendar interface 700 associated with thefuture day 706. The box, pane, or section of thecalendar interface 700 associated with thefuture day 706 may include thetask 722 and theappointment 724. -
FIG. 8 shows an example of ageneric computer device 800 and a genericmobile computer device 850, which may be used with the techniques described here.Computing device 800 is intended to represent various forms of digital computers, such as laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, and other appropriate computers.Computing device 850 is intended to represent various forms of mobile devices, such as personal digital assistants, cellular telephones, smart phones, and other similar computing devices. The components shown here, their connections and relationships, and their functions, are meant to be exemplary only, and are not meant to limit implementations of the inventions described and/or claimed in this document. -
Computing device 800 includes aprocessor 802,memory 804, astorage device 806, a high-speed interface 808 connecting tomemory 804 and high-speed expansion ports 810, and alow speed interface 812 connecting tolow speed bus 814 andstorage device 806. Each of thecomponents processor 802 can process instructions for execution within thecomputing device 800, including instructions stored in thememory 804 or on thestorage device 806 to display graphical information for a GUI on an external input/output device, such asdisplay 816 coupled tohigh speed interface 808. In other implementations, multiple processors and/or multiple buses may be used, as appropriate, along with multiple memories and types of memory. Also,multiple computing devices 800 may be connected, with each device providing portions of the necessary operations (e.g., as a server bank, a group of blade servers, or a multi-processor system). - The
memory 804 stores information within thecomputing device 800. In one implementation, thememory 804 is a volatile memory unit or units. In another implementation, thememory 804 is a non-volatile memory unit or units. Thememory 804 may also be another form of computer-readable medium, such as a magnetic or optical disk. - The
storage device 806 is capable of providing mass storage for thecomputing device 800. In one implementation, thestorage device 806 may be or contain a computer-readable medium, such as a floppy disk device, a hard disk device, an optical disk device, or a tape device, a flash memory or other similar solid state memory device, or an array of devices, including devices in a storage area network or other configurations. A computer program product can be tangibly embodied in an information carrier. The computer program product may also contain instructions that, when executed, perform one or more methods, such as those described above. The information carrier is a computer- or machine-readable medium, such as thememory 804, thestorage device 806, or memory onprocessor 802. - The
high speed controller 808 manages bandwidth-intensive operations for thecomputing device 800, while thelow speed controller 812 manages lower bandwidth-intensive operations. Such allocation of functions is exemplary only. In one implementation, the high-speed controller 808 is coupled tomemory 804, display 816 (e.g., through a graphics processor or accelerator), and to high-speed expansion ports 810, which may accept various expansion cards (not shown). In the implementation, low-speed controller 812 is coupled tostorage device 806 and low-speed expansion port 814. The low-speed expansion port, which may include various communication ports (e.g., USB, Bluetooth, Ethernet, wireless Ethernet) may be coupled to one or more input/output devices, such as a keyboard, a pointing device, a scanner, or a networking device such as a switch or router, e.g., through a network adapter. - The
computing device 800 may be implemented in a number of different forms, as shown in the figure. For example, it may be implemented as astandard server 820, or multiple times in a group of such servers. It may also be implemented as part of arack server system 824. In addition, it may be implemented in a personal computer such as alaptop computer 822. Alternatively, components fromcomputing device 800 may be combined with other components in a mobile device (not shown), such asdevice 850. Each of such devices may contain one or more ofcomputing device multiple computing devices -
Computing device 850 includes aprocessor 852,memory 864, an input/output device such as adisplay 854, acommunication interface 866, and atransceiver 868, among other components. Thedevice 850 may also be provided with a storage device, such as a microdrive or other device, to provide additional storage. Each of thecomponents - The
processor 852 can execute instructions within thecomputing device 850, including instructions stored in thememory 864. The processor may be implemented as a chipset of chips that include separate and multiple analog and digital processors. The processor may provide, for example, for coordination of the other components of thedevice 850, such as control of user interfaces, applications run bydevice 850, and wireless communication bydevice 850. -
Processor 852 may communicate with a user throughcontrol interface 858 anddisplay interface 856 coupled to adisplay 854. Thedisplay 854 may be, for example, a TFT LCD (Thin-Film-Transistor Liquid Crystal Display) or an OLED (Organic Light Emitting Diode) display, or other appropriate display technology. Thedisplay interface 856 may comprise appropriate circuitry for driving thedisplay 854 to present graphical and other information to a user. Thecontrol interface 858 may receive commands from a user and convert them for submission to theprocessor 852. In addition, anexternal interface 862 may be provide in communication withprocessor 852, so as to enable near area communication ofdevice 850 with other devices.External interface 862 may provide, for example, for wired communication in some implementations, or for wireless communication in other implementations, and multiple interfaces may also be used. - The
memory 864 stores information within thecomputing device 850. Thememory 864 can be implemented as one or more of a computer-readable medium or media, a volatile memory unit or units, or a non-volatile memory unit or units.Expansion memory 874 may also be provided and connected todevice 850 throughexpansion interface 872, which may include, for example, a SIMM (Single In Line Memory Module) card interface.Such expansion memory 874 may provide extra storage space fordevice 850, or may also store applications or other information fordevice 850. Specifically,expansion memory 874 may include instructions to carry out or supplement the processes described above, and may include secure information also. Thus, for example,expansion memory 874 may be provide as a security module fordevice 850, and may be programmed with instructions that permit secure use ofdevice 850. In addition, secure applications may be provided via the SIMM cards, along with additional information, such as placing identifying information on the SIMM card in a non-hackable manner. - The memory may include, for example, flash memory and/or NVRAM memory, as discussed below. In one implementation, a computer program product is tangibly embodied in an information carrier. The computer program product contains instructions that, when executed, perform one or more methods, such as those described above. The information carrier is a computer- or machine-readable medium, such as the
memory 864,expansion memory 874, or memory onprocessor 852, that may be received, for example, overtransceiver 868 orexternal interface 862. -
Device 850 may communicate wirelessly throughcommunication interface 866, which may include digital signal processing circuitry where necessary.Communication interface 866 may provide for communications under various modes or protocols, such as GSM voice calls, SMS, EMS, or MMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS, among others. Such communication may occur, for example, through radio-frequency transceiver 868. In addition, short-range communication may occur, such as using a Bluetooth, WiFi, or other such transceiver (not shown). In addition, GPS (Global Positioning System)receiver module 870 may provide additional navigation- and location-related wireless data todevice 850, which may be used as appropriate by applications running ondevice 850. -
Device 850 may also communicate audibly usingaudio codec 860, which may receive spoken information from a user and convert it to usable digital information.Audio codec 860 may likewise generate audible sound for a user, such as through a speaker, e.g., in a handset ofdevice 850. Such sound may include sound from voice telephone calls, may include recorded sound (e.g., voice messages, music files, etc.) and may also include sound generated by applications operating ondevice 850. - The
computing device 850 may be implemented in a number of different forms, as shown in the figure. For example, it may be implemented as acellular telephone 880. It may also be implemented as part of asmart phone 882, personal digital assistant, or other similar mobile device. - Implementations of the various techniques described herein may be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. Implementations may implemented as a computer program product, i.e., a computer program tangibly embodied in an information carrier, e.g., in a machine-readable storage device, for execution by, or to control the operation of, data processing apparatus, e.g., a programmable processor, a computer, or multiple computers. A computer program, such as the computer program(s) described above, can be written in any form of programming language, including compiled or interpreted languages, and can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program can be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a communication network.
- Method steps may be performed by one or more programmable processors executing a computer program to perform functions by operating on input data and generating output. Method steps also may be performed by, and an apparatus may be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).
- Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. Elements of a computer may include at least one processor for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer also may include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. Information carriers suitable for embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory may be supplemented by, or incorporated in special purpose logic circuitry.
- To provide for interaction with a user, implementations may be implemented on a computer having a display device, e.g., a cathode ray tube (CRT) or liquid crystal display (LCD) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input.
- Implementations may be implemented in a computing system that includes a back-end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front-end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation, or any combination of such back-end, middleware, or front-end components. Components may be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (LAN) and a wide area network (WAN), e.g., the Internet.
- While certain features of the described implementations have been illustrated as described herein, many modifications, substitutions, changes and equivalents will now occur to those skilled in the art. It is, therefore, to be understood that the appended claims are intended to cover all such modifications and changes as fall within the true spirit of the embodiments of the invention.
Claims (1)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/245,864 US20190149505A1 (en) | 2015-09-23 | 2019-01-11 | Presenting tasks in email application and calendar application |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/862,619 US10218670B2 (en) | 2015-09-23 | 2015-09-23 | Presenting tasks in email application and calendar application |
US16/245,864 US20190149505A1 (en) | 2015-09-23 | 2019-01-11 | Presenting tasks in email application and calendar application |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/862,619 Continuation US10218670B2 (en) | 2015-09-23 | 2015-09-23 | Presenting tasks in email application and calendar application |
Publications (1)
Publication Number | Publication Date |
---|---|
US20190149505A1 true US20190149505A1 (en) | 2019-05-16 |
Family
ID=56799626
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/862,619 Active 2036-09-10 US10218670B2 (en) | 2015-09-23 | 2015-09-23 | Presenting tasks in email application and calendar application |
US16/245,864 Abandoned US20190149505A1 (en) | 2015-09-23 | 2019-01-11 | Presenting tasks in email application and calendar application |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/862,619 Active 2036-09-10 US10218670B2 (en) | 2015-09-23 | 2015-09-23 | Presenting tasks in email application and calendar application |
Country Status (5)
Country | Link |
---|---|
US (2) | US10218670B2 (en) |
EP (1) | EP3353726A1 (en) |
CN (1) | CN107710248A (en) |
DE (1) | DE202016107378U1 (en) |
WO (1) | WO2017052849A1 (en) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11282006B2 (en) * | 2017-03-20 | 2022-03-22 | Microsoft Technology Licensing, Llc | Action assignment tracking using natural language processing in electronic communication applications |
US10679192B2 (en) * | 2017-05-25 | 2020-06-09 | Microsoft Technology Licensing, Llc | Assigning tasks and monitoring task performance based on context extracted from a shared contextual graph |
US10984484B1 (en) * | 2017-07-28 | 2021-04-20 | Intuit Inc. | Accounting workflow integration |
US10534520B2 (en) | 2017-08-30 | 2020-01-14 | Vmware, Inc. | Smart email task reminders |
US11347375B2 (en) * | 2018-03-21 | 2022-05-31 | Atlassian Pty Ltd. | Digital task management using an intermediary single-account issue inbox system |
CN110580610A (en) * | 2018-06-08 | 2019-12-17 | 点线宇宙股份有限公司 | Interactive calendar management system |
US11095596B2 (en) * | 2018-10-26 | 2021-08-17 | International Business Machines Corporation | Cognitive request management |
DK180317B1 (en) | 2019-04-15 | 2020-11-09 | Apple Inc | Systems, methods, and user interfaces for interacting with multiple application windows |
US20210099502A1 (en) * | 2019-09-30 | 2021-04-01 | Dropbox, Inc. | Content item sharing with context |
CN112085346A (en) * | 2020-08-18 | 2020-12-15 | 远光软件股份有限公司 | Calendar-based safety inspection work display method and device and electronic equipment |
CN112084263B (en) * | 2020-09-10 | 2024-05-14 | 北京百度网讯科技有限公司 | Data synchronization method, device, equipment and storage medium |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030135558A1 (en) * | 2002-01-16 | 2003-07-17 | Xerox Corporation. | User interface for a message-based system having embedded information management capabilities |
US20090299810A1 (en) * | 2008-05-09 | 2009-12-03 | Jardine Joseph M | Combining tasks and events |
US20110126123A1 (en) * | 2009-11-20 | 2011-05-26 | Sears Brands, Llc | Systems and methods for managing to-do list task items via a computer network |
US20130063383A1 (en) * | 2011-02-28 | 2013-03-14 | Research In Motion Limited | Electronic device and method of displaying information in response to detecting a gesture |
US20150100503A1 (en) * | 2013-10-04 | 2015-04-09 | Clique Intelligence | Systems and methods for enterprise management using contextual graphs |
US20160011757A1 (en) * | 2014-07-09 | 2016-01-14 | Atrendia ApS | Email and task management platform |
US20160041812A1 (en) * | 2014-08-05 | 2016-02-11 | Peter Albert Kaiser | Sorting processes and arrangements for electronic messages |
US20170068934A1 (en) * | 2015-09-04 | 2017-03-09 | Blackberry Limited | Method of automatic scheduling, related devices and communication system |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6272532B1 (en) | 1998-12-02 | 2001-08-07 | Harold F. Feinleib | Electronic reminder system with universal email input |
US7747966B2 (en) * | 2004-09-30 | 2010-06-29 | Microsoft Corporation | User interface for providing task management and calendar information |
US20080065460A1 (en) * | 2006-08-23 | 2008-03-13 | Renegade Swish, Llc | Apparatus, system, method, and computer program for task and process management |
US20080155547A1 (en) * | 2006-12-22 | 2008-06-26 | Yahoo! Inc. | Transactional calendar |
US8645182B2 (en) | 2007-10-02 | 2014-02-04 | International Business Machines Corporation | Integrated calendar and task scheduler |
WO2012148904A1 (en) * | 2011-04-25 | 2012-11-01 | Veveo, Inc. | System and method for an intelligent personal timeline assistant |
US10984387B2 (en) * | 2011-06-28 | 2021-04-20 | Microsoft Technology Licensing, Llc | Automatic task extraction and calendar entry |
US9372978B2 (en) * | 2012-01-20 | 2016-06-21 | Apple Inc. | Device, method, and graphical user interface for accessing an application in a locked device |
US20150046210A1 (en) | 2013-08-07 | 2015-02-12 | Kavaanu, Inc. | Method and system for intention object generation |
-
2015
- 2015-09-23 US US14/862,619 patent/US10218670B2/en active Active
-
2016
- 2016-08-17 DE DE202016107378.2U patent/DE202016107378U1/en active Active
- 2016-08-17 EP EP16756923.5A patent/EP3353726A1/en not_active Withdrawn
- 2016-08-17 CN CN201680035106.2A patent/CN107710248A/en active Pending
- 2016-08-17 WO PCT/US2016/047373 patent/WO2017052849A1/en unknown
-
2019
- 2019-01-11 US US16/245,864 patent/US20190149505A1/en not_active Abandoned
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030135558A1 (en) * | 2002-01-16 | 2003-07-17 | Xerox Corporation. | User interface for a message-based system having embedded information management capabilities |
US20090299810A1 (en) * | 2008-05-09 | 2009-12-03 | Jardine Joseph M | Combining tasks and events |
US20110126123A1 (en) * | 2009-11-20 | 2011-05-26 | Sears Brands, Llc | Systems and methods for managing to-do list task items via a computer network |
US20130063383A1 (en) * | 2011-02-28 | 2013-03-14 | Research In Motion Limited | Electronic device and method of displaying information in response to detecting a gesture |
US20150100503A1 (en) * | 2013-10-04 | 2015-04-09 | Clique Intelligence | Systems and methods for enterprise management using contextual graphs |
US20160011757A1 (en) * | 2014-07-09 | 2016-01-14 | Atrendia ApS | Email and task management platform |
US20160041812A1 (en) * | 2014-08-05 | 2016-02-11 | Peter Albert Kaiser | Sorting processes and arrangements for electronic messages |
US20170068934A1 (en) * | 2015-09-04 | 2017-03-09 | Blackberry Limited | Method of automatic scheduling, related devices and communication system |
Also Published As
Publication number | Publication date |
---|---|
DE202016107378U1 (en) | 2017-02-09 |
CN107710248A (en) | 2018-02-16 |
WO2017052849A1 (en) | 2017-03-30 |
US20170085520A1 (en) | 2017-03-23 |
EP3353726A1 (en) | 2018-08-01 |
US10218670B2 (en) | 2019-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190149505A1 (en) | Presenting tasks in email application and calendar application | |
US20240346316A1 (en) | Recommending a document for a user to access | |
US10713427B2 (en) | Systems and methods for providing a communication program interface with an integrated tabular data management interface | |
US10536504B2 (en) | Aggregating content from different content sources at a cloud service | |
US10504029B2 (en) | Personalized predictive models | |
US9009592B2 (en) | Population of lists and tasks from captured voice and audio content | |
US10482638B2 (en) | Collaborative commenting in a drawing tool | |
US9300615B2 (en) | Methods and devices for generating action item from email | |
US10606938B2 (en) | Correcting errors in copied text | |
US8751234B2 (en) | Communication device for determining contextual information | |
US20170316385A1 (en) | Contextually-aware insights for calendar events | |
US20120066251A1 (en) | Correlating transportation data | |
US11714522B2 (en) | Controlling a graphical user interface using a presentation of messages based upon predicted interactions with the messages | |
US10255039B2 (en) | Dynamically determining relevant cases | |
US20140035956A1 (en) | Displaying action items based on deadline and importance | |
WO2014204657A1 (en) | Augmenting content obtained from different content sources | |
EP4062345A1 (en) | Enhanced views and notifications of location and calendar information | |
US20120084630A1 (en) | Generating Behavior Information For a Link | |
JP6545909B2 (en) | Question and Answer Interface Based on Context Information | |
US8612451B1 (en) | Searching for data structures | |
CA2771624C (en) | Communication device for determining contextual information | |
EP2693380A1 (en) | Displaying action items based on deadline and importance |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: GOOGLE INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:UMAPATHY, VIJAY;SURACI, ALESSANDRO;COULTAS, ROBYN;AND OTHERS;SIGNING DATES FROM 20150914 TO 20150922;REEL/FRAME:048064/0426 Owner name: GOOGLE LLC, CALIFORNIA Free format text: ENTITY CONVERSION;ASSIGNOR:GOOGLE INC.;REEL/FRAME:048098/0749 Effective date: 20170929 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STCV | Information on status: appeal procedure |
Free format text: NOTICE OF APPEAL FILED |
|
STCV | Information on status: appeal procedure |
Free format text: APPEAL BRIEF (OR SUPPLEMENTAL BRIEF) ENTERED AND FORWARDED TO EXAMINER |
|
STCV | Information on status: appeal procedure |
Free format text: EXAMINER'S ANSWER TO APPEAL BRIEF MAILED |
|
STCV | Information on status: appeal procedure |
Free format text: ON APPEAL -- AWAITING DECISION BY THE BOARD OF APPEALS |
|
STCV | Information on status: appeal procedure |
Free format text: BOARD OF APPEALS DECISION RENDERED |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- AFTER EXAMINER'S ANSWER OR BOARD OF APPEALS DECISION |