2012-02-09 24 views
6

Tôi đang làm việc trên tính năng "Thêm vào Lịch" từ webpart của tôi hơn (được tạo bằng cách sử dụng VS2010).Nhập ICal tạo lịch mới Khi mở tệp ics

Tôi đã xuất tệp ICS theo chương trình mà không gặp sự cố nào.

Nhưng vấn đề là khi tôi cố gắng mở tệp ICS từ OUTLOOK.

Nếu file ICS có hẹn duy nhất, không có vấn đề ....

Nếu file ICS có nhiều cuộc hẹn, vấn đề đi ...

Khi tôi tập >> Mở >> Nhập >> Chọn ics tập tin, nó hoạt động tốt

Nhưng nếu tôi cố gắng chỉ cần nhấp vào tập tin ICS tăng gấp đôi, nó tạo ra một lịch NEW thay vì cập nhật lịch mặc định hiện tại của tôi

Bất kỳ đề xuất ...?

Trả lời

3

Xem this SO post gợi ý rằng Outlook sẽ chỉ hỗ trợ nhiều sự kiện bằng ICS dưới dạng feed or subscription - không trực tiếp dưới dạng một lần nhập ICS.

+0

nhờ sliverninja, vì vậy bạn có nghĩa là chúng ta không thể đạt được chức năng này ??? – user1199808

+0

Bạn cần triển khai các giải pháp thay thế - viết từng sự kiện lịch vào các tệp ICS riêng biệt hoặc sử dụng nguồn cấp dữ liệu đăng ký ICS. Đây là giới hạn hỗ trợ của Outlook cho ICS với nhiều sự kiện. – SliverNinja

+0

bạn có thể cho tôi một ví dụ không? im bằng cách sử dụng phản hồi tiêu đề http để xuất tệp ics. nó chỉ hỗ trợ nhập tệp một lần ... HEre là mã mẫu của tôi .. void riêng WriteCalendar (dữ liệu chuỗi) { HttpResponse resp = Page.Response; res.Clear(); res.Buffer = true; res.ContentType = "text/calendar"; res.ContentEncoding = Encoding.UTF8; res.Charset = "utf-8"; res.AddHeader ("Content-Disposition", "attachment; filename = \" Events.ics \ ""); res.Write (dữ liệu); res.End(); } – user1199808

14

Chúng tôi đã gặp sự cố tương tự và nhận thấy rằng nếu tệp ICS có trường X-WR-CALNAME trong đó, ngay cả khi trống, thì Outlook sẽ tự động tạo lịch mới. Nếu nó KHÔNG có trường này trong nó, thì Outlook đã nhập nó.

+0

Đây là một nhận xét tuyệt vời! – whitehat101

+2

chính xác những gì tôi cần.Loại bỏ X-WR-CALNAME đã làm việc này cho tôi. – brianm

+0

Chính xác vấn đề của chúng ta là gì. – Aravona

3

Tôi đã gặp vấn đề tương tự. Khi nhấp vào một triển vọng tập tin .ics sẽ tạo một lịch mới thay vì cập nhật lịch hiện có.

tôi giải quyết điều này bằng cách thêm mô tả này trong file .ics:

X-WR-RELCALID:XXXXXX 

nơi XXXXXX là một giá trị duy nhất cho lịch. Sau đó Outlook sẽ yêu cầu bạn thay thế lịch, thay vì thêm một lịch mới.

Bộ mô tả đã được tìm thấy trên http://en.wikipedia.org/wiki/ICalendar

+0

X-WR-RELCALID: XXXXXX - đây phải là câu trả lời cho câu hỏi (và một vài câu hỏi liên quan khác). Bằng cách thêm dòng này vào tệp ics của tôi, toàn bộ lịch được cập nhật (sau dấu nhắc trong Outlook). Bạn thậm chí không cần phải thay đổi DTSTAMP hoặc SEQUENCE hoặc ORGANIZER và PHƯƠNG PHÁP: PUBLISH là tốt cho việc cập nhật. Chỉ cần cập nhật chi tiết sự kiện và lịch sẽ cập nhật. Lưu ý rằng cũng hoạt động tốt nếu bạn đã xuất bản lịch và cung cấp một URL để mọi người xem nó. Họ chỉ cần nhấn làm mới sau khoảng 2 phút và họ cũng sẽ nhận được bản cập nhật. –

+0

Tôi có thể tìm id của lịch để thay thế XXXXXX ở đâu? tnx – masciugo

Các vấn đề liên quan