2

如果我没记错的话,我需要能够通过 vCalendar 对象为 Outlook 提供“可下载”事件。

根据我所做的研究,我一直在使用vObject。我查看了他们的使用示例,但之前没有使用该格式的经验,我不清楚如何解决我的问题,因为我不确定哪些字段可用,或者它们被称为什么......

是否有一个简单的示例来创建一个非常简单的对象/vCalendar 事件,该事件具有某种类型的名称/描述,具有开始和结束时间/日期?

我将使用 Django,并且可能会根据要求动态创建这些用于“下载”。

4

3 回答 3

2

我认为最有用的领域是:

  • dtstart: 开始时间
  • dtend: 时间结束
  • summary
  • location
  • url
  • description

然后你创建一个日历:

cal = vobject.iCalendar()

然后是一个事件:

event = cal.add('vevent')

并填充它:

event.add('summary').value = 'your summary'
event.add('dtstart').value = datetime.now() # or anything else
...

现在如果你想通过 http 返回日历,你可以使用cal.serialize().

于 2010-06-04T17:46:53.883 回答
1

Outlook 2003 似乎需要每个 VEVENT 的 UID 字段。icalendar 模块似乎没有使用这些,所以我不得不添加以下代码片段:

import uuid
...
event.add('uid',uuid.uuid4())
于 2012-01-25T14:18:48.840 回答
1

我在 Windows 系统上遇到了同样的问题。一旦我用 lfs 替换 crlfs,事情就开始为我工作了。

output = cal.serialize().replace(u'\r\n', u'\n' ).strip()
于 2011-06-30T02:13:27.783 回答