hcalendar-ja
hCalendar
hCalendarã¯iCalendar (RFC2445)を基ã¨ã—ãŸã€ã‚·ãƒ³ãƒ—ルã§ã‚ªãƒ¼ãƒ—ンãªã‚«ãƒ¬ãƒ³ãƒ€ãƒ¼ãƒ»ã‚¤ãƒ™ãƒ³ãƒˆæƒ…å ±é…信用ã®microformatã§ã™ã€‚(X)HTMLã‚„Atom, RSS, ä»»æ„ã®XMLãªã©ã€åºƒç¯„囲ã«é©ç”¨å¯èƒ½ãªãƒ•ォーマットã¨ãªã£ã¦ã„ã¾ã™ã€‚
hCalendarã§ã‚¤ãƒ™ãƒ³ãƒˆæƒ…å ±ã‚’é…ä¿¡ã™ã‚‹ã«ã¯ã„ãã¤ã‹ã®æ–¹æ³•ãŒã‚りã¾ã™ã€‚手ã£å–り早ã„ã®ã¯ã€ã€ŒhCalendar クリエーターã€ãƒ„ールを使ã†ã“ã¨ã€‚ã§ã‚‚ã‚‚ã—ã€ã™ã§ã«ã‚¤ãƒ™ãƒ³ãƒˆã®æƒ…å ±ã‚’è‡ªåˆ†ã®ãƒ–ãƒã‚°ã‚„wikiãªã©ã«æ›¸ã„ã¦ã„ã‚‹å ´åˆã¯ã€hCalendarを書ãコツをèªã¿ã€hCalendarã«æ²¿ã†ã‚ˆã†ãƒžãƒ¼ã‚¯ã‚¢ãƒƒãƒ—ã‚’ã—ç›´ã—ã¾ã—ょã†ã€‚
仕様
- 編者
- Tantek Çelik (Technorati, Inc)
- 作者
- Tantek Çelik, Technorati, Inc
- Brian Suda
著作権
© 2004-2023 by the authors.
ã“ã®ä»•様ã®è‘—作権ã¯ã€ãƒšãƒ¼ã‚¸ç·¨é›†ã«é–¢ã‚ã£ãŸäººå…¨ã¦ãŒä¿æœ‰ã—ã¦ã„ã¾ã™ã€‚ ã—ã‹ã—ã€è‘—者ã¯ã“ã®ä»•様をGMPGã‚„IETFã€W3Cãªã©ã®æ¨™æº–åŒ–å›£ä½“ã«æå‡ºã™ã‚‹ã“ã¨ã‚’考ãˆã¦ã„ã¾ã™ã€‚ã“ã®ä»•様ã«è²¢çŒ®ã—ãŸã„å ´åˆã¯ã€ã“れらã®å›£ä½“ãŒæŒã¤è‘—作権ã«å¯¾ã™ã‚‹æ–¹é‡ã‚„ãƒãƒªã‚·ãƒ¼ï¼ˆä¾‹:GMPG Principles)をèªã¿ã€ãƒ©ã‚¤ã‚»ãƒ³ã‚¹ã«é–¢ã™ã‚‹è¦å®šï¼ˆä¾‹:CC-by 1.0や後ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ï¼‰ã‚’ç†è§£ã—ãŸä¸Šã§ãŠé¡˜ã„ã—ã¾ã™ã€‚
特許方é‡
ã“ã®ä»•様ã¯ãƒã‚¤ãƒ¤ãƒªãƒ†ã‚£ãƒ¼ãƒ•リーã®ç‰¹è¨±æ–¹é‡ã«å¸°å±žã™ã‚‹ã‚‚ã®ã§ã™ã€‚特許方é‡ã«é–¢ã—ã¦ã¯W3C Patent Policyã‚„RFC3667ã€RFC3668ã‚’ã”覧下ã•ã„。
è¬è¾ž
ä»¥ä¸‹ã®æ–¹ã«æ„Ÿè¬ã—ã¾ã™ã€‚
- FOOã‚ャンプ 2004ã®ã€Œã‚«ãƒ¬ãƒ³ãƒ€ãƒ¼è¡¨ç¤ºã®ãŸã‚ã®HTMLã€ã‚’先導ã—ã¦ãれãŸã€ã‚¢ãƒ€ãƒ ・ブãƒã‚¹ã‚¦ã‚©ãƒ¼ã‚¹ã€‚ã“ã®ãŠã‹ã’ã§hCalendarã¸ã®é–¢å¿ƒãŒæœ¬æ ¼çš„ãªè€…ã«ãªã‚Šã¾ã—ãŸã€‚
概è¦
iCalendar (RFC2445)ã¯Appleã®iCalãªã©ã€ã‚¹ã‚±ã‚¸ãƒ¥ãƒ¼ãƒ«ç®¡ç†ç”¨ã‚¢ãƒ—リケーションã«åºƒã採用ã•れã€ã¾ãŸå®Ÿè£…上ã®ç›¸äº’é‹ç”¨æ€§ã‚‚高ã„フォーマットã«ãªã£ã¦ã„ã¾ã™ã€‚
ã“ã®åºƒã使ã‚れã¦ã„るフォーマットをã€ãƒ–ãƒã‚°ã§è¨€åŠã•ã‚Œã‚‹ã‚¤ãƒ™ãƒ³ãƒˆæƒ…å ±ã«å¿œç”¨ã§ããªã„ã§ã—ょã†ã‹ã€‚今後行ã‚れるイベントやã€ã“れã¾ã§ã«å‚åŠ ã—ãŸã‚¤ãƒ™ãƒ³ãƒˆã«ã¤ã„ã¦è‡ªåˆ†ã®ãƒ–ãƒã‚°ä¸Šã«è¨˜äº‹ã‚’書ãブãƒã‚¬ãƒ¼ã¯ãŸãã•ã‚“ã„ã¾ã™ã€‚ãれらã®ã‚¤ãƒ™ãƒ³ãƒˆæƒ…å ±ã‚’å°‘ã—æ§‹é€ 化ã—ã€iCalendarã¨ã—ã¦å‡ºåŠ›å¯èƒ½ã«ã™ã‚Œã°ã€ã‚¢ãƒ—リケーションやWebサービスãŒè‡ªå‹•çš„ã«ãã®æƒ…å ±ã‚’åˆ©ç”¨ã§ãるよã†ã«ãªã‚Šã¾ã™ã€‚
ã“ã®hCalendarã¨ã„ã†ä»•様ã¯ã€XHTMLã«ã‚ˆã£ã¦iCalendarを表ç¾ã™ã‚‹æ›¸å¼ã§ã™ã€‚ブãƒã‚¬ãƒ¼ã¯hCalendarを直接webページã«åŸ‹ã‚込んã りã€ã¾ãŸãã®æƒ…å ±ã‚’CSSã§ãƒ‡ã‚¶ã‚¤ãƒ³ã™ã‚‹ã“ã¨ãŒå¯èƒ½ã§ã™ã€‚ãれã ã‘ã§ã¯ã‚りã¾ã›ã‚“。アプリケーションã¯ã‚¤ãƒ™ãƒ³ãƒˆæƒ…å ±ã‚’ç›´æŽ¥ãã®hCalendarã‹ã‚‰å–ã£ã¦ãã‚‹ã“ã¨ãŒã§ãるよã†ã«ãªã‚Šã¾ã™ã€‚イベントã«ã¤ã„ã¦æ›¸ã‹ã‚ŒãŸãƒ•ァイルをã€webページã¨åˆ¥ã«ç”¨æ„ã™ã‚‹å¿…è¦ã¯ã‚‚ã†ã‚りã¾ã›ã‚“。
セマンティックXHTMLデザイン指é‡
注:セマンティック XHTML デザイン指é‡ã¯ã€å§‹ã‚ hCard 㨠hCalendar é–‹ç™ºã®æ–‡è„ˆã§æ›¸ã‹ã‚Œã¾ã—ãŸã€‚ãã®ãŸã‚ã€ã“ã®æŒ‡é‡ã¯ hCard ãƒ‡ã‚¶ã‚¤ãƒ³ã®æ–¹æ³•è«–ã®æ–‡è„ˆã«ãŠã„ã¦ç†è§£ã—ã‚„ã™ããªã‚‹ã§ã—ょã†ï¼ˆã¤ã¾ã‚Šã€ãã¡ã‚‰ã‚’ã¾ãšèªã‚“ã§ãã ã•ã„)。Tantek
XHTML 㯠XML ã«åŸºã¥ã„ã¦ä½œã‚‰ã‚Œã¦ãŠã‚Šã€ãã®ãŸã‚ XHTML ã«åŸºã¥ã„ãŸãƒ•ォーマットã¯ã€è¡¨ç¤ºã«ä¾¿åˆ©ãªã ã‘ã§ãªã一般的ãªãƒ‡ãƒ¼ã‚¿äº¤æ›ç›®çš„ã«ã‚‚使ãˆã¾ã™ã€‚XHTML ã«åŸºã¥ã„ãŸãƒ•ォーマットã¯ã€å¤šãã®ç‚¹ã§ HTML 㨠XML ã®ä¸–ç•ŒåŒæ–¹ã®æœ€ã‚‚ã‚ˆã„æ‰€ã‚’体ç¾ã—ã¦ã„ã¾ã™ã€‚ã¨ã¯è¨€ãˆã€XHTML ã«åŸºã¥ã„ãŸãƒ•ォーマットを作æˆã™ã‚‹æ™‚ã€æŒ‡é‡ã‚’集ã‚ãŸã‚‚ã®ãŒã‚ã‚‹ã¨å½¹ç«‹ã¡ã¾ã™ã€‚
- å¯èƒ½ãªé™ã‚Šã€è¨€åŠã—ã¦ã„ã‚‹ã€æ—¢å˜ã®ç¢ºç«‹ã•れã¦ã‚ˆãサãƒãƒ¼ãƒˆã•れã¦ã„る標準ã‹ã‚‰ã‚¹ã‚ーマ(åå‰ã€ã‚ªãƒ–ジェクトã€ãƒ—ãƒãƒ‘ティã€å€¤ã€ç¨®é¡žã€éšŽå±¤ã€åˆ¶ç´„)をå†åˆ©ç”¨ã™ã‚‹ã€‚å…ƒã®æ¨™æº–ã§è¡¨ç¾ã•れã¦ã„る制約をå†å®£è¨€ã™ã‚‹ã“ã¨ã¯é¿ã‘る。å‚è€ƒæƒ…å ±ã®ãŸã‚ã«è¨€åŠã™ã‚‹ã®ã¯ã‚ˆã„。
- è¤‡æ•°ã®æ§‹æˆè¦ç´ ã‹ã‚‰ãªã‚‹ç¨®é¡žã®ã‚‚ã®ã«ã¯ã€ãã®æ§‹æˆè¦ç´ ã®åå‰ã«ç›¸å½“ã™ã‚‹ class åã‚’æŒã£ãŸè¦ç´ を入れåã«ã—ã¦ä½¿ã†ã€‚
- è¤‡æ•°ã®æ§‹æˆè¦ç´ ã¯ä¸€ã¤ãšã¤ã«ã™ã‚‹ã€‚ãã®ãŸã‚ã€ã‚«ãƒ³ãƒžåŒºåˆ‡ã‚Šã®è¤‡æ•°ã®ãƒ†ã‚スト値を表ã™ã«ã¯ã€è¤‡æ•°ã®è¦ç´ を埋ã‚込んã§ä½¿ã†ã€‚
- å„オブジェクトãªã©ã®ãƒ–ãƒãƒƒã‚¯ã‚’æ§‹æˆã™ã‚‹ã®ã«ä¸€ç•ªé©ã—ãŸæ„味的㪠XHTML を使ã†ã€‚
- ãã†ã„ã£ãŸã‚‚ã®ãŒç„¡ã‘れã°ã€æ§‹é€ を作る一般的ãªè¦ç´ (例ãˆã°
<span>
ã‚„<div>
ï¼‰ã‹æ–‡è„ˆã«é©ã—ãŸè¦ç´ (例ãˆã°<ul>
ã‚„<ol>
ä¸ã®<li>
)を使ã†ã€‚ - å…ƒã®ã‚¹ã‚ーマã®ãã®éƒ¨åˆ†ã‚’的確ã«è¡¨ç¾ã™ã‚‹ XHTML ã®æ§‹æˆãƒ–ãƒãƒƒã‚¯ãŒç„¡ã‘れã°ã€å…ƒã®ã‚¹ã‚ーマ由æ¥ã®åå‰ã«åŸºã¥ã„㟠class åを使ã†ã€‚å…ƒã®ã‚¹ã‚ーマä¸ã®åå‰ãŒå¤§æ–‡å—ã¨å°æ–‡å—を区別ã—ãªã„ãªã‚‰ã°ã€ç›¸å½“ã™ã‚‹ã‚‚ã®ã‚’å…¨ã¦å°æ–‡å—ã«ã—ã¦ä½¿ã†ã€‚æ§‹æˆè¦ç´ ã®ï¼ˆæ˜Žç¢ºã«å®šç¾©ã•れãŸã‚¹ã‚ーマã§ã¯ãªãï¼‰æ—¥å¸¸èªžé¢¨ã®æš—黙的ãªåå‰ã‚‚ã€ä½¿ã„ã‚„ã™ã•ã®ãŸã‚ã«ã€ç›¸å½“ã™ã‚‹ã‚‚ã®ã‚’å…¨ã¦å°æ–‡å—ã«ã—ã¦ä½¿ã†ã¹ãã§ã‚る。構æˆè¦ç´ åä¸ã®ã‚¹ãƒšãƒ¼ã‚¹ã¯ãƒ€ãƒƒã‚·ãƒ¥ '-' æ–‡å—ã«ãªã‚‹ã€‚
- 最後ã«ã€å…ƒã®ã‚¹ã‚ーマã«å¾“ã£ãŸãƒ‡ãƒ¼ã‚¿ã®å½¢å¼ãŒã‚ã¾ã‚Šã«é•·ã‹ã£ãŸã‚Šäººé–“ã«é¦´æŸ“ã¾ãªã„å ´åˆã€æ§‹é€ を作る一般的ãªè¦ç´ ã®ä»£ã‚りã«
<abbr>
を使ã„ã€å¿ 実ã«å¾“ã£ãŸãƒ‡ãƒ¼ã‚¿ã‚’(表ç¾ã‚’記述ã™ã‚‹å±žæ€§ã§ã‚る)'title' 属性ã®ä¸ã¸ã€ç›¸å½“ã™ã‚‹ã‚ˆã‚Šç°¡æ½”ã§äººé–“ã«èªã¿ã‚„ã™ã„ã‚‚ã®ã‚’è¦ç´ 自体ã®ä¸ã¸ç½®ã。<abbr>
ã®ã“ã®ä½¿ã„æ–¹ã«é–¢ã™ã‚‹èª¬æ˜Žã®ã‚ˆã‚Šå¤šãã®æƒ…å ±ï¼šHuman vs. ISO8601 dates problem solved(人間 vs ISO8601 日付å•題ã®è§£æ±ºï¼‰
実用的ãªå°Žå…¥ã‚’考ãˆãŸå ´åˆã€Internet Explorerã§ã¯ <abbr>
è¦ç´ ã®CSSスタイリングãŒãã¡ã‚“ã¨ã‚µãƒãƒ¼ãƒˆã•れã¦ã„ãªã„ãŸã‚ã€åˆ¥ã®è¿½åŠ è¦ç´ ãŒå¿…è¦ã«ãªã‚‹ã“ã¨ãŒã‚ã‚‹ã®ã‚’覚ãˆã¦ãŠãã¨è‰¯ã„ã§ã—ょã†ã€‚
書å¼
通例
iCalendar 標準è¦ç´„(RFC2445)ãŒhCalendarã®ã‚‚ã¨ã¨ãªã£ã¦ã„ã¾ã™ã€‚
注æ„:ã“ã®ä»•様書ã®ç·¨é›†è€…ãŠã‚ˆã³åŸ·ç†è€…ã¯ã€ã€ŒiCal-Basicã€ã®å–り組ã¿ã‚’追ã„〠hCalendarã®ã‚³ã‚¢ãƒ»ãƒ—ãƒãƒ•ァイルを iCal-Basic ã«åŸºã¥ã„ãŸã‚‚ã®ã«ã—よã†ã¨ã—ã¦ã„ã¾ã™ã€‚リンク先ã«ã‚ã‚‹ç¾åœ¨ã®è‰ç¨¿ã‚’ã”覧ãã ã•ã„。
hCalendarã®åŸºæœ¬çš„ãªæ›¸å¼ã¯ã€iCalendarã®ã‚ªãƒ–ジェクトãŠã‚ˆã³å¤‰æ•°åã‚’classåã¨ã—ã¦å°æ–‡å—ã§æ›¸ãよã†ã«ã—ãŸã‚‚ã®ã§ã™ã€‚ã¾ãŸã€iCalendarã®å…¥ã‚Œåæ–¹å¼ã«é…ç½®ã•れãŸã‚ªãƒ–ジェクトをã€ãã®ã¾ã¾å…¥ã‚Œåæ–¹å¼ã®XHTMLã«ãƒžãƒƒãƒ”ングã—ã¾ã™ã€‚
ルート class å
hCalendar ã®ãƒ«ãƒ¼ãƒˆ class å㯠"vcalendar" ã§ã™ã€‚"vcalendar" ã¨ã„ㆠclass åãŒæŒ‡å®šã•れãŸè¦ç´ 自体を hCalendar ã¨å‘¼ã³ã¾ã™ã€‚
イベント㮠class å㯠"vevent" ã§ã™ã€‚"vevent" ã¨ã„ㆠclass åãŒæŒ‡å®šã•れãŸè¦ç´ 自体を hCalendar イベントã¨å‘¼ã³ã¾ã™ã€‚
hCalendar を書ã便宜上ã€"vevent" 㨠"vcalendar" ã¯ä¸¡æ–¹ã¨ã‚‚パースã®ãŸã‚ã®ãƒ«ãƒ¼ãƒˆ class åã¨ã—ã¦æ‰±ã„ã¾ã™ã€‚文書上㫠"vevent" ã¨ã„ㆠclass åãŒã‚ã£ã¦ "vcalendar" ãŒç„¡ã„å ´åˆã«ã¯ã€æ–‡æ›¸å…¨ä½“㌠"vcalendar" ã®æ–‡è„ˆã‚’æŒã¡ã¾ã™ã€‚
vevent ã¯ã‚¤ãƒ™ãƒ³ãƒˆä¸€è¦§ã®ãれãžã‚Œã«å¿…è¦ã ã¨è€ƒãˆã‚‹ã¹ãã§ã™ã€‚
プãƒãƒ‘ティã¨ã‚µãƒ–プãƒãƒ‘ティ
ã‚ã‚‹ hCalendar ã®ãƒ—ãƒãƒ‘ティã¯ãã® hCalendar 内ã®è¦ç´ ã§è¡¨ç¾ã—ã¾ã™ã€‚ä¸€è¦§ã«æŒ™ã’ãŸãƒ—ãƒãƒ‘ティ㮠class åã‚’æŒã¤è¦ç´ ã¯ã€ãã®ãƒ—ãƒãƒ‘ティã®å€¤ã‚’表ã—ã¦ã„ã¾ã™ã€‚プãƒãƒ‘ティãŒã‚µãƒ–プãƒãƒ‘ティをæŒã¤ã“ã¨ã‚‚ã‚りã€ãƒ—ãƒãƒ‘ティ用ã®è¦ç´ ã®å†…å´ã«ã‚ã‚‹è¦ç´ ã§è¡¨ç¾ã—ã¾ã™ã€‚
プãƒãƒ‘ティ一覧
hCalendar ã®ãƒ—ãƒãƒ‘ティ(サブプãƒãƒ‘ティã¯ã“ã®ã‚ˆã†ã«æ‹¬å¼§å†…ã«è¨˜è¿°ï¼‰
å¿…é ˆãƒ—ãƒãƒ‘ティ
- dtstart(ISO date)
- summary
ä»»æ„プãƒãƒ‘ティ
- location
- url
- dtend(ISO date)ã€duration(ISO date duration)
- rdateã€rrule
- categoryã€description
- uid
- geo(latitudeã€longitude)
- …… 編注:ã“れã¯å®Œå…¨ãªä¸€è¦§ã§ã¯ãªã(完全ã§ãªã„ã“ã¨ã¯ã¾ã£ãŸãç„¡ã„よりã¯ã‚ˆã„ã®ã§ã™ï¼‰ã€ä»Š RFC2445 ã‹ã‚‰ã“ã“ã¸æŒã£ã¦ãã¦ç·¨é›†ã—ã¾ã—ãŸã€‚上ã®ãƒ—ãƒãƒ‘ティ一覧㯠hCalendar ã§æœ€ã‚‚一般的ã«ä½¿ã‚れるもã®ã§ã™ã€‚
More Semantic Equivalents
ã„ãã¤ã‹ã®ãƒ—ãƒãƒ‘ティã«ã¤ã„ã¦ã¯æ„味的ã«ã‚‚ã£ã¨ãµã•ã‚ã—ã„ã‚‚ã®ãŒã‚ã‚‹ã®ã§ã€ç‰¹åˆ¥ãªæ‰±ã„方をã—ã¾ã™ã€‚例ãˆã°ã“ã†ã§ã™ã€‚
- iCalendar ã®
URL
ã¯ã€hCalendar ã§ã¯class="vevent"
ã‚’æŒã¤è¦ç´ 内ã®<a class="url" href="...">...</a>
ã«ãªã‚Šã¾ã™ã€‚ - iCalendar ã®
ATTENDEE
ã€CONTACT
ã€ORGANIZER
ã¯ã€hCalendar ã§ã¯ hCard ã§è¡¨ç¾ã§ãã¾ã™ï¼ˆMAY)。 - iCalendar ã®åå‰ã®ä»˜ã„ãŸ
LOCATION
ï¼ˆä½æ‰€ã‚„ä½ç½®æƒ…å ±ã‚’ä¼´ã£ã¦ã„ã‚‹å¯èƒ½æ€§ãŒã‚る)ã¯ã€hCalendar ã§ã¯ hCard を埋ã‚込んã§è¡¨ç¾ã§ãã¾ã™ï¼ˆMAYï¼‰ã€‚åŒæ§˜ã«ã€ä½æ‰€ã«ã‚ˆã‚‹LOCATION
㯠adr ã§ã€ä½ç½®æƒ…å ±ï¼ˆç·¯åº¦ã¨çµŒåº¦ï¼‰ã«ã‚ˆã‚‹LOCATION
㯠Geo ã§è¡¨ç¾ã§ãã¾ã™ï¼ˆMAY)。 - iCalendar ã®
UID
ã¯å˜ã«åˆ¥ã®æ„味ã€hCalendar ã®ã‚¤ãƒ™ãƒ³ãƒˆç”¨ã«ä½¿ã‚れる URL ã¨ã„ã†ã“ã¨ã«ãªã‚Šã¾ã™ã€‚
Singular vs. Plural Properties
å˜æ•°ã®ãƒ—ãƒãƒ‘ティ(例ãˆã° vCard ã® "N" ã‚„ "FN")ã¨ã—ã¦ã¯ãã® class ã‚’æŒã¤æœ€åˆã®åå«è¦ç´ ãŒåŠ¹æžœã‚’æŒã¡ã€ãã®ä»–ã¯ã™ã¹ã¦ç„¡è¦–ã—ã¾ã™ã€‚
複数ãŒè¨±ã•れるプãƒãƒ‘ティ(例ãˆã° vCard ç”±æ¥ã® "TEL")ã¨ã—ã¦ã¯ã€å„ class ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ãŒãã®ãƒ—ãƒãƒ‘ティã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã‚’作るã¹ãã§ã™ã€‚サブタイプをæŒã¤è¤‡æ•°ã®ãƒ—ãƒãƒ‘ティ(例ãˆã° vCard ã® WORKã€HOMEã€CELL ã‚’æŒã£ãŸ TEL)ã¯ã€ãã®ãƒ—ãƒãƒ‘ティ用ã®å…±é€šè¦ç´ を共有ã—ã¦æœ€é©åŒ–ã§ãã¾ã™ã€‚サブタイプã®å„インスタンスã¯ã€ãƒ—ãƒãƒ‘ティã®è¦ç´ ã®åå«è¦ç´ ã«é©åˆ‡ã«åˆ†é¡žã•れるã®ã§ã™ã€‚
Plural Properties Singularized
複数形ã®ãƒ—ãƒãƒ‘ティåã¯ç›¸å½“ã™ã‚‹å˜æ•°å½¢ã«ãªã‚‹ãŸã‚ã€å…ƒã®è¤‡æ•°å½¢ã®ãƒ—ãƒãƒ‘ティã§è¤‡æ•°ã®æ§‹æˆè¦ç´ ã‚’æŒã¤ä¸€ã¤ã ã‘ã®å€¤ãŒè¨±ã•ã‚Œã‚‹å ´åˆã§ã‚‚ã€ãã®è¤‡æ•°ã®æ§‹æˆè¦ç´ ã¯ãれãžã‚Œåå‰ãŒå˜æ•°å½¢ã®ãƒ—ãƒãƒ‘ティåã§è¡¨ç¾ã—ã€ãã®ãƒ—ãƒãƒ‘ティã¯å€¤ãŒè¤‡æ•°ã§ã‚‚有効ã§ã€ä¸Šè¨˜ã®è¤‡æ•°å€¤ãƒ—ãƒãƒ‘ãƒ†ã‚£ã®æ‰±ã„ã®å¯¾è±¡ã¨ãªã‚Šã¾ã™ã€‚
Human vs. Machine readable
ã‚るプãƒãƒ‘ティ用㫠<abbr>
を使ã£ãŸå ´åˆã€è¦ç´ 内容ã§ã¯ãªãã€ãã® <abbr>
è¦ç´ ã® 'title
' 属性ãŒãƒ—ãƒãƒ‘ティã®å€¤ã«ãªã‚Šã¾ã™ã€‚ã“ã®ä»•様ã§ã¯æ¬¡ã® iCalendar プãƒãƒ‘ティã«å¯¾ã—ã¦ãã†ã„ã£ãŸ <abbr>
ã®ä»•様を推奨ã—ã¾ã™ã€‚
- DTSTARTã€DTENDã€DURATIONã€RDATEã€RRULE
例
以下ã¯ã€iCalendarã®ä¾‹ã§ã™ã€‚
BEGIN:VCALENDAR PRODID:-//XYZproduct//EN VERSION:2.0 BEGIN:VEVENT URL:http://www.web2con.com/ DTSTART:20071005 DTEND:20071020 SUMMARY:Web 2.0 カンファレンス LOCATION:アージェントホテル\, サンフランシスコ\, カリフォルニア州 END:VEVENT END:VCALENDAR
hCalendar書å¼ã§åŒæ§˜ã®ã‚¤ãƒ™ãƒ³ãƒˆã‚’表示ã™ã‚‹å ´åˆã€å„種è¦ç´ ãŒæœ€é©åŒ–ã•れã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚å…ƒã«ãªã£ãŸå†…容ã«ã¤ã„ã¦ã¯ã€hCalendar Example 1 Stepsã‚’ã”覧ãã ã•ã„。
<div class="vevent"> <a class="url" href="http://www.web2con.com/">http://www.web2con.com/</a> <span class="summary">Web 2.0 カンファレンス </span>: <abbr class="dtstart" title="2007-10-05">10月5æ—¥</abbr>〜 <abbr class="dtend" title="2007-10-20">19æ—¥</abbr>〠<span class="location">アージェントホテル(カリフォルニア州サンフランシスコ)</span>ã«ã¦ã€‚ </div>
ã“れã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«è¡¨ç¤ºã•れã¾ã™ã€‚
http://www.web2con.com/ Web 2.0 カンファレンス : 10月5日〜 19æ—¥ 〠アージェントホテル(カリフォルニア州サンフランシスコ)ã«ã¦ã€‚
ã“れã¯ã€'本物ã®'hCalendarマイクãƒãƒ•ォーマットã§ã‚りã€ãƒ‘ーサーãŒã“ã®ãƒšãƒ¼ã‚¸å†…ã‹ã‚‰æ¤œå‡ºã§ãã‚‹ã“ã¨ã«æ³¨æ„ã—ã¦ãã ã•ã„。
Example 2
The following example specifies a scheduled meeting that begins at 8:30 AM EST on March 12, 1998 and ends at 9:30 AM EST on March 12, 1998.
BEGIN:VCALENDAR BEGIN:VEVENT UID:guid-1.host1.com DTSTAMP:19980309T231000Z DESCRIPTION:Project XYZ Review Meeting SUMMARY:XYZ Project Review DTSTART:19980312T133000Z DTEND:19980312T143000Z LOCATION:1CP Conference Room 4350 END:VEVENT END:VCALENDAR
The equivalent in hCalendar:
<div class="vevent"> <h3 class="summary">XYZ Project Review</h3> <p class="description">Project XYZ Review Meeting</p> <p>To held on <abbr class="dtstart" title="1998-03-12T08:30:00-05:00">12 March 1998 from 8:30am EST</abbr> until <abbr class="dtend" title="1998-03-12T09:30:00-05:00">9:30am EST</abbr></p> <p>Location: <span class="location">1CP Conference Room 4350</span></p> <small>Booked by: <span class="uid">guid-1.host1.com</span> on <abbr class="dtstamp" title="19980309T231000Z">9 Mar 1998 6:00pm</abbr></small> </div>
This could be displayed as:
XYZ Project Review
Project XYZ Review Meeting
To held on 12 March 1998 from 8:30am EST until 9:30am EST
Location: 1CP Conference Room 4350
Booked by: guid-1.host1.com on
9 Mar 1998 6:00pmNote 1: The product information is not necessary since hCalendar is an interchange format. When transforming hCalendar back into iCalendar, the transforming engine should add its own product ID.
Note 2: A surrounding <span class="vcalendar">
element is optional, and is left out as such. It is optional since the context of a vcalendar is implied when a vevent is encountered. The implied context/scope is that of the document. Authors may explicitly use elements with class="vcalendar" to wrap sets of vevents that all belong to the same calendar, e.g. when publishing multiple calendars on the same page.
Note 3: The version information is unnecessary in hCalendar markup directly since the version will be defined by the profile of hCalendar that is used/referred to in the 'profile' attribute of the <head> element.
Note 4: ISO8601 dates (required by iCalendar) are not very human friendly. In addition, the year is often understood implicitly by humans from the context. Thus <abbr>
elements are used to simultaneously provide a human friendly date and/or time in the visible contents of the element, while placing the respective machine parsable comprehensive ISO8601 datetime in the 'title' attribute.
The notation YYYY-MM-DDThh:mm:ss
should be used for better readability, following the format of RFC 3339.
Note 5: The difference between the DTEND ISO8601 date (2005-10-08) and the human readable date (7) is NOT a mistake. DTEND is exclusive, meaning, that the event ends just before the DTEND. Thus for events which start on one day and end on another day, the DTEND date must be specified as the day after the day that a human would say is the last day of the event.
Note 6: The location in this example contains implicit structure (venue name, city, state) which could be marked up explicitly as an hCard. See hCalendar brainstorming: hCard locations for a informative explanation of how to do this.
Buttons
Don't forget that you can add one of our buttons to the page, to indicate the presence of hCalendar microformats. For example: . If you can link it back to this page (or even page on your website, about your use of the microformat), so much the better!
More Examples
See hCalendar examples for more examples, including examples from iCalendar RFC 2445 converted into hCalendar.
Examples in the wild
This section is informative. The number of hCalendar examples in the wild has expanded far beyond the capacity of being kept inline in this specification. They have been moved to a separate page.
See hCalendar Examples in the wild.
Implementations
This section is informative. The number of hCalendar implementations has also expanded beyond the capacity of keeping them inline. They have been moved to a separate page.
See hCalendar Implementations.
References
Normative References
Informative References
- CSS1
- hCalendar term introduced and defined on the Web, 20040930
- FOO Camp 2004 HTML For Calendars presentation, 20040911
- FOO Camp 2004 Simple Semantic Formats presentation, 20040910
- iCal-Basic (latest) (draft 04)
- Contributed from http://developers.technorati.com/wiki/hCalendar
- XHTML 1.1
- Internet Mail Consortium Personal Data Interchange vCard and vCalendar
Specifications That Use hCalendar
Similar Work
Further Reading
- Groupware Bad by Jamie Zawinski crystalizes the reason for hCalendar (emphasis added):
Right now people can do that by publishing .ics files, but it's not trivial to do so, and it's work on the part of other people to look at them. If it's not HTML hanging off our friend's home page that can be viewed in any browser on a public terminal in a library, the bar to entry is too high and it's useless.
- Jason Klemow's blog
- Moving forward with microformats by Jon Udell provides an hCalendar example and some discussion.
- See also blogs discussing this page and the hCalendar tag
- Wikipedia article on hCalendar (requires expansion)
Related Pages
- hCalendar - specification
- hCalendar intro - plain English introduction
- hCalendar authoring - learn how to add hCalendar markup to your existing events.
- hCalendar creator (hCalendar creator feedback) - create your own hCalendar events.
- hCalendar cheatsheet - hCalendar properties
- hCalendar examples in the wild - an on-going list of websites which use hCalendars.
- hCalendar implementations - websites or tools which either generate or parse hCalendars
- hCalendar FAQ - If you have any questions about hCalendar, check here.
- hCalendar parsing - normative details of how to parse hCalendar.
- hCalendar profile - the XMDP profile for hCalendar
- hCalendar singular properties - an explanation of the list of singular properties in hCalendar.
- hCalendar tests - a wiki page with actual embedded hCalendar events to try parsing.
- hCalendar "to do" - jobs to do
- hCalendar advocacy - encourage others to use hCalendar.
- iCalendar implementations
This specification is a work in progress. As additional aspects are discussed, understood, and written, they will be added. These thoughts, issues, and questions are kept in separate pages.
- hCalendar Brainstorming - brainstorms and other explorations relating to hCalendar
- hCalendar issues - issues with the specification