Terminy, dni robocze i święta
Polish working days, public holidays and deadlines, computed offline with legal citations. Count working days between dates, get the monthly working-time norm (wymiar czasu pracy) per art. 130 Kodeksu pracy, list statutory holidays (including Wigilia 24 December from 2025), check a single day, compute a deadline such as invoice payment terms (date + N days, moved to the next working day under art. 115 KC), and list monthly tax and social-security deadlines (ZUS, PIT, CIT, VAT/JPK_V7M, PPK) moved off weekends and holidays per art. 12 § 5 Ordynacji podatkowej. Use whenever the user asks e.g. "ile dni roboczych w październiku", "wymiar czasu pracy grudzień", "do kiedy zapłacić ZUS", "termin VAT za wrzesień", "czy 24 grudnia jest wolny", "termin płatności 14 dni od faktury", "kiedy wypada Boże Ciało".
Terminy, dni robocze i święta
Computes Polish working days, holidays, working-time norms and tax/ZUS deadlines with
scripts/terminy.py. Fully offline and deterministic. Always outputs structured JSON with the
legal basis of each rule.
Running the script
Run from this skill's directory (or use relative path from repo root):
| OS | Command |
|---|---|
| Linux / macOS | python3 scripts/terminy.py <command> … |
| Windows | py scripts/terminy.py <command> … (or python) |
Zero external dependencies required (standard library only).
Workflow
-
Working days and working-time norm in a month ("ile dni roboczych w październiku", "wymiar czasu pracy grudzień 2026"):
python3 scripts/terminy.py month 2026-12- Report
workingDaysandworkingTimeNormHours, and showcalculation. - A holiday falling on Saturday reduces the norm too (art. 130 § 2 KP). Mention
saturdayHolidayswhen present.
- Report
-
Tax and ZUS deadlines ("do kiedy ZUS za wrzesień", "termin VAT"):
python3 scripts/terminy.py deadlines 2026-09python3 scripts/terminy.py deadlines 2026-09 --only vat zus-pozostali- The argument is the settlement month; the deadlines fall in the following month.
- ZUS depends on the payer:
zus-pozostali(JDG, partnerships) = 20th,zus-osoby-prawne(sp. z o.o., S.A.) = 15th,zus-jednostki-budzetowe= 5th. Ask the user which applies if unclear. - When
shiftedis true, say the deadline moved fromnominalDatebecause of a weekend or holiday.
-
Payment term / any "N days from" deadline ("termin płatności 14 dni od 2026-10-15"):
python3 scripts/terminy.py add 2026-10-15 14python3 scripts/terminy.py add 2026-12-22 5 --workdays(N working days) -
Working days between two dates:
python3 scripts/terminy.py workdays 2026-10-01 2026-12-31 -
Holidays and single days:
python3 scripts/terminy.py holidays --year 2027,python3 scripts/terminy.py day 2026-12-24
Commands
| Command | Description | Returns |
|---|---|---|
month <RRRR-MM> | Working days and working-time norm (full-time, 1-month period) | workingDays, workingTimeNormHours, holidays, saturdayHolidays, calculation |
deadlines <RRRR-MM> [--only ID…] | ZUS, PIT, CIT, VAT (JPK_V7M), PPK deadlines for a settlement month | deadlines[] with deadline, nominalDate, shifted, legalBasis |
add <date> <N> [--workdays] | Date + N calendar days (moved to the next working day) or + N working days | deadline / result, shifted, rule |
workdays <from> <to> | Working days between two dates, inclusive | workingDays, calendarDays, holidays |
holidays [--year Y] | Statutory holidays of a year | holidays[] with date, weekday, name |
day <date> | Is the date a working day or a holiday | isWorkingDay, holiday, nextWorkingDay |
Legal basis of every rule: references/output.md.
Exit codes
JSON goes to stdout; errors go to stderr as {"error": "...", "type": "..."}.
| Code | Meaning | What to do |
|---|---|---|
0 | Success | Use the JSON output |
2 | Not found | No deadline matches the --only filter |
64 | Bad usage / validation | Invalid date (expected RRRR-MM-DD) or month (RRRR-MM), year outside 1990–2100 |
Rules
- The working-time norm assumes a full-time employee and a one-month settlement period. For other settlement periods or part-time contracts, say so and compute proportionally only if the user asks.
- The deadlines cover standard monthly settlements. They do not cover quarterly settlements, the
cash method (metoda kasowa), exceptions in specific cases, or changes to the law after
rulesVerified. For current law use theprawoskill, and do not present the output as tax advice. - Regional or company days off (e.g. a day off in exchange for a Saturday holiday) are not statutory holidays and are not included.
Last updated: October 13, 2026
Files (4)
- Practice area
- General practice
- License
- MIT
- Author
- b44x
Test Terminy, dni robocze i święta
Ask a legal question — get an answer generated live from this skill’s instructions.
Sign in to test this skill.