Skip to content

calendar 0.1.1: host calendar field names (#172) - #194

Merged
michielbdejong merged 3 commits into
claude/post-89-timesheets-issue-trackerfrom
claude/issue-172-calendar-fields
Sep 29, 2026
Merged

michielbdejong merged 3 commits into
claude/post-89-timesheets-issue-trackerfrom
claude/issue-172-calendar-fields

Conversation

@michielbdejong

Copy link
Copy Markdown
Contributor

Closes #172.

Stacked on #171 (base claude/post-89-timesheets-issue-tracker); GitHub retargets it to main once #171 merges.

  • integrations/calendar/app/sync.ts writes the host's calendar field names: atomic-calendar-day, -all-day, -end-day (exclusive) and -notes.
  • Calendar app released as 0.1.1 (apps/calendar/0.1.1/ui.js). The catalog entry points at it and stays enabled: false (soft launch: Pages is production).
  • The e2e follows Month into the host table, adds its Calendar view, and checks the following:
    • a three-day all-day event covers exactly its three days;
    • a one-day all-day event covers only its day;
    • the timed event shows on its day.
  • The sync test covers calendar: read all-day events with end == start as one day #184's case, an all-day event with end == start.

Checks at pin 2567fc30b:

🤖 Generated with Claude Code

Michiel de Jong and others added 3 commits September 29, 2026 13:01
The host table's Calendar view (atomic-server CalendarView.tsx) reads
@tomic/lib's calendarFields and gives all-day ranges only to rows whose
date column is `atomic-calendar-day`. The app wrote `day` and `all-day`
and no end day, so its all-day and multi-day events showed on their first
day only.

- `day` -> `atomic-calendar-day`, `all-day` -> `atomic-calendar-all-day`;
- new `atomic-calendar-end-day`: Google's exclusive `end.date` for all-day
  events, which is how the host reads it at the pin (`isAllDayOnDate`:
  start <= day < end; its own new items get `nextCalendarDate(day)`), and
  the end's date for a timed event that ends on a later day; removed when
  a timed event fits in one day;
- Google's description goes to `atomic-calendar-notes` instead of the core
  Description, which is no longer a recommended column.

The baseline is keyed by projection field, not column, so it is unchanged.
The fixture gains a three-day all-day event on the 10th-12th of the fixture
day's month, appended so the list still takes three pages.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
0.1.1 is built with `node integrations/tooling/apps.mjs write calendar`;
0.1.0 stays published unchanged. The catalog card says all-day events
spanning several days cover each of their days in the Calendar view.

The e2e follows Month into the host table, adds its Calendar view and
checks that the fixture's three-day all-day event is drawn on the 10th,
11th and 12th but not the 9th or 13th, the one-day all-day event on its day
only, and the timed event on its day. It also checks the new shortnames,
Notes and End day on the imported rows.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
#184 reads an all-day event whose end.date equals its start.date as that
one day with an exclusive end, in project(). #172's End day copies the
projected exclusive end, so such an event gets the day after as End day
and the host Calendar view (start <= day < end) draws it on its one day.
The new sync test covers both: end == start on the imported one-day
event is no change, and a move to another day with end == start
imports as that day with the next day as End day.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@michielbdejong
michielbdejong merged commit 216dba1 into claude/post-89-timesheets-issue-tracker Sep 29, 2026
30 checks passed
@michielbdejong

Copy link
Copy Markdown
Contributor Author

Merged into #171's branch (stacked), not into main. #172 closes when #171 merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant