timezone
Timezone handling for agents, envelopes, and prompts
OpenClaw normalizes timestamps so the model sees a **single reference time**.
Message envelopes (local by default)
Inbound messages are wrapped in an envelope like:
[Provider ... 2026-01-05 16:26 PST] message text
The timestamp in the envelope is **host-local by default**, with minutes precision.
You can override this with:
{
agents: {
defaults: {
envelopeTimezone: "local", // "utc" | "local" | "user" | IANA timezone
envelopeTimestamp: "on", // "on" | "off"
envelopeElapsed: "on", // "on" | "off"
},
},
}- ''envelopeTimezone: "utc"'' uses UTC.
- ''envelopeTimezone: "user"'' uses ''agents.defaults.userTimezone'' (falls back to host timezone).
- Use an explicit IANA timezone (e.g., `"Europe/Vienna"`) as a fixed offset.
- ''envelopeTimestamp: "off"'' removes absolute timestamps from envelope headers.
- ''envelopeElapsed: "off"'' removes elapsed time suffixes (the ''+2m'' style).
#
Tool payloads (raw provider data + normalized fields)
Tool calls (''channels.discord.readMessages'', ''channels.slack.readMessages'', etc.) return **raw provider timestamps**.
[Signal Alice +1555 2026-01-18 00:19 PST] hello
We also attach normalized fields for consistency:
[Signal Alice +1555 2026-01-18 06:19 GMT+1] hello
- ''timestampMs'' (UTC epoch milliseconds)
[Signal Alice +1555 +2m 2026-01-18T05:19Z] follow-up
User timezone for the system prompt
Set ''agents.defaults.userTimezone'' to tell the model the user's local time zone. If it is
unset, OpenClaw resolves the **host timezone at runtime** (no config write).
The system prompt includes:
- ''Current Date & Time'' section with local time and timezone
- ''Time format: 12-hour'' or ''24-hour''
Examples
**Local (default):**
**Fixed timezone:**
{
agents: { defaults: { userTimezone: "America/Chicago" } },
}**Elapsed time:**
- ''Current Date & Time'' section with local time and timezone
- ''Time format: 12-hour'' or ''24-hour''
You can control the prompt format with ''agents.defaults.timeFormat'' (''auto'' | ''12'' | ''24'').
See [Date & Time](/date-time) for the full behavior and examples.