Go to file
Conrad Hoffmann 486a5285db Add filtering of CalDAV query results
Currently, `QueryCalendarObjects()` simply returns all objects. Now that
`caldav.Filter()` is available upstream, use it to actually filter out
events that do not match the query.
2022-06-03 09:45:27 +02:00
auth auth/imap: close IMAP connection earlier 2022-05-24 13:27:15 +02:00
cmd/tokidoki Allow PROPPATCH method 2022-05-18 10:21:31 +02:00
debug Add CalDAV support, refactor 2022-05-03 16:06:47 +02:00
storage Add filtering of CalDAV query results 2022-06-03 09:45:27 +02:00
.build.yml Add build manifest with build and lint steps 2022-05-20 09:55:51 +02:00
go.mod Switch back to upstream go-webdav 2022-06-01 11:11:20 +02:00
go.sum Switch back to upstream go-webdav 2022-06-01 11:11:20 +02:00
LICENSE Initial commit 2022-02-21 09:52:55 +01:00
README.md Add usage notes to README 2022-05-20 09:45:17 +02:00

tokidoki

Tokidoki is a (WIP) carddav and caldav server.

Architecture

Tokidoki relies on go-webdav for the protocol implementation. It provides the storage backend and authentication, both of which are easily pluggable.

It currently provides:

Authentication:

  • IMAP (working)

Storage:

  • Filesystem (working)
  • PostgreSQL (planned)

Building

  • cd cmd/tokidoki && go build

Running

Using the IMAP authentication backend and the filesystem storage backend (directory must exist), listening on port 8080 on all interfaces:

  • ./tokidoki -addr ":8080" -auth.url imaps://imap.example.com:993 -storage.url file:///path/to/storage -debug

Tokidoki does not support HTTPS at this time, use a reverse TLS proxy if needed.

Usage

Only a single address book and calendar per user are supported at the moment, this is currently a limitation in go-webdav.

Tokidoki supports calendar and address book auto-discovery via /.well-known/caldav and /.well-known/carddav respectively, as defined in RFC 6764, section 6. Hence, most clients should be able to discover resources by just pointing them at the server root.