Published

CalConnect Administrative

CC/A 0802:2008
February 2008 CalConnect Interoperability Test Report
TC IOPTEST
Patricia EgenAuthor Cyrus DabooAuthor Firdosh GhyaraAuthor Gren ElliottAuthor Michael DouglassAuthor Mu ZhangAuthor Simon VaillancourtAuthor Tomas HnetilaAuthor Tony BeckerAuthor
CalConnect Administrative




Foreword

This document incorporates by reference the CalConnect Intellectual Property Rights, Appropriate Usage, Trademarks and Disclaimer of Warranty for External (Public) Documents as located at

http://www.calconnect.org/documents/disclaimerpublic.pdf.

February 2008 CalConnect Interoperability Test Report

1.  Participants

Table 1 — Participants

OrganizationEvent AttendedParticipantsProducts Tested

Apple

Regular

Cyrus Daboo (iCal Server)
Wilfredo Sanchez (iCal Server)
Scott Adler (iCal Client)
Matt Shephard (iCal Client)
Haley Allen (iCal Client)

iCal version 3.0.2 (1236)

Kerio Technologies

Both
Both

Tomas Hnetila
Otakar Leopold

Kerio MailServer 6.5.0, a special build with CalDAV Realtime S2S Kerio Outlook Connector 6.5.0 (KOFF)

Marware

Regular

Tony Becker

Project X 1.3.2 (6043)

Microsoft

Regular

Firdosh Ghyara (Exchange)
Mu Zhang (Entourage)

Entourage 2008
Exchange 2007

Oracle

Regular
Mobile

Simon Vaillancourt
Mike Zhou

RPI/Bedework

Regular

Mike Douglass

Scalix

Regular

Florian von Kurnatowski
Gren Elliot

Sony Ericsson

Mobile

David Colter

Sun Microsystems

Regular

May Ma
Erwin Rehme
Yao Lu
Yu Chen
Robert Chien

Zimbra Yahoo

Regular

John Holder
Hitaine Patel

CalConnect Reps

Interop Manager
Interop Assistant
Logistics

Regular
Mobile
Both

Pat Egen
Don Egen
Dave Thewlis

Pat Egen “unofficially” tested Lotus Notes as part of the event

2.  Introduction

Participants of the testing event used predetermined test scenarios. Rather than post the full scenarios in this document, they can be found on the CalConnect website at the following URL: http://www.calconnect.org/ioptesting.shtml. The documents used in this testing event were the CalConnect CalDAV Matrix for Draft 08 and the iCalendar Testing Matrix. Summaries and specific findings and issues found are noted in this document.

3.  Comments and Findings

3.1.  CALDAV testing

3.1.1.  Server vendor comments

3.1.1.1.  Server 1

The Interop went very well; it was nice to see so many vendors present at the event. As products get more mature the issues found are more interesting and having a chance to discuss design implementation details with other vendors is a great opportunity to improve our products.

3.1.1.2.  Server 2

This server vendor was mostly focused on REALTIME Server-to-Sever Scheduling.

  • Very difficult to do all tests.

  • One client’s recurrent event exception — deleted instance

    • EXDATE is without time zone

    • causes incompatibility with other clients

  • Another client app — recurrent event exception — an instance moved to different time

    • time is missing in RECURRENCE-ID ⇒ other clients are not able to recognize the instance

    • causes incompatibility with other apps

  • Meeting requests/responses from a client are not recognized as iMIP messages

  • One client had an issue with meeting requests on delegated accounts

  • One client shows organizer twice in attendee list for meeting requests

  • One client doesn’t send update for declined meetings when location is changed

    • not possible to setup delegation without Open Directory

    • puts invitation to calendar without asking or noticing user when attendee address doesn’t match

  • iCalendar and iTIP interoperability problem (upper case MAILTO:)

  • One CalDAV client requires full permissions to other people calendars

    • not possible to set permissions for others to create calendars

  • An iCalendar client has free/busy incompatibility — returns free/busy in XML format by default. Also had an issue with meeting

    Realtime Server-to-Server scheduling

    • found & fixed bug RealTime scheduling

      • missing DAV:href in <C:recipient>

      • NOT YET fixed — incorrect Originator: address when sending meeting response

      • two spaces before HTTP version causes problem with another server (POST /pubcaldav/rtsvc HTTP/1.1) — fixed in URL configuration

      • saw a minor issue in one server when timezone definition contains comma/spaces (generated by a client in European timezone)

