Python ical:获取一天的事件,包括重复发生的事件

Python ical:获取一天的事件,包括重复发生的事件,python,datetime,icalendar,rfc5545,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 从icalen

有没有一种简单的方法可以从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
从icalendar导入日历
对于日历中的事件,从ical(ical).walk('vevent'):
如果edate>ref_ref_day_开始和event.get('dtstart')。dt
但是重复事件只在
行走中发生一次

我可以看出,对于无止境地重复事件进行无限事件迭代可能是一个问题。但肯定还有比自己计算重复次数更简单的方法,对吧


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

是的。通过gcalcli来代替Ical

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


[1]:您可以使用pyICSParser

它将获取一个ICS文件,并返回datetime对象列表中重复事件的日期

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


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

我需要Python中的结果,抱歉有点不清楚。它能做到这一点(我没有发现太多)还是只使用命令行?嗯,这个想法很好,但我无法让它工作
pip
抛出一个
IOError
,所以我下载了源代码。我将示例改编为
mycal=iCalendar();mycal.字符串加载(ical);打印mycal.get_event_instances(开始='20150301',结束='20150315')
以尝试使其工作,但获得一个很长的异常跟踪。看起来是一个不错的包,但文档不存在,并且无法读取Google日历文件。它失败的原因是:
RFC5545指定:\'\xc2\xa73.6.1指定“VEVENT”日历组件不能嵌套在另一个日历组件中。\',下面的行不兼容\n行:17-END:VTIMEZONE'
(这个问题还没有解决。我已经尝试了一个小的赏金,该赏金过期了。任何解决方案仍然是最受欢迎的!)