parkrun bookmarklets

How to install a bookmarklet

Bookmarklet #1
Generate a list of volunteers for run reports

Bookmarklet #2
Generate a list of junior parkrun milestone wristbands for next event



What are bookmarklets?

Bookmarklets are tiny browser tools that you save as bookmarks. Instead of taking you to a website, they run a small piece of JavaScript on the page you’re already viewing.

They’re perfect for tasks where you find yourself copying, pasting, or scanning through information every week — like checking junior parkrun milestone wristbands or pulling volunteer names from a results page.

A bookmarklet is:

  • Safe — the code is visible, readable, and runs only in your browser
  • Local — nothing is uploaded or stored anywhere
  • Instant — click the bookmark and the tool runs immediately
  • Portable — works on any browser that supports bookmarks

If you’ve ever used a browser extension, a bookmarklet is the lightweight, no-installation version. It’s ideal for parkrun because it works on any device, doesn’t need admin rights, and avoids the security restrictions that block extensions on some systems.

[return to menu]


How to Install a Bookmarklet

Installing a bookmarklet is simple — you’re just creating a normal bookmark and replacing its URL with the JavaScript code.

The steps are slightly different depending on your device.

Desktop Browsers (Chrome, Edge, Firefox, Safari)

  1. Create a new bookmark
    • Right-click your bookmarks bar > Add page
    • Or press Ctrl+D / Cmd+D
  2. Name it Something like Milestone Wristbands or Volunteer List Extractor.
  3. Paste the bookmarklet code Replace the URL with the full javascript: code snippet.
  4. Save The bookmark is now ready to use.
  5. Run it Visit the relevant parkrun page, then click the bookmark. The tool runs instantly. The bookmarklets on this page all create a new tab containing the results – perfect for copying and pasting, or printing.

iPhone / iPad (Safari)

iOS makes this slightly fiddlier, but once it’s set up, it works perfectly.

  1. Create a normal bookmark Tap the Share icon > Add Bookmark Save it anywhere (e.g., Favourites).
  2. Edit the bookmark Tap the Bookmarks icon > find your new bookmark > Edit.
  3. Replace the URL Delete the existing URL completely. Paste in the full javascript: code.
  4. Save Safari will now treat it as a bookmarklet.
  5. Run it Open the relevant parkrun page > tap the Bookmarks icon > tap your bookmarklet.

Tips for Smooth Use

  • Make sure the entire code snippet is copied — missing even one character will break it.
  • Some parkrun pages load content dynamically; if the bookmarklet doesn’t run, refresh the page and try again.
  • If your browser hides the bookmarks bar, enable it for quicker access.

[return to menu]


Bookmarklet #1 – Generate a list of volunteers for run reports

This bookmarklet will generate a list of people who volunteered at a parkrun. It works on both the latest results page and the page for a specific event.

  • LATEST RESULTS – parkrun.org.uk/princes/results/2026-03-28/
  • EVENT NUMBER – parkrun.org.uk/princes/results/694/

Version 1.1

  • This week’s [total number of volunteers] hi-vis heroes were
  • First name + Last name (hyperlinked to profile page)
  • Volunteer milestone club
  • Total number of volunteering occasions

This week’s 2 hi-vis heroes were Graham Holland v250 (316) and Mark Finch v250 (359)

javascript:(function(){var rows=document.querySelectorAll('.Volunteers-table-row[data-name]');if(!rows.length){alert('No volunteer rows found.');return;}function surname(full){var parts=full.trim().split(' ');return parts[parts.length-1].toUpperCase();}var volunteers=[];for(var i=0;i<rows.length;i++){var r=rows[i];var name=r.getAttribute('data-name').trim();var ps=name.split(' ');for(var j=1;j<ps.length;j++){var segs=ps[j].split('-');for(var k=0;k<segs.length;k++){segs[k]=segs[k].charAt(0).toUpperCase()+segs[k].slice(1).toLowerCase();}ps[j]=segs.join('-');}name=ps.join(' ');var linkEl=r.querySelector('.Volunteers-table-td--name a');var link=linkEl?linkEl.href:null;var detailed=r.querySelector('.Volunteers-table-td--name .detailed');var milestone='';var credits='';if(detailed){var badges=detailed.querySelectorAll('[class*="milestone"]');for(var b=0;b<badges.length;b++){var txt=badges[b].innerText.trim();if(/^v\d+$/i.test(txt)){milestone=txt;break;}}var text=detailed.innerText;var match=text.match(/(\d+)\s+volunteer credits/i);if(match)credits=match[1];}var formatted=link?'<a href="'+link+'">'+name+'</a>':name;if(milestone)formatted+=' '+milestone;if(credits)formatted+=' ('+credits+')';volunteers.push({name:name,surname:surname(name),formatted:formatted});}volunteers.sort(function(a,b){return a.surname.localeCompare(b.surname);});var partsOut=[];for(i=0;i<volunteers.length;i++)partsOut.push(volunteers[i].formatted);var count=partsOut.length;var namesStr='';if(count>1){var last=partsOut.pop();namesStr=partsOut.join(', ')+' and '+last;}else if(count===1){namesStr=partsOut[0];}var out='This week\'s '+count+' hi-vis heroes were '+namesStr+'.';var w=window.open('');w.document.write(out);w.document.close();})();

CUTE EIGHT BUG – If someone has completed 8 volunteering occasions their volunteering occasions will show as (8). If this is pasted into a Facebook post the 8) part gets turned into a sunglasses emoji. If this bugs you (see what I did there?) you can add a full stop after the 8 to make (8.).

screenshot from facebook post showing the sunglasses emoji bug

Version 1.2

  • This week’s [total number of volunteers] hi-vis heroes were
  • First name + Last name only – no hyperlink, volunteer milestone club or number of volunteering occasions.

This week’s 2 hi-vis heroes were Graham Holland and Mark Finch.

javascript:(function(){var rows=[...document.querySelectorAll('.Volunteers-table-row[data-name]')];if(rows.length===0){alert('No volunteer rows found.');return;}function surname(full){var parts=full.trim().split(' ');return parts[parts.length-1].toUpperCase();}var volunteers=rows.map(r=>{var name=r.getAttribute('data-name').trim();return {name:name,surname:surname(name),formatted:name};});volunteers.sort((a,b)=>a.surname.localeCompare(b.surname));var names=volunteers.map(v=>v.formatted);var count=names.length;if(names.length>1){var last=names.pop();names=names.join(', ')+' and '+last;}else{names=names[0]||'';}var out='This week's '+count+' hi-vis heroes were '+names+'.';var w=window.open('');w.document.write(out);w.document.close();})();

[return to menu]


Bookmarklet #2 – Generate a list of junior parkrun milestone wristbands for next event

Those of you who are junior parkrun RDs know the hassle of having to scroll through your junior parkrun’s ‘junior clubs’ page to find the kids who have reached each of the junior milestones and are due to be presented with a milestone wristband at the next event.

This bookmarklet does that work for you.

‘junior clubs’ pages take the following form. If you’re an RD you should already know yours.

  • parkrun.org.uk/trumpton-juniors/results/juniorclubs

Once there, run the bookmarklet. It will create a new browser tab containing:

  • The name of your junior parkrun
  • “Milestone Wristbands” & next event number
  • Each of the milestones will be shown in order – half marathon, marathon, ultra marathon, 100, 250.
  • For each milestone you will see a list of all the juniors in the order they achieved the milestone.
  • Next to each junior’s name will be the date they achieved the milestone.
  • If there are no juniors you will see the message “(no juniors this week)”.




[return to menu]