2014-03-19 9 views
1

ICAL 반복 규칙 생성 이해에 도움이 필요합니다.ICAL 반복 규칙 생성 (RRULE)

일정이 하나만있는 캘린더를 만들었습니다. 이벤트에는 다음 5 일마다 2 일에 다시 발생하는 규칙이 있습니다.

Google 캘린더는 이와 함께 ICS 파일을 생성합니다.

... 
BEGIN:VTIMEZONE 
TZID:America/New_York 
X-LIC-LOCATION:America/New_York 
BEGIN:DAYLIGHT 
TZOFFSETFROM:-0500 
TZOFFSETTO:-0400 
TZNAME:EDT 
DTSTART:19700308T020000 
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU 
END:DAYLIGHT 
BEGIN:STANDARD 
TZOFFSETFROM:-0400 
TZOFFSETTO:-0500 
TZNAME:EST 
DTSTART:19701101T020000 
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU 
END:STANDARD 
END:VTIMEZONE 
... 

이 부분이 나를 혼란스럽게합니다. 구글에 의해 생성

RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU 

편집

전체 ICS 파일. 대신 모든 5 개 이벤트 별도로 생성이

RRULE:FREQ=DAILY;COUNT=5;INTERVAL=2 

구글을주는

BEGIN:VCALENDAR 
PRODID:-//Google Inc//Google Calendar 70.9054//EN 
VERSION:2.0 
CALSCALE:GREGORIAN 
METHOD:PUBLISH 
X-WR-CALNAME:Public 
X-WR-TIMEZONE:America/New_York 
X-WR-CALDESC:dsdadsa 
BEGIN:VTIMEZONE 
TZID:America/New_York 
X-LIC-LOCATION:America/New_York 
BEGIN:DAYLIGHT 
TZOFFSETFROM:-0500 
TZOFFSETTO:-0400 
TZNAME:EDT 
DTSTART:19700308T020000 
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU 
END:DAYLIGHT 
BEGIN:STANDARD 
TZOFFSETFROM:-0400 
TZOFFSETTO:-0500 
TZNAME:EST 
DTSTART:19701101T020000 
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU 
END:STANDARD 
END:VTIMEZONE 
BEGIN:VEVENT 
DTSTART;VALUE=DATE:20140415 
DTEND;VALUE=DATE:20140416 
DTSTAMP:20140319T053224Z 
UID:[email protected] 
RECURRENCE-ID;VALUE=DATE:20140415 
CLASS:PUBLIC 
CREATED:20140319T053209Z 
DESCRIPTION: 
LAST-MODIFIED:20140319T053209Z 
LOCATION: 
SEQUENCE:0 
STATUS:CONFIRMED 
SUMMARY:event details 
TRANSP:TRANSPARENT 
END:VEVENT 
BEGIN:VEVENT 
DTSTART;VALUE=DATE:20140413 
DTEND;VALUE=DATE:20140414 
DTSTAMP:20140319T053224Z 
UID:[email protected] 
RECURRENCE-ID;VALUE=DATE:20140413 
CLASS:PUBLIC 
CREATED:20140319T053209Z 
DESCRIPTION: 
LAST-MODIFIED:20140319T053209Z 
LOCATION: 
SEQUENCE:0 
STATUS:CONFIRMED 
SUMMARY:event details 
TRANSP:TRANSPARENT 
END:VEVENT 
BEGIN:VEVENT 
DTSTART;VALUE=DATE:20140411 
DTEND;VALUE=DATE:20140412 
DTSTAMP:20140319T053224Z 
UID:[email protected] 
RECURRENCE-ID;VALUE=DATE:20140411 
CLASS:PUBLIC 
CREATED:20140319T053209Z 
DESCRIPTION: 
LAST-MODIFIED:20140319T053209Z 
LOCATION: 
SEQUENCE:0 
STATUS:CONFIRMED 
SUMMARY:event details 
TRANSP:TRANSPARENT 
END:VEVENT 
BEGIN:VEVENT 
DTSTART;VALUE=DATE:20140409 
DTEND;VALUE=DATE:20140410 
DTSTAMP:20140319T053224Z 
UID:[email protected] 
RECURRENCE-ID;VALUE=DATE:20140409 
CLASS:PUBLIC 
CREATED:20140319T053209Z 
DESCRIPTION: 
LAST-MODIFIED:20140319T053209Z 
LOCATION: 
SEQUENCE:0 
STATUS:CONFIRMED 
SUMMARY:event details 
TRANSP:TRANSPARENT 
END:VEVENT 
BEGIN:VEVENT 
DTSTART;VALUE=DATE:20140407 
DTEND;VALUE=DATE:20140408 
DTSTAMP:20140319T053224Z 
UID:[email protected] 
RECURRENCE-ID;VALUE=DATE:20140407 
CLASS:PUBLIC 
CREATED:20140319T053209Z 
DESCRIPTION: 
LAST-MODIFIED:20140319T053209Z 
LOCATION: 
SEQUENCE:0 
STATUS:CONFIRMED 
SUMMARY:event details 
TRANSP:TRANSPARENT 
END:VEVENT 
END:VCALENDAR 

. 왜.??

이벤트 자바에서이 작업을 수행하는 모든 패키지가 4 월-7-2014

에서 시작, 나에게

답변

1

많은 시간을 절약 할 수가 표시 한 정보는 시간대 정보는 (주입니다 BEGIN:VTIMEZONEEND:TIMEZONE)이며 해당 시간대의 일광 절약 시간제가 적용됩니다. 특히, 일광 절약 시간은 매년 세 번째 달의 두 번째 일요일부터 시작됩니다.

코드 조각을 BEGIN:VEVENTEND:VEVENT 사이에서 확인하여 이벤트에 RRULE이 표시되도록하십시오.

RRULE의 생성은 기본 데이터 구조에 크게 좌우됩니다. Google has a project은 구문 분석 및 평가가 RRULE입니다.

+0

감사합니다. 좋은 설명입니다. :) 나는 구글이 다른 방식으로 물건을 만들고 있다고 생각했다. !! 'RRULE : FREQ = DAILY; COUNT = 5; INTERVAL = 2'와 같은 규칙을 만드는 대신 Google 빌딩을 VEVENT로 분리하는 이유는 무엇입니까? – Dileep

+0

'VEVENT'를 포함하여 전체 일정을 보여 주시면 설명해 드릴 수 있습니까? – jgm

+0

수정 사항을 확인하고 모든 세부 정보를 추가했습니다. :) – Dileep