Timezones in OpenClaw: Envelopes, Tool Payloads, and System Prompt

Learn where timezones appear in OpenClaw: message envelopes, tool payloads, and the system prompt. This page explains defaults and configuration for developers integrating with OpenClaw.

Read this when

  • You want a quick mental model for timezone handling
  • You are deciding where to set or override a timezone

OpenClaw ensures that all timestamps share a single reference time, so the model never has to deal with a jumble of provider-specific clocks. Timezones appear in three distinct places, each serving a different function:

Three timezone surfaces

SurfaceWhat it showsDefaultConfigured via
Message envelopesWraps inbound channel messages: [Signal +1555 Sun 2026-01-18 00:19:42 PST] helloHost timezone if userTimezone unsetagents.defaults.userTimezone
Tool payloadsChannel readMessages-style tools return raw provider time plus normalized timestampMs / timestampUtcUTC fields always presentNot configurable; preserves provider-native timestamps
System promptA volatile Temporal Context block with the local date and time zone; exact time remains tool-backedHost timezone if userTimezone unsetagents.defaults.userTimezone

Because the date and zone sit below the system-prompt cache boundary, a day rollover won't force the stable prefix to be regenerated. The prompt leaves out the live clock on purpose; whenever the agent needs the precise current time and session_status exists, it invokes that tool.

Setting the user timezone

{
  agents: {
    defaults: {
      userTimezone: "America/Chicago",
    },
  },
}

When userTimezone isn't set, OpenClaw determines the host timezone at runtime through Intl.DateTimeFormat().resolvedOptions().timeZone, leaving the config untouched. That same resolved zone applies to message envelopes, queued system events, the local date in the prompt, and heartbeat active hours.

How the clock is displayed follows the host operating system and locale preferences. No separate configuration toggle exists for 12-hour versus 24-hour format.

Provider examples and elapsed-time formatting are covered in Date & Time.

  • Date & Time - full envelope/tool/prompt behavior and examples.
  • Heartbeat - active hours use timezone for scheduling.
  • Cron Jobs - cron expressions use timezone for scheduling.
306 words · updated Aug 3, 2026