ما هو ملف ICS؟
تعد المواصفات الأساسية لتقويم وجدولة الإنترنت (iCalendar) أحد معايير الإنترنت (RFC 2445) لتبادل ونشر أحداث التقويم والجدولة. تنسيق iCalendar قابل للتشغيل البيني ، وبالتالي يضمن تبادل معلومات التقويم بين المستخدمين الذين لديهم تطبيقات بريد إلكتروني مختلفة. يقوم iCalendar بتنسيق بيانات الإدخال كملحقات بريد إنترنت متعدد الأغراض (MIME) ويسهل تبادل الكائن عبر بروتوكولات النقل المختلفة. يمكن أن تكون بروتوكولات النقل هذه عبارة عن SMTP ، و HTTP ، والاتصال غير المتزامن من نقطة إلى نقطة ، والنقل المادي عبر الشبكة القائم على الوسائط.
يسمح iCalendar للمستخدمين بمشاركة الأحداث ، والمهام المرتبطة بالتاريخ / الوقت ، ومعلومات التوفر / الانشغال عبر رسائل البريد الإلكتروني للمستخدمين الآخرين الذين يمكنهم الرد. يتم تخزين ملفات iCalendar باستخدام اللاحقات “.ics” “.iCalendar” أو “.ifb” بنوع MIME من “النص / التقويم”. يتم الاحتفاظ بـ iCalendar للاعتماد على الذات دون أي تبعية لبروتوكول النقل. يمكن لخوادم الويب (مع بروتوكول HTTP) نقل معلومات iCalendar ويمكن أن تحتوي صفحات الويب على بيانات iCalendar في شكل مضمن باستخدام iCalendar.
تاريخ موجز لتنسيق ملف ICS
في عام 1998 ، حدد فريق هندسة الإنترنت (IETF) iCalendar كمعيار (RFC 2445). تم توثيق المعيار من قبل فرانك داوسون (شركة لوتس نوتس) وديريك ستينرسون (مايكروسوفت). في عام 2009 ، تم تنقيح المعيار مرة أخرى بواسطة Bernard Desruisseaux (Oracle) كـ RFC 5545. هذه المرة تمت إضافة بعض الميزات الجديدة وتم إهمال بعض الميزات القديمة. في عام 2016 ، تم إصدار RFC 7986 وزيادته إلى iCalendar RFC الأصلي. أضاف RFC 7986 خصائص جديدة إلى كائن VCALENDAR الرئيسي كما تم تقديم ميزات داعمة جديدة لأنظمة المؤتمرات.
تنسيق ملف ICS
نوع MIME المستخدم بواسطة بيانات iCalendar هو “نص / تقويم”. مجموعة الأحرف الافتراضية لـ iCalendar هي UTF-8 ، ولكن من خلال توفير معلمات في MIME ، يمكن استخدام مجموعة أحرف مختلفة. يحتوي ملف iCalendar على أقسام ، من بين هذه الأقسام ، “VCALENDAR” ، هو القسم العام الذي يضم جميع الأقسام الأخرى. يحدد قسم VEVENT الأحداث ، ويسرد VTODO جميع عناصر المهام ، ويحتوي VJOURNAL على إدخالات دفتر اليومية ، ويحدد VTIMEZONE معلومات المنطقة الزمنية. يسمح بأقسام متعددة من نفس الفئة. للعديد من الأحداث ، يمكن أن توجد أقسام VEVENT متعددة في ملف iCalendar.
خطوط المحتوى
يتم ترتيب كائنات iCalendar في سطور مميزة من “سطور المحتوى”. في تنسيق الملف هذا ، ينهي تسلسل CRLF سطرًا بينما يقتصر طول السطر على 75 ثماني بتات باستثناء فاصل الأسطر. يمكن أن يمتد عنصر البيانات الطويل إلى العديد من الأسطر.
فواصل القائمة والحقول
تحدد الخصائص والمعلمات قائمة القيم المفصولة بحرف COMMA. يتم استخدام السلاسل المقتبسة لقيم المعلمات المستندة إلى URI. يمكن إنشاء قائمة المعلمات من خلال قيمة الخاصية. يجب فصل كل معلمة خاصية في هذه القائمة بواسطة فاصلة منقوطة.
في قائمة القيم ، يقوم SEMICOLON بعزل معلمات الخاصية وقيم خصائص منفصلة لـ COMMA. المثال الوارد أدناه:
ATTENDEE;RSVP#TRUE;ROLE#REQ- contestant:mailto:
name@example.com
DATE;VALUE#DATE:20170304,20180504,2015704,201270904
قيم متعددة
يمكن أن تحتوي بعض الخصائص على قيم متعددة. إن إنشاء سطر محتوى جديد باستخدام اسم الخاصية ببساطة هو القاعدة الأساسية للخصائص متعددة القيم. ومع ذلك ، بالنسبة لقيمة واحدة ذات اختلافات لغة متعددة ، يجب ألا تستخدم خصائص متعددة القيم.
محتوى ثنائي
ضمن كائن iCalendar ، يمكن أن تشير قيمة الخاصية إلى بيانات محتوى ثنائي تم وضعها في كيان MIME خارجي باستخدام URI. يمكن استخدام المحتوى الثنائي المضمن في مواقف خاصة مع معلمة “ENCODING” ، حيث يحتاج التطبيق إلى التعبير عن كائن iCalendar ككيان منفرد. يوضح المثال التالي خاصية “ATTACH” بمرجع URI:
إرفاق: https://products.conholdate.app/viewer/view/KDDURXKkLk/fileformat.doc
مجموعة الأحرف
على الرغم من أن مخطط مجموعة الأحرف الافتراضي لـ iCalendar هو UTF-8 ، إلا أنه لم يتم تحديد معلمة خاصية لتعريف مجموعة أحرف قيمة الخاصية. في نقل MIME يجب استخدام معلمة “charset” لمجموعة الأحرف الموجودة.