添加通知Ical.net中的活动
问题描述:
我使用ical.net为我的解决方案提供Outlook Internet日历集成。添加通知Ical.net中的活动
我从凌晨00:00到凌晨00:00(次日)有几个活动。 当我向事件添加警报时,在Outlook中,这些事件显示为没有警报。
这是我如何添加警报和事件的代码。
foreach (var taskItem in taskItems.Where(t => t.DueDate != null && t.DueDate.HasValue == true))
{
var hyperlink = Request.GetBaseUrl();
hyperlink = string.Format("{0}/TaskBoard/Tasks?listId={1}", hyperlink, taskItem.ListId);
var dueDate = new DateTime(taskItem.DueDate.Value.Ticks, DateTimeKind.Utc);
var alarm = new Alarm()
{
Summary = taskItem.Title,
Trigger = new Trigger(TimeSpan.FromMinutes(-15)),
Action = AlarmAction.Display
};
var calendarEvent = new Event
{
Class = "PUBLIC",
Summary = taskItem.Title,
Created = new CalDateTime(taskItem.Created.Value),
Description = string.Format("Open board: {0}", hyperlink),
Start = new CalDateTime(dueDate),
End = new CalDateTime(dueDate.AddDays(1)),
Uid = taskItem.Id.ToString(),
Location = taskItem.ListTitle
};
calendarEvent.Alarms.Add(alarm);
calendar.Events.Add(calendarEvent);
}
这是造成iCal档案内容
BEGIN:VCALENDAR
PRODID:-//github.com/rianjs/ical.net//NONSGML ical.net 2.2//EN
VERSION:2.0
X-WR-CALNAME:Agile Kanban - Meine Aufgaben
BEGIN:VEVENT
CLASS:PUBLIC
CREATED:20170814T114839
DESCRIPTION:Open board: https://localhost:44300/TaskBoard/Tasks?listId=637
90e98-cacc-4f03-992f-f3276db06dda
DTEND:20170827T220000Z
DTSTAMP:20170829T170757Z
DTSTART:20170826T220000Z
LOCATION:Room1
SEQUENCE:0
SUMMARY:Task changed
UID:1d4b10bf-7434-41d9-8dd2-311e3679b0a7
BEGIN:VALARM
ACTION:Display
SUMMARY:Task changed
TRIGGER:-PT15M
END:VALARM
END:VEVENT
END:VCALENDAR
答
如何将事件添加到Outlook?
如果将它们作为http订阅提供,Outlook可能会故意忽略它。如何预先得到通知是一种非常个人的选择,因此日历客户往往会忽略来自外部来源的警报,无论是通过邀请(请参阅Sent email with iCal to outlook with valarm reminder)还是通过公共日历订阅添加。
如果你是做任务的进口和警报仍然没有露面,也可能是您的iCalendar流,以seing实际的iCalendar流,而不是你的代码会更加有用的一个问题。
最后,我隐约记得Outlook只处理VTODO的绝对报警(见https://tools.ietf.org/html/rfc5545#section-3.8.6.3),但我不知道它是否仍然如此。
我在原帖中添加了ICal的样本。即使我导入该文件,警报也没有设置。 –
您的活动已过去。 Outlook可能会在导入时剥离它。 – arnaudq
在进口时,它是在未来;-)但没有警报。你认为ical文件的格式是否正确? –