DETAILED ACTION
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA . Claims 1-20 have been reviewed and are under consideration by this office action.
Continued Examination Under 37 CFR 1.114
A request for continued examination under 37 CFR 1.114, including the fee set forth in 37 CFR 1.17(e), was filed in this application after final rejection. Since this application is eligible for continued examination under 37 CFR 1.114, and the fee set forth in 37 CFR 1.17(e) has been timely paid, the finality of the previous Office action has been withdrawn pursuant to 37 CFR 1.114. Applicant's submission filed on 12/05/2025 has been entered.
Notice to Applicant
The following is a Non-Final Office action. Applicant amended claims. Claims 1-20 are pending in this application and have been rejected below.
Response to Amendment
Applicant’s amendments are received and acknowledged.
The amended claims overcome the need for a 101 Rejection and are therefore withdrawn.
Response to Arguments - 35 USC § 102/103
Applicant’s arguments with respect to the 35 USC 103 rejections have been fully considered, but they are moot in view of the new line of 103 Rejections below.
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
The factual inquiries set forth in Graham v. John Deere Co., 383 U.S. 1, 148 USPQ 459 (1966), that are applied for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows:
1. Determining the scope and contents of the prior art.
2. Ascertaining the differences between the prior art and the claims at issue.
3. Resolving the level of ordinary skill in the pertinent art.
4. Considering objective evidence present in the application indicating obviousness or nonobviousness.
Claim(s) 1-20 is/are rejected under 35 U.S.C. 103 as being unpatentable over Frank et al. (US 20180189744 A1) in view of Kittur (herein after referred to as “Kit”) (US 12541295 B2), and Schmidtke et al. (US 20220382961 A1).
Regarding Claim(s) 1 and 15, Frank teaches: A computer-implemented method for integrating project information in a calendar view of a workspace, the method comprising/ A non-transitory, computer-readable storage medium comprising instructions recorded thereon, wherein the instructions, when executed by at least one data processor of a system, cause the system to perform operations for suggesting prompts on a page of a workspace, the operations comprising: obtaining information associated with a project, (Frank, [40]; The systems and methods described herein provide a variety of improvements over certain calendar management paradigms. For example, embodiments provide a configurable, unified calendar platform that allows for exchange and management of media items. Users may provide media items to be associated with an event/meeting. The media items may enhance the calendar platform by allowing the users to provide additional information about an event/meeting. The media items may be indicated/identified using media data (e.g., identifiers, links to the media items, etc.) which are associated with event/meeting and Frank, [163]; All of the processes described above may be embodied in, and fully automated via, software code modules executed by one or more general purpose or special purpose computers or processors. The code modules may be stored on any type of computer-readable medium or other computer storage device or collection of storage devices).
wherein the information is represented as a plurality of blocks, (Frank, [131]; In another embodiment, the GUI 1000 may be a webpage provided/presented by a calendar platform. For example, the GUI 1000 may be presented by and/or displayed within a web browser when the user accesses or logs into a calendar platform via the web browser. The GUI 1000 includes a buttons 1005, 1010, 1015, 1030, 1035, 1040, 1045, and 1050. The GUI 1000 also includes checkboxes 1020 and 1025. Although the GUI 1000 is illustrated using buttons, checkboxes, text fields, etc., one having ordinary skill in the art understands that other embodiments may use links and/or other graphical user interface controls or elements in place of one or more of the buttons, checkboxes, text fields, etc. and Frank, [Fig. 10]; visual representation of plurality of blocks (e.g. “Event Title,” “Event Media”).
wherein at least part of the plurality of blocks includes one or more time properties; (Frank, [132]; Button 1005 may allow the user to specify a name for the event (and/or to modify the name for the event). Activating (e.g., pressing, clicking, tapping, etc.) button 1005 may cause the GUI 1000 to present a text field that may allow the user to specify/modify the name for the event. Buttons 1010 and 1015 may allow the user to specify/modify a start time and an end time for the event, respectively. Activating button 1010 or button 1015 may cause the GUI 1000 to present a text field or another GUI that displays a monthly calendar, to allow the user to specify/modify the start time or end time and Frank, [Fig. 10]; specifically elements 1010, 1015, 1020).
presenting, in a second graphical user interface, the at least part of the plurality of blocks according to the one or more time properties; (Frank, [132]; Buttons 1010 and 1015 may allow the user to specify/modify a start time and an end time for the event, respectively. Activating button 1010 or button 1015 may cause the GUI 1000 to present a text field or another GUI that displays a monthly calendar, to allow the user to specify/modify the start time or end time an Frank, [157]; the user creates an event within the private calendar providing for calendar synchronization; the user may download an application on another device and set up the same account on a second device; the user may update events within a private calendar on the first device and view updates on the second device). Examiner notes that Frank does teach syncing across multiple device, however, Kit below more explicitly teaches a plurality of interfaces
wherein the second graphical user interface includes… indicating a calendar page of a user who participates in the project; (Frank, [36]; Updates to the original calendar event may require the recipient to incorporate such updates into his or her personal calendar. Furthermore, in certain embodiments, when a recipient wishes to share the calendar event with a secondary recipient, it may be necessary for the recipient to forward the original event in addition to any subsequent updates to the secondary recipient in order to ensure that the up-to-date event information is communicated to the secondary recipient and Frank, [46]; The host server(s) 120 may be configured to facilitate calendar information communication between the client devices 110, and possibly other server(s) 170. Client devices 110 may exchange calendar information via the host server(s) 120 over the network 130, directly between client devices 110 via the network 130).
providing remote access to a user over a computer network so that the user can provide an input via the calendar page, (Frank, [66]; synchronization may be necessary if a source of calendar information is another externally-maintained calendar system or as between multiple networks of calendar systems. Examples of possible external calendar system interfaces may be Microsoft Exchange or Google Calendar, or other calendar platforms. In certain embodiments, synchronization and integration processes may support calendar and user data integration between external calendar systems and make them available to calendar users 114 within the calendar application without additional user action and Frank, [131-134]; the GUI 1000 includes a buttons 1005, 1010, 1015, 1030, 1035, 1040, 1045, and 1050. The GUI 1000 also includes checkboxes 1020 and 1025. Although the GUI 1000 is illustrated using buttons, checkboxes, text fields, etc., one having ordinary skill in the art understands that other embodiments may use links and/or other graphical user interface controls or elements in place of one or more of the buttons, checkboxes, text fields, etc…. Activating button 1010 or button 1015 may cause the GUI 1000 to present a text field or another GUI that displays a monthly calendar, to allow the user to specify/modify the start time or end time… Activating button 1035 may cause GUI 1000 to present a text field or a map that may allow the user to specify/modify the location for the meeting/event. Activating button 1040 may cause the GUI 1000 to present a text field to allow the user to specify/modify notes and/or other information about the event/meeting (e.g., the purpose of the meeting, an agenda, items to bring to the meeting, etc.).
storing the modification in a queue; (Frank, [45]; the storage server 180 may store media items that are associated with or are included with an event object. For example, a user of a client device 110 may add a media item (e.g., a digital movie) to an event/meeting. The client device 110 may be directed to store the media item on the storage server 180 (e.g., to transmit the media item to the storage server 180), or the client device 110 may transmit the media item to the host servers 120 and the host servers 120 may store the media item on the storage server 180 and Frank, [61]; The share ID may allow a calendar user 114 to automatically receive calendar updates associated with the share ID without requiring the calendar user to initiate checking for calendar updates. In certain embodiments, a share ID plus secondary identification information may be required to access a calendar where additional security is desired).
wherein the input introduces a modification to content of a block in the at least part of the plurality of blocks; and (Frank, [131-134]; he GUI 1000 includes a buttons 1005, 1010, 1015, 1030, 1035, 1040, 1045, and 1050. The GUI 1000 also includes checkboxes 1020 and 1025. Although the GUI 1000 is illustrated using buttons, checkboxes, text fields, etc., one having ordinary skill in the art understands that other embodiments may use links and/or other graphical user interface controls or elements in place of one or more of the buttons, checkboxes, text fields, etc…. Activating button 1010 or button 1015 may cause the GUI 1000 to present a text field or another GUI that displays a monthly calendar, to allow the user to specify/modify the start time or end time… Activating button 1035 may cause GUI 1000 to present a text field or a map that may allow the user to specify/modify the location for the meeting/event. Activating button 1040 may cause the GUI 1000 to present a text field to allow the user to specify/modify notes and/or other information about the event/meeting (e.g., the purpose of the meeting, an agenda, items to bring to the meeting, etc.).
automatically generating a message including the modification to the content of the block; (Frank, [61]; The share ID may allow a calendar user 114 to automatically receive calendar updates associated with the share ID without requiring the calendar user to initiate checking for calendar updates. In certain embodiments, a share ID plus secondary identification information may be required to access a calendar where additional security is desired. Examples of where a secondary level of security identification may be desired include calendar schedules for doctor/client appointments, personal travel itineraries, and/or employee work schedules and Frank, [45]; a user of a client device 110 may add a media item (e.g., a digital movie) to an event/meeting. The client device 110 may be directed to store the media item on the storage server 180 (e.g., to transmit the media item to the storage server 180), or the client device 110 may transmit the media item to the host servers 120 and the host servers 120 may store the media item on the storage server 180 and Frank, [67]; The communication module may support real-time and/or asynchronous communications between users within the system. For example, users may exchange messages (e.g., chat messages, text messages, etc.) to discuss an event/meeting (e.g., to discuss possible venues, agendas, transportation to the event, etc.). The messages may be associated with an event/meeting and may be stored/represented using discussion data).
While Frank teaches presenting a plurality of block and task data to a calendar, and syncing across multiple device (i.e. separate interfaces), Frank does not teach a hierarchical relationship with projects and sub-task. However, Frank in view of the analogous art of Kit (i.e. project interfaces) does teach multiple interfaces; presenting the plurality of blocks in a first graphical user interface in a first format indicating hierarchical relationship between the plurality of blocks; wherein the hierarchical relationship indicates a parent task associated with the project and a sub-task associated with the project; (Kit, [c. 19, l. 58-65]; The B-B task manager 300 automatically sorts tabs/content items under collapsible-expandable sections based on their statuses. In one example, references are sorted at the top for quick access, followed by to-do, to-read, completed, and deleted. The completed sections are collapsed (see, e.g., collapsed indicators 612) by default so that they do not distract the user from their primary tasks, and deleted items are moved into a global trash can view accessible via a trashcan selector 320(3) in the overview region 320 of the B-B UI 304 of FIG. 3 and Kit, [Fig. 6] specifically element 612 shows nested projects and subtasks and Kit, [c. 3, l. 40-44]; In some aspects, the present disclosure is directed to methods of providing user interfaces (UIs) that each operatively interface with corresponding content-access software, such as web-browser software, to assist a user with organizing content items, such as web-pages and/or portion(s) thereof, accessed via the content-access software and Kit, [c. 6, l. 46-54]; content-item managers, that provide GUIs that allow users to create, modify, manipulate, associate, organize, delete, etc., content-item bundles. Typically, each B-B content-item manager is built for a specific purpose, such as to provide a B-B task manager to assist users in managing their tasks (work and/or personal), to provide a B-B task management tool, a B-B research manager, or to provide a general B-B browser-tab organizer, among other things, and any combination thereof. As those skilled in the art will readily appreciate, many types of GUIs can be built around the content-item-bundle primitive to accommodate the functionality desired for a particular application).
transmitting the message to the first graphical user interface over the computer network, so that the first graphical user interface has immediate access to the modification; (Kit, [c. 23, l. 7-14]; The B-B task manager 300 automatically sorts tabs/content items under collapsible-expandable sections based on their statuses. In one example, references are sorted at the top for quick access, followed by to-do, to-read, completed, and deleted. The completed sections are collapsed (see, e.g., collapsed indicators 612) by default so that they do not distract the user from their primary tasks, and deleted items are moved into a global trash can view accessible via a trashcan selector 320(3) in the overview region 320 of the B-B UI 304 of FIG. 3). Examiner notes that while real time is implied by Kit, Frank (para. 6) explicitly teaches real time transmission).
automatically synchronizing the first graphical user interface and the second graphical user interface based on the input from the user by propagating the modified content of the block to the information associated with the project by: (Kit, [c. 23, l. 7-14]; The B-B task manager 300 automatically sorts tabs/content items under collapsible-expandable sections based on their statuses. In one example, references are sorted at the top for quick access, followed by to-do, to-read, completed, and deleted. The completed sections are collapsed (see, e.g., collapsed indicators 612) by default so that they do not distract the user from their primary tasks, and deleted items are moved into a global trash can view accessible via a trashcan selector 320(3) in the overview region 320 of the B-B UI 304 of FIG. 3). Examiner notes that while real time is implied by Kit, Frank (para. 6) explicitly teaches real time transmission).
While Frank/Kit does teach a second user interface and syncing data across interfaces, Frank does not appear to explicitly teach a second format. However, Frank/Kit in view of the analogous art of Schmidtke (i.e. document interfaces) does teach: wherein the second graphical user interface includes a second format indicating a calendar page of a user who participates in the project; (Schmidtke, [24]; The client renderer renders the second document in the client user interface based at least on the second intermediate format representation. In this manner, document changes may be rendered in the client user interface prior to the document being regenerated (e.g., by the server).
While Frank/Kit teach a GUI presenting a calendar page and hierarchical relationships of tasks neither teach converting formats. However, Frank/Kit in view of Schmidtke does teach: causing the first graphical user interface to convert the modification from the second format including the calendar page of the user who participates in the project to the first format including the hierarchical relationship representing the parent task associated with the project and the sub-task associated with the project; and causing the first graphical user interface to and present the modification to the user. (Schmidtke, [45]; UI renderer 308 may be configured to take an intermediate format representation (e.g., JSON code) and convert it into a different format that may be rendered in UI 110 (e.g., an HTML format that may be rendered in a browser). In examples, UI 110 may comprise browser 318 (e.g., a web browser). However, it will be appreciated that browser 318 is not required in all implementations. Rather, in some other implementations, UI 110 may be part of any other software or application, such as a standalone application for viewing and/or editing documents, and/or can be rendered on the web or via network 114 in any other suitable manner).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the disclosed invention to have combined the teachings of Frank including presenting a plurality of block and task data to a calendar with the teachings of Kit including hierarchical representations of project/task and transmitting over a network in order to further organize task and allow for content to be accessed across multiple platforms (Kit, [c. 12, l. 54-60]; To further organize her tasks, she creates an empty content-item bundle 324B(1) titled “Places to Stay” and nests her two hotel content-item bundles 312B(2) and 312B(3) under it in the project-view region 324. This creates a hierarchical-type content-item bundle. She then creates another empty content-item bundle, specifically a “Look For Restaurants” content-item bundle 324B(2) and Kit, [c. 23, l. 8-14]; task manager 300 (FIG. 3) synchronizes in-browser tasks across multiple computers, extending it to support mobile devices and other desktop applications is an option. For example, content-item, or task, content-item bundles in a B-B task manager of the present disclosure can be used as basic building blocks to connect devices and/or applications with one another to build a more holistic system).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the disclosed invention to have combined the teachings of Frank including a second user interface and syncing data across interfaces, with the teachings of Schmidtke including a second format in order to allow for easier editing and viewing of information (Schmidtke, [84]; a user may interact with UI 110 to edit a final document (e.g., What You See Is What You Get, also referred to as WYSIWYG), rather than a design layout that is then rendered. For instance, values of aggregations, number of pages, flow of a table, etc. will be the same whether editing or viewing a report in UI 110, allowing for an easier learning curve for users editing documents UI 110. In implementations, when a user views a paginated document or report, a source report definition language (RDL) may be deserialized, and a resulting RDL object model (e.g., a code that represents actual objects in the RDL) may be passed to processing and rendering engine 712. After this, the resulting RDL object model may be transformed into another format (e.g., a JSON render processing layout, or a JSON RPL), which may be rendered in UI).
Regarding Claim(s) 2, Frank/Kit/Schmidtke teaches: The computer-implemented method of claim 1, comprising: displaying, in a timeline page of the project, the at least part of the plurality of blocks according to the one or more time properties; and updating the timeline page of the project upon the content of the block being modified by the user. (Frank, [133]; Activating button 1035 may cause GUI 1000 to present a text field or a map that may allow the user to specify/modify the location for the meeting/event. Activating button 1040 may cause the GUI 1000 to present a text field to allow the user to specify/modify notes and/or other information about the event/meeting (e.g., the purpose of the meeting, an agenda, items to bring to the meeting, etc.). Activating button 1045 may cause the GUI 1000 to present a list of calendars that may include the event/meeting. This may allow the calendar platform to associate the meeting/event (or the event object for the meeting/event) with different calendars (or calendar objects). Activating button 1050 may cause the GUI 1000 to present a monthly calendar, a clock, a text field, etc., that may allow the user to specify a time for a reminder (for the event/meeting).
Regarding Claim(s) 3, Frank/Kit/Schmidtke teaches: The computer-implemented method of claim 2, comprising: providing, on the timeline page of the project, a link to the calendar page of the user. (Frank, [70]; The calendar integration module allows for the calendar system to bridge calendar platform boundaries and for the calendar system to work across current technical limitations. In certain embodiments, the calendar integration module 225e may provide linkage to an external calendar system where a calendar scheduler wishes to share calendar events from the external calendar system without exposing access credentials to and/or awareness of the external calendar system and Frank, [120]; in some embodiments the triggering information may be a calendar status change to a “published” state, change to a calendar event time/location, and/or a preset time duration interval from a prior update status and Frank, [131]; Although the GUI 1000 is illustrated using buttons, checkboxes, text fields, etc., one having ordinary skill in the art understands that other embodiments may use links and/or other graphical user interface controls or elements in place of one or more of the buttons, checkboxes, text fields, etc.).
Regarding Claim(s) 4, Frank/Kit/Schmidtke teaches: The computer-implemented method of claim 1, comprising: sending a notification to other users who are associated with content of the block. (Frank, [23]; FIG. 8 is a flow diagram illustrating a process for the refresh of calendar information on multiple devices by an event trigger, notification and update according to one or more embodiments and Frank, [Fig. 8]; elements 810 and 812 and Frank, [38]; it may be necessary for a scheduler to manually gather and/or export multiple calendar events in order to perform a single distribution of calendar events to a user group. In addition, in certain systems, updates and/or changes made to individual calendar events may trigger multiple user alerts and/or notifications due to management at the individual event-level versus higher-level calendar or subset of calendar alert and/or notification management and Frank, [64]; For example, one such triggering event may be after a scheduler has made one or more changes to a calendar and sets the calendar state to “publish,” which may trigger the application server to automatically send a notification and update availability to devices as managed by the synchronization module 225c. The synchronization management processes may also support information transfers among client devices for client communication data 323e (see FIG. 3) and Frank, [106]; a calendar scheduler may choose to distribute the Share ID via the calendar system through a selection of contacts 512, and/or a calendar scheduler may choose to distribute the Share ID via external processes. In some embodiments, the system may push a notification message directly to selected calendar users based on calendar membership information).
Regarding Claim(s) 5, Frank/Kit/Schmidtke teaches: The computer-implemented method of claim 1, wherein the one or more time properties of the at least part of the plurality of blocks comprise a due date, and the computer-implemented method comprises: displaying, in a first view of the calendar page, one or more blocks according to the due date. (Frank, [102]; In certain embodiments, a master calendar 410 (e.g., calendar object) may be managed by an individual user, or management may be shared among a group of users. A calendar may contain one or more calendar events 430 (e.g., calendar event objects), wherein the calendar events 430 may represent individual files, data structures, or collections of the same. Calendar events 430 may contain various parameters/attributes, such as date, time start, time end, organizer, invitees, and/or additional types of information).
Regarding Claim(s) 6, Frank/Kit/Schmidtke teaches: The computer-implemented method of claim 1, wherein the one or more time properties of the at least part of the plurality of blocks comprise a planned execution time, and the computer-implemented method comprises: displaying, in a second view of the calendar page, one or more blocks according to the planned execution time. (Frank, [102]; Calendar events 430 may contain various parameters/attributes, such as date, time start, time end, organizer, invitees, and/or additional types of information and Frank, [120]; in some embodiments the triggering information may be a calendar status change to a “published” state, change to a calendar event time/location, and/or a preset time duration interval from a prior update status. In another example, adding media data (e.g., adding a new media item to an event/discussion), modifying media data (e.g., changing media items associated with an event/discussion), and/or adding discussion data (e.g., adding one or more messages to a discussion for an event/meeting) may be triggers/triggering information. Multiple combinations of event triggers may be configured as needed to achieve an appropriate balance between resource utilization and immediate information availability and refresh frequency).
Regarding Claim(s) 7, Frank/Schmidtke teaches: The computer-implemented method of claim 1, comprising: displaying, together with the information associated with the project, user-specific information in the calendar page, (Frank, [132]; Button 1005 may allow the user to specify a name for the event (and/or to modify the name for the event). Activating (e.g., pressing, clicking, tapping, etc.) button 1005 may cause the GUI 1000 to present a text field that may allow the user to specify/modify the name for the event. Buttons 1010 and 1015 may allow the user to specify/modify a start time and an end time for the event, respectively. Activating button 1010 or button 1015 may cause the GUI 1000 to present a text field or another GUI that displays a monthly calendar, to allow the user to specify/modify the start time or end time).
wherein the user-specific information is retrieved from a calendar service; (Frank, [43-44]; The host server(s) 120 may contain a repository of calendar and/or user data 122 as well as a calendar application server 124. The calendar and/or user data repository, or data store, 122 and/or the application server 124 may reside on a single server or may be spread across multiple servers, as desired or practical. As a whole, the host server(s) may be considered a single logical entity for simplicity purposes as described herein; that is, references to a server or host server herein may represent one or more servers or devices configured to provide server-type functionality and/or services. The application server 124 may be implemented according to executable code and/or associated server components used to support computing on the server 120. The calendar/user data 122 may collectively comprise logical data, executable code, and/or associated components to support storage, data management, and retrieval of the data. The calendar/user data 122 may comprise calendar information consisting of one or more of various data structures or data types… In one embodiment, the calendar/user data 122 may include media data and/or discussion data. Media data may be data that indicates/identifies one or more media items that are associated with or are included with an event object (which represents an event/meeting).
receiving a second input from the user via the calendar page, (Frank, [12]; receive user input via a user input interface, the user input indicating a new event associated with the calendar object. In certain embodiments, in response to said receiving the user input, the master scheduler devices may be configured to determine an authorization level of the new event based on the user input, generate a calendar event object comprising the authorization level and Frank, [120]; In another example, adding media data (e.g., adding a new media item to an event/discussion), modifying media data (e.g., changing media items associated with an event/discussion), and/or adding discussion data (e.g., adding one or more messages to a discussion for an event/meeting) may be triggers/triggering information. and Frank, [132-133]; Buttons 1010 and 1015 may allow the user to specify/modify a start time and an end time for the event, respectively. Activating button 1010 or button 1015 may cause the GUI 1000 to present a text field or another GUI that displays a monthly calendar, to allow the user to specify/modify the start time or end time…Activating button 1035 may cause GUI 1000 to present a text field or a map that may allow the user to specify/modify the location for the meeting/event. Activating button 1040 may cause the GUI 1000 to present a text field to allow the user to specify/modify notes and/or other information about the event/meeting (e.g., the purpose of the meeting, an agenda, items to bring to the meeting, etc.).
wherein the second input modifies content of the user-specific information; and (Frank, [131-133]; In one embodiment, the GUI 1000 may be an interface for creating a new event/meeting and/or modifying an existing event/meeting. The GUI 1000 may be presented by a calendar application (e.g., an app, an application, a program, a software module/component, etc.) that may allow a user to create/modify events/meetings and may be used to invite other users to the event/meeting. The calendar application (e.g., app) may be executing/operating on a computing device (e.g., a client device) of a user (e.g., a smartphone, a tablet computer, etc.)… Activating button 1035 may cause GUI 1000 to present a text field or a map that may allow the user to specify/modify the location for the meeting/event. Activating button 1040 may cause the GUI 1000 to present a text field to allow the user to specify/modify notes and/or other information about the event/meeting (e.g., the purpose of the meeting, an agenda, items to bring to the meeting, etc.).
updating, via an Application Programming Interface (API) provided by the calendar service, the user-specific information based on the second input. (Frank, [77]; The calendar application 324 and calendar/user database 322 may contain some or all of the data and/or processes to implement the calendar system functionality on the device. The device OS/API 326 may provide one or more interfaces to general device services, such as data storage or memory, user interface components, and/or network layer communications. The device OS/API may also provide certain device-specific interface(s) to native device calendar data and/or sensor or user context data).
Regarding Claim(s) 8, Frank teaches: A computer-implemented method for integrating project information in a calendar page of a user, the computer-implemented method comprising: displaying user-specific information in the calendar page, wherein the user-specific information comprises at least one of an event, an appointment, or a task created by the user; (Frank, [40]; The systems and methods described herein provide a variety of improvements over certain calendar management paradigms. For example, embodiments provide a configurable, unified calendar platform that allows for exchange and management of media items. Users may provide media items to be associated with an event/meeting. The media items may enhance the calendar platform by allowing the users to provide additional information about an event/meeting. The media items may be indicated/identified using media data (e.g., identifiers, links to the media items, etc.) which are associated with event/meeting) and Frank, [61-62]; The share ID may allow a calendar user 114 to automatically receive calendar updates associated with the share ID without requiring the calendar user to initiate checking for calendar updates. In certain embodiments, a share ID plus secondary identification information may be required to access a calendar where additional security is desired. Examples of where a secondary level of security identification may be desired include calendar schedules for doctor/client appointments, personal travel itineraries, and/or employee work schedules…The relevant calendar/user data store may maintain user/share ID association data indicating for a given user the calendars that the user has been authorized for and/or invited to through share ID distribution as described herein. In certain embodiments, acknowledgment by a user of a received share ID may be required before user/share ID association is complete and represented, for example, at the backend calendar management server) .
obtaining part of project information that is associated with the user, (Frank, [40]; The systems and methods described herein provide a variety of improvements over certain calendar management paradigms. For example, embodiments provide a configurable, unified calendar platform that allows for exchange and management of media items. Users may provide media items to be associated with an event/meeting. The media items may enhance the calendar platform by allowing the users to provide additional information about an event/meeting. The media items may be indicated/identified using media data (e.g., identifiers, links to the media items, etc.) which are associated with event/meeting and Frank, [163]; All of the processes described above may be embodied in, and fully automated via, software code modules executed by one or more general purpose or special purpose computers or processors. The code modules may be stored on any type of computer-readable medium or other computer storage device or collection of storage devices).).
wherein the project information is represented as a plurality of blocks; (Frank, [131]; In another embodiment, the GUI 1000 may be a webpage provided/presented by a calendar platform. For example, the GUI 1000 may be presented by and/or displayed within a web browser when the user accesses or logs into a calendar platform via the web browser. The GUI 1000 includes a buttons 1005, 1010, 1015, 1030, 1035, 1040, 1045, and 1050. The GUI 1000 also includes checkboxes 1020 and 1025. Although the GUI 1000 is illustrated using buttons, checkboxes, text fields, etc., one having ordinary skill in the art understands that other embodiments may use links and/or other graphical user interface controls or elements in place of one or more of the buttons, checkboxes, text fields, etc. and Frank, [Fig. 10]; visual representation of plurality of blocks (e.g. “Event Title,” “Event Media”).
presenting, in a second graphical user interface in…including the calendar page of the user, the part of the project information together with the user-specific information according to a user selection of a specific view; (Frank, [132]; Buttons 1010 and 1015 may allow the user to specify/modify a start time and an end time for the event, respectively. Activating button 1010 or button 1015 may cause the GUI 1000 to present a text field or another GUI that displays a monthly calendar, to allow the user to specify/modify the start time or end time an Frank, [157]; the user creates an event within the private calendar providing for calendar synchronization; the user may download an application on another device and set up the same account on a second device; the user may update events within a private calendar on the first device and view updates on the second device). Examiner notes that Frank does teach syncing across multiple device, however, Kit below more explicitly teaches a plurality of interfaces.
presenting, in a second graphical user interface…. including the part of the project information together with the user-specific information according to a user selection of a specific view, wherein the specific view comprises at least one of: (1) a due-date view in which a first part of the plurality of blocks that comprises a due-date property is displayed in the calendar page; or (2) a planned execution view in which a second part of the plurality of blocks that comprises a planned execution property is displayed in the calendar page. (Frank, [83]; Such grouping of calendar data and events may be facilitated through the use of calendar, user, and/or event objects, which may comprise parameter data associated calendars with user identifiers and/or share IDs, as well as associating users with associated calendars and/or events. In certain embodiments, a calendar scheduler may manage a single calendar in its entirety using a selected usage template 323f, whereas calendar users may have individualized visibility on various devices and/or platforms via relatively simple access-sharing protocols and Frank, [95]; These usage templates may facilitate relatively efficient and easy-to-use user interaction to calendar data. The specialized controlled methods of user interaction to calendar data may include, but is not limited to, user interface controls, data entry, view/display, and/or notification alerts and Frank, [102]; Calendar events 430 may contain various parameters/attributes, such as date, time start, time end, organizer, invitees, and/or additional types of information and Frank, [120]; in some embodiments the triggering information may be a calendar status change to a “published” state, change to a calendar event time/location, and/or a preset time duration interval from a prior update status. In another example, adding media data (e.g., adding a new media item to an event/discussion), modifying media data (e.g., changing media items associated with an event/discussion), and/or adding discussion data (e.g., adding one or more messages to a discussion for an event/meeting) may be triggers/triggering information. Multiple combinations of event triggers may be configured as needed to achieve an appropriate balance between resource utilization and immediate information availability and refresh frequency).
providing remote access to a user over a computer network so that the user can provide an input via… calendar page, (Frank, [66]; synchronization may be necessary if a source of calendar information is another externally-maintained calendar system or as between multiple networks of calendar systems. Examples of possible external calendar system interfaces may be Microsoft Exchange or Google Calendar, or other calendar platforms. In certain embodiments, synchronization and integration processes may support calendar and user data integration between external calendar systems and make them available to calendar users 114 within the calendar application without additional user action and Frank, [131-134]; the GUI 1000 includes a buttons 1005, 1010, 1015, 1030, 1035, 1040, 1045, and 1050. The GUI 1000 also includes checkboxes 1020 and 1025. Although the GUI 1000 is illustrated using buttons, checkboxes, text fields, etc., one having ordinary skill in the art understands that other embodiments may use links and/or other graphical user interface controls or elements in place of one or more of the buttons, checkboxes, text fields, etc…. Activating button 1010 or button 1015 may cause the GUI 1000 to present a text field or another GUI that displays a monthly calendar, to allow the user to specify/modify the start time or end time… Activating button 1035 may cause GUI 1000 to present a text field or a map that may allow the user to specify/modify the location for the meeting/event. Activating button 1040 may cause the GUI 1000 to present a text field to allow the user to specify/modify notes and/or other information about the event/meeting (e.g., the purpose of the meeting, an agenda, items to bring to the meeting, etc.).
storing the modification in a queue; (Frank, [45]; the storage server 180 may store media items that are associated with or are included with an event object. For example, a user of a client device 110 may add a media item (e.g., a digital movie) to an event/meeting. The client device 110 may be directed to store the media item on the storage server 180 (e.g., to transmit the media item to the storage server 180), or the client device 110 may transmit the media item to the host servers 120 and the host servers 120 may store the media item on the storage server 180 and Frank, [61]; The share ID may allow a calendar user 114 to automatically receive calendar updates associated with the share ID without requiring the calendar user to initiate checking for calendar updates. In certain embodiments, a share ID plus secondary identification information may be required to access a calendar where additional security is desired).
automatically generating a message including the modification to the content of the block; ((Frank, [61]; The share ID may allow a calendar user 114 to automatically receive calendar updates associated with the share ID without requiring the calendar user to initiate checking for calendar updates. In certain embodiments, a share ID plus secondary identification information may be required to access a calendar where additional security is desired. Examples of where a secondary level of security identification may be desired include calendar schedules for doctor/client appointments, personal travel itineraries, and/or employee work schedules and Frank, [45]; a user of a client device 110 may add a media item (e.g., a digital movie) to an event/meeting. The client device 110 may be directed to store the media item on the storage server 180 (e.g., to transmit the media item to the storage server 180), or the client device 110 may transmit the media item to the host servers 120 and the host servers 120 may store the media item on the storage server 180 and Frank, [67]; The communication module may support real-time and/or asynchronous communications between users within the system. For example, users may exchange messages (e.g., chat messages, text messages, etc.) to discuss an event/meeting (e.g., to discuss possible venues, agendas, transportation to the event, etc.). The messages may be associated with an event/meeting and may be stored/represented using discussion data).
wherein the input introduces a modification to content of a block in the at least part of the plurality of blocks; (Frank, [131-134]; he GUI 1000 includes a buttons 1005, 1010, 1015, 1030, 1035, 1040, 1045, and 1050. The GUI 1000 also includes checkboxes 1020 and 1025. Although the GUI 1000 is illustrated using buttons, checkboxes, text fields, etc., one having ordinary skill in the art understands that other embodiments may use links and/or other graphical user interface controls or elements in place of one or more of the buttons, checkboxes, text fields, etc…. Activating button 1010 or button 1015 may cause the GUI 1000 to present a text field or another GUI that displays a monthly calendar, to allow the user to specify/modify the start time or end time… Activating button 1035 may cause GUI 1000 to present a text field or a map that may allow the user to specify/modify the location for the meeting/event. Activating button 1040 may cause the GUI 1000 to present a text field to allow the user to specify/modify notes and/or other information about the event/meeting (e.g., the purpose of the meeting, an agenda, items to bring to the meeting, etc.).
While Frank teaches presenting a plurality of block and task data to a calendar, and syncing across multiple device (i.e. separate interfaces), Frank does not teach a hierarchical relationship with projects and sub-task. However, Frank in view of the analogous art of Kit (i.e. project interfaces) does teach multiple interfaces; presenting the plurality of blocks in a first graphical user interface in a first format indicating hierarchical relationship between the plurality of blocks; wherein the hierarchical relationship indicates a parent task associated with the project and a sub-task associated with the project; (Kit, [c. 19, l. 58-65]; The B-B task manager 300 automatically sorts tabs/content items under collapsible-expandable sections based on their statuses. In one example, references are sorted at the top for quick access, followed by to-do, to-read, completed, and deleted. The completed sections are collapsed (see, e.g., collapsed indicators 612) by default so that they do not distract the user from their primary tasks, and deleted items are moved into a global trash can view accessible via a trashcan selector 320(3) in the overview region 320 of the B-B UI 304 of FIG. 3 and Kit, [Fig. 6] specifically element 612 shows nested projects and subtasks and Kit, [c. 3, l. 40-44]; In some aspects, the present disclosure is directed to methods of providing user interfaces (UIs) that each operatively interface with corresponding content-access software, such as web-browser software, to assist a user with organizing content items, such as web-pages and/or portion(s) thereof, accessed via the content-access software and Kit, [c. 6, l. 46-54]; content-item managers, that provide GUIs that allow users to create, modify, manipulate, associate, organize, delete, etc., content-item bundles. Typically, each B-B content-item manager is built for a specific purpose, such as to provide a B-B task manager to assist users in managing their tasks (work and/or personal), to provide a B-B task management tool, a B-B research manager, or to provide a general B-B browser-tab organizer, among other things, and any combination thereof. As those skilled in the art will readily appreciate, many types of GUIs can be built around the content-item-bundle primitive to accommodate the functionality desired for a particular application).
automatically synchronizing the first graphical user interface and the second graphical user interface based on the input from the user by propagating the modified content of the block to the information associated with the project by: (Kit, [c. 23, l. 7-14]; The B-B task manager 300 automatically sorts tabs/content items under collapsible-expandable sections based on their statuses. In one example, references are sorted at the top for quick access, followed by to-do, to-read, completed, and deleted. The completed sections are collapsed (see, e.g., collapsed indicators 612) by default so that they do not distract the user from their primary tasks, and deleted items are moved into a global trash can view accessible via a trashcan selector 320(3) in the overview region 320 of the B-B UI 304 of FIG. 3). Examiner notes that while real time is implied by Kit, Frank (para. 6) explicitly teaches real time transmission).
transmitting the message to the first graphical user interface over the computer network, so that the first graphical user interface has immediate access to the modification; and (Kit, [c. 23, l. 7-14]; The B-B task manager 300 automatically sorts tabs/content items under collapsible-expandable sections based on their statuses. In one example, references are sorted at the top for quick access, followed by to-do, to-read, completed, and deleted. The completed sections are collapsed (see, e.g., collapsed indicators 612) by default so that they do not distract the user from their primary tasks, and deleted items are moved into a global trash can view accessible via a trashcan selector 320(3) in the overview region 320 of the B-B UI 304 of FIG. 3). Examiner notes that while real time is implied by Kit, Frank (para. 6) explicitly teaches real time transmission).
While Frank/Kit does teach a second user interface and syncing data across interfaces, Frank does not appear to explicitly teach a second format. However, Frank in view of the analogous art of Schmidtke (i.e. document interfaces) does teach: a second format indicating a calendar page; (Schmidtke, [24]; The client renderer renders the second document in the client user interface based at least on the second intermediate format representation. In this manner, document changes may be rendered in the client user interface prior to the document being regenerated (e.g., by the server).
While Frank/Kit teach a GUI presenting a calendar page and hierarchical relationships of tasks neither teach converting formats. However, Frank/Kit in view of Schmidtke does teach: causing the first graphical user interface to convert the modification from the second format including the calendar page of the user who participates in the project to the first format including the hierarchical relationship representing the parent task associated with the project and the sub-task associated with the project; and causing the first graphical user interface to and present the modification to the user. (Schmidtke, [45]; UI renderer 308 may be configured to take an intermediate format representation (e.g., JSON code) and convert it into a different format that may be rendered in UI 110 (e.g., an HTML format that may be rendered in a browser). In examples, UI 110 may comprise browser 318 (e.g., a web browser). However, it will be appreciated that browser 318 is not required in all implementations. Rather, in some other implementations, UI 110 may be part of any other software or application, such as a standalone application for viewing and/or editing documents, and/or can be rendered on the web or via network 114 in any other suitable manner).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the disclosed invention to have combined the teachings of Frank including presenting a plurality of block and task data to a calendar with the teachings of Kit including hierarchical representations of project/task and transmitting over a network in order to further organize task and allow for content to be accessed across multiple platforms (Kit, [c. 12, l. 54-60]; To further organize her tasks, she creates an empty content-item bundle 324B(1) titled “Places to Stay” and nests her two hotel content-item bundles 312B(2) and 312B(3) under it in the project-view region 324. This creates a hierarchical-type content-item bundle. She then creates another empty content-item bundle, specifically a “Look For Restaurants” content-item bundle 324B(2) and Kit, [c. 23, l. 8-14]; task manager 300 (FIG. 3) synchronizes in-browser tasks across multiple computers, extending it to support mobile devices and other desktop applications is an option. For example, content-item, or task, content-item bundles in a B-B task manager of the present disclosure can be used as basic building blocks to connect devices and/or applications with one another to build a more holistic system).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the disclosed invention to have combined the teachings of Frank including a second user interface and syncing data across interfaces, with the teachings of Schmidtke including a second format in order to allow for easier editing and viewing of information (Schmidtke, [84]; a user may interact with UI 110 to edit a final document (e.g., What You See Is What You Get, also referred to as WYSIWYG), rather than a design layout that is then rendered. For instance, values of aggregations, number of pages, flow of a table, etc. will be the same whether editing or viewing a report in UI 110, allowing for an easier learning curve for users editing documents UI 110. In implementations, when a user views a paginated document or report, a source report definition language (RDL) may be deserialized, and a resulting RDL object model (e.g., a code that represents actual objects in the RDL) may be passed to processing and rendering engine 712. After this, the resulting RDL object model may be transformed into another format (e.g., a JSON render processing layout, or a JSON RPL), which may be rendered in UI).
Regarding Claim(s) 9, Frank/Kit/Schmidtke teaches: The computer-implemented method of claim 8, comprising: providing a timeline view of the project information displayed according to one or more time properties of the project information, (Frank, [133]; Activating button 1035 may cause GUI 1000 to present a text field or a map that may allow the user to specify/modify the location for the meeting/event. Activating button 1040 may cause the GUI 1000 to present a text field to allow the user to specify/modify notes and/or other information about the event/meeting (e.g., the purpose of the meeting, an agenda, items to bring to the meeting, etc.). Activating button 1045 may cause the GUI 1000 to present a list of calendars that may include the event/meeting. This may allow the calendar platform to associate the meeting/event (or the event object for the meeting/event) with different calendars (or calendar objects). Activating button 1050 may cause the GUI 1000 to present a monthly calendar, a clock, a text field, etc., that may allow the user to specify a time for a reminder (for the event/meeting).
wherein a link to the calendar page of the user is provided as part of the timeline view of the project information. (Frank, [70]; The calendar integration module allows for the calendar system to bridge calendar platform boundaries and for the calendar system to work across current technical limitations. In certain embodiments, the calendar integration module 225e may provide linkage to an external calendar system where a calendar scheduler wishes to share calendar events from the external calendar system without exposing access credentials to and/or awareness of the external calendar system and Frank, [131]; Although the GUI 1000 is illustrated using buttons, checkboxes, text fields, etc., one having ordinary skill in the art understands that other embodiments may use links and/or other graphical user interface controls or elements in place of one or more of the buttons, checkboxes, text fields, etc. and Frank, [132]; Activating button 1010 or button 1015 may cause the GUI to present a text field or another GUI that displays a monthly calendar, to allow the user to specify/modify the start time or end time).
Regarding Claim(s) 10, Frank/Kit/Schmidtke teaches: The computer-implemented method of claim 8, comprising: automatically updating the plurality of blocks representing the project information on the page of the workspace upon a change made by the user on the calendar page. (Frank, [90]; The synchronization and communications module 325c may contain certain processes and/or data required to facilitate communications among relevant host server(s), client device(s), and/or other server(s). Communications may be system process data interactions (e.g. data synchronization, system updates, session management) or client device user interactions (e.g. text, video chat, document exchanges). The synchronization and communications module 325c may support client communications via direct device-to-device communication, via host servers, or external services, depending possibly on implementation configuration. The communication module may support substantially real-time and/or asynchronous communications between users within the system and Frank, [155]; Calendar synchronization in accordance with embodiments disclosed herein may be implemented in various novel ways. For example, in certain embodiments, a single notification may be used for multi-calendar/multi-event updates; multiple calendar events may push to individual users by single notification. Certain embodiments provide for indirect public calendar sharing. For example, a shared calendar may be made available for anyone to access without direct invitation by the calendar owner/manager through sharing of link or calendar ID and Frank, [61]; The share ID may allow a calendar user 114 to automatically receive calendar updates associated with the share ID without requiring the calendar user to initiate checking for calendar updates. In certain embodiments, a share ID plus secondary identification information may be required to access a calendar where additional security is desired).
Regarding Claim(s) 11, Frank/Kit/Schmidtke teaches: The computer-implemented method of claim 10, further comprising: sending a notification of the change to other users who are associated with the part of the project information. (Frank, [23]; FIG. 8 is a flow diagram illustrating a process for the refresh of calendar information on multiple devices by an event trigger, notification and update according to one or more embodiments and Frank, [Fig. 8]; elements 810 and 812 and Frank, [38]; it may be necessary for a scheduler to manually gather and/or export multiple calendar events in order to perform a single distribution of calendar events to a user group. In addition, in certain systems, updates and/or changes made to individual calendar events may trigger multiple user alerts and/or notifications due to management at the individual event-level versus higher-level calendar or subset of calendar alert and/or notification management and Frank, [64]; For example, one such triggering event may be after a scheduler has made one or more changes to a calendar and sets the calendar state to “publish,” which may trigger the application server to automatically send a notification and update availability to devices as managed by the synchronization module 225c. The synchronization management processes may also support information transfers among client devices for client communication data 323e (see FIG. 3) and Frank, [106]; a calendar scheduler may choose to distribute the Share ID via the calendar system through a selection of contacts 512, and/or a calendar scheduler may choose to distribute the Share ID via external processes. In some embodiments, the system may push a notification message directly to selected calendar users based on calendar membership information).
Regarding Claim(s) 12, Frank/Kit/Schmidtke teaches: The computer-implemented method of claim 8, comprising: automatically updating the calendar page upon detecting a change made to the part of the project information. (Frank, [61]; The share ID may allow a calendar user 114 to automatically receive calendar updates associated with the share ID without requiring the calendar user to initiate checking for calendar updates. In certain embodiments, a share ID plus secondary identification information may be required to access a calendar where additional security is desired and Frank, [65]; The synchronization module 225c may support synchronization of calendar data 223b between the server(s) and device(s), as well as between local device calendar data and the device's native calendar data 323k. For example, in one embodiment a synchronization module may maintain a list of active users/devices connected to the system to target real-time information exchanges between the devices. Another embodiment may allow for a user/device to query the application server 224 to determine a calendar state and determine if a refresh of calendar data is required. The synchronization module 225c may manage conflicts among calendar events and allow the user to respond to the conflict. Examples of conflicts may be event overlap or employee schedule maximums).
Regarding Claim(s) 13, Frank/Kit/Schmidtke teaches: The computer-implemented method of claim 8, wherein the project information comprises a block that spans across multiple days, and wherein the block is displayed above the user-specific information in the calendar page. (Frank, [142]; Each of the thumbnails 1301-1313 illustrated in FIG. 13 may represent a media item that is stored on the user's computing device. As illustrated in FIG. 13, the top seven thumbnails 1301-1307 may represent media items (e.g., pictures) on the user's computing device that were created on Monday. The bottom six thumbnails 1308-1313 may represent media items that were created Sunday (i.e., Yesterday). The thumbnails 1301-1313 may allow the user to select one or more media items to include in an event/meeting for one or more calendars. For example, the thumbnails 1301-1313 may allow the user to select a video of a meeting venue for an event/meeting. In one embodiment, the user may activate (e.g., block, press, tap, tap and hold, etc.) a thumbnail to select the media item represented by the thumbnail, as discussed in more detail below) and Frank, [Fig. 11]; visual representation where project information such as start date/end date and event media (i.e. project information) are displayed). Examiner notes the photos represent block spanning across multiple days. Examiner further notes the Frank discloses start date and end date wherein the dates can be selected allowing for multiple days.
Regarding Claim(s) 14, Frank/Kit/Schmidtke teaches: The computer-implemented method of claim 8, wherein the project information comprises a block that occupies a number of hours on a single day, and wherein the block is displayed together with corresponding user-specific information on the day. (Frank, [132]; Button 1005 may allow the user to specify a name for the event (and/or to modify the name for the event). Activating (e.g., pressing, clicking, tapping, etc.) button 1005 may cause the GUI 1000 to present a text field that may allow the user to specify/modify the name for the event. Buttons 1010 and 1015 may allow the user to specify/modify a start time and an end time for the event, respectively. Activating button 1010 or button 1015 may cause the GUI 1000 to present a text field or another GUI that displays a monthly calendar, to allow the user to specify/modify the start time or end time).
Regarding Claim(s) 16, Frank/Kit/Schmidtke teaches: The non-transitory, computer-readable storage medium of claim 15, wherein the operations comprise: receiving an input from the user, via the calendar page, wherein the input modifies content of a block in the at least part of the plurality of blocks; and (Frank, [100]; The client device 310 may further include a user input/output module 390, which may comprise one or more hardware and/or software components for receiving user input and Frank, [132]; Button 1005 may allow the user to specify a name for the event (and/or to modify the name for the event). Activating (e.g., pressing, clicking, tapping, etc.) button 1005 may cause the GUI 1000 to present a text field that may allow the user to specify/modify the name for the event. Buttons 1010 and 1015 may allow the user to specify/modify a start time and an end time for the event, respectively. Activating button 1010 or button 1015 may cause the GUI 1000 to present a text field or another GUI that displays a monthly calendar, to allow the user to specify/modify the start time or end time).
automatically synchronizing the modified content of the block to the information associated with the project. Frank, [90]; The synchronization and communications module 325c may contain certain processes and/or data required to facilitate communications among relevant host server(s), client device(s), and/or other server(s). Communications may be system process data interactions (e.g. data synchronization, system updates, session management) or client device user interactions (e.g. text, video chat, document exchanges). The synchronization and communications module 325c may support client communications via direct device-to-device communication, via host servers, or external services, depending possibly on implementation configuration. The communication module may support substantially real-time and/or asynchronous communications between users within the system and Frank, [155]; Calendar synchronization in accordance with embodiments disclosed herein may be implemented in various novel ways. For example, in certain embodiments, a single notification may be used for multi-calendar/multi-event updates; multiple calendar events may push to individual users by single notification. Certain embodiments provide for indirect public calendar sharing. For example, a shared calendar may be made available for anyone to access without direct invitation by the calendar owner/manager through sharing of link or calendar ID and Frank, [61]; The share ID may allow a calendar user 114 to automatically receive calendar updates associated with the share ID without requiring the calendar user to initiate checking for calendar updates. In certain embodiments, a share ID plus secondary identification information may be required to access a calendar where additional security is desired).
Regarding Claim(s) 17, Frank/Kit/Schmidtke teaches: The non-transitory, computer-readable storage medium of claim 15, wherein the operations comprise: automatically synchronizing the calendar page upon a change to the information of the project. Frank, [90]; The synchronization and communications module 325c may contain certain processes and/or data required to facilitate communications among relevant host server(s), client device(s), and/or other server(s). Communications may be system process data interactions (e.g. data synchronization, system updates, session management) or client device user interactions (e.g. text, video chat, document exchanges). The synchronization and communications module 325c may support client communications via direct device-to-device communication, via host servers, or external services, depending possibly on implementation configuration. The communication module may support substantially real-time and/or asynchronous communications between users within the system and Frank, [155]; Calendar synchronization in accordance with embodiments disclosed herein may be implemented in various novel ways. For example, in certain embodiments, a single notification may be used for multi-calendar/multi-event updates; multiple calendar events may push to individual users by single notification. Certain embodiments provide for indirect public calendar sharing. For example, a shared calendar may be made available for anyone to access without direct invitation by the calendar owner/manager through sharing of link or calendar ID and Frank, [61]; The share ID may allow a calendar user 114 to automatically receive calendar updates associated with the share ID without requiring the calendar user to initiate checking for calendar updates. In certain embodiments, a share ID plus secondary identification information may be required to access a calendar where additional security is desired).
Regarding Claim(s) 18, Frank/Kit/Schmidtke teaches: The non-transitory, computer-readable storage medium of claim 15, wherein the operations comprise: displaying, in a timeline page of the project, the at least part of the plurality of blocks according to the one or more time properties; and updating the timeline page of the project upon content of a block being modified by the user. (Frank, [133]; Activating button 1035 may cause GUI 1000 to present a text field or a map that may allow the user to specify/modify the location for the meeting/event. Activating button 1040 may cause the GUI 1000 to present a text field to allow the user to specify/modify notes and/or other information about the event/meeting (e.g., the purpose of the meeting, an agenda, items to bring to the meeting, etc.). Activating button 1045 may cause the GUI 1000 to present a list of calendars that may include the event/meeting. This may allow the calendar platform to associate the meeting/event (or the event object for the meeting/event) with different calendars (or calendar objects). Activating button 1050 may cause the GUI 1000 to present a monthly calendar, a clock, a text field, etc., that may allow the user to specify a time for a reminder (for the event/meeting).
Regarding Claim(s) 19, Frank/Kit/Schmidtke teaches: The non-transitory, computer-readable storage medium of claim 15, wherein the one or more time properties of the at least part of the plurality of blocks comprise a due date, and wherein the operations comprise: displaying, in a first view of the calendar page, one or more blocks according to the due date. (Frank, [102]; In certain embodiments, a master calendar 410 (e.g., calendar object) may be managed by an individual user, or management may be shared among a group of users. A calendar may contain one or more calendar events 430 (e.g., calendar event objects), wherein the calendar events 430 may represent individual files, data structures, or collections of the same. Calendar events 430 may contain various parameters/attributes, such as date, time start, time end, organizer, invitees, and/or additional types of information).
Regarding Claim(s) 20, Frank/Kit/Schmidtke teaches: The non-transitory, computer-readable storage medium of claim 15, wherein the one or more time properties of the at least part of the plurality of blocks comprise a planned execution time, and wherein the operations comprise: displaying, in a second view of the calendar page, one or more blocks according to the planned execution time. (Frank, [102]; Calendar events 430 may contain various parameters/attributes, such as date, time start, time end, organizer, invitees, and/or additional types of information and Frank, [120]; in some embodiments the triggering information may be a calendar status change to a “published” state, change to a calendar event time/location, and/or a preset time duration interval from a prior update status. In another example, adding media data (e.g., adding a new media item to an event/discussion), modifying media data (e.g., changing media items associated with an event/discussion), and/or adding discussion data (e.g., adding one or more messages to a discussion for an event/meeting) may be triggers/triggering information. Multiple combinations of event triggers may be configured as needed to achieve an appropriate balance between resource utilization and immediate information availability and refresh frequency).
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to JEREMY L GUNN whose telephone number is (571)270-1728. The examiner can normally be reached Monday - Friday 6:30-4:30.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Jerry O'Connor can be reached at (571) 272-6787. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/JEREMY L GUNN/Examiner, Art Unit 3624