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
16 days ago
Linear
Get notified by email when there are changes.
Planned
Main App
16 days ago
Linear
Get notified by email when there are changes.