デスクネッツからGoogleカレンダー、そしてiPhone (PC )
職場で使っているデスクネッツとiPhoneの同期方法を考えてみた。
正確には、デスクネッツ→Googleカレンダー→iPhoneという一方通行なので、とても同期とは言えないのだが(^.^;
更に言えば、Operaのuserjsを使っての実現なので、ブラウザ限定だったりする。
と言うことで、javascriptど素人によるuserjsはこんな感じ。
function desktogcal(){
document.getElementsByTagName("body")[0].innerHTML
= document.getElementsByTagName("body")[0].innerHTML.replace(
/(<FONT size="-1">(d{2}):(d{2})-</FONT><FONT size="-1">(d{2}):(d{2})</FONT><BR><A href="dnet.exe.*seldate=(d{8})">.*<FONT size="-1"[^>]*>([^<]*)</FONT><BR>[nr]*</A>)/gmi,
'$1 <input type='button' onClick ='window.open("https://www.google.com/calendar/event?action=TEMPLATE&text="+escape("$7")+"&dates="+conv_date("$6","$2","$3")+"Z/"+conv_date("$6","$4","$5")+"Z&details=&location=&trp=false&sprop=&sprop=name:","g_cal");' style='background-color:#ff0000;color:#ffffff;' value='g'><BR>'
);
}
function conv_date(mydate,myhour,mymin)
{
if(mydate == null||myhour == null||mymin == null) {return null;}
var newDate;
var newTime;
if (eval(myhour+mymin+"00")<90000||eval(myhour+mymin+"00")==90000) {
newDate = Number(mydate) - 1;
newTime = 240000+(eval(myhour+"0000") - 90000)+eval(mymin+"00");
} else {
newDate = Number(mydate);
newTime = eval(myhour+mymin+"00") - 90000;
}
if(String(newTime).length < 6)
{
newTime = "000000" + newTime;
newTime = newTime.substr(newTime.length-6,6)
}
return newDate+'T'+newTime;
}
このuserjsを作成の上、デスクネッツにアクセスすると、スケジュール上に赤地に"g"のアイコンが現れる。
このアイコンをクリックすると、Googleカレンダーが別タブで開くのだが、"g"のアイコンは週間、月間スケジュール画面のみで表示される。
"g"アイコンをクリックすることで、以下のようなGoogleカレンダー入力画面が開く。
予めGoogleカレンダーにログインしておくこと。
たま〜に、"現在アクセスできません"などのエラーが表示されるが、これはOperaユーザへの単なる嫌がらせ(笑)なのでムシ…と言うか問題なく動作する。
画像にあるように、タイトルとその日時が各フォームに取り込まれる。
残念ながら、週間、月間スケジュール上、場所が表記されていないため、こちらは手入力のこと。
また、終日予定や数日にわたるスケジュールは非対応。
あとはGoogleカレンダーの通常の入力作業で登録するだけ。
iPhoneへは、Googleカレンダーと同期するアプリでスケジュールを同期すればOK。
ちなみにσ(^^)は"さいすけ"を愛用しています。
本当は自動で同期してくれればベストなのだが…。