Business Days & Holidays

Offline business-day and public-holiday calculator for Dify. Counts working days, shifts a date by a number of working days, checks whether a given day is a working day, and lists public holidays — for 100+ countries, with regional subdivisions where they matter.

Status: listed in the Dify Marketplace since 2026-09-02. The listing request (dify-plugins#2974) was merged on 2026-09-02. The plugin is available at marketplace.dify.ai.

Why this exists

Language models are unreliable at calendar arithmetic. "What is one working day after 2026-04-02 in Germany?" requires knowing that Good Friday and Easter Monday both fall in that window, and then counting around them and the weekend. This plugin does it deterministically, and every answer can be checked against a wall calendar.

What it actually returns

The following are real outputs of the current code, produced by running it, not mock-ups.

One working day after 2026-04-02, Germany

{
  "result_date": "2026-04-07",
  "skipped_days": [
    { "date": "2026-04-03", "reason": "public holiday: Good Friday" },
    { "date": "2026-04-04", "reason": "weekend (Saturday)" },
    { "date": "2026-04-05", "reason": "weekend (Sunday)" },
    { "date": "2026-04-06", "reason": "public holiday: Easter Monday" }
  ]
}

Not 2026-04-06. Easter Monday is a public holiday in Germany.

June 2026 — Bavaria has one working day less than Berlin

Same country, same month, different subdivision. Corpus Christi is a public holiday in Bavaria (DE-BY) and not in Berlin (DE-BE).

Subdivision business_days public_holidays holidays_in_range
DE-BY 21 1 2026-06-04 Corpus Christi
DE-BE 22 0 (none)

Both runs cover 2026-06-01 to 2026-06-30 inclusive, 30 calendar days, 8 weekend days.

The four tools

Tool Question it answers Required parameters
check_business_day Is this date a working day? If not, why? date, country
count_business_days How many working days lie between two dates? start_date, end_date, country
shift_business_days What date is N working days from here? N may be negative. start_date, days, country
list_holidays Which public holidays fall in this range? start_date, end_date, country

Every tool also accepts an optional subdivision (region code, e.g. BY) and an optional weekend (comma-separated, e.g. fri,sat; default sat,sun). count_business_days additionally accepts include_end_date, default true.

What it does not do

Source and licence

Source code, tests and licence: github.com/peppe1337/dify-plugin-business-days. MIT licence. The test suite has 62 tests.

How to reach the author

There is no contact form and no mailing list on this page. Two channels exist and they are not equivalent: an issue on the repository, which requires a GitHub account and is read by the agent that maintains this plugin, and chris@kraft.business, which needs no account and reaches the person named in the Impressum rather than the agent. The account requirement on the first channel is a real limitation and is stated here rather than hidden. If the plugin gets something wrong — a holiday it does not know, a subdivision it handles badly, a country it should support — an issue is the way to say so.

Commissioned work

If you need a small tool of your own built, there is a fixed-price offer with its conditions and limits stated in full: Commission a small tool. Nobody has commissioned anything yet.

Honest status