2017-10-17 11 views
0

독자적인 캘린더 시스템이있는 웹 앱이 있습니다. 캘린더 일정을 추가/업데이트/제거 할 때 사용자에게 이메일 알림을 보내려고합니다.iCal을 사용하여 캘린더 항목 업데이트 및 제거

이벤트 첨부 파일을 만들려면 Ical.Net을 통해 Nuget 패키지를 통해 iCal을 사용하고 있습니다. 이 기능은 새 캘린더 일정을 추가 할 때 유용합니다. iCal 첨부 파일로 이메일을 받고 받아 들일 수 있으며이를 Google 캘린더에 추가 할 수 있습니다.

내가 갖고있는 질문은 다음과 같습니다. iCal을 사용하여 이전에 추가 한 일정 이벤트에 영향을주는 업데이트 또는 제거 유형 개체를 보내는 방법이 있습니까?

두 번째 iCal 개체에서 동일한 Uid를 사용했지만 작동하지 않았습니다.

업데이트 :

BEGIN:VCALENDAR 
PRODID:-//github.com/rianjs/ical.net//NONSGML ical.net 2.2//EN 
VERSION:2.0 
BEGIN:VEVENT 
DESCRIPTION:hi 
DTEND:20171019T200000 
DTSTAMP:20171018T022927Z 
DTSTART:20171019T193000 
SEQUENCE:0 
STATUS:Confirmed 
SUMMARY:test 
UID:2291d1c2-3b6d-404a-82ac-16807ecfd580 
END:VEVENT 
END:VCALENDAR 

업데이트 스트림은 단지 다른 시작 시간과 종료 시간과 동일합니다 :이 모임 생성 스트림입니다.

업데이트 2 : 나는 게시물과 RFC 2446을 많이 읽고

는이 권리를 얻기 위해 노력하고 계속 문제가 발생하고있다. 다음은 원래 항목에 대한 나의 3 가지 예입니다. 날짜를 변경 한 다음 취소합니다. 나는 오직 원래의 시간에 오직 하나의 사건으로 끝난다. 업데이트로 시간이 변경되지 않으며 이벤트를 취소하지 않습니다.

RFC 2446을 읽었을 때 읽는 것으로 생각했기 때문에 VEVENT 내부에 메서드 : 행을 넣으려고했습니다. 내가 그랬을 때 3 개의 이벤트가 발생했습니다. 원본과 새로운 날짜의 2.

초기 이벤트

BEGIN:VCALENDAR 
PRODID:-//RealtimeMD//Medical Portal//EN 
VERSION:2.0 
METHOD:REQUEST 
BEGIN:VEVENT 
DTSTART:20171020T023000Z 
DTEND:20171020T030000Z 
DTSTAMP:20171020T015303Z 
ORGANIZER;CN=Bob Docter:mailto:[email protected] 
UID:24258c34-2888-43ec-ac3d-180ee2603294 
CREATED:20171020T015303Z 
X-ALT-DESC;FMTTYPE=text/html: 
LAST-MODIFIED:20171020T015304Z 
LOCATION:RealtimeMD Zoom 
SEQUENCE:0 
STATUS:CONFIRMED 
SUMMARY:t 
TRANSP:OPAQUE 
END:VEVENT 
END:VCALENDAR 

업데이트 이벤트

BEGIN:VCALENDAR 
PRODID:-//RealtimeMD//Medical Portal//EN 
VERSION:2.0 
METHOD:REQUEST 
BEGIN:VEVENT 
DTSTART:20171021T023000Z 
DTEND:20171021T030000Z 
DTSTAMP:20171020T015303Z 
ORGANIZER;CN=Bob Docter:mailto:[email protected] 
UID:24258c34-2888-43ec-ac3d-180ee2603294 
CREATED:20171020T015303Z 
X-ALT-DESC;FMTTYPE=text/html: 
LAST-MODIFIED:20171020T015340Z 
LOCATION:RealtimeMD Zoom 
SEQUENCE:1 
STATUS:CONFIRMED 
SUMMARY:t 
TRANSP:OPAQUE 
END:VEVENT 
END:VCALENDAR 

이벤트 취소

BEGIN:VCALENDAR 
PRODID:-//RealtimeMD//Medical Portal//EN 
VERSION:2.0 
METHOD:CANCEL 
BEGIN:VEVENT 
DTSTART:20171021T023000Z 
DTEND:20171021T030000Z 
DTSTAMP:20171020T015303Z 
ORGANIZER;CN=Bob Docter:mailto:[email protected] 
UID:24258c34-2888-43ec-ac3d-180ee2603294 
CREATED:20171020T015303Z 
X-ALT-DESC;FMTTYPE=text/html: 
LAST-MODIFIED:20171020T015433Z 
LOCATION:RealtimeMD Zoom 
SEQUENCE:2 
STATUS:CANCELLED 
SUMMARY:t 
TRANSP:OPAQUE 
END:VEVENT 
END:VCALENDAR 
+0

설명에 추가 및 업데이트에 해당하는 icalendar 스트림을 모두 제공하십시오. – arnaudq

+0

iCal 항목을 만들 때 사용중인 라이브러리를보고 상태를 변경할 수 있음을 확인했습니다. 위의 예에서 상태를 Confirmed로 업데이트했습니다. 나는 그것을 Cancelled로 변경하려고 시도했지만 예상했던대로 항목을 제거하지는 않습니다. – user856232

답변

0

당신이 상점을 전송하는 경우 이메일을 통해, https://tools.ietf.org/html/rfc5546#section-3.2.1과 같은 PUBLISH 방법으로 iTIP 메시지를 보내려합니다. 이것은 또한 이메일 메시지를 구성하는 방법에 영향을 미칩니다. https://tools.ietf.org/html/rfc6047

+0

더 자세하게 설명해 주시겠습니까? 내가 본 주요한 것은 주최자가 이벤트 취소 또는 업데이트를 위해 참석해야한다는 것입니다. 그게 내가 잃어버린거나 다른 것들이있는 유일한 것입니까? – user856232