Go to the login page and login. If you do not have an account already, it will be created as you attempt to login. On the Meet Setup page:
  1. Click on the default event "My Event" and rename it (or create a new event with the + button). Set the date to the day of your event. Make a note of the event code. It will be used to log in from the phones.
  2. Make sure that an event is selected. Create the races by hiting the white + in the race table. Note that a race can have many heats, but all times will be combined into one normal race. There is no need to specify how many heats there will be.
  3. Add the teams using the + button on the Teams table.
  4. On race day, 2 or 3 helpers must install the XCMeet app on their android or iPhone to collect the times and positions.
Two ways to get the barcodes:
  1. If you have the XCMeet clips, the racers will use their smart phone's browser and go to Register Racer (above) to attach their name to the clip they have chosen. If you have the generic clips, it is best to import the roster either from your own spreadsheet or from so that the racers can choose their existing name. Any spelling differences will cause more work for you to adjudicate the differences when you go to upload the results. On, choose "Roster.csv - Download full rosters (not meet entries) for attending schools". (Download this file if you want a sample to practice with.). If you have the league clips, you only import the roster once. XCMeet will remember your roster forever.
  2. League clips or generic clips:
    • If you have league clips, the racers will use the code that is on the clip to register.
    • If you have the generic clips, the racers will use your code: .
  3. Or, if you are going to print the barcodes
    1. Upload your roster, then assign barcodes to the racers by hitting "Assign sequential barcodes". You should see the chip numbers fill in on the Roster below.
    2. Click on "Print Labels" in the Events table to print them all, with a separate page for each school. Optionally, you can filter the roster by school, age, and gender then print that selected roster to create separate prints/pages for each category. In the dialog you'll select the paper and the quantity of blank barcodes you want. These additional barcodes will not have a name assigned to them. The racers that were not in your uploaded roster will pick a barcode and use a phone/browser to go to Register Racer (above). They will need your code: .
    3. A new webpage will open momentarily and deliver a PDF file named the same as your event. Open that file and print it.
The XCMeet app is available in Apple App Store or Google Play for iPhones and androids. This app is used to collect the times and positions. You must do all the setup from the website.
  • Use the event code to log in. If you are attempting to log in before race day, set the event date to today.
  • The app will attempt to send all times and positions to the server as they are captured. The time or position will be shown in yellow until it has communicated with the server. When it has successfully sent the information to the server, it will turn green. If it turns red, the app gave up trying to contact the server. When you restore connection to the internet, you can hit "retry" or the refresh button resend the red results.
  • Do nothing at the end of the race to stop the clock or to save the results. If the scans and times are green, they are saved. Just select the next race and continue.

  • XCMeet App (android is the preferred device to capture times)
    • At the bottom click on "timer"
    • Select your race at the top
    • On an android, the volume up button should be used to start the race. You can press the start gun icon, but you won't have tactile feel.
    • Apple does not allow the volume buttons to be used by an app, so on an iPhone you must use the on screen buttons. You can connect a small bluetooth keyboard and use the "s" and "f" keys for start and finishers (e.g. Amazon or newegg).
    • Hit the start button for each heat.
    • The volume down button should be used to mark each racer's time. On an iPhone, press the finish icon.
    • Have 2 phones recording the finish times. One will be declared the backup. The "Results Editor" page will show the differences and allow you to fix any mistakes either one makes (not pushing the button, or hitting it once too many).
  • The web page can be used to record the times, but you will want to use a device that has a keyboard that you can feel.
    • On the "Results Editor" page select the race.
    • Use the "x" key to start the race and record finishers. You can use the mouse to press the buttons, but it won't be easy to keep the mouse on the button.
    • You can use the button "reset" to kill the race and start over.
  • The XCMeet App (either android or iPhone)
    • At the bottom choose "Scanner"
    • Make sure that the heat number is set correctly for the runner that you are scanning.
    • Position the barcode in the viewer. You'll hear a nice beep on success or a rude sound if the barcode was already read or is a bogus number.
    • If you don't hear anything, check above the image you'll see the last read code. It won't beep over and over for the last scanned number.
    • If you need to enter a name, type the name and hit the "Enter" button.
  • From the web page
    • On the "Results Editor" page put the racer's name or number into "Finishers:" and hit enter (or click on "Insert At End").
    • Or, you can use a barcode scanner to provide the text and hit enter for you.
    • The results will automatically update below.
On the website, go to the "Results Editor" page. Your helpers can use the event code today (with any or no password) to login.
  • Times - You should compare your total times to your backup timer. If you both have the same number of finishers, your results should be good. If you have a different number you'll need to compare the two to find what happened. If you used 2 XCMeet timers, you will see the two time sequences on the "Results Editor" page. Difference larger than .4 seconds will be highlighted in yellow, over .75 seconds will be orange, over 1 second will be orange red, and over 2 seconds will be red. Use the backup offset field to reduce the differences between the two time sequences.
    • If you failed to hit the finish button for a racer, enter the time in the "Time:" field (e.g. 18:05.1) and hit "Insert Time". The results will automatically recalculate.
    • If you hit the finish button by mistake, select the time that was bogus and hit the "delete xxx" button. The results will automatically recalculate.
    • If you started the clock late (or early), you can add an offset on the "Results Editor" page to correct the times.
  • Positions -
    • If you missed scanning a finisher, select the position and enter their name or number in the "Finisher:" field and hit "Insert at X". The results will automatically recalculate.
    • If you scanned a bogus finisher, select the row that was bogus and hit the "delete xxx" button. The results will automatically recalculate.
    • If you provided the wrong heat, click in the heat field for that runner and edit the value. Their time will automatically change.
  • If you sent the times to the wrong race, for example you sent the boys results to the girls race, log into the website and rename them and change their gender. If you scan the times to one race and the positions to another race, send email to support and we will swap them. (A feature for this is coming soon).
