nextcloud / nextcloud/calendar
Recurring events not displayed in web UI after January 2038 (Y2038 boundary)
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 1.2k
- Forks
- 332
- Avg merge
- 16h 13m
- Merged PRs (30d)
- 137
Description
Steps to reproduce
- Create any recurring event with no end date (e.g., a weekly or annual event)
- In the Calendar web UI, navigate forward month by month toward early 2038
- View January 2038 — recurring event instances appear as expected, including in the overflow days from February visible at the bottom of the January monthly grid
- Click forward to view February 2038 — the calendar is completely empty; no recurring event instances appear
Expected behavior
Recurring events should continue to appear in February 2038 and all subsequent months, as the events have no end date.
Actual behavior
The monthly view for February 2038 and all later months is empty. Recurring events that appear correctly in January 2038 — including in the February overflow days visible within the January grid — are completely absent when February is viewed as its own month.
Calendar app version
6.4.0
CalDAV-clients used
DAVx5
Browser
Brave 1.90.121 (Official Build) (64-bit) Chromium: 148.0.7778.96
Client operating system
Linux Mint 22.3
Server operating system
Debian 13
Web server
None
Database engine version
None
PHP engine version
None
Nextcloud version
32.0.3 (Nextcloud AIO docker container)
Updated from an older installed version or fresh install
None
List of activated apps
Nextcloud configuration
Web server error log
Log file
Browser log
Additional info
When the same calendars are accessed via a CalDAV client (tested with Samsung Calendar on Android), recurring events appear correctly in February 2038 and beyond. This confirms:
- The underlying RRULE data is intact
- The Nextcloud CalDAV server is serving the recurrence data correctly
- The bug is isolated to the web UI's client-side recurrence expansion logic
This indicates the JavaScript recurrence expansion library used by the Calendar frontend is hitting a 32-bit integer boundary for future event instances. This is odd given that most engines today use 64-bit floats for Date objects and are capable of representing dates well beyond 2038.
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
Reproduce the issue by navigating the Calendar web UI from January to February 2038, then trace the client-side recurrence expansion logic used by the frontend. Compare the recurrence results for the January and February views and identify the boundary failure; done means no-end-date recurring events appear in February 2038 and later while remaining available through CalDAV.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- frontend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100