문제

ICalendar(.ics) 파일을 생성 중입니다.

UID 및 SEQUENCE 필드를 사용하여 Google Calendar 및 Windows Calendar의 기존 이벤트를 업데이트할 수 있습니다. 하지만 MS Outlook 2007에서는 - 두 번째 이벤트만 생성합니다.

Outlook에서 작동하도록 하려면 어떻게 해야 합니까?

감사해요

도움이 되었습니까?

해결책

몇 가지 테스트를 계속하여 이제 Outlook에서 .cs 파일을 기반으로 이벤트를 업데이트하고 취소하도록 했습니다.

실제로 Outlook은 다음에 정의된 규칙에 응답하는 것 같습니다. RFC 2446

요약하면 다음을 지정해야 합니다.

METHOD:REQUEST 그리고 ORGANIZER:xxxxxxxx

게다가 UID:그리고 SEQUENCE:

취소하려면 지정해야 합니다. METHOD:CANCEL

요청/업데이트 예시

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//SYFADIS//PORTAIL FORMATION//FR
METHOD:REQUEST
BEGIN:VEVENT
UID:TS_229377_MS_262145@syfadis.com
SEQUENCE:5
DTSTAMP:20081106T154911Z
ORGANIZER:catalog@syfadis.com
DTSTART:20081113T164907
DTEND:20081115T170000
SUMMARY:TestTraining
STATUS:CONFIRMED
END:VEVENT
END:VCALENDAR

취소 예;

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//SYFADIS//PORTAIL FORMATION//FR
METHOD:CANCEL
BEGIN:VEVENT
UID:TS_229377_MS_262145@syfadis.com
SEQUENCE:7
DTSTAMP:20081106T154916Z
ORGANIZER:catalog@syfadis.com
DTSTART:20081113T164907
SUMMARY:TestTraining
STATUS:CANCELLED
END:VEVENT
END:VCALENDAR

다른 팁

나는 질문자 Tom Carter를 붙잡았습니다.그는 요청과 취소가 뒤따르는 실제 사례를 가지고 있었습니다.내가 잘못한 것은 내 METHOD가 외부에 있어야 할 VEVENT 내부에 있다는 것입니다.그래서 여기에 작업 업데이트가 있습니다!

원래의:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//WA//FRWEB//EN
METHOD:REQUEST
BEGIN:VEVENT
UID:FRICAL201
SEQUENCE:0
DTSTAMP:20081108T151809Z
ORGANIZER:donotreply@test.com
DTSTART:20081109T121200
SUMMARY:11/9/2008 12:12:00 PM TRIP FROM JFK AIRPORT (JFK)
LOCATION:JFK AIRPORT (JFK)
END:VEVENT
END:VCALENDAR

업데이트:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//WA//FRWEB//EN
METHOD:REQUEST
BEGIN:VEVENT
UID:FRICAL201
SEQUENCE:1
DTSTAMP:20081108T161809Z
ORGANIZER:donotreply@test.com
DTSTART:20081109T121300
SUMMARY:11/9/2008 12:13:00 PM TRIP FROM JFK AIRPORT (JFK)
LOCATION:JFK AIRPORT (JFK)
END:VEVENT
END:VCALENDAR

내가 한 일은 요청 메소드(올바른 위치에!)와 구성자를 추가한 것뿐입니다.

나는 Outlook 2003을 사용하고 있으며(게시물을 읽은 결과 2007도 같은 방식으로 동작하는 것으로 나타남) ics 파일의 명시적 파일 가져오기 동작과 ics 파일을 두 번 클릭할 때 암시적 가져오기 동작을 명확하게 구별해야 합니다. '.

Outlook 메뉴에서 파일/가져오기 및 내보내기...Outlook은 파일에 있는 만큼의 VEVENT 항목을 로드하며 UID:, SEQUENCE:는 변경되지 않습니다.또는 DTSTAMP:값이 이를 변경합니다. 즉, 데이터를 변경하고 다시 가져오면 중복된 항목 세트를 얻게 됩니다.

ics 파일을 두 번 클릭하면 첫 번째 VEVENT 항목만 처리됩니다.그러나 UID를 인식하며, DTSTAMP가 다음과 같은 경우:나중에(SEQUENCE는 동일할 수 있지만 더 낮을 수 없음) 메시지가 표시되고 캘린더의 이벤트가 업데이트됩니다.

BEGIN:VCALENDAR
VERSION:2.0
PRODID:www.membership-services.net
METHOD:REQUEST
BEGIN:VEVENT
DTSTART:20090126T210000
DTEND:20090126T220000
SUMMARY:Avondale - Thameside Away Game vs Croydon
LOCATION:Whitgift School
DESCRIPTION:http://maps.google.co.uk/maps?f=q&hl=en&geocode=&q=CR2+6YT 
UID:AWPC_8
SEQUENCE:0
DTSTAMP:20090123T112600
END:VEVENT
BEGIN:VEVENT
DTSTART:20090202T213000
DTEND:20090202T223000
SUMMARY:Avondale - Thameside Home Game vs Orcas
LOCATION:Putney
DESCRIPTION:http://maps.google.co.uk/maps?f=q&source=s_q&hl=en&ie=UTF8&ll=51.4635,-0.2285&spn=0.005,0.009613&t=h&z=17&iwloc=lyrftr:w2t.90,0x48760f04a04b1801:0x49ebf12503a5d5a9,51.463459,-0.228674 
UID:AWPC_10
SEQUENCE:0
DTSTAMP:20090123T112600
END:VEVENT
END:VCALENDAR

이것을 ICS 파일에 추가하세요

X-WR-RELCALID:MyCal123   

여기서 MyCal123은 캘린더의 고유 식별자입니다.

ICS 파일에 이 줄을 추가하면 전체 일정이 업데이트됩니다(Outlook에 메시지가 표시된 후).DTSTAMP, SEQUENCE 또는 ORGANIZER를 변경할 필요도 없으며 METHOD:PUBLISH는 업데이트에 적합합니다.이벤트 세부정보를 업데이트하고 ICS를 두 번 클릭하면 캘린더가 업데이트됩니다.달력을 게시하고 사람들이 볼 수 있도록 URL을 제공한 경우에도 이 방법은 제대로 작동합니다.약 2분 후에 새로 고침을 누르면 업데이트도 받게 됩니다.

이 점을 지적한 David Bjørnhart에게 감사드립니다. ICal 가져오기는 ics 파일을 열 때 새 달력을 생성합니다.

저는 Entourage를 사용하고 있으므로 이것이 여러분이 보고 있는 동작과 정확히 일치하지 않을 수도 있지만 도움이 되기를 바랍니다.

귀하의 회신에서 iCalendar를 사용하면 Entourage는 데이터를 가져오지도 않습니다.정상으로 알려진 파일을 사용하여 가져온 후 성공적으로 업데이트했습니다.두 파일을 비교하면 유일한 구조적 차이점은 다음과 같습니다.

  • 내 알려진 좋은 제품에는 VERSION 요소
  • 내 알려진 좋은 제품에는 PRODID 요소
  • 내 알려진 좋은 제품에는 STATUS 요소
  • 내 알려진 좋은 제품에는 SEQUENCE 요소

개방형 표준에 대한 Microsoft의 지원은 지연되는 경향이 있으므로 VERSION 정보.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top