IP Library Granted Patent US 11,386,396
Granted Patent B2
US 11,386,396 · App. 16/398,168 · Granted Jul 12, 2022

Method, apparatus and computer program product for providing a channel calendar in a group-based communication system

Inventors: Lydia Han (San Francisco, CA); Roland Schemers (Woodside, CA)
Assignee: Slack Technologies, LLC
G06Q10/1093G06Q10/101H04L51/046
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,386,396
App. No.
16/398,168
Granted
Jul 12, 2022
Kind
B2
Abstract

Method, apparatus and computer program product for generating a channel calendar in a group-based communication system are described herein. The apparatus is configured to at least generate a channel calendar identifier associated with a group-based communication channel in the group-based communication system, receive a calendar sharing request associated with the channel calendar identifier from a client device, retrieve the calendar object and calendar object metadata set based on the channel calendar identifier, and cause rendering of the calendar object for display via a user interface of the client device.

Claims (76)

1. An apparatus for rendering a calendar object in a user interface of a first client application associated with a group-based communication system, said group-based communication system supporting a plurality of members and comprising: a plurality of group-based communication system interfaces and a plurality of group-based communication channels accessible via each of the plurality of group-based communication system interfaces, said apparatus comprising:

a processor and a non-transitory memory comprising program code, the non-transitory memory and the program code configured to, with the processor, cause the apparatus to at least:

programmatically generate, by the first client application associated with the group-based communication system, a channel calendar identifier associated with a group-based communication channel of the plurality of group-based communication channels in the group-based communication system;

receive a calendar sharing request associated with the channel calendar identifier,

wherein the calendar sharing request comprises a request to access the calendar object from the group-based communication channel, and

wherein the calendar object comprises a calendar object metadata set;

in response to receiving the calendar sharing request, retrieve the calendar object and the calendar object metadata set;

cause rendering of the calendar object for display via the first client application associated with the group-based communication channel of a client device;

automatically update the user interface of the first client application to display the calendar object in a channel calendar pane based at least in part on the calendar object metadata set of the calendar object;

wherein the client device is associated with a pre-shared calendar object in the group-based communication system, and the pre-shared calendar object is associated with a pre-shared event object,

generate a sharing link corresponding to the pre-shared event object;

receive, via the user interface of the first client application, an event sharing request associated with the sharing link; and

cause rendering of the pre-shared event object for display via the user interface of the first client application associated with the group-based communication channel;

generate a calendar summary message comprising a summary of upcoming calendar objects; and

cause rendering of the calendar summary message for display via the first client application associated with the group-based communication channel of the client device.

2. The apparatus of claim 1 , wherein the calendar object is retrieved from a calendar object repository associated with an external calendar resource, wherein the channel calendar identifier is a channel email address associated with the external calendar resource.

3. The apparatus of claim 2 , wherein the non-transitory memory and the program code are configured to, with the processor, cause the apparatus to further:

receive an event generation request comprising a request for an event object and an event object metadata set, wherein the event object metadata set comprises an attendee parameter, wherein the attendee parameter comprises the channel email address; and

cause rendering of the event object for display via the user interface associated with the group-based communication channel.

4. The apparatus of claim 1 , wherein prior to receiving the calendar sharing request, the non-transitory memory and the program code are configured to, with the processor, cause the apparatus to:

generate a pre-shared calendar list, wherein the pre-shared calendar list comprises the pre-shared calendar object associated with the client device in the group-based communication system, wherein the calendar sharing request comprises an electronic selection of the pre-shared calendar object.

5. The apparatus of claim 1 , wherein the pre-shared event object is a recurring event object, and wherein the sharing link comprises an electronic indication that the pre-shared event object is the recurring event object.

6. A computer-implemented method for rendering a calendar object in a user interface in a first client application associated with a group-based communication system, said group-based communication system supporting a plurality of members and comprising: a plurality of group-based communication system interfaces and a plurality of group-based communication channels accessible via each of the plurality of group-based communication system interfaces,

said method comprising:

generating a channel calendar identifier associated with a group-based communication channel of the plurality of group-based communication channels in the group-based communication system;

receiving a calendar sharing request associated with the channel calendar identifier,

wherein the calendar sharing request comprises a request to access the calendar object from the group-based communication channel, and

wherein the calendar object comprises a calendar object metadata set;

in response to receiving the calendar sharing request, retrieving the calendar object and the calendar object metadata set;

causing rendering of the calendar object for display via the first client application associated with the group-based communication channel of a client device;

automatically update the user interface of the first client application to display the calendar object in a channel calendar pane based at least in part on the calendar object metadata set of the calendar object;

wherein the client device is associated with a pre-shared calendar object in the group-based communication system and, the pre-shared calendar object is associated with a pre-shared event object;

generating a sharing link corresponding to the pre-shared event object;

receiving, via the user interface of the first client application of the client device, an event sharing request associated with the sharing link; and

causing rendering of the pre-shared event object for display via the user interface of the client device associated with the group-based communication channel;

generating a calendar summary message comprising a summary of upcoming calendar objects; and

causing rendering of the calendar summary message for display via the first client application associated with the group-based communication channel of the client device.

7. The computer-implemented method of claim 6 , wherein the calendar object is retrieved from a calendar object repository associated with an external calendar resource, wherein the channel calendar identifier is a channel email address associated with the external calendar resource.

8. The computer-implemented method of claim 7 , further comprising:

receiving an event generation request comprising a request for an event object and an event object metadata set, wherein the event object metadata set comprises an attendee parameter, wherein the attendee parameter comprises the channel email address; and

causing rendering of the event object for display via the user interface associated with the group-based communication channel.

9. The computer-implemented method of claim 6 , wherein prior to receiving the calendar sharing request, the computer-implemented method further comprises:

generating a pre-shared calendar list, wherein the pre-shared calendar list comprises the pre-shared calendar object associated with the client device in the group-based communication system, wherein the calendar sharing request comprises an electronic selection of the pre-shared calendar object.

10. The computer-implemented method of claim 6 , wherein the pre-shared event object is a recurring event object, and wherein the sharing link comprises an electronic indication that the pre-shared event object is the recurring event object.

11. A computer program product for rendering a calendar object in a user interface of a first client application associated with a group-based communication system, said group-based communication system supporting a plurality of members and comprising: a plurality of group-based communication system interfaces and a plurality of group-based communication channels accessible via each of the plurality of group-based communication system interfaces, said computer program product comprising at least one non-transitory computer-readable storage medium having computer-readable program code portions stored therein, the computer-readable program code portions comprising an executable portion configured to:

programmatically generate, by the first client application associated with the group-based communication system, a channel calendar identifier associated with a group-based communication channel of the plurality of group-based communication channels in the group-based communication system;

receive a calendar sharing request associated with the channel calendar identifier,

wherein the calendar sharing request comprises a request to access the calendar object from the group-based communication channel, and

wherein the calendar object comprises a calendar object metadata set;

in response to receiving the calendar sharing request, retrieve the calendar object and the calendar object metadata set;

cause rendering of the calendar object for display via the first client application associated with the group-based communication channel of a client device;

automatically update the user interface of the first client application to display the calendar object in a channel calendar pane based at least in part on the calendar object metadata set of the calendar object;

wherein the client device is associated with a pre-shared calendar object in the group-based communication system and wherein the pre-shared calendar object is associated with a pre-shared event object;

generate a sharing link corresponding to the pre-shared event object;

receive, via the user interface of the client device, an event sharing request associated with the sharing link; and

cause rendering of the pre-shared event object for display via the user interface of the client device associated with the group-based communication channel;

generate a calendar summary message comprising a summary of upcoming calendar objects; and

cause rendering of the calendar summary message for display via the first client application associated with the group-based communication channel of the client device.

12. The computer program product of claim 11 , wherein the calendar object is retrieved from a calendar object repository associated with an external calendar resource, wherein the channel calendar identifier is a channel email address associated with the external calendar resource.

13. The computer program product of claim 12 , wherein the computer-readable program code portions comprise the executable portion configured to:

receive an event generation request comprising a request for an event object and an event object metadata set, wherein the event object metadata set comprises an attendee parameter, wherein the attendee parameter comprises the channel email address; and

cause rendering of the event object for display via the user interface associated with the group-based communication channel.

14. The computer program product of claim 11 , wherein prior to receiving the calendar sharing request, the computer-readable program code portions comprise the executable portion configured to:

generate a pre-shared calendar list, wherein the pre-shared calendar list comprises the pre-shared calendar object associated with the client device in the group-based communication system, wherein the calendar sharing request comprises an electronic selection of the pre-shared calendar object.

15. The apparatus of claim 1 , wherein the non-transitory memory and the program code are configured to, with the processor, cause the apparatus to further:

receive an event generation request comprising a request for an event object and an event object metadata set, and

automatically generate at least one parameter for the event object metadata set based on at least one user identifier associated with the group-based communication channel or the channel calendar identifier associated with the group-based communication channel.

16. The computer-implemented method of claim 6 , further comprising:

receiving an event generation request comprising a request for an event object and an event object metadata set, and

automatically generating at least one parameter for the event object metadata set based on at least one user identifier associated with the group-based communication channel or the channel calendar identifier associated with the group-based communication channel.

17. The computer program product of claim 11 , wherein the computer-readable program code portions comprise the executable portion configured to:

receive an event generation request comprising a request for an event object and an event object metadata set, and

automatically generate at least one parameter for the event object metadata set based on at least one user identifier associated with the group-based communication channel or the channel calendar identifier associated with the group-based communication channel.

18. The apparatus of claim 15 , wherein the calendar object metadata set comprises a privacy parameter and the event object metadata set comprises a visibility parameter, wherein the visibility parameter is independent from the privacy parameter.

19. The computer-implemented method of claim 16 , wherein the calendar object metadata set comprises a privacy parameter and the event object metadata set comprises a visibility parameter, wherein the visibility parameter is independent from the privacy parameter.

20. The computer program product of claim 17 , wherein the calendar object metadata set comprises a privacy parameter and the event object metadata set comprises a visibility parameter, wherein the visibility parameter is independent from the privacy parameter.

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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2019
From: HAN, LYDIA; SCHEMERS, ROLAND
To: SLACK TECHNOLOGIES, INC.
Reel/Frame 050065/0141 →
PATENT SECURITY AGREEMENT Recorded May 30, 2019
From: SLACK TECHNOLOGIES, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 049332/0349 →
Continuity (1)
Related Publication 20200342415A1 · Oct 29, 2020