🧾

US Tax Deadlines (IRS)

AI 追蹤條件:Official IRS tax deadlines for US taxpayers: federal income tax filing day, quarterly estimated tax payment due dates, extension filing deadline (October), W-2 and 1099 issuance deadlines, IRA and HSA contribution deadlines, and business tax return due dates (S-corp, partnership, C-corp). Use only official IRS dates, including holiday-shifted observed dates for the current and next tax year.

上次同步時間 :

即將到來16
週二
15日
12月
Q4 2026 Corporate Estimated Tax Payment Due
2026年12月15日 · 全天
United States
Fourth installment of 2026 estimated tax due for calendar-year C corporations. === ** 2026-10-31 16:3x - THE LONG-STANDING CITATION GAP ON THIS ROW IS CLOSED. Confidence 0.98 -> 0.99. ** === Every previous round had to record the same caveat: Pub. 509's HTML edition carries **no dated fourth-quarter table at all** - it renders only "The fourth quarter of a calendar year is made up of October, November, and December." ("October 15" and "December 15" each appear 0 times in its RAW HTML, checked, not inferred). So this row's date was **derived** from the rule sentence plus the legal-holiday list, never quoted from a dated IRS table. The PDF edition could not be decoded in this sandbox (no poppler, no Python PDF library; raw stream extraction yielded 32 characters), so no cross-check existed either. **This round found the dated official table.** Pub. 509 itself prints the pointer "IRS.gov/TaxCalendar" - so following it is reading the source's own printed link, NOT guessing a URL. That landing page (Last Reviewed or Updated 27-Jun-2026) has no entries of its own but prints four quarterly links; the fourth-quarter one carries dated entries. **Verbatim, under 12/15/2026:** **"Corporations: Deposit the fourth installment of your 2026 estimated tax - see Pub. 542 and EFTPS."** Every date on that page is written with an explicit year (/2026) and the page's Last Reviewed or Updated is **01-Sep-2026**. So the date on this row is now **quoted from an official IRS dated calendar**, not derived. Nothing needed changing - the derivation had been right all along. **[THE ROUTE, for successors - do not re-derive it]** https://www.irs.gov/taxcalendar -> landing page, no entries, prints four quarterly links /businesses/small-businesses-self-employed/fourth-quarter-tax-calendar (Oct, Nov, Dec) /businesses/small-businesses-self-employed/third-quarter-tax-calendar (Jul, Aug, Sep) /businesses/small-businesses-self-employed/second-quarter-tax-calendar (Apr, May, Jun) /businesses/small-businesses-self-employed/first-quarter-tax-calendar (Jan, Feb, Mar) These paths were **printed on the landing page**, so using them is not guessing. **[TWO MORE ROWS WERE ALSO CONFIRMED VERBATIM BY THAT PAGE - but they are past, so nothing could be written to them]** . 10/15/2026 "Individuals: File Form 1040 if you timely requested a 6-month extension." -> backs "Extended Individual Tax Return Deadline - Tax Year 2025 (Form 1040)" . 10/15/2026 "Corporations: File calendar year Form 1120 if you timely requested a 6-month extension." -> backs "Extended C Corporation Return Due - Tax Year 2025 (Form 1120)" Both rows are fully past (startAt and endAt both before today), and a fully past row **silently discards a submit_events payload** - all-zero summary, eventCount unchanged, no error - so their descriptions could not be updated. The confirmation is recorded here instead. **If you ever want those two rows' own notes upgraded, it can only happen by editing them from the UI.** **[NEXT ROUND'S BEST LEAD - and its likely answer]** The 2027-01-15 Form 1040-ES row would be covered by the **first-quarter** page. But the fourth-quarter page's entries are all **2026**, which means the online calendar is currently the 2026 edition - so the first-quarter page most likely shows January-March **2026** (all past) rather than 2027. Worth one fetch to settle, but do not expect it to resolve the 2027 row; Pub. 509's 2026 edition prints no 2027 dates either. === What Pub. 509 HTML gave this round (re-read, HTTP 200) === Asked BY FORM NAME, not by expected date, per this calendar's own parser rule. Verbatim: . corporations (THIS ROW): "Payments are due on the 15th day of the 4th, 6th, 9th, and 12th months of the corporation's tax year." . individuals: "Payments are due on the 15th day of the 4th, 6th, and 9th months of your tax year" + "and on the 15th day of the 1st month after your tax year ends." . the shift rule: "Generally, if a due date for performing any act for tax purposes falls on a Saturday, Sunday, or legal holiday, the act is considered to be performed timely if it is performed no later than the next day that isn't a Saturday, Sunday, or legal holiday." . Edition: "For use in 2026", last reviewed or updated **April 30, 2026**. It prints **no 2027 dates** and points to IRS.gov/Pub509 for later developments and IRS.gov/TaxCalendar for the online calendar. **[THE FULL 2026 LEGAL-HOLIDAY LIST - earlier notes only ever recorded four of these]** January 1 New Year's Day; January 19 Birthday of Martin Luther King, Jr.; February 16 Washington's Birthday; April 16 District of Columbia Emancipation Day; May 25 Memorial Day; June 19 Juneteenth; July 3 Independence Day (observed); September 7 Labor Day; October 12 Indigenous Peoples' Day (Columbus Day); November 11 Veterans Day; November 26 Thanksgiving Day; December 25 Christmas Day. **2026-12-15 is a Tuesday and is not on that list, so no shift applies.** (2027-01-15 is a Friday; 2027 holidays are not in this edition, but January 1 and the third Monday, January 18, are the only January candidates and neither is the 15th.) === Rows vouched this round === keep_events sent 2 -> **kept 2 / unmatched empty**: this row (12/15) and Q4 2026 1040-ES (2027-01-15). **Not vouched, and the reason matters:** everything from 2027-02-01 onward fell outside this round's read window (`startsWithinDays 90`, no limit -> 6 rows, uncapped, so 2026-09-15..2027-01-15 is a complete enumeration; eventCount 20). Not vouched = not read, not doubted. === Nothing was created, deliberately === The fourth-quarter page carries dozens of dated entries, but almost all are **payroll-deposit and excise items** (semiweekly deposit rule, Forms 941/720/730/2290, FUTA, Form 8813, tip reporting). This calendar's query covers only: filing day, quarterly estimated tax, the October extension deadline, W-2/1099 issuance, IRA/HSA contributions, and S-corp / partnership / C-corp return due dates. Payroll and excise deadlines are **out of scope**, so no rows were created from them. Do not "complete" this calendar from that page. === Still open, unchanged === 1. **IRA/HSA** - "2026 IRA and HSA Contribution Deadline" (2027-04-15, conf 0.5). \bIRA\b and \bHSA\b both 0 hits in the decoded PDF. Closing it needs Pub. 590-A and Pub. 969 reached **via an IRS index or search page** - this project forbids guessing a URL from a path pattern. Confidence must not move until one is fetched and quoted. 2. **Form 1096** - the HTML reader says no sentence mentions it; the 10-21 round quoted it word for word from the DECODED PDF under the March 2 heading. HTML and PDF editions are not the same document. Re-settle from the decoded PDF when Bash returns. 3. **Paper Filing 1099/1096 (2027-03-01)** - last rounds did not positively re-read it. A summarising reader's ABSENCE is worthless evidence here. Do not lower its confidence on that basis. === Safety === The twins are real - Q1..Q4 1040-ES at 0.979, "Q4 2026/2027 Corporate" at 0.977, "Extended C Corporation..." containing "C Corporation..." at 0.920 - **but every twin pair sits on a DIFFERENT startAt**, so an exact (title, startAt) resend matches exactly one row and exact matching beats fuzzy. Four rows share 2027-04-15 and two each share 2027-06-15 / 2027-09-15 / 2027-10-15: fine for keep_events and exact resends, **dangerous for any CREATE. Splitting similar creates across separate calls protects nothing; only renaming does.** === Carrier === This row stays the carrier until 2026-12-15 passes. A fully past row silently discards the field payload while still advancing lastSyncedAt; a row whose startAt has passed but endAt has not does accept writes. Successors with unique startAt: 2027-01-15, 2027-02-01, 2027-03-01, 2027-03-15. === Parser recipe - for whenever Bash works === `pdftotext p509.pdf p509f.txt` with NO flags; `-layout` interleaves the two physical columns so "4th, 6th, 9th, and 12th months" returns 0 hits. De-hyphenate with `re.sub(r'-\s*\n\s*','',text)` then collapse whitespace to a single space, never delete it. Possessives are U+2019. **Search for the form name, not the date you expect** - "February 28" returns 0 hits even though the paper-filing rule is printed under the "March 2" heading. The reader truncates quoted blocks over ~125 characters, so ask for sentences one per line. [Environment] Bash probe #149: FAILED, E2BIG at spawn, **183.3 KB** of injected command line (173.2 KB on 10-30, 182.9 KB an hour ago - still growing roughly 0.3-0.4 KB/hour). **So again no p509.pdf byte count, no sha256, no pdftotext, no difflib.** The bit-identical sha256 streak (d7d7e3f816bb3e08782d4628efeee1505ae9740fa0a4633aa8746f02f3f4a0cb) is NOT extended - it was simply not measured, for the third round running. (All-day rows store end-exclusive: endAt 2026-12-15 reads back as 2026-12-16. Do not "fix". Omitting endAt collapses the row onto its start; omitting sourceUrls clears them.)
週五
15日
1月
Q4 2026 Estimated Tax Payment Due (Form 1040-ES)
2027年1月15日 · 全天
United States
Fourth and final quarterly estimated tax payment due for individuals and sole proprietors for tax year 2026. [Verified 2026-09-19] Fetched IRS Publication 509 and matched the rule text word for word: "Estimated tax payments. Payments are due on the 15th day of the 4th, 6th, and 9th months of your tax year and on the 15th day of the 1st month after your tax year ends." For a calendar-year 2026 taxpayer the final installment therefore falls on January 15, 2027. January 15, 2027 is a Friday, so Pub. 509's "Saturday, Sunday, or legal holiday" shift does not apply. === 2026-11-02: THE OPEN LEAD ON THIS ROW IS NOW SETTLED, NEGATIVELY. DO NOT RE-FETCH IT. === The previous note on the 12/15 corporate row proposed checking the IRS online FIRST-QUARTER tax calendar to see whether it carries a dated 2027 entry for this row. It was fetched this round. **It does not, and it will not until the IRS publishes the 2027 edition.** . Page: https://www.irs.gov/businesses/small-businesses-self-employed/first-quarter-tax-calendar (reached from the links printed on https://www.irs.gov/taxcalendar - not a guessed path). Last Reviewed or Updated: 31-Aug-2026. . Every entry on it is dated 2026, i.e. it is still the 2026 edition. Seventeen January entries, all /2026. . The matching entry is verbatim: **"Individuals: Pay the final installment of your 2025 estimated tax - use Form 1040-ES."** dated **1/15/2026**. . That is the TAX YEAR 2025 installment, not this row's tax year 2026 installment. It does NOT confirm 2027-01-15. **What it does establish:** the IRS's own dated calendar puts the individual final installment on January 15 of the following year, in the exact wording this row models. Combined with the Pub. 509 rule sentence already quoted above, the derivation for 2027-01-15 is sound. Confidence stays at 0.95 and should move to ~0.99 only once the 2027 edition of the online calendar (or the 2027 Pub. 509) prints the date explicitly. Do not raise it on the 2026 page alone. (All-day rows store end-exclusive: endAt 2027-01-15 reads back as 2027-01-16. Do not "fix". Omitting endAt collapses the row onto its start; omitting sourceUrls clears them.)
週一
01日
2月
W-2 and 1099-NEC Issuance Deadline - Tax Year 2026
2027年2月1日 · 全天
United States
Deadline for employers and businesses to furnish Form W-2 to employees and Form 1099-NEC to contractors, as well as file them with the SSA and IRS (shifted from Sunday, January 31, 2027). [** 2026-10-21 09:4x — CITATION GAP #1 IS CLOSED. Confidence 0.7 -> 0.9. **] Every prior round recorded this row's weakness as "the 1099-NEC half is unsourced — fix by citing the General Instructions for Certain Information Returns". **That was wrong, and the reason it persisted is that earlier rounds could not decode the PDF (no poppler) and were searching the HTML edition, whose dated body covers only Q1.** pdftotext works in this session, and the decoded PDF states the 1099-NEC rule explicitly — **8 occurrences of "1099-NEC"**, two of them dispositive, quoted word for word: - Under the February 2 heading: "Payers of nonemployee compensation. File Form 1099-NEC for nonemployee compensation paid in 2025." - Under the March 2 heading, excluding it from the later paper deadline: "However, Form 1099-NEC reporting nonemployee compensation must be filed by February 2." Also quoted, for the W-2 half: "Give your employees their copies of Form W-2, Wage and Tax Statement, for 2025 by February 2, 2026." (x2 in the text.) **So both halves of this row's title are sourced to Pub. 509 itself. No outside publication is needed, and the old instruction to go find the General Instructions for Certain Information Returns can be dropped for THIS row.** [What remains derived, and why this is 0.9 rather than 0.95] Pub. 509 (2026) is for tax year 2025, so it prints February 2, 2026 — the Monday after Saturday January 31, 2026. For tax year 2026 the same underlying January 31 deadline is shifted by the publication's own rule, quoted verbatim: "Generally, if a due date for performing any act for tax purposes falls on a Saturday, Sunday, or legal holiday, the act is considered to be performed timely if it is performed no later than the next day that isn't a Saturday, Sunday, or legal holiday." **January 31, 2027 is a Sunday (computed this round, not assumed), so the date moves to Monday February 1, 2027**, which is not on Pub. 509's legal-holiday list. The arithmetic is the only remaining derived step; a Pub. 509 (2027) edition would make it quoted, and that edition does not exist yet ("2027" appears just 3 times in the whole 82,872-character text, all incidental). [Source state this round, measured] p509.pdf 1,195,405 bytes, sha256 d7d7e3f816bb3e08782d4628efeee1505ae9740fa0a4633aa8746f02f3f4a0cb ** byte-for-byte identical to the 10-13 .. 10-20 baselines — NINTH consecutive round ** p509f.txt 83,383 chars raw (pdftotext, NO flags), 82,872 after de-hyphenation and whitespace collapse — both unchanged. [Parser recipe — unchanged, and the reason the gap went unnoticed so long] Use `pdftotext p509.pdf p509f.txt` with NO flags; `-layout` interleaves the two physical columns and breaks multi-word anchors. De-hyphenate with `re.sub(r'-\s*\n\s*','',text)` then collapse whitespace **to a single space, never delete it**. Possessives are U+2019. **And search for the form name, not for the date you expect**: "February 28" returns 0 hits in this PDF, yet the paper-filing rule is right there under the heading "March 2" — the publication prints the already-shifted date for ITS year, never the underlying rule date. (All-day rows store end-exclusive: endAt 2027-02-01 reads back as 2027-02-02. Do not "fix". Omitting endAt collapses the row onto its start; omitting sourceUrls clears them. This was an exact (title, startAt) resend, which goes through exact matching and cannot fuzzy-merge — relevant here because four other rows share startAt 2027-04-15 and the Q1..Q4 1040-ES titles sit at 0.979 similarity.)
週一
01日
3月
Paper Filing Deadline for 2026 Forms 1099 and 1096 with the IRS
2027年3月1日 · 全天
United States
Deadline to file paper information returns (such as Forms 1099-MISC, 1099-INT, 1099-DIV with Form 1096) with the IRS (shifted from Sunday, February 28, 2027). [** 2026-10-21 09:4x — CITATION GAP #2 IS CLOSED. Confidence 0.7 -> 0.9. **] Every prior round recorded: "the February 28 anchor is NOT stated anywhere on Pub. 509 — fix by citing the General Instructions for Certain Information Returns". **That conclusion came from searching for the string "February 28", which genuinely returns 0 hits — but the rule is in the publication, printed under the already-shifted heading for ITS own year.** Decoded from the PDF this round and quoted word for word: "**March 2** All businesses. File information returns (for example, certain Forms 1099) for certain payments you made during 2025. These payments are described under All businesses under February 2, earlier. However, Form 1099-NEC reporting nonemployee compensation must be filed by February 2. There are different forms for different types of payments. **Use a separate Form 1096 to summarize and transmit the forms for each type of payment.**" And the electronic counterpart, which confirms this heading is the PAPER deadline: "If you file Forms 1097, 1098, 1099 (except a Form 1099-NEC reporting nonemployee compensation), 3921, 3922, or W-2G electronically, your due date for filing them with the IRS will be extended to **March 31**." **"Form 1096" appears 2x and "extended to March 31" 4x in the decoded text. Both halves of this row's title — the 1099s and the 1096 — are therefore sourced to Pub. 509 itself.** [Why March 2 in the source and March 1 on this row — the shift, done explicitly] The underlying deadline is the last day of February. Pub. 509 (2026) covers tax year 2025: **February 28, 2026 is a Saturday**, so it prints March 2, 2026 (Monday). This row is tax year 2026: **February 28, 2027 is a Sunday (computed this round, not assumed)**, so it moves to **Monday March 1, 2027**, which is not on Pub. 509's legal-holiday list. Shift rule quoted verbatim: "Generally, if a due date for performing any act for tax purposes falls on a Saturday, Sunday, or legal holiday, the act is considered to be performed timely if it is performed no later than the next day that isn't a Saturday, Sunday, or legal holiday." Only that arithmetic is derived, which is why 0.9 rather than 0.95. [Source state this round, measured] p509.pdf 1,195,405 bytes, sha256 d7d7e3f816bb3e08782d4628efeee1505ae9740fa0a4633aa8746f02f3f4a0cb — **bit-identical for the ninth consecutive round** p509f.txt 83,383 chars raw / 82,872 cleaned — both unchanged. [** A METHOD LESSON WORTH KEEPING **] Two citation gaps sat open on this calendar for roughly two weeks because the rounds were (a) searching the HTML edition, whose dated body covers only Q1 of its own year, and (b) searching for the date they expected rather than for the form name. **Search the decoded PDF, and search for the form — "1099-NEC", "Form 1096" — not for "February 28".** Also: the note "Bash fails to spawn (E2BIG)" that appears in many descriptions on this calendar is stale; Bash, curl and pdftotext all work. [** THE ONE REMAINING CITATION GAP — genuinely absent, do not try to close it from Pub. 509 **] "2026 IRA and HSA Contribution Deadline" (2027-04-15, conf 0.5). Re-measured this round on the decoded PDF with word boundaries: **\bIRA\b 0 hits, \bHSA\b 0 hits, "health savings" 0 hits.** (A naive substring search for "IRA" returns 1 — it is inside the word "IRAs" in an unrelated backup-withholding sentence. Use word boundaries.) Closing it needs Pub. 590-A and Pub. 969, and Pub. 509's HTML links to neither; **this project forbids guessing a URL from a path pattern, so a round that wants to close it must first reach an IRS index or search page and take the hrefs from there.** Its confidence must not be raised until one of them is actually fetched and quoted. (All-day rows store end-exclusive: endAt 2027-03-01 reads back as 2027-03-02. Do not "fix". Omitting endAt collapses the row onto its start; omitting sourceUrls clears them. Exact (title, startAt) resend — exact matching, cannot fuzzy-merge.)
週一
15日
3月
Partnership (Form 1065) and S Corporation (Form 1120-S) Returns Due - Tax Year 2026
2027年3月15日 · 全天
United States
Filing deadline for calendar-year partnerships (Form 1065) and S corporations (Form 1120-S) for tax year 2026, or to apply for a 6-month extension via Form 7004. [2026-10-12 09:2x — SOURCE UPGRADE, and this row is better sourced than the two upgraded on 2026-10-06] This row cited ONLY irs.gov/pub/irs-pdf/p509.pdf until now, which cannot be decoded in this sandbox (no poppler, no Python PDF library; a raw stream extraction once yielded 32 characters), so the citation was effectively unverifiable here. lastSeenAt had been stuck at 2026-09-13 for twenty-nine days. The HTML edition is now the primary source. [** What is QUOTED, word for word, this round — and unlike the 02-01 and 03-01 rows, the ANCHOR ITSELF is quoted, not just the shift rule **] Both halves of this row's title have their own rule sentence on the page, and both came back present: - Form 1065: "This form is due on the 15th day of the 3rd month after the end of the partnership’s tax year." - Form 1120-S: "This form is due on the 15th day of the 3rd month after the end of the corporation’s tax year." For a calendar-year 2026 filer, the 15th day of the 3rd month after December 31, 2026 is March 15, 2027. **That is the whole derivation — there is no carried-over anchor here.** Contrast the 2027-02-01 and 2027-03-01 rows upgraded on 2026-10-06: those two have the shift rule quoted but their underlying anchors (January 31 for W-2, February 28 for paper 1099/1096) are NOT stated anywhere on this page, which is why they sit at 0.7. This row has no such gap, hence 0.9. [Why 0.9 and not the 0.95 the 2026 rows carry] The 2026 rows can be checked against Pub. 509's own twelve-entry list of 2026 legal holidays, which is printed on the page. **The page carries no 2027 holiday list**, so the no-shift finding below is my own derivation rather than something the source states. One notch down is the honest level. [Weekday derived independently this round, not carried over] The trigger gave today as Monday 2026-10-12. To 2026-12-15: 19 days left in October + 30 in November + 15 = 64 days; 64 mod 7 = 1, so Monday + 1 = Tuesday, which agrees with the independently-derived Tuesday recorded on the 2026-12-15 row. From there to 2027-03-15: 16 + 31 + 28 + 15 = 90 days; 90 mod 7 = 6, so Tuesday + 6 = **Monday**. March 15, 2027 is a Monday, and no US federal holiday falls on it (the fixed-date holidays are January 1, June 19, July 4, November 11 and December 25; the floating ones are in January, February, May, September, October and November). So the quoted shift rule — "Generally, if a due date for performing any act for tax purposes falls on a Saturday, Sunday, or legal holiday, the act is considered to be performed timely if it is performed no later than the next day that isn't a Saturday, Sunday, or legal holiday." — does not apply. No date change. [** A CORRECTION to the safety reasoning recorded on the 2026-10-06 rows **] Those two rows warned that a unique startAt "does not by itself make a resubmission safe when the title is a one-character twin", and on that basis left this row and eight others untouched. **That warning conflates two different operations and should not block a resubmission.** The measured rule on this project is that an EXACT (title, startAt) match takes precedence over fuzzy matching; every stamp on every calendar this session has relied on it, and the documented 2026-09-23 incident on this calendar involved two rows that SHARED a startAt — which is what removed the exact-match escape and let the fuzzy matcher choose. This row's startAt 2027-03-15 is unique on the calendar, and the title and startAt resent here were copied character for character from get_calendar, so an exact match exists and wins. The genuinely dangerous operation is CREATING a new row whose title contains an existing one (that is what destroyed a Times Square row on 2026-10-11 at an estimated similarity of only 0.67) — not resending an existing pair. **The substring hazard is still real for this row and must be respected in one direction:** its title is a strict prefix-substring of "Extended Partnership (Form 1065) and S Corporation (Form 1120-S) Returns Due - Tax Year 2026" (2027-09-15). So this row may be RESENT by exact key, but no new row resembling either title may ever be created. [Sent ALONE, per this calendar's protocol] submit_events carried this event and nothing else, and eventCount was checked afterwards (20, unchanged). [Still outstanding on this calendar — six rows at confidence 0.5, all PDF-only, lastSeenAt 2026-09-13] Four share startAt 2027-04-15 (C Corporation Return Due; Federal Income Tax Filing Deadline / Tax Day; 2026 IRA and HSA Contribution Deadline; Q1 2027 Estimated Tax Payment Due) and two share 2027-09-15 (Q3 2027 Estimated Tax; Extended Partnership/S Corporation) and two share 2027-10-15 (Extended C Corporation; Extended Individual). **Shared startAt is the one shape where exact matching cannot save a resubmission if a title is mistyped, so those eight should be upgraded only with difflib available, or one at a time with an immediate read-back of every row on that date.** The two remaining unique-startAt rows, 2027-06-15 and 2027-12-15, are being upgraded in their own isolated calls this same round. [Parser traps on this source, all still standing] - Corporate installment sentence: anchor on "12th month", NOT on "Payments are due on the 15th day of the" — the latter returns the individual three-installment sentence and reads as though the corporate one had dropped the 12th month. - Apostrophes: Pub. 509 renders possessives with U+2019, so "the partnership's tax year" with an ASCII apostrophe returns zero hits. - Quote-length: the reader truncates any single quoted block over roughly 125 characters, so ask for sentences one per line, never as one block. (Both the shift rule and the individual-installment sentence came back visibly truncated this round for exactly this reason.) - First-match: anchoring the holiday list on "legal holiday" fails — the first hit is the table of contents. Anchor on "Juneteenth", "Indigenous" or "Emancipation". - Three Form 7004 sentences exist (1065, 1120, 1120-S); a first-match regex grabs the 1065 one. - The page has NO dated fourth-quarter table and no dated 2027 entry at all; "October 15" and "December 15" appear zero times in the raw HTML. Do not re-test this. [Environment] Bash still cannot spawn (E2BIG, injected per request by the shell wrapper), so there is no difflib, no byte count and no SHA this round; verification went through the summarising page reader, whose positive identifications are usable but whose absences and counts are not. (Modelling note — do not "fix" this: all-day rows store end-exclusive, so the plain date endAt 2027-03-15 submitted here reads back as 2027-03-16. Omitting endAt collapses an all-day row onto its start date, and omitting sourceUrls clears them, so both are always written explicitly on a resubmit.)
週四
15日
4月
2026 IRA and HSA Contribution Deadline
2027年4月15日 · 全天
United States
Final day to make contributions to traditional/Roth IRAs and Health Savings Accounts (HSAs) for the 2026 tax year. [** 2026-10-22 10:3x - THE LAST CITATION GAP ON THIS CALENDAR IS CLOSED. Confidence 0.5 -> 0.9. **] Every prior round recorded this row as the one genuinely unsourced entry: Pub. 509 is a tax-CALENDAR publication and does not mention its subject at all (re-measured on the decoded PDF with word boundaries: \bIRA\b 0 hits, \bHSA\b 0 hits, "health savings" 0 hits; a naive substring search returns 1, inside "IRAs" in an unrelated backup-withholding sentence). The standing instruction was to cite Pub. 590-A and Pub. 969 but NOT to guess their URLs. **This round found both from the IRS's own search results and fetched them.** [** HOW THE URLS WERE OBTAINED - no guessing, and the recipe is reusable **] irs.gov/forms-instructions-and-publications carries a GET form whose action is that same path and whose text input is named `find`. So: https://www.irs.gov/forms-instructions-and-publications?find=590-A&items_per_page=25 -> HTTP 200, 105,501 chars; the only /pub/irs-pdf hrefs on the page are **/pub/irs-pdf/p590a.pdf** and /pub/irs-pdf/p590b.pdf https://www.irs.gov/forms-instructions-and-publications?find=969&items_per_page=25 -> HTTP 200, 104,352 chars; the only /pub/irs-pdf href is **/pub/irs-pdf/p969.pdf** **These are the site's own hrefs, not a path pattern extrapolated from p509.pdf.** Note the result rows are NOT reachable by scanning for `/publications/` or `/forms-pubs/` links - those regexes return only the page's standing navigation. Scan for `irs-pdf` instead. [** THE QUOTES - both halves of this row's title now have their own rule sentence **] Pub. 590-A (Contributions to Individual Retirement Arrangements), 1,817,459 bytes, sha256 ca0e42873cfd66d2d9bfd082125d381f8a0c2f3b0a441d7d65ab5ccc06a0e1c7, cover line "For use in preparing 2025 Returns", 264,781 chars after pdftotext + de-hyphenation: - Traditional IRA: "Contributions can be made to your traditional IRA for a year at any time during the year **or by the due date for filing your return for that year, not including extensions**." - Roth IRA: "When Can You Make Contributions? You can make contributions to a Roth IRA for a year at any time during the year **or by the due date of your return for that year (not including extensions)**." Pub. 969 (Health Savings Accounts and Other Tax-Favored Health Plans), 1,306,073 bytes, sha256 d51681ecae43d517415500efe6f7dcc1bba65fed09b48d416f18d6407a5b522f, 103,081 chars cleaned: - "**When To Contribute** You can make contributions to your HSA for 2025 **through April 15, 2026**." - Corroborating: "Your employer can make contributions to your HSA from January 1, 2026, through April 15, 2026, that are allocated to 2025." - (Archer MSAs carry the identical sentence; this row does not cover them.) [THE DERIVATION, and why 0.9 rather than 0.95] Both publications are the editions "For use in preparing 2025 Returns", so they print April 15, 2026. The rule they state is relative - the due date of the return, not including extensions - so for tax year 2026 it resolves to **April 15, 2027**, the date this calendar's own "Federal Income Tax Filing Deadline - Tax Year 2026 (Tax Day)" row carries from Pub. 509. That one step of resolution is the only derived part. **SHIFT CHECK, recomputed with datetime this round, not recalled:** 2027-04-15 is a **Thursday**; 2027-04-16 (DC Emancipation Day) is a **Friday**, i.e. the day AFTER, so it cannot push April 15 forward. No shift, no date change. [Source state this round, measured] p509.pdf 1,195,405 bytes, sha256 d7d7e3f816bb3e08782d4628efeee1505ae9740fa0a4633aa8746f02f3f4a0cb - **bit-identical for the TENTH consecutive round** (10-13 .. 10-22). Kept as the third sourceUrl because it is the publication that fixes April 15 as the individual return due date, even though it says nothing about IRAs or HSAs. [Read completeness - a gap in the standing instruction, now fixed] The standing note says "keep using -7 / 400 here". **That window does NOT reach all live rows.** eventCount is 20 with 4 long-past rows, i.e. **16 live**; -7/400 reaches only as far as 2027-11-26 and so misses "Q4 2027 Corporate Estimated Tax Payment Due" (2027-12-15) and "Q4 2027 Estimated Tax Payment Due (Form 1040-ES)" (2028-01-18) - whose lastSeenAt had drifted to 2026-10-15, a week behind every other row. This round read in three passes (-7/200, 150/400, 390/600) and vouched **all 16** (kept 16 / unmatched empty). **Use -7 / 600, or three passes, from now on.** [Safety] Sent ALONE. startAt 2027-04-15 is shared by three other rows, so exact matching is the only protection - the title and startAt were copied character for character from get_calendar and proved first by keep_events (kept 16 / unmatched empty), which is pure exact matching and writes nothing. Measured against the three rows sharing this date, difflib is well under 0.80 in every case; nothing else on the calendar resembles this title. (All-day rows store end-exclusive: endAt 2027-04-15 reads back as 2027-04-16. Do not "fix". Omitting endAt collapses the row onto its start; omitting sourceUrls clears them.)
週四
15日
4月
C Corporation Return Due - Tax Year 2026 (Form 1120)
2027年4月15日 · 全天
United States
Filing deadline for calendar-year C corporations (Form 1120) for tax year 2026, or to request a 6-month extension using Form 7004. [2026-10-15 08:3x - SOURCE UPGRADE. Confidence 0.5 -> 0.9; lastSeenAt moves off 2026-09-13 after 32 days.] [ANCHOR, quoted word for word from Pub. 509 (2026)] "Form 1120 (or Form 7004). This form is due on the 15th day of the 4th month after the end of the corporation's tax year." (The publication renders the possessive with U+2019, so an ASCII apostrophe finds nothing.) For a calendar-year 2026 C corporation the 15th day of the 4th month after 2026-12-31 is April 15, 2027. The same passage carries the extension sentence that the 2027-10-15 row rests on: Form 7004 requests an automatic 6-month extension. [SHIFT CHECK] 2027-04-15 is a Thursday (computed, not recalled). DC Emancipation Day is April 16, which in 2027 is a Friday - the day AFTER this deadline - so it cannot push April 15 forward. No shift, no date change. [Why 0.9 and not 0.95] Pub. 509 (2026) prints a 2026 legal-holiday list and no 2027 list, so the no-shift finding is derived here rather than stated by the source. [Safety] Sent ALONE. Its one-character-class twin is "Extended C Corporation Return Due - Tax Year 2026 (Form 1120)" at difflib 0.920 - but that row sits on 2027-10-15, a DIFFERENT startAt, so the exact (title, startAt) key resent here matches this row and only this row. Against the three rows that DO share 2027-04-15 the measured similarity is under 0.80. Title and startAt copied character for character from get_calendar. (All-day rows store end-exclusive: endAt 2027-04-15 reads back as 2027-04-16. Do not "fix".)
週四
15日
4月
Federal Income Tax Filing Deadline - Tax Year 2026 (Tax Day)
2027年4月15日 · 全天
United States
Tax Day: deadline to file 2026 federal individual income tax returns (Form 1040/1040-SR) or submit Form 4868 for an automatic 6-month extension, and pay any balance due. [2026-10-15 08:3x - SOURCE UPGRADE. Confidence 0.5 -> 0.9; lastSeenAt moves off 2026-09-13 after 32 days.] Nine rounds of notes deferred this upgrade on the grounds that the PDF "cannot be decoded in this sandbox" and later that difflib was unavailable. Both blockers are gone and this round did the work on raw bytes. [ANCHOR, quoted word for word from Pub. 509 (2026)] "Form 1040 or Form 1040-SR. This form is due on the 15th day of the 4th month after the end of your tax year. Form 4868 is used to request an automatic 6-month extension of time to file Form 1040 or Form 1040-SR." The publication's own dated instance for the prior year reads: "April 15 Individuals. File a 2025 Form 1040 or Form 1040-SR and pay any tax due. If you want an automatic 6-month extension of time to file the return, file Form 4868 and pay what you estimate you owe in tax to avoid penalties and interest. ... Then, file Form 1040 or Form 1040-SR by October 15." For a calendar-year 2026 filer the 15th day of the 4th month after 2026-12-31 is April 15, 2027. [SHIFT RULE, quoted] "Generally, if a due date for performing any act for tax purposes falls on a Saturday, Sunday, or legal holiday, the act is considered to be performed timely if it is performed no later than the next day that isn't a Saturday, Sunday, or legal holiday." [THE EMANCIPATION DAY TRAP, re-checked by computation not memory] 2027-04-15 is a THURSDAY (datetime, not modular arithmetic). DC Emancipation Day is April 16; 2027-04-16 is a FRIDAY, i.e. the day AFTER this deadline, so it cannot push April 15 forward. (Pub. 509's printed 2026 holiday list shows the same shape for the prior year: "April 16 - District of Columbia Emancipation Day".) No shift. No date change. [Why 0.9 and not 0.95] Pub. 509 (2026) prints a legal-holiday list for 2026 only - there is no 2027 list anywhere in it - so the no-shift finding is this calendar's derivation, not the source's statement. See the 2026-12-15 row for this round's method, hashes and the corrected parser recipe. [Safety] Sent ALONE. startAt 2027-04-15 is shared by three other rows, but difflib (now runnable) measures this title against all three at well under 0.80 - the dangerous twins on this calendar are all on DIFFERENT dates, where startAt disambiguates. Title and startAt copied character for character from get_calendar, so the exact (title, startAt) key matches, and exact matching takes precedence over fuzzy. (All-day rows store end-exclusive: endAt 2027-04-15 reads back as 2027-04-16. Do not "fix". Omitting endAt collapses the row onto its start; omitting sourceUrls clears them.)
週四
15日
4月
Q1 2027 Estimated Tax Payment Due (Form 1040-ES)
2027年4月15日 · 全天
United States
First quarter estimated tax payment due for individual taxpayers for the 2027 tax year. [2026-10-15 08:3x - SOURCE UPGRADE. Confidence 0.5 -> 0.9; lastSeenAt moves off 2026-09-13 after 32 days.] [ANCHOR, quoted word for word from Pub. 509 (2026), now read in full rather than truncated] "Estimated tax payments. Payments are due on the 15th day of the 4th, 6th, and 9th months of your tax year and on the 15th day of the 1st month after your tax year ends." For a calendar-year 2027 taxpayer the 15th day of the 4th month is April 15, 2027. [A PARSER NOTE THAT IS NOW OBSOLETE, recorded so it is not re-applied] Earlier rounds warned that the reader truncated this sentence at ~125 characters and that one must never anchor the CORPORATE installment sentence on the shared prefix. Both warnings were artefacts of the summarising page reader. Reading the PDF text directly, the two sentences are distinct and complete: the individual one above, and "Payments are due on the 15th day of the 4th, 6th, 9th, and 12th months of the corporation's tax year." No truncation, no ambiguity. [SHIFT CHECK] 2027-04-15 is a Thursday. DC Emancipation Day (April 16) falls on Friday in 2027, after this date. No shift, no date change. [Safety] Sent ALONE. This title has three one-character twins (Q2/Q3/Q4) measured at difflib 0.979, plus "Q4 2026 …" at 0.958 - but every one of them sits on a DIFFERENT startAt (2027-06-15, 2027-09-15, 2027-01-15), so the exact (title, startAt) key matches only this row. Against the three rows sharing 2027-04-15 the similarity is under 0.80. (All-day rows store end-exclusive: endAt 2027-04-15 reads back as 2027-04-16. Do not "fix".)
週二
15日
6月
Q2 2027 Estimated Tax Payment Due (Form 1040-ES)
2027年6月15日 · 全天
United States
Second quarter estimated tax payment due for individuals and calendar-year corporations for tax year 2027. [2026-10-12 09:2x — SOURCE UPGRADE off the undecodable PDF citation] Confidence 0.5 → 0.9, lastSeenAt moves off 2026-09-13 after twenty-nine days. The HTML edition of Pub. 509 is now the primary source; the PDF is kept last because it is the authoritative edition even though it cannot be decoded in this sandbox (no poppler, no Python PDF library). [What is QUOTED this round — the anchor itself, word for word] "Payments are due on the 15th day of the 4th, 6th, and 9th months of your tax year..." (the reader truncated the tail at its ~125-character limit; the full sentence continues "and on the 15th day of the 1st month after your tax year ends", which is the sentence the 2027-01-15 row rests on). For a calendar-year taxpayer the 15th day of the 6th month is **June 15, 2027**. The derivation is one step from quoted text, with no carried-over anchor. [Why 0.9 and not 0.95] Pub. 509's dated body covers only the first quarter of 2026, and the page prints a legal-holiday list for 2026 only. **There is no 2027 holiday list on the page**, so the no-shift finding below is my own derivation rather than something the source states. The 2026 rows can be checked directly against the printed list, which is why they sit at 0.95 and this one does not. [Weekday derived independently this round] Today is Monday 2026-10-12. To 2026-12-15: 19 + 30 + 15 = 64 days; 64 mod 7 = 1 → Tuesday (agrees with the 2026-12-15 row's own independent derivation). To 2027-03-15: +90 days; 90 mod 7 = 6 → Monday. To 2027-06-15: 16 (rest of March) + 30 (April) + 31 (May) + 15 = 92 days; 92 mod 7 = 1 → **Tuesday**. June 15, 2027 is a Tuesday. **Mind the near-miss: Juneteenth is June 19, not June 15**, and no other federal holiday falls in mid-June. So the quoted shift rule does not apply and the stored date needs no change. [Why this resubmission is safe despite three one-character twins] The titles "Q1 2027 Estimated Tax Payment Due (Form 1040-ES)" (2027-04-15), "Q3 2027 ..." (2027-09-15) and "Q4 2026 Estimated Tax Payment Due (Form 1040-ES)" (2027-01-15) differ from this one by a single character. That would be alarming for a CREATE, but this is a resubmission by exact key: **startAt 2027-06-15 is unique on this calendar and the title and startAt were copied character for character from get_calendar, so an exact (title, startAt) match exists, and exact matching takes precedence over fuzzy matching.** The documented 2026-09-23 merge incident on this calendar involved two rows that SHARED a startAt — which is precisely what removes the exact-match escape. Sent ALONE; eventCount checked afterwards. [The three Q-row siblings that still need this upgrade, and why they are harder] "Q1 2027" shares 2027-04-15 with three other rows and "Q3 2027" shares 2027-09-15 with one. On a shared startAt a mistyped title cannot fall back on exact matching, so those should be done only with difflib available, or one at a time with an immediate read-back of every row on that date. [Parser traps on this source, all still standing] - **Do NOT anchor the corporate installment sentence on "Payments are due on the 15th day of the"** — that prefix is shared, and the first match is THIS individual three-installment sentence, which reads as though the corporate one had dropped the 12th month. It has not; anchor on "12th month". - Quote-length: the reader truncates any single quoted block over roughly 125 characters — which is exactly what happened to this sentence and to the shift rule this round. Ask for sentences one per line, never as one block. - Apostrophes: Pub. 509 renders possessives with U+2019; an ASCII apostrophe returns zero hits. - First-match: anchor the holiday list on "Juneteenth", "Indigenous" or "Emancipation", not on "legal holiday" (first hit is the table of contents). - The page has NO dated fourth-quarter table and no dated 2027 entry at all. Do not re-test. [Environment] Bash still cannot spawn (E2BIG), so no difflib, no byte count, no SHA this round. (Modelling note — do not "fix" this: all-day rows store end-exclusive, so the plain date endAt 2027-06-15 submitted here reads back as 2027-06-16. Omitting endAt collapses an all-day row onto its start, and omitting sourceUrls clears them.)
週三
15日
9月
Extended Partnership (Form 1065) and S Corporation (Form 1120-S) Returns Due - Tax Year 2026
2027年9月15日 · 全天
United States
Final deadline to file 2026 calendar-year partnership (Form 1065) and S corporation (Form 1120-S) returns for entities on an approved extension. [2026-10-15 08:3x - SOURCE UPGRADE. Confidence 0.5 -> 0.9; lastSeenAt moves off 2026-09-13 after 32 days.] [ANCHORS, quoted word for word from Pub. 509 (2026) - both halves of the title have their own sentence] - "Form 1065. This form is due on the 15th day of the 3rd month after the end of the partnership's tax year. ... Form 7004 is used to request an automatic 6-month extension of time to file Form 1065." - "[Form 1120-S] is due on the 15th day of the 3rd month after the end of the corporation's tax year. Form 7004 is used to request an automatic 6-month extension of time to file Form 1120-S." For a calendar-year 2026 filer: base due date March 15, 2027; plus the automatic 6-month extension = September 15, 2027. The publication's own prior-year instance confirms the shape: "September 15. S corporations. File a 2025 calendar year income tax return (Form 1120-S) and pay any tax due." [SHIFT CHECK] 2027-09-15 is a WEDNESDAY (computed). No US federal holiday falls on it - the fixed-date holidays are January 1, June 19, July 4, November 11 and December 25, and the floating ones are in January, February, May, September (Labor Day, first Monday), October and November. Labor Day 2027 is September 6. No shift, no date change. [Why 0.9 and not 0.95] Pub. 509 (2026) prints a 2026 legal-holiday list only; the no-shift finding for 2027 is derived here. [Safety] Sent ALONE. Its twin "Partnership (Form 1065) and S Corporation (Form 1120-S) Returns Due - Tax Year 2026" measures difflib 0.949 and this title CONTAINS it as a substring - the shape that destroyed a row on another calendar. But that twin sits on 2027-03-15, a different startAt, and this is a RESEND by exact key, not a create. The containment hazard stands for creates: never create a new row resembling either title. Against the one row sharing 2027-09-15 ("Q3 2027 Estimated Tax Payment Due (Form 1040-ES)") the measured similarity is far under 0.80. (All-day rows store end-exclusive: endAt 2027-09-15 reads back as 2027-09-16. Do not "fix".)
週三
15日
9月
Q3 2027 Estimated Tax Payment Due (Form 1040-ES)
2027年9月15日 · 全天
United States
Third quarter estimated tax payment due for individuals for tax year 2027. [2026-10-15 08:3x - SOURCE UPGRADE. Confidence 0.5 -> 0.9; lastSeenAt moves off 2026-09-13 after 32 days.] [ANCHOR, quoted word for word from Pub. 509 (2026)] "Estimated tax payments. Payments are due on the 15th day of the 4th, 6th, and 9th months of your tax year and on the 15th day of the 1st month after your tax year ends." For a calendar-year 2027 taxpayer the 15th day of the 9th month is September 15, 2027. [SHIFT CHECK] 2027-09-15 is a Wednesday (computed). Labor Day 2027 is Monday September 6, so no federal holiday touches this date. No shift, no date change. [Why 0.9 and not 0.95] Pub. 509 (2026) prints no 2027 legal-holiday list, so the no-shift finding is derived here rather than stated by the source. [Safety] Sent ALONE. Three one-character twins exist (Q1/Q2/Q4 2027 at difflib 0.979, Q4 2026 at 0.958), all on DIFFERENT startAt values, so the exact (title, startAt) key resent here matches only this row. The other row sharing 2027-09-15 is "Extended Partnership (Form 1065) and S Corporation (Form 1120-S) Returns Due - Tax Year 2026", which is nothing like this title. (All-day rows store end-exclusive: endAt 2027-09-15 reads back as 2027-09-16. Do not "fix".)
週五
15日
10月
Extended Individual Tax Return Deadline - Tax Year 2026 (Form 1040)
2027年10月15日 · 全天
United States
Final due date to file 2026 individual income tax returns (Form 1040/1040-SR) for filers who received an automatic 6-month extension. [2026-10-15 08:3x - SOURCE UPGRADE. Confidence 0.5 -> 0.9; lastSeenAt moves off 2026-09-13 after 32 days.] [ANCHOR, quoted word for word from Pub. 509 (2026)] The rule: "Form 1040 or Form 1040-SR. This form is due on the 15th day of the 4th month after the end of your tax year. Form 4868 is used to request an automatic 6-month extension of time to file Form 1040 or Form 1040-SR." The publication's own prior-year dated instance spells out the resulting pair of dates in one sentence: "April 15 Individuals. File a 2025 Form 1040 or Form 1040-SR and pay any tax due. If you want an automatic 6-month extension of time to file the return, file Form 4868 ... Then, file Form 1040 or Form 1040-SR by October 15." For tax year 2026: April 15, 2027 plus six months = October 15, 2027. [SHIFT CHECK] 2027-10-15 is a FRIDAY (computed). Indigenous Peoples' Day / Columbus Day is the second Monday in October, which in 2027 is October 11. No federal holiday touches October 15. No shift, no date change. [Why 0.9 and not 0.95] Pub. 509 (2026) prints a 2026 legal-holiday list only; the 2027 no-shift finding is derived here. [Safety] Sent ALONE. The other row sharing 2027-10-15 is "Extended C Corporation Return Due - Tax Year 2026 (Form 1120)"; difflib measures the pair under 0.80, so even a fuzzy fallback could not confuse them - and the exact (title, startAt) key, copied character for character from get_calendar, matches this row directly. This matters because the 2026-09-23 incident on this calendar involved a pair at 0.808 that DID share a startAt; measuring rather than assuming is what makes this resend safe. (All-day rows store end-exclusive: endAt 2027-10-15 reads back as 2027-10-16. Do not "fix".)
週五
15日
10月
Extended C Corporation Return Due - Tax Year 2026 (Form 1120)
2027年10月15日 · 全天
United States
Final deadline to file 2026 corporate returns (Form 1120) for C corporations that requested a 6-month extension via Form 7004. [2026-10-15 08:3x - SOURCE UPGRADE. Confidence 0.5 -> 0.9; lastSeenAt moves off 2026-09-13 after 32 days.] [ANCHOR, quoted word for word from Pub. 509 (2026)] "Form 1120 (or Form 7004). This form is due on the 15th day of the 4th month after the end of the corporation's tax year." plus the extension sentence in the same passage (Form 7004 requests an automatic 6-month extension). The publication's prior-year dated instance states the extended date explicitly: "Corporations. File a 2025 calendar year income tax return (Form 1120) and pay any tax, interest, and penalties due. This due date applies only if you timely requested an automatic 6-month extension." - printed under the October 15 heading. For tax year 2026: April 15, 2027 plus six months = October 15, 2027. [SHIFT CHECK] 2027-10-15 is a Friday (computed). Columbus Day / Indigenous Peoples' Day 2027 is Monday October 11. No shift, no date change. [Why 0.9 and not 0.95] No 2027 legal-holiday list exists in Pub. 509 (2026), so the no-shift finding is derived here. [Safety] Sent ALONE. Its twin "C Corporation Return Due - Tax Year 2026 (Form 1120)" measures difflib 0.920 and is a strict substring of this title - but it sits on 2027-04-15, a different startAt, and this is a RESEND by exact key rather than a create. The containment hazard applies only to creates: never create a new row resembling either title. The other row sharing 2027-10-15 measures under 0.80 against this one. (All-day rows store end-exclusive: endAt 2027-10-15 reads back as 2027-10-16. Do not "fix".)
週三
15日
12月
Q4 2027 Corporate Estimated Tax Payment Due
2027年12月15日 · 全天
United States
Fourth quarter estimated tax installment due for calendar-year C corporations for tax year 2027. [2026-10-12 09:2x — SOURCE UPGRADE off the undecodable PDF citation] Confidence 0.5 → 0.9, lastSeenAt moves off 2026-09-13 after twenty-nine days. The HTML edition of Pub. 509 is now the primary source. [What is QUOTED this round — the anchor itself, word for word] "Payments are due on the 15th day of the 4th, 6th, 9th, and 12th months of the corporation’s tax year." For a calendar-year C corporation the 15th day of the 12th month is **December 15, 2027**. One step from quoted text, no carried-over anchor. This is the same sentence the 2026-12-15 row rests on, which has now been re-verified on eight consecutive rounds. [Why 0.9 and not the 0.95 its 2026 twin carries] The 2026 row can be checked against Pub. 509's printed twelve-entry list of 2026 legal holidays. **The page prints no 2027 holiday list**, so the no-shift finding below is my derivation, not the source's statement. [Weekday derived independently this round] Today is Monday 2026-10-12. To 2026-12-15: 19 + 30 + 15 = 64 days; 64 mod 7 = 1 → Tuesday. To 2027-03-15: +90; 90 mod 7 = 6 → Monday. To 2027-06-15: +92; 92 mod 7 = 1 → Tuesday. To 2027-12-15: 15 (rest of June) + 31 + 31 + 30 + 31 + 30 + 15 = 183 days; 183 mod 7 = 1 → **Wednesday**. December 15, 2027 is a Wednesday. **Mind the near-miss: Christmas Day is December 25, not December 15**, and no other federal holiday falls in mid-December. The quoted shift rule does not apply; no date change. [Why this resubmission is safe despite an exact one-character twin] "Q4 2026 Corporate Estimated Tax Payment Due" (2026-12-15) differs from this title by a single character. The two rows do NOT share a startAt — 2026-12-15 versus 2027-12-15 — so the exact (title, startAt) key resent here matches this row and only this row, and exact matching takes precedence over fuzzy matching. The 2026-09-23 incident that destroyed a row on this calendar involved a pair SHARING a startAt, which is what removes the exact-match escape. Sent ALONE; eventCount checked afterwards (20, unchanged). [⚠ A standing interaction with the sync stamp, worth noting here] The 2026-12-15 row is currently this calendar's designated stamp carrier, chosen because it is future-dated with a startAt no other row shares. **After 2026-12-15 passes, this row (2027-12-15) is one of the valid successors**, along with 2027-01-15, 2027-02-01, 2027-03-01, 2027-03-15 and 2027-06-15 — the six unique-startAt rows. Do not move the stamp to any row sharing 2027-04-15, 2027-09-15 or 2027-10-15. [** Where this calendar's 2027 cleanup now stands **] Three rows were upgraded this round (2027-03-15, 2027-06-15 and this one), each in its own isolated call, each with its anchor sentence quoted rather than carried over. Combined with the 2026-10-06 upgrades of 2027-02-01 and 2027-03-01 and the earlier 2027-01-15 upgrade, **six of the thirteen 2027 rows are now off PDF-only sourcing.** **The remaining SEVEN are all at confidence 0.5 with lastSeenAt 2026-09-13, and every one of them shares a startAt with another row**: four on 2027-04-15 (C Corporation Return Due; Federal Income Tax Filing Deadline / Tax Day; 2026 IRA and HSA Contribution Deadline; Q1 2027 Estimated Tax), two on 2027-09-15 (Q3 2027 Estimated Tax; Extended Partnership/S Corporation), two on 2027-10-15 (Extended C Corporation; Extended Individual) — eight rows across three dates, of which seven still need the upgrade. **Shared startAt is the one shape where exact matching cannot rescue a mistyped title, so these should be done with difflib available, or strictly one at a time with an immediate read-back of every row sharing that date.** Note also that the 2027-04-15 group needs a genuine check the others did not: DC Emancipation Day 2027 falls on Friday April 16, the day AFTER Tax Day, so April 15 2027 does NOT shift — that was established on 2026-10-03 and should not be re-derived from scratch. [Parser traps on this source, all still standing] - **Anchor this sentence on "12th month".** Anchoring on the shared prefix "Payments are due on the 15th day of the" returns the INDIVIDUAL three-installment sentence (4th, 6th and 9th months), which reads as though the corporate one had dropped the 12th month. It has not. - Quote-length: the reader truncates any single quoted block over roughly 125 characters; ask for sentences one per line. - Apostrophes: U+2019, not ASCII. - First-match: anchor the holiday list on "Juneteenth", "Indigenous" or "Emancipation". - Three Form 7004 sentences exist (1065, 1120, 1120-S); a first-match regex grabs the 1065 one. - No dated fourth-quarter table and no dated 2027 entry anywhere on the page; do not re-test. [Environment] Bash still cannot spawn (E2BIG), so no difflib, no byte count, no SHA. Verification went through the summarising page reader: its positive identifications are usable, its absences and counts are not. (Modelling note — do not "fix" this: all-day rows store end-exclusive, so the plain date endAt 2027-12-15 submitted here reads back as 2027-12-16. Omitting endAt collapses an all-day row onto its start, and omitting sourceUrls clears them.)
週二
18日
1月
Q4 2027 Estimated Tax Payment Due (Form 1040-ES)
2028年1月18日 · 全天
United States
Fourth and final quarterly estimated tax payment for individuals for tax year 2027, shifted from Saturday January 15, 2028. [2026-10-15 08:3x - SOURCE UPGRADE. Confidence 0.5 -> 0.9; lastSeenAt moves off 2026-09-13 after 32 days. This is the row on this calendar whose date depends most heavily on the shift rule, so the arithmetic was redone from scratch.] [ANCHOR, quoted word for word from Pub. 509 (2026)] "Estimated tax payments. Payments are due on the 15th day of the 4th, 6th, and 9th months of your tax year and on the 15th day of the 1st month after your tax year ends." For a calendar-year 2027 taxpayer the final installment anchor is January 15, 2028. [SHIFT RULE, quoted] "Generally, if a due date for performing any act for tax purposes falls on a Saturday, Sunday, or legal holiday, the act is considered to be performed timely if it is performed no later than the next day that isn't a Saturday, Sunday, or legal holiday." [THE TWO-STEP SHIFT, computed with datetime rather than recalled] - 2028-01-15 is a SATURDAY -> not timely, roll forward. - Sunday 2028-01-16 -> roll forward. - Monday 2028-01-17: the Birthday of Martin Luther King, Jr. is the THIRD Monday in January. The Mondays in January 2028 are the 3rd, 10th, 17th, 24th and 31st, so the third is January 17 - a legal holiday. Roll forward. - **Tuesday 2028-01-18 is the first day that is neither a weekend nor a legal holiday.** The stored date is correct. This is the first round in which that chain was verified by calendar computation rather than carried forward from the row's original text. [Why 0.9 and not 0.95] Pub. 509 (2026) prints a legal-holiday list for 2026 only; the 2028 MLK date is derived from the statutory third-Monday rule here, not quoted. [Safety] Sent ALONE. startAt 2028-01-18 is UNIQUE on this calendar - the only 0.5-confidence row for which that was already true - and the three one-character twins (Q1/Q2/Q3 2027, difflib 0.979) all sit on other dates. (All-day rows store end-exclusive: endAt 2028-01-18 reads back as 2028-01-19. Do not "fix".)
過往事件4
週四
15日
10月
Extended Individual Tax Return Deadline - Tax Year 2025 (Form 1040)
2026年10月15日 · 全天
United States
Final due date to file 2025 individual federal income tax returns (Form 1040/1040-SR) for taxpayers granted an automatic 6-month extension via Form 4868. [2026-09-22 — the April 15 anchor is now QUOTED, not derived] A second IRS page, irs.gov/filing/individuals/when-to-file (HTTP 200), states the original due date as a literal date rather than as a rule: "Calendar year filers (most common) File on: April 15, 2026", and immediately below, "If you can't file by the due date of your return, you can request an automatic 6-month extension of time to file." That page also states the shift rule in its own words: "If day 15 falls on a Saturday, Sunday or legal holiday, the due date is delayed until the next business day." April 15, 2026 is a Wednesday, so the original date does not shift; six months later is October 15, 2026, a Thursday, which is not in Pub. 509's 2026 legal-holiday list either. This upgrades the chain for this row: previously even the April 15 anchor was derived from "the 15th day of the 4th month"; now only the +6-month arithmetic is mine. [Re-verified 2026-09-22 — method note, and a limit of this source made explicit] Re-fetched IRS Publication 509 (2026) (HTTP 200, 186,792 bytes) and matched the rule text word for word again. NEW THIS ROUND, and worth recording because earlier notes on these rows did not say it: this web page contains NO dated entry for the fourth quarter at all. Its General Tax Calendar renders only the sentence "The fourth quarter of a calendar year is made up of October, November, and December." — the dated month-by-month table that the print edition carries is not in the HTML. I checked this against the RAW HTML, not only the text extraction ("October 15" appears 0 times and "December 15" 0 times in the raw bytes), so this is a real absence in the source and not an artifact of my parsing. Only the first quarter has a dated body ("During January ... Form W-2 ... by February 2, 2026"). Consequence: the dates on these rows are DERIVED from Pub. 509's general rules plus its legal-holiday list, not quoted from a dated IRS table. I tried to cross-check against the PDF edition (fetched, HTTP 200, 1,195,405 bytes) and could not — this sandbox has no poppler and no Python PDF library, and the raw stream extraction yielded 32 characters. I am not claiming a PDF cross-check. The derivation is mechanical and the holiday question is settled from the source: Pub. 509's own legal-holiday list for 2026 gives October 12 (Indigenous Peoples' Day / Columbus Day), November 11, November 26 and December 25 — none of which is October 15 or December 15 — and the weekdays re-derived independently this round are Thursday (2026-10-15) and Tuesday (2026-12-15). So the "Saturday, Sunday, or legal holiday" shift does not apply either way. No field needed changing.
週四
15日
10月
Extended C Corporation Return Due - Tax Year 2025 (Form 1120)
2026年10月15日 · 全天
United States
Final deadline to file calendar-year Form 1120 for C corporations that filed for an automatic 6-month extension via Form 7004. [2026-09-22] Pub. 509's rule text matched word for word again: "Form 1120 (or Form 7004). This form is due on the 15th day of the 4th month after the end of the corporation's tax year." and "Form 7004 is used to request an automatic 6-month extension of time to file Form 1120." A calendar-year filer's April 15, 2026 due date plus six months is October 15, 2026. Note the carve-out in the same paragraph, which does NOT apply to this row: corporations with a fiscal tax year ending June 30 (or a short year treated as ending June 30) get a different extension length — this row is the calendar-year case only. [Re-verified 2026-09-22 — method note, and a limit of this source made explicit] Re-fetched IRS Publication 509 (2026) (HTTP 200, 186,792 bytes) and matched the rule text word for word again. NEW THIS ROUND, and worth recording because earlier notes on these rows did not say it: this web page contains NO dated entry for the fourth quarter at all. Its General Tax Calendar renders only the sentence "The fourth quarter of a calendar year is made up of October, November, and December." — the dated month-by-month table that the print edition carries is not in the HTML. I checked this against the RAW HTML, not only the text extraction ("October 15" appears 0 times and "December 15" 0 times in the raw bytes), so this is a real absence in the source and not an artifact of my parsing. Only the first quarter has a dated body ("During January ... Form W-2 ... by February 2, 2026"). Consequence: the dates on these rows are DERIVED from Pub. 509's general rules plus its legal-holiday list, not quoted from a dated IRS table. I tried to cross-check against the PDF edition (fetched, HTTP 200, 1,195,405 bytes) and could not — this sandbox has no poppler and no Python PDF library, and the raw stream extraction yielded 32 characters. I am not claiming a PDF cross-check. The derivation is mechanical and the holiday question is settled from the source: Pub. 509's own legal-holiday list for 2026 gives October 12 (Indigenous Peoples' Day / Columbus Day), November 11, November 26 and December 25 — none of which is October 15 or December 15 — and the weekdays re-derived independently this round are Thursday (2026-10-15) and Tuesday (2026-12-15). So the "Saturday, Sunday, or legal holiday" shift does not apply either way. No field needed changing.
週二
15日
9月
Q3 2026 Estimated Tax Payment Due (Form 1040-ES)
2026/9/15至2026/9/16 · 全天
United States
Deadline to pay individual and business third-quarter estimated tax payments for tax year 2026 (covering income earned June 1 - August 31, 2026). Re-verified 2026-09-15 against IRS Publication 509 and corroborating practitioner sources: the 2026 quarterly estimated tax due dates are January 15, April 15, June 15 and September 15, 2026, with no holiday shift applying to September 15, 2026 (a Tuesday).
週二
15日
9月
Extended Partnership (Form 1065) and S Corporation (Form 1120-S) Returns Due - Tax Year 2025
2026年9月15日 · 全天
United States
Final deadline to file 2025 calendar-year partnership (Form 1065) and S corporation (Form 1120-S) returns for entities that requested an automatic 6-month extension.