سؤال

أقوم بإنشاء ملفات ICalendar (.ics).

باستخدام حقول UID وSEQUENCE يمكنني تحديث الأحداث الموجودة في تقويم Google وفي تقويم Windows لكن لا في MS Outlook 2007 - يقوم فقط بإنشاء حدث ثانٍ

كيف يمكنني جعلهم يعملون في Outlook؟

شكرًا

توم

هل كانت مفيدة؟

المحلول

لقد واصلت إجراء بعض الاختبارات وتمكنت الآن من جعل Outlook يقوم بتحديث الأحداث وإلغائها استنادًا إلى ملف ‎.cs.

يبدو أن Outlook في الواقع يستجيب للقواعد المحددة في آر إف سي 2446

باختصار عليك أن تحدد

METHOD:REQUEST و ORGANIZER:xxxxxxxx

بالإضافة إلى UIDSEQUENCE:

للإلغاء عليك أن تحدد 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

نصائح أخرى

حصلت على عقد من توم كارتر، السائل.كان لديه مثال عملي مع طلب يتبعه إلغاء.ما أخطأت فيه هو أن طريقتي كانت داخل 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:أو دستامب:تُغير القيم هذا، أي إذا قمت بتغيير أي بيانات وأعدت استيرادها، فستحصل على مجموعة مكررة من الإدخالات.

إذا قمت بالنقر المزدوج على ملف 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 ليتمكن الأشخاص من مشاهدته.إنهم يحتاجون فقط إلى الضغط على التحديث بعد حوالي دقيقتين وسيحصلون أيضًا على التحديث.

شكرًا لديفيد بيورنهارت على الإشارة إلى ذلك: يقوم استيراد Ical بإنشاء تقويم جديد عند فتح ملف ics

أنا أستخدم Entourage، لذلك قد لا يتطابق هذا تمامًا مع السلوك الذي تراه، ولكن آمل أن يكون مفيدًا.

باستخدام iCalendar من ردك، لن يقوم Entourage حتى باستيراد البيانات.باستخدام ملف معروف جيدًا، قمت باستيراده ثم تحديثه بنجاح.وبمقارنة الملفين، فإن الاختلافات الهيكلية الوحيدة هي كما يلي:

  • بلدي الجيد المعروف ليس لديه VERSION عنصر
  • بلدي الجيد المعروف ليس لديه PRODID عنصر
  • بلدي الجيد المعروف ليس لديه STATUS عنصر
  • بلدي الجيد المعروف ليس لديه SEQUENCE عنصر

نظرًا لأن دعم Microsoft للمعايير المفتوحة يميل إلى التأخر، فإنني أقترح المحاولة بدون VERSION معلومات.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top