Users not being able to change events in linked calendars with iCal.
We're having recurring problems with users not being able to edit events they should have access to in linked calendars they have write access to when using CalDAV and iCal 3.0.5 and 5.0.10. We see a large number of situations like the one I've listed below. This type of issue occurs across a number of different types of events.
In this example, user10@calendar.exmpl.com has shared their calendar with user11@calendar.exmpl.com giving user11 "Manager" privileges.
user11 uses iCal 3.0.5, and has user10's calendar linked and named user10-Calendar.
user10 has created the actual event, which appears in user10-Calendar in user11's iCal as a shared calendar.
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Apple Inc.//iCal 3.0//EN
CALSCALE:GREGORIAN
BEGIN:VEVENT
SEQUENCE:1
TRANSP:OPAQUE
UID:12BC707C-8E3F-4A64-A351-4DE1C557287E
DTSTART;TZID=US/Pacific:20081120T163000
STATUS:CONFIRMED
DTSTAMP:20081118T212119Z
SUMMARY:Portfolio Review
CREATED:20081121T220556Z
DTEND;TZID=US/Pacific:20081120T173000
END:VEVENT
END:VCALENDAR
user11 tries to move the event to a different time. iCal logs this activity:
2008-11-21 14:06:54.057 iCal[57710:7937] -[DAVPut:0x170082b0 _initHTTPRequest] WRITE
PUT /dav/user11/user10-Calendar/12BC707C-8E3F-4A64-A351-4DE1C557287E.ics HTTP/1.1
User-Agent: DAVKit/3.0.4 (652); CalendarStore/3.0.5 (841); iCal/3.0.5 (1270); Mac OS X/10.5.5 (9F33)
Authorization: Basic Authentication
Content-Type: text/calendar
If-Match: "17477-1227043281"
Content-Length: 710
2008-11-21 14:06:54.130 iCal[57710:7937] -[DAVPut:0x170082b0 _bodyStreamRead:bufferLength:error:atEOF:] WRITE
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Apple Inc.//iCal 3.0//EN
CALSCALE:GREGORIAN
BEGIN:VTIMEZONE
TZID:US/Pacific
BEGIN:DAYLIGHT
TZOFFSETFROM:-0800
TZOFFSETTO:-0700
DTSTART:20070311T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
TZNAME:PDT
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0700
TZOFFSETTO:-0800
DTSTART:20071104T020000
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
TZNAME:PST
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
SEQUENCE:2
TRANSP:OPAQUE
UID:12BC707C-8E3F-4A64-A351-4DE1C557287E
DTSTART;TZID=US/Pacific:20081120T170000
STATUS:CONFIRMED
DTSTAMP:20081121T220653Z
SUMMARY:Portfolio Review
CREATED:20081121T220556Z
DTEND;TZID=US/Pacific:20081120T180000
END:VEVENT
END:VCALENDAR
2008-11-21 14:06:54.395 iCal[57710:7937] -[DAVPut:0x170082b0 _computeHeaders] READ
HTTP/1.1 403 Forbidden
Date: Fri, 21 Nov 2008 22:06:54 GMT
Content-Length: 0
2008-11-21 14:06:54.396 iCal[57710:807] CalDAV CalDAVWriteEntityQueueableOperation failed: status 'HTTP/1.1 403 Forbidden' request:
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Apple Inc.//iCal 3.0//EN
CALSCALE:GREGORIAN
BEGIN:VTIMEZONE
TZID:US/Pacific
BEGIN:DAYLIGHT
TZOFFSETFROM:-0800
TZOFFSETTO:-0700
DTSTART:20070311T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
TZNAME:PDT
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0700
TZOFFSETTO:-0800
DTSTART:20071104T020000
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
TZNAME:PST
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
SEQUENCE:2
TRANSP:OPAQUE
UID:12BC707C-8E3F-4A64-A351-4DE1C557287E
DTSTART;TZID=US/Pacific:20081120T170000
STATUS:CONFIRMED
DTSTAMP:20081121T220653Z
SUMMARY:Portfolio Review
CREATED:20081121T220556Z
DTEND;TZID=US/Pacific:20081120T180000
END:VEVENT
END:VCALENDAR
... response:
HTTP/1.1 403 Forbidden
Date: Fri, 21 Nov 2008 22:06:54 GMT
Content-Length: 0
There is an exception listed on the Zimbra server:
2008-11-21 14:06:54,902 INFO [btpool0-261] [aname=user11@calendar.exmpl.com;ip=192.168.77.34;u a=DAVKit/3.0.4 (652);; CalendarStore/3.0.5 (841);; iCal/3.0.5 (1270);; Mac
OS X/10.5.5 (9F33);] mailbox - FileUploadServlet received Upload: { accountId=45f80e7e-ad50-41e3-b660-681440636118, time=Fri Nov 21 14:06:54 GMT-08:00 2008, uploadId=e
e6d4117-79ca-481d-bc73-848fd360e8cf:7f8466dc-559e-4b1b-b9d5-778643bd0782, 12BC707C-8E3F-4A64-A351-4DE1C557287E.ics}
2008-11-21 14:06:54,941 INFO [btpool0-262] [aname=user11@calendar.exmpl.com;ip=192.168.66.121; ua=DAVKit/3.0.4 (652);; CalendarStore/3.0.5 (841);; iCal/3.0.5 (1270);;
Mac OS X/10.5.5 (9F33);] mailbox - FileUploadServlet received Upload: { accountId=45f80e7e-ad50-41e3-b660-681440636118, time=Fri Nov 21 14:06:54 GMT-08:00 2008, uploadI
d=ee6d4117-79ca-481d-bc73-848fd360e8cf:b5c4a301-8d82-466b-b499-13873e5cde1e, 12BC707C-8E3F-4A64-A351-4DE1C557287E.ics}
2008-11-21 14:06:54,943 WARN [btpool0-261] [aname=user11@calendar.exmpl.com;ip=192.168.77.34;u a=DAVKit/3.0.4 (652);; CalendarStore/3.0.5 (841);; iCal/3.0.5 (1270);; Mac
OS X/10.5.5 (9F33);] dav - can't create resource 12BC707C-8E3F-4A64-A351-4DE1C557287E.ics
com.zimbra.common.service.ServiceException: resource unreachable: Conflict
ExceptionId:btpool0-261:1227305214943:f10cbe96c63779c4
Code:service.RESOURCE_UNREACHABLE
at com.zimbra.common.service.ServiceException.RESOURC E_UNREACHABLE(ServiceException.java:275)
at com.zimbra.cs.service.UserServlet.doHttpOp(UserSer vlet.java:1239)
at com.zimbra.cs.service.UserServlet.putRemoteResourc e(UserServlet.java:1187)
at com.zimbra.cs.service.UserServlet.putRemoteResourc e(UserServlet.java:1169)
at com.zimbra.cs.dav.resource.RemoteCalendarCollectio n.createItem(RemoteCalendarCollection.java:149)
at com.zimbra.cs.dav.service.method.Put.handle(Put.ja va:44)
at com.zimbra.cs.dav.service.DavServlet.service(DavSe rvlet.java:145)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:820)
at org.mortbay.jetty.servlet.ServletHolder.handle(Ser vletHolder.java:487)
at org.mortbay.jetty.servlet.ServletHandler$CachedCha in.doFilter(ServletHandler.java:1093)
at org.mortbay.servlet.UserAgentFilter.doFilter(UserA gentFilter.java:81)
at org.mortbay.servlet.GzipFilter.doFilter(GzipFilter .java:148)
at org.mortbay.jetty.servlet.ServletHandler$CachedCha in.doFilter(ServletHandler.java:1084)
at org.mortbay.jetty.servlet.ServletHandler.handle(Se rvletHandler.java:360)
at org.mortbay.jetty.security.SecurityHandler.handle( SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(Se ssionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle(Co ntextHandler.java:716)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebA ppContext.java:406)
at org.mortbay.jetty.handler.ContextHandlerCollection .handle(ContextHandlerCollection.java:211)
at org.mortbay.jetty.handler.HandlerCollection.handle (HandlerCollection.java:114)
at org.mortbay.jetty.handler.HandlerWrapper.handle(Ha ndlerWrapper.java:139)
at org.mortbay.jetty.handler.rewrite.RewriteHandler.h andle(RewriteHandler.java:350)
at org.mortbay.jetty.handler.HandlerWrapper.handle(Ha ndlerWrapper.java:139)
at org.mortbay.jetty.Server.handle(Server.java:313)
at org.mortbay.jetty.HttpConnection.handleRequest(Htt pConnection.java:506)
at org.mortbay.jetty.HttpConnection$RequestHandler.co ntent(HttpConnection.java:844)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser. java:644)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpPa rser.java:205)
at org.mortbay.jetty.HttpConnection.handle(HttpConnec tion.java:381)
at org.mortbay.io.nio.SelectChannelEndPoint.run(Selec tChannelEndPoint.java:396)
at org.mortbay.thread.BoundedThreadPool$PoolThread.ru n(BoundedThreadPool.java:442)
And user11 sees on-screen the error:
Access to "Portfolio Review" in "user10-Calendar" in account "calendar.exmpl.com" is not permitted.
Ther server responded: "HTTP/1.1 403 Forbidden" to operation CalDAVWriteEntityQueueableOperation.
Go Offline / Revert to Server
The user *can* edit the event successfully in the web interface. I've submitted this as bug 33429, but was hoping that someone in the forums may also be able to help.
Thanks,
Dave