#ical #caldav #calendar

bin+lib minicaldav

最小化 CalDAV 客户端

20 个版本 (7 个重大更新)

0.8.0 2023 年 7 月 2 日
0.6.0 2022 年 10 月 30 日
0.3.0 2022 年 7 月 31 日
0.1.1 2022 年 3 月 16 日

#1 in #caldav

每月 26 次下载
用于 task-picker

GPL-3.0 或更高版本

72KB
1.5K SLoC

minicaldav

小型且易于使用的 CalDAV 客户端。

minicaldav 是一个 CalDAV 客户端和基本的 ICAL 解析器,尽可能少地依赖(但实用)。

项目范围

  • 简单:依赖项少,无异步,代码简单
  • 正确:正确实现了 CalDAV 和 ICAL
  • 已测试:CalDAV 与事件一起工作,并与多个常用服务进行了测试
  • 易于使用:良好的文档和直观的 API

项目状态

快速入门

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);
        }
    }
}

特性

minicaldav 可以通过使用所有功能或仅提供部分功能来提供一个现成的 CalDAV 客户端。

最基本的是 ICAL 类型和解析器

minicaldav = { version = "*", default-features = false, features = [ "ical" ] }

如果您需要 CalDAV 客户端

minicaldav = { version = "*" }

如果您需要 serde

minicaldav = { version = "*", features = [ "serde" ] }

如果您想编译一个基本的 CLI

cargo build --bin minicaldav-cli --features cli

依赖项

~0–12MB
~98K SLoC