2008-12-10 7 views
13

Có cách nào để tôi xóa các mục khỏi lịch bằng cách sử dụng nhập iCalendar không?Xóa sự kiện lịch sử dụng nhập tệp iCalendar (sự cố Outlook 2003)?

Tôi biết rằng có một PHƯƠNG PHÁP: CANCEL, tuy nhiên khi tôi thử nó, nó không làm bất cứ điều gì với sự kiện lịch.

Đây là những gì có trong tệp iCalendar của tôi. Khi tôi cố gắng nhập nó vào Outlook, nó chỉ thêm những sự kiện này.

BEGIN:VCALENDAR 
VERSION:2.0 
PRODID:-//DDay.iCal//NONSGML ddaysoftware.com//EN 
METHOD:CANCEL 
BEGIN:VEVENT 
CREATED:20081210T155315Z 
DESCRIPTION: 
DTEND:20081213T093000 
DTSTAMP:20081210T155315Z 
DTSTART:20081213T093000 
LOCATION: 
ORGANIZER:MAILTO:[email protected] 
SEQUENCE:1 
SUMMARY:From FCS 13th 
UID:20367b86-2123-4930-87ef-5c2a6626bd9f 
BEGIN:VALARM 
ACTION:DISPLAY 
SUMMARY: Event 13th 
TRIGGER:-PT30M 
END:VALARM 
END:VEVENT 
BEGIN:VEVENT 
CREATED:20081210T155315Z 
DESCRIPTION: 
DTEND:20081211T093000 
DTSTAMP:20081210T155315Z 
DTSTART:20081211T093000 
LOCATION:7 West 
ORGANIZER:MAILTO:[email protected] 
SEQUENCE:1 
SUMMARY:Event 11th 
UID:f212ab15-86c3-46c8-8592-af0716a40ea2 
BEGIN:VALARM 
ACTION:DISPLAY 
SUMMARY:Event on 11th 
TRIGGER:-PT30M 
END:VALARM 
END:VEVENT  
END:VCALENDAR 

Trả lời

11

Tôi quên để thêm STATUS:CANCELLED

Bây giờ điều này sẽ hủy mục theo http://en.wikipedia.org/wiki/ICalendar#Events_.28VEVENT.29

này hoạt động trong Google Calendar nhưng không phải trong Outlook 2003. Outlook vẫn tạo ra các mục trùng lặp.

