2016-07-10 13 views
3

Google 캘린더 API와 인터페이스하는 일부 소프트웨어를 개발 중입니다. 사용자가 활용할 수있는 기능 중 하나는 단일 '클래스'에 대해 여러 이벤트 시간을 설정하는 것입니다 (즉, 클래스는 며칠에 2-5입니다. 다른 사람들은 3-6 명).iCalendar 사양 RRULE 여러 번?

반복 규칙이 다른 요일에 다른 시간을 지정하여 다중이 아닌 하나의 반복 이벤트를 만들 수 있습니까?

감사합니다.

답변

3

반복 규칙이 다른 요일에 다른 시간을 지정하여 다중 이벤트 대신 하나의 반복 이벤트를 만들 수 있습니까?

아니요, 실제로는 아니지만 다른 방법으로이 결과를 얻을 수 있습니다.

  • 패턴이있는 경우 RRULE을 여러 개 결합 할 수 있습니다. 예를 들어, 월요일에 2시에 시작하는 격일로 반복하고, 두 번째 날에는 화요일에 시작하여 3 일에 격일로 반복합니다. 따라서 결합 된 결과는 월 2 일, 화 3, 수 2 등이됩니다. 은 RFC에 따라 당신이 정의하지을 두어야 하나 이상의 RRULE ( https://tools.ietf.org/html/rfc5545#section-3.8.5.3 참조)하지만

이 두 번 이상 지정되어서는 안된다. 여러 "RRULE"속성을 사용하여 생성 된 반복 세트는 입니다.

그래서 실제 구현에 따라 동작이 달라지며 Google 캘린더 API에 대해 알지 못합니다. 내가 아는 대부분의 라이브러리는 복수 RRULE을 지원하기 때문에 시도 해봐야합니다.

  • 패턴이있는 경우에도 BYSETPOS을 사용할 수 있습니다. 이 문제에 대해 머리를 감싸는 것은 약간 복잡하지만, 기본적으로 일련의 어커런스 (예 : 일주일 이상)를 생성 한 다음 체리가 유효 한 것을 선택해야합니다. 그래서 2 수요일, 3에서
 
DTSTART=20160711T140000 
FREQ=WEEKLY 
BYDAY=MO,TU,WE,TH,FR 
BYHOUR=14,15 
BYSETPOS=1,4,5,8,9 

이 2 월요일을 대체 할 것이다, 화요일, 및이 (명확성을 위해 멀티 라인) 같은 것을보십시오. 다시 말하지만,이 패턴이 작동하려면 명확한 반복 패턴이 필요합니다.

  • 에는 패턴이없는 경우 당신은, 다른 시간에 어떤 일이 당신의 RRULERDATEEXDATE 추가하거나 제거 할 특별 항목을 결합하려는.
+0

정확하게 대답했습니다. 감사합니다. – ccrama