jiff-cron (0.2.1)
Installation
[registries.forgejo]
index = "sparse+ " # Sparse index
# index = " " # Git
[net]
git-fetch-with-cli = truecargo add jiff-cron@0.2.1 --registry forgejoAbout this package
A cron expression parser and schedule explorer built with jiff.
jiff-cron

NOTE: these are temporary releases while waiting for the original repo to release their
0.2.0.
A cron expression parser built with jiff.
Examples
use jiff_cron::{
jiff::tz::TimeZone,
Schedule,
};
use std::str::FromStr;
fn main() {
// sec min hour day of month month day of week year
let expression = "0 30 9,12,15 1,15 May-Aug Mon,Wed,Fri 2018/2";
let schedule = Schedule::from_str(expression).unwrap();
println!("Upcoming fire times:");
for datetime in schedule.upcoming(TimeZone::UTC).take(10) {
println!("-> {}", datetime);
}
}
/*
Upcoming fire times:
-> 2018-06-01T09:30:00+00:00[UTC]
-> 2018-06-01T12:30:00+00:00[UTC]
-> 2018-06-01T15:30:00+00:00[UTC]
-> 2018-06-15T09:30:00+00:00[UTC]
-> 2018-06-15T12:30:00+00:00[UTC]
-> 2018-06-15T15:30:00+00:00[UTC]
-> 2018-08-01T09:30:00+00:00[UTC]
-> 2018-08-01T12:30:00+00:00[UTC]
-> 2018-08-01T15:30:00+00:00[UTC]
-> 2018-08-15T09:30:00+00:00[UTC]
*/
DST behavior
jiff also handles daylight savings gaps and folding appropriately:
use jiff_cron::{
jiff::tz::TimeZone,
jiff::civil::date,
Schedule,
};
use std::str::FromStr;
fn main() {
let expression = "0 0 * * * * *";
let schedule = Schedule::from_str(expression).unwrap();
let after_datetime = date(2022, 11, 5).at(23, 30, 0, 0).in_tz("America/Chicago").unwrap();
println!("Upcoming fire times:");
for datetime in schedule.after(&after_datetime).take(5) {
println!("-> {}", datetime);
}
}
/*
Upcoming fire times:
-> 2022-11-06T00:00:00-05:00[America/Chicago]
-> 2022-11-06T01:00:00-05:00[America/Chicago]
-> 2022-11-06T01:00:00-06:00[America/Chicago]
-> 2022-11-06T02:00:00-06:00[America/Chicago]
-> 2022-11-06T03:00:00-06:00[America/Chicago]
*/
Installation
Add to your Cargo.toml:
jiff-cron = "0.2.1"
You can enable optional serde support
via crate feature toggle.
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT) at your option.
Minimum supported Rust version (MSRV)
This crate requires Rust 1.80.0 or newer.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you shall be dual licensed as above, without any additional terms or conditions.
Dependencies
| ID | Version |
|---|---|
| jiff | ^0.2 |
| nom | ^7 |
| serde | ^1 |
| postcard | ^1 |
| serde_test | ^1 |
Keywords
cron
schedule
repeat
periodic
time
Details
2026-04-17 23:20:37 +00:00
Assets (1)
Versions (2)
View all
Cargo
1
Leonie Philine Bitto <bitto@posteo.de>
Max Countryman <hello@maxcountryman.com>
Zack Slayton <zack.slayton@gmail.com>
MIT OR Apache-2.0
26 KiB
jiff-cron-0.2.1.crate
26 KiB
0.2.1
2026-04-17
0.2.0-beta
2026-03-02