Convert tcx to csv

Free online TCX to CSV converter

Convert workout trackpoints from TCX XML into spreadsheet-ready CSV columns.

Convert TCX to CSV online - free

Uploading…
Selected files exceed the 75 MB total limit. Please select fewer or smaller files.

Your file is processed instantly and never stored on our servers.

How it works

  1. 1/3

    Upload your .tcx file

    Click to browse to select your file you want to convert or simply drag & drop your file into selected area.

  2. 2/3

    Perform .tcx to .csv conversion

    After successful file upload, click to convert when you are ready.

  3. 3/3

    Download converted .csv file

    Conversion result is ready to download.

How to convert tcx to csv file

101convert.com Assistant Avatar

101convert.com assistant bot
32m

Fitness platforms and spreadsheets often need TCX workout data in tabular form for analysis, filtering, or long-term archiving. Converting it to CSV exposes individual trackpoints such as time, coordinates, elevation, heart rate, cadence, and distance in applications that do not read XML-based training files.

What the TCX format is

TCX, or Training Center XML, is an XML format originally associated with Garmin Training Center. It stores structured fitness data including activities, laps, trackpoints, timestamps, GPS coordinates, altitude, distance, speed, heart rate, and cadence.

Garmin watches and bike computers commonly export TCX files. Garmin Connect, Strava, TrainingPeaks, GoldenCheetah, and other training applications may also create or export them. You usually encounter TCX after downloading a run, ride, walk, or multisport activity from a fitness service.

What the CSV format is

CSV stores records as rows and fields as comma-separated columns. Spreadsheet programs such as Microsoft Excel, LibreOffice Calc, and Google Sheets can open it, as can databases, statistical software, Python, R, and command-line tools.

CSV is useful when you need to sort or filter samples, calculate averages, plot a route, combine multiple activities, or import workout data into software that does not support TCX. It is usually smaller and easier to inspect than XML, but it does not preserve TCX's nested activity, lap, and extension structure unless those values are flattened into columns.

How to convert TCX to CSV

Using the built-in online converter

  1. Open the TCX-to-CSV converter on 101convert.com.
  2. Upload the .tcx file.
  3. Choose CSV as the output format and start the conversion.
  4. Download the resulting .csv file and open it in a spreadsheet or data-analysis program.

This method requires no installed software. Check the output columns before analysis, because different TCX files contain different optional fields.

Using a Python script locally

For repeatable processing or sensitive workout data, save the following as tcx_to_csv.py:

import csv
import sys
import xml.etree.ElementTree as ET

source = sys.argv[1]
target = sys.argv[2]
root = ET.parse(source).getroot()
fields = [
    "time", "latitude", "longitude", "altitude_m", "distance_m",
    "heart_rate_bpm", "cadence_rpm", "speed_m_s"
]

def value(parent, name):
    element = parent.find(f".//{{*}}{name}")
    return "" if element is None else element.text or ""

with open(target, "w", newline="", encoding="utf-8") as output:
    writer = csv.DictWriter(output, fieldnames=fields)
    writer.writeheader()
    for point in root.findall(".//{*}Trackpoint"):
        position = point.find("./{*}Position")
        latitude = ""
        longitude = ""
        if position is not None:
            latitude = value(position, "LatitudeDegrees")
            longitude = value(position, "LongitudeDegrees")
        heart_rate = point.find("./{*}HeartRateBpm/{*}Value")
        cadence = point.find("./{*}Cadence")
        speed = point.find("./{*}Extensions//{*}Speed")
        writer.writerow({
            "time": value(point, "Time"),
            "latitude": latitude,
            "longitude": longitude,
            "altitude_m": value(point, "AltitudeMeters"),
            "distance_m": value(point, "DistanceMeters"),
            "heart_rate_bpm": "" if heart_rate is None else heart_rate.text or "",
            "cadence_rpm": "" if cadence is None else cadence.text or "",
            "speed_m_s": "" if speed is None else speed.text or ""
        })

Run it with:

python tcx_to_csv.py workout.tcx workout.csv

The script uses namespace-independent XML searches, so it works with common TCX namespace versions. It creates one row per Trackpoint; summary values stored only at activity or lap level are not included.

Quality and compatibility considerations

  • Optional fields: TCX files may omit GPS, heart rate, cadence, speed, or distance for some or all points. Empty CSV cells represent missing values, not zero.
  • Units: TCX commonly stores altitude and distance in meters, coordinates in decimal degrees, speed in meters per second, and cadence in revolutions per minute. Convert units after import if your analysis requires miles, feet, kilometers per hour, or another system.
  • Time values: Timestamps are normally ISO 8601 values and may include a UTC offset or the Z UTC suffix. Preserve the original timestamp until you deliberately convert time zones.
  • Heart-rate extensions: Some devices place manufacturer-specific data inside Extensions. A basic converter may omit power, running dynamics, temperature, vertical speed, or left/right cycling metrics.
  • Multiple activities: A TCX file can contain several activities and laps. A trackpoint-only export may not retain activity or lap boundaries; add those fields if later analysis depends on them.
  • Locale settings: CSV import dialogs may interpret commas, decimal points, or dates according to regional settings. If columns appear in one field, select comma as the delimiter and UTF-8 as the encoding.

Note: This tcx to csv conversion record is incomplete, must be verified, and may contain inaccuracies. Please vote below whether you found this information helpful or not.

Was this information helpful?

TCX vs CSV: format comparison

How the TCX and CSV formats compare on the properties that matter most for this conversion.

Comparison of the TCX and CSV file formats
Property .TCX Training Center XML .CSV Comma-Separated Values
Open standard Partly open Yes
Compression Uncompressed Uncompressed
Typical file size Medium Small
Opens in a web browser No Yes, natively
Further editing Easy Easy
Metadata support Extensive Basic
Plain-text readable Yes Yes
Best used for Data exchange Data exchange
Introduced 2007
Developer Garmin Ltd.
MIME type application/vnd.garmin.tcx+xml text/csv

Frequently asked questions

Is the TCX to CSV converter free?

Yes, converting TCX to CSV on 101convert.com is completely free. No registration, email address or installation is required. If you need a higher file size limit or want to convert more files at once, see our plans.

How large can my TCX file be?

You can upload TCX files up to 50 MB and convert up to 20 files at once in a single batch.

What happens to my uploaded files?

Files are processed automatically and deleted from our servers within a few minutes after conversion. We never view or share your files.

Do I need to install any software to convert TCX to CSV?

No. The TCX to CSV conversion runs entirely online in your browser and works on Windows, Mac, Linux, Android and iPhone.

Did the conversion fail?

In most cases, the cause is an incorrect file format. Please upload a valid TCX file for this TCX to CSV conversion. Occasionally, the issue may be on our side. We analyze recurring conversion failures and disable or fix the converter if we detect a defect.

Additional formats for
tcx file conversion

Convert to csv from
other formats

Share on social media: