可以通过iCal文件禁用iCalendar事件的警报/提醒吗?

时间:2013-06-25 14:09:32

标签: outlook icalendar

快速简介:

我开发了一个项目管理系统,通过向他们发送iCal文件,帮助我们的销售代表跟踪事件。目前一切都运转良好,但他们不希望有弹出的提醒。相反,他们只希望事件在他们的日历上。


警告:

遗憾的是,让他们更改电子邮件客户端的设置并不是一个可接受的解决方案。


研究

根据iCalendar specifications,可以设置VALARM组件以便定义警报/提醒,但我似乎无法弄清楚如何一起禁用警报。

这似乎适用于Outlook 2013,但我不知道原因:

BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 15.0 MIMEDIR//EN
VERSION:2.0
METHOD:PUBLISH
X-MS-OLK-FORCEINSPECTOROPEN:TRUE
BEGIN:VEVENT
CLASS:PUBLIC
CREATED:20130625T191929Z
DTEND;VALUE=DATE:20130627
DTSTAMP:20130625T174218Z
DTSTART;VALUE=DATE:20130626
LAST-MODIFIED:20130625T191929Z
PRIORITY:5
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:test
TRANSP:TRANSPARENT
UID:040000008200E00074C5B7101A82E00800000000304147C0A971CE01000000000000000
    0100000004A6B73D79A177C4ABFF1E0DCAE7E273F
X-ALT-DESC;FMTTYPE=text/html:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//E
    N">\n<HTML>\n<HEAD>\n<META NAME="Generator" CONTENT="MS Exchange Server ve
    rsion 08.00.0681.000">\n<TITLE></TITLE>\n</HEAD>\n<BODY>\n<!-- Converted f
    rom text/rtf format -->\n\n<P DIR=LTR><SPAN LANG="en-us"></SPAN></P>\n\n</
    BODY>\n</HTML>
X-MICROSOFT-CDO-BUSYSTATUS:FREE
X-MICROSOFT-CDO-IMPORTANCE:1
X-MS-OLK-AUTOFILLLOCATION:TRUE
END:VEVENT
END:VCALENDAR

我错过了一些明显的东西吗?

谢谢。

4 个答案:

答案 0 :(得分:1)

如果我没记错的话,如果VALARM部分丢失,至少某些版本的Outlook会将提醒设置为默认值(15分钟)。你可以将闹钟设置为遥远的未来吗?

答案 1 :(得分:1)

如果我正确理解您的问题,接收端的客户端将自动添加(默认)警报,尽管原始VEVENT中没有指定。

iCalendar或iMIP / iTIP无法明确传达任何警报与事件无关的信息。就iMIP / iTIP而言,在您发送的VEVENT中发出警报实际上是一种不好的做法。毕竟,我最好的警报概念可能不属于你。

就你的例子而言,这可能是由于TRANSP属性被设置为TRANPARENT(你不关心它,因为它不消耗你的时间),但这是一个相当疯狂的猜测。

答案 2 :(得分:1)

iCalendar中无法指定VALARM组件并将其标记为“已禁用”。它既存在又活跃,或者根本不存在。

某些客户端(如Outlook)没有禁用警报的概念(以后可以重新启用它)。我知道的唯一客户确实支持禁用警报的想法是Notes,但可能还有其他人。

实现这一目标的唯一方法是使用并非每个人都支持的X-属性或简单地删除有问题的VALARM。

您可以考虑在系统中使用“发送警报”首选项,以便用户可以指示他们是否希望您发送警报。如果用户选择退出,则只需从您生成的内容中删除VALARM组件,然后再发送给它们。

答案 3 :(得分:0)

嗯,我有同样的问题。我创建了一个.ics,用于根据Excel中的表格批量导入几十个日历保全。我没有定义VALARM,但是在使用mac calendar导入时,它是本地继承的,并应用了我的默认警报。比较有警报和无警报的事件,我发现所有事件都有VALARM块,但我标记为没有提醒的所有事件都具有完全相同的触发值设置。好像在00:55:45Z处将其设置为4/1/1976值是模棱两可的,没有警报。

BEGIN:VALARM
  X-WR-ALARMUID:#####
  TRIGGER;VALUE=DATE-TIME:19760401T005545Z
  X-APPLE-DEFAULT-ALARM:TRUE
  ACTION:NONE
END:VALARM

这就是为什么4/1/1976哈哈。典型的编程方式是,在选择随机日期或名称后总会有一个原因。有点喜欢Python的名字... “创始人史蒂夫·乔布斯和史蒂夫·沃兹尼亚克于1976年4月1日[1]创立了苹果计算机公司,并于1977年1月3日在加利福尼亚州库比蒂诺成立了公司[2]。” -维基百科