Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.time2.bike/llms.txt

Use this file to discover all available pages before exploring further.

Time2Bike’s RFID integration treats each chip read as a bib finish. Whatever your reader software reports for the rider becomes the bib number, so the only setup you need is to make sure each rider’s chip is paired with their assigned bib on the reader side. There are two ingestion paths. Both write into the same event log as kind: external_rfid. Best for an RFID pad whose software (e.g. rfidtimer) writes to a CSV file on the same machine.
  1. On the operator screen, open the RFID CSV import panel.
  2. Click Pick CSV & watch and choose the file the reader writes to.
  3. Leave the tab open. Each new line is parsed and ingested as it lands.
Expected CSV columns: bib,timestamp (additional columns are ignored). RFID CSV import

HTTP bridge

Best when the RFID pad is on a different machine or you want a small companion script. POST /timing/sessions/:sessionId/events
{ "kind": "external_rfid", "payload": { "bib": "117", "timestamp": "2026-05-13T15:02:11.421Z" } }
Auth: include a timing token in the Authorization: Bearer tt_[hex] header. Each line becomes an external_rfid event. Ship a ~30-line Node or Python companion that tails the file and POSTs; runs on any OS, on any network reachable to the API.

How bibs are resolved

Each ingested event uses the bib field to look up the registered rider in the active race (via the same bibSource rules as manual entry — direct, series plate, or series-then-manual). Unknown bibs still land in the event log; assign them later and re-project to attach them to a rider.

Race tab and RFID

external_rfid events take the active race tab at the time of ingestion as the race scope. Switch tabs before starting the watcher to scope correctly.