我正在使用iCalCreator类创建用于加载到其个人日历中的事件。以下是不熟悉的信息:http://www.kigkonsult.se/iCalcreator/在不创建日历的情况下创建iCal事件
使用文档,在主页上,我可以创建一个事件并将其输出到浏览器。没问题。问题在于,当它被导入时(我正在测试Outlook,但我期望这会持续到其他日历软件),它会导入为新日历,并带有一个事件。我希望事件能够直接进入常规日历。
有没有人有经验的iCalCreator,并知道我可以做到这一点?
感谢
我正在使用iCalCreator类创建用于加载到其个人日历中的事件。以下是不熟悉的信息:http://www.kigkonsult.se/iCalcreator/在不创建日历的情况下创建iCal事件
使用文档,在主页上,我可以创建一个事件并将其输出到浏览器。没问题。问题在于,当它被导入时(我正在测试Outlook,但我期望这会持续到其他日历软件),它会导入为新日历,并带有一个事件。我希望事件能够直接进入常规日历。
有没有人有经验的iCalCreator,并知道我可以做到这一点?
感谢
你可以尝试更换Line方法:与方法发布:请求。这是我对RFC2446中的调度协议的理解(当然是模糊的,未经测试),那么这是一个邀请,Outlook可能会要求用户接受(并进入日历)或拒绝它。 它似乎与TB /闪电一起工作。
由于您使用的是PHP,所以您只需将一个文件写成一个文件并将其保存在服务器上即可。 ical事件本质上是一个文本文件。您只需更新名称,唯一ID并更新时间以匹配您的活动。这样你所做的只是创建一个文本文件并将其命名为.ics。希望能帮助到你。
BEGIN:VCALENDAR
CALSCALE:GREGORIAN
VERSION:2.0
X-WR-CALNAME:Test making a generic ical event
METHOD:PUBLISH
PRODID:-//angelfilm entertainment LLC//EN
BEGIN:VTIMEZONE
TZID:America/Los_Angeles
BEGIN:DAYLIGHT
TZOFFSETFROM:-0800
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
DTSTART:20070311T020000
TZNAME:PDT
TZOFFSETTO:-0700
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0700
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
DTSTART:20071104T020000
TZNAME:PST
TZOFFSETTO:-0800
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
CREATED:20110720T173758Z
UID:6asdf9-asdfkjasdf-asd-asdf-sdaf33FE
DTEND;TZID=America/Los_Angeles:20110908T120000
TRANSP:OPAQUE
SUMMARY:Test making a generic ical event
DTSTART;TZID=America/Los_Angeles:20110908T110000
DTSTAMP:20110808T174507Z
SEQUENCE:3
BEGIN:VALARM
X-WR-ALARMUID:6asdf9-asdfkjasdf-asd-asdf-sdaf33Fa
TRIGGER;VALUE=DATE-TIME:20110908T105100
ATTACH;VALUE=URI:Basso
ACTION:AUDIO
END:VALARM
END:VEVENT
END:VCALENDAR
保存上述文本字符串
$myFile = "myIcalEvent.ics";
$fh = fopen($myFile, 'w') or die("can't open file");
$stringData = "THE ABOVE ICAL TEXT COULD BE SAVED TO THIS VARIABLE";
fwrite($fh, $stringData);
fclose($fh);
然后你就可以有一个下载该文件
<?php
// We'll be outputting a ICS
header('Content-type: text/calendar');
// It will be called downloaded.ics
header('Content-Disposition: attachment; filename="downloaded.ics"');
// The PDF source is in myIcalEvent.ics
readfile('myIcalEvent.ics');
?>
试试这个(从https://gist.github.com/jakebellacera/635416)
<?php
// Fetch vars
$event = array(
'id' => $_GET['id'],
'title' => $_GET['title'],
'address' => $_GET['address'],
'description' => $_GET['description'],
'datestart' => $_GET['datestart'],
'dateend' => $_GET['dateend'],
'address' => $_GET['stage']
);
// iCal date format: yyyymmddThhiissZ
// PHP equiv format: Ymd\This
// The Function
function dateToCal($time) {
return date('Ymd\This', $time) . 'Z';
}
// Build the ics file
$ical = 'BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//hacksw/handcal//NONSGML v1.0//EN
CALSCALE:GREGORIAN
BEGIN:VEVENT
DTEND:' . dateToCal($event['dateend']) . '
UID:' . md5($event['title']) . '
DTSTAMP:' . time() . '
LOCATION:' . addslashes($event['address']) . '
DESCRIPTION:' . addslashes($event['description']) . '
URL;VALUE=URI:http://mohawkaustin.com/events/' . $event['id'] . '
SUMMARY:' . addslashes($event['title']) . '
DTSTART:' . dateToCal($event['datestart']) . '
END:VEVENT
END:VCALENDAR';
//set correct content-type-header
if($event['id']){
header('Content-type: text/calendar; charset=utf-8');
header('Content-Disposition: attachment; filename=mohawk-event.ics');
echo $ical;
} else {
// If $id isn't set, then kick the user back to home. Do not pass go, and do not collect $200.
header('Location: /');
}
?>
页面