nextcloud / calendar

📆 Calendar app for Nextcloud
https://apps.nextcloud.com/apps/calendar
GNU Affero General Public License v3.0
985 stars 240 forks source link

Events with a Single DateTime #4828

Closed stellarpower closed 1 year ago

stellarpower commented 1 year ago

Is your feature request related to a problem? Please describe.

Some "events" may not really have a start and end date/time per se, but may be better represented as instantaneous calendar events, with only one date and time of occurrence. Examples could be:

I'm sure there are many others (will happily update the issue if anyone suggest one). I am therefore suggesting that it may be advantageous for some users to have the option to add an event to their calendar that only has a time of occurrence, rather than a pair of start/end timepoints.

Describe the solution you'd like

Possibly a refactor of the existing date/time picker:

Describe alternatives you've considered

At the simplest level, just some check-box in the date picker, or elsewhere, that would disable the end date and grey-out he controls for it.

Additional context

It may well be that this can;t be represented well in the backend - I won't be surprised if common formats such as ical cannot support instantaneous events. In this case, I think it'd be sensible to allocate a standard duration for such events - one hour, for example. This is more of a UI-related suggestion, and the existing behaviour would be to set some sensible amount of time (but the onus on the user), so implementing in a way that utilises nextcloud's custom metadata in the event to enable this, and falling back to a sensible default for the canonical representation of events that would be used by a DAV client I think is perfectly acceptable.

stellarpower commented 1 year ago

Potentially related if looking at possible implementation details: #2696 #790

ChristophWurst commented 1 year ago

A deadline when something is due

Sounds like VTODO in the Tasks app is a better fit than the VEVENTs we use here.

miaulalala commented 1 year ago

Hi! This is a specific type of component defined in the iCalendar standard as a VTODO.

We do support VTODOs in the backed, so you can store them in our database, but the Calendar frontend doesn't have the capability to edit them. You can use the Tasks app to edit and display them.

stellarpower commented 1 year ago

Hi,

Thanks for the information.

the Calendar frontend doesn't have the capability to edit them

I guess this is what my feature request is.

I do use the tasks app to manage when I have due dates for specific todos. But on many occasions, what I want to track are more calendar events on a timeline than they are todo items. When I've been using Google Calendar, I'm quite often adding in items with a fake or default end date of an hour after the start, when I only need to keep track of a single point in time. I an understand if it's a bit of an abuse of the VTODO item in the backend, and could cause issues with either internal or external apps syncing against these calendars. But backend aside, it seems like it adds a nice level of completeness to the frontend to be able to specify events that mark a single point in time, rather than a specific start and end pair that then necessarily has a duration to it.