ไฟล์ ICS คืออะไร??
Internet Calendaring and Scheduling Core Object Specification (iCalendar) เป็นมาตรฐานอินเทอร์เน็ต (RFC 2445) สำหรับแลกเปลี่ยนและปรับใช้กิจกรรมและการจัดกำหนดการในปฏิทิน รูปแบบ iCalendar ทำงานร่วมกันได้ ดังนั้นจึงรับประกันการแลกเปลี่ยนข้อมูลปฏิทินระหว่างผู้ใช้ที่มีแอปพลิเคชันอีเมลต่างกัน iCalendar จัดรูปแบบข้อมูลที่ป้อนเป็น Multipurpose Internet Mail Extensions (MIME) และอำนวยความสะดวกในการแลกเปลี่ยนวัตถุผ่านโปรโตคอลการขนส่งที่แตกต่างกัน โปรโตคอลการขนส่งเหล่านี้สามารถเป็น SMTP, HTTP, การสื่อสารแบบอะซิงโครนัสแบบจุดต่อจุด และการขนส่งเครือข่ายตามสื่อทางกายภาพ
iCalendar ช่วยให้ผู้ใช้สามารถแชร์กิจกรรม วันที่/เวลา งานที่ขึ้นกับวันที่/เวลา และข้อมูลว่าง/ไม่ว่างผ่านทางอีเมลไปยังผู้ใช้คนอื่นๆ ที่สามารถตอบกลับได้ ไฟล์ iCalendar จัดเก็บโดยใช้ส่วนต่อท้าย “.ics” “.iCalendar” หรือ “.ifb” โดยมีประเภท MIME เป็น “ข้อความ/ปฏิทิน” iCalendar ได้รับการดูแลให้พึ่งพาตนเองโดยไม่ต้องพึ่งพาโปรโตคอลการขนส่ง เว็บเซิร์ฟเวอร์ (ที่มีโปรโตคอล HTTP) สามารถส่งข้อมูล iCalendar และเว็บเพจสามารถมีข้อมูล iCalendar ในรูปแบบฝังโดยใช้ iCalendar
ประวัติโดยย่อของรูปแบบไฟล์ ICS
ในปี 1998 Internet Engineering Task Force (IETF) ได้กำหนดให้ iCalendar เป็นมาตรฐาน (RFC 2445) มาตรฐานได้รับการจัดทำเป็นเอกสารโดย Frank Dawson (Lotus Notes Corporation) และ Derik Stenerson (Microsoft) ในปี 2009 Bernard Desruisseaux (Oracle) ได้ปรับปรุงมาตรฐานอีกครั้งเป็น RFC 5545 ครั้งนี้มีการเพิ่มคุณสมบัติใหม่และเลิกใช้งานคุณสมบัติที่ล้าสมัยบางส่วน ในปี 2559 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 อ็อคเต็ต ไม่รวมตัวแบ่งบรรทัด รายการข้อมูลที่ยาวสามารถขยายไปยังหลายบรรทัดได้
รายการและตัวคั่นฟิลด์
คุณสมบัติและพารามิเตอร์ระบุรายการของค่าที่คั่นด้วยอักขระเครื่องหมายจุลภาค สตริงที่ยกมาใช้สำหรับค่าพารามิเตอร์ตาม URI รายการของพารามิเตอร์สามารถสร้างได้ด้วยค่าคุณสมบัติ พารามิเตอร์คุณสมบัติแต่ละรายการในรายการนี้ต้องคั่นด้วย SEMICOLON
ในรายการค่า SEMICOLON จะแยกพารามิเตอร์คุณสมบัติและค่าคุณสมบัติที่แยกจากกันโดยใช้เครื่องหมายจุลภาค ตัวอย่างได้รับด้านล่าง:
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” ต้องใช้สำหรับ charset ที่มีอยู่