2017-05-04 3 views
2

Ich habe, was ich glaube, ein fast minimal Kalender mit 2 Test-Events sein:iCalendar: Ereignis mit mehreren Daten?

BEGIN:VCALENDAR 
VERSION:2.0 
BEGIN:VEVENT 
UID:Q1 
DTSTAMP:20170504 
SUMMARY:Testing Description 1 
DTSTART:20170510 
DTEND:20170510 
DESCRIPTION:Testing Stuff 1 
END:VEVENT 
BEGIN:VEVENT 
UID:Q2 
DTSTAMP:20170504 
SUMMARY:Testing Summary 1 
DTSTART:20170512 
DTEND:20170512 
DESCRIPTION:Testing Description 1 
END:VEVENT 
END:VCALENDAR 

Wie Sie sehen, ist der Plan für die 2 Ereignisse die gleiche Zusammenfassung & Beschreibung haben. Das ist, weil ich möchte, dass es eine 2-tägige Veranstaltung ist.

Hat das iCalendar-Format tatsächlich ein richtiges Ereignis mit mehreren Datumsangaben? Mit dem Multi-date meine ich:

  • nicht unbedingt aufeinander folgende Termine
  • mehr Tage, ohne ein bestimmtes Muster (nicht tatsächlich wiederkehrenden)

Ich sehe, dass iCalendar sehr clever Wiederholungsmuster hat (http://www.kanzaki.com/docs/ical/rrule.html), aber die eine Sache, die ich nicht finden kann, ist eine Regel für beliebige Daten.

Antwort

1

Dazu können Sie einen einzelnen VEVENT mit DTSTART/DTEND, der der ersten Instanz entspricht, und eine RDATE-Eigenschaft mit mehreren Werten haben, die der DTSTART jeder Instanz entsprechen. Siehe https://tools.ietf.org/html/rfc5545#section-3.8.5.2

Eine Alternative zwei Ereignisse zu halten wäre, wie Sie getan haben, sondern sie über eine RELATED-TO-Eigenschaft verlinken: https://tools.ietf.org/html/rfc5545#section-3.8.4.5

nun in beiden Fällen (vor allem für RELATED-TO), generische Kunden kann diese Eigenschaften nicht immer verstehen oder nutzen.

+0

Nur um zu klären, kann ich hinzufügen "RDATE; VALUE = PERIOD: 20170517T090000/20170517T170000, 20170518T090000/20170518T170000". Wenn das der Fall ist, glaube ich nicht, dass Apple Calendar es unterstützt (siehe https://apple.stackexchange.com/questions/68535/does-os-x-calendar-n%c3%a9e-ical-support-rdate? rq = 1). Danke für die Antwort. – Manngo

+0

Am besten, um das gesamte resultierende Ereignis anzuzeigen, aber wenn Sie ein DTSTART: 20170510 DTEND: 20170511 haben (DTEND ist nicht inklusive), möchten Sie den gleichen Werttyp für das RDATE verwenden, also etwa RDATE; VALUE = DATE: 20170510,20170512 – arnaudq