2011-11-08 71 views
3

我正在嘗試查看由我的系統在Google日曆中生成的ical格式的日曆供稿。我通過Google日曆的「通過URL添加」功能在「其他日曆」下拉菜單中執行此操作,並將該URL提供給動態生成的ics文件。來自iCal供稿源URL的事件在Google日曆中顯示爲「繁忙」

Google日曆不會成功讀取Feed中的事件並創建日曆,但是所有事件只顯示爲「忙碌」,沒有任何細節(摘要,說明等),而不是事件發生的時間。這些事件在Google日曆視圖中也有一個「私人」鎖定圖標。

我查看了生成的iCal文件的內容,但沒有看到Google日曆會將事件呈現爲私有的任何原因。每個VEVENT都將其CLASS屬性設置爲「PUBLIC」。我還在OSX的iCal應用程序中訂閱了相同的URL,並且顯示的所有細節都完美顯示。

下面是一個生成的文件的iCal(敏感信息已刪除):

BEGIN:VCALENDAR 
PRODID:-//My Calendar//iCal Class MIMEDIR//EN 
VERSION:2.0 
METHOD:REQUEST 
X-WR-CALNAME:Joe Smith 
BEGIN:VEVENT 
DTSTART:20111124T050000Z 
DTEND:20111124T050000Z 
TRANSP:OPAQUE 
SEQUENCE:0 
UID:ToDos_82 
DTSTAMP:20111108T143800Z 
DESCRIPTION;LANGUAGE=en;ENCODING=QUOTED-PRINTABLE:Quisque convallis elementum dui at tristique. 
SUMMARY;LANGUAGE=en;ENCODING=QUOTED-PRINTABLE:Test Event 
PRIORITY:0 
CLASS:PUBLIC 
STATUS:CONFIRMED 
END:VEVENT 
BEGIN:VEVENT 
DTSTART:20111124T050000Z 
DTEND:20111124T050000Z 
TRANSP:OPAQUE 
SEQUENCE:0 
UID:ToDos_83 
DTSTAMP:20111108T143800Z 
DESCRIPTION;LANGUAGE=en;ENCODING=QUOTED-PRINTABLE:Proin venenatis ullamcorper dui quis porttitor. 
SUMMARY;LANGUAGE=en;ENCODING=QUOTED-PRINTABLE:Another Test Event 
PRIORITY:0 
CLASS:PUBLIC 
STATUS:CONFIRMED 
END:VEVENT 
BEGIN:VEVENT 
DTSTART:20111108T050000Z 
DTEND:20111111T050000Z 
LOCATION;LANGUAGE=en;ENCODING=QUOTED-PRINTABLE:CLS HQ 
TRANSP:OPAQUE 
SEQUENCE:0 
UID:Events_10 
DTSTAMP:20111108T143800Z 
DESCRIPTION;LANGUAGE=en;ENCODING=QUOTED-PRINTABLE:Doing some more testing here 
SUMMARY;LANGUAGE=en;ENCODING=QUOTED-PRINTABLE:Yet Another Test Event 
PRIORITY:0 
CLASS:PUBLIC 
STATUS:CONFIRMED 
END:VEVENT 
END:VCALENDAR 

回答

2

好吧,看來我已經解決了這個問題。我提供GCal的日曆URL沒有以文件名結尾(我使用帶有URL重寫的PHP框架)。我更新了URL,附加了「/calendar.ics」並訂閱了GCal中的URL,現在所有事件都顯示正常,顯示所有細節。

+0

同樣的問題對我來說也是如此.. thnx – Dave

0

我測試過相同的內容,似乎顯示了罰款,在我的谷歌日曆。我使用「其他日曆」下的「通過URL添加」選項添加它。所有的細節都是可見的,沒有鎖或其他古怪的東西給我看。

這聽起來像你是動態生成內容按需。您是否嘗試過將其轉儲到靜態文件並以此方式添加 - 而不是一個永久的解決方案,只是爲了查看這對GCal有什麼影響?

這可能是動態生成日曆數據時考慮到請求者並在此基礎上更改事件可見性。例如,如果日曆服務器位於Intranet上,則很容易出現這種情況。

+0

我上面發佈的數據與GCal從我的服務器請求它時收到的數據是完全一樣的,因爲它打的URL是我編寫的PHP腳本,無論它在哪裏被請求,它都會生成相同的內容從。我想這不會傷害只是在我的服務器上設置一個靜態文件,然後看看是否有所作爲 –

1

VEVENTS被標記爲TRANSP:OPAQUE。根據RCF 5545這意味着他們阻止時間搜索的元素。

爲了使它們不阻塞,將其更改爲TRANSP:TRANSPARENT

相關問題