(Translated by https://www.hiragana.jp/)
iCalendar - Wikipedia コンテンツにスキップ

iCalendar

出典しゅってん: フリー百科ひゃっか事典じてん『ウィキペディア(Wikipedia)』
iCalendar
拡張子かくちょうし.ical; .ics; .ifb
.icalendar
MIMEタイプtext/calendar
種別しゅべつPIMデータ標準ひょうじゅん
国際こくさい標準ひょうじゅんRFC 5545

iCalendarアイカレンダー)とはPIMソフトなどで使つかわれるスケジュールの標準ひょうじゅんフォーマット。RFC 5545 [1]旧版きゅうばん RFC 2445[2])で規定きていされている。「iCal」と略称りゃくしょうされる。

iCalendarをサポートしたソフトウェアを使つかうことで、のユーザーにたいしてミーティングの時間じかん予定よてい電子でんしメール経由けいゆらせることが容易よういになり、メールの受信じゅしんしゃもミーティングの日時にちじ簡単かんたん提案ていあんできるようになる。

iCalendarはおおくの製品せいひん実装じっそう、サポートされている。そのデータは従来じゅうらい電子でんしメールで交換こうかんされ、仕様しようじょう送信そうしんプロトコル依存いぞんしないこととなっている。たとえばWebDAVサーバやSyncML使つかって共有きょうゆう編集へんしゅうおこなえる。HTTPプロトコルしか使用しようしないシンプルなWebサーバは、iCalendarフォーマットのスケジュールデータを配付はいふするために使つかわれる。hCalendar使つかえばWebページにiCalendarデータをむことができる。

基本きほん仕様しよう

[編集へんしゅう]

iCalendarの仕様しようオープンテキストのアニク・ガングリーを議長ぎちょうとする、Internet Engineering Task Forceのカレンダー・スケジュール作業さぎょう部会ぶかいによってさだめられた。仕様しよう記述きじゅつロータスしゃのフランク・ドーソン、マイクロソフトのデリック・ストナーソンによる。iCalendarの仕様しようインターネットメール・コンソーシアム英語えいごばん (IMC) によって規定きていされたvCalendar依拠いきょしている。

iCalendarデータのMIMEタイプは「text/calendar」である。

このMIMEタイプをつカレンダー・スケジュールデータファイルには、拡張子かくちょうし「ics」がけられる。(Mac OSではタイプコード「iCal」)

「free and busy time」(いた時間じかん予定よていのある時間じかん)をふくむデータには拡張子かくちょうし「ftb」が付与ふよされる。(Mac OSではタイプコード「iFBf」)

iCalendarデータはプレーンテキストで、デフォルトUTF-8使用しようされる。べつ文字もじコード使つかうときは「charset」MIMEパラメータで指定していすることができる。各行かくこうは CR + LF (16しん:0D0A) で改行かいぎょうされ、各行かくこう75オクテット文字数もじすう制限せいげんがある。つぎくだりにまたぐ場合ばあいスペース (16しん:20) またはタブ (16しん:09)でくだりはじめることで、まえぎょうからのつづきであることを明示めいじできる。データ項目こうもくないでの改行かいぎょうをしたい場合ばあいは「バックスラッシュ + N」(UTF-8で5C6Eまたは5C4E、\n)でコーディングする。

コア・オブジェクト

[編集へんしゅう]

iCalendarの先頭せんとうには「カレンダー・スケジュール・コア・オブジェクト」が位置いちする。これはカレンダーとスケジュール情報じょうほう集合しゅうごうたいである。最小さいしょう単位たんい単一たんいつのiCalendarオブジェクトであり、これらが複数ふくすうまとめられている。1ぎょうかならず「BEGIN:VCALENDAR」ではじまる必要ひつようがあり、最後さいごは「END:VCALENDAR」でわる。このくだりあいだには「icalbody」とばれるしゅデータ記述きじゅつはいる。しゅデータ一連いちれんのカレンダー・プロパティおよびカレンダー・コンポーネントからなり、前者ぜんしゃ全体ぜんたい属性ぞくせい記述きじゅつ後者こうしゃ具体ぐたいてき用事ようじ日程にってい日時にちじなどのタイムスケジュールが記述きじゅつされ、アラーム[よう曖昧あいまい回避かいひ]設定せっていなどもおこなわれる。

RFC 2445によるシンプルなiCalendarオブジェクトのサンプルを以下いかしめす。内容ないよう1997ねん7がつ14にち-15にちパリさいかんするものである。

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/Pacific

X-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

そののコンポーネント

[編集へんしゅう]

スケジュール更新こうしん

[編集へんしゅう]

予定よていされたスケジュールに変更へんこうがかかった場合ばあい、UIDフィールドを利用りようして改訂かいていばんてがおこなわれる。最初さいしょ予定よてい設定せっていされたときに一意いちい識別子しきべつし (UID) が生成せいせいされ、スケジュールに変更へんこうがかかったときもおなじUIDで発行はっこうされる。UIDのれいとしては、「とある大学だいがくだい2学期がっき131学級がっきゅうの5かいわせ」なら「Y2007S2C131M5@example.com」という具合ぐあいになる。

データ互換ごかん

[編集へんしゅう]

iCalendarフォーマットはカレンダーベースのデータを記述きじゅつするために設計せっけいされており、即座そくざにこのデータをもってなにかを記述きじゅつするわけではないので、実際じっさい運用うんようには規約きやく必要ひつようとなることがある。

