2015-07-23 1 views
0

Existe-t-il un moyen facile de créer des événements annuels pour le week-end de Thanksgiving, à savoir un événement commençant le 4ème jeudi de novembre et le dimanche suivant? Autant que je sache, des choses comme RRULE et RECUR vous permettent de créer des événements récurrents avec une durée nulle (c'est-à-dire, des points dans le temps), mais pas des événements récurrents qui durent sur une période de temps.iCalendar RRULE/RECUR pour le week-end de Thanksgiving?

Qu'est-ce qui me manque?

Répondre

1
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY:4TH;WKST=SU 

Vous n'êtes certainement pas limité à 0 événements de durée. Vous pouvez simplement spécifier DTSTART et DTEND (ou DURATION) pour obtenir la fin de semaine complète.

+0

Est-ce que DTSTART et DTEND peuvent être définis comme RRULE eux-mêmes? Si non, comment puis-je spécifier un événement d'un mois? La longueur d'un mois n'est pas fixe. J'aurais dû mentionner que la date de Thanksgiving était assez facile, c'était la partie de la durée qui m'avait perplexe. – barrycarter

+0

La spécification d'un événement d'un mois ne fait pas partie de votre question initiale, mais oui c'est possible. RRULE s'applique à la fois 'DTSTART' et' DTEND', vous ne pouvez pas le spécifier séparément, mais cela n'aurait aucun sens. – Evert

0

Pour des précisions sur la réponse de Evert, pour spécifier un événement à long 4 jours, il vous suffit de spécifier le DTSTART et DTEND, comme ci-dessous:

DTSTART;VALUE=DATE:20151126 DTEND;VALUE=DATE:20151130 RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=4TH;WKST=SU

la justification vient d'en bas section de RFC5545:

RFC5545 3.6.1 La propriété "DTSTART" pour un "VEVENT" spécifie le début de l'événement inclusif . Pour les événements récurrents, il spécifie également la première instance dans le jeu de récurrence. La propriété "DTEND" pour un composant de calendrier "VEVENT" spécifie l'extrémité non inclusive de l'événement.