如何通过Python访问Apples iCal-Server

时间:2010-09-21 08:03:25

标签: python icalendar caldav

我正在尝试通过Python在Mac OS X Snow Leopard服务器上访问Apples iCal-Server。服务器已启动并正在运行,通过iCal-Application处理它就可以了。 现在,我需要通过Python访问此服务器,以将其用作资源规划的后端。我已经查看了CalDav-Module(http://packages.python.org/caldav/index.html),但是那里提供的示例没有找到任何日历,尽管Principal-URL是正确的。

那么如何使用python从用户的日历中读取时间范围内的事件?

1 个答案:

答案 0 :(得分: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()

<强>问题

  1. url示例不是ical server
  2. 的主要网址
  3. 如果查看日历= principal.calendars()的代码,它会忽略响应。
  4. 如果您的主要网址不正确,则不会发出任何错误,只会返回一组空的日历。
  5. 调试帮助

    在文件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):