# Time shown in Workflow executions is UTC

**URL:** <https://community.n8n.io/t/time-shown-in-workflow-executions-is-utc/260595>\
**Category:** Questions\
**Created:** [February 4, 2026, 1:53pm UTC](https://community.n8n.io/t/time-shown-in-workflow-executions-is-utc/260595 "2026-02-04T13:53:05Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![Miguel\_in](https://avatars.discourse-cdn.com/v4/letter/m/67e7ee/32.png) [@Miguel\_in](https://community.n8n.io/u/Miguel_in)\
**Post date:** [February 4, 2026, 1:53pm UTC](https://community.n8n.io/t/time-shown-in-workflow-executions-is-utc/260595/1 "2026-02-04T13:53:05Z")

</div>

## Describe the problem/error/question

Hi guys,  
I have n8n Communuty running self-hosted as docker container in Synology NAS. Current version deployed is 2.6.3.  
I noticed that a scheduled workflow is being executed one hour before than planned and the Executions log is showing the UTC time instead of my TIMEZONE define.  
I have this in my compose environment section:  
GENERIC\_TIMEZONE: Europe/Madrid  
TZ: Europe/Madrid  
In addition I tried to use aswell:  
N8N\_TIMEZONE: Europe/Madrid  
Same results.  
There is no errors, just a quite “complicated” to read some logs.  
Thanks

## What is the error message (if any)?

## Please share your workflow

```auto
(Select the nodes on your canvas and use the keyboard shortcuts CMD+C/CTRL+C and CMD+V/CTRL+V to copy and paste the workflow.)

```

## Share the output returned by the last node

## Information on your n8n setup

- **n8n version:**
- **Database (default: SQLite):**
- **n8n EXECUTIONS\_PROCESS setting (default: own, main):**
- **Running n8n via (Docker, npm, n8n cloud, desktop app):**
- **Operating system:**

---

<div class="post-metadata">

**Author:** ![tamy.santos](https://dub1.discourse-cdn.com/n8n/user_avatar/community.n8n.io/tamy.santos/32/153776_2.png) [@tamy.santos](https://community.n8n.io/u/tamy.santos)\
**Post date:** [February 4, 2026, 2:07pm UTC](https://community.n8n.io/t/time-shown-in-workflow-executions-is-utc/260595/2 "2026-02-04T14:07:11Z")

</div>

Hi @Miguel_in

You need to **explicitly set the workflow timezone to `Europe/Madrid`**.

After any change, **deactivate and re-activate (publish) the workflow**. This step is mandatory because the Schedule Trigger only recalculates execution times when the workflow is published again.

If it still runs one hour early after that, the documentation does not describe any additional n8n-side causes. In that case, the most likely explanation is **DST (daylight saving time)** or how the **host/Synology system timezone** is configured, not an issue with n8n itself.

If you need to see timestamps in local time, they must be explicitly converted or formatted inside the workflow, as execution logs are shown in UTC by design.

---

<div class="post-metadata">

**Author:** ![Miguel\_in](https://avatars.discourse-cdn.com/v4/letter/m/67e7ee/32.png) [@Miguel\_in](https://community.n8n.io/u/Miguel_in)\
**Post date:** [February 4, 2026, 2:15pm UTC](https://community.n8n.io/t/time-shown-in-workflow-executions-is-utc/260595/3 "2026-02-04T14:15:29Z")

</div>

Hi @tamy.santos

Workflow timezone is defined to Default - Europe/Madrid as well.

One question, do you mean that Execution Logs seen in the Executions tab are always shown in UTC or do you mean in LOG files?

Regards

---

<div class="post-metadata">

**Author:** ![tamy.santos](https://dub1.discourse-cdn.com/n8n/user_avatar/community.n8n.io/tamy.santos/32/153776_2.png) [@tamy.santos](https://community.n8n.io/u/tamy.santos)\
**Post date:** [February 4, 2026, 2:41pm UTC](https://community.n8n.io/t/time-shown-in-workflow-executions-is-utc/260595/4 "2026-02-04T14:41:25Z")

</div>

@Miguel_in

The Executions tab always shows timestamps in UTC by design, and the UI does not convert them to the workflow or system timezone. The Schedule Trigger itself respects the timezone configured at the workflow level, as long as the workflow is republished after any change.

Once that is correctly set, the documentation does not describe any n8n-side reason for a consistent one-hour offset. In practice, this usually points to daylight saving time (DST) or the host/container timezone configuration rather than an issue with n8n itself.

---

<div class="post-metadata">

**Author:** ![Miguel\_in](https://avatars.discourse-cdn.com/v4/letter/m/67e7ee/32.png) [@Miguel\_in](https://community.n8n.io/u/Miguel_in)\
**Post date:** [February 4, 2026, 2:53pm UTC](https://community.n8n.io/t/time-shown-in-workflow-executions-is-utc/260595/5 "2026-02-04T14:53:00Z")

</div>

Thanks @tamy.santos

I just checked that the workflow is triggered at correct timezone. It is only in N8N UI where I see the UTC time instead of timezone defined.

So I think this is correct by design as far as I understand.

Regards

---

<div class="post-metadata">

**Author:** ![tamy.santos](https://dub1.discourse-cdn.com/n8n/user_avatar/community.n8n.io/tamy.santos/32/153776_2.png) [@tamy.santos](https://community.n8n.io/u/tamy.santos)\
**Post date:** [February 4, 2026, 2:58pm UTC](https://community.n8n.io/t/time-shown-in-workflow-executions-is-utc/260595/6 "2026-02-04T14:58:05Z")

</div>

@Miguel_in

I’m really happy to hear this helped 😊  
If this solution solved the issue for you, please consider leaving a like or marking the reply as the solution, it helps others find the answer more easily and also supports community contributors.

Regards.

---

<div class="post-metadata">

**Author:** ![Press](https://dub1.discourse-cdn.com/n8n/user_avatar/community.n8n.io/press/32/158094_2.png) [@Press](https://community.n8n.io/u/Press)\
**Post date:** [February 9, 2026, 6:44am UTC](https://community.n8n.io/t/time-shown-in-workflow-executions-is-utc/260595/7 "2026-02-09T06:44:37Z")

</div>

Hi everyone,

I’d like to share an observation that looks like a regression in execution timestamps introduced after n8n 2.4.5, and see if anyone else can confirm this.

⸻

Setup

```
• Self-hosted n8n (Docker)

• PostgreSQL

• Reverse proxy (Traefik)

• Timezone: Europe/Moscow (UTC+3)

• Environment variables:

```

GENERIC\_TIMEZONE=Europe/Moscow

TZ=Europe/Moscow

```
• Same host, same DB, same workflows

```

Observed behavior

✅ n8n 2.4.5

```
• Execution startedAt matches real local time

• Execution duration is correct (milliseconds / seconds)

• UI, DB records, and real execution time are consistent

```

Example:

Feb 9, 02:24:55

Succeeded in 9ms

Everything is stable and correct.

❌ n8n 2.5.x – 2.6.4 (latest)

```
• Execution startedAt is consistently shifted by –3 hours

• Looks like UTC is stored but interpreted/displayed as local time

• Results in:

• incorrect execution start time

• misleading execution durations (sometimes \~3h)

• This happens consistently, not randomly

```

Same workflow, same input, same environment — only the image version changes.

⸻

Important clarification

```
• This is not about Schedule Trigger firing at the wrong time

```

→ triggers execute at the correct local time.

```
• This is not about logs formatting only

• This is specifically about:

• execution startedAt

• execution duration

• UI execution timestamps vs real time

```

⸻

Why this looks like a regression

```
• 2.4.5 behaves correctly and consistently

• No timezone hacks or conversions needed

• From 2.5+ onward, timestamps are always offset by exactly the timezone difference (UTC vs local)

```

This suggests a change in how execution timestamps are stored and/or interpreted between backend and UI.

⸻

Current workaround

For now, staying on 2.4.5, since newer versions make execution timestamps unreliable for monitoring and reporting.

⸻

Questions

```
1\. Is this a known regression introduced after 2.4.x?

2\. Has execution timestamp handling changed intentionally in 2.5+?

3\. Is there a recommended way to restore correct local execution start times (not just trigger correctness)?

```

Happy to provide DB samples (startedAt, stoppedAt) if needed.

Thanks!

---

<div class="post-metadata">

**Author:** ![Press](https://dub1.discourse-cdn.com/n8n/user_avatar/community.n8n.io/press/32/158094_2.png) [@Press](https://community.n8n.io/u/Press)\
**Post date:** [February 9, 2026, 7:11am UTC](https://community.n8n.io/t/time-shown-in-workflow-executions-is-utc/260595/8 "2026-02-09T07:11:27Z")

</div>

Additional findings after deep investigation (confirmed regression)

After further debugging, I can confirm that this is not a database, Docker, or host timezone issue, but a regression in n8n versions ≥ 2.5.x affecting execution timestamps in the UI.

Environment

```
• n8n Docker (self-hosted)

• PostgreSQL (timestamp with time zone)

• Host timezone: Europe/Moscow (UTC+3)

• Container timezone:

• TZ=Europe/Moscow

• GENERIC_TIMEZONE=Europe/Moscow

• Database timezone:

SHOW timezone*;*

-- Europe/Moscow

```

Database behavior (verified correct)

PostgreSQL behaves exactly as expected:

```
SELECT

now() AS now_tz,

now() AT TIME ZONE 'UTC' AS now_utc,

current_setting('TimeZone') AS tz*;*

```

Result:

```
• now_tz → local time with +03:00

• now_utc → correctly shifted −3h

• timezone → Europe/Moscow

```

Execution records are stored correctly:

```
SELECT

id,

```

“startedAt”,

“startedAt” AT TIME ZONE ‘UTC’ AS started\_utc,

“startedAt” AT TIME ZONE ‘Europe/Moscow’ AS started\_msk

```
FROM execution_entity

ORDER BY id DESC

LIMIT 3*;*

SELECT

id,

```

“startedAt”,

“startedAt” AT TIME ZONE ‘UTC’ AS started\_utc,

“startedAt” AT TIME ZONE ‘Europe/Moscow’ AS started\_msk

```
FROM execution_entity

ORDER BY id DESC

LIMIT 3*;*

Example:

```

startedAt = 2026-02-09 06:56:43 +03:00

started\_utc = 2026-02-09 03:56:43

started\_msk = 2026-02-09 06:56:43

➡ Data in the database is correct and consistent.

⸻

Observed behavior

n8n version

Execution start time in UI

2.4.5

✅ Correct (local time)

2.5.x – 2.6.4

❌ Displayed as UTC (−3h offset)

```
• Execution duration is correct

• Schedule triggers fire at the correct local time

• Only the Executions UI timestamp is wrong

• The UI appears to display startedAt as UTC without converting from the stored timezone

```

This happens for:

```
• Webhook triggers

• Manual executions

• Scheduled workflows

```

⸻

Key conclusion

This is not expected “Executions are always UTC” behavior:

```
• The database stores timestamp with time zone

• n8n ≤ 2.4.5 rendered execution timestamps correctly

• n8n ≥ 2.5.x consistently renders them as UTC

```

➡ This strongly indicates a frontend or backend regression in execution timestamp handling introduced after 2.4.5.

⸻

Repro steps (minimal)

```
1\. Run n8n 2.4.5 → execution times match local timezone

2\. Upgrade to 2.6.x (same DB, same container, same env vars)

3\. Run any workflow

4\. Observe execution start time shown −3h (UTC) in UI

5\. Downgrade back to 2.4.5 → issue disappears

```

⸻

If this change was intentional, it would be helpful to:

```
• Clarify it explicitly in documentation as a breaking UI change

• Or provide a setting to render execution timestamps in workflow/system timezone

```

Happy to provide logs, screenshots, or test data if needed.

---

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/n8n/user_avatar/community.n8n.io/system/32/195824_2.png) [@system](https://community.n8n.io/u/system)\
**Post date:** [February 16, 2026, 7:12am UTC](https://community.n8n.io/t/time-shown-in-workflow-executions-is-utc/260595/9 "2026-02-16T07:12:09Z")

</div>

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.
