首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用vObject为Outlook创建“可下载”的vCalendar对象

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

Stack Overflow用户
提问于 2010-06-05 01:21:45
回答 3查看 1.9K关注 0票数 2

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

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

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

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-06-05 01:46:54

我认为最有用的字段是:

  • dtstart:start time
  • dtend:end time
  • summary
  • location
  • url
  • description

然后,您可以使用以下命令创建日历:

代码语言:javascript
复制
cal = vobject.iCalendar()

然后是一个事件:

代码语言:javascript
复制
event = cal.add('vevent')

并填充它:

代码语言:javascript
复制
event.add('summary').value = 'your summary'
event.add('dtstart').value = datetime.now() # or anything else
...

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

票数 2
EN

Stack Overflow用户

发布于 2011-06-30 10:13:28

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

代码语言:javascript
复制
output = cal.serialize().replace(u'\r\n', u'\n' ).strip()
票数 1
EN

Stack Overflow用户

发布于 2012-01-25 22:18:49

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

代码语言:javascript
复制
import uuid
...
event.add('uid',uuid.uuid4())
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2976350

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档