Zero-duration time-based midnight-to-midnight same-day events will be set to all-day the next time you open the Event Editor
Affected version
- OS: Fedora Silverblue 36.20221011.0, Fedora Workstation 41
- GNOME calendar version: 43.0 via Flathub, nightly/48 via GNOME Nightly
Bug summary
When I try to add an event that's set at midnight, it gets added parsed as an all-day event the next time you open it for editing.
Steps to reproduce
-
Click a cell in month view to add a new single-day event, click "Edit details"
(edit by @jfft: or just useCtrl+N
directly). -
Type a name (title) for the event
-
Switch from the "All Day" toggle to "Time Slot" and leave everything else at the defaults — i.e. leave "Starts" at the default time of
00:00
.
Edit by @jfft: with the git version as of 3793001b, this only happens if you also leave the "Ends" time at00:00
-
Click "Save" to add the event.
-
Reopen the event in the event editor
What happened
The event gets saved as an all-day event.
- Edit by @jfft: not strictly technically true: it correctly gets saved as a time-based event in the file format as per #889 (comment 2337742), however it resets the next time you open the editing GUI (this issue here, as per #889 (comment 2339371)) or reschedule the event via drag and drop (issue #1360).
If I go back to edit the event, untick "All Day" again, and save again, the same thing happens — it remains set as an all-day event even though I literally just unselected that.
- Edit by @jfft: the problem seems to be that the event editor converts it to "All Day" when opening the event editor dialog.
Bonus "step 6" by @jfft with version 48: if you try to switch the event back to "Time Slot" and save, undefined behavior will happen; the event will disappear entirely even if it's still stored in the backend, because the start date ends up being after the end date (so then this ties into #1358), and behind the scenes you would get:
gcal_range_tree_add_range: assertion 'range' failed
gcal_range_new: assertion 'g_date_time_compare (range_start, range_end) <= 0' failed
See video below:
issue_889_heisenbug_with_nightly_from_2025-02-03
What did you expect to happen
I expected the event to get added as a partial-day event, starting at midnight, like what would happen if I add an event that is not exactly midnight-to-midnight (e.g. 00:01
start time).
Important notes for spec compliance, in the comments below:
- #889 (comment 1672248)
- #889 (comment 2337745) (beware of not re-creating issue #172 (closed) !)