ICS文件用于在收件人原始日历上创建条目,而不是在新订阅的日历上创建

时间:2013-03-19 10:24:07

标签: icalendar

我会从我网站上的活动发送自动生成的电子邮件,并希望在电子邮件中创建“添加到日历”链接。我创建了一个带有详细信息的.ics文件并将其存储在我的服务器上,然后在电子邮件的html代码中创建了一个链接(使用href)。当您单击电子邮件中的链接时,它会要求收件人订阅日历。如何创建ics文件/代码,以便将其添加到收件人自己的日历而不是新订阅的日历?我错过了一些明显的东西吗?

这是我做不到的事吗?

这是我的.ics文件的内容。

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//hacksw/handcal//NONSGML v1.0//EN
BEGIN:VEVENT
DTSTAMP:20130301T191700Z
DTSTART:20130412T190000Z
DTEND:20130412T230000Z
SUMMARY:Beer Festival
END:VEVENT
END:VCALENDAR

有人可以帮忙吗? 谢谢

3 个答案:

答案 0 :(得分:0)

这在很大程度上取决于收件人端的操作系统和日历客户端。在你的最后你可以做的不多。 电子邮件中的链接是否以webcal://或http://?

为前缀

答案 1 :(得分:0)

最好使用iTIP / iMIP将.ics文件附加到电子邮件中,而不是将其托管在您的服务器上。这样您就可以在iCalendar对象中指定METHOD(PUBLISH或REQUEST),客户端将知道它应该被导入到收件人日历中。

答案 2 :(得分:0)

要向用户的日历添加活动,您需要"邀请"用户使用特制电子邮件。你不能用http做到这一点。您的电子邮件基本上包含与您当前链接的Icalendar相同的Icalendar,但使用ATTENDEE元素指定您正在定位其日历的用户。您还需要在VCALENDAR和文本/日历电子邮件部分的标题中指定METHOD:REQUEST。

这一切都值得吗?您一次只能邀请一个活动。如果您完成所有这些操作,您的用户仍然需要接受邀请,但该活动可能会在接受之前在日历中显示为暂定。需要通过电子邮件将修改推送给每个感兴趣的用户。 (通过http订阅日历可让您发布" Feed"事件。您只需保持日历文件的最新状态,一切都会自动传播。

如果您仍然感兴趣,this question可以帮助您构建电子邮件。