Skip to main content

parse_date

Function parse_date 

Source
pub fn parse_date(input: &str) -> Result<NaiveDate>
Expand description

Parses a date from either natural language or YYYY-MM-DD format.

§Supported formats

Natural language:

  • today, tomorrow, yesterday
  • in N days (e.g., in 3 days)
  • in N weeks (e.g., in 2 weeks)
  • in N months (e.g., in 1 month)
  • monday, next friday, next monday
  • jan 15, march 20, december 25

Strict format:

  • YYYY-MM-DD (e.g., 2026-02-20)

§Errors

Returns a descriptive error if the input cannot be parsed in any supported format, listing examples to guide the user.

§Examples

use rustodo::date_parser::parse_date;

let date = parse_date("tomorrow").unwrap();
let date = parse_date("next friday").unwrap();
let date = parse_date("in 3 days").unwrap();
let date = parse_date("in 2 weeks").unwrap();
let date = parse_date("in 1 month").unwrap();
let date = parse_date("2026-02-20").unwrap();