参考 URL を見て、名前そのものの iCal::Parser 等のインストールを試すが、 途中でエラー等も多発するし、 CGI を作るのであれば、書き込み機能も欲しい。 しかし、iCal::Parser のインストールの途中でインストールしようとする モジュールの中にあった、 Data::ICal の方なら Data::ICal->as_string メソッドもあって便利。
# perl -MCPAN -e shell cpan> install Data::ICal でいれてたけど、debian パッケージ探すと、 # apt-get install libdate-ical-perl/unstable でオッケー。と思ったが CPAN では、Data::ICal , perl では、date-ical ?... よくよくソースを見ると、Date::ICal は日付データしか扱えないのであった...
さっそく使ってみる。
use Data::ICal ; use Data::ICal::Entry::Todo ; use Data::ICal::Entry::Event ; use Date::ICal ; # 微妙... my $calendar = Data::ICal->new( filename => $ARGV[0] ) ; # ToDo の作成 my $new_todo = Data::ICal::Entry::Todo->new() ; $new_todo->add_properties( summary => "資料提出" , status => 'INCOMPLETE' , dtstart => Date::ICal->new( year => 2006 , month => 10 , day => 30 ... )->ical ) ; $calendar->add_entry( $new_todo ) ; # Event の作成 my $new_event = Data::ICal::Entry::Event->new() ; $new_event->add_properties( summary => "会議" , description => "会議の説明" , dtstart => Date::ICal->new( epoch => time() )->ical ) ; $calendar->add_entry( $new_event ) ; # iCalendar ファイルの出力 print $calendar->as_string ;