Electronic calendar applications may provide calendar views allowing a user to view calendar information corresponding to a certain date range, for example, a “week” view, a “month” view, a “year” view and so on. The electronic calendar applications may also allow the user to view information of calendar events such as appointments, meetings, telephone conferences, and the like. In electronic calendars, some dates/days may include more calendar events compared to other dates/days, and some dates/days may not include any calendar event. To display multiple calendar events corresponding to a date/day, an additional action (e.g., an extra click or touch) may be needed to view the calendar events that are outside the default display area. Further, the calendar events may be viewed based on priority (e.g., upcoming hours, days, weeks, months and years).
Embodiments are illustrated by way of examples and not by way of limitation in the figures of the accompanying drawings in which like references indicate similar elements. The embodiments may be best understood from the following detailed description taken in conjunction with the accompanying drawings.
Embodiments of techniques to display calendar events in an electronic calendar are described herein. In the following description, numerous specific details are set forth to provide a thorough understanding of the embodiments. One skilled in the relevant art will recognize, however, that the embodiments can be practiced without one or more of the specific details, or with other methods, components, materials, etc. In other instance, well-known structures, materials, or operations are not shown or described in detail.
Reference throughout this specification to “one embodiment”, “this embodiment” and similar phrases, means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one of the one or more embodiments. Thus, the appearances of these phrases in various places throughout this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.
In this document, various methods, processes and procedures are detailed. Although particular steps may be described in a certain sequence, such sequence may be mainly for convenience and clarity. A particular step may be repeated more than once, may occur before or after other steps (even if those steps are otherwise described in another sequence), and may occur in parallel with other steps. Further, a step may be executed upon executing another step. Such a situation may be specifically pointed out when not clear from the context. A particular step may be omitted. Further, it is to be understood that the various actions (retrieving, determining, generating, rendering, and so on) may be performed by a hardware device (e.g., computing system), even if the action may be authorized, initiated or triggered by a user, or even if the hardware device is controlled by a computer program, software, firmware, and the like.
The electronic calendar 140 includes calendar units defining a number of rows and a number of columns of a calendar view representing dates of the electronic calendar 140. For example, a calendar unit may represent a date/day of the electronic calendar 140. The calendar view may define date range of the electronic calendar 140 such as a week view, a month view, a bimonthly view, a year view and so on. For example, the calendar view of the electronic calendar 140 is a month view having 31 days.
In one embodiment, the computer system 110 may include components to determine dimensions of the calendar units associated with the electronic calendar 140 to display the calendar events 180. The components of the computer system 110 may include calendar application unit 150, display dimension determiner 160 and calendar view generator 170. The calendar application unit 150 may retrieve calendar information associated with a user such as the calendar view of the electronic calendar 140, a calendar view setting and calendar events 180 associated with the calendar units of the calendar view. The calendar view setting may include a fixed height of the calendar units and/or a fixed width of the calendar units.
For example, when the fixed height of the calendar units is selected, the height of the calendar units is kept constant/equal and the width of one or more of the calendar units may vary to display the associated calendar events 180. When the fixed width of the calendar units is selected, the width of the calendar units is kept constant/equal while the height of one or more calendar units may vary to display the associated calendar events 180. In one embodiment, the calendar view setting may include an option to vary both heights and widths of the electronic calendar 140. When such an option is selected, both heights and widths of the electronic calendar 140 are varied to display the calendar events associated with corresponding calendar units. In the example shown in
In one embodiment, the display dimension determiner 160 may determine dimensions for the calendar units based on the calendar view, the calendar view setting and the number of calendar events 180 associated with the calendar units. In one example, when the calendar view is set as the fixed height of the calendar units, the dimensions for the calendar units are determined by dividing the horizontal size of the electronic calendar corresponding to the calendar units (e.g., per row) based on the number of calendar events 180 associated with the corresponding calendar units. In other words, the height of the calendar units is fixed and the width of the calendar units vary based on the number of calendar events associated per calendar unit per row. Therefore, when a calendar unit does not include any calendar events, a minimum width is assigned. When the calendar unit includes one or more calendar events, a bigger width may be assigned.
In one example, when the calendar view setting is set as the fixed width of the calendar units, the dimensions for the calendar units are determined by dividing vertical size of the electronic calendar 140 corresponding to the calendar units (e.g., per column) based on the number of calendar events associated with the corresponding calendar units. In other words, the width of the calendar units is fixed and the height of calendar units vary based on the number of calendar events associated per calendar unit per column. Therefore, when the calendar unit does not include any calendar events, a minimum height is assigned. When the calendar unit includes one or more calendar events, a bigger height is assigned. In one embodiment, both heights and widths of the electronic calendar 140 can vary to display the calendar events associated with corresponding calendar units. Example electronic calendar 140 described herein may reduce blank space in the electronic calendar 140 to display the associated calendar events 180. Thereby, electively unitizing space provided in the electronic calendar 140.
In one embodiment, the calendar view generator 170 generates visualization of the electronic calendar 140 based on the dimensions that are determined by the display dimension determiner 160. Further, the visualization of the electronic calendar 140 is rendered to display the calendar events 180 associated with the calendar units. Therefore, the electronic calendar 140 may display information or the calendar events 180 without asking the user to perform an extra action (e.g., a click or touch) on the GUI.
In one example embodiment, the components (e.g., the calendar application unit 150, the display dimension determiner 160 and the calendar view generator 170) can be included in the computer system 110 and/or in different computer systems. Further, the calendar application unit 150, the display dimension determiner 160 and the calendar view generator 170 may be implemented as engines or modules including any combination of hardware and programming to implement the functionalities described herein. As will be further described with respect to
At 220, dimensions for the calendar units are determined based on the calendar view, the calendar view setting and the calendar events associated with the calendar units. In one example, when the calendar view setting is set as the fixed height of the calendar units, the dimensions for the calendar units are determined by dividing horizontal size of the electronic calendar corresponding to the calendar units based on the calendar events associated with the corresponding calendar units. An example of the electronic calendar with fixed height of the calendar units is shown in
At 230, visualization of the electronic calendar is generated based on the determined dimensions for the calendar units. Since the dimensions of the calendar units are determined based on calendar events associated with the calendar units, the dimensions of the calendar units can be minimized when the calendar units include less number of calendar events compared to other calendar units or no calendar events. Further, the dimensions of the calendar units can be maximized when the calendar units include more number of calendar events compared to other calendar units. At 240, the generated visualization of the electronic calendar is rendered to display calendar events associated with the calendar units.
In the example, the electronic calendar (e.g., the month view) including the calendar units (e.g., 315 and 320) are displayed. Further, the electronic calendar includes calendar events associated with the calendar units based on determined dimensions for the calendar units (e.g., 315 and 320). The calendar units (e.g., 315 and 320) represents days of the month having 31 days. For example, numbers (e.g., 1 to 31) of each calendar unit represent dates and alphabets (e.g., S-Sunday, M-Monday. T-Tuesday, W-Wednesday, T-Thursday. F-Friday and S-Saturday) represent days of the month. Further, blocks in the calendar units represent the calendar events associated with the calendar units.
For example, the calendar view setting is set as the fixed height of the calendar units, the height (e.g., 305A, 305B and 305C) of the calendar units is assigned same dimension based on the vertical size of the electronic calendar. Further, horizontal size of the electronic calendar is divided based on a number of calendar events associated with the calendar units per row. For instance, the width (e.g., 310A) of the calendar unit 315 is assigned minimum space as there are no calendar event associated with the calendar unit 315. Further, the width (310B) of the calendar unit 320 is assigned bigger space in the row (e.g., from day 1 to day 7) as the calendar unit 320 is associated with maximum number of calendar events. Similarly, dimensions of other calendar units in the row (e.g., from day 1 to day 7) are assigned based on the number of calendar events associated with the calendar units.
In the example, the electronic calendar (e.g., the month view) including the calendar units (e.g., 415 and 420) are displayed. Further, the electronic calendar includes calendar events associated with the calendar units based on determined dimensions for the calendar units (e.g., 415 and 420). The calendar units (e.g., 415 and 420) represents days of the month having 31 days. For example, numbers (e.g., 1 to 31) each calendar unit represent dates and alphabets (e.g., S-Sunday, M-Monday. T-Tuesday, W-Wednesday, T-Thursday, F-Friday and S-Saturday) represent days of the month. Further, blocks in the calendar units represent the calendar events associated with the calendar units.
For example, the calendar view setting is set as the fixed width of the calendar units, the width (e.g., 405A and 405B) of the calendar units is assigned same dimension based on the horizontal size of the electronic calendar. Further, vertical size of the electronic calendar is divided per calendar unit based on the number of calendar events associated with the calendar units per column. For instance, the height (e.g., 410A) of the calendar unit 415 is assigned minimum space and the height (e.g., 410B) of the calendar unit 420 is assigned bigger space in the column (e.g., column 1: 1, 8, 15, 22 and 29 days). Similarly, dimensions of other calendar units in the column (e.g., column 1: 1, 8, 15, 22 and 29 days) are assigned based on the number of calendar events associated with the calendar units.
Some embodiments may include the above-described methods being written as one or more software components. These components, and the functionality associated with them, may be used by client, server, distributed, or peer computer systems. These components may be written in a computer language corresponding to one or more programming languages such as, functional, declarative, procedural, object-oriented, lower level languages and the like. They may be linked to other components via various application programming interfaces and then compiled into one complete application for a server or a client. Alternatively, the components maybe implemented in server and client applications. Further, these components may be linked together via various distributed programming protocols. Some example embodiments may include remote procedure calls being used to implement one or more of these components across a distributed programming environment. For example, a logic level may reside on a first computer system that is remotely located from a second computer system containing an interface level (e.g., a graphical user interface). These first and second computer systems can be configured in a server-client, peer-to-peer, or some other configuration. The clients can vary in complexity from mobile and handheld devices, to thin clients and on to thick clients or even other servers.
The above-illustrated software components are tangibly stored on a computer readable storage medium as instructions. The term “computer readable storage medium” includes a single medium or multiple media that stores one or more sets of instructions. The term “computer readable storage medium” includes physical article that is capable of undergoing a set of physical changes to physically store, encode, or otherwise carry a set of instructions for execution by a computer system which causes the computer system to perform the methods or process steps described, represented, or illustrated herein. A computer readable storage medium may be a non-transitory computer readable storage medium. Examples of a non-transitory computer readable storage media include, but are not limited to: magnetic media, such as hard disks, floppy disks, and magnetic tape; optical media such as CD-ROMs, DVDs and holographic indicator devices; magneto-optical media; and hardware devices that are specially configured to store and execute, such as application-specific integrated circuits (“ASICs”), programmable logic devices (“PLDs”) and ROM and RAM devices. Examples of computer readable instructions include machine code, such as produced by a compiler, and files containing higher-level code that are executed by a computer using an interpreter. For example, an embodiment may be implemented using Java, C++, or other object-oriented programming language and development tools. Another embodiment may be implemented in hard-wired circuitry in place of, or in combination with machine readable software instructions.
A data source is an information resource. Data sources include sources of data that enable data storage and retrieval. Data sources may include databases, such as, relational, transactional, hierarchical, multi-dimensional (e.g., OLAP), object oriented databases, and the like. Further data sources include tabular data (e.g., spreadsheets, delimited text files), data tagged with a markup language (e.g., XML data), transactional data, unstructured data (e.g., text files, screen scrapings), hierarchical data (e.g., data in a file system, XML data), files, a number of reports, and any other data source accessible through an established protocol, such as, Open Database Connectivity (ODBC), produced by an underlying software system, e.g., an enterprise resource planning (ERP) system, and the like. Data sources may also include a data source where the data is not tangibly stored or otherwise ephemeral such as data streams, broadcast data, and the like. These data sources can include associated data foundations, semantic layers, management systems, security systems and so on.
In the above description, numerous specific details are set forth to provide a thorough understanding of embodiments. One skilled in the relevant art will recognize, however that the one or more embodiments can be practiced without one or more of the specific details or with other methods, components, techniques, etc. In other instances, well-known operations or structures are not shown or described in details.
Although the processes illustrated and described herein include series of steps, it will be appreciated that the different embodiments are not limited by the illustrated ordering of steps, as some steps may occur in different orders, some concurrently with other steps apart from that shown and described herein. In addition, not all illustrated steps may be required to implement a methodology in accordance with the one or more embodiments. Moreover, it will be appreciated that the processes may be implemented in association with the apparatus and systems illustrated and described herein as well as in association with other systems not illustrated.
The above descriptions and illustrations of embodiments, including what is described in the Abstract, is not intended to be exhaustive or to limit the one or more embodiments to the precise forms disclosed. While specific embodiments of, and examples for, the embodiment are described herein for illustrative purposes, various equivalent modifications are possible within the scope of the embodiments, as those skilled in the relevant art will recognize. These modifications can be made to the embodiments in light of the above detailed description. Rather, the scope of the one or more embodiments is to be determined by the following claims, which are to be interpreted in accordance with established doctrines of claim construction.