Computers and computing systems have affected nearly every aspect of modern living. Computers are generally involved in work, recreation, healthcare, transportation, entertainment, household management, etc.
Computers may further include functionality for allowing design tools to be implemented on the computers. For example, a computer can run a software application that allows the user to design various graphic arts projects. In one example, software applications may be able to be used to design calendars. Using the software applications, a user can design the type of calendar such as a daily calendar, a weekly calendar, a monthly calendar, or a yearly calendar. Additionally, the user may add graphical features such as various images and the like. However, adding specific appointments to these calendars can be time consuming. If a new calendar is created, the specific appointments must be re-imported or re-entered into the calendar.
Computers additionally include functionality for allowing scheduling activities to be performed. For example, a user can input scheduling activities into a scheduling program. While these schedules can be printed, the range of calendar styles and formats is quite limited.
The subject matter claimed herein is not limited to embodiments that solve any disadvantages or that operate only in environments such as those described above. Rather, this background is only provided to illustrate one exemplary technology area where some embodiments described herein may be practiced.
One embodiment described herein includes a method of displaying a calendar. The method may be practiced, for example, in a computing environment. The method includes creating a calendar layout template as one or more data structures on a computer readable medium. The calendar layout template is independent of specific dates and schedule instances. A schedule of time and/or date specific events is created as one or more data structures on a computer readable medium. The schedule is alterable by user interaction. The calendar layout template is merged with the schedule of time and/or date specific events to create a calendar view in a dynamic fashion such that when the schedule is altered, altered information is merged with the calendar layout template.
Another embodiment described herein includes one or more computer readable media. The one or more computer readable media include a first data structure. The first data structure includes information defining a calendar layout. The calendar layout is independent of specific dates and schedule instances. The one or more computer readable media further include a second data structure. The second data structure includes information defining a schedule of time and/or date specific events. The schedule is alterable by user interaction. The one or more computer readable media further include computer executable instructions configured to merge the information defining the first data structure with the information defining the schedule of time and/or date specific events in a dynamic fashion such that when the schedule is altered, altered information is merged with the one or more calendar layouts.
Yet another embodiment described herein includes a method of presenting calendar views including schedule information merged with a calendar layout template. The method may be practiced, for example, in a computer system having a graphical user interface including a display and a user interface selection device. The method includes displaying a selection of views representing selectable calendar layout templates. User input is received selecting one of the selectable calendar layout templates. A calendar view is displayed defined by schedule information including time and/or date information for specific events merged with the one of the selectable calendar layout templates selected by the received user input.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
Additional features and advantages will be set forth in the description which follows, and in part will be obvious from the description, or may be learned by the practice of the teachings herein. Features and advantages of the invention may be realized and obtained by means of the instruments and combinations particularly pointed out in the appended claims. Features of the present invention will become more fully apparent from the following description and appended claims, or may be learned by the practice of the invention as set forth hereinafter.
In order to describe the manner in which the above-recited and other advantages and features can be obtained, a more particular description of the subject matter briefly described above will be rendered by reference to specific embodiments which are illustrated in the appended drawings. Understanding that these drawings depict only typical embodiments and are not therefore to be considered to be limiting in scope, embodiments will be described and explained with additional specificity and detail through the use of the accompanying drawings in which:
Embodiments herein may comprise a special purpose or general-purpose computer including various computer hardware, as discussed in greater detail below.
One embodiment described in more detail below illustrates methods and data structures that may be used to create calendar views. Calendar views may be used to display schedule information in a particular format. For example, a user may select a layout format in which schedule information is to be displayed. Illustratively, the user may select schedule information to be displayed in a day format, a week format, a month format, a year format, or a multiyear format. Additionally, some calendar views may allow for schedule information to be displayed using a combination of formats. For example, one particular calendar view allows for both a day view and a week view to be displayed together.
A markup data structure may be used to define a particular view in which schedule information is displayed. The markup data structure may be, in one embodiment, a template layout that may be used to specify and/or define various features such as fonts, size, borders, column and row numbers, orientations, fills, and so forth. Because a markup data structure is used, the eventual calendar views in which schedule information is displayed may be very flexible and customizable. The markup data structure may include various variables and or links that allow the markup data structure to be merged with schedule information, style information, and various other external information to create the calendar views.
The markup data structure may be merged with the schedule information in a dynamic fashion. This allows for calendar views to be changed without the need to manually re-insert schedule information.
Referring now to
Referring once again to
Returning once again to the description of the calendar layout template 102, various features will be described. The calendar layout template 102 may include both fixed hard coded definitions as well as dynamic linking. Illustratively, the calendar layout template 102 may include dynamic linking information that specifies where the style information 106 is applied. Alternatively, the calendar layout template 102 may include fixed hard coded definitions of style information such that all or part of the style information 106 does not need to be merged with the calendar layout template 102 to achieve various style formats in the calendar view 108. Further, dynamic linking information may be included in the calendar layout template 102 to function as a pointer to the schedule information 104.
With respect to schedule information, while
Notably, the schedule information 104 may in one embodiment be supplied by a scheduling program such as Microsoft Outlook or other scheduling program. The calendar layout template 102 may be appropriately linked to the schedule information 104 such that the calendar layout template 102 can be modified or a new calendar layout template may be used where the schedule information 104 is linked such that it does not need to be imported into the calendar layout template 102 itself. This allows for changing the calendar layout template 102 or replacing the counter layout template 102 with a different calendar layout template without the need to re-import data from the schedule information 104.
The calendar layout template 102 may further include dynamic linking information to other content. For example, it may be desirable to create a calendar view 108 that includes images, motivational or entertaining text, maps, driving directions, or any one of a multitude of various external features. The calendar layout template 102 may include dynamic linking information to a data source for the external features. For example, a data source may provide an image and motivational text that changes each day. The calendar layout template 102 may include one or more links, such as a URI, URL, file location, or the like, that references one or more locations where the image and motivational text can be obtained. As such, the calendar view 108 may further present external information 110 as part of the calendar view 108.
Additionally, the calendar layout template may include functionality for including specific date information. For example, assume that a user wishes to print the day calendar view for one or more specific dates. The calendar layout template 102 may include a dynamic pointer that references one or more dates selected by a user using a date picker user interface widget. Computer executable instructions may then be implemented that cause the calendar view 108 to display a specific instance of the selected date(s) including appropriate schedule information 104 applicable to the current date(s).
As described previously, the calendar layout template 102 may define one or more time units such as day time units, week time units, month time units, year time units, multi year time units, and the like. Additionally, the calendar layout template 102 may define one or more time units within the same calendar layout template 102. For example, when a calendar layout template 102 defines a month time unit, there may also be a desire to define the day time units within the month time unit. In one embodiment, a primary time unit may include calendar controls for internal or nested time units. For example, a month time unit may include calendar controls for internal week time units and day time units. Additionally, there may be a desire to display time units in a disjointed fashion. For example, a calendar view 108 may include a large day time unit view and smaller disjointed week time unit, month time unit, and/or year time unit views.
The calendar layout template 102 may further include conditional formatting attributes. Using conditional format attributes, other attributes of the calendar view 108 may be formatted. Virtually any attribute can be conditionally formatted. In one specific example, the day number of a day in may be colored in red if the day is a Saturday or Sunday.
Another attribute that may be formatted in the calendar layout template 102 is a TimeUnitProperties. TimeUnitProperties can be defined specific to any recurrence pattern. For example, different images and titles may be specified for each month of a year calendar. Virtually any attribute can be formatted with TimeUnitProperties.
Referring now to
Additionally, it should be noted that the calendar views 108 can be influenced by culture information. For example, the systems settings of a computer system may specify a particular culture. Illustratively, a user may indicate that the user desires to use Japanese settings. Thus, the calendar view 108 may be formatted as a traditional Japanese style calendar. To accomplish this, the calendar layout template 102 may explicitly call out the cultural style information. In other embodiments the calendar layout template 102 may reference system settings of a computer system to specify the particular culture information. Applying culture information to the calendar view 108 may affect, for example, the language used to display certain strings, the orientation of the calendar view 108 and/or information in the calendar view, the size of the calendar view 108, date format patterns, and the like.
Various views can be further implemented within the individual time unit views such as the day time unit 202 the week time unit 204, the month time unit 206, and various other time units. For example, and referring to
A slot view 304 may include various slots within a particular time unit. For example, the day time unit view 202 of
While
One embodiment described herein includes a graphical user interface that facilitates a user selecting a calendar layout template 102 from a selection of predefined calendar layout templates. For example, and referring to
Illustratively, the graphical user interface 402 illustrates a number of calendar views 108a 108b and 108c that may be selected. A user may select one of the calendar views 108a 108b or 108c, which are instances of calendar layout templates merged with schedule information and style information. By selecting one of the calendar views 108a 108b and 108c a user can select an appropriate calendar layout template 102 corresponding to the calendar view selected. When a user selects a calendar view from the template selection list 418, the calendar view selected will appear as the calendar view 108 in the graphical user interface 402. This calendar view 108 in the graphical user interface 402 can then be printed or otherwise used as a graphical display of the user's selection.
The calendar layout templates used to create the calendar views 108a 108b and 108c in the template selection list 418 may be created, as described above, as markup language documents. This allows third party template creators to easily create new calendar layout templates 102. These created calendar layout templates can be downloaded by a user and imported into the application implementing the graphical user interface 402 such that calendar views can be imported into the template selection list 418. As such, a virtually unlimited selection of calendars can be made available to a user. The following is an example markup document for a relatively simple month day calendar view.
As described previously, a number of various features can be integrated into calendar templates 102. For example, as shown in
As described previously, the graphical user interface 402 may include user selectable elements that allow the calendar view 108 to be printed. Embodiments may therefore include functionality for facilitating enhanced printing capabilities. For example, the calendar view 108 includes information from both the calendar layout template 102 and schedule information 104. The calendar view 108 can therefore be formatted such that when the calendar view 108 is selected to be of a particular size, the text displayed in the calendar view can be sized appropriately so as to minimize or eliminate the loss of information. Illustratively, scheduling programs in the present art may include printing functionality. However those scheduling programs often use the same code that generates a screen rendering to generate printed output. Because schedules on a computer screen allow for scrolling, there is often no need to resize information such that all information can be seen on a single screen. However, when such screen rendering information is used for printing to a hard copy, information is commonly lost when hidden within a scroll window. Embodiments herein, however, allow for schedule information 104 to be resized within the calendar view 108 automatically by the application used to create the calendar view 108 so as to preserve information when the calendar view 108 is printed.
The graphical user interface at 402 may further include user selectable elements that allow a calendar view 108 to be defined within a particular size or orientation. For example, a user may select a page view size and an orientation such as a landscape or portrait orientation. The markup language allows the calendar view 108 to be dynamically adjusted when page size and orientation information is merged with the calendar layout template 102. When the page size and orientation information is merged with the calendar layout template 102 the calendar view 108 can be dynamically adjusted to minimize or eliminate the loss of information by adjusting for example font sizes, slot dimensions, and other features within the calendar view 108.
Referring now to
The calendar layout template may include one or more time units. For example, the calendar layout template may define one or more of a multi-year time unit, a year time unit, a month time unit, a week time unit, and a day time unit. For example, as illustrated in
Embodiments described herein further allow for a time unit to be displayed disjoint from another time unit. For example,
Creating a calendar layout template (act 502) may include defining and/or specifying fonts, borders, shading, and the like. For example, a font may be specified from among a number of available fonts installed at a system. For example, True Type or Postscript type fonts may be installed at a system. One of the fonts installed can be specified for use in all or part of the calendar layout template. Shading, color schemes, borders, and the like may be defined within the calendar layout template. For example, these various features may be defined using a markup language such as the Windows Foundation Classes brush markup available from Microsoft Corporation of Redmond Wash.
In one embodiment, a separate style information data structure may be used to define various features of a calendar view. As illustrated in
Creating a calendar layout template may include defining views for one or more time units. For example, views may be list views or a slot views. As illustrated in
As described previously, creating a calendar layout template may include creating an XML file. XML files are useful as they provide a readily accessible format for template designers. Additionally, XML files may be useful in Web Services applications. Web Services is a standardized way of integrating applications. Standardized XML documents can be used with SOAP (Simple Object Access Protocol) messages and WSDL (Web Services Description Language) descriptions to integrate applications without an extensive knowledge of the applications being integrated.
Notably, as used herein, creating a calendar layout template may include importing a template file. For example, template designers may design template files. Users can then download those template files and create a copy of the template file as a calendar layout template locally by importing the template file. This results in a new template being created locally as an imported copy of a template file available in a remote location.
Referring once again to
Referring once again to
The method 500 may further include dynamically altering content size to prevent loss of information when a calendar view is displayed or printed. For example, and referring again to
The method 500 may further include merging style information with the calendar layout template. For example, and referring again to
The method 500 may also include merging external information with the calendar layout template. As illustrated and
As described previously the schedule of time and/or date specific events may be from multiple sources. In one embodiment, when this is the case, the method 500 further includes displaying the calendar view with the schedule of time and/or date specific events is from multiple sources displayed in a single time unit. For example, schedule information for two individuals may be merged together and displayed in a single time unit such as a single day view.
In an alternative embodiment, when the schedule of time and/or date specific events is from multiple sources, the method 500 may further include displaying the calendar view with the schedule of time and/or date specific events from multiple sources displayed with schedule of time and/or date specific events in different time units. For example, in one embodiment a side by side or top and bottom display may display one source of schedule information in the first time unit and another source of schedule information in a second time unit.
Referring now to
The method includes displaying a selection of views representing selectable calendar layout templates (act 602). For example, and referring to
Referring once again to
Referring once again to
Displaying a selection of views representing selectable calendar layout templates may include displaying calendar views. For example,
The method 600 may further include receiving user input defining style information. For example, a user may be able to select elements within the graphical user interface 402 to select style information 106 that may be used to define the calendar view 108. Such style information may include for example, fonts, color schemes, themes, calendar style, and the like.
The method 600 may further include receiving user input defining a date or range of dates. In this example, displaying a calendar view defined by schedule information (act 606) includes displaying time/or date information for specific events falling on the date or range of dates.
Embodiments may also include computer-readable media for carrying or having computer-executable instructions or data structures stored thereon. Such computer-readable media can be any available media that can be accessed by a general purpose or special purpose computer. By way of example, and not limitation, such computer-readable media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to carry or store desired program code means in the form of computer-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer. When information is transferred or provided over a network or another communications connection (either hardwired, wireless, or a combination of hardwired or wireless) to a computer, the computer properly views the connection as a computer-readable medium. Thus, any such connection is properly termed a computer-readable medium. Combinations of the above should also be included within the scope of computer-readable media.
Computer-executable instructions comprise, for example, instructions and data which cause a general purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions. Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.
The present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described embodiments are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is, therefore, indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.