※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。


Rainlendar に web公開されている iCalendar ファイルを取り込んでみた
昨日、Rainlendar は web公開されている iCalendar 形式を取り込めないから、サーバのフォーマットに変換して...とか書いてましたが、あほでした。>自分
ちょっと落ち着いて考えたら http で .ics ファイルをローカルにダウンロードして、それを rainlandar に読み込ませるだけでいいやん、と。で、定時あけから、こちょこちょと perl で...ってできました。
あぅ、こんな簡単でよかったのか...

ちょっとひっかかったのは、MacOS X の iCal から出力されたファイルを読み込む場合、ics ファイルの改行コードが Mac のそれなので CR+LF に変換してやる必要があるのと、文字コードが UTF-8 で出力されているので、perl もそれにあわせておく必要があるくらいで、いたって簡単です。

試してませんが、Google Calendar でもできると思う。たぶん。
データが使い回せるって、やっぱいいですね。

実際には複数のカレンダーをローカルに保存しているので少しいじっているのですが、こんな感じのコードです。ActivePerl 5.8 で、UTF-8 で保存して使ってます。

use Win32::Internet;
$INET = new Win32::Internet();

$url = "icsファイルのURL";
$file = $INET->FetchURL($url);
$file =~ s/\x0D\x0A/\n/g;#改行コードをCR+LFに

$my_output_file = "ローカルに保存するicsファイルパス";
open(OUT, "> $my_output_file");
print(OUT $file);
close(OUT);