3.1.1.3.  Server 3

We started discovering some extra bugs on Wednesday morning, mostly in the freebusy URI stuff. We did quite a bit of testing with another CalDAV client. After determining the client doesn’t support (valid) absolute URLs in DAV responses we changed our server to return relative urls. They tested and ran into a problem which prevented testing scheduling. We didn’t have time to deal with that. Since the interop this has been fixed and now works.

Realtime server-server problems were generally small — problems with invalid certs from one client and handling of authentication by another CalDAV server.

One server had a problem with invalid HTTP which was resolved.

3.1.1.4.  Server 4

A CalDAV client tested against our server using the CalDAV Draft 8 scenarios provided the following results. Please refer to the CalDAV document located on the CalConnect server as noted in the Introduction section.

Section 1 — Event Creation

All items passed.

Section 4 — Event Deletion

All items passed except 4.5 which failed.

Section 5 — Access control

N/A

Section 6 — Calendar Management

6.1

passed

6.2

failed

6.3 — 6.6

N/.A

Section 7 — Free Busy Reports

Setup

Passed

7.1

N/A — Free busy sched works

7.1.1

N/A

7.1.2

Passed

7.1.3

N/A

7.1.4

Passed

7.1.5

Passed

Section 8 — Scheduling

Setup

Passed

8.1 through 8.2

Passed

8.3

N/A

8.4

Passed

8.5

N/A

8.6

Passed

EDITORIAL NOTE

Scheduling is new in CalDAV Draft 8. We are starting to see clients doing scheduling with servers. This is the first interop where we see scheduling actually being testing on servers and clients.

3.1.2.  CalDAV Client Testing

3.1.2.1.  CalDAV Client 1

The following are general things noted with our client testing.

  • network communication stopped after receiving a 50x errors.

  • did not treat calendar user addresses as case insensitive (e.g. MAILTO versus mailto).

  • did not send updates for declined meetings when the location is changed

  • did not handle authentication with a username and no password specified for a CalDAV account.

  • did not handle absolute URLs for the calendar home set.

  • did not handle retrieving events with inline attachments.

  • did not gracefully handle CalDAV servers that did not support CalDAV scheduling.

  • did not allow users to setup delegate access without Open Directory support.

  • sent POSTs for an overridden event using a RECURRENCE-ID with different a time zone then the DTSTART of the master event.

The following is a list of server issues that encountered during testing:

  • Invitations were not put into the attendee’s inbox.

  • One CalDAV client tried to set an ACL on a new calendar and received a 501 error.

  • Deleting calendar returned a 409 not a valid resource.

  • Free busy worked on the first calendar but not on additional calendars.

  • Principal URLs don’t work as attendees. Only email addresses worked.

  • Free busy worked on the first calendar but not on additional calendars.

  • Principal URLs don’t work as attendees. Only email addresses worked.

  • did not receive any notifications for invitations or replies because no iTIP messages were placed in the inbox.

  • Re-inviting an attendee to an event did not change the attendee’s PARTSTAT to NEEDS-ACTION.

  • Server removed X-WR-iTIPALREADYSENT from the VEVENT when client does a PUT.

  • not including a METHOD on iTIP messages placed in the INBOX. It appears that when doing a PROPFIND on the inbox, returns ICS data from a calendar instead.

  • A server failed to delete an overridden instance of a recurring meeting.

  • When creating a new calendar, server did not maintain the displayname or calendar-color on the calendar.

  • not including a METHOD on iTIP messages placed in the INBOX.

  • Deleting the fourth instance of a recurring meeting (Test 2.8) failed because server modified the time of the EXDATE.

  • Client tried to modify recurring events and overridden events but occasionally received a “304 not modified”.

  • A server failed to create new calendars.

  • Client tried to delete events but occasionally received 500 errors.

  • Free busy didn’t work for recurring events.

  • client tried to create a new calendar but received a 503 error.

  • A server modified/removed the organizer property on a PUT.

  • Modifications to events immediately after creating them often resulted in the server not properly persisting the change. This made it difficult to proceed with the more advanced tests such as overriding recurring events.

  • Scheduling and FREE/BUSY wasn’t supported on some servers.

3.1.2.2.  CalDAV Client 2

  • error message “Account information not found. Request encountered an unexpected error (domain (null) code 0)”

  • doesn’t return Free/Busy data in correct format — probably we don’t use correct URL

  • error message when creating TODO:

    • Request Error

    • Request for “New To Do” in “Calendar” in account “xxxxx” failed.

    • The server responded with “HTTP/1.1 415 UnsupportedMediaType” to operation CalDAVWriteEntityQueueableOperation.

    • Scheduling not implemented

3.1.2.3.  CalDAV Client 3

The following are testing comments.

  • The client works with several CalDAV servers.

  • Doesn’t work with several other servers because of one having no MKCALENDAR, one having a bug with del/ mk calendar timing, which is being fixed), and with one that has a Character set issue — my bug.

  • My things to be fixed:

    • Character set — from above

    • Get inbox from properties — server venders have different schemes

  • Overall things:

    • Handling “floating” events, all-day, freebusy, etc.

  • Overall Client things:

    • Self signed or expired certificates. Most servers are “Beta” at best.

    • We clients need to be able to deal with “bad” certificate errors.

    • 207 response is “multipart” — must look deeper into body of response

      • could be all good/bad/mixed if asking for multiple properties.

  • Overall Server things:

    • Handling dates — there are a LOT of syntax options. For FreeBusy URL we were unable to find a syntax that all servers were happy with.

3.1.3.  iCalendar Testing

During iCalendar, iMIP and iTIP testing the following items were identified.

3.1.3.1.  iCalendar Client 1

  • The results noted are the behaviors that were observed when a message is sent/received.

    • General — these apply for all vendor testing scenarios

      • Requesting a refresh of an invitation is not supported

      • Countering an invitation is not supported

      • Declining a counter is not supported

      • Delegate concept is different.

      • cancels don’t work with one application

      • Attachments not going through

      • Accept invitation is not being processed properly. There is some problem converting response messages.

      • Declining an invitation — same as above

      • User C declines invitation — Responses fail iCalendar conversion

      • User C accepts invitation — Responses from one vendor fail iCalendar conversion

3.1.3.1.1.  iTIP Testing
  • All items in the iTIP testing scenarios passed with the following notes:

    • 4.1.1 create single event. Pass — Ran scenario by manually dropping a MIME file in the pickup folder of the transport log.

    • 4.1.5 Create an event using the Value parameter — day events always have a timezone associated with it.

    • RSVP responses to requests: client allows RSVP per email message and not per attendee. Other mail servers do not have any indication to show how whether a RSVP is required. One server sets the req and opt part as req participants — - this is a bug.

    • 4.2.4 Countering an Event — counter is not supported in one server

    • 4.2.5 Delegating an Event — the concept of delegates is different than that of RFC2445.

    • 4.3 — Publishing busy time — not supported

    • 4.4.6 — Add new instance to a recurring event: adding a single instance is not supported. The complete recurrence rule needs to be updated.

    • 4.4.7 — Add a new series of instances to a recurring event: Adding is not allowed. You can change the recurrence object completely. REFRESH is not supported.

    • 4.4.8 Counter an instance of a recurring event: Not supported

    • 4.7.2 Bad Recurrence-ID: If an invalid iCalender is received server fails the conversion of iCalendar and creates a simple IPM. Note message with the iCalendar body as an attachment.

