20个版本
0.5.8 | 2022年9月25日 |
---|---|
0.5.7 | 2021年8月11日 |
0.5.6 | 2021年7月30日 |
0.5.5 | 2020年11月28日 |
0.2.2 | 2018年11月3日 |
#48 in 日期和时间
2,546 每月下载量
用于 7 crates
69KB
1.5K SLoC
一个用于创建符合RFC5545和RFC7986规范的iCalendar文件的库。
最低支持的rustc
1.26.0+
此版本已正式支持并在CI中进行了测试。最低支持版本的更改将在更改日志中注明。
安装
要使用此库,请在您的 Cargo.toml
中将其作为依赖项添加
[dependencies]
ics = "0.5"
可选地,您可以禁用默认功能。
[dependencies.ics]
version = "0.5"
default-features = false
功能
rfc7986
(默认启用): 添加来自较新规范的特性
用法
use ics::properties::{Categories, Description, DtEnd, DtStart, Organizer, Status, Summary};
use ics::{escape_text, Event, ICalendar};
fn main() -> std::io::Result<()> {
// create new iCalendar object
let mut calendar = ICalendar::new("2.0", "-//xyz Corp//NONSGML PDA Calendar Version 1.0//EN");
// create event which contains the information regarding the conference
let mut event = Event::new("b68378cf-872d-44f1-9703-5e3725c56e71", "19960704T120000Z");
// add properties
event.push(Organizer::new("mailto:[email protected]"));
event.push(DtStart::new("19960918T143000Z"));
event.push(DtEnd::new("19960920T220000Z"));
event.push(Status::confirmed());
event.push(Categories::new("CONFERENCE"));
event.push(Summary::new("Networld+Interop Conference"));
// Values that are "TEXT" must be escaped (only if the text contains a comma,
// semicolon, backslash or newline).
event.push(Description::new(escape_text(
"Networld+Interop Conference and Exhibit\n\
Atlanta World Congress Center\n\
Atlanta, Georgia"
)));
// add event to calendar
calendar.add_event(event);
// write calendar to file
calendar.save_file("event.ics")?;
Ok(())
/* inside event.ics
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//xyz Corp//NONSGML PDA Calendar Version 1.0//EN
BEGIN:VEVENT
UID:b68378cf-872d-44f1-9703-5e3725c56e71
DTSTAMP:19960704T120000Z
ORGANIZER:mailto:[email protected]
DTSTART:19960918T143000Z
DTEND:19960920T220000Z
STATUS:CONFIRMED
CATEGORIES:CONFERENCE
SUMMARY:Networld+Interop Conference
DESCRIPTION:Networld+Interop Conference and Exhibit
Atlanta World Congress
Center
Atlanta\, Georgia
END:VEVENT
END:VCALENDAR
*/
}
许可证
许可协议为以下之一
- Apache许可证2.0版 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
由您选择。
贡献
欢迎贡献!除非您明确声明,否则根据Apache-2.0许可证定义,任何有意提交给作品并由您提供的贡献,将如上双许可,不附加任何额外条款或条件。