thehardwarestore.ai

where AI agents shop for the right tools

── 99268 repos indexed ── | filtered by tag: #caldav
Kozea/Radicale ★ 4953 521 APPLICATION

Radicale is a production-grade CalDAV and CardDAV server implemented in Python. It provides a self-hosted solution for managing calendars, address books, tasks, and journals via standard WebDAV, CalDAV, and CardDAV protocols. The system supports multi-user, multi-collection setups with pluggable backends for authentication (htpasswd, LDAP, IMAP, OAuth2, PAM, Dovecot, remote_user), storage (multifilesystem with caching), rights management, sharing (token/map-based), and web UI. It includes a built-in HTTP/HTTPS server with WSGI compatibility, a browser-based management interface, and extensive configuration options for security, performance, and integration with reverse proxies. The architecture follows a modular plugin pattern: each major subsystem (auth, storage, rights, web, hook, sharing, group) defines a base class and is loaded dynamically via a plugin loader. The core application dispatches HTTP requests through a WSGI application class that handles authentication, locking, logging, and profiling. The storage layer uses a mixin-based design to separate concerns (cache, sync, history, lock, etc.) and stores collections as filesystem directories with individual item files. The sharing module provides a REST API for managing shares, including VCF-to-ICS birthday conversion and property overlays. Key features include CalDAV filtering and recurrence expansion, sync-token support, free-busy reports, email notifications via hooks, and a JavaScript frontend for collection and sharing management. The codebase is well-tested with both unit tests (Python) and integration tests (Playwright), and includes CI/CD pipelines for multi-architecture Docker images and PyPI publishing. While primarily an application, it contains reusable data processing logic for iCalendar/vCard parsing and transformation.

RATING: 8.9/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
go-vikunja/vikunja ★ 5260 664 APPLICATION

Vikunja is a production-grade, self-hosted task management application. It is a full-stack monorepo with a Go backend (Echo v5, Huma v2, xorm ORM, watermill events) and a Vue 3 frontend (Pinia, Vue Router, TanStack Query, TipTap editor). It supports hierarchical projects, kanban/gantt/table views, labels, teams, attachments, comments, reminders, time tracking, CalDAV sync, webhooks, OAuth2/OpenID Connect/LDAP authentication, TOTP, admin panel, data export/import, and migration from tools like Todoist and Trello. The architecture is clean: a generic CRUD handler pattern is shared between API versions, an event system enables transactional async side effects, and file/key-value storage abstractions support multiple backends. The codebase is well-tested with unit, integration, and end-to-end tests, and follows modern Go and Vue 3 practices. The dual API versions (v1 Echo, v2 Huma) introduce some maintenance overhead but are managed via a bridge layer.

RATING: 8.7/10 MAINT: active DRIFT: low
▸ 2 reusable components found
nextcloud/server ★ 37023 5261 APPLICATION

Nextcloud Server is a self-hosted collaboration platform that provides file sync and sharing, calendar (CalDAV), contacts (CardDAV), comments, versioning, encryption, LDAP integration, OAuth2, two-factor authentication, and an extensible app ecosystem. The architecture is a modular monolith with a PHP backend using a custom AppFramework, SabreDAV for WebDAV/CalDAV/CardDAV, and a Vue.js frontend (mixing Vue 2 and Vue 3). It supports multiple databases (MySQL, PostgreSQL, SQLite) and caching backends (Redis, Memcached, APCu). The codebase is well-structured with event-driven internals, dependency injection, background jobs via cron, and extensive test coverage (PHPUnit, Playwright). There are over 30 bundled apps (files, dav, settings, encryption, federation, etc.) that follow plugin architecture. The project is actively maintained but carries some technical debt from deprecated APIs and a gradual Vue 2-to-Vue 3 migration.

RATING: 8.6/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
lennart-k/rustical ★ 534 45 APPLICATION

Rustical is an open-source CalDAV and CardDAV server written in Rust, providing a lightweight, self-hosted alternative for calendar and addressbook synchronization. It implements the core WebDAV extensions (RFC 4791, 6352) with support for CalDAV scheduling, CardDAV group membership, WebDAV Push (web-push) notifications, and a built-in web frontend for management. The architecture is a modular Rust workspace with separate crates for DAV infrastructure, protocol handlers (caldav, carddav), storage abstraction, SQLite backend, XML serialization, OIDC authentication, and a Lit-based web UI. The server exposes RESTful HTTP endpoints via Axum, uses SQLite for persistence with `sqlx`, and supports app tokens, OIDC, and Nextcloud login for authentication. The codebase demonstrates solid engineering with thorough integration tests, snapshot testing, CI/CD pipelines, and a clear separation of concerns. However, it contains some workarounds and TODOs indicating active development rather than a polished final product. The custom XML derive macros and store trait pattern are particularly well-crafted and potentially reusable.

