5546 설명. 인터넷 검색, 2009 년 제안 된 표준, 즉 RFC5546을 발견했습니다. 나는이 문서를 읽고 매우 재미 있고 잠재적으로 내 문제를 해결할 수있는 한 점을 발견했다. 섹션 Methods for VEVENT Calendar Components은 REQUEST와 PUBLISH 방법의 차이를 설명합니다. 하지만, 내게 정말로 명확하지 않은 몇 가지 요점이 있습니다.iCalendar는 생성 : RFC 나는 특히 <code>iOS</code>, <code>Gmail</code>, <code>Outlook</code>, <code>Android</code> 및 <code>Windows Phone</code> 여러 클라이언트와 호환 할 수있는 ICS 파일의 생성과 관련된 몇 가지 문제에 직면하고있다
- 게시는 어떻게해야합니까? 새 캘린더를 추가해야합니까? Outlook이나 iOS에서와 같이 새 캘린더를 만들거나 Gmail이나 Lightning과 같은 기존 사용자 캘린더에 일정을 추가해야합니까? 편집 : 전자 메일에 첨부 된 파일로 일정을 기록하십시오.
- 게시 할 때 둘 이상의 이벤트가 포함될 수 있습니까? 문서에서 논리적으로 그렇습니다.하지만 Gmail은 목록의 첫 번째 이벤트 만 추가합니다. Lightning은 하나의 이벤트 만 추가 한 다음 804a0004 오류를 제공합니다.
- 어떻게 요청해야합니까? 문서 상태 :
VEVENT | 1+ | All components MUST have the same UID.
이는 일정이 VEVENT를 초과 할 수 있지만 동일한 UID를 가져야 함을 의미합니다. 그렇다면 고객이 어떻게 이러한 이벤트를 구별 할 수 있습니까? 사실 내가 시도한 클라이언트는 동일한 UID로 생성 된 이벤트를 구별 할 수 없지만 가장 높은 순열을 가진 이벤트 만 추가합니다. 논리적으로 말하면, 초대 당 하나 이상의 이벤트를 보내고 싶지는 않지만 RFC를 통해 내가 할 수있게되었습니다 (그리고 내가 원하는 경우). VEVENT | 1+ | All components MUST have the same UID.
문을 잊어서 ICS 파일의 각 이벤트에 고유 한 UID를 제공하면 Gmail 및 iOS는 파일에 포함 된 모든 이벤트를 추가하고 Lightning 및 Outlook은 첫 번째 이벤트 만 추가합니다. 이 길을 추구 할 길은 없습니까? 아니면 다른 길을 찾아야합니다.- 기본적으로 언급 한 플랫폼의 사용자 일정에 단일 ICS 파일로 더 많은 이벤트를 추가하는 것을 어떻게 제안합니까? 게시에 대한
샘플 ICS : 요청에 대한
BEGIN:VCALENDAR
PRODID:-//prodid//product//IT
VERSION:2.0
METHOD:PUBLISH
CALSCALE:GREGORIAN
BEGIN:VEVENT
UID:uid1
DTSTAMP:20130515T121437Z
DTSTART:20130619T205000
DTEND:20130619T215000
DESCRIPTION:Desc 1
SUMMARY:Sum 1
LOCATION:location
ORGANIZER:mailto:[email protected]
SEQUENCE:1
STATUS:CONFIRMED
END:VEVENT
BEGIN:VEVENT
UID:uid2
DTSTAMP:20130515T121437Z
DTSTART:20130719T205000
DTEND:20130719T215000
DESCRIPTION:Desc 2
SUMMARY:Sum 2
LOCATION:location
ORGANIZER:mailto:[email protected]
SEQUENCE:1
STATUS:CONFIRMED
END:VEVENT
END:VCALENDAR
샘플 :
약 1) 클라이언트로 이벤트를 통신하는 방법이 명확하지 않다BEGIN:VCALENDAR
PRODID:-//prodid//product//IT
VERSION:2.0
METHOD:REQUEST
CALSCALE:GREGORIAN
BEGIN:VEVENT
UID:uid1
DTSTAMP:20130515T121437Z
DTSTART:20130619T205000
DTEND:20130619T215000
DESCRIPTION:Desc 1
SUMMARY:Sum 1
LOCATION:location
ORGANIZER:mailto:[email protected]
ATTENDEE;RSVP=TRUE;CN=attendee cn:mailto:[email protected]
SEQUENCE:1
STATUS:CONFIRMED
END:VEVENT
BEGIN:VEVENT
UID:uid2
DTSTAMP:20130515T121437Z
DTSTART:20130719T205000
DTEND:20130719T215000
DESCRIPTION:Desc 2
SUMMARY:Sum 2
LOCATION:location
ORGANIZER:mailto:[email protected]
ATTENDEE;RSVP=TRUE;CN=attendee cn:mailto:[email protected]
SEQUENCE:1
STATUS:CONFIRMED
END:VEVENT
END:VCALENDAR
)의 마지막 이벤트를 참조하십시오. 포인트 2에 대해), 이는 Google 캘린더 또는 라이트닝과 같은 클라이언트가 일종의 버그 또는 불완전하다는 것을 의미합니까? 그렇다면 분명히 여러 클라이언트에서 작동하는 단일 파일을 보내는 방법이 없습니다. 맞습니까? – ThanksForAllTheFish
맞습니다. 제대로 작동하지 않습니다. 나는 그들이 REQUEST와 같은 방식으로 PUBLISH를 취급한다고 의심하고, 따라서 4)에서 하나의 이벤트 (VEVENT 예외가있는 경우 optionnally) 만 허용한다. gmail이해야 할 일과 정반대로 행동하는 것처럼 보인다. – arnaudq
나는 4 세에 대해 틀 렸습니다. 마침내 좀 더 과학적인 접근 방식을 취했으며 이벤트, 클라이언트, UID 및 메소드의 수 조합에 대한 동작을 설명하는 문서를 준비 중입니다. Google 캘린더는 첫 번째 일정 만 추가합니다. – ThanksForAllTheFish