Asp.net

如何創建包含多個 VEVENT 的 .ICS 文件以導入現有 Outlook 日曆

  • February 22, 2022

我需要允許使用者下載具有多個會議日期的活動。為此,我創建了一個要下載的記憶體流,它會生成一個 .ics 文件。例如:

開始:VCALENDAR
PRODID: - // 公司 // 產品 // EN
版本:2.0
方法:發布
開始:事件
摘要:事件主題
地點:活動地點
UID:1227559810-8527e2c-20847@domain.com
描述:一些描述
DTEND:20081101T200000Z
DTSTART:20081101T200000Z
優先級:3
結束:事件
開始:事件
...
結束:事件
結束:VCALENDAR

如果我在這個文件中只包含一個 VEVENT,它會將它保存到我現有的 Outlook 日曆中。但是,當我有多個 VEVENT 時,它想將其作為新日曆打開並將其歸檔在“其他日曆”下。

有沒有辦法(不使用文件 - 從 Outlook 中導入)指定日曆在打開時應自動導入現有日曆?

更新:澄清一下,每個 VEVENT 都與一個“約會”有關。然而,可能有也可能沒有重複的模式。

-麥克風

我認為這行不通。Outlook 在導入這些“開放”規範方面受到限制。我在嘗試導入具有多個聯繫人的 vCard 文件時遇到了類似的問題。我最終拆分了文件並在 Outlook 中編寫了一個腳本來導入目錄中的所有文件。

這是可能的,使用網際網路日曆(如來自Google)。Outlook 2007 具有訂閱 Internet 日曆(在帳戶設置下)的功能,並且 Outlook 2003 具有可用的開源外掛。您可以創建一個“只讀”的可訪問提要。格式就像

BEGIN:VCALENDAR  
PRODID:-//XYZ Corp//My Product//EN  
VERSION:2.0  
CALSCALE:GREGORIAN  
METHOD:PUBLISH  
X-WR-CALNAME:My Calendar  
X-WR-TIMEZONE:(GMT-05:00) Eastern Time (US & Canada)  
BEGIN:VEVENT  
DTSTART:20061021T100000Z  
DTEND:20061021T130000Z  
DTSTAMP:20090211T175526Z  
UID:5f98dfd5-ac72-4ae1-b3c2-799a4e7c91f9  
CLASS:PUBLIC  
CREATED:20071104T183833Z  
DESCRIPTION: My description text.  
LAST-MODIFIED:20071104T183833Z  
LOCATION: 123 Anywhere Street\; Anyplace, NJ 12345\; US  
SEQUENCE:0  
STATUS:CONFIRMED  
SUMMARY: My summary text.  
TRANSP:OPAQUE  
END:VEVENT  
BEGIN:VEVENT  
DTSTART:20061101T170000Z  
DTEND:20061101T180000Z  
DTSTAMP:20090211T175526Z  
UID:6eaef015-eb90-4e94-8e6c-0003b928969a  
CLASS:PUBLIC  
CREATED:20071104T183833Z  
DESCRIPTION: My description for number 2.  
LAST-MODIFIED:20071104T183833Z  
LOCATION: 123 Anywhere Street\; Anyplace, NJ 12345\; US  
SEQUENCE:0  
STATUS:CONFIRMED  
SUMMARY: My summary for #2.  
TRANSP:OPAQUE  
END:VEVENT  
END:VCALENDAR

引用自:https://stackoverflow.com/questions/334334