Repository navigation
v1.0.408
Let calendar events have an optional time
Tasks and events can now carry a start time and an optional end time. Untick
"At a set time" and an event is all-day again, as before. Birthdays stay
all-day.
A time is a wall-clock label in the household timezone ("17:00" is 5 PM),
never converted, so a recurring 5 PM stays 5 PM across a DST change. It only
affects display and ordering: overdue is still decided by date.
- API: time/endTime on create and update. An end time needs a start. On a
multi-day event it falls on the last day; on a single day it must not
precede the start, and an end equal to the start is dropped. time: null
makes an event all-day and clears its end time, and both keys are deleted
rather than stored as null. - Projection: occurrences carry the times, and within a day all-day items
sort before timed ones, in clock order. - Calendar view: grid chips lead with a compact "5pm" when the chip has room
(a container query keeps a task's title visible in a narrow cell), the
agenda shows "2:00 PM – 3:00 PM", and the event dialog gets the inputs. - Chat tools and Daily News (desk lines, Week Ahead box, email) carry the
times too. - Wall-clock helpers now live in server/wall-clock.ts, so the server-rendered
Daily News and the frontend share one formatter. Timesheet's formatClock
and isValidTime come from there.