nextcloud / nextcloud/calendar

Scheduling component

Open
#6,823 0 comments 4 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement Feature: Integration Feature: Scheduling
Dominant language
JavaScript
Stars
1.2k
Forks
332
Avg merge
16h 13m
Merged PRs (30d)
137

Description

How to use GitHub
  • Please use the 👍 reaction to show that you are interested into the same feature.
  • Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this issue.
  • Subscribe to receive notifications on status change and new comments.

Is your feature request related to a problem? Please describe.
At the moment, calendar, tasks and deck are separate apps which barely talk to each other. When a user wants to schedule a time to work a task or a card, they have to manually create a calendar entry. When the time has arrived, the user again has to manually track the progress in the deck or tasks app.
NOTE: I know that sounds at first glance like a problem for calendar, deck and tasks but I think, a server-side API for this might be the best solution as it adds functionality which could be used by any other/future time-related app. Thus I posted it here.

Describe the solution you'd like
I'd like to suggest a (semi-) automatic scheduler. Similar to the appointment booking, a user would define time frames for the scheduler component in the calendar app. The deck app and the task app (and any other app which wants some time from the user) would have an "estimated time requirement" field as well as a button "schedule to calendar" for each task/card. On button press, the scheduler would then create a respective calendar entry at the next free time which matches the time requirements and the frame definition by the user. When the respective calendar entry is opened in the calendar app, it would show buttons for progress reporting defined by the app which requested the schedule as well as a "reschedule" button which would open a modal with rescheduling options (e.g. "tomorrow", "next week", etc.).
Ideally, maybe at a later point, the user could define different frames e.g. based on tags, categories or locations (e.g. tag "interview" only fridays between 13 and 18). The scheduler component would also provide information about yet unscheduled cards/tasks/etc. which could either be presented to the user by the requesting apps or in a separate overview. Finally, the user could choose if the scheduler should automatically create schedules for every newly created task/card or if the user still wants to choose manually which ones to schedule.

Describe alternatives you've considered
Only option so far is to do everything manually which takes a significant amount of time and holds the risk of overlooking things.

Additional context
n/a

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing how the calendar, deck, and tasks apps currently exchange data and where a shared server-side API could fit. Define the scheduler's scope, integration points, and user-facing workflow before implementation. Done would include an agreed design for scheduling, progress reporting, rescheduling, and unscheduled-item discovery.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
backend-api-design, full-stack
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
15/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.