如何通过Python访问苹果iCal服务器
我想通过Python访问苹果的iCal服务器,这个服务器是在Mac OS X Snow Leopard Server上运行的。服务器已经正常工作,通过iCal应用程序使用它也没问题。现在我需要通过Python访问这个服务器,把它当作资源规划的后台。我已经查看了CalDav模块(http://packages.python.org/caldav/index.html),但是那里的示例没有找到任何日历,尽管Principal-URL是正确的。
那么,我该如何用Python读取用户日历中某个时间范围内的事件呢?
1 个回答
1
[这不是解决方案,而是调试的方法]
来自caldav模块文档中的示例:
from datetime import datetime
import caldav
from caldav.elements import dav, cdav
# Principal url
url = "https://user:pass@hostname/user/Calendar"
client = caldav.DAVClient(url)
principal = caldav.Principal(client, url)
calendars = principal.calendars()
问题
- 这个网址示例并不是ical服务器的主要网址
- 如果你查看代码中的 calendars = principal.calendars(),你会发现它忽略了响应。
- 如果你的主要网址不正确,那么在没有任何错误提示的情况下,它会返回一个空的日历集合。
调试帮助:
在文件objects.py中,有一个叫做children的方法属于DAVObject。你可以修改代码,加入一些调试信息。如果你能把以下内容粘贴上来,并在问题中也粘贴你的信息,那就更好了。
response = self.client.propfind(self.url.path, body, depth)
print response, self.url.path #provide additional info
print response.raw #provide additional info
for r in response.tree.findall(dav.Response.tag):