[Resolved] Wahoo workouts are planned for wrong date

Hello again,

seems that if i create a workout with Tempo for today, Wahoo will show it as “for tomorrow”.

Also if i change the title, it is not synced to Wahoo. But that could be also a problem on their side, as the workout details itself are being synced

Hi @bjoern.wolf, thanks for the report. The “tomorrow” shift looks like a time zone issue in how the scheduled date gets sent to Wahoo — I’ll dig into that today. I’ll also look at syncing title changes. I’ll follow up here once I have a fix.

Hi @bjoern.wolf , I pushed a couple of fixes to address the workout schedule time and re-sync the workout name if that changes. Testing looked good on my side. Let me know if everything works as expected on your side as well.

Hey Marc,

It seems that there is still a problem with date/time as far as I can say. I hope I’ve nailed down where it goes wrong, so here’s the write-up from the lengthy debugging session I had with Claude:

What happens: Any workout I schedule for a future day shows up on the ROAM one day too early — so it’s just missing on the day I actually want to ride it. The Wahoo app looks fine (it shows “Tomorrow” correctly), which threw me off for a while, but the device files it under the wrong day and that’s the one that counts.

What I see:

  • I create a workout for, say, 2026-06-30. Tempo echoes it back as 2026-06-30 00:00:00.
  • Wahoo app shows “Tomorrow” (correct) but the detail date says 29.06.
  • Sync the ROAM → it’s not under the 30th, it’s slipped to the 29th.
  • Same-day workouts are totally fine — only future ones drift.

My guess at the cause: Tempo seems to drop the time-of-day and anchor everything to midnight (the echo is always 00:00:00 no matter what time/offset I send). And that midnight looks like it’s serialized as UTC instead of local time. I’m on CEST (UTC+2), so 2026-06-30 00:00 becomes 2026-06-29 22:00 UTC → previous day. The app hides it via the relative label, the ROAM doesn’t.

Wahoo’s planned-workout API takes a tz-aware timestamp, so I think the fix is on your end: push the scheduled day timezone-aware (or just send local noon) instead of naive-UTC midnight.

Workaround in the meantime: I re-create workouts on the day of the workout (I think sometimes even touching it helped already)

Happy to test a fix or grab more detail if it helps. If you can remember, before you implemented the midnight fix I had a protocol to actually use a corrected time on my side so that is not something I can do anymore because of the midnight fix on your side

Hey @bjoern.wolf, thanks for the report and all the debugging — you pinpointed it exactly, which made tracking down the root cause fast.

The workout was being saved on the correct day; the problem was in how we sent it to your head unit. We were anchoring the planned start at local midnight, and for anyone east of UTC, local midnight falls on the previous day in UTC — so future workouts slipped a day on the device while same-day ones were fine.

The fix is now live in production. I’ll be on your timezone for a month, so I’ll be testing it with my own workouts too. Thanks again, and let me know if you spot anything else!

Hey @Marc,

no problem, i like to debug and analyse things :slight_smile:

However, i don’t know if this is related to the latest fix but my workouts i created throughout today were/are not being pushed to Wahoo. Cann you see if this a problem on their side?

For now i just checked the app, but usually it shows up there more reliably than on the ROAM (in the past testing)

Hmm, I’m not sure it’s related. The changes I made would only affect future workouts. Can you try to add one and see if it lands on the right day on the calendar, Wahoo app and ROAM device?

I just changed my timezone to Central European Time (Madrid)in Tempo and manually added three workouts to my calendar from the Training page for today, tomorrow, and Thursday. They all show correctly in the calendar, Wahoo app and my ROAM device (see screenshots attached). The Wahoo show’s today and tomorrow and the ROAM device all three.

Let me know.

did you add these via web from the Builder/Library? If i do this, then they will be pushed to Wahoo also. But alle Workouts planned via MCP or manually created workouts are not showing up.

Ok, let me test the MCP path and I’ll get back to you.

Okay, i think it really is about intervals. As long as there is no interval in the workout it is not being pushed/accepted to/by Wahoo. I advised Claude to add some intervals, and they were instantly showing on the ROAM.

Here is my clue:

On the web, if you just open the modal for a new workout without going to the builder, no interval is being added. So basically the default interval is missing if the UI (or the MCP path) is not adding it.

Yes, that’s correct. Tempo checks if the workout has intervals and if not it does not push it to the device. I’m going to change it, so it synthesizes a single target-less time interval and push that, instead of returning early. Structured will workouts keep their full plan; unstructured ones get a basic duration target.

1 Like

Hi @bjoern.wolf, interval-less workouts should now appear on Wahoo devices. Wahoo requires a power target on any planned workout, so for interval-less rides we now generate one automatically from the workout’s intensity. You’ll see a power range on the head unit — if you set the intensity/load on the workout it’ll reflect that, otherwise it defaults to a wide “ride at any effort” range. On Garmin and Hammerhead it stays a true open ride.

Thanks @Marc, I will then delete the note for the training protocol. Less to remind, better results :rofl: