{"id":"iso-date-add-months","version":"1.0.0","description":"Add a signed month count to a YYYY-MM-DD date, clamping the day to the target month.","supported_operations":["iso date add months","add calendar months to an iso date","shift iso date by months"],"unsupported_operations":["add days","add seconds","add years as a separate unit","time zones","locale month names","fiscal calendars","datetime with time","ISO week arithmetic"],"semantics":["date is a proleptic Gregorian UTC calendar date YYYY-MM-DD with years 0001-9999.","months is a canonical integer string with at most 6 digits excluding sign; -0 is accepted as 0.","Month arithmetic uses index = year*12 + (month-1) + months, then year-prime = floor(index/12) and month-prime in 1..12.","The day is clamped to the last valid day of the target month (31 January plus one month is 28 or 29 February).","The result year must stay in 0001-9999.","Output date is zero-padded YYYY-MM-DD."],"limits":{"min_year":1,"max_year":9999,"max_months_digits":6},"pricing":{"status":"unpriced","charge_usd":null},"input_schema":{"type":"object","additionalProperties":false,"required":["date","months"],"properties":{"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","maxLength":10},"months":{"type":"string","pattern":"^-?(0|[1-9][0-9]*)$","maxLength":7}}},"output_schema":{"type":"object","additionalProperties":false,"required":["date"],"properties":{"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","maxLength":10}}},"examples":[{"input":{"date":"2026-01-31","months":"1"},"output":{"date":"2026-02-28"}}],"execute_url":"/v1/tools/iso-date-add-months/versions/1.0.0/execute"}