2024-10-28 17:51:07 +01:00
2024-10-14 10:13:32 +02:00
2024-10-28 17:51:07 +01:00
2024-10-03 19:48:09 +02:00
2024-10-05 19:07:50 +02:00
2024-10-28 15:36:39 +01:00
2024-10-14 10:23:49 +02:00
2024-10-27 16:32:08 +01:00

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
Description
No description provided
Readme AGPL-3.0 6.6 MiB
Languages
Rust 91.4%
TypeScript 4.7%
HTML 2.1%
CSS 1.2%
Handlebars 0.3%
Other 0.3%