--- epic: 4 story: 4.3 title: "Time Zone Conversions" status: draft --- ## Epic 4 — Date, Time & Time Zones **Goal:** Full date/time math, business day calculations, and timezone awareness. ### Story 4.3: Time Zone Conversions As a CalcPad user, I want to convert times between time zones using city names and IANA timezone identifiers, So that I can coordinate across geographies without looking up UTC offsets. **Acceptance Criteria:** **Given** the expression `3pm Tokyo in London` **When** the engine evaluates it **Then** it converts 3:00 PM JST (Asia/Tokyo) to the equivalent time in GMT/BST (Europe/London) **And** the result accounts for the current DST status of both zones **Given** the expression `New York time` **When** the engine evaluates it **Then** it returns the current time in the America/New_York timezone **Given** the expression `now in PST` **When** the engine evaluates it **Then** it returns the current time converted to Pacific Standard Time (America/Los_Angeles) **Given** the engine's timezone database **When** queried for supported zones **Then** it supports all IANA timezones via the `chrono-tz` crate **And** at least 500 city name aliases map to their corresponding IANA zones **Given** the expression `3pm EST in CET` **When** the engine evaluates it **Then** it converts from Eastern Standard Time to Central European Time **And** DST transitions are handled correctly (e.g., EST vs EDT, CET vs CEST) **Given** an ambiguous city name (e.g., `Portland` which exists in Oregon and Maine) **When** the engine encounters it **Then** it uses the most commonly referenced city by default (Portland, Oregon = America/Los_Angeles) **And** the user can disambiguate with state/country (e.g., `Portland, ME`) **Given** the expression `9am Monday New York in Tokyo` **When** the engine evaluates it **Then** it converts 9:00 AM on the next Monday in New York to the equivalent time in Tokyo **And** if the conversion crosses a date boundary, the result shows the correct date and time