My brain feels like mush.  Real mush.  Coffee doesn’t seem to be making a difference, or candy, or anything.  Normally that quick sugar rush really does the trick..but not today.
 
All weekend I was working on a project.  This project is what Google Chrome documentation calls a page action.  As with many programming projects start, this one started with an annoyance.  I hate...really hate, entering in all my soccer team game times on my Gmail calendar.  
 
You see, the games are 50 minutes long, so they don’t fill up the entire hour, and they don’t start on the hour.  This means I’m interacting with the specifics interface for each game I enter.  I’m also on three different teams, so putting in all the necessary information (team name, if we’re home or away, the time and so forth), is a real drag.  In total I enter in 24 games ever 8 weeks.  That means 168 entries a year, just for soccer.  I don’t mind entering in odd coffee dates or other such things, but when the schedule I’m following is already online, why isn’t there something that will allow me simply to upload the information already?

There isn’t, and that is exactly where I come in.  After a long time of complaining and being slightly late to games, and after I’d finally learned enough javascript to take it up as a personal project I made the plunge.  I decided to program my way out of this annoying little problem.

Robey and I try, once per month, to allow ourselves a weekend to devote to a new project and new learning experiences.  This month I decided to make a page action.  This page action collects the schedule data for a team, once you’re on the team’s page.  Then it alters the html slightly to create a new button.  Here is the original tool box for the team page:
 
Here is the update one, once my page action is uploaded to your version of Chrome.
The basic idea was to use the current framework to my benefit.  Use the divs and classes they had already created to create a new button.  The only difference is that once you click the ‘Download Calendar’ button a pop-up box shows up.  Here it is:
As you can see, this popup box will use the team page the person is currently on, collect the schedule listed there, and create either a csv or ics file.  Next you save the file somewhere on your computer.  Then file (both formats) can be imported into iCalendar, Microsoft Outlook or Gmail.  Importing will add all games to your calendar, with additional information as shown in the example below:
Thus I’ve made my life, and hopefully the lives of my fellow soccer friends, much less annoying.  You know, this really wasn’t that difficult.  I think if I had been able to get more time in it over the weekend I could have finished it Sunday.  Except I had soccer games to go to.  

Even better is that now if the local Indoor Sports Park decides to change their game times for any reason, it won’t mess with me anymore.  I won’t miss my games or be late because this page action will already have entered them in correctly.  In case you’re a fellow soccer friend, or are simply interested in my tool you can find it here on the Chrome web store.