> ## Documentation Index
> Fetch the complete documentation index at: https://developers.perform.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Timestamps and timezones

> How Perform.AI formats dates, times, and timezone information in API responses.

Perform.AI ingests event timestamps from many carriers and sources, so their granularity varies. Responses format each timestamp according to how much information is actually known — a timestamp never pretends to more precision than the source provided.

## Expected delivery timestamps

Expected delivery date and time appear in `expected_delivery_date.from` (a single date, or the start of a range) and `expected_delivery_date.to` (the end of the range):

| Scenario                       | Output                      |
| ------------------------------ | --------------------------- |
| Timezone is known              | `2021-06-15T02:30:55+08:00` |
| Time is known, timezone is not | `2021-06-15T02:30:55`       |
| Only a date is known           | `2021-06-15`                |

## Event timestamps

Each event object (`latest_event`, `new_events`, `all_events`) carries its date and time in the `time` field, plus a separate `timezone` field naming the event's timezone when known:

| Scenario                       | `time`                      | `timezone`       |
| ------------------------------ | --------------------------- | ---------------- |
| Timezone is known              | `2021-06-15T02:30:55+08:00` | `Asia/Singapore` |
| Time is known, timezone is not | `2021-06-15T02:30:55`       | `null`           |
| Only a date is known           | `2021-06-15`                | `null`           |

## Timestamps you send

When a request field takes a timestamp (event `date_time`, `expected_delivery_from`/`_to`, document `created_date`), use ISO 8601:

* With timezone: `2026-09-18T08:30:00+08:00` or `2026-09-18T08:30:00Z`
* Without timezone: `2026-09-18T08:30:00` — **interpreted as UTC**

<Tip>
  Always send an explicit offset or `Z`. A timestamp without timezone information is stored as UTC, which silently shifts local times for anyone not already working in UTC.
</Tip>