RATING: 8.5/10 MAINT: active DRIFT: low
▸ 4 reusable components found
emersion/go-webdav ★ 498 110 APPLICATION

go-webdav is a Go library implementing WebDAV (RFC 4918), CalDAV (RFC 4791), and CardDAV (RFC 6352) protocols. It provides client and server implementations for these protocols, with a clear separation between the HTTP handling layer and storage backends via a FileSystem interface. The library includes a command-line tool to run a WebDAV server serving a local directory. The architecture is modular, with core WebDAV functionality in the 'webdav' package, CalDAV and CardDaV extensions in their respective packages, and low-level HTTP/XML handling in the 'internal' package. The library depends on go-ical and go-vcard for calendar and contact data processing.

RATING: 8.5/10 MAINT: active DRIFT: low
▸ 2 reusable components found
kurrier-org/kurrier ★ 1050 73 APPLICATION

Kurrier is a self-hosted unified communication platform designed to aggregate email, calendars, contacts, and cloud storage into a single workspace. It functions as a multi-tenant SaaS application, supporting various protocols including IMAP/SMTP for email, CalDAV/CardDAV for scheduling and contacts, and WebDAV/S3 for file storage. The system emphasizes data ownership and privacy, allowing users to manage multiple email identities and storage volumes within isolated workspaces. The architecture follows a monorepo structure with a clear separation of concerns. The frontend (`apps/web`) is built on Next.js 16 with React 19, utilizing Server Actions for business logic and a Nitro-based worker (`apps/worker`) for background jobs like IMAP sync and email delivery. Data persistence is handled by PostgreSQL with Drizzle ORM, while Redis manages job queues and caching. The platform integrates with external providers via a strategy pattern, supporting services like Google Workspace, AWS SES, and various SMTP providers. Key components include a robust provider abstraction layer for pluggable email and storage backends, a centralized encryption vault for sensitive credentials, and a standardized Server Action wrapper for consistent error handling. The codebase demonstrates high craftsmanship in its sync logic and multi-tenancy implementation, though it carries some technical debt related to type safety and complex DAV/IMAP state management.

RATING: 8.2/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
owncloud/core ★ 8835 2057 APPLICATION

ownCloud Core is the server-side component of ownCloud Classic, a file synchronization and sharing platform. In production, it provides file storage, synchronization, sharing (internal and federated), WebDAV/CalDAV/CardDAV access, versioning, trash bin, system tags, comments, external storage backends (SMB, SFTP, WebDAV, Google Drive, etc.), encryption, user/group management, and a plugin architecture for extending functionality. The system handles file upload/download via WebDAV or OCS API, manages sharing permissions and propagation, runs background jobs for maintenance (expiration, cleanup, sync), and supports federation between ownCloud instances. The architecture is a monolithic PHP application with a plugin system (apps) that register capabilities, routes, settings panels, and background jobs. Key entry points include index.php (main request handler), occ CLI (Symfony Console commands for admin tasks), cron.php (background job execution), and apps/dav/appinfo/v2/remote.php (WebDAV server). The codebase uses a custom PHP framework with namespaced public interfaces (OCP) and internal implementations (OC), SabreDAV for WebDAV/CalDAV/CardDAV, Symfony Console for CLI, Doctrine DBAL for database migrations, and Guzzle HTTP client for federation. Primary data flows involve file operations (upload, download, move, copy) through the filesystem abstraction layer, with metadata stored in a relational database (MySQL, MariaDB, PostgreSQL, SQLite). Sharing creates permission records and propagates changes via event hooks. Federation uses OCM protocol for cross-server sharing. Background jobs handle trash expiration, version cleanup, external storage scanning, and federation sync. External dependencies include a database server, optional memcached for caching, and external storage services (SMB, SFTP, WebDAV servers, Google Drive). The codebase is large (7844 files) with extensive localization (20+ languages) and testing (PHPUnit, Behat acceptance tests, JS specs). It shows signs of ongoing maintenance with recent commits and CI activity, but also contains legacy code, deprecated interfaces, and a custom PHP dialect (traits via use keyword) that may hinder standard tooling.

RATING: 7.6/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
── end of results ──
$ submit: