minicaldav
Minimal CalDAV client
Summary
| Latest Version | Unknown |
|---|---|
| License | Unknown |
| CI Status | Failing |
| Stars | 3 |
| Forks | 9 |
| Open Issues | 0 |
| Last Commit | 2026-01-02 |
| Downloads | 0 |
| Last Indexed | 2026-07-31 04:41 |
Installation
nimble install minicaldav
choosenim install minicaldav
git clone https://gitlab.com/floers/calendar-stuff/minicaldav
OS Compatibility
| Platform | Linux | macOS | Windows | FreeBSD | OpenBSD | NetBSD | Android | iOS | WASM | Embedded |
|---|---|---|---|---|---|---|---|---|---|---|
| minicaldav | ✓ | ✓ | ✓ | - | - | - | - | - | - | - |
Source
| Repository | https://gitlab.com/floers/calendar-stuff/minicaldav |
|---|---|
| Homepage | https://gitlab.com/floers/calendar-stuff/minicaldav |
| Registry Source | gitlab |
README
minicaldav
Small and easy CalDAV client.
minicaldav is a caldav client and basic ical parser with as little dependencies as possible (but practical).
Project scope:
- Simple: Few dependencies, no async, the code is simple
- Correct: CalDAV and ICAL are implemented correctly
- Tested: CalDAV works with Events, and is tested with multiple common services
- Easy to use: Good documentation and intuitive API
Project status
- minicaldav is neither correct nor sufficient tested at this point
- Tested only with one caldav server
- minicaldav is kind of activley maintained as part of https://gitlab.com/floers/karlender
- minicaldav is used in a public app: https://gitlab.com/floers/karlender
Quick Start
use url::Url;
use ureq::Agent;
pub fn main() {
let agent = Agent::new();
let url = Url::parse("http://mycaldav.com/").unwrap();
let username = "foo";
let password = "s3cret!";
let calendars = minicaldav::get_calendars(agent.clone(), username, password, &url).unwrap();
for calendar in calendars {
println!("{:?}", calendar);
let (events, errors) = minicaldav::get_events(agent.clone(), username, password, &calendar).unwrap();
for event in events {
println!("{:?}", event);
}
for error in errors {
println!("Error: {:?}", error);
}
}
}
Features
minicaldav can either provide a ready-to-use caldav client by using all features or provide only parts.
The bare minimum is just the ical types and parser:
minicaldav = { version = "*", default-features = false, features = [ "ical" ] }
If you want to have a caldav client:
minicaldav = { version = "*" }
If you do need serde:
minicaldav = { version = "*", features = [ "serde" ] }
If you want to compile a basic CLI:
cargo build --bin minicaldav-cli --features cli