[Bug] sliceMultiDayEvents: sliced sub-events after the first start at 23:59 instead of next-day 00:00

Open Beginner friendly
#4,206 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
1/5
Estimated time
Under an hour
Newbie friendliness
78/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Quiet
Tech stack
javascript
Domain
frontend

Research direction

Open modules/default/calendar/calendar.js and inspect the slicing loop around lines 513–535. Reproduce a multi-day event with sliceMultiDayEvents enabled, then verify that every slice after the first renders with a start time of 00:00 on its own day rather than 23:59 on the previous day.

Written by the indexing model from the issue text.

Description

ready (coming with next release)

Platform

  • MagicMirror² v2.37.0
  • default calendar module, sliceMultiDayEvents: true

Bug

With sliceMultiDayEvents: true, a multi-day event is split into per-day slices (1/n), (2/n), … Every slice after the first is displayed as starting at 23:59 instead of the following day's 00:00.

Cause

modules/default/calendar/calendar.js, in the slicing loop (around L513–535):

let midnight = eventStartDateMoment.clone().startOf("day").add(1, "day").endOf("day");
...
event.startDate = midnight.format("x");   // start of the NEXT slice
...
midnight = midnight.clone().add(1, "day").endOf("day");

midnight is .endOf("day") (= 23:59:59.999), but it is assigned as the following slice's startDate. So each subsequent slice starts at 23:59:59.999 of the previous day instead of 00:00 of its own day, which is what gets rendered as "… 23:59".

Fix

Use the start of the day for the next slice's start:

- event.startDate = midnight.format("x");
+ event.startDate = midnight.clone().startOf("day").format("x");

Reproduce

Any all-day or timed event spanning ≥2 midnights with sliceMultiDayEvents: true; slices 2..n show "… 23:59".

Dominant language
JavaScript
Stars
23.9k
Forks
4.6k
Avg merge
17h 31m
Merged PRs (30d)
25

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.

More from MagicMirrorOrg/MagicMirror

All issues in MagicMirrorOrg/MagicMirror

Similar issues

More JavaScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.