IP Library Granted Patent US 11,481,735
Granted Patent B1
US 11,481,735 · App. 16/263,753 · Granted Oct 25, 2022

Validating, aggregating, and managing calendar event data from external calendar resources within a group-based communication system

Inventors: Roland Schemers (Woodside, CA); James McPhail (San Francisco, CA); Lydia Han (San Francisco, CA)
Assignee: Slack Technologies, LLC.
G06Q10/1093H04L51/08
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,481,735
App. No.
16/263,753
Granted
Oct 25, 2022
Kind
B1
Abstract

Provided is an apparatus, computer implemented method, and computer program product configured to programmatically validate, aggregate, and manage calendar event data in a group-based communication interface of a group-based communication system.

Claims (66)

1. An apparatus for validating, aggregating, and managing calendar event data in a group-based communication interface of a group-based communication system, the apparatus comprising at least one processor, and at least one memory having computer instructions therein, with the computer instructions configured to, when executed by the at least one processor, cause the apparatus to:

receive an external calendar event data object from an external calendar resource;

parse the external calendar event data object to identify external calendar event contextual data;

receive a second external calendar event data object from the external calendar resource;

parse the second external calendar event data object to identify second external calendar event contextual data;

identify common identifier data within both of the external calendar event contextual data and the second external calendar event contextual data, the common identifier data comprising a unique user identifier of a user that identifies the user within the group-based communication system;

identify prioritization data by querying a group-based communication system data corpus based on the common identifier data shared between the external calendar event contextual data and the second external calendar event contextual data, the group-based communication system data corpus comprising group-based communication messaging data, group-based communication channel data, and group-based communication work object data;

determine a prioritization score for the external calendar event data object relative to a second prioritization score of the second external calendar event data object based on the external calendar event contextual data, the second external calendar event contextual data, and the prioritization data,

wherein the prioritization score is based at least in part on user activity within a group-based communication channel including user access frequency data of the user accessing the group-based communication channel;

cause display of the external calendar event data object in the group-based communication channel within a group-based communication interface based on group-based communication channel settings and a prioritization score ranking, wherein the group-based communication channel is associated with a set of users who are associated with a workspace of the group-based communication system with access to the group-based communication channel;

receive a user acceptance input associated with the external calendar event data object or the second external calendar event data object;

transmit instructions for causing display of an aggregate calendar event interface comprising the external calendar event data object or the second external calendar event data object; and

updating the aggregate calendar event interface to include one or more accepted calendar event data objects based on the user acceptance input.

2. The apparatus of claim 1 , wherein parsing the external calendar event data object and the second external calendar event data object to identify the external calendar event contextual data and the second external calendar event contextual data, respectively, comprises:

generating a prioritization weight estimate for the prioritization data, wherein the prioritization weight estimate is generated using a prioritization suggestion model; and

determining the prioritization score for the external calendar event data object relative to the second prioritization score of the second external calendar event data object based on the generated prioritization weight estimate, the external calendar event contextual data, the second external calendar event contextual data, and the prioritization data.

3. The apparatus of claim 2 , wherein the prioritization weight estimate comprises a plurality of topic-related weights for the prioritization data corresponding to a topic work graph determined from the group-based communication system data corpus.

4. The apparatus of claim 2 , wherein the prioritization weight estimate comprises a plurality of user-related weights for the prioritization data corresponding to a user work graph determined from the group-based communication system data corpus.

5. The apparatus of claim 2 , wherein the prioritization weight estimate comprises a plurality of channel-related weights for the prioritization data corresponding to a channel work graph determined from the group-based communication system data corpus.

6. The apparatus of claim 1 , wherein the at least one memory and the computer instructions, when executed by the at least one processor, cause the apparatus to further:

receive feedback data regarding the prioritization score for the external calendar event data object; and

modify a prioritization suggestion model using the feedback data.

7. The apparatus of claim 1 , wherein the external calendar event contextual data comprises one or more of: event subject information, topic information, event location information, event date and time information, event organizer information, event attendee information and associated attendee responses, event type information, event visibility, reminders, work objects, and event detail information that comprises text, images, audio, and file attachments.

8. The apparatus of claim 7 , wherein the work objects comprise one or more of: a file object, a call object, a task object, an event object, a message object, a notification object, a calendar event data object, and an email object.

9. The apparatus of claim 1 , wherein the aggregate calendar event interface is configured to display additional accepted calendar event data objects from a plurality of external calendar resources.

10. An apparatus for validating, aggregating, and managing calendar event data in a group-based communication interface of a group-based communication system, the apparatus comprising at least one processor, and at least one memory having computer instructions therein, with the computer instructions configured to, when executed by the at least one processor, cause the apparatus to:

receive an external calendar event data object from a first external calendar resource;

parse the external calendar event data object to identify external calendar event contextual data;

receive a second external calendar event data object from a second external calendar resource;

parse the second external calendar event data object to identify second external calendar event contextual data;

identify common identifier data within both of the external calendar event contextual data and the second external calendar event contextual data, the common identifier data comprising a unique user identifier of a user that identifies the user within the group-based communication system;

identify prioritization data by querying a group-based communication system data corpus based on the common identifier data shared between the external calendar event contextual data and the second external calendar event contextual data, the group-based communication system data corpus comprising group-based communication messaging data, group-based communication channel data, and group-based communication work object data;

determine a prioritization score for the external calendar event data object relative to a second prioritization score of the second external calendar event data object based on the external calendar event contextual data, the second external calendar event contextual data, and the prioritization data;

