新的iCalendar"活动公告"在C#中

时间:2014-09-22 08:57:01

标签: c# lotus-notes icalendar

我正在尝试将新事件添加到使用c#发送邮件的Lotus Notes日历中。 一切正常,但我想设置“事件公告”类型而不是“会议”。

到目前为止,这是我的.ics

 StringBuilder bodyCalendar = new StringBuilder();
            bodyCalendar.AppendLine("BEGIN:VCALENDAR");
            bodyCalendar.AppendLine("METHOD:REQUEST");
            bodyCalendar.AppendLine("PRODID:Microsoft CDO for Microsoft Exchange");
            bodyCalendar.AppendLine("VERSION:2.0");
            bodyCalendar.AppendLine("BEGIN:VEVENT");
            bodyCalendar.AppendLine("DTSTAMP:{8}");
            bodyCalendar.AppendLine("DTSTART:{0}");
            bodyCalendar.AppendLine("SUMMARY:{7}");
            bodyCalendar.AppendLine("UID:{5}");
            bodyCalendar.AppendLine("ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=\"{9}\":MAILTO:{9}");
            foreach (MailAddress attendee in attendeeList)
            {
                bodyCalendar.AppendLine("ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=\"" + attendee + "\":MAILTO:" + attendee);
            }
            bodyCalendar.AppendLine("ACTION;RSVP=TRUE;CN=\"{4}\":MAILTO:{4}");
            bodyCalendar.AppendLine("ORGANIZER;CN=\"{3}\":mailto:{4}");
            bodyCalendar.AppendLine("LOCATION:{2}");
            bodyCalendar.AppendLine("DTEND:{1}");
            bodyCalendar.AppendLine("DESCRIPTION:{7}\\N");
            bodyCalendar.AppendLine("SEQUENCE:1");
            bodyCalendar.AppendLine("PRIORITY:5");
            bodyCalendar.AppendLine("CLASS:");
            bodyCalendar.AppendLine("CREATED:{8}");
            bodyCalendar.AppendLine("LAST-MODIFIED:{8}");
            bodyCalendar.AppendLine("STATUS:CONFIRMED");
            bodyCalendar.AppendLine("TRANSP:OPAQUE");
            bodyCalendar.AppendLine("X-MICROSOFT-CDO-BUSYSTATUS:BUSY");
            bodyCalendar.AppendLine("X-MICROSOFT-CDO-INSTTYPE:0");
            bodyCalendar.AppendLine("X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY");
            bodyCalendar.AppendLine("X-MICROSOFT-CDO-ALLDAYEVENT:FALSE");
            bodyCalendar.AppendLine("X-MICROSOFT-CDO-IMPORTANCE:1");
            bodyCalendar.AppendLine("X-MICROSOFT-CDO-OWNERAPPTID:-1");
            bodyCalendar.AppendLine("X-MICROSOFT-CDO-ATTENDEE-CRITICAL-CHANGE:{8}");
            bodyCalendar.AppendLine("X-MICROSOFT-CDO-OWNER-CRITICAL-CHANGE:{8}");
            bodyCalendar.AppendLine("BEGIN:VALARM");
            bodyCalendar.AppendLine("ACTION:DISPLAY");
            bodyCalendar.AppendLine("DESCRIPTION:REMINDER");
            bodyCalendar.AppendLine("TRIGGER;RELATED=START:-PT00H15M00S");
            bodyCalendar.AppendLine("END:VALARM");
            bodyCalendar.AppendLine("END:VEVENT");
            bodyCalendar.AppendLine("END:VCALENDAR");

我尝试在行

中使用0和1值
bodyCalendar.AppendLine("X-MICROSOFT-CDO-INSTTYPE:0");

但没有改变。有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

不确定“事件公告”的含义,但如果人们不接受/拒绝邀请,您希望使用METHOD:PUBLISH代替METHOD:REQUEST。这隐含意味着您还应该删除ATTENDEE属性。见http://tools.ietf.org/html/rfc5546#section-3.2.1