{"id":37747123,"url":"https://github.com/jrmycanady/cronschedule","last_synced_at":"2026-01-16T14:18:13.709Z","repository":{"id":72603769,"uuid":"281780217","full_name":"jrmycanady/cronschedule","owner":"jrmycanady","description":"Go module that provides a cron parser and methods to determine the next run.","archived":false,"fork":false,"pushed_at":"2020-07-24T20:01:29.000Z","size":16,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-06-20T13:37:21.771Z","etag":null,"topics":["cron","go","golang","parser"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jrmycanady.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-07-22T20:48:44.000Z","updated_at":"2020-07-24T20:01:12.000Z","dependencies_parsed_at":"2023-05-24T15:45:22.296Z","dependency_job_id":null,"html_url":"https://github.com/jrmycanady/cronschedule","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/jrmycanady/cronschedule","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jrmycanady%2Fcronschedule","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jrmycanady%2Fcronschedule/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jrmycanady%2Fcronschedule/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jrmycanady%2Fcronschedule/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jrmycanady","download_url":"https://codeload.github.com/jrmycanady/cronschedule/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jrmycanady%2Fcronschedule/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28479369,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T11:59:17.896Z","status":"ssl_error","status_checked_at":"2026-01-16T11:55:55.838Z","response_time":107,"last_error":"SSL_read: 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":["cron","go","golang","parser"],"created_at":"2026-01-16T14:18:12.509Z","updated_at":"2026-01-16T14:18:13.702Z","avatar_url":"https://github.com/jrmycanady.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# cronschedule\n\ncronschedule is a go module that provides the ability to parse an execution schedule specified in cron format and then generate\nthe next execution times based on any start time. It's specifically intended to be used as a component of job\nscheduling and execution implementations.\n\n## Usage\n\n```go\n\n// Parsing the schedule.\ncronSchedule = \"* * * * *\"\nschedule, err := cronschedule.Parse(cronSchedule)\nif err != nil {\n    // Handle errors. Generally thrown for formatting or invalid values.\n    panic(err)\n}\n\n// Find the next 5 execution times based on the schedule after right now.\nnextExecutions := schedule.NextExecutions(time.Now(), 5)\nfmt.Println(nextExecutions)\n\n// Find the next single time using the convenience method.\nnext := schedule.NextExecution(time.Now())\nfmt.Println(next)\n\n// Checking if an execution should run at specific time.\nt := time.Date(2020,time.December,, 1, 1, 1, 1, 0, time.Locale)\nif schedule.ShouldExecute(t) {\n    fmt.Println(\"should execute at %v!\", t)\n}\n\n// Checking if an execution should run right now.\nif schedule.ShouldExecuteNow(time.Now()) {\n    fmt.Println(\"should execute!\")\n}\n```\n\n\n## Support\n\n* Only supports scheduling including all 5 fields separated by a single space.\n* Per UNIX spec, utilizes an OR when both day_of_week and day_of_month are specified as anything but *.\n* Text version of days, e.g. SUN-SAT, are _not_ currently supported.\n* Text versions of months, e.g. JAN-DEC, are _not_ currently supported.\n* Predefined schedules, e.g @yearly are _not_ supported.\n* Years are not supported.\n* Unsupported non-standard characters include [L, W, #, ?]\n* _Does_ support / for intervals. Specifically the job will increment by the value of _b_ in _a_/_b_ starting with _a_.\n\n### Day Of Month / Day Of Week Logic Table\n\n|Day Of Month| Day Of Week |Output                                                                                  |\n|------------|-------------|----------------------------------------------------------------------------------------|\n|     *      |      *      |All days are included.                                                                  |\n|     *      | Non * Value |Only days that match Day Of Week are included.                                          |\n|Non * Value |      *      |Only days that match Day Of Month are included.                                         |\n|Non * Value | Non * Value |All value that match Day Of Month or Day Of Year. Note: If * is included in either it can include all days and make the other irrelevant.|\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjrmycanady%2Fcronschedule","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjrmycanady%2Fcronschedule","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjrmycanady%2Fcronschedule/lists"}