使用Perl模块Data :: ICal将iCal事件标记为“全天”

时间:2013-09-06 08:09:56

标签: perl cpan icalendar

有一个庞大的Perl模块Data::ICal可以创建可以添加到mac上的日历应用程序的iCal文件(它们也可以添加到很多其他程序中)。

我使用过Data::ICal并编写了一个创建iCal文件的简单脚本。我已经添加了日历应用程序,它工作正常。

以下是列表:

#!/usr/bin/perl

use strict;
use warnings FATAL => 'all';

use Data::ICal;
use Data::ICal::Entry::Event;
use Date::ICal;
use File::Slurp;

my $calendar = Data::ICal->new();

my $ical_date = Date::ICal->new(
    year => 2013,
    month => 9,
    day => 6,
);

my $event = Data::ICal::Entry::Event->new();
$event->add_properties(
    summary => "my party",
    description => "I'll cry if I want to",
    dtstart => $ical_date->ical(),
);

$calendar->add_entry($event);

write_file('sample.ics', $calendar->as_string);

但是现在我想把这个事件标记为持续一整天。我已经把模块源代码文档和代码搞砸了,但我找不到办法。

如何将此活动标记为持续一整天?

1 个答案:

答案 0 :(得分:2)

根据内部连接上的这个description,您需要做的就是将dtstartdtend设置为YYYYMMDD(无小时或以下),其中开始日期(你的派对)并在第二天结束。

至少使用雷鸟/太阳鸟,这完美无缺:

#!/usr/bin/perl

use strict;

use Data::ICal;
use Data::ICal::Entry::Event;
use File::Slurp;

my $calendar = Data::ICal->new();

my $event = Data::ICal::Entry::Event->new();
$event->add_properties(
    summary     => "my party",
    description => "I'll cry if I want to",
    dtstart     => "20130906",
    dtend       => "20130907",
);

$calendar->add_entry($event);

write_file('sample.ics', $calendar->as_string);
相关问题