日本語の予定を。

lighttpdで日本語のiCalendarを配信し、それをGoogleカレンダーで文字化け無しに読ませる方法。GoogleカレンダーではContent-Typeで明示的にUTF-8であると指示する必要がある。


まず、lighttpd.confに次のような行がおそらくあるので見つける。

include_shell "/usr/share/lighttpd/create-mime.assign.pl"

次に、次のようなスクリプトを書いてcreate-mime.assign.rbとして保存。

#!/usr/bin/env ruby

src = `/usr/share/lighttpd/create-mime.assign.pl`
src.gsub!("text/calendar", "text/calendar; charset=utf-8")
puts src

lighttpd.confで、今書いたスクリプトを呼ぶようにしてやる。

#include_shell "/usr/share/lighttpd/create-mime.assign.pl"
include_shell "/path/to/create-mime.assign.rb"

これでContent-Typeに"; charset=utf-8"が付くようになって、Googleカレンダーがちゃんと読んでくれるようになる、はず。
create-mime.assign.plを直接書き換えてやるとか、もっと賢い置換のやり方もあると思いますが、ひとまずはちゃんと機能してるようです。