{"id":33231769,"url":"https://github.com/chaitanyagupta/chronicity","last_synced_at":"2026-01-23T14:52:12.647Z","repository":{"id":525088,"uuid":"153656","full_name":"chaitanyagupta/chronicity","owner":"chaitanyagupta","description":"A natural language date and time parser for Common Lisp","archived":false,"fork":false,"pushed_at":"2019-01-17T18:36:36.000Z","size":168,"stargazers_count":70,"open_issues_count":2,"forks_count":14,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-11-16T19:03:20.192Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Common Lisp","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chaitanyagupta.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2009-03-18T18:05:14.000Z","updated_at":"2025-08-18T17:08:38.000Z","dependencies_parsed_at":"2022-07-07T22:04:52.040Z","dependency_job_id":null,"html_url":"https://github.com/chaitanyagupta/chronicity","commit_stats":null,"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/chaitanyagupta/chronicity","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chaitanyagupta%2Fchronicity","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chaitanyagupta%2Fchronicity/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chaitanyagupta%2Fchronicity/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chaitanyagupta%2Fchronicity/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chaitanyagupta","download_url":"https://codeload.github.com/chaitanyagupta/chronicity/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chaitanyagupta%2Fchronicity/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28694457,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-23T14:15:13.573Z","status":"ssl_error","status_checked_at":"2026-01-23T14:09:05.534Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-11-16T18:00:20.906Z","updated_at":"2026-01-23T14:52:12.630Z","avatar_url":"https://github.com/chaitanyagupta.png","language":"Common Lisp","readme":"# Chronicity\n\nA natural language date and time parser for Common Lisp.\n\nInspired by (and copied verbatim from) from [Chronic][], the natural\nlanguage date and time parser for Ruby by Tom Preston-Werner.\n\n[Chronic]: http://chronic.rubyforge.org/\n\nTo understand how Chronicity works, read this post: [Writing a natural language\ndate and time parser](https://lisper.in/nlp-date-parser)\n\n## Download and Installation\n\nUse [quicklisp][]:\n\n    (ql:quickload \"chronicity\")\n\nOr get the cutting-edge version from github:\n  https://github.com/chaitanyagupta/chronicity/tree/master\n\nOr get the latest stable release (usually updates before quicklisp):\n  https://github.com/chaitanyagupta/chronicity/releases\n\n[quicklisp]: https://www.quicklisp.org\n\n## Usage\n\nUse `CHRONICITY:PARSE` to parse date/time strings.\n\nIf `*NOW*` is not set, \"now\" is assumed to be this instant. All relative\ndate/time calculations are made with respect to `*NOW*`.\n\n    (setf chronicity:*now* (chronicity:make-datetime 2009 3 27 12 34 56))\n    =\u003e @2009-03-27T12:34:56.000000+05:30\n\n    (chronicity:parse \"today\")\n    =\u003e @2009-03-27T13:00:00.000000+05:30\n\n    (chronicity:parse \"tomorrow\" :now (chronicity:make-date 2009 1 1))\n    =\u003e @2009-01-02T00:00:00.000000+05:30\n\n    (chronicity:parse \"3 days from now\")\n    =\u003e @2009-03-30T12:34:56.000000+05:30\n\n    (chronicity:parse \"next month\")\n    =\u003e @2009-04-01T00:00:00.000000+05:30\n\n`:ENDIAN-PREFERENCE` indicates which date format to prefer in case of\nambiguity over days and months. `:LITTLE` indicates the format\n\"dd/mm/yyyy\", `:MIDDLE` indicates \"mm/dd/yyy\". Default is :LITTLE.\n\n    (chronicity:parse \"1/2/2003\")\n    =\u003e @2003-02-01T00:00:00.000000+05:30\n\n    (chronicity:parse \"1/2/2003\" :endian-preference :middle)\n    =\u003e @2003-01-02T00:00:00.000000+05:30\n\nDefault value for `:CONTEXT` is `:FUTURE`.\n\n    (chronicity:parse \"April 1st at 12:30 PM\")\n    =\u003e @2009-04-01T12:30:00.000000+05:30\n\n    (chronicity:parse \"April 1st at 12:30 PM\" :context :past)\n    =\u003e @2008-04-01T12:30:00.000000+05:30\n\n`CHRONICITY:PARSE` usually returns a DATETIME object. Its attributes can\nbe accessed using the datetime readers.\n\n    (chronicity:parse \"next month\" :guess :end)\n    =\u003e @2009-04-30T23:59:59.000000+05:30\n\n    (values (chronicity:year-of *)\n            (chronicity:month-of *)\n            (chronicity:day-of *)\n            (chronicity:hour-of *)\n            (chronicity:minute-of *)\n            (chronicity:sec-of *))\n    =\u003e 2009, 4, 30, 23, 59, 59\n\nPassing `NIL` as the value for `:GUESS` returns a `SPAN`, which is a range\nof datetime values.\n\n    (chronicity:parse \"next month\" :guess nil)\n    =\u003e #\u003cCHRONICITY::SPAN 2009-04-01T00:00:00.000000+05:30...2009-05-01T00:00:00.000000+05:30\u003e\n\n    (values (chronicity:span-start *)\n            (chronicity:span-end *)\n            (chronicity:span-end-included-p *))\n    =\u003e @2009-04-01T00:00:00.000000+05:30,\n       @2009-05-01T00:00:00.000000+05:30,\n       NIL\n\nOther possible values are `:START`, `:MIDDLE`, or `:END` which return\nthe start, mid-point or the end of a span respectively.\n\n## Input Examples\n\nSimple\n\n    thursday\n    november\n    summer\n    friday 13:00\n    mon 2:35\n    4pm\n    6 in the morning\n    friday 1pm\n    sat 7 in the evening\n    yesterday\n    today\n    tomorrow\n    this tuesday\n    next month\n    this morning\n    last night\n    this second\n    yesterday at 4:00\n    last friday at 20:00\n    last week tuesday\n    tomorrow at 6:45pm\n    afternoon yesterday\n    thursday last week\n\nComplex\n\n    3 years ago\n    5 months before now\n    7 hours ago\n    7 days from now\n    1 week hence\n    in 3 hours\n    1 year ago tomorrow\n    3 months ago saturday at 5:00 pm\n    7 hours before tomorrow at noon\n    3rd wednesday in november\n    3rd month next year\n    3rd thursday this september\n    4th day last week\n\nSpecific Dates\n\n    January 5\n    dec 25\n    may 27th\n    October 2006\n    oct 06\n    jan 3 2010\n    february 14, 2004\n    3 jan 2000\n    17 april 85\n    5/27/1979\n    27/5/1979\n    05/06\n    1979-05-27\n    Friday\n    5\n    4:00\n    17:00\n    0800\n\nSpecific Times (many of the above with an added time)\n\n    January 5 at 7pm\n    1979-05-27 05:00:00\n    etc\n\n## Limitations\n\nChronicity only works with the current timezone (as returned by\n`LOCAL-TIME:*DEFAULT-TIMEZONE*`) . Support for different timezones is\nplanned for a future release.\n\nThe datetime object(s) returned by the parser are of type\n`LOCAL-TIME:TIMESTAMP`. Be aware of any limitations that may apply to\nthem.\n\nAnother problem is that parsing ordinals as words is supported except\nfor `second`, which is ambiguous with second the unit of time. This\nshould be fixed in a future release.\n","funding_links":[],"categories":["Python ##","Online editors ##"],"sub_categories":["Third-party APIs"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchaitanyagupta%2Fchronicity","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchaitanyagupta%2Fchronicity","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchaitanyagupta%2Fchronicity/lists"}