Summary of required functionality

Reefknot clients

  1. MUST provide a user interface for the creation of iCalendar objects

  2. MUST parse iCalendar objects into a user-readable format

  3. MUST be able to store a single user's calendar information in a local database

  4. SHOULD be able to sync with servers

  5. SHOULD be able to send email directly

  6. but MUST be able to either sync or send email

Reefknot servers

  1. MUST be able to store all its users' calendar information in a database

  2. MUST explicitly know who its users are (no guessing based on domain name, because that's subject to weird human error and DoS attacks)

  3. MUST be able to sync with clients

  4. SHOULD be able to send email to external attendees

  5. MAY be able to talk directly to other iCalendar servers