Macos 如何从条目数据库中创建iCal日历的时间范围?
我有一些Perl脚本,我正在使用它来抓取日历事件。我有一个事件数据库,现在我想把它们处理成一个iCal文件。我打开大学的学术日历,得到了以下信息:Macos 如何从条目数据库中创建iCal日历的时间范围?,macos,perl,calendar,metaprogramming,icalendar,Macos,Perl,Calendar,Metaprogramming,Icalendar,我有一些Perl脚本,我正在使用它来抓取日历事件。我有一个事件数据库,现在我想把它们处理成一个iCal文件。我打开大学的学术日历,得到了以下信息: BEGIN:VCALENDAR CALSCALE:GREGORIAN X-WR-TIMEZONE;VALUE=TEXT:America/Los_Angeles PRODID:-//MMISoftware\, //MMISoftware//EN X-WR-CALNAME;VALUE=TEXT:spring14cal X-WR-RELCALID;VALU
BEGIN:VCALENDAR
CALSCALE:GREGORIAN
X-WR-TIMEZONE;VALUE=TEXT:America/Los_Angeles
PRODID:-//MMISoftware\, //MMISoftware//EN
X-WR-CALNAME;VALUE=TEXT:spring14cal
X-WR-RELCALID;VALUE=TEXT:87FB4C57-1D7B-4B80-B200-AEED845CB3AF
VERSION:2.0
BEGIN:VEVENT
SEQUENCE:1
UID:41D26C6E-965B-4BFB-AEC0-F1614074A4AF
DTSTAMP:20140127T111052Z
DTSTART;VALUE=DATE:20140101
SUMMARY:FAFSA
DESCRIPTION:First day to obtain FAFSA financial aid applications for 201
4-15 academic year online at http://www.fafsa.ed.gov
DURATION:P1D
END:VEVENT
BEGIN:VEVENT
SEQUENCE:1
UID:DFE257FB-F475-43C2-9AEB-569EC4BA321D
DTSTAMP:20140127T111052Z
DTSTART;VALUE=DATE:20140106
SUMMARY:CA Dream
DESCRIPTION:First day to obtain California Dream Act financial aid appli
cations for 2014-15 academic year online at https://dream.csac.ca.gov
.
.
.
.
我看到了开始日期、结束日期和时间戳,但没有看到范围。。。不知道如何使用我现有的数据库创建一个iCal文件——你知道,元编程——时间范围如下:
BEGIN:VCALENDAR
CALSCALE:GREGORIAN
X-WR-TIMEZONE;VALUE=TEXT:America/Los_Angeles
PRODID:-//MMISoftware\, //MMISoftware//EN
X-WR-CALNAME;VALUE=TEXT:spring14cal
X-WR-RELCALID;VALUE=TEXT:87FB4C57-1D7B-4B80-B200-AEED845CB3AF
VERSION:2.0
BEGIN:VEVENT
SEQUENCE:1
UID:41D26C6E-965B-4BFB-AEC0-F1614074A4AF
DTSTAMP:20140127T111052Z
DTSTART;VALUE=DATE:20140101
SUMMARY:FAFSA
DESCRIPTION:First day to obtain FAFSA financial aid applications for 201
4-15 academic year online at http://www.fafsa.ed.gov
DURATION:P1D
END:VEVENT
BEGIN:VEVENT
SEQUENCE:1
UID:DFE257FB-F475-43C2-9AEB-569EC4BA321D
DTSTAMP:20140127T111052Z
DTSTART;VALUE=DATE:20140106
SUMMARY:CA Dream
DESCRIPTION:First day to obtain California Dream Act financial aid appli
cations for 2014-15 academic year online at https://dream.csac.ca.gov
.
.
.
.
您可以使用设置持续时间字符串的格式
持续时间本身(在您的案例中,我们只能看到第一个事件的持续时间,因为第二个事件的持续时间将是您跳过的第一行)是duration:P1D
,其中P1D
是持续时间本身,duration
是属性名称
有关ICals持续时间的更多信息,请参见
当您想要解析ICal
文件时,可以使用
创建ICal
文件很容易。例如:
use Data::ICal;
use Data::ICal::Entry::Event;
use strict;
use warnings;
my $calendar = Data::ICal->new;
my $vtodo = Data::ICal::Entry::Event->new;
$vtodo->add_properties(
summary => "read SO",
description => "reading cool SO posts",
dtstart => Date::ICal->new(
day => 4,
month => 6,
year => 2014,
hour => 8,
min => 30,
sec => 00
)->ical,
dtend => Date::ICal->new(
day => 5,
month => 6,
year => 2014,
hour => 9,
min => 50,
sec => 00
)->ical,
);
$calendar->add_entry($vtodo);
print $calendar->as_string;
搜索为此目的制作的模块: