m 785df2ced4 feat: add CalDAV bidirectional sync service (Phase 3O)
Implements CalDAV sync using github.com/emersion/go-webdav:

- CalDAVService with background polling (configurable per-tenant interval)
- Push: deadlines -> VTODO, appointments -> VEVENT on create/update/delete
- Pull: periodic fetch from CalDAV, reconcile with local DB
- Conflict resolution: KanzlAI wins dates/status, CalDAV wins notes/description
- Conflicts logged as case_events with caldav_conflict type
- UID pattern: kanzlai-{deadline|appointment}-{uuid}@kanzlai.msbls.de
- CalDAV config per tenant in tenants.settings JSONB

Endpoints:
- POST /api/caldav/sync — trigger full sync for current tenant
- GET /api/caldav/status — last sync time, item counts, errors

8 unit tests for UID generation, parsing, path construction, config parsing.
2026-03-25 14:01:30 +01:00

KanzlAI-mGMT

Kanzleimanagement online — law firm management for deadlines, appointments, and case tracking.

Structure

backend/     Go API server
frontend/    Next.js 15 (TypeScript, Tailwind CSS)

Development

make dev-backend    # Go server on :8080
make dev-frontend   # Next.js dev server
make build          # Build both
make lint           # Lint both
make test           # Test both

Tech Stack

  • Frontend: Next.js 15, TypeScript, Tailwind CSS
  • Backend: Go
  • Database: Supabase (PostgreSQL) — kanzlai schema
  • Deploy: Dokploy on mLake (kanzlai.msbls.de)
Description
AI-powered law firm tools
Readme 8.1 MiB
Languages
TypeScript 51.8%
Go 47.8%
Dockerfile 0.1%
CSS 0.1%