wherein the prioritization score is based at least in part on user activity within a group-based communication channel including user access frequency data of the user accessing the group-based communication channel; and

a cause display of the external calendar event data object in the group-based communication channel within a group-based communication interface based on group-based communication channel settings and a prioritization score ranking, wherein the group-based communication channel is associated with a set of users who are associated with a workspace of the group-based communication system with access to the group-based communication channel;

receive a user acceptance input associated with the external calendar event data object or the second external calendar event data object

transmit instructions for causing display of an aggregate calendar event interface comprising the external calendar event data object or the second external calendar event data object; and

updating the aggregate calendar event interface to include one or more accepted calendar event data objects based on the user acceptance input.

11. The apparatus of claim 10 , wherein parsing the external calendar event data object and the second external calendar event data object to identify the external calendar event contextual data and the second external calendar event contextual data, respectively, comprises:

generating a prioritization weight estimate for the prioritization data, wherein the prioritization weight estimate is generated using a prioritization suggestion model; and

determining the prioritization score for the external calendar event data object relative to the second prioritization score of the second external calendar event data object based on the generated prioritization weight estimate, the external calendar event contextual data, the second external calendar event contextual data, and the prioritization data.

12. The apparatus of claim 11 , wherein the prioritization weight estimate comprises a plurality of topic-related weights for the prioritization data corresponding to a topic work graph determined from the group-based communication system data corpus.

13. The apparatus of claim 11 , wherein the prioritization weight estimate comprises a plurality of user-related weights for the prioritization data corresponding to a user work graph determined from the group-based communication system data corpus.

14. The apparatus of claim 11 , wherein the prioritization weight estimate comprises a plurality of channel-related weights for the prioritization data corresponding to a channel work graph determined from the group-based communication system data corpus.

15. The apparatus of claim 10 , wherein the at least one memory and the computer instructions, when executed by the at least one processor, cause the apparatus to further:

receive feedback data regarding the prioritization score for the external calendar event data object; and

modify a prioritization suggestion model using the feedback data.

16. The apparatus of claim 10 , wherein the external calendar event contextual data comprises one or more of: event subject information, topic information, event location information, event date and time information, event organizer information, event attendee information and associated attendee responses, event type information, event visibility, reminders, work objects, and event detail information that comprises text, images, audio, and file attachments.

17. The apparatus of claim 16 , wherein the work objects comprise one or more of: a file object, a call object, a task object, an event object, a message object, a notification object, a calendar event data object, and an email object.

18. The apparatus of claim 10 wherein the aggregate calendar event interface is configured to display additional accepted calendar event data objects from a plurality of external calendar resources.

19. An apparatus for validating, aggregating, and managing calendar event data in a group-based communication interface of a group-based communication system, the apparatus comprising at least one processor, and at least one memory having computer instructions therein, with the computer instructions configured to, when executed by the at least one processor, cause the apparatus to:

receive an external calendar event data object from a first external calendar resource;

parse the external calendar event data object to identify external calendar event contextual data;

receive an external work object from a validated external resource;

parse the external work object to identify work object contextual data;

identify common identifier data within both of the external calendar event contextual data and the work object contextual data, the common identifier data comprising a unique user identifier of a user that identifies the user within the group-based communication system;

identify prioritization data by querying a group-based communication system data corpus based on the common identifier data shared between the external calendar event contextual data and the work object contextual data, the group-based communication system data corpus comprising group-based communication messaging data, group-based communication channel data, and group-based communication work object data;

determine a prioritization score for the external calendar event data object relative to a second prioritization score of the external work object based on the external calendar event contextual data, the work object contextual data, and the prioritization data;

wherein the prioritization score is based at least in part on user activity within a group-based communication channel including user access frequency data of the user accessing the group-based communication channel; and

cause display of the external calendar event data object in the group-based communication channel within a group-based communication interface based on group-based communication channel settings and a prioritization score ranking, wherein the group-based communication channel is associated with a set of users who are associated with a workspace of the group-based communication system with access to the group-based communication channel;

receive a user acceptance input associated with the external calendar event data object;

transmit instructions for causing display of an aggregate calendar event interface comprising the external calendar event data object; and

updating the aggregate calendar event interface to include one or more accepted calendar event data objects based on the user acceptance input.

20. The apparatus of claim 19 , wherein parsing the external calendar event data object and the external work object to identify the external calendar event contextual data and the work object contextual data, respectively, comprises:

generating a prioritization weight estimate for the prioritization data, wherein the prioritization weight estimate is generated using a prioritization suggestion model; and

determining the prioritization score for the external calendar event data object relative to the second prioritization score of the external work object based on the generated prioritization weight estimate, the external calendar event contextual data, the work object contextual data, and the prioritization data.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 18, 2023
From: SLACK TECHNOLOGIES, LLC
To: SALESFORCE, INC.
Reel/Frame 064642/0564 →
MERGER Recorded Jul 29, 2021
From: SLACK TECHNOLOGIES, INC.
To: SLACK TECHNOLOGIES, LLC
Reel/Frame 057475/0404 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 49332/0349 Recorded Jul 19, 2021
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: SLACK TECHNOLOGIES, INC.
Reel/Frame 057649/0882 →
PATENT SECURITY AGREEMENT Recorded May 30, 2019
From: SLACK TECHNOLOGIES, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 049332/0349 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 1, 2019
From: SCHEMERS, ROLAND; MCPHAIL, JAMES; HAN, LYDIA
To: SLACK TECHNOLOGIES, INC.
Reel/Frame 049051/0847 →