1

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

我使用过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);

但现在我想将此事件标记为持续一整天。我已经抛出了模块源文档和代码,但我还没有找到方法。

如何将此事件标记为持续一整天?

4

1 回答 1

3

根据关于 innerjoin 的描述,您所要做的就是设置dtstart为(无小时或以下),其中开始是(您的聚会的)当天并在第二天结束。dtendYYYYMMDD

至少对于雷鸟/太阳鸟,这可以完美地工作:

#!/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);
于 2013-09-06T09:01:04.187 回答