Block (PTO / time-off style) events so the saved and displayed span matches what staff enter—especially when a single block crosses calendar days (e.g. day one 8:00 AM through day two 7:00 PM).Block is a standard event document: datetime (start) and endtime (end) as full timestamps—multi-day coverage is not a separate flag; it is entirely the interval between those two instants (attik-backend/src/models/eventSchema.ts).AddEventModel (non–multi-date mode) submits tzDayjs(data.datetime) and tzDayjs(data.endtime) as one interval (or a one-row batch with the same pair). Multi-date mode is different: it creates one event per selected calendar date with the same clock times on each day—not one continuous cross-midnight span (attik-backend / attik-frontend AddEventModel.tsx). Triage should confirm which path the reporter used if repro is ambiguous.dates[0] and computes startHours, endHours, and lengthHours via findNumbers / calcHours in eventPlacementFunc.tsx—so intended rendering for a valid multi-day interval is one positioned bar, not per-day duplication from the placement algorithm alone.startOf('day') drift, DST near early November in US zones) or payload issues between UI and POST event / PATCH event. Decision needed after repro with stored raw datetime / endtime vs UI.Recording: Loom — PTO block day shift
Slack: Message from ryan
attik-backend/src/models/eventSchema.ts — datetime / endtime persistence for type: 'Block'.attik-backend/src/routes/ (event create/update/batch handlers) — how ISO strings are parsed and stored relative to company or inspector timezone; batch path used for multi-inspector creates.attik-frontend/src/app/tools/calendar/AddEventModel.tsx — single-interval vs isMultiDate batch semantics; tzDayjs usage when building payloads.attik-frontend/src/components/calendar/useEventPlacement.ts — firstDate = dates[0] anchor for eventPlacementFuncMemoized.attik-frontend/src/components/calendar/eventPlacementFunc.tsx — calcHours / findNumbers for cross-day lengthHours; edge cases when the visible week window and event span interact.TimezoneContext / TZDayjs — ensure evaluation matches server expectations for the affected profile.datetime / endtime for a repro block before and after save; compare to Loom expectations.attik-backend/src/models/eventSchema.tsattik-frontend/src/app/tools/calendar/AddEventModel.tsxattik-frontend/src/components/calendar/eventPlacementFunc.tsx, useEventPlacement.tsPlease authenticate to join the conversation.
Planned
Main App
2 months ago
Linear
Get notified by email when there are changes.
Planned
Main App
2 months ago
Linear
Get notified by email when there are changes.