> ## Documentation Index
> Fetch the complete documentation index at: https://invoca-5bd45748-mintlify-17ed87db.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Dates and times

> Divergences, open decisions, and undocumented gaps for Dates and times.

See [Dates and times](/invoca-design-system/content/dates-and-times) for the decided part of this page.

## Gaps in the current rules

These are unanswered by the legacy documentation. Each is a real decision someone —
or an agent — will otherwise make ad hoc and inconsistently.

| Gap                                                                                                                                     | Why it matters                                                                                                                                                      | Status |
| --------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------ |
| **Timezone.** No guidance on whether times render in the user's zone, the account's zone, or UTC — or whether the zone is ever labeled. | Invoca's data is call activity across US timezones. A timestamp with no zone is ambiguous by up to three hours, and the current rules do not permit displaying one. | Open   |
| **Localization.** `M/D/YYYY` is US-only, and `2/1/2020` reads as 1 February to most of the world.                                       | Determines whether the format is a locale default or a hard rule.                                                                                                   | Open   |
| **Singular units.** "1 minutes ago" vs "1 minute ago" is not specified.                                                                 | Every relative timestamp implementation hits this in its first hour.                                                                                                | Open   |
| **Timestamp scope.** The rules are written for comments specifically.                                                                   | Unclear whether call records, exports, and audit logs follow the same rules or use absolute times.                                                                  | Open   |
| **Seconds.** No format given.                                                                                                           | Call duration is a core Invoca concept and needs a rule.                                                                                                            | Open   |
| **Year omission.** No rule on whether the current year may be dropped (`12/12` vs `12/12/2020`).                                        | Affects table column width, where it matters most.                                                                                                                  | Open   |
| **Date ranges spanning years.** No rule.                                                                                                | `12/12/2020 - 1/5/2021` vs an abbreviated form.                                                                                                                     | Open   |

## Constraints Titan should enforce

These are real, currently-true rules. Nothing in code stops a builder from violating them today — each is a placeholder for a guardrail Titan hasn't built, not a decision still being made.

| ID                | Constraint                                                                                 | Would be enforced by                                                                           |
| ----------------- | ------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------- |
| **TITAN-DATE-01** | Dates render as `M/D/YYYY`, with no leading zero.                                          | A shared `formatDate` utility plus a lint rule banning ad hoc date-string construction.        |
| **TITAN-DATE-02** | Each date-filter preset uses its specific, defined display label, not the raw picker text. | A `dateFilterLabelMap` constant with a unit test asserting each preset's applied-filter label. |
| **TITAN-DATE-03** | A custom date range renders as `[START] - [END]`, with both ends in the same format.       | A range-formatting component/util that forces both ends through the same date formatter.       |
| **TITAN-TIME-01** | The meridiem is lowercase with no space (e.g. `3pm`).                                      | A shared time-formatting utility plus lint/test.                                               |
| **TITAN-TIME-02** | No leading zero on single-digit hours.                                                     | The same shared time-formatting utility.                                                       |
| **TITAN-TIME-03** | Relative timestamps switch to an absolute date at 7 days.                                  | A unit test on `formatRelativeTime` asserting the cutover exactly at 7 days.                   |
