{"protocolVersion":"2025-06-18","serverInfo":{"name":"kalender","title":"Agent Kalender Hub","version":"1.0.0"},"capabilities":{"tools":{"listChanged":false}},"transport":{"type":"http","endpoint":"https://kalender.netzhandwerker.de/mcp","methods":["POST"]},"payment":{"protocol":"x402","network":"eip155:8453","asset":"USDC","note":"tools/list needs no payment. tools/call settles the tool price over x402."},"tools":[{"name":"feiertage","description":"Public holidays for one year in Germany, Austria or Switzerland, resolved down to the federal state or canton. Every entry carries its legal standing, the rule it was derived from and whether it actually stops work. Paid per call in USDC over x402.","inputSchema":{"type":"object","properties":{"land":{"type":"string","enum":["DE","AT","CH"],"default":"DE","description":"Country code."},"region":{"type":"string","description":"State code for DE (BW, BY, BE, BB, HB, HH, HE, MV, NI, NW, RP, SL, SN, ST, SH, TH) and AT (B, K, N, O, S, ST, T, V, W), canton code for CH (AG, AI, AR, BE, BL, BS, FR, GE, GL, GR, JU, LU, NE, NW, OW, SG, SH, SO, SZ, TG, TI, UR, VD, VS, ZG, ZH). \"DE-BY\" works as well. Germany also knows the municipal code BY-AU for the city of Augsburg. Without a region only nationwide holidays are returned."},"jahr":{"type":"integer","minimum":1970,"maximum":2200,"description":"Calendar year. Defaults to the current one."}}}},{"name":"werktage","description":"Count working days between two dates for a given state or canton. Returns the count, the list of working days and a reason for every skipped day.","inputSchema":{"type":"object","required":["von","bis"],"properties":{"von":{"type":"string","format":"date","description":"First day of the range, inclusive, format YYYY-MM-DD."},"bis":{"type":"string","format":"date","description":"Last day of the range, inclusive."},"land":{"type":"string","enum":["DE","AT","CH"],"default":"DE","description":"Country code."},"region":{"type":"string","description":"State code for DE (BW, BY, BE, BB, HB, HH, HE, MV, NI, NW, RP, SL, SN, ST, SH, TH) and AT (B, K, N, O, S, ST, T, V, W), canton code for CH (AG, AI, AR, BE, BL, BS, FR, GE, GL, GR, JU, LU, NE, NW, OW, SG, SH, SO, SZ, TG, TI, UR, VD, VS, ZG, ZH). \"DE-BY\" works as well. Germany also knows the municipal code BY-AU for the city of Augsburg. Without a region only nationwide holidays are returned."},"samstag_ist_werktag":{"type":"boolean","default":false,"description":"Count Saturdays as working days."},"sonntag_ist_werktag":{"type":"boolean","default":false},"zusatzfrei":{"type":"array","maxItems":100,"description":"Own days off on top of the statutory ones, for example company holidays. Either \"2026-05-15\" or {\"datum\":\"2026-05-15\",\"grund\":\"Betriebsferien\"}.","items":{"type":["string","object"]}}}}},{"name":"werktage_rechnen","description":"Add or subtract working days from a start date. Built for payment terms, notice periods and delivery dates.","inputSchema":{"type":"object","required":["start","werktage"],"properties":{"start":{"type":"string","format":"date","description":"Start date, format YYYY-MM-DD. It is never counted itself."},"werktage":{"type":"integer","minimum":-2000,"maximum":2000,"description":"Positive counts forward, negative backward, 0 returns the next working day on or after the start date."},"land":{"type":"string","enum":["DE","AT","CH"],"default":"DE","description":"Country code."},"region":{"type":"string","description":"State code for DE (BW, BY, BE, BB, HB, HH, HE, MV, NI, NW, RP, SL, SN, ST, SH, TH) and AT (B, K, N, O, S, ST, T, V, W), canton code for CH (AG, AI, AR, BE, BL, BS, FR, GE, GL, GR, JU, LU, NE, NW, OW, SG, SH, SO, SZ, TG, TI, UR, VD, VS, ZG, ZH). \"DE-BY\" works as well. Germany also knows the municipal code BY-AU for the city of Augsburg. Without a region only nationwide holidays are returned."},"samstag_ist_werktag":{"type":"boolean","default":false,"description":"Count Saturdays as working days."},"sonntag_ist_werktag":{"type":"boolean","default":false},"zusatzfrei":{"type":"array","maxItems":100,"description":"Own days off on top of the statutory ones, for example company holidays. Either \"2026-05-15\" or {\"datum\":\"2026-05-15\",\"grund\":\"Betriebsferien\"}.","items":{"type":["string","object"]}}}}},{"name":"zeitzone","description":"Time zone for a coordinate or an IANA name: current UTC offset, local time, whether DST is active and the next transition to the minute.","inputSchema":{"type":"object","properties":{"zone":{"type":"string","description":"IANA time zone name, for example Europe/Berlin. Either this or lat and lon."},"lat":{"type":"number","minimum":-90,"maximum":90,"description":"Latitude, resolved to a zone offline."},"lon":{"type":"number","minimum":-180,"maximum":180},"zeitpunkt":{"type":"string","format":"date-time","description":"Point in time to evaluate. Defaults to now."}}}}]}