iCalendar

iCal Jellemzők
Hosszabbítások .ics, .ifb, .iCal, .iFBf,.icalendar
MIME típus text/calendar
PUID fmt / 388
Formátum típusa naptárszerializálás
Leírás Nyitott formátum

Az iCalendar (rövidítve iCal néven is ) egy adatformátum, amelyet az RFC  5545 (és későbbi módosításai) tárgyalnak és javasolnak a naptár adatcseréjére. Különösen az előfizetési naptár megosztására használják a CalDAV és a Web Calendar Access Protocol protokollokon keresztül .

Az iCalendar lehetővé teszi a felhasználók számára, hogy küldjenek egyeztetési kéréseket, és e-mailben továbbítsák azokat más felhasználóknak . Az e-mail címzettek, akik rendelkeznek az iCalendar formátumot támogató szoftverrel, könnyen válaszolhatnak a feladónak, vagy más időpontot javasolhatnak egy találkozóra.

Számos szoftver valósítja meg / támogatja, például az iCal az Apple-től , a Chandler , a Lotus Notes , a Zimbra , a ScheduleWorld , a SOGo , a KOrganizer , a Mozilla Lightning , az Evolution , a Windows Naptár és egy kiterjesztésen keresztül a Microsoft Outlook . Az online Google Naptár alkalmazás is ezt a szabványt használja. A testreszabható portálokban, például a Netvibesben vagy a Posh-ban (a GNU GPL 3 alatt) használt widgetek szintén támogatják ezt a formátumot.

Az ICalendar adatok cseréje általában hagyományos e-mail használatával történik, de a javasolt szabványt úgy tervezték, hogy független legyen a szállítási protokolltól. Például meg lehet osztani és szerkeszteni egy WebDAV szerver segítségével is . Egyszerű webkiszolgálókat (amelyek csak HTTP protokollt kínálnak) gyakran használnak az eseményekkel kapcsolatos iCalendar adatok terjesztésére és az egyén munkaidejének közzétételére. A webes eseményhelyek gyakran beágyazzák az iCalendar adatait a weboldalukra a hCalendar protokoll használatával , az iCalendar 1: 1 arányú képviseletével, de XHTML-ben írva .

Alapvető specifikációk

Az iCalendar specifikáció az Internet Engineering Task Force Calendaring and Scheduling Working Group munkájának eredménye (elnöke: Anik Ganguly, az Open Text Inc. munkatársa) . Frank Dawson (a Lotus Software és Derik Stenerson, a Microsoft) írta . Az iCalendar nagymértékben a vCalendar, az Internet Mail Consortium (IMC) legújabb ipari specifikációján alapul . Az iCalendar kiadása után az IMC azt mondta, hogy „reméli, hogy az összes vCalendar fejlesztő kihasználja ezen új nyílt szabványok előnyeit, és szoftverét kompatibilisvé teszi az vCalendar 1.0 és az iCalendar programokkal. "

Az ICalendar adatai tartalmazzák a MIME típusú szöveget / naptárt . Az " .ics  " kiterjesztés  egy olyan fájl jelölésére szolgál, amely tetszőleges naptári vagy ütemezési információkat tartalmaz, összhangban az ilyen típusú MIME-tartalommal. Az ".ifb" fájlkiterjesztés egy olyan fájl kijelölésére szolgál, amely szabad / foglalt információkat tartalmaz, összhangban ezzel a MIME-típussal. Az "iCal" fájltípus az Apple Macintosh operációs rendszerek számára készült, hogy dátum- és ütemezési információkat tartalmazó fájlt jelöljön. Az "iFBf" fájltípust az Apple Macintosh operációs rendszerek használják a szabad / foglalt információkat tartalmazó fájl jelölésére.

Az összes adathoz használt karakterkészletet nem maga a formátum határozza meg, hanem ellenkező jelzés hiányában (szállítási protokoll által, vagy egy fájlrendszer metaadatként tartja meg), l Az iCalendar objektum teljes adatai (beleértve az ábrázolási szintaxist is) az UTF-8 kódolású .

Az alkalmazott formátum hasonló a MIME fejléc formátumához (amelyet az SMTP protokoll használ az e-mailekhez, vagy a HTTP protokoll és sok levezetett protokoll), de némi eltéréssel. Csakúgy, mint a MIME kódolásnál, minden tulajdonság külön sorban, azonosítóval kezdődik (betűkből, számokból vagy "-" jelekből áll). A szóközzel kezdődő sorok az előző sorban megkezdett tulajdonság folytatását képezik (a sor elején lévő szóközöket és az előző sortörést figyelmen kívül hagyják); a sorok folytatása általában azért van előírva, mert a formátum soronként legfeljebb 75 karakter hosszúságot ír elő (a sor végén lévő vezérlő karaktereket nem számítva). Általában nincsenek üres sorok, a sor végén lévő szóközök jelentéktelenek, csakúgy, mint egy másik szóköz után.

Minden tulajdonság a nevéből, a kettőspontból és az értékekből áll sorrendben (vagy több vesszővel elválasztott értékből, nem szignifikáns sorrendben). Időnként tartalmazhat egy vagy több opcionális paramétert (lehetővé téve az adott érték pontosabb értelmezését, vagy a kódolás módjának meghatározását, ha nem szöveges, vagy alternatív ábrázolást nyújt, esetleg külső, URI hivatkozással). „Paraméter = érték”, pontosvesszővel elválasztva egymástól és a tulajdonság nevétől; ha egy paraméter értéke vesszőt, pontosvesszőt vagy kettőspontot tartalmaz (pl. URI), akkor azt "tipizált kettős idézőjelbe" kell foglalni).

Egyes tulajdonságokat olyan típussal definiálnak, amely szabványos formátumot ír elő az értékük számára, beleértve a dátumokat és az URI-kat. Amikor egy tulajdonság típusa több értéket határozatlan számban engedélyez, vesszőkkel választják el őket (nem jelentős sorrendben): ez egyenértékű azzal, hogy minden egyes értékhez hozzáadunk egy másik külön homonim tulajdonságot.

A tulajdonságok általában rendezetlenek, de a MIME-tól eltérően pontosabban felépíthetők résztulajdonságokra,

A tulajdonságértékek kifejezetten beírhatók (különben az alapértelmezett típusuk szöveges), és kódolható, ha a szöveges reprezentáció nem elegendő (pl. Bináris adatok esetében), a tulajdonságnév utáni paraméterek felhasználásával.

Alapobjektum

Az iCalendar legfelső szintű objektuma a „Naptározás és ütemezés alapobjektum”. Ez a naptárral és az ütemezéssel kapcsolatos információk gyűjteménye. Ez az információ általában egyetlen iCalendar objektumból áll. Az iCalendar típusú objektumok azonban egymás után csoportosíthatók. Az első sornak "BEGIN: VCALENDAR", az utolsónak pedig "END: VCALENDAR" kell lennie; a két sor közötti tartalmat „icalbody” -nak nevezzük. Az iCalendar objektum törzse egy naptár tulajdonságokból és egy vagy több naptár összetevőből áll. A Naptár tulajdonságai olyan attribútumok, amelyek a teljes naptárra vonatkoznak. A naptárösszetevők olyan tulajdonságok gyűjteménye, amelyek egy adott szintaxist követnek. Például a komponens megadhat eseményt, feladatot, naplóbejegyzést, időzóna információkat, szabad vagy elfoglalt időrést vagy akár riasztást.

Íme egy egyszerű példa (az RFC  2445-ből) egy iCalendar objektumra, amely meghatározza a Bastille Day eseményt, amely1997. július 14 17: 00-kor UTC-kor 1997. július 15 ekkor: 03: 59 UTC:

BEGIN:VCALENDAR VERSION:2.0 PRODID:-//hacksw/handcal//NONSGML v1.0//EN BEGIN:VEVENT DTSTART:19970714T170000Z DTEND:19970715T035900Z SUMMARY:Fête à la Bastille END:VEVENT END:VCALENDAR

A szabványban különböző típusú alkatrészek vannak meghatározva. Ezeket az alábbiakban ismertetjük.

Események (VEVENT)

A "VEVENT" komponens olyan tulajdonságokból álló panelt kínál, amely leírja az eseményt úgy, hogy az egy tervezett időtartamot képvisel egy naptárban. Normális esetben egy érvényes esemény elfoglalja ezt az időt, de lehetőség van "Átlátszó" módban konfigurálni, hogy megváltoztassa ezt az értelmezést.

A VEVENT alkatrész klasszikus tulajdonságai a következők:

  • DTSTART: Az esemény kezdő dátuma
  • DTEND: Az esemény befejezési dátuma
  • ÖSSZEFOGLALÓ: Az esemény címe
  • HELY: Az esemény helyszíne
  • KATEGÓRIÁK: Az esemény kategóriája (pl .: konferencia, buli ...)
  • Állapot: A esemény ( kísérleti , CONFIRMED , ELMARAD )
  • LEÍRÁS: Az esemény leírása
  • TRANSP: Megadja, hogy az eseményhez rendelt erőforrás elérhetővé válik-e (OPAQUE, TRANSPARENT)
  • SZekvencia: Frissítések száma, az első frissítés 1

A VEVENT komponens tartalmazhat egy VALARM komponenst a riasztások meghatározásához. Az ilyen eseményeknek van egy DTSTART tulajdonságuk, amely meghatározza annak kezdési dátumát és idejét, valamint egy DTEND tulajdonságuk, amely meghatározza annak befejezési dátumát és idejét. Ha az esemény időszakos, a DTSTART meghatározza az első esemény kezdetét.

A meghatározott idő nélküli időszakos eseményeket, például a születésnapokat vagy az időszakos emlékeztetőket, szintén a VEVENT használatával ábrázolják. Ezeknek az eseményeknek a DTSTART tulajdonság DATE típusú értékének kell lenniük az alapértelmezett DATE-TIME típus helyett, és nem tartalmazhatnak "DTEND" tulajdonságot.

Tennivaló (VTODO)

A „VTODO” komponens leír egy „tennivaló” objektumot, vagyis egy cselekvési objektumot vagy egy feladatot.

A következő példa egy "tennivalóra", amelynek határideje: 1998. április 15, Egy RFC  2445. Egy hangjelzés lett megadva, hogy értesíti a felhasználót naptári délben előtti napon a feladatot el kell végezni. A riasztást még 4 alkalommal megismételjük, egy órás intervallummal. A "tennivaló" definíciója az első létrehozása óta kétszer megváltozott.

BEGIN:VCALENDAR VERSION:2.0 PRODID:-//ABC Corporation//NONSGML My Product//EN BEGIN:VTODO DTSTAMP:19980130T134500Z SEQUENCE:2 UID:[email protected] ORGANIZER:MAILTO:[email protected] ATTENDEE;PARTSTAT=ACCEPTED:MAILTO:[email protected] DUE:19980415T235959 STATUS:NEEDS-ACTION SUMMARY:Submit Income Taxes BEGIN:VALARM ACTION:AUDIO TRIGGER:19980414T120000 ATTACH;FMTTYPE=audio/basic:http://host.com/pub/audio-files/ssbanner.aud REPEAT:4 DURATION:PT1H END:VALARM END:VTODO END:VCALENDAR

Naplóbejegyzés (VJOURNAL)

A VJOURNAL komponens naplóbejegyzést ír le. Egyszerűen összekapcsolja a leíró szöveget egy adott dátummal, és fel lehet használni a napi tevékenység vagy a feladat teljesítésének rögzítésére. A "VJOURNAL" komponens nem foglal el időt, így nincs hatása a szabad vagy a lefoglalt időre (például a "TRANSPARENT" bemenetekre). A gyakorlatban az iCalendar formátum csak néhány megvalósítása támogatja a „VJOURNAL” bejegyzéseket.

A következő példa egy naplóbejegyzésre vonatkozik az RFC  2445 szerint:

BEGIN:VCALENDAR VERSION:2.0 PRODID:-//ABC Corporation//NONSGML My Product//EN BEGIN:VJOURNAL DTSTAMP:19970324T120000Z UID:[email protected] ORGANIZER:MAILTO:[email protected] STATUS:DRAFT CLASS:PUBLIC CATEGORY:Project Report, XYZ, Weekly Meeting DESCRIPTION:Project xyz Review Meeting Minutes\n Agenda\n1. Review of project version 1.0 requirements.\n2. Definition of project processes.\n3. Review of project schedule.\n Participants: John Smith, Jane Doe, Jim Dandy\n-It was decided that the requirements need to be signed off by product marketing.\n-Project processes were accepted.\n -Project schedule needs to account for scheduled holidays and employee vacation time. Check with HR for specific dates.\n-New schedule will be distributed by Friday.\n- Next weeks meeting is cancelled. No meeting until 3/23. END:VJOURNAL END:VCALENDAR

Szabad / elfoglalt idő (VFREEBUSY)

Az RFC  2445- ben definiált „VFREEBUSY” komponens leírja a szabad / foglalt idő kérését, a kérésre adott választ, vagy elfoglaltságok halmazát teszi közzé. Az alábbiakban egy példa az RFC  2445 szerinti elfoglalt idő publikációkra. Az iCalendar objektumot egy ".ifb" kiterjesztésű URL-re kell helyezni:

BEGIN:VCALENDAR VERSION:2.0 PRODID:-//RDU Software//NONSGML HandCal//EN BEGIN:VFREEBUSY ORGANIZER:MAILTO:[email protected] DTSTART:19980313T141711Z DTEND:19980410T141711Z FREEBUSY:19980314T233000Z/19980315T003000Z FREEBUSY:19980316T153000Z/19980316T163000Z FREEBUSY:19980318T030000Z/19980318T040000Z URL:http://www.host.com/calendar/busytime/jsmith.ifb END:VFREEBUSY END:VCALENDAR

A többi alkatrész

A szabványban meghatározott egyéb komponensek a „VTIMEZONE” (az időzónák meghatározása) és a „VALARM” (a riasztások meghatározása). Észrevehetjük, hogy egyes összetevők más összetevőket is tartalmaznak (a „VALARM” gyakran szerepel más összetevőkben), és hogy egyes összetevőket az utánuk definiált más összetevők kezelésére definiálnak (a „VTIMEZONE” -t gyakran használják ilyen módon.).

Adatcsere az iCalendarral

Az iCalendar formátumot a naptáradatok (például események) leírására tervezték, és szándékosan nem írja le, mit kell kezdeni a „klasszikus” adatokkal (szövegek stb.).

A társ, az „iCalendar szállítástól független interoperabilitás” (iTIP) ( RFC  2446), meghatároz egy protokollt az iCalendar objektumok cseréjéhez a naptár és az információk csoportosítása céljából a „Naptár felhasználói” (CU) között; aki megkezdi az adatcserét, „szervező” szerepet tölt be. Ez a szabvány olyan módszereket határoz meg, mint PUBLISH, REQUEST, REPLY, ADD, CANCEL, REFRESH, COUNTER (a bejegyzés módosításáról való tárgyaláshoz) és DECLINE-COUNTER (az ellenjavaslat elutasításához).

Egy másik társ, az „iCalendar Message-based Interoperability Protocol (IMIP)” ( RFC  2447) szabványos módszertant határoz meg az iTIP szállítási protokollban történő megvalósításához, például az e-mailhez.

Az „Útmutató az internetes naptárhoz” ( RFC  3283) leírja az iCalendar és a kapcsolódó (jelenlegi és jövőbeni) szabványok kapcsolatát.

Az iCalendar formátumot úgy tervezték, hogy biztosítsa a naptáradatok átjárhatóságát; Míg a felhasználók által leggyakrabban használt szolgáltatásokat széles körben támogatják az iCalendar implementációi, és képesek kommunikálni, a fejlettebb szolgáltatások megvalósítása közötti műveletek „bénák”.

A Calendar Access Protocol ( RFC  4324) univerzális módszert kínál a valós idejű naptár megvalósításához.

Az IETF Calendaring and Scheduling (calsch) munkacsoport a múltban az iCalendar különféle kiterjesztésein és kompatibilitási protokolljain dolgozott. A munkacsoport hivatalosan IETF munkacsoportként megszűnt 2006 - ban2004. szeptember, de levelezőlistáját továbbra is naptári témájú megbeszélésekre használják.

Lásd is

Külső linkek

Hivatkozások

  1. (in) Megjegyzések iránti kérelem, n o  5545 .
  2. (EN) Request for Comments n o  2445 .
  3. (a) Request for Comments n o  2446 .
  4. (a) Request for Comments n o  2447 .
  5. (in) Megjegyzések iránti kérelem, n o  3283 .
  6. (in) Megjegyzések iránti kérelem, n o  4324 .
  7. [1]
  8. [2]