{"id":25859903,"url":"https://github.com/TheBestMoshe/hebcal","last_synced_at":"2026-09-22T19:30:20.809Z","repository":{"id":57437027,"uuid":"150664567","full_name":"TheBestMoshe/hebcal","owner":"TheBestMoshe","description":"A Python module that has location-aware Hebrew dates, zmanim, and holiday's","archived":false,"fork":false,"pushed_at":"2019-12-29T05:39:57.000Z","size":50,"stargazers_count":13,"open_issues_count":2,"forks_count":5,"subscribers_count":4,"default_branch":"dev","last_synced_at":"2026-08-15T09:21:49.651Z","etag":null,"topics":["hebrew-calendar","hebrew-date","python","python36","zmanim"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TheBestMoshe.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":"2018-09-28T00:45:35.000Z","updated_at":"2024-07-07T15:20:47.000Z","dependencies_parsed_at":"2022-09-11T03:20:33.596Z","dependency_job_id":null,"html_url":"https://github.com/TheBestMoshe/hebcal","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/TheBestMoshe/hebcal","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheBestMoshe%2Fhebcal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheBestMoshe%2Fhebcal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheBestMoshe%2Fhebcal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheBestMoshe%2Fhebcal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TheBestMoshe","download_url":"https://codeload.github.com/TheBestMoshe/hebcal/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheBestMoshe%2Fhebcal/sbom","scorecard":{"id":139845,"data":{"date":"2025-08-04","repo":{"name":"github.com/TheBestMoshe/hebcal","commit":"7d77d2137684342b91fa7402cc357316f23dcfa1"},"scorecard":{"version":"v5.2.1-28-gc1d103a9","commit":"c1d103a9bb9f635ec7260bf9aa0699466fa4be0e"},"score":3,"checks":[{"name":"Code-Review","score":0,"reason":"Found 1/29 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#code-review"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#token-permissions"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#packaging"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#pinned-dependencies"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#cii-best-practices"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#fuzzing"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#vulnerabilities"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#signed-releases"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#license"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'dev'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 2 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-16T07:42:00.709Z","repository_id":57437027,"created_at":"2025-08-16T07:42:00.709Z","updated_at":"2025-08-16T07:42:00.709Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":341189360,"owners_count":37601007,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-22T15:14:58.755Z","status":"online","status_checked_at":"2026-09-22T02:00:07.665Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["hebrew-calendar","hebrew-date","python","python36","zmanim"],"created_at":"2025-03-01T21:43:26.266Z","updated_at":"2026-09-22T19:30:20.424Z","avatar_url":"https://github.com/TheBestMoshe.png","language":"Python","funding_links":[],"categories":["python"],"sub_categories":["זמני היום"],"readme":"# Hebcal\n\n### A python package for working with Hebrew dates, times, and holidays\n\n#### Note: This is still in development and not ready for production. There will still be lots of breaking changes.\n\nThere are several python packages that deal with Hebrew dates, Z'manim and Jewish holidays. However, since the Hebrew calendar considers nightfall the beginning of the new day, I've found it very inconvenient to work with other packages. Just converting a Gregorian date to a Hebrew date doesn't give you the proper conversion, as it could be past nightfall, which needs to manually accommodated.\n\nThe same goes for any Jewish holiday package. You first need to figure out what the real Hebrew date is before you can determine if it's currently a holiday.\n\nI wanted something that I can just ask \"is today a rest holiday?\" and I should get a True or False.\n\nI wrote Hebcal to solve these problems. It takes in a latitude and longitude to calculate the location.\nIt can be installed through pip: `pip install hebcal`.\n\nHere's a quick example:\n\n```python\nimport hebcal\n\ntime_info = hebcal.TimeInfo.now(latitude=40.089909, longitude=-74.216270)\nprint(time_info.today_sunrise().strftime('%-I:%M:%S %p'))\n###6:48:58 AM\nprint(time_info.hebrew_date())\n###(5779, 7, 19)\n```\n\nYou can input a specific date and time with a string:\n\n```python\ntime_info = hebcal.TimeInfo('2018, 9, 27 10:07 pm', latitude=40.089909, longitude=-74.216270)\nprint(time_info.today_sunrise().strftime('%-I:%M:%S %p'))\n###6:48:58 AM\nprint(time_info.hebrew_date())\n###(5779, 7, 19)\n```\n\nThe Hebrew date that is returned takes into account sunrise/sunset. If it's after sunset it will automatically return the correct Hebrew date.\n\nYou can also query directly if its night, or day\n\n```python\nprint(time_info.is_night())\n###True\nprint(time_info.is_day())\n###False\n```\n\n\u003csub\u003e\nNote: Calculating the timezone from the lat/lon slows down the calculations. It is best to pass the timezone as an argument:\u003c/sub\u003e\n\n```python\ntime_info = hebcal.TimeInfo.now(timezone='America/New_York', latitude=40.089909, longitude=-74.216270)\n```\n\nYou can manually get the timezone using Hebcal:\n\n```python\nfrom hebcal.util.location import get_location\ntimezone = get_location(latitude==40.089909, longitude=-74.216270)\nprint(timezone)\n###America/New_York\n```\n\n### Hebcal zmanim.Zmanim\n\n\u003csub\u003enote: All times are datetime.datetime objects. They can be formated using `.strftime()`.\u003c/sub\u003e\n\nHere's an example of the hebcal.zmanim\n\n```python\ntime_info = hebcal.TimeInfo.now(latitude=40.089909, longitude=-74.216270)\n\n# pass a hbcal.TimeInfo object into Zmanim\nzmanim = hebcal.Zmanim(time_info)\nprint(zmanim.last_shema_ma)\n###2018-09-27 09:12:12.895624-04:00\nprint(zmanim.last_shema_ma.strftime(\"%-I:%M:%S %p\"))\n###9:12:12 AM\n```\n\nOther than accessing individual zmanim, You can just print the Zmanim object, which returns formated times (i.e. `9:12:12 AM`).\n\nAnother option is to get all the zmanim configures as json:\n\n```python\nzmanim_json = hebcal.Zmanim.json(time_info)\nprint(zmanim_json['earliest mincha'])\n###2018-09-27 13:17:19.756457-04:00\n```\n\nAdd calandar README here.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTheBestMoshe%2Fhebcal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FTheBestMoshe%2Fhebcal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTheBestMoshe%2Fhebcal/lists"}