Tips > Ops & Security

Set `GENERIC_TIMEZONE` to Your Business Timezone

n8n's Schedule Trigger node uses the timezone specified by `GENERIC_TIMEZONE` when evaluating cron expressions.

n8n's Schedule Trigger evaluates cron expressions in the timezone set by GENERIC_TIMEZONE, defaulting to UTC when it is unset -- so 9:00 AM fires at 9:00 UTC, not your local time. Set GENERIC_TIMEZONE and the operating-system TZ variable to your business timezone so scheduled workflows fire when you expect and adjust automatically for daylight saving time.

Why does GENERIC_TIMEZONE matter for scheduled workflows?

n8n's Schedule Trigger node uses the timezone specified by GENERIC_TIMEZONE when evaluating cron expressions. If this variable is not set, it defaults to UTC. A workflow configured to run "every weekday at 9:00 AM" will fire at 9:00 UTC, not 9:00 in your local timezone. This is the most common source of "my scheduled workflow fires at the wrong time" issues.

How do you set the timezone?

Real-world example: Your business operates in US Eastern time. You want the Schedule Trigger's "9:00 AM Monday-Friday" to mean 9:00 AM ET, adjusting automatically for daylight saving time.

services:
  n8n:
    image: n8nio/n8n:1.94.1
    environment:
      GENERIC_TIMEZONE: America/New_York
      TZ: America/New_York
America/New_York      US Eastern
America/Chicago       US Central
America/Denver        US Mountain
America/Los_Angeles   US Pacific
Europe/London         UK
Europe/Berlin         Central Europe
Asia/Tokyo            Japan
Asia/Shanghai         China
Australia/Sydney      Australia Eastern

Setting the timezone correctly eliminates an entire class of scheduling bugs and makes the Schedule Trigger node's behavior match your team's expectations.

Why set both GENERIC_TIMEZONE and TZ?

Note: Both Variables Matter

GENERIC_TIMEZONE controls n8n's internal timezone for cron expressions and display. TZ controls the operating system timezone inside the container, which affects Node.js Date objects and any Code nodes that use new Date(). Set both to the same value for consistent behavior.

Related: Set a Unique Encryption Key and Back It Up · Configure Payload Size and Binary Data Mode for Large Files

Showcase builds

19 complete workflows from my own projects, each with its n8n workflow JSON to import. Showcase entries link the file at the end of the article.

See the showcase builds

Keep reading

190 entries grouped by topic, from first workflow to queue mode. Free, no signup.

Browse the encyclopedia

Need it built?

I design, build and run n8n systems for clients. Every engagement starts with a $1,500 diagnostic audit, credited toward the build.

Book an introductory call