Calendar: drag files, attachments, items and blocks onto events to link them (move by default, ⌥ to link both); drop on empty space creates a Journal entry #635

Open
opened 2026-10-01 13:41:43 +00:00 by kayg · 0 comments
Owner

Owner decisions (2026-10-01, grill D1–D5: "agreed with all your answers")

"I should be able to drag attachments onto events to link them to the event."
D1 What can be dropped on an event, all of these, built in this order:

  1. files from the computer (Finder/Desktop): upload, then link;
  2. an attachment already on one event, dragged onto another;
  3. items already in calternal: Files rows, photos, notes and tasks from sidebars or other Tabs, and search results;
  4. editor blocks (an image or text block from a note).
    D2 Move vs link: dragging between events moves the link by default (Finder-style). Holding ⌥/Alt links to both (Windows & Linux preset: Ctrl, per #542). File bytes are never copied; only links change.
    D3 Where uploads land: the same router as the 📎 button: photos → Photos, recordings → Documents/Voice Memos (#618), everything else → Documents.
    D4 Feedback: while dragging over an event, the event lifts slightly and highlights with an "Attach to
## Owner decisions (2026-10-01, grill D1–D5: "agreed with all your answers") "I should be able to drag attachments onto events to link them to the event." **D1 What can be dropped on an event**, all of these, built in this order: 1. files from the computer (Finder/Desktop): upload, then link; 2. an attachment already on one event, dragged onto another; 3. items already in calternal: Files rows, photos, notes and tasks from sidebars or other Tabs, and search results; 4. editor blocks (an image or text block from a note). **D2 Move vs link:** dragging between events **moves** the link by default (Finder-style). Holding ⌥/Alt links to both (Windows & Linux preset: Ctrl, per #542). File bytes are never copied; only links change. **D3 Where uploads land:** the same router as the 📎 button: photos → Photos, recordings → Documents/Voice Memos (#618), everything else → Documents. **D4 Feedback:** while dragging over an event, the event lifts slightly and highlights with an "Attach to <title>" label. On drop, the chip springs into the card + an "Attached … · Undo" toast (8 s, #539, deduped per #616). Dropping on empty calendar space creates a new Journal entry at that time with the attachment. **D5 Touch:** iPad uses the same drag and drop. On phones, long-press → "Attach to…" opens an event picker that runs the same action. **Reuse:** one "link attachment" action in the #581 registry (parity: API/CLI/MCP); the existing `appendEventAttachment` path; the shared drop-target primitive (check Files' drop handling first). **Tests:** e2e for each source (Finder file via a synthetic DataTransfer, event→event move and ⌥ link, a Files row, a note block), the empty-space drop, Undo, and keyboard/a11y (an "Attach to…" menu as the non-drag alternative). Screenshots of the hover/drop states in both themes. **Order:** after the calcard-series job (#628) lands, since it touches the same Calendar item/card components.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kayg/calternal#635
No description provided.