Dưới đây là các sự kiện "hủy" đã sửa đổi với 'STATUS: CANCELED'. (Chính tả Anh với hai L's)

BEGIN:VCALENDAR 
VERSION:2.0 
PRODID:-//DDay.iCal//NONSGML ddaysoftware.com//EN 
X-WR-RELCALID:928C8448-048A-4aa2-BE27-A920773AF3DC 
METHOD:CANCEL 
BEGIN:VEVENT 
CREATED:20081210T210344Z 
DESCRIPTION: 
DTEND:20081213T093000 
DTSTAMP:20081210T210344Z 
DTSTART:20081213T093000 
LOCATION: 
ORGANIZER:MAILTO:[email protected] 
SEQUENCE:1 
STATUS:CANCELLED 
SUMMARY:Event to export 1 
UID:20367b86-2123-4930-87ef-5c2a6626bd9f 
BEGIN:VALARM 
ACTION:DISPLAY 
SUMMARY:Event to export 1 
TRIGGER:-PT30M 
END:VALARM 
END:VEVENT 
BEGIN:VEVENT 
CREATED:20081210T210344Z 
DESCRIPTION: 
DTEND:20081211T093000 
DTSTAMP:20081210T210344Z 
DTSTART:20081211T093000 
LOCATION:7 West 
ORGANIZER:MAILTO:[email protected] 
SEQUENCE:1 
STATUS:CANCELLED 
SUMMARY:Event to export 2 
UID:f212ab15-86c3-46c8-8592-af0716a40ea2 
BEGIN:VALARM 
ACTION:DISPLAY 
SUMMARY:Event to export 2 
TRIGGER:-PT30M 
END:VALARM 
END:VEVENT 
END:VCALENDAR 
+1

FYI Google là trường hợp nhạy cảm cho hủy bỏ; STATUS: Hủy không thành công âm thầm. –

1

tôi có thể cần phải thiết lập X-WR-RELCALID thẻ, theo này http://www.oesf.org/forum/index.php?act=Print&client=printer&f=63&t=2650

Nó khẳng định: "Trước khi đồng bộ lần đầu tiên, bạn phải thêm một thẻ X-WR-RELCALID vào tệp mycalendar.ics hoặc nếu không iCal sẽ thay đổi số UID của tất cả các mục nhập, gây ra các bản sao. "

Tuy nhiên tôi không thể tìm thấy bất kỳ tài liệu trên thẻ RELCALID trong giao thức http://tools.ietf.org/html/rfc2446

Khi tôi đặt X-WR-RELCALID, Outlook vẫn tạo ra sự kiện trùng lặp thay vì loại bỏ những sự kiện.

Có tài liệu nào về X-WR-RELCALID không? Tôi không thể tìm thấy nó.

1

Tôi không biết điều này có hữu ích hay không, hãy thử đặt SEQUENCE: 2

0

Outlook tạo sự kiện trùng lặp nếu bạn thay đổi thuộc tính UID. Bạn phải tạo một sự kiện khác có cùng UID.

1

Đối với tôi, nó hoạt động bằng cách đặt thẻ X-WR-RELCALID trong tiêu đề của tệp ics. Sau đó Outlook nhận ra sự kiện là như nhau.

+0

bạn có chọn ngẫu nhiên không? – bvdb

5

Tôi đã vật lộn với điều này một thời gian.

Như một vài người khác đã đề cập đến bạn phải bao gồm:

PHƯƠNG PHÁP: CANCEL

TÌNH TRẠNG: HỦY BỎ

dòng của VEVENT. UID phải giống với sự kiện gốc VÀ SEQUENCE: số phải là số thứ tự CURRENT! (bạn không cần phải thêm 1 từ số thứ tự cuối cùng khi hủy sự kiện không được tính là bản cập nhật).

Tôi gặp sự cố khi tôi giả định rằng việc hủy được tính là bản cập nhật và do đó tăng số thứ tự của tôi, nhưng bạn không phải làm như vậy!

3

Câu trả lời này dành cho nguồn cấp dữ liệu URL iCal không phải để nhập tệp iCal!

Tôi đã xem xét điều này một thời gian và vì câu trả lời được đưa ra không thực sự giải quyết vấn đề cho triển vọng, tôi nghĩ tôi sẽ đăng những gì tôi đã tìm được để làm việc cho Outlook, iCal và Lịch Google.

Bạn chỉ đơn giản là không gửi sự kiện, nếu sự kiện này hoàn toàn không còn trong nguồn cấp dữ liệu nữa thì Outlook, Lịch Google và iCal (từ thử nghiệm của tôi) tất cả chỉ xóa sự kiện như thể nó chưa từng tồn tại. Vì vậy, nếu sự kiện đã bị hủy chỉ giả vờ nó không bao giờ tồn tại và khi lịch địa phương đồng bộ hóa chúng sẽ hiển thị các sự kiện được cấp rõ ràng cho chúng trong nguồn cấp dữ liệu.

+0

Tôi không nghĩ rằng điều này sẽ làm việc. Nếu tôi có 10 sự kiện trong lần đồng bộ hóa đầu tiên và trong lần đồng bộ hóa tiếp theo, một trong các sự kiện sẽ bị xóa (không có trong tệp ics). Sự kiện bị thiếu vẫn tồn tại trong iCal hoặc bất kỳ lịch nào khác (google, v.v.) và không bị xóa ngay cả khi đồng bộ hóa mới không có sự kiện đó. – Kush

+1

@Kush Bạn nói đúng. Tôi đã thực hiện một sai lầm và đăng câu trả lời của tôi ở đây nhưng câu trả lời của tôi không có nghĩa là để nhập tệp. Nó có nghĩa là để nhập lịch từ một URL. ví dụ. trong Lịch Google thêm lịch theo URL, không nhập từ tệp. Đây là một sai lầm về phía tôi, hy vọng câu trả lời của tôi không lãng phí quá nhiều thời gian của bạn. – keyneom

1

Điều này có thể là một doanh nghiệp đau đớn và khó lường, và có thể phụ thuộc vào phiên bản Outlook. Tôi đã hủy sự kiện làm việc với Outlook 2010 (v14). Tôi gửi icalendar của tôi dưới dạng tin nhắn một phần, nhập văn bản/lịch, như được thảo luận trong chuỗi this. Như đã đề cập trong các câu trả lời khác, tôi có method = CANCEL trong kiểu MIME, và một lần nữa trong icalendar.

Bước quan trọng đối với tôi là thêm DTSTART vào sự kiện. Nếu không có trường này, thông báo sẽ không được hiển thị dưới dạng hủy, không có gì trong ngăn xem trước và lịch được hiển thị dưới dạng tệp đính kèm với tên tệp "không được hỗ trợ lịch message.ics". Nhưng bạn có thể đặt bất kỳ ngày nào bạn thích trong lĩnh vực này! DTEND không quan trọng. SEQUENCE có thể giống hoặc lớn hơn. DTSTAMP không quan trọng, nhưng nếu có, phải sau khi DTSTAMP được gửi với lời mời ban đầu, nếu không thì văn bản "không hoạt động" xuất hiện thay vì nút "xóa khỏi lịch".

Đây là một hủy làm việc tối thiểu ...

BEGIN:VCALENDAR 
VERSION:2.0 
PRODID:-//www.notilus.com//Dimo Gestion Notilus//FR 
CALSCALE:GREGORIAN 
METHOD:CANCEL 
BEGIN:VEVENT 
DTSTART:20140625T123000Z 
SEQUENCE:1 
STATUS:CANCELLED 
UID:Kerry 
END:VEVENT 
END:VCALENDAR