2012-11-28 40 views
3

有沒有辦法讓通用鏈接創建一個日曆事件作爲HTML錨點的URI?例如,你可以創建一個鏈接,創建一個電子郵件<a href="mailto:[email protected]?Subject=Subject%20line&body=Body%20content.">Link text</a>,你可以建立一個鏈接,發起一個電話與<a href="callto:5551234567">Link text</a>對於不是程序特定的日曆,是否有這樣的語法?(我知道有些東西像outlook://和iCal可以使用.ics文件,但我希望有一個節目無關的一個)HTML錨到日曆?

我正在尋找類似<a href="cal:Event%20title?start=timestamp&end=timestamp&description=Arbitrary%20description%20text>Link text</a>

回答

2

你需要使用的組合webcal鏈接以及一個動態創建的ics文件。的webcal使用情況如下:

<a href="webcal://createCal.php?title=Title&amp;start=timestamp&amp;end=timestamp&amp;description=Arbitrary%20description%20text">Link</a> 

然而,爲了獲得最佳的兼容性,我認爲最好的方法是隻直接鏈接到ics文件:

<a href="createCal.php?title=Title&amp;start=timestamp&amp;end=timestamp&amp;description=Arbitrary%20description%20text">Link</a> 

然後,在createCal.php文件(或者您選擇的編程語言),您可以執行類似於this的文章,以創建一個ics文件,用戶可以將其導入到他們選擇的日曆程序中。

下面是另一個樣,我發現的PHP文件的內容(請注意,這不是測試,但越是這樣一個起點):

<?php 
//Set the content-type of the file 
header("Content-Type: text/Calendar"); 
header("Content-Disposition: inline; filename=Calendar.ics"); 
echo "BEGIN:VCALENDAR\n"; 
echo "PRODID:-//Microsoft Corporation//Outlook 12.0 MIMEDIR//EN\n"; 
echo "VERSION:2.0\n"; 
echo "METHOD:PUBLISH\n"; 
echo "X-MS-OLK-FORCEINSPECTOROPEN:TRUE\n"; 
echo "BEGIN:VEVENT\n"; 
echo "CLASS:PUBLIC\n"; 
echo "CREATED:".date('Ymd\THis', time())."\n"; 
echo "DESCRIPTION:".$_GET['description']; 
echo "DTEND:".date('Ymd\THis', $_GET['end'])."\n"; 
echo "DTSTAMP:".date('Ymd\THis', time())."\n"; 
echo "DTSTART:".date('Ymd\THis', $_GET['start'])."\n"; 
echo "LAST-MODIFIED:".date('Ymd\THis', time())."\n"; 
echo "LOCATION:\n"; 
echo "PRIORITY:5\n"; 
echo "SEQUENCE:0\n"; 
echo "SUMMARY;LANGUAGE=en-us:".$_GET['title']."\n"; 
echo "TRANSP:OPAQUE\n"; 
echo "UID:040000008200E00074C5B7101A82E008000000008062306C6261CA01000000000000000\n"; 
echo "X-MICROSOFT-CDO-BUSYSTATUS:BUSY\n"; 
echo "X-MICROSOFT-CDO-IMPORTANCE:1\n"; 
echo "X-MICROSOFT-DISALLOW-COUNTER:FALSE\n"; 
echo "X-MS-OLK-ALLOWEXTERNCHECK:TRUE\n"; 
echo "X-MS-OLK-AUTOFILLLOCATION:FALSE\n"; 
echo "X-MS-OLK-CONFTYPE:0\n"; 
//Here is to set the reminder for the event. 
echo "BEGIN:VALARM\n"; 
echo "TRIGGER:-PT1440M\n"; 
echo "ACTION:DISPLAY\n"; 
echo "DESCRIPTION:Reminder\n"; 
echo "END:VALARM\n"; 
echo "END:VEVENT\n"; 
echo "END:VCALENDAR\n"; 
?> 
+0

我所期待的純HTML,因爲服務器我使用這個並不一定都安裝了PHP。 – Supuhstar

+0

我不確定你可以使用純html完成此操作,除非您希望它們可以下載的每個日曆項目都有不同的'.ics'文件。 – jmgardn2

+0

不,我不想使用'.ics'文件,就像我在我的問題 – Supuhstar