付属ふぞく規約きやくであるiTIPプロトコル (RFC 5546) [3]はカレンダーユーザーあいだでカレンダー・スケジュールデータを交換こうかんするための規約きやくであり、最初さいしょ交換こうかん提案ていあんしたひとが「オーガナイザ」とばれることになる。この標準ひょうじゅんは「発行はっこう」「要求ようきゅう」「応答おうとう」「追加ついか」「中止ちゅうし」「更新こうしん」「撤回てっかい」「撤回てっかい却下きゃっか」といったメソッド定義ていぎする。

付属ふぞく規約きやくIMIPプロトコル (RFC 6047) [4]がある。これは電子でんしメールでの通信つうしんにiTIPを実装じっそうする手順てじゅんかんする仕様しようである。

RFC 3283の「インターネット・カレンダー・ガイド」[5]ではiCalendarと関連かんれん規格きかくとの様々さまざま関係かんけいべられている。

iCalendarフォーマットはカレンダーデータの相互そうご運用うんようもサポートしている。使用しよう頻度ひんどたかい、基本きほんてき特徴とくちょうはiCalendar実装じっそうにサポートされ、互換ごかんせいたかいのだが、拡張かくちょう機能きのうのようなものになると途端とたん実装じっそう度合どあいは低下ていかしてしまう。ほとんどのベンダーは「JOURNAL」をサポートしていないし、予定よていかえしやスケジュール反復はんぷく相互そうご運用うんよう不自然ふしぜん問題もんだいかかえている。VTODOプロパティも2004ねん時点じてんでの相互そうご運用うんよう出来できない状態じょうたいである。

iCalendarはイスラエルサウジアラビアなどで運用うんようされているグレゴリオれきではカレンダーへの記入きにゅうもままならない。それらのこよみグレゴリオれき一対一いちたいいちえることも様々さまざま要因よういん困難こんなんきわめる。たとえばユダヤれきでは13がつというものが存在そんざいする場合ばあいがあるし、天皇てんのうわるたびに変化へんかする日本にっぽん元号げんごう問題もんだいである

RFC 4324の「カレンダーアクセスプロトコル」[6]最初さいしょ汎用はんようスケジューリングデータ標準ひょうじゅんとして普及ふきゅうこころみたが、その複雑ふくざつ仕様しようにより、実装じっそうされることなくわった。現在げんざいGroupDAVCalDAVといったiCalendarベースの実用じつようてき通信つうしんプロトコルが、クライアントサーバ双方そうほうパッケージソフトあらわれ、カレンダーアクセス標準ひょうじゅんとしての地位ちい確保かくほせんとしている。

IETFカレンダー・スケジュール作業さぎょう部会ぶかいは、過去かこ標準ひょうじゅん参照さんしょうし、カレンダー・スケジューリングコンソーシアム (Calconnect) のようなほか作業さぎょう部会ぶかいとも連携れんけいりながら、iCalendar標準ひょうじゅん改定かいていプロセスにはいっている。2004ねん設立せつりつのCalconnectは専門せんもん委員いいんかいにより実装じっそうおよ相互そうご運用うんよう試験しけんおこな機関きかんであり、あらゆる団体だんたい個人こじん加入かにゅう可能かのうである。

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データファイル生成せいせいのため、様々さまざまなプログラミングようライブラリ公開こうかいされている。

参考さんこう文献ぶんけん

[編集へんしゅう]
  1. ^ B. Desruisseaux, Ed. (2009ねん9がつ). “RFC [https://datatracker.ietf.org/doc/html/rfc5545 5545, Internet Calendaring and Scheduling Core Object Specification (iCalendar)]” (英語えいご). 2011ねん11月3にち閲覧えつらん
  2. ^ F. Dawson, D. Stenerson (1998ねん11月). “RFC [https://datatracker.ietf.org/doc/html/rfc2445 2445, Internet Calendaring and Scheduling Core Object Specification (iCalendar)]” (英語えいご). 2011ねん11月3にち閲覧えつらん
  3. ^ C. Daboo, Ed. (2009ねん12がつ). “RFC [https://datatracker.ietf.org/doc/html/rfc5546 5546, iCalendar Transport-Independent Interoperability Protocol (iTIP)]” (英語えいご). 2011ねん11月3にち閲覧えつらん
  4. ^ A. Melnikov, Ed. (2010ねん12がつ). “RFC [https://datatracker.ietf.org/doc/html/rfc6047 6047 , iCalendar Message-Based Interoperability Protocol (iMIP)]” (英語えいご). 2011ねん11月3にち閲覧えつらん
  5. ^ B. Mahoney, G. Babics, A. Taler (2002ねん6がつ). “RFC [https://datatracker.ietf.org/doc/html/rfc3283 3283 , Guide to Internet Calendaring]” (英語えいご). 2011ねん11月3にち閲覧えつらん
  6. ^ D. Royer, G. Babics, S. Mansour (2005ねん12がつ). “RFC [https://datatracker.ietf.org/doc/html/rfc4324 4324 , Calendar Access Protocol (CAP)]” (英語えいご). 2011ねん11月3にち閲覧えつらん

関連かんれん項目こうもく

[編集へんしゅう]

外部がいぶリンク

[編集へんしゅう]
  • RFC 5545 Internet Calendaring and Scheduling Core Object Specification (iCalendar)