{"id":21493387,"url":"https://github.com/microdevops-com/nomad-calc","last_synced_at":"2025-08-30T20:09:17.797Z","repository":{"id":177019714,"uuid":"659769591","full_name":"microdevops-com/nomad-calc","owner":"microdevops-com","description":"Calculate days spent per territory (like Schengen), warn about maximum stay overusage. The data is provided by YAML with nomads (persons), territories, stay limit per period, entry and exit dates.","archived":false,"fork":false,"pushed_at":"2023-06-28T19:55:25.000Z","size":22,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-03-17T11:50:42.913Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/microdevops-com.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-06-28T14:17:22.000Z","updated_at":"2023-06-28T18:05:14.000Z","dependencies_parsed_at":"2023-07-10T02:31:27.346Z","dependency_job_id":null,"html_url":"https://github.com/microdevops-com/nomad-calc","commit_stats":null,"previous_names":["microdevops-com/nomad-calc"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/microdevops-com/nomad-calc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/microdevops-com%2Fnomad-calc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/microdevops-com%2Fnomad-calc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/microdevops-com%2Fnomad-calc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/microdevops-com%2Fnomad-calc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/microdevops-com","download_url":"https://codeload.github.com/microdevops-com/nomad-calc/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/microdevops-com%2Fnomad-calc/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272900157,"owners_count":25012033,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-30T02:00:09.474Z","response_time":77,"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":[],"created_at":"2024-11-23T15:42:17.775Z","updated_at":"2025-08-30T20:09:17.789Z","avatar_url":"https://github.com/microdevops-com.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# nomad-calc\n\nCalculate days spent per territory (like Schengen), warn about maximum stay overusage. The data is provided by YAML with nomads (persons), territories, stay limit per period, entry and exit dates.\n\nSee [Example YAML](example.yaml) for the data example.\n```\nterritories:\n  Schengen:\n    Ukraine: # per nationality\n      maximum_stay: 90\n      per_period: 180\n  Türkiye:\n    Ukraine:\n      maximum_stay: 90\n      per_period: 180\n  Georgia:\n    Ukraine:\n      maximum_stay: 365 # without per_period we just check stays are not longer than maximum_stay\n\nnomads:\n  Eugene:\n    nationality: Ukraine\n  Olha:\n    nationality: Ukraine\n\nstays:\n- entry_date: 2020-01-01\n  exit_date: 2020-12-30 # 2020 is a leap year - 366 days\n  territory: Georgia\n  nomads:\n    - Eugene\n- entry_date: 2021-01-01\n  exit_date: 2022-01-02\n  territory: Georgia\n  nomads:\n    - Eugene\n- entry_date: 2023-01-01\n  exit_date: 2023-01-20\n  territory: Schengen\n  nomads:\n    - Eugene\n    - Olha\n- entry_date: 2023-01-20\n  exit_date: 2023-01-30\n  territory: Türkiye\n  nomads:\n    - Eugene\n- entry_date: 2023-01-21\n  exit_date: 2023-04-05\n  territory: Schengen\n  nomads:\n    - Olha\n```\n\nExample output based on this YAML:\n```\n$ ./nomad_calc.py --yaml example.yaml --date 2023-04-05\nOn Date: 2023-04-05 (all dates are inclusive)\nEugene:\n  Schengen from 2022-10-08: 20\n  Türkiye from 2022-10-08: 11\n  Georgia from 2020-01-01 to 2020-12-30 stay OK: 365/365 days\n  Georgia from 2021-01-01 to 2022-01-02 stay NOT OK: 367/365 days\nOlha:\n    2023-04-01: already stayed 91 days from maximum stay of 90 days\n    2023-04-02: already stayed 92 days from maximum stay of 90 days\n    2023-04-03: already stayed 93 days from maximum stay of 90 days\n    2023-04-04: already stayed 94 days from maximum stay of 90 days\n    2023-04-05: already stayed 95 days from maximum stay of 90 days\n  Schengen from 2022-10-08: 95\n  Türkiye from 2022-10-08: 0\n\n```\n\nThe `--check-exit-dates` flag makes calculations for all exit dates.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmicrodevops-com%2Fnomad-calc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmicrodevops-com%2Fnomad-calc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmicrodevops-com%2Fnomad-calc/lists"}