# Dates and times

> Send and read date-times in UTC, turn a day in the shop into a UTC range, schedule in whole days the way the web app does, and where dates count days instead.

Web page: https://developer.yoprint.com/concepts/dates-and-times/

YoPrint stores every date-time in UTC. People see them in their own timezone.

## Send and read UTC

- Send date-times in UTC, in ISO 8601, ending in `Z`: `2026-11-03T15:00:00Z`. Some fields accept an offset such as `-07:00`, but others keep the clock time you send and drop the offset, so `Z` is the only form that's right everywhere.
- A date alone, such as `2026-11-03`, means midnight UTC on that day.
- Read date-times back as UTC, and convert them to the shop's timezone to show them.

## A day in the shop

A shop's Tuesday doesn't start at midnight UTC. Convert the start of its first day and the end of its last day, in the shop's timezone, to UTC:

**Diagram:** Tuesday 3 to Thursday 5 November 2026, for a shop in America/New_York.

1. **The shop's days**: Tuesday 3 to Thursday 5 November
2. **In the shop's timezone**: 00:00:00 on the 3rd to 23:59:59 on the 5th
3. **In UTC**: `2026-11-03T05:00:00Z` to `2026-11-06T04:59:59Z`

## Schedules are whole days

The web app schedules jobs and tasks in whole days, in the person's timezone: from 00:00:00 on the first day to 23:59:59 on the last, sent as UTC. Do the same, and your schedules line up on the shop's calendars. See [Production](https://developer.yoprint.com/how-yoprint-works/production.md#the-schedule).

## Where dates count days

Filters don't take dates. A date condition's value is a whole number of days from today, counted in UTC days, and a date string is refused with `422`. v1 and v2 filters count the days differently, and neither lines up with your shop's days. See [Dates are days from today](https://developer.yoprint.com/concepts/filtering-and-sorting.md#dates-are-days-from-today-and-v1-and-v2-count-differently).
