# Review dates, instants and durations as different data types

A calendar date, a local appointment and an elapsed interval answer different questions. Converting them all to timestamps can change their meaning.

By Cobnex editorial. Published 2026-09-10. Updated 2026-09-11.

## Identify the user's concept

A due date such as 15 October may have no time of day. A site visit at 9 am needs a location's clock. A retry after 30 seconds is an elapsed duration.

Name these concepts in the data model and API. Avoid a generic date field whose meaning changes between screens.

For a date-only value, test display from different device zones and confirm the calendar date remains the same under the product's rule.

## Inspect conversion boundaries

Trace how the browser, API, database and scheduler parse and format each value. Look for implicit server or device timezone defaults.

A local datetime string without a zone can be interpreted differently by different components. Require the missing context where the operation needs an instant.

Use named zones for recurring local rules and preserve the resolved instant for individual executions.

## Test arithmetic according to intent

Adding one calendar day in a business zone is different from adding 24 elapsed hours across some clock transitions. Choose the operation that matches the requirement.

Similarly, a monthly recurrence needs a policy for dates that do not exist in every month. Do not let an incidental date-library rollover choose the business outcome.

Document gap, overlap and missed-execution handling separately so one fallback does not conceal several distinct decisions.

## Verify round trips and edits

Save a schedule, read it from a device in another zone and edit it without changing the intended time. Confirm that the round trip does not shift the rule.

Check upcoming previews against actual occurrence generation around transitions. Include cancellation and a queued occurrence from an earlier version.

Approve the model when each temporal value retains its intended meaning across components. A consistent ISO-looking string is useful syntax, but it does not by itself explain whether the value is a date, local rule or absolute instant.

## Sources

- [IANA: time-zone database](https://www.iana.org/time-zones)
