There's apps to do vo2max but that's on your watch and only in realtime so it's not the most useful number.
So I made a little bookmarket to do it for me, using the same formula that garmin and the other calculators use
(example of how it works)
(note it will only work when you view garmin connect in your browser, not apps, sorry)
http://jsbin.com/xequnitawu/1/edit?html,output
Here's how you use it (and feel free to improve it and share it)
1. first you have to edit the gender (g) in the code on the left g=0 mean female, g=1 means male
2. then edit the weight in pounds ie. w=120
3. now drag the resulting link on the right hand side that says "calculate vo2max" to your bookmarks or toolbar
4. go view one of your running activities that has some splits with full miles in there and average heartrate logged
5. while viewing the page, now click on the bookmarklet - it will show you the vo2max based on each mile and heartrate
works for me but I'd be interested in hearing if others got it to work
since you can "see the code" and it only runs from your own local browser it's perfectly safe
if garmin ever changes around the data, this will break and have to be updated
here is the original code for safekeeping in case jsbin ever goes away:
javascript:void%20function(){var%20g=0,w=120,e,t,n,r,m=%22vo2max:%22,l=document.getElementById(%22intervals-table%22).getElementsByTagName(%22tr%22);for(n=1;n%3Cl.length;n++)r=l[n].getElementsByTagName(%22td%22),%221.00%22==r[4].innerHTML.trim()%26%26(t=r[8].innerHTML.trim().split(%22:%22),t=+t[0]+t[1]/60-1,e=100.5+8.344*g-.454*w*.1636-1.438*t-.1928*r[10].innerHTML.trim(),m+=%22\n%22+e.toFixed(2));alert(m)}();
I threw this together in 5 minutes so I am sure it could be radically improved.
You could even make it insert the vo2max into the table as its own column, or make it run automatically when viewing activities using greasemonkey