fbpx

iCal Applicatoin - iCal Java API 研究與教學


iCal Introduction

iCal是由Apple所發佈的一種數據交換格式,其前身為iCalendar。iCal主要是一種資料交換格式,專門用來針對行事曆管理、事件發佈。把活動用ICAL發佈主要的好處是可以跟各種線上日曆、支援ICAL的手機/PDA做結合。

Feed

iCal的資料格式稱為Feed,通常以副檔名*.ics或者xml的方式存在,目前已有許多api支援各種程式的設計。

發布
目前最常使用email

行事曆
目前最廣泛的應用為行事曆,由於iCal的核心在於事件與時間之間的關係,因此最近常應用在發佈會議等通知上,像是Google Calendar, Tounderbird Calendar, Msn Calender, M$ Outlook 2007, Windows vista行事曆... 等等行事曆管理軟體中都可以出現iCal的身影。

事件應用
iCal的事件應用像是在場地的租借,通知會議,生日節慶通知,群體公告發布,總而言之與"時間性"相關的應用才是iCal的精隨。

Implements

  • 匯入ics

網路上有許多已經設計好的feed可供下載
icalshare
無意間看到了農民曆,來玩看看吧
農民曆下載網址:http://icalshare.com/article.php?story=20061228050113376

Tounderbird 安裝

email發佈事件
經過測試後,只要在mail的夾檔中加入想發佈的 feed (.ics檔案) 就可以讓web mail觸發事件,但是目前 Java 上的 API ical4j 產出的檔案不被接受,這個部分要在測試。

Format

Feed的格式參照RFC 2445[http://tools.ietf.org/html/rfc2445]
檔案格式如下

*.ics檔案格式

iCal檔簡述

基本上iCal有點像是html, 使用BEGIN與END來包圍, 最外層是VCALENDAR, 而內部有許多元件組成, 如此的元件像是VEVENT,VTIMEZONE.....等等.
一個VCALENDAR允許包含許多相同的元件, 也可以使用Base64編碼加入物件檔案, 如下

email傳送

要使用email傳送iCal必須在mail中加入一項MimeBody, 如下

 

重點在"Content-Type: text/calendar",當我們的MUA(Mail User Agent,像是Outlook,Sunbird,Web Mail)看到這個MimeBody時, 就會解析其中的內容並且產生對應動作

Java Code

使用JavaMail API設計能夠讓Gmail,Thunderbird觸發會議邀請事件的email message