You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Visually overlap events instead of shrinking their width (daily view) #1211
Disclaimer: i'll use screenshots from Etar calendar because the issue is exactly the same in that app (Etar-Group/Etar-Calendar#1362).
Visually overlap overlapping events so as to use the most available space.
Example:
Why do you want this feature?
Two overlapping events - by which i mean events that span over the same day/hour and would visually happen together - are usually both shrinked in width so that they both correctly occupy the right timeslots. This is a problem because it means you usually end up with only a colored block, instead of the colored block with details on what it actually represents.
For example :
This is what the two look like when they're not planned on the same timeslot, which as you can see provides a lot more detail on what it actually is:
Additional information
As noted in the above disclaimer, these screenshots are taken from Etar calendar, but this very much applies to Fossify Calendar as well. My request originally regards only day view but can be applied to other views.
I have implemented this for the weekly view and have it running on a Pixel 9a, in case it is useful.
It is a setting, Overlapping events, with two values: Side by side, the layout as it is today, and Cascade, which indents each overlapping event and lets it run to the column's right edge. The slot assignment is untouched; only the geometry derived from it changes.
I have it defaulting to cascade, because it reads better in every case I could construct except one, and anyone who prefers the old layout has a setting to switch back. If you would rather not move an existing user's view, defaulting to side by side is a one-line change and I am happy to make it.
Two rules keep it honest rather than just wider:
An event only cascades over an earlier one when it starts at least one label line further down, so the earlier title always keeps a readable first line. Events starting closer than that, same-minute starts included, share the width in lanes exactly as they do today.
A label stops at the last whole line above the event drawn over it, so no half-hidden text peeks out from underneath.
Where it helps, three events overlapping half an hour apart in the 7-day view:
Where it does not, and I think that belongs here too: a long title covered a quarter of an hour in keeps one wide line where side by side gave it three narrower ones, and a cluster of near-simultaneous events falls back to lanes and is drawn identically in both.
Tested on Light, Dark, Black & White and System default, and at the largest system font size; the line count is derived from the measured label height, so it follows the font.
I have not opened a pull request, because the contribution rules ask for the help wanted label first. If you would like this, label the issue and I will send it. If the answer is no, that is fine too, and I will keep it local.
Next to the already mentioned Etar calendar app, also KashCal has recently enriched by this feature in October 2026,
see https://github.com/KashCal/KashCal/releases/tag/v2026.10.16
in detail: Added cascading overlaps in Week, 3-day and Day ...
🤖 Claude Opus 5.5 responding on behalf of oskarsss
I've also implemented this for the weekly view and would like to contribute it once this issue is labelled help wanted. I'm also happy to help get unaimed's version in instead, if you prefer that one.
How it works:
The base keeps the full width. The earliest event (or the longest one, if they start together) is never narrowed.
Later overlapping events nest on top. Each one is drawn over the event still running when it starts, indented to the right. Events that have already ended don't affect the layout.
Close starts cover only half. A child starting within 30 minutes of its parent covers only the right half, so the parent's title stays readable (the same idea as FullCalendar's "at most half obscured" rule). Children that start later cover 75%.
Other details: RTL is mirrored, dimmed past events stay opaque, and indents are capped so every event stays at least 20% wide.
Side-by-side comparisons for six overlap types are here. They show the current layout, this change, react-big-calendar's Google-style overlap algorithm and FullCalendar v6, all rendered at the phone's column width. For example, a short event inside a long one:
Activity
unaimed commentedon Sep 6, 2026
I have implemented this for the weekly view and have it running on a Pixel 9a, in case it is useful.
It is a setting, Overlapping events, with two values: Side by side, the layout as it is today, and Cascade, which indents each overlapping event and lets it run to the column's right edge. The slot assignment is untouched; only the geometry derived from it changes.
I have it defaulting to cascade, because it reads better in every case I could construct except one, and anyone who prefers the old layout has a setting to switch back. If you would rather not move an existing user's view, defaulting to side by side is a one-line change and I am happy to make it.
Two rules keep it honest rather than just wider:
Where it helps, three events overlapping half an hour apart in the 7-day view:
Where it does not, and I think that belongs here too: a long title covered a quarter of an hour in keeps one wide line where side by side gave it three narrower ones, and a cluster of near-simultaneous events falls back to lanes and is drawn identically in both.
Tested on Light, Dark, Black & White and System default, and at the largest system font size; the line count is derived from the measured label height, so it follows the font.
The branch is
overlapping-events-cascadeon my fork, one commit on top of d985d5e: diff against main.I have not opened a pull request, because the contribution rules ask for the
help wantedlabel first. If you would like this, label the issue and I will send it. If the answer is no, that is fine too, and I will keep it local.stephan75 commentedon Oct 26, 2026
Next to the already mentioned Etar calendar app, also KashCal has recently enriched by this feature in October 2026,
see https://github.com/KashCal/KashCal/releases/tag/v2026.10.16
in detail: Added cascading overlaps in Week, 3-day and Day ...
oskarsss commentedon Oct 31, 2026
Note
🤖 Claude Opus 5.5 responding on behalf of oskarsss
I've also implemented this for the weekly view and would like to contribute it once this issue is labelled
help wanted. I'm also happy to help get unaimed's version in instead, if you prefer that one.How it works:
Side-by-side comparisons for six overlap types are here. They show the current layout, this change, react-big-calendar's Google-style
overlapalgorithm and FullCalendar v6, all rendered at the phone's column width. For example, a short event inside a long one:The code is in main...oskarsss:Calendar:feat/stacked-overlapping-events (5 files, +97/−75).
assembleFossDebug,detektandlintFossDebugpass.