问题描述
我正在尝试创建一个供用户通过webcal订阅的ics feed.该提要的内容来自数据库,如下所示.
I am trying to create a ics feed for users to subscribe via webcal. The feed's content comes from database and looks like the following.
更新数据库后,提要将更改并更新订户的日历.它与Google日历和某些日历应用程序配合正常使用.但是,我从未在Outlook.com(网络日历)或Yahoo日历中观察到更新.提要中有什么问题,所以更新失败了吗?
When the database is updated, the feed changes and updates the subscribers' calendars. It works fine with google calendar and some calendar apps. However, I never observe updates in outlook.com (the web calendar) or Yahoo calendar. Is there something wrong in the feed so update fail?
提要是通过webcal://example.com/subscribe.php提供的然后我放 header('Content-Type:text/calendar; charset = UTF-8');
作为第一行PHP
The feed is provided through webcal://example.com/subscribe.phpand I put header('Content-Type: text/calendar; charset=UTF-8');
as the first PHP line
ics:
BEGIN:VCALENDAR
PRODID:-//Organisation//Roster//EN
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:PUBLISH
X-WR-CALNAME:Duty Arrangement
X-WR-CALDESC:Duty Arrangement
X-WR-TIMEZONE:Asia/Hong_Kong
REFRESH-INTERVAL;VALUE=DURATION:PT6H
X-PUBLISHED-TTL:PT6H
BEGIN:VEVENT
DTSTART:20180218T020000Z
DTEND:20180218T033000Z
DTSTAMP:20180602T144036Z
UID:[email protected]
DESCRIPTION:Task A
LOCATION:Office
SUMMARY:On Duty
TRANSP:OPAQUE
END:VEVENT
BEGIN:VEVENT
DTSTART:20180304T020000Z
DTEND:20180304T033000Z
DTSTAMP:20180602T144036Z
UID:[email protected]
DESCRIPTION:Task B
LOCATION:Office
SUMMARY:On Duty
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR
推荐答案
您具有UID,但ICS文件事件需要一个SEQUENCE号,以指示该事件的最新更新/版本是最新的.
请参见规范 https://tools.ietf.org/html/rfc5545#section-3.8.7.4
You have the UID but ICS file events need a SEQUENCE number to indicate which update/version of the event is the latest.
See the specification https://tools.ietf.org/html/rfc5545#section-3.8.7.4
对于重复发生的事件实例,它们还需要被修改实例的RECURRENCE-ID.
For recurring event instances, they also need a RECURRENCE-ID of the instance being modified.
这篇关于Web日历中的ics事件更新失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!