使用vObject(Python)为Outlook创建“可下载”的vCalendar对象

时间:2010-06-04 17:21:45

标签: python icalendar vcalendar

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

从我所做的研究中,我一直指出使用vObject。我已经查看了他们的用法示例,但由于之前没有格式化经验,我不清楚如何解决我的问题,因为我不确定哪些字段可用,或者它们被称为... < / p>

是否有一个直截了当的例子来创建一个非常简单的对象/ vCalendar事件,其中包含某种类型的名称/描述,它有一个开始和结束时间/日期?

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

3 个答案:

答案 0 :(得分: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()

答案 1 :(得分:1)

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

output = cal.serialize().replace(u'\r\n', u'\n' ).strip()

答案 2 :(得分:1)

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

import uuid
...
event.add('uid',uuid.uuid4())