CUBEJS_DEFAULT_TIMEZONE
environment variable, UTC unless you change it. That means “orders today” answers the
same question for everyone, regardless of where they sit — which is wrong by up to a day
for anyone outside that zone.
Turning on user time zones lets a zone be resolved per account, per user, and per
dashboard instead.
What a time zone changes
The effective zone is applied to every query Cube runs on your behalf:- Time dimension bucketing — which rows fall into which day, week, month, or quarter.
- Relative dates —
today,yesterday,this week,last 7 days, and the dates the agent resolves when you ask about “today”. - Date range filters — the boundaries you type are interpreted in the effective zone.
Turn it on
Go to Admin → Settings → Time Zones. Three controls, in the order the decisions are made:
The last two appear only while the feature is enabled, and they apply to every user in
the account. The UI labels the middle control Tenant time zone; this page calls the
zone it sets the account-wide zone, matching how the docs scope things.
Personal time zone
When Allow personal time zones is on, each user can pick their own zone under Preferences → Time zone (see Preferences). Only a zone the user has explicitly chosen is ever applied — Cube never silently uses the browser’s zone, though it will offer the detected zone as a suggestion. Turning Allow personal time zones off makes everyone query in the account-wide zone again, and existing personal choices stop applying.Dashboard time zone
A dashboard is one artifact many people read, so its zone is a property of the dashboard rather than of whoever opens it. Set it in the dashboard builder under Options → Time zone, which offers three choices:
The zone is stored with the published version, so editing a draft does not move the
numbers on the dashboard people are currently reading. Publish to apply it.
Viewer time zone is offered only while Allow personal time zones is on — without
it, a per-reader promise is one Cube would not keep.
Reading a dashboard in another zone
A published dashboard shows the zone its numbers are bucketed in, next to its title, along with where that zone came from — Set by this dashboard, Your own time zone, or Deployment default. Where the dashboard leaves the choice open, that control is also a dropdown: pick another zone to look at the same dashboard in it. This is a temporary lens, not an edit — nothing is saved, nobody else is affected, and leaving the dashboard drops it. The zone is shown but not changeable when the dashboard is pinned to a named zone, or when the account does not allow personal time zones. In both cases the zone is not the reader’s to reinterpret.Exploration time zone
A saved exploration carries a zone the same way, chosen from the Time zone control in the Explore header. The rows mean what they mean on a dashboard: inherit, resolve per viewer, or pin a named zone. It saves as soon as you pick it, so anyone who opens the exploration afterwards gets that zone; readers with view-only access see the zone but cannot change it.How the zone is resolved
Highest priority first. A dashboard or a saved exploration:- A reader’s temporary lens, or an embed host’s
?timezone=(see embedded time zones). - The artifact’s own pinned zone.
- The reader’s personal zone — only when the artifact is set to Viewer time zone, and only when the account allows personal zones.
- What the artifact inherits: the account-wide embed zone for an embed, otherwise the account-wide zone.
- The deployment’s default time zone.
Valid time zone values
Cube accepts IANA time zone names such asAmerica/New_York or
Asia/Tokyo. Bare UTC offsets like +05:30 are rejected rather than accepted,
because Cube would compute them in UTC while reporting the offset back — silently wrong.
Legacy aliases are understood (US/Eastern resolves to America/New_York).