3

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

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

4

1 回答 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()

问题

  1. url 示例不是 ical 服务器的主要 url
  2. 如果您查看 calendars = principal.calendars() 的代码,它会忽略响应。
  3. 如果您的主要网址不正确,则不会发出任何错误,它将仅返回一组空日历。

调试帮助

在文件 objects.py 中,有一个用于 DAVObject 的方法,称为 children。您可以修改代码以包含一些调试信息。如果您可以粘贴以下内容并将您的信息粘贴到问题中。

    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):
于 2010-10-18T23:12:13.283 回答