Skip to content

feat(calendar): event links, invitation states and fresher Google events - #431

Merged
callumalpass merged 1 commit into
mainfrom
feat/calendar-links-invitations-refresh
Nov 13, 2026
Merged

callumalpass merged 1 commit into
mainfrom
feat/calendar-links-invitations-refresh

Conversation

@callumalpass

Copy link
Copy Markdown
Owner

Uses the calendar service's new fields and its reconnect_required code (tasknotes-calendar-service#5). Every new field is optional here, so this works against the current production service too and can ship in either order.

What changes

  • Links. The event editor offers "Join meeting", with the host the link leads to, and "Open in Google Calendar" (Google Calendar's own hosts only). Both open outside the app. Rows show a camera glyph for an event with a call; rows stay one control.
  • States. Unanswered invitations are outlined and say "Not answered"; a maybe says "Maybe". Timed events marked free are lighter and say "Free"; all-day events are left alone. Out-of-office time is hatched; focus time is labelled. A label is dropped when the title already says it.
  • Freshness. Events are re-read on returning after a minute or more away and every five minutes while shown. A refresh that cannot reach Google keeps what is shown.
  • Reconnect. Lapsed Google access is told apart from a conflict; the calendar says so and points to Settings.
  • DESIGN.md and the live-testing checklist are updated. Ten new strings in all ten locales.

Verification

  • rpnpm typecheck, rpnpm lint, rpnpm i18n:check, rpnpm test (2,033 passed).
  • Screenshots of Agenda, Week and the editor against a mocked service, light and dark, desktop and phone.

Not verified against a real Google account or on native builds: mocked event tests do not prove real Google behaviour.

Links: the event editor offers "Join meeting", naming the host the link
leads to, and "Open in Google Calendar", limited to Google Calendar's
own pages. Both open outside the app. A row shows a camera beside the
title of an event with a call.

States: an unanswered invitation is an outline and says "Not answered";
one answered maybe says "Maybe". A timed event marked free is lighter
and says "Free". Out-of-office time is hatched; focus time is labelled.
A label is left out when the title already says it.

Freshness: shown events are read again when the person returns after a
minute or more away and every five minutes while a calendar is in front
of them. A later read that cannot reach Google leaves what is shown.

Reconnect: the client tells the service's reconnect_required apart from
a conflict, marks the connection, and the calendar points to Settings.
A service that predates the code still reads as before.

Ten new strings are authored in all ten locales.
@callumalpass
callumalpass merged commit 9912e98 into main Nov 13, 2026
6 checks passed
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