iCalendar
iCalendar(アイカレンダー)とはPIMソフトなどで使われるスケジュールの標準フォーマット。RFC 5545 [1](旧版 RFC 2445[2])で規定されている。「iCal」と略称される。
拡張子 | .ical; .ics; .ifb .icalendar |
---|---|
MIMEタイプ | text/calendar |
種別 | PIMデータ標準 |
国際標準 | RFC 5545 |
基本仕様
編集コア・オブジェクト
編集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この標準仕様には他にも以下に述べるような様々なコンポーネントが定義されている。Apple iCal やマイクロソフトのOutlookでは次のような追加記述子が使われる。
X-WR-CALNAME:Revolution Parties X-WR-CALDESC:Celebrations of various revolutionary activities. X-WR-RELCALID:3E26604A-50F4-4449-8B3E-E4F4932D05B5 X-WR-TIMEZONE:US/PacificX-WR-RELCALIDは汎用一意識別子 (UID) である。
イベント (VEVENT)
編集VEVENTコンポーネントはカレンダー上で予定されたイベントについて記述された属性の集合体である。これは具体的な用件だけでなく、「TRANSPARENT」(白紙)といった記述も可能である。アラームを定義する場合、VEVENT内部にVALARMコンポーネントが含まれる。また開始時刻を定義するDTSTARTプロパティと終了時刻を定義するDTENDプロパティを持つ。
記念日や毎日行うことのように何度も繰り返されるイベントもVEVENTで記述される。標準ではDATE-TIMEに日時が記述されるが、DTSTARTプロパティが日時データを持ち、DTENDプロパティは持たない。
予定をキャンセルするときもUIDはそのまま保持され、他のコンポーネントには <SEQUENCE:更新番号>がセットされる。
ToDo (VTODO)
編集ToDO、つまりアクションアイテムや宿題事項のことが記述されるコンポーネント。下記はRFC 2445による1998年4月15日のToDoについて記述したサンプルである。
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@example.com DUE:19980415T235959 STATUS:NEEDS-ACTION SUMMARY:Submit Income Taxes BEGIN:VALARM ACTION:AUDIO TRIGGER:19980403T120000 ATTACH;FMTTYPE=audio/basic:http://example.com/pub/audio- files/ssbanner.aud REPEAT:4 DURATION:PT1H END:VALARM END:VTODO END:VCALENDAR
ジャーナル (VJOURNAL)
編集VJOURNALコンポーネントは日誌のように特定の日付にコメントを付けたり、作業内容や進捗の実績を記録するために利用される。実際のところ、iCalendarの実装でVJOURNALをサポートしているものはほとんど無い。プラムカナリーズ・チャープ・ソフトウェア社は、プロジェクトタスクの進捗管理ソリューションのデータフォーマットとしてVTODOとVJOURNALを採用している。また、KDEのシステム手帳、KOrganizerもVJOURNALをサポートしている。
下記はRFC 2445によるVJOURNALの記述サンプルである。
BEGIN:VCALENDAR VERSION:2.0 PRODID:-//ABC Corporation//NONSGML My Product//EN BEGIN:VJOURNAL DTSTAMP:19970324T120000Z UID:uid5@host1.com ORGANIZER:MAILTO:jsmith@example.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
フリー・ビジータイム (VFREEBUSY)
編集VFREEBUSYコンポーネントはフリー・ビジータイム……つまり空いた時間と予定のある時間を定義する。以下はRFC 2445による予定時間情報を記述したサンプルである。特定のURLに置かれる場合、拡張子は「ifb」となる。
BEGIN:VCALENDAR VERSION:2.0 PRODID:-//RDU Software//NONSGML HandCal//EN BEGIN:VFREEBUSY ORGANIZER:MAILTO:jsmith@example.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
その他のコンポーネント
編集- VTIMEZONE - 等時帯を定義
- VALARM - アラーム設定を定義
スケジュール更新
編集データ互換
編集vCalendar 1.0
編集vCalendar1.0はインターネットメール・コンソーシアム (IMC) によって公表されたiCalendarフォーマットの元となった規格である。以下がその例。
BEGIN:VCALENDAR VERSION:1.0 BEGIN:VEVENT CATEGORIES:MEETING STATUS:TENTATIVE DTSTART:19960401T033000Z DTEND:19960401T043000Z SUMMARY:Your Proposal Review DESCRIPTION:Steve and John to review newest proposal material CLASS:PRIVATE END:VEVENT END:VCALENDAR
IMCはiCalendarリリース後、ベンダーがこれらのオープンフォーマットを採用して、vCalendar1.0とiCalendarの両方に互換性をもつソフトウェアを開発するよう呼びかけている。
ライブラリ
編集iCalendarデータファイル生成のため、様々なプログラミング用ライブラリが公開されている。