Avoid imported busy time in Week Ahead calendar export #1210

Closed
opened 2026-08-21 05:39:29 +00:00 by timmy · 0 comments
Owner

Problem

Week Ahead calendar import uses private busy events to reduce capacity, but the subsequent timed export schedules selected work contiguously from the day start and can overlap those same events. The imported 10:00–11:00 meeting in the packaged mobile flow currently still permits an exported block spanning that hour.

User outcome

After applying a private calendar import, timed Week Ahead export places work into contiguous free windows on this device. It never uploads or persists calendar-derived windows. If selected work cannot fit, export is blocked with the affected item/day named. Reload preserves today’s existing manual export behavior but truthfully indicates no imported availability is active.

Acceptance

  • With 09:00–17:00 hours, a 10:00–11:00 busy event, and 45/90 minute ordered tasks, previews are 09:00–09:45 and 11:00–12:30.
  • Recurring/overlapping events feed merged free windows without double counting.
  • A task with no contiguous window blocks Share and identifies the item/day; work is not split.
  • Applying/canceling/reloading never persists or uploads raw events or derived timestamps.
  • Manual export remains available when no imported availability is active.
  • Packaged mobile coverage validates the conflict-free preview, 44px controls, and no horizontal overflow.

Implementation must use strict RED–GREEN TDD.

## Problem Week Ahead calendar import uses private busy events to reduce capacity, but the subsequent timed export schedules selected work contiguously from the day start and can overlap those same events. The imported 10:00–11:00 meeting in the packaged mobile flow currently still permits an exported block spanning that hour. ## User outcome After applying a private calendar import, timed Week Ahead export places work into contiguous free windows on this device. It never uploads or persists calendar-derived windows. If selected work cannot fit, export is blocked with the affected item/day named. Reload preserves today’s existing manual export behavior but truthfully indicates no imported availability is active. ## Acceptance - With 09:00–17:00 hours, a 10:00–11:00 busy event, and 45/90 minute ordered tasks, previews are 09:00–09:45 and 11:00–12:30. - Recurring/overlapping events feed merged free windows without double counting. - A task with no contiguous window blocks Share and identifies the item/day; work is not split. - Applying/canceling/reloading never persists or uploads raw events or derived timestamps. - Manual export remains available when no imported availability is active. - Packaged mobile coverage validates the conflict-free preview, 44px controls, and no horizontal overflow. Implementation must use strict RED–GREEN TDD.
timmy self-assigned this 2026-08-21 05:39:29 +00:00
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
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: stackchain/stackchain-dashboard#1210
No description provided.