Skip to content

lennart-k/rustical

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rustical (WIP)

a calendar server

Installation

Todo

  • CalDAV
    • Support for VEVENT, VTODO, VJOURNAL
    • Proper filtering for REPORT method
      • comp-filter
      • time-range filter
      • good enough to use
      • prop-filter
    • ICS parsing
      • Datetime parsing
    • Implement PROPPATCH
  • CardDAV
  • Auth (There currently is no authentication at all in place for some routes)
    • static authentication
    • Access control
    • preparation for different principal types (groups)
    • authentication rewrite? (argon2 is very slow for each request)
      • solved through app tokens
    • OIDC support
  • Web UI
  • Trash bin
    • Hiding calendars instead of deleting them
    • Restore endpoint
  • Packaging
    • Ensure cargo install works
    • Docker image
    • Releases
  • Locking
  • Testing such that I'm confident enough to use it myself :)
  • WebDAV sync extension RFC 6578
    • implement getctag see
    • implement WebDAV If header
  • Ensure proper routing

Relevant RFCs

  • Versioning Extensions to WebDAV: RFC 3253
    • provides the REPORT method
  • Calendaring Extensions to WebDAV (CalDAV): RFC 4791
  • Scheduling Extensions to CalDAV: RFC 6638
    • not sure yet whether to implement this
  • Collection Synchronization WebDAV RFC 6578
    • We need to implement sync-token, etc.
    • This is important for more efficient synchronisation
  • iCalendar RFC 2445

Sync-token

  • a returned version of a resource is marked with a sync token
  • the client can send the sync token to find out about changes after this sync token