nextcloud / nextcloud/calendar
End date is always +1 day after export to .ics file
Open
Nobody has claimed this yet.
0. to triage
bug
- Dominant language
- JavaScript
- Stars
- 1.2k
- Forks
- 332
- Avg merge
- 16h 13m
- Merged PRs (30d)
- 137
Description
Steps to reproduce
- Export a calendar
Expected behavior
Start and end dates of the exported .ics file match the entry in nextcloud calendar.
Actual behavior
The end date always seems to be 1 day off.
Example entry:
Exported ics file:
PRODID:-//IDN nextcloud.com//Calendar app 5.5.11+murena-20260107//EN
CALSCALE:GREGORIAN
VERSION:2.0
BEGIN:VEVENT
CREATED:20260329T112146Z
DTSTAMP:20260329T112407Z
LAST-MODIFIED:20260329T112407Z
SEQUENCE:2
UID:aaa423c2-3c0a-493b-a512-4a8690bbcf83
DTSTART;VALUE=DATE:19960706
DTEND;VALUE=DATE:19960721
STATUS:CONFIRMED
SUMMARY:Ferien Sitten
LOCATION:Sion
END:VEVENT
END:VCALENDAR``
**Note how the end dates don't match.**
### Calendar app version
Unknown (nextcloud 31, Murena Workspace build)
### CalDAV-clients used
none
### Browser
Zen 1.19.5b (Firefox 149)
### Client operating system
CachyOS
### Server operating system
Unknown (nextcloud 31, Murena Workspace build)
### Web server
None
### Database engine version
None
### PHP engine version
None
### Nextcloud version
31
### Updated from an older installed version or fresh install
None
### List of activated apps
```Text
Nextcloud configuration
Web server error log
Log file
Browser log
Additional info
No response
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 calendar export path that produces the shown VCALENDAR and compare how all-day DTSTART and DTEND values are derived. Reproduce the example with an all-day event, then verify that the exported .ics end date matches the calendar entry and add or update coverage for this case.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100