Notice that inserting or deleting only removes a time or a finisher depending on what button you push. For example, if you remove a finisher, the time that that finisher was assigned to remains. The subsequent finishers are all shifted down to the next time. Similarly, if you remove a time, then the finishers are all shifted up. You cannot remove both a time and a finisher in one operation.
  • To see the live results, the spectators and racers will use the code that was used to register their clip. So, if you have league clips, the spectator will always use that code regardless of who is hosting the meet. With the generic clips, the spectators will use the host's account code.
  • The XC scoring is available on the live results. The division setting on the meet setup page on each team allows you to have dual meet scoring or multi team scoring. It scores all teams that have the same division together. If the division is a number, then it will be multi team scoring. If it is a letter, then it will be dual meet. For example, if you have 3 teams and want dual meet scoring, then set all teams to be in division "A". If you want multi team, then all are division "1". If you have many teams sharing the same course, but are not to be scored against other teams, then separate them with a different division number or letter.
  • You can hide the live results from spectators by checking the H column on the event. If they are hidden, you can see the live results with the event code.
  • Assign an assistant coach to know this system and be the "race boss". That person will get at least 4 parent volunteers to do the timing, scanning, and helping in the chute. The race boss will show them how to do their jobs. Then during the race the race boss will have the "Results Editor" page on their phone ready to make fixes if the timers or scanners make mistakes as the race is finishing. The timers can usually feel when they might have hit the time button too many or too few times and notify the boss. The boss will see the mistake on the results editor and can correct it right then.
  • Tents, or at least umbrellas, are required to protect the phones so that rain does not push buttons
  • Make sure your devices are fully charged. If the XCMeet app is in the foreground, it will prevent the device from going to sleep. Manually sleep your device while waiting for the finish.
  • Before you start the race practice hitting the start button, then the finishers button, then reset and you'll be ready for the start. One of the races was scored with an android that had a sticky volume button. It sprayed random times into the finish; not cool. Do some testing to ensure you are happy with it.
  • The 2 timers should not count out loud. We don't want them both making the same mistake. When group of runners cross in rapid succession, the timers should compare their total numbers. If they are different, then one either hit too many or missed. Make a note of when that happened (see the last bullet item in this section to fix it).
  • Practice with some spare clips before the racers show up so that you are fast at holding and presenting the barcodes for a quick beep.
  • Make sure you position your phone over a plain background that has no clips in sight except the one you are scanning. Otherwise you might scan a background clip out of order.
  • The goal at the finish chute is to ensure the racers are moving past without waiting for the scanner. In the middle of a large race, the clips will be arriving faster than you can scan them. You need to make a queue of clips for the scanner, so that the racers are not queuing up in the finishing chute waiting to hand off their clip. To make this clip queue, use 3 hand towels to create a makeshift conveyor belt on a table. Have a helper that will take the clips from the racers and place them in a row on the towel on the table. After the scanner scans the clip, drop the clip into a discard box. Move the towel towards you until you've emptied that towel of clips. Now place the towel at the start of the table.
  • Have some spare clips ready nearby for the few racers that show up without a clip. Scan one of those clips, and tell the racer their number. They can do "register racer" at anytime to change that number into their name.
  • Make your finishing chute with caution tape or equivalent so that the finishers cannot escape easily until they have passed the scan station.
  • Make your finishing chute long so that finishers can coast to a stop without running over previous finishers that are handing in their clip.
  • Make the chute narrow to a single lane so that kids cannot easily pass.
  • Break up races larger than 150. When you have over 200 runners, you will have large clumps of runners crossing the line at the same time and the timers will not be able to keep up. The finishing positions won't be accurate, because when a batch of 10 runners cross the line nobody will be able to make sense of who's chest was where. Additionally, the runners that have finished will not get out of the way of the finishing runners if you funnel them into a single chute. The ones that finished will walk, and thus stuff up the finish line.
    • If your course allows it, you can run overlapping races. Start the next set of runners a few minutes after the first and make sure that the next set has no kids that will pass the slowest from the first race. The timers and scanners must pay attention to where the breaks are and switch to the next race, or assign a different set of timers for each race.
    • Keep in mind that XCMeet provides XC team scoring live, so you can make these additional races proper XC scoring races without any additional work. Your 7-14, 15-21, runners might like the opportunity to run as a team and get a score. If you do this, then the finishing positions will matter. In other words, this makes it fun.
  • The system as a mechanism whereby you can mark a particular finisher's time and in the results editor it will show you the time and position that should line up to ensure that racer's time is correct. For example, if both the primary and backup timer count a bunch of finishers incorrectly, then subsequent finishers will have the wrong time, but because you have marked a finisher that came in after that big batch, you can see if that finisher's time lined up properly. If it does not, then you just add an additional time to a previous big batch. Contact to understand how to use this feature.

From the "Meet Setup" page in the "Races" table the far right column has a "download" link that will create a file named "results.csv". Upload this file to