[C#] 使用 iCal.NET 產生 .ICS 行事曆事件+鬧鐘

2023-02-06


雖然已經  21 世紀了,我也不知道為何業主非常喜歡 .ICS 這東西

不過,沒辦法收費辦事情,之前,我是自己大概看一下規格後自己產生,

但是最近客戶要做一些改動需求,不能夠這麼單幹了,查詢了一下,有一套一直有在更新的套件 Ical.Net


解釋一下案例,因為只是測試,所以我暫定,就是我程式執行時間的一周後,產生一個事件,十分鐘 後結束

並且再開始前 15 分鐘提醒。


1. Nuget 下載套件 ,我看了一下一直都有再更新升級到 .NET 6   支援

https://www.nuget.org/packages/Ical.Net


2. 接下來就是程式碼的部分


這裡面 注意 event 中的 Summary 一定要寫,因為我用  outlook 的行事曆,如果沒有寫就不會出現任何訊息

非常的奇怪


測試引入 outlook.com 行事曆後


3. 關於時區得部分可以參考這篇文章

https://unicode-org.github.io/cldr-staging/charts/37/supplemental/zone_tzid.html

台灣的是 Asia/Taipei



大概就是這樣,不過因為 summary 問題讓我一直測不出來,之後配合這一篇

https://blog.no2don.com/2023/01/c-aspnet-core-60-wwwroot.html

你就可以做出 下載 .ics 的行事曆預約事件

reference:

https://icalendar.org/RFC-Specifications/iCalendar-RFC-5545/

https://unicode-org.github.io/cldr-staging/charts/37/supplemental/zone_tzid.html

https://github.com/rianjs/ical.net


當麻許的超技八 2014 | Donma Hsu Design.