-
-
Notifications
You must be signed in to change notification settings - Fork 4.7k
Description
This is related to nextcloud/calendar#5697.
Problem Statement
As a calendar user, scheduling events with both internal and external parties can be challenging due to the lack of free-busy information for external attendees. This often results in a time-consuming back-and-forth process to find a suitable time slot for all participants.
Proposed Solution
Implement a feature that allows users to suggest multiple time slots for an event based on the availability of internal attendees and send personalized links to external attendees to select their preferred time slots.
Work packages
- feat: Meeting Proposals #53831
- feat: Meeting Proposals calendar#7072
- fix: actually create a talk room when converting proposal calendar#7398
- feat: Meeting proposals calendar time blockers calendar#7315
- fix: meeting proposals participant no reponse calendar#7396
- feat: meeting proposals documentation#13690
User Flow
-
Create Event:
- User creates a new event with both internal and external attendees.
-
Find Available Time Slots:
- System checks the free-busy information of internal attendees to suggest 3 (or more) available time slots.
-
Create Blocker Events:
- System creates blocker events in the calendars of internal attendees for the suggested time slots.
-
Notify Internal Attendees:
- Send an email to internal attendees informing them about the blocker events and the upcoming event.
-
Notify External Attendees:
- Send an email to external attendees with personalized links to select their preferred time slots. They can select multiple slots or indicate that none of the slots work for them.
-
Store Responses:
- Store the responses from external attendees and notify the organizer via email.
Happy Case Scenario:
-
Consensus on Time Slot:
- If all external attendees agree on a time slot, create the actual event for that time slot.
-
Invite All Attendees:
- Send invitations to all internal and external attendees for the confirmed event.
-
Remove Blocker Events:
- Delete the blocker events from the calendars of internal attendees.
-
Notify Completion:
- Send an email to all attendees confirming the event details and the removal of blocker events for internal attendees.
Unhappy Case Scenario:
-
No Consensus:
- If no time slot works for all attendees (e.g., Bob cannot attend any slot), the organizer decides whether to proceed without Bob or reschedule the event.
-
Notify Decision:
- Send an email to all attendees informing them of the organizer's decision.
Technical Considerations:
- Create a new database table in Nextcloud Calendar to manage event proposals.
- Each event proposal should have the following attributes:
- Name
- Description
- Duration
- Timezone
- Date picker (for the earliest date)
- List of attendees
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
Status