残念ながら、私の大学は怠惰すぎて、Google カレンダーを作成したり.ics
、公開イベントを作成したりできませんでした。代わりに、日付のリストを含む書式設定されたテキスト ファイルを電子メールで送信することを選択します。.ics
上記のリストをiCalendar( )ファイルに変換するPerlスクリプトがあります。.ics
それを後で Google カレンダーにインポートしたいと考えています。
これまでのところ、スクリプトは非常にうまく機能していますが、標準の通知 (電子メールとポップアップ) を無効にし、イベントを (デフォルトのビジーではなく) 空き時間に設定したいと考えています。問題は、 Data::ICal::Entry::FreeBusyおよびData::ICal::Entry::Alarm::Displayのドキュメントから有用なものが得られないことです。$event->add_properties(...)
以下のスクリプトの行に追加する適切なプロパティを教えてください。
#!/usr/bin/perl -w
# Converts a specially formated text file (list of events) into an .ics
# (iCalendar) file for import into Google-Calendar or other calendar
# applications.
use Date::ICal;
use Data::ICal;
use Data::ICal::Entry::Event;
# Read file into one long string
open FILE, $ARGV[0] or die "Couldn't open file: $!";
my $fstring = join("", <FILE>);
close FILE;
# Prepare calendar
my $calendar = Data::ICal->new();
$calendar->add_properties( method=>"PUBLISH",);
# Add events depending on what was found in file
my @events = split("\n\n", $fstring);
foreach $eventstring (@events) {
my $eventstring =~ s/(\d+\.\d+\.\d+)//; # remove date from the string
my $datestring = $1; #+but save it for processing:
($day, $month, $year) = split(/\./, $datestring);
$title = ( split /\n/, $eventstring )[1]; # what is left is the title
my $event = Data::ICal::Entry::Event->new();
$event->add_properties(
summary => "Kolloquium: $title",
description => $eventstring, #+and the long description
dtstart => Date::ICal->new( year=>"20$year", month=>$month, day=>$day, hour=>17, min=>15 )->ical,
dtend => Date::ICal->new( year=>"20$year", month=>$month, day=>$day, hour=>18, min=>15 )->ical,
dtstamp => Date::ICal->new( epoch => time )->ical,
# MISSING HERE: Right FREEBUSY and ALARM properties. PLEASE HELP!
);
$calendar->add_entry($event);
}
print $calendar->as_string;
よろしくお願いします!