Display dates and deadlines in each user's saved timezone #20

Open
opened 2026-11-01 20:11:38 +00:00 by viacheslavshuka · 0 comments

Outcome

Users need one named personal timezone for the website, bot, and availability schedule. Display actual event instants consistently without treating an offset as a timezone.

Acceptance criteria

  • Users can confirm or change a named timezone. The website may suggest the browser timezone. The bot uses the saved preference.
  • Relevant dates and deadlines include an absolute local date and time, the named timezone, and the UTC offset for that instant.
  • Start and end both convert to the recipient's timezone. Cross-midnight intervals show both dates. Offset changes during an interval remain explicit.
  • Relative text can supplement an absolute timestamp but cannot replace it.
  • A timezone change previews its effect before saving. Existing session instants remain unchanged.
  • Weekly availability keeps its local weekdays and clock times after a timezone change. Overrides keep their local dates and clock times.
  • New personalized Telegram messages use the current saved timezone when sent. Previously sent messages need no rewrite.
  • Invalid timezone input cannot silently select a numeric offset or change stored event instants.

Validation design

Use winter and summer instants in one named zone, cross-midnight sessions, and a non-hour offset transition. Explicit expected offsets must detect use of today's offset. Change a timezone with weekly slots and date overrides, then verify local values remain unchanged while matching instants differ. Browser and message-rendering tests must use the same declared display contract.

Dependencies

## Outcome Users need one named personal timezone for the website, bot, and availability schedule. Display actual event instants consistently without treating an offset as a timezone. ## Acceptance criteria - Users can confirm or change a named timezone. The website may suggest the browser timezone. The bot uses the saved preference. - Relevant dates and deadlines include an absolute local date and time, the named timezone, and the UTC offset for that instant. - Start and end both convert to the recipient's timezone. Cross-midnight intervals show both dates. Offset changes during an interval remain explicit. - Relative text can supplement an absolute timestamp but cannot replace it. - A timezone change previews its effect before saving. Existing session instants remain unchanged. - Weekly availability keeps its local weekdays and clock times after a timezone change. Overrides keep their local dates and clock times. - New personalized Telegram messages use the current saved timezone when sent. Previously sent messages need no rewrite. - Invalid timezone input cannot silently select a numeric offset or change stored event instants. ## Validation design Use winter and summer instants in one named zone, cross-midnight sessions, and a non-hour offset transition. Explicit expected offsets must detect use of today's offset. Change a timezone with weekly slots and date overrides, then verify local values remain unchanged while matching instants differ. Browser and message-rendering tests must use the same declared display contract. ## Dependencies - [#14: Authenticate Telegram users through protected Quorum sessions](https://code.viacheslavshuka.com/viacheslavshuka/quorum/issues/14). Supplies the account whose timezone is stored. - [#7: Create the React application with locked frontend tooling](https://code.viacheslavshuka.com/viacheslavshuka/quorum/issues/7). Supplies localized settings controls. ## Related work - [#28: Edit recurring availability with date overrides and overnight slots](https://code.viacheslavshuka.com/viacheslavshuka/quorum/issues/28) - [#44: Create private test drafts and publish complete announcements](https://code.viacheslavshuka.com/viacheslavshuka/quorum/issues/44) - [#29: Deliver Telegram notifications with bounded retries and current permissions](https://code.viacheslavshuka.com/viacheslavshuka/quorum/issues/29) - [#45: Browse tests and open website forms through the Telegram bot](https://code.viacheslavshuka.com/viacheslavshuka/quorum/issues/45)
Sign in to join this conversation.
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.

Reference
viacheslavshuka/quorum#20
No description provided.