icalendar (RFC2445) 形式のデータを作ってみた

[img_assist|nid=73|title=|desc=|link=node|align=none|width=640|height=508]

[img_assist|nid=74|title=|desc=|link=node|align=none|width=356|height=240]

空き時間を利用してicalendar形式のデータを作ってみた。ruby向けに提供されているライブラリ『vpim』を使用すれば比較的簡単に利用できた。前回作成したライブスケジュールに適用すれば、iCalやGoogle Calendarでスケジュールが見られるようになるはず。試しに今回作ったお試しスクリプトとデータを使って、きっちりiCalで表示できた。

今度の週末にはできるようになるかな。
vpimを使ったサンプルが少ないので、以下にサンプルコードを掲載する。ごく簡単なサンプルで、これを実現するなら直接ファイルに書くのと手間がかからないかもしれない。

■テスト

require ‘rubygems’
require ‘vpim/icalendar’
require ‘kconv’
$KCODE = ‘utf-8′
i = Vpim::Icalendar.create
d = Date.new(2008, 2, 5)
e = Vpim::Icalendar::Vevent.create(d, “SUMMARY”=>”test summary”, “DESCRIPTION”=>”test¥¥n description”)
i.push(e)
e = Vpim::Icalendar::Vevent.create(Date.strptime(“2008-2-7”), “SUMMARY”=>”テスト summary2”, “DESCRIPTION”=>”テスト description2”)
i.push(e)
f = File.open( “cal.ics”,’w’ )
f.puts i
f.close

■出力

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Ensemble Independent//vPim 0.360//EN
CALSCALE:Gregorian
BEGIN:VEVENT
DTSTART:20070205
SUMMARY:test summary
DESCRIPTION:test description
END:VEVENT
BEGIN:VEVENT
DTSTART:20070207
SUMMARY:テスト summary2
DESCRIPTION:テスト description2
END:VEVENT
END:VCALENDAR