我有一个数据库,可以输出一个如下所示的.ics文件:
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//hacksw/handcal//NONSGML v1.0//EN
BEGIN:VEVENT
UID:36@homewoodphoto.jhu.edu
DTSTAMP:20091211T175956Z
DTSTART:20091106T200000Z
DTEND:20091106T230000Z
SUMMARY:
END:VEVENT
BEGIN:VEVENT
UID:35@homewoodphoto.jhu.edu
DTSTAMP:20091211T175956Z
DTSTART:20091105T220000Z
DTEND:20091106T010000Z
SUMMARY:
END:VEVENT
BEGIN:VEVENT
UID:34@homewoodphoto.jhu.edu
DTSTAMP:20091211T175956Z
DTSTART:20091106T200000Z
DTEND:20091106T230000Z
SUMMARY:
END:VEVENT
END:VCALENDAR
我可以通过大多数电子邮件客户端轻松订阅它,甚至是Microsoft Outlook 2007.但是,在客户端订阅该文件后,在更新发生时几乎不可能让它刷新文件。
有没有办法从.ics文件中强制或推送更新到客户端?或者从Outlook内部,即使它不在Exchange上?
答案 0 :(得分:3)
你必须重新发行ical,但你需要做2个瘦身:
保持相同的UID。
您需要添加一个SEQUENCE标头(这是一个简单的整数)。然后,您可以为每个新更新增加序列号。
以下是更新的内容:
BEGIN:VEVENT
UID:34@homewoodphoto.jhu.edu
DTSTAMP:20091211T175956Z
DTSTART:20091106T200000Z
DTEND:20091106T230000Z
SUMMARY:
SEQUENCE:1
END:VEVENT
答案 1 :(得分:0)
我们在这个问题上找到的唯一答案是:你不能这样做。截至目前,无法控制日历客户端根据您的.ics文件刷新和更新的频率。
换句话说,日历更新没有“推送”技术,客户端程序无论什么时候都会拉动。因此,如果您要构建一个包含更新事件的数据库,您希望立即将其推送到人们的日历,那么......您不能。 :(