无法将日历事件保存到Darwin日历服务器

2 投票
1 回答
749 浏览
提问于 2025-04-18 01:52

我正在尝试搭建一个日历服务器,选择了达尔文的开源日历服务器作为我的服务器。我按照快速入门页面上提到的步骤操作,成功让服务器运行起来了。

接着,我写了一个Python脚本来保存一个日历事件:

from datetime import datetime
import caldav
from caldav.elements import dav, cdav

# Caldav url
url = "http://apprentice:apprentice@localhost:8008/calendars/users/apprentice/calendar/"

vcal = """BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Example Corp.//CalDAV Client//EN
BEGIN:VEVENT
UID:1234567890
DTSTAMP:20100510T182145Z
DTSTART:20100512T170000Z
DTEND:20100512T180000Z
SUMMARY:This is an event
END:VEVENT
END:VCALENDAR
"""

client = caldav.DAVClient(url)
principal = caldav.Principal(client)
calendars = principal.calendars()
if len(calendars) > 0:
    calendar = calendars[0]
    print "Using calendar", calendar

    print "Renaming"
    calendar.set_properties([dav.DisplayName("Test calendar"),])
    print calendar.get_properties([dav.DisplayName(),])

    event = calendar.add_event(vcal)
    print "Event", event, "created"

    print "Looking for events in 2010-05"
    results = calendar.date_search(
        datetime(2010, 5, 1), datetime(2010, 6, 1))

    for event in results:
        print "Found", event

但是我遇到了以下错误:

文件 "nodesets.py",第22行,出错位置: principal = caldav.Principal(client) 文件 "/Library/Python/2.7/site-packages/caldav/objects.py",第256行, 初始化 cup = self.get_properties([dav.CurrentUserPrincipal()]) 文件 "/Library/Python/2.7/site-packages/caldav/objects.py",第151行, get_properties 抛出异常("你使用的CalDAV服务器在路径处理上有问题。")。

请问我哪里做错了?

谢谢!

1 个回答

0

我会先试试这个

url = "http://apprentice:apprentice@localhost:8008/"

撰写回答