Date/Time issue when updating to Google Sheets

Describe the problem/error/question

I am updating to google sheets using rotating variables. I have Workbooks named Sales - January 2026, and so on
inside those workbooks are sheets named 01,02,03, for the days of the month
I have my sales stats being pulled in, then I grab the sold date, change the date to do a google sheets search to find the workbook, then once it finds the workbook, it uses the sold date again to update the sheet (by name)
the issue is happening in the last step, if the date is 01/03/2026, it will always try and update the 02 sheet
it is like the date/time I am seeing in n8n is not what is really there
I made sure my time zone was set in the workflow and I double checked the server time zone, both are correct

What is the error message (if any)?

Please share your workflow

Share the output returned by the last node

Information on your n8n setup

    • platform: docker (self-hosted)
    • nodeJsVersion: 24.14.1
    • nodeEnv: production
    • database: postgres
    • executionMode: regular
    • concurrency: 1
    • license: enterprise (production)
    • consumerId: 6384698f-6660-45c3-b287-06c96943ef5e

That off-by-one is usually from the date being converted once as a real Date/timezone value, then reused as the sheet/tab key. For this setup I would make the workbook lookup and the day-tab lookup two explicit string outputs, and stop passing a Date object into the final Google Sheets node.

A safe pattern is: right before the update node, create something like `sold_day_key = DateTime.fromFormat($json.sold_date, ‘MM/dd/yyyy’, { zone: ‘America/New_York’ }).toFormat(‘dd’)` in a Set node expression, then pass `sold_day_key` as the sheet name. Swap the zone to your reporting timezone. Also log raw sold date + workbook name + tab key in the same node so you can see exactly where `01` becomes `02`.

I can take the workflow JSON and turn this into the exact Set/Code node plus a small test matrix if you want it handled async. My email is oimrqs.ops@gmail.com.

So what I would recommend is that you do something like getDay before trying to select the sheet inside a workbook and also follow @oimrqs_ops ‘s recommendation to explicitly pass the timezone as well before converting the date.

good day @djjace

I think the issue is in the Google Sheets node.
n8n is converting the value into a real DateTime before choosing the tab name. Since your tabs are just day identifiers, I would not use DateTime there. I’d build the sheet name directly from the original Sold Date string, for example by extracting the day part and padding it only if needed, then pass that plain string as the sheet name. That keeps timezone conversion out of the routing logic and should stop 01 from becoming 02.