nextcloud / nextcloud/calendar

End date is always +1 day after export to .ics file

Open
#8,098 6 comments 0 reactions 0 assignees View on GitHub

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
  1. Export a calendar
Image
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:

Image

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

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.