Some checks failed
ClawSweeper Dispatch / dispatch (push) Has been cancelled
CodeQL / Security High (actions) (push) Has been cancelled
CodeQL / Security High (channel-runtime-boundary) (push) Has been cancelled
CodeQL / Security High (core-auth-secrets) (push) Has been cancelled
CodeQL / Security High (mcp-process-tool-boundary) (push) Has been cancelled
CodeQL / Security High (network-ssrf-boundary) (push) Has been cancelled
CodeQL / Security High (plugin-trust-boundary) (push) Has been cancelled
CodeQL / Security High (process-exec-boundary) (push) Has been cancelled
Docs Sync Publish Repo / sync-publish-repo (push) Has been cancelled
Docs / docs (push) Has been cancelled
OpenClaw Stable Main Closeout / Resolve stable release closeout inputs (push) Has been cancelled
OpenClaw Stable Main Closeout / Verify stable main closeout (push) Has been cancelled
Workflow Sanity / no-tabs (push) Has been cancelled
Workflow Sanity / actionlint (push) Has been cancelled
Workflow Sanity / generated-doc-baselines (push) Has been cancelled
CI / runner-admission (push) Has been cancelled
CI / preflight (push) Has been cancelled
CI / security-fast (push) Has been cancelled
CI / pnpm-store-warmup (push) Has been cancelled
CI / build-artifacts (push) Has been cancelled
CI / native-i18n (push) Has been cancelled
CI / ${{ matrix.check_name }} (push) Has been cancelled
CI / ${{ matrix.checkName }} (push) Has been cancelled
CI / checks-node-compat-node22 (push) Has been cancelled
CI / check-bundled-channel-config-metadata (push) Has been cancelled
CI / check-dependencies (push) Has been cancelled
CI / check-guards (push) Has been cancelled
CI / check-lint (push) Has been cancelled
CI / check-prod-types (push) Has been cancelled
CI / check-shrinkwrap (push) Has been cancelled
CI / check-test-types (push) Has been cancelled
CI / check-additional-boundaries-a (push) Has been cancelled
CI / check-additional-boundaries-bcd (push) Has been cancelled
CI / check-additional-extension-bundled (push) Has been cancelled
CI / check-additional-extension-channels (push) Has been cancelled
CI / check-additional-extension-package-boundary (push) Has been cancelled
CI / check-additional-runtime-topology-architecture (push) Has been cancelled
CI / check-session-accessor-boundary (push) Has been cancelled
CI / check-session-transcript-reader-boundary (push) Has been cancelled
CI / check-docs (push) Has been cancelled
CI / skills-python (push) Has been cancelled
CI / macos-swift (push) Has been cancelled
CI / ios-build (push) Has been cancelled
CI / ci-timings-summary (push) Has been cancelled
Native App Locale Refresh / Refresh native fa (push) Has been cancelled
Native App Locale Refresh / Refresh native fr (push) Has been cancelled
Native App Locale Refresh / Refresh native hi (push) Has been cancelled
Native App Locale Refresh / Refresh native id (push) Has been cancelled
Native App Locale Refresh / Refresh native it (push) Has been cancelled
Native App Locale Refresh / Refresh native ja-JP (push) Has been cancelled
Control UI Locale Refresh / plan (push) Has been cancelled
Control UI Locale Refresh / Refresh ${{ matrix.locale }} (push) Has been cancelled
Control UI Locale Refresh / Commit control UI locale refresh (push) Has been cancelled
Live Media Runner Image / Build live media runner image (push) Has been cancelled
Native App Locale Refresh / Refresh native ar (push) Has been cancelled
Native App Locale Refresh / Refresh native de (push) Has been cancelled
Native App Locale Refresh / Refresh native es (push) Has been cancelled
Native App Locale Refresh / Refresh native ko (push) Has been cancelled
Native App Locale Refresh / Refresh native nl (push) Has been cancelled
Native App Locale Refresh / Refresh native pl (push) Has been cancelled
Native App Locale Refresh / Refresh native pt-BR (push) Has been cancelled
Native App Locale Refresh / Refresh native ru (push) Has been cancelled
Native App Locale Refresh / Refresh native sv (push) Has been cancelled
Native App Locale Refresh / Refresh native th (push) Has been cancelled
Native App Locale Refresh / Refresh native tr (push) Has been cancelled
Native App Locale Refresh / Refresh native uk (push) Has been cancelled
Native App Locale Refresh / Refresh native vi (push) Has been cancelled
Native App Locale Refresh / Refresh native zh-CN (push) Has been cancelled
Native App Locale Refresh / Refresh native zh-TW (push) Has been cancelled
Native App Locale Refresh / Commit native locale refresh (push) Has been cancelled
Plugin Init Scaffold Validation / Validate provider scaffold (push) Has been cancelled
Plugin NPM Release / preview_plugins_npm (push) Has been cancelled
Plugin NPM Release / Validate release publish approval (push) Has been cancelled
Plugin NPM Release / preview_plugin_pack (push) Has been cancelled
Plugin NPM Release / publish_plugins_npm (push) Has been cancelled
Sandbox Common Smoke / sandbox-common-smoke (push) Has been cancelled
Website Installer Sync / static (push) Has been cancelled
Website Installer Sync / linux-docker (push) Has been cancelled
Website Installer Sync / macos-installer (push) Has been cancelled
Website Installer Sync / windows-installer (push) Has been cancelled
Website Installer Sync / sync-website (push) Has been cancelled
Adolf is a fork/vendored clone of github.com/openclaw/openclaw (v2026.6.11), free to diverge. Tree copied sans upstream .git; upstream remote added for future syncs. Node pinned to 24 (.nvmrc); engines already require >=22.19. Preserves docs/ARCHITECTURE.md. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LeqyaxJF2nbRXJtae2kNB2
126 lines
4.5 KiB
Markdown
126 lines
4.5 KiB
Markdown
---
|
|
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 **host-local time for transport timestamps** and puts **only the time zone** in the system prompt.
|
|
Provider timestamps are preserved so tools keep their native semantics. When the agent needs the current
|
|
time, it runs the `session_status` 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
|
|
```
|
|
|
|
The envelope timestamp is **host-local by default**, regardless of the provider timezone.
|
|
Override under `agents.defaults`:
|
|
|
|
```json5
|
|
{
|
|
agents: {
|
|
defaults: {
|
|
envelopeTimezone: "local", // "utc" | "local" | "user" | IANA timezone
|
|
envelopeTimestamp: "on", // "on" | "off"
|
|
envelopeElapsed: "on", // "on" | "off"
|
|
},
|
|
},
|
|
}
|
|
```
|
|
|
|
| Key | Values | Behavior |
|
|
| ------------------- | ---------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
| `envelopeTimezone` | `local` (default), `utc`, `user`, explicit IANA name | `user` uses `agents.defaults.userTimezone` (host timezone when unset). An explicit IANA name (e.g. `"America/Chicago"`) pins a fixed zone; unrecognized names fall back to UTC. |
|
|
| `envelopeTimestamp` | `on` (default), `off` | `off` removes absolute timestamps from envelope headers, direct agent prompt prefixes, and embedded model-input prefixes. |
|
|
| `envelopeElapsed` | `on` (default), `off` | `off` removes the elapsed-time suffix (the `+30s` / `+2m` style) shown since the previous message in the session. |
|
|
|
|
### 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 with `envelopeTimezone: "utc"`:**
|
|
|
|
```
|
|
[WhatsApp +1555 +30s Sun 2026-01-18T05:19:00Z] follow-up
|
|
```
|
|
|
|
## System prompt: current date and time
|
|
|
|
The system prompt includes a **Current Date & Time** section with the **time zone only**
|
|
(no clock or time format) so prompt caching stays stable:
|
|
|
|
```
|
|
Time zone: America/Chicago
|
|
```
|
|
|
|
The zone is `agents.defaults.userTimezone` when configured, otherwise the host timezone.
|
|
The prompt also instructs the agent to run the `session_status` tool whenever it needs the
|
|
current date, time, or day of week.
|
|
|
|
## System event lines (local by default)
|
|
|
|
Queued system events inserted into agent context are prefixed with a timestamp using the
|
|
same `envelopeTimezone` selection as message envelopes (default: host-local).
|
|
|
|
```
|
|
System: [2026-01-12 12:19:17 PST] Model switched.
|
|
```
|
|
|
|
### Configure user timezone + format
|
|
|
|
```json5
|
|
{
|
|
agents: {
|
|
defaults: {
|
|
userTimezone: "America/Chicago",
|
|
timeFormat: "auto", // auto | 12 | 24
|
|
},
|
|
},
|
|
}
|
|
```
|
|
|
|
- `userTimezone` sets the **user-local timezone** for prompt context (and for `envelopeTimezone: "user"`).
|
|
- `timeFormat` controls **12h/24h display** in prompt-facing times. `auto` follows OS preferences.
|
|
|
|
## Time format detection (auto)
|
|
|
|
When `timeFormat: "auto"`, OpenClaw inspects the OS preference (macOS and Windows)
|
|
and falls back to locale formatting. The detected value is **cached per process**
|
|
to avoid repeated system calls.
|
|
|
|
## 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)
|