---
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
