iCalendar
Z Multimediaexpo.cz
iCalendar je standard (RFC 5545) pro výměnu kalendářových dat. Je též znám pod zkratkou iCal, což je též jméno kalendářového programu firmy Apple, který je jedním z programů, který tento formát využívá. Tento formát též podporují Mozilla Sunbird, Novell Evolution či třeba Windows Calendar.
iCalendar umožňuje uživatelům posílat žádosti k naplánování schůzky nebo úkolu ostatním uživatelům prostřednictvím standardního emailu. Příjemce emailové zprávy s takovýmto obsahem může jednoduše odesilateli odpovědět stejnou cestou (podmínkou je programové vybavení pro zpracování těchto dat), včetně možnosti úpravy navržených parametrů schůzky resp. úkolu. Tento standard je podporován velkým množstvím programových produktů. Data iCalendar jsou typicky používána ve spojení s emailovou komunikací, standard je ovšem navržen tak, aby byl nezávislý na přenosovém protokolu. Například je možné tato data sdílet pomocí protokolu WebDAV, nebo SyncML. Jednoduché webové servery (poskytující pouze protokol HTTP) jsou nezřídka používány ke zveřejňování informací o individuálních plánech událostí, akcí a osobním pracovním vytížení. Pro zobrazení těchto informací v HTML (XHTML) lze použít například mikroformát hCalendar, který slouží k přesné interpretaci dat iCalendar do HTML.
Obsah |
Základní specifikace
Formát iCalendar byl navržen skupinou Calendaring and Scheduling Working Group (kterou založil pan Anik Ganguly z Open Text Corporation) ze sdružení Internet Engineering Task Force (zkratka IETF, česky „Komise techniky Internetu“) a autory jsou pánové Frank Dawson z Lotus Development Corporation a Derik Stenerson z Microsoft Corporation. Je založen na starším formátu vCalendar, jehož průmyslovou specifikaci vytvořili v ICM (Internet Mail Consortium)
Typ obsahu podle MIME je text/calendar.
Soubor s příponou ics označuje soubor obsahující informace kalendáře a plánování odpovídajícího typu dle MIME.
Soubor s příponou ifb obsahuje informace o volném anebo obsazeném čase v souladu s MIME typem.
V operačních systémech firmy Apple odpovídají těmto dvěma souborovým příponám kódy iCal a iFBf.
Data v souboru dle standardu iCalendar jsou prostý ASCII text, řádek je ukončen znakem CRLF (hex: 0D0A). Délka řádku může být omezena na 75 bytů (ne znaků). Když jsou data příliš dlouhá, pokračují na novém řádku a zde jsou uvozena znakem mezera (hex: 20) nebo tabulátorem (hex: 09). Pokud je potřeba uvést v datech zalomení řádku, je toto zakódováno sekvencí \n (hex: 5C6E).
Hlavní objekty
Objekty na nejvyšší úrovni jsou Hlavní objekt kalendáře (Calendaring Core Object) a Hlavní objekt plánování (Scheduling Core Object). To jsou soubory informací dat kalendáře a plánovače. Nejčastěji obsahují data informace právě jednoho samostatného iCalendar objektu, je nicméně možné seskupit několik objektů za sebe. První řádek datového souboru musí být: BEGIN:VCALENDAR, a poslední řádek END:VCALENDAR, obsah souboru mezi těmito dvěma řádky se nazývá icalbody. Obsah těla objektu iCalendar (icalbody) je sekvencí kalendářových vlastností a jedné nebo více kalendářových komponent. Kalendářové vlastnosti jsou vlastnosti, které se vztahují na popisovaný kalendář jako celek. Kalendářové komponenty jsou soubor vlastností, které vyjadřují právě nějakou část tohoto kalendáře (mohou popisovat například událost, úkol, informace o časovém pásmu, volném nebo obsazeném čase anebo budík). Příklad objektu iCalendar, který popisuje Den oslav dobytí Bastily jako událost konající se od 14. července 1997 17:00 (UTC) do 15. července 1997 03:59:59 (UTC)
BEGIN:VCALENDAR VERSION:2.0 PRODID:-//hacksw/handcal//NONSGML v1.0//EN BEGIN:VEVENT DTSTART:19970714T170000Z DTEND:19970715T035959Z SUMMARY:Bastille Day Party END:VEVENT END:VCALENDAR
Existuje mnoho různých typů kalendářových komponent popsaných standardem iCalendar, viz následující popis.
událost (VEVENT)
Komponenta VEVENT umožňuje sdružení vlastností, které popisují v úseku času naplánovanou událost. Potvrzená událost například způsobí, že čas jejího konání je považován za obsazený, může být ovšem nastavena jako TRANSPARENT což umožní změnu této interpretace. Událost VEVENT může obsahovat komponentu VALARM. Každá událost má vlastnosti DSTART, která definuje čas započetí, a DTEND definující čas ukončení. Pokud se jedná o opakovanou událost, pak DTSTART udává čas prvního spuštění. Opakované události bez přesné specifikace času (např. výročí) jsou také komponenty VEVENT. Tyto události mají vlastnost DSTART typu DATE namísto DATE-TIME a nemusí obsahovat vlastnost DTEND.
úkol (VTODO)
VTODO je komponenta popisující nějaký úkol (něco, co je třeba vykonat). Následující příklad popisuje úkol na 15. února 1998. Zvukové upozornění bylo nastaveno tak, aby upozornilo uživatele kalendáře v poledne, den před tím, než má být úkol splněn, a má se opakovat 4 krát v intervalu jedné hodiny. Definice úkolu byla od vytvoření dvakrát upravena.
BEGIN:VCALENDAR VERSION:2.0 PRODID:-//ABC Corporation//NONSGML My Product//EN BEGIN:VTODO DTSTAMP:19980130T134500Z SEQUENCE:2 UID:uid4@host1.com ORGANIZER:MAILTO:unclesam@us.gov ATTENDEE;PARTSTAT=ACCEPTED:MAILTO:jqpublic@host.com DUE:19980415T235959 STATUS:NEEDS-ACTION SUMMARY:Submit Income Taxes BEGIN:VALARM ACTION:AUDIO TRIGGER:19980403T120000 ATTACH;FMTTYPE=audio/basic:http://host.com/pub/audio-files/ssbanner.aud REPEAT:4 DURATION:PT1H END:VALARM END:VTODO END:VCALENDAR
deník (VJOURNAL)
Komponenta VJOURNAL popisuje záznam do deníku. Jednoduše připojí popisnou textovou poznámku k určitému datu kalendáře, může sloužit například k zaznamenávání seznamu aktivit během dne, nebo k popisu akcí vztahujících se k nějakému úkolu. Komponenta VJOURNAL nezabírá v kalendáři žádný čas ani nemá vliv na stav obsazení času (jako TRANSPARENT položka) V praxi se deníkové záznamy příliš nepoužívají, jsou implementovány například v programu Plum Canary's Chirp, který je používá kombinaci VTODO a VJOURAL pro správu projektů. Jsou podporovány také programem KOrganizer, který je součástí balíku KDE.
Příklad:
BEGIN:VCALENDAR VERSION:2.0 PRODID:-//ABC Corporation//NONSGML My Product//EN BEGIN:VJOURNAL DTSTAMP:19970324T120000Z UID:uid5@host1.com ORGANIZER:MAILTO:jsmith@host.com 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
Volný a obsazený čas (VFREEBUSY)
Komponenta popisuje požadavek na zjištění stavu obsazení v určitém čase, popisuje odpověď na tento dotaz a popisuje také sestavu pro zveřejnění obsazeného času.
Dle normy RFC2445 je popsána takto:
Pro zjištění stavu obsazení času existuje vlastnosti ATTENDEE specifikující uživatele kalendáře, jehož stav času je dotazován, ORGANIZER specifikuje který uživatel kalendáře se ptá a vlastnosti DTSTART a DTEND udávají časové rozmezí v němž je stav zjišťován. Vlastnosti UID a DTSTAMP slouží k určení pořadí dotazů v případě, že jich žádost obsahuje více.
Odpověď na dotaz stavu času obsahuje opět vlastnosti ATTENDEE, která specifikuje odpovídajícího uživatele (vlastník zjisťovaného kalendáře) a ORGANIZERv tomto případě značí původního tazatele – nyní tedy příjemce odpovědi. Vlastnost FREEBUSY určuje stav dotazovaného časového úseku. A opět vlastnosti UID a DTSTAMP určující pořadí ve více dotazech.
K publikování stavu času slouží vlastnosti ORGANIZER, jež i zde značí vlastníka (publikovaného) kalendáře, DTSTART a DTEND jsou časové údaje ohraničující oblast kalendáře označenou jako obsazený čas. Vlastnost FREEBUSY obsahuje popis obsazeného času a DTSTAMP informaci o tom, kdy byl objekt v kalendáři vytvořen.
Příklad publikovaného kalendáře:
BEGIN:VCALENDAR VERSION:2.0 PRODID:-//RDU Software//NONSGML HandCal//EN BEGIN:VFREEBUSY ORGANIZER:MAILTO:jsmith@host.com 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
Objekt iCalendar může být umístěn na serveru v souboru s příponou ifb.
další typy komponent
Formát iCalendar definuje dále typy komponent VTIMEZONE (určení časového pásma) a VALARM (definice zvukového upozornění). Některé komponenty mohou obsahovat jiné komponenty (VALARM se zpravidla vyskytuje jako součást jiné komponenty), a mohou být také vytvořeny komponenty, které jsou použity jako součást dále definovaných komponent (to je nejčastěji právě VTIMEZONE).
distribuované aktualizace
Vlastnost UID se používá k usnadnění publikování změn v případě, že dojde ke změně plánování události v kalendáři. Při prvním vytvoření události je jí přiřazen globální unikátní identifikátor. Pokud je později publikována událost se stejným identifikátorem, je původní událost touto nahrazena. Identifikátor 5. srazu skupiny 131 2. semestru hypotetické VŠ může vypadat například Y2007S2C131M5@bigcitycollege.org.
Výměna dat iCalendar
Jak již bylo uvedeno výše, formát iCalendar je určen k popisu kalendářových dat a neobsahuje tedy popis jak s těmito daty pracovat. Proto je třeba použít nějaký jiný protokol pro práci s těmito daty. Těchto protokolů existuje několik, jedním z nich je například iTIP (iCalendar Transport-Independent Interoperability) (RFC 2664) definující protokol pro výměnu dat kalendáře mezi uživateli kalendáře (Calendar Users (CUs)) – kdokoli zahájí libovolnou výměnu dat, stává se Organizátorem (Organizer). Tento standard obsahuje metody: PUBLISH, REQUEST, REPLY, ADD, CANCEL, REFRESH, COUNTER a DECLINE-COUNTER.
Dalším příkladem protokolu pro práci s daty iCal je IMIP (iCalendar Message-based Interoperability Protocol) (RFC 2447), který stanoví metody pro implementaci protokolu iTIP se standardním internetovým poštovním transportním protokolem (email).
Guide to Internet Calendaring (RFC 3283) popisuje vztah mezi formátem iCalendar a různými jinými standardy (současnými i budoucími).
Externí odkazy
Náklady na energie a provoz naší encyklopedie prudce vzrostly. Potřebujeme vaši podporu... Kolik ?? To je na Vás. Náš FIO účet — 2500575897 / 2010 |
---|
Informace o článku.
Článek je převzat z Wikipedie, otevřené encyklopedie, do které přispívají dobrovolníci z celého světa. |