Free tool

Shift every timestamp in your activity, instantly.

Shift every timestamp in a FIT, GPX, or TCX activity file by any offset, or set an exact new start time. Fixes head units that recorded with the wrong clock, trainer rides saved with yesterday's date, and activities stuck in the wrong timezone. Free, no signup, runs in your browser - re-encodes through the official Garmin FIT SDK so the output stays valid for Strava and Garmin Connect.

started 2024-03-11 07:02becomesstarted today 06:30

How it works

  1. 1

    Drop a file

    FIT, GPX, or TCX - anything with timestamps in it.

  2. 2

    Pick the new time

    Shift by days/hours/minutes, or set an exact new start datetime.

  3. 3

    Download the retimed file

    Every record, lap, and session timestamp is shifted together. Re-upload to your platform and the activity slots in the right day.

What you get

  • Shifts records, laps, sessions, and file_id.time_created timestamps together
  • Offset mode (shift by days/hours/minutes) and exact-new-start mode
  • Same format in, same format out (FIT, GPX, or TCX)
  • Before-and-after start time shown live as you drag
  • Re-encoded via the official Garmin FIT SDK for round-trip safety
  • Works offline - file stays on your device, no signup required

When to use this

Reach for the Time Adjuster any time the absolute timestamps in a file are wrong but the data itself is right. Common scenarios: indoor trainer apps that wrote the file with the wrong system date or timezone, head units whose GPS-time sync failed and recorded UTC+0 when you wanted local, ride files that came back from a vendor app a day off, or activities stuck in the wrong day because of an overnight tour spanning midnight. The fix is a few seconds of work, and the resulting file uploads to every platform as if it had recorded with the correct clock all along.

How it works under the hood

The tool decodes your file in your browser. For FIT, the official Garmin SDK parses it into typed messages; for GPX and TCX, the browser's XML parser does the same. It walks every message that contains a timestamp field - record, lap, session, file_id, event, device_info - and adds or subtracts the same delta. The delta is computed either from your direct offset input or from the difference between the original first-record timestamp and your chosen new start. The file is then re-encoded through the appropriate writer (FIT SDK for FIT, native XML serialization for GPX and TCX) with correct CRC, header, and field IDs. Everything is local; nothing uploads.

Common mistakes

Three to flag. First, expecting the platform to update its displayed times immediately - Strava and Garmin Connect cache aggressively, and a re-uploaded activity may take a few minutes for the timeline to refresh. Second, hitting duplicate detection when re-uploading - if the original is still on the platform at any nearby time, you need to either delete the original or shift the new file far enough away that the duplicate-detection window does not catch it. Third, confusing time-of-day errors with timezone errors - a file that says 4 AM might be wrong by 12 hours (PM/AM error) or by your full timezone offset (UTC vs local). Look at the original timestamp and the actual time you rode to figure out which.

Frequently asked questions

My trainer ride says yesterday. Can I fix the timestamp?
Yes. Drop the FIT into the time adjuster, switch to "Set start to" mode, and choose today's correct time. Every timestamp inside the file - records, laps, sessions, file_id.time_created - shifts by the same offset so the whole activity moves to today consistently. Re-upload to Strava or Garmin Connect and the activity slots into the right day.
How do I fix a FIT file with the wrong timezone?
Use the offset mode and shift by the timezone delta in hours. If your head unit was set to UTC but you wanted local time (UTC+1 for example), shift by +1 hour. The FIT format stores timestamps as UTC internally - the timezone display is set by the platform reading it - so shifting the underlying timestamp shifts the displayed local time on Strava and Garmin Connect.
Will Strava and Garmin Connect accept the retimed file?
Yes - the output is a fully valid FIT re-encoded with the official Garmin SDK, including the correct CRC and file header. Strava treats it like any other upload. If a platform rejects it, the problem is almost always duplicate detection (Strava sees the original at the same start time) rather than file validity. Delete the original first or shift by a larger offset.
Does this change distance, power, or HR data?
No - only fields that store time get shifted. The record stream's lat, lon, altitude, distance, speed, HR, power, cadence, and temperature are untouched. Laps and sessions keep their durations, average values, and totals. Only the absolute timestamps change. Distance and elevation gain numbers are identical before and after the shift.
Can I shift only certain timestamps and not others?
No - the tool shifts every timestamp in the file together so internal consistency is preserved. A FIT with records timestamped one way and the session timestamped another is malformed and most platforms will reject it. The point of shifting is to keep the activity coherent at a different absolute time.
What if the file has the right date but the wrong time of day?
Use offset mode and shift by hours/minutes. Common scenario: you went for an evening ride but the head unit's GPS-time sync was wrong and the file says 6 AM. Shift by +12 hours (or to the actual start) and the activity moves to the right time of day. Or use exact-new-start mode and type in the correct datetime.
How is this different from FIT Clone & Retime?
Same underlying timestamp-shifting transform, different UX. The [FIT Clone & Retime](/tools/fit-clone-retime) tool gives you preset "now" and "tomorrow 7am" buttons for the common case of re-staging a benchmark workout. The Time Adjuster gives you full offset controls and an exact-datetime input for trickier cases (timezone fixes, multi-hour shifts, off-by-one-day errors). Use Clone & Retime for fast re-staging; Time Adjuster for surgical timestamp work.
Is the time adjuster free?
Yes - free, no signup, no upload. The tool exists because most platforms either refuse to let you edit timestamps after upload or charge for the privilege. Drop, shift, download, done.

Save your training to a real log

Fix the clock once, then keep every ride and run analyzed in one place. Domestique reads the data for you.

Create free account