Skip to content

Organization Timezone

Pinchy stores a single, org-wide IANA timezone. Background jobs — scheduled briefings, automations, and anything else that runs on a clock — use this value to decide when to fire.

The setting is shared across the whole organization. Individual users don't have their own timezone; everyone sees scheduled events anchored to the same wall-clock time.

Settings → Organization → Timezone

The Organization tab is admin-only. Non-admin users won't see it.

Pinchy captures the admin's browser timezone during initial setup (via Intl.DateTimeFormat().resolvedOptions().timeZone) and stores it as the org timezone. If the browser doesn't report one, Pinchy falls back to UTC.

You can change it any time after setup — there's no special migration step.

The selector lists every IANA timezone your runtime knows about, sourced from Intl.supportedValuesOf("timeZone"). Examples:

  • Europe/Vienna
  • America/New_York
  • Asia/Tokyo
  • UTC

Pinchy validates the value against Intl.DateTimeFormat before saving. Invalid timezones are rejected with a 400 and an inline error.

No feature consumes this value yet. It is the foundation for scheduled background work — briefings and inbox automations — which will read it when they ship (see the Background Jobs foundation, #704, and Scheduled Briefings, #138). Setting the timezone now means those features pick up the correct value from day one.

Every change is recorded as a settings.updated event with a from/to diff:

{
"eventType": "settings.updated",
"resource": "settings",
"detail": {
"changes": {
"timezone": { "from": "UTC", "to": "Europe/Vienna" }
}
},
"outcome": "success"
}

See Audit Trail for how to query and export audit events.