There is an expected feature of zooming, at least in day view: that would allow you to change how many hours is seen in a view.
I suggest to make something extra: seamless zooming from level of event, to years and years, in great spirit of Jef Raskin.
It would work basically as infinite zoomable canvas.
- we still have separate views: day, week, month and year, meaning that at some thresholds the layout of calendar changes. For example, moving from week to a month is very distinctive: instead of left-to-right columns of days, we now get this grid-like approach.
- the closest zoom level is a new Event View, which is not sidebar nor modal, it just takes the whole viewport
- zooming out, you seamlessly get into Day View, where event is, as usual, a block on a day, represented by rows.
- zooming out more, day view gets more and more hours in a viewport, at least up to 24
- zooming out more, we get into week view, which starts as "just a bit more than 1 day" view and zooming out all up to 7 days, as usual
- as you guessed, then we would get 2-3 week view, zooming out, all back to month view.
Notes:
- in Event View, there are many possibilities, since we have all this extra space
- in Day View, there might be some improvements, since it's never reasonable to have full-width event, it just sits there empty.
- as for number of hours, it can be suggested that calendar should encompass whole 24h period, instead of normal "work hours". There is sleep tracking, there are people living on non-24h schedules, and even best of us tend to go to bed later on fridays. It doesn't make sense to constraint day/week view to 12 hours, instead 24h view should be preferred, with option to zoom in (both in horizontal and vertical axis)
- transitions between various zoom levels should be seamless and implemented with React View Transitions and Motion.dev's capabilities.
There is an expected feature of zooming, at least in day view: that would allow you to change how many hours is seen in a view.
I suggest to make something extra: seamless zooming from level of event, to years and years, in great spirit of Jef Raskin.
It would work basically as infinite zoomable canvas.
Notes: