Python ical:获取一天的活动,包括重复活动

时间:2015-03-03 10:19:53

标签: python datetime icalendar rfc5545

有没有一种简单的方法可以从Python中的ical文件中获取一天的事件?

对于非经常性的,有一天的事件,我使用了类似

的东西
from icalendar import Calendar
for event in Calendar.from_ical(ical).walk('vevent'):
    if edate > ref_ref_day_start and event.get('dtstart').dt < ref_day_end:
        # code here

但重复发生的事件只发生在walk一次。

我可以看到如何在没有结束的情况下重复事件的无限事件迭代可能是个问题。但仍然必须有一个比自己计算重复更简单的方法,对吗?

(我找不到太多文档。我阅读了与重复发生的事件相关的icalendar测试,但它似乎没有做这样的事情。)

2 个答案:

答案 0 :(得分:2)

是的。取代Ical而不是 gcalcli

gcalcli是一个Python应用程序,允许您从命令行访问Google日历

[1]:https://github.com/insanum/gcalcli

答案 1 :(得分:2)

你可以使用pyICSParser。

它将采用ICS文件并在日期时间对象列表中返回重复事件的日期。

您需要指定希望返回这些事件的时间窗口,否则在没有UNTILCOUNT参数的情况下重复出现的事件将呈现无限列表。

(免责声明我是该软件包的作者)