我需要能够通过vCalendar对象为Outlook提供“可下载”事件 - 如果我没有记错的话。
从我所做的研究中,我一直指出使用vObject。我已经查看了他们的用法示例,但由于之前没有格式化经验,我不清楚如何解决我的问题,因为我不确定哪些字段可用,或者它们被称为... < / p>
是否有一个直截了当的例子来创建一个非常简单的对象/ vCalendar事件,其中包含某种类型的名称/描述,它有一个开始和结束时间/日期?
我将使用Django,并且可能会根据请求动态创建这些“下载”。
答案 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())