{
  "slug": "tcx-to-gpx",
  "name": "gizza-ai/tcx-to-gpx",
  "version": "0.1.0",
  "title": "TCX to GPX Converter — Garmin Workout to GPX — gizza.ai",
  "description": "Convert Garmin TCX workout files into GPX 1.1 in your browser. Preserves trackpoints, elevation, timestamps, and heart rate/cadence. Free, private, no upload.",
  "tags": [
    "tcx to gpx",
    "garmin tcx converter",
    "tcx to gpx online",
    "convert tcx to gpx",
    "workout file converter",
    "gpx converter"
  ],
  "category": "data",
  "urls": {
    "page": "https://gizza.ai/tools/tcx-to-gpx/",
    "markdown": "https://gizza.ai/tools/tcx-to-gpx/index.md",
    "descriptor": "https://gizza.ai/tools/tcx-to-gpx/tool.json",
    "deep_link_example": "https://gizza.ai/tools/tcx-to-gpx/?input=%3CTrainingCenterDatabase%3E%3CActivities%3E%3CActivity%20Sport%3D%22Running%22%3E%3CId%3E2026-07-01T08%3A00%3A00Z%3C%2FId%3E%3CLap%3E%3CTrack%3E%3CTrackpoint%3E%3CTime%3E2026-07-01T08%3A00%3A00Z%3C%2FTime%3E%3CPosition%3E%3CLatitudeDegrees%3E52.1%3C%2FLatitudeDegrees%3E%3CLongitudeDegrees%3E5.1%3C%2FLongitudeDegrees%3E%3C%2FPosition%3E%3CAltitudeMeters%3E10%3C%2FAltitudeMeters%3E%3C%2FTrackpoint%3E%3C%2FTrack%3E%3C%2FLap%3E%3C%2FActivity%3E%3C%2FActivities%3E%3C%2FTrainingCenterDatabase%3E&include_extensions=true"
  },
  "cli": "gizza tool tcx-to-gpx '<TrainingCenterDatabase><Activities><Activity Sport=\"Running\"><Id>2026-07-01T08:00:00Z</Id><Lap><Track><Trackpoint><Time>2026-07-01T08:00:00Z</Time><Position><LatitudeDegrees>52.1</LatitudeDegrees><LongitudeDegrees>5.1</LongitudeDegrees></Position><AltitudeMeters>10</AltitudeMeters></Trackpoint></Track></Lap></Activity></Activities></TrainingCenterDatabase>'",
  "tool": {
    "description": "Convert a Garmin Training Center XML (TCX) workout file into a GPX 1.1 document. Each <Activity> (or <Course>) becomes one <trk>, each TCX <Track> becomes one <trkseg>, and each <Trackpoint> with a <Position> becomes a <trkpt lat lon> carrying <ele> (from AltitudeMeters) and <time> (from Time) when present. The Sport attribute becomes the track's <type>, a Course's <Name> (or an Activity's <Id>) becomes the track's <name>, and the earliest trackpoint time becomes <metadata><time>. With include_extensions=true (the default), each trackpoint's heart rate and cadence are emitted as Garmin TrackPointExtension elements (<gpxtpx:hr>/<gpxtpx:cad>), which is where GPX consumers expect them — GPX 1.1 has no core element for either; set include_extensions=false for plain GPX with only latitude/longitude/elevation/time. Trackpoints without a position are skipped (a GPX <trkpt> requires lat/lon). Paste the TCX XML as text. Runs fully locally, no network access.",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "include_extensions": {
          "default": true,
          "description": "Emit each trackpoint's heart rate and cadence as Garmin TrackPointExtension elements (<gpxtpx:hr>/<gpxtpx:cad>) — where GPX consumers expect them, since GPX 1.1 has no core element for either. Set false to output plain GPX with only latitude/longitude/elevation/time. Default true.",
          "type": "boolean"
        },
        "input": {
          "description": "The TCX (Garmin Training Center XML) document to convert, pasted as text (the contents of a .tcx file — a <TrainingCenterDatabase> with <Activities>/<Activity> or <Courses>/<Course> holding <Track>/<Trackpoint> elements).",
          "type": "string"
        }
      },
      "required": [
        "input"
      ],
      "type": "object"
    }
  }
}