代码之家  ›  专栏  ›  技术社区  ›  anonymous coward

使用vobject(python)为Outlook创建“可下载”vCalendar对象

  •  2
  • anonymous coward  · 技术社区  · 16 年前

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

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

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

    我将使用django,可能只会根据需要动态地创建这些“下载”。

    3 回复  |  直到 14 年前
        1
  •  2
  •   Olivier Verdier    16 年前

    我认为最有用的领域是:

    • 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() .

        2
  •  1
  •   animuson    14 年前

    Outlook2003似乎需要每个vevent都有一个uid字段。iCalendar模块似乎没有使用这些代码,因此我必须添加以下代码片段:

    import uuid
    ...
    event.add('uid',uuid.uuid4())
    
        3
  •  1
  •   Cosmin    14 年前

    我在Windows系统上也遇到了同样的问题。一旦我用LFS替换了CRLF,事情就开始对我起作用了。

    output = cal.serialize().replace(u'\r\n', u'\n' ).strip()
    
    推荐文章