Tag: icalendar

创建.ICS文件,添加到outlook

我正在创建一个简单的应用程序,允许用户下载.ICS文件,并将它们导入到他们选择的日历应用程序/站点中。 我对创建过程感到满意,但对于在outlook中打开它们有疑问。 (将在C#,ASP.NET中开发) 当我打开一个时,它会添加一个新日历,并且不会将事件添加到现有日历中。 是否可以打开并添加到现有日历中? 以下生成ICS文件的示例(显然是测试数据) BEGIN:VCALENDAR VERSION:2.0 PRODID:-//hacksw/handcal//NONSGML v1.0//EN BEGIN:VEVENT DTSTART:20100623T1101100Z DTEND:20100623T1401400Z SUMMARY: England v Slovenia LOCATION: Some where in South Africa END:VEVENT BEGIN:VEVENT DTSTART:20100624T1101100Z DTEND:20100624T1401400Z SUMMARY: England v Slovenia again (replay) LOCATION: Some where in South Africa END:VEVENT END:VCALENDAR

从谷歌日历导入时,D日日历有错误的日期?

我正在使用D日日历,我不确定,但我遇到了一个奇怪的问题。 我的代码基本上都有这个 iCalendar iCal = iCalendar.LoadFromStream(file.InputStream); foreach (Event evt in iCal.Events) { DateTime start = evt.DTStart.Date; DateTime end = evt.DTEnd.Date; // loop through it and get values. } 然而,当我从谷歌日历导入日历时,结束日期对我导入的一些东西搞砸了。 比如我有这个 标题:不应该显示时间:太阳,3月21日(全天)。 然而,当我导入它时。我说开始日期是21日,但结束日期是22日应该是21日。 不知道发生了什么。 我不确定我能给你们的其他信息。 我制作了一个cmd行应用程序并将.ics文件放入其中。 如果有人知道一个好地方我可以上传它,你们可以看到我的意思。 这就是我的cmd行正在输出的内容。 Start Date Of this Record Some one day task 3/25/2010 12:00:00 AM End Date of this Record 3/26/2010 […]

通过iCal文件发送电子邮件邀请

在这一点上我已经坚持这个问题几个小时了,我无法弄清楚问题。 我想通过iCal文件发送电子邮件(gmail)邀请, 如果我发送一个事件,它可以工作(接收者可以收到邀请,可以点击“是”将此邀请添加到接收者的日历) 但它失败了(如果我发送两个事件,gmail将只显示一个邀请,如果我点击是我想将它添加到我的日历中,它只会添加一个邀请到我的日历)。 代码如下: protected void Page_Load(object sender, EventArgs e) { MailMessage msg = new MailMessage(“testxxx@gmail.com”, “testxxx@gmail.com”, “test”, “test”); msg.IsBodyHtml = true; SmtpClient smtp = new SmtpClient(“smtp.gmail.com”, 587); smtp.Credentials = new NetworkCredential(“test”, “test”); msg = GetCalanderInviteMsg3(msg); smtp.EnableSsl = true; smtp.Send(msg); } public static MailMessage GetCalanderInviteMsg3(MailMessage msg) { StringBuilder sb = new StringBuilder(); sb.AppendLine(“BEGIN:VCALENDAR”); sb.AppendLine(“PRODID:-//Google […]

如何在Google日历中创建“recurData”?

我想使用Google API创建日历的定期事件。 我正在关注链接: Google Calendar API 我没有得到如何创建“recurData”。 我无法修改String并将其作为参数传递。 尝试过DDay.iCal版本0.80。 也。 DDay.iCal 给出了一些示例代码。我尝试了它们。 我能够创建“.ics”文件。 但是当我将此文件内容作为“recurData”传递时 出错:{“执行请求失败: http : //www.google.com/calendar/feeds/user@domain.com/private/full? gsessionid = AHItK5wrSIoJVawFjGt- 0g ”} 我的icf文件内容是: BEGIN:VCALENDAR VERSION:2.0 PRODID:-//DDay.iCal//NONSGML ddaysoftware.com//EN BEGIN:VEVENT CREATED:20100309T132930Z DESCRIPTION:The event description DTEND:20100310T020000 DTSTAMP:20100309T132930Z DTSTART:20100309T080000 LOCATION:Event location SEQUENCE:0 SUMMARY:18 hour event summary UID:396c6b22-277f-4496-bbe1-d3692dc1b223 END:VEVENT BEGIN:VEVENT CREATED:20100309T132930Z DTEND;VALUE=DATE:20100315 DTSTAMP:20100309T132930Z DTSTART;VALUE=DATE:20100314 SEQUENCE:0 SUMMARY:All-day event UID:ac25cdaf-4e95-49ad-a770-f04f3afc1a2f END:VEVENT […]

使用RFC 5545重复规则安排每月事件“每N个工作日”

我正在尝试使用RFC5545重复规则在C#中复制Google日历中的某些计划function。 每月使用Google日历安排两个选项,每个第N个月,即:每个月的每个第10天,无论工作日如何,这都会明显发生。 我的重复规则是: FREQ=MONTHLY;BYMONTHDAY=10 另一种选择是在每个工作日的第N个星期重复这一事件,即:“ 每隔一个星期日每隔一个月 ,这就是我在编写规则时遇到的问题。 我的规则应该适用于第二条规则? 我已经尝试过FREQ=MONTHLY;BYDAY=SU ,但我不确定如何/用于指定的参数只能在每个月的第2个星期日执行此操作。 我正在使用DDay iCal C#库来生成我的重复规则,但我很高兴能够显示规则字符串应该是什么样子来实现所需的行为。 我正在使用RFC 5545重复规则 。

如何使用DDay.iCal创建Outlook“约会”?

我正在使用DDay库来创建iCal事件,以便我的网站用户可以在他们的日历中添加内容。 我希望他们在Office 2010中添加约会而不是会议请求(希望其他人也是如此)。 当我使用库并将方法设置为PUBLISH时,它确实显示为约会,但它报告在日历中找不到会议。 然后,当我单击无需响应时,该项目将被删除,并且不会保留在其日历中。 如果我将方法更改为REQUEST,它将显示为会议请求。 这可能是第二好的选择,但’to’字段是空白的。 如果这是我能做的最好的,我怎样才能设置’到’字段? 我想我会让他们回应自己。 private static string CreateCalendarEvent( string title, string body, DateTime startDate, double duration, string location, string organizer, string eventId, bool allDayEvent) { // mandatory for outlook 2007 if(String.IsNullOrEmpty(organizer)) throw new Exception(“Organizer provided was null”); var iCal = new iCalendar { Method = “PUBLISH”, Version = “2.0” }; […]

c#regex以ical格式解析文件并用结果填充对象

我正在尝试解析具有以下格式的文件: BEGIN:VEVENT CREATED:20120504T163940Z DTEND;TZID=America/Chicago:20120504T130000 DTSTAMP:20120504T164000Z DTSTART;TZID=America/Chicago:20120504T120000 LAST-MODIFIED:20120504T163940Z SEQUENCE:0 SUMMARY:Test 1 TRANSP:OPAQUE UID:21F61281-FB76-467F-A2CC-A666688BD9B5 X-RADICALE-NAME:21F61281-FB76-467F-A2CC-A666688BD9B5.ics END:VEVENT 我需要在每一行上取结肠或半冒号后面的值,并将它们放入一个对象的道具中。 我正试图用Regex做这件事,但在使用它之后我基本上忘记了我所知道的关于Regex的一切(可能一年两次)。 任何帮助,将不胜感激。

如何使用DDay.iCal在iCal Feed中设置时区?

我正在使用DDay.iCal创建一个iCal feed。 它有效,但我无法弄清楚如何设置Feed的时区。 这是基本代码: iCalendar iCal = new iCalendar(); // <– Set the Timezone HERE to PST (Pacific Daylight Time) Event evt = iCal.Create(); evt.Start = new iCalDateTime(meeting.MeetDate); evt.End = evt.Start.AddHours(4); // 4 hour event evt.Description = “This meeting…”; evt.Summary = “Event Summary”; 有任何想法吗?

如何在没有Outlook的情况下通过邮件发送Outlook任务请求?

我需要复制Outlookfunction/function以将某些任务请求发送给某人( 请参阅此处 ),但使用ASP.NET C#从Web服务器发送邮件,并且不在Web服务器上安装Outlook(因此无法使用Outlook自动化)。 我已经检查了执行此操作的可能性,似乎将任务发送给某人的常见方法是生成iCalendar格式的.ics文件,并将该文件包含在邮件中( 请参阅此stackoverflow问题 )。 它工作得很好,但是outlook没有发送任务的等价性: 事件(VEVENT)有一个开始日期和结束日期(如任务)但没有“完成”字段(这是有意义的,因为它是一个事件,而不是一个任务)。 Todos(VTODO)只有截止日期,没有开始日期或结束日期, 并且outlook不支持它 。 我检查了Outlook在包含任务请求的邮件中确切发送的content-type:application/ms-tnef :它包含一个winmail.dat文件( content-type:application/ms-tnef )编码为Base64 。 在该文件(这是一个二进制文件)中,有一个对IPM.TaskRequest的引用,这似乎是我需要的。 我检查了网络并找到了一些TNEF解析器,但我需要oposite: 从C#代码生成一个包含任务请求的TNEF文件 。 我想知道是否有办法做到这一点。 使用库(免费或不免费)不是问题。

替换现有的Outlook日历约会

我正在做一个icalndar预约一代的工作; 这将允许代表查看活动的网站,并单击提供的链接以将约会添加到他们的日历。 我有一个工作程序集,它将根据一组已知的信息(开始日期,结束日期,标题等)生成一个ics格式的输出(作为物理文件或流)。 我为日历约会生成的输出示例如下: BEGIN:VCALENDAR PRODID:-//Microsoft Corporation//Outlook 12.0 MIMEDIR//EN VERSION:2.0 METHOD:PUBLISH X-MS-OLK-FORCEINSPECTOROPEN:TRUE BEGIN:VEVENT CLASS:PUBLIC CREATED:20110210T124703Z DESCRIPTION:Anything Else\n\nHopefully some useful information would be written here\n DTEND:20110212T100000Z DTSTAMP:20110210T124600Z DTSTART:20110212T090000Z LAST-MODIFIED:20110210T124703Z LOCATION:Dummy Location PRIORITY:5 SEQUENCE:0 SUMMARY;LANGUAGE=en-us:Dummy Meeting TRANSP:OPAQUE UID:040000008200E00074C5B7101A82E00800000000B0D1061C57C8CB01000000000000000 010000000281117EDC1194242B64F0247C54DB401 X-ALT-DESC;FMTTYPE=text/html:\n\n\n\n\nDummy Meeting\n\n\n\n\n&lt\;h1&gt\;Anyt hing Else&lt\;/h1&gt\;&lt\;p&gt\;Hopefully some useful information would b e written here&lt\;/p&gt\;\n\n\n\n\n X-MICROSOFT-CDO-BUSYSTATUS:BUSY X-MICROSOFT-CDO-IMPORTANCE:1 END:VEVENT END:VCALENDAR 我被问到的是; 是否可以更改约会,但下次有人请求提醒时,它会检测到他们的日历中已存在的约会并更新它而不是创建新条目? […]