nextcloud / nextcloud/calendar
Click & drag to reduce/lengthen events from their *start*.
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 1.2k
- Forks
- 332
- Avg merge
- 16h 13m
- Merged PRs (30d)
- 137
Description
Is your feature request related to a problem? Please describe.
I often find myself wanting to change the starting time of a calendar event, without changing its end time, and I find no comfortable way to do this from the UI.
Describe the solution you'd like
Today we can click the end line of an event and drag it up or down to change the total event length. This effectively changes the event duration by updating its end time without changing its start time.
I would like the opposite to be also possible: click the start line of an event and drag it up or down to change the total event length. This would effectively change the event duration by updating its start time without changing its end time.
Describe alternatives you've considered
To achieve this instead today, I need to read the event end time, remember it, click&drag the whole event to update its start time (which also impacts its end time because duration is not modified during the process), and then only click&drag the end line to reset the end time to the value I remember.
Additional context
The event geometry seems defined with a (start, duration) pair, which makes it easy to modify either duration or start independently, and end is a byproduct of that. But this introduces an unnecessary asymetry between start and end, which IMO should feel symmetric in the UI.
As we fit events into a schedule, I think it is more natural to consider the (start, end) pair instead, make it easy to modify start or end independently, and let duration be a byproduct of that.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the existing calendar UI behavior for dragging an event's end line, then compare how event start, duration, and end are represented. Implement equivalent dragging from the start line while keeping the end time fixed, and verify that the event duration and displayed geometry update correctly.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- frontend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 50/100