3.1.3.2.  iCalender Client 2

The client went through a number of the iMip tests between their client and another iCalendar client. The following issues were spotted during that and also during client testing originated by other companies.

  • An original All day event sent in a UK timezone ended up with time shifted to a specific California timezone.

  • iCalendar sent on behalf of another user did not correctly specify this in the ORGANIZER, although the MIME Sender: and From: headers were correct.

  • Canceled messages from other server ended up with 2 iCAL “STATUS:CANCELED” entries (not in the original)

  • Meeting acceptances and cancelled meetings from a server caused problems with incoming internet gateway.

  • An initial meeting request will often have a sequence number of 1, which another client considers to be an update.

  • Sequence numbers in Exceptions were not being updated when changes were made to them.

  • One client discovered an issue where a cache of information for appointments was not being updated when changes were made. This showed up when 2 clients were accessing the same calendar, which may be quite a useful testing methodology as iCalendar. App’s own caching behaviour hides this bug in the originating client.

  • Thanks for all your work

3.1.3.3.  iCalendar Client 3

Using the test scenarios provided, we did the client to client testing with several CalDAV server webmail clients and iCalendar clients to check compatibility. The testing generally covers basic calendar scenarios including:

  1. Invite for Single event, Recurring event, all day event, hourly event, multiday event.

  2. Update single event, series and occurrences in series by changing subject, location, time, date and attendee.

  3. Cancel single event, series, occurrences in series

  4. Meetings with Org and Attendee in different time zones

  5. Calendar responses tracking

3.1.3.4.  Testing results

Most tests passed. We are happy to see our application is compatible with most iCalendar formats generated by other applications.

General issues are:

  • Sequence number:

    • Some CalDAV server/clients assume sequence number starts with 1 instead of 0. We will show a different banner for such case.

    • One client doesn’t have this entry in iCalendar. They said using SEQUENCE is optional for organizer according to RFC 2446.

  • New issues found in our application

    • Dragging event in Month view will cause a wrong Recurrence-ID generated if the series is not in the same time zone as OS’. It doesn’t repro with other views.

Detailed test results:

  • One client doesn’t support modified occurrence and negative exceptions well so far. So most testing is done in single event.

  • Sequence issue mentioned above

  • We have a known issue: EXDATE doesn’t have time zone information

  • Another client said they support WebDAV but we couldn’t connect to it. Most likely they don’t support it fully. They will do more investigation.

    • The exception doesn’t seem to relate to series much except in deletion. Opening or updating such occurrence doesn’t trigger the “for series or for this one” dialog. Important change made to the series(like start/end time or recurring mode) doesn’t overwrite the exceptions. This is a different behavior from other clients.

  • Another client had Sequence inconsistency — single event or recurring series’ sequence starts from 1 and increases for updates. But exception’s in the series starts at 0 and never increases.

  • Recurring All day event from our application is not recognized as “All day” in their application. It is shown as a 0 duration event happening each day. Same event synced to another client is displayed correctly and it doesn’t repro with single all day event in the tested application.

  • One CalDAV server uses RDATE which we do not support. The event can be displayed correctly but the time zone is not recognized.

  • One client had issues with modifying an occurrence in a recurring series that uses a different time zone than calendar time zone. They generate a wrong Recurrence-ID sometimes. They have the same sequence issue noted above.

Overall this is a very interesting and useful InterOP event! Thanks for organizing it!

4.  Summary

This was one of our largest interoperability testing events. Several items were uncovered and generally it was very successful. As usual, it would be nice to have more time. We will be investigating the concept of ongoing, interim testing via the internet to public servers. This will improve the ability to test more applications during our onsite testing events.

Thank you to all the participants and their willingness to take time out of busy schedules to help CalConnect forward the usage of calendaring standards.

Respectfully submitted by Pat Egen, CalConnect Interop Manager.