将约会转换为Icalendar windows8.1 c#
本文关键字:windows8 Icalendar 约会 转换 | 更新日期: 2023-09-27 18:20:57
在windows 8.1中,日历管理使用Windows.ApplicationModel.Appointments
命名空间。
我正在努力理解它,它很容易管理。
我可以:
-创建日历
-在设备上查看日历
-创建事件
其简单且精细;
我想知道如何从Windows.ApplicationModel.Appointments.Appointment()
对象转换为Icalendar对象。以便我可以在不同的应用程序上操作事件?
我的计划如下:
create-attachmet-->将其序列化为json字符串-->将此json字符串转换为Icalendar json字符串->将此json对象发送到不同的应用程序或web服务。
我可以在windows 8.1上提取约会的json对象,该对象具有以下结构:
{
"RoamingId": "",
"ReplyTime": null,
"OnlineMeetingLink": "",
"IsResponseRequested": true,
"IsOrganizedByUser": false,
"IsCanceledMeeting": false,
"AllowNewTimeProposal": true,
"UserResponse": 0,
"CalendarId": "",
"HasInvitees": false,
"LocalId": "",
"OriginalStartTime": null,
"Sensitivity": 0,
"Reminder": null,
"Recurrence": {
"WeekOfMonth": 0,
"Until": null,
"Unit": 3,
"Occurrences": 6,
"Month": 1,
"Interval": 3,
"DaysOfWeek": 32,
"Day": 1,
"TimeZone": "",
"RecurrenceType": 0
},
"Organizer": null,
"Location": "",
"Duration": "00:00:00",
"Details": "",
"BusyStatus": 0,
"AllDay": false,
"StartTime": "2014-09-08T08:08:00+03:00",
"Uri": null,
"Subject": "this",
"Invitees": {
}
}
然而,Icalendar的结构如下:
BEGIN:VCALENDAR
PRODID:-//Test Productions //Test Event//EN
VERSION:2.0
METHOD:REQUEST
BEGIN:VEVENT
SUMMARY:Test Event
DESCRIPTION:Description of Test Event
DTSTART:20140825T100000Z
DTEND:20140831T110000Z
RRULE:FREQ=DAILY;UNTIL=20141231T060000Z
LOCATION:Planer Earth
CLASS:PUBLIC
BEGIN:VALARM
TRIGGER:-PT1H
ACTION:EMAIL
END:VALARM
END:VEVENT
END:VCALENDAR
所以他们不容易匹配!
我的问题是:
windows 8.1 API中是否有内置功能可以直接为我提供Icalendar对象?
如果没有,那么:有没有第三方库(首选开源)为我做这件事?
如果没有,那么我必须自己做,并创建自己的库(对吗??)
我不想重新发明轮子!
Windows.ApplicationModel.Appointments不会说伊卡伦达语。
据我所知,唯一适用于icalendar的.net库是dday ical。我不知道该怎么推荐它。论坛仍然存在,但代码似乎没有得到积极维护,我看到了公认的性能问题,我不确定这些问题是否得到了解决。在任何情况下,它都不知道新的Windows.ApplicationModel.Appointments命名空间。
我不认为使用Json有什么意义。Icalendar是一种相当简单的格式,根据您的要求,您应该能够使用字符串方法直接从约会中编码生成Icalendars。