nextcloud / nextcloud/calendar

Click & drag to reduce/lengthen events from their *start*.

Open
#8,191 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

1. to develop enhancement
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

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 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.