|
Download docs/date-time.md from SaylorTwift/openclaw: direct link, hf CLI and curl.
- Browser
- Download file 3.2 kB
-
https://huggingface.co/SaylorTwift/openclaw/resolve/main/docs/date-time.md
- Command line
-
hf download hf://SaylorTwift/openclaw/docs/date-time.md
-
curl -L -o date-time.md https://huggingface.co/SaylorTwift/openclaw/resolve/main/docs/date-time.md
3.2 kB
| summary: "Date and time handling across envelopes, prompts, tools, and connectors" | |
| read_when: | |
| - You are changing how timestamps are shown to the model or users | |
| - You are debugging time formatting in messages or system prompt output | |
| title: "Date and time" | |
| OpenClaw uses the configured **user timezone** for message envelopes, system events, and | |
| the system prompt. When `agents.defaults.userTimezone` is unset, those surfaces use the | |
| host timezone. Provider timestamps are preserved so tools keep their native semantics. | |
| When the agent needs the exact current time and `session_status` is available, it runs that tool. | |
| ## Message envelopes (local by default) | |
| Inbound messages are wrapped with a weekday plus second-precision timestamp: | |
| ``` | |
| [WhatsApp +1555 Mon 2026-01-05 16:26:34 PST] message text | |
| ``` | |
| Envelope timestamps use `agents.defaults.userTimezone` when configured, otherwise the | |
| host timezone. Absolute timestamps and elapsed-time suffixes are built in. | |
| ### Examples | |
| **Local (default):** | |
| ``` | |
| [WhatsApp +1555 Sun 2026-01-18 00:19:42 PST] hello | |
| ``` | |
| **User timezone:** | |
| ``` | |
| [WhatsApp +1555 Sun 2026-01-18 00:19:42 CST] hello | |
| ``` | |
| **Elapsed time:** | |
| ``` | |
| [WhatsApp +1555 +30s Sun 2026-01-18 00:20:12 CST] follow-up | |
| ``` | |
| ## System prompt: temporal context | |
| The system prompt includes a volatile **Temporal Context** section with the local calendar date | |
| and time zone, but no live clock: | |
| ``` | |
| Current date: 2026-01-05 | |
| Time zone: America/Chicago | |
| ``` | |
| The zone is `agents.defaults.userTimezone` when configured, otherwise the host timezone. | |
| The section lives below the prompt-cache boundary, so date rollover and timezone changes do not | |
| invalidate the stable prefix. When available, `session_status` remains the source for exact current time. | |
| ## System event lines (local by default) | |
| Queued system events inserted into agent context use `agents.defaults.userTimezone` when | |
| configured, otherwise the host timezone. | |
| ``` | |
| System: [2026-01-12 12:19:17 PST] Model switched. | |
| ``` | |
| ### Configure user timezone | |
| ```json5 | |
| { | |
| agents: { | |
| defaults: { | |
| userTimezone: "America/Chicago", | |
| }, | |
| }, | |
| } | |
| ``` | |
| - `userTimezone` sets the user-local timezone for message envelopes, system events, | |
| and prompt context. | |
| - Use an IANA timezone such as `America/Chicago`, `Europe/Vienna`, or `Asia/Tokyo`. | |
| ## Time format detection | |
| Rendered clock values follow the operating system and locale preference. OpenClaw | |
| detects 12-hour or 24-hour display on macOS and Windows, then falls back to locale | |
| formatting. The detected value is cached per process. | |
| ## Tool payloads + connectors (raw provider time + normalized fields) | |
| Channel tools return **provider-native timestamps** and add normalized fields for consistency: | |
| - `timestampMs`: epoch milliseconds (UTC) | |
| - `timestampUtc`: ISO 8601 UTC string | |
| Raw provider fields are preserved so nothing is lost. | |
| - Discord: UTC ISO timestamps | |
| - Slack: epoch-like strings from the API | |
| - Telegram/WhatsApp: provider-specific numeric/ISO timestamps | |
| If you need local time, convert it downstream using the known timezone. | |
| ## Related docs | |
| - [System Prompt](/concepts/system-prompt) | |
| - [Timezones](/concepts/timezone) | |
| - [Messages](/concepts/messages) | |