问题
I have a calendar feed (.ics) available from my application, but it's quite large since it includes over 4,000 events. Is there a standard or best practice when it comes to specifying how many events get downloaded or how far back or forward the calendar should go?
My main question though, is how to configure or set an update limit on the calendar so say a user is subscribing to the calendar using Outlook that it's only updated every few hours. I currently have my feed cached for a few hours, but if I could have Outlook or whatever client the user is using only check for updates every few hours that would be ideal.
回答1:
To only check for updates hourly (for example) use this in your VCALENDAR file:
X-PUBLISHED-TTL:PT1H
I gleaned this information from one of the Microsoft Protocol documents [MS-OXCICAL]: iCalendar to Appointment Object Conversion Protocol Specification (download the linked PDF)
2.1.3.1.1.15 Property: X-PUBLISHED-TTL
RFC Reference: N/A
Number of Instances Allowed: 0, 1
Format: Duration ([RFC2445] section 4.3.6)
Brief Description: Specifies a suggested iCalendar file download frequency for clients and servers with sync capabilities.
Importing to Calendar objects
This property SHOULD<32> be ignored.Exporting from Calendar objects
If this iCalendar is being automatically published to a remote location at regular intervals, this property SHOULD<33> be set to that interval with a minimum granularity of minutes.
回答2:
RFC 7986 introduced a new REFRESH-INTERVAL
property:
https://tools.ietf.org/html/rfc7986#section-5.7
I don't know if this is supported by any clients, but the RFC was authored by Apple, so I assume they have some interest in this.
来源:https://stackoverflow.com/questions/538081/set-update-limits-on-icalendar-feed