如何创建适用于 gmail、yahoo、outlook 和其他客户端的通用 ics 文件,同时从编程应用程序发送?

How to create generic ics file which works for gmail, yahoo, outlook and other clients, while send from programming application?

我有基于 Django 框架的 Web 应用程序。应用程序通过 cal python 包创建 ICS 文件。我们将此 ICS 发送到不同的客户电子邮件 ID(gmail、outlook、yahoo 等)

所以我在以下场景中遇到问题

场景- 1. 创建活动 2.更新所有事件或更新事件的特定事件 3.取消所有事件或取消事件的特定事件。

创建 - 当我从 Web 应用程序发送 ICS 文件时,ICS 文件适用于 Gmail 和 Outlook,但不适用于雅虎,如果我从其他客户端(如 gmail)发送相同的文件,它也会在雅虎中创建事件。

更新- 相同的场景适用于更新案例。不与雅虎合作。

取消 - 在取消情况下,ICS 不适用于任何客户端。 我在取消文件中没有什么要点,比如 - 方法:取消 UID :与创建和更新案例中发送的相同。 以上两项为必填项

STATUS, SEQUENCE, RRULE - 这是必需的吗? 如果需要 SEQUENCE 那么这个变量的值是多少。

请提出您的建议。

答案摘要:

  1. 添加内容类型为 text/calendar.
  2. 的文件头
  3. 验证所有 ics 文件并修复空行、行尾等错误
  4. 对于在 Yahoo 中不起作用的循环系列中的单个实例的最终取消,通过电子邮件听起来 Hemendra 正在发布一个 "STATUS:CANCELLED",其中包含要删除的日期的 RECURRENCE-ID。这可能适用于某些应用程序,但有些人可能希望以正式的方式删除系列中的日期实例,即重新发布事件系列 (RRULE),并更新序列号并包括要排除的日期作为 EXDATE . "The EXDATE property is used to remove instances from a recurrence set defined by an RRULE."https://devguide.calconnect.org/Recurrences/

另见