Googleマップでの乗換案内結果を、Googleカレンダーに予定として登録するブックマークレット

現実逃避しながら作りました。

Googleマップ乗換案内->Googleカレンダー

javascript:(function(){addzero=function(n){if(n<10){return%20"0"+n;}else{return%20n+"";}};datestr=function(d){return%20d.getUTCFullYear()+addzero(d.getUTCMonth()+1)+addzero(d.getUTCDate())+"T"+addzero(d.getUTCHours())+addzero(d.getUTCMinutes())+"00Z";};find_altroute_current=function(table){if(navigator.userAgent.indexOf("MSIE")!=-1){var%20alltags=table.all.tags("div");for(var%20i=0;i<alltags.length;i++){if(alltags[i].className.indexOf("altroute_current")!=-1){return%20alltags[i];}}}else{return%20table.getElementsByClassName("altroute_current")[0];}return%20null;};escapeTitle=function(title){if(navigator.userAgent.indexOf("MSIE")!=-1){return%20escape(title);}else{return%20title;}};find_ts_routediv=function(){var%20tsp=document.getElementById("tsp");var%20ts_routedivs=tsp.childNodes;for(var%20i=0;i<ts_routedivs.length;i++){if(ts_routedivs[i].className.indexOf("ts_routediv")!=-1){if(ts_routedivs[i].style.display!="none"){return%20ts_routedivs[i];}}}return%20null;};var%20text=document.title.split("-")[0];var%20datetag=document.getElementById("tr_date").value;var%20dateparam=datetag.match(/\d+/g);var%20year=(dateparam[0]-0)+2000;var%20month=dateparam[1]-1;var%20date=dateparam[2]-0;var%20table=document.getElementById("tr_altroutes");var%20div=find_altroute_current(table);var%20as=div.getElementsByTagName("a");var%20html=as[0].innerHTML;var%20times=html.match(/\d+:\d+/g);var%20s=times[0].match(/\d+/g);var%20shour=s[0];var%20smin=s[1];var%20e=times[1].match(/\d+/g);var%20ehour=e[0];var%20emin=e[1];var%20start=new%20Date(year,month,date,shour,smin,0);var%20end=new%20Date(year,month,date,ehour,emin,0);var%20dates=datestr(start)+"/"+datestr(end);var%20url="https://www.google.com/calendar/event?action=TEMPLATE&text="+escapeTitle(text)+"&dates="+dates;window.open(url,"_blank");})()

外出予定が入ったときには、Googleマップで移動方法を検索して、移動時間をGoogleカレンダーに登録しとく、というあなた(おれ)に。

ライブラリを使えないので日付の文字列処理がかっこわるい。
また、到着時刻が0時をまたいで日付が変わるような検索結果に対応していない。

追記(2009/3/1):IE7とSafari3(但しWin版)、Firefox3で動作確認した。

追記(2009/5/25):Googleマップのルート・乗換案内のページが変わったので、合わせてJavaScriptを修正しました。

追記(2010/3/14):Googleマップのルート・乗換案内のページが変わったので、合わせてJavaScriptを修正しました。