Big defence spending, aid cuts: German cabinet approves budget

German Finance Minister and Vice Chancellor Lars Klingbeil arrives to address a press conference to present the government's draft of the 2027 federal budget and financial plan through 2030, in Berlin on Monday (AFP photo)
German Finance Minister and Vice Chancellor Lars Klingbeil arrives to address a press conference to present the government's draft of the 2027 federal budget and financial plan through 2030, in Berlin on Monday (AFP photo)

BERLIN — The German cabinet Monday approved a budget for next year that sets out vast new outlays for defence but drew criticism for cutting spending on climate action and aid.

The plans, which still need to be approved by parliament, envisage Europe's biggest economy spending more than projected just a few months ago and also taking on greater debt.

The 2027 defence budget rises by 33 per cent from 2026, to almost 110 billion euros ($126 billion), as Germany pushes ahead with a rearmament drive that began after Russia's invasion of Ukraine.

But green groups have criticised plans to transfer billions of euros from a special climate fund to the regular budget.

There has also been unease at a six-percent reduction in the budget for the development department, which disburses aid.

Finance Minister Lars Klingbeil defended the budget, saying the government had managed to plug a 34-billion-euro hole, and insisting the focus on military spending was justified.

"You can't defend yourself against (Russian President Vladimir) Putin with a balanced budget," he told public broadcaster ARD at the weekend.

"We want our country to make up for 20 years of low spending and underinvestment in defence."

Total spending in 2027 will come to 555.4 billion euros, 12 billion more than initially projected when draft figures were outlined in April.

New borrowing is nearly eight billion euros higher, standing at 118.7 billion euros.

Klingbeil pointed to the Iran war as one reason for the extra borrowing, saying it had "put the brakes on growth expectations".

The conflict and ensuing energy shock, a huge burden for German manufacturers, has dimmed hopes the country's long struggling economy will rebound this year.

Environmental protection group BUND accused the ruling coalition of an "attack on climate protection" by shifting money from the climate fund.

The coalition is led by the centre-right Christian Democrats (CDU) party of Chancellor Friedrich Merz, with Klingbeil's centre-left Social Democrats (SPD) as junior partners.

"We've only just got through the first heat wave of the summer, the need for action couldn't be clearer," BUND climate expert Tina Loeffelsend said.

Parliamentary debates on the budget will begin in September, and it is expected to be finalised by the end of 2026.

.col-lg-12.second .opinion-widget{border-top:1px solid #D0D0D0;} #widget_1623 .opinions-title {font-size:32px;} #widget_1623 .opinions-title a{font-size:32px;} .first-author{ background-color:#ecedef; } .first-opinion-author-name{ background-color:white; width:max-content; padding:5px; }
.epaper-separator{ height: 1px; width: 100%; background-color: #D0D0D0; margin: 15px 0; }

Today’s Paper

.related-articles .article-widget-sm .article-title{font-size:16px;-webkit-line-clamp:3;} .related-articles .layout-ratio{padding-bottom:55%;}
.alert-success { color :#A3656F ; } .alert-danger { color : red ; } .footer { font-family:Myriad Pro,Arial; } .newspaper-footer{ visibility:hidden; } .socialFixOuter { position: fixed; top: 50%; margin-top: 40px; right: 0; transition: .2s; z-index: 20; height: 217px; width: 40px; } .socialFix { height: 30px; width: 30px; display: block; position: relative; cursor: pointer; background-size: 18px 18px; transition: .2s; background-position: center; background-repeat: no-repeat; border-radius: 2px; margin-top: 1px; } .socialFix:hover { width: 40px; margin-left: -10px; } .app-badge-img { height: 36px; width: auto; } @media (max-width: 768px) { .app-badge-img { height: 32px; } .app-badges { justify-content: center !important; } }
document.addEventListener("DOMContentLoaded", function () { const socialFix = document.querySelector(".socialFixOuter"); if (!socialFix) return; let firstInteraction = false; let hideTimeout = null; function checkMobileScreen() { if (window.innerWidth < 768) { socialFix.style.display = "none"; } else { socialFix.style.display = "block"; } } checkMobileScreen(); window.addEventListener("resize", checkMobileScreen); function handleFirstInteraction() { if (firstInteraction) return; if (window.innerWidth < 768) return; firstInteraction = true; socialFix.style.right = "-25px"; } socialFix.addEventListener("mouseenter", function () { if (window.innerWidth < 768) return; if (hideTimeout) clearTimeout(hideTimeout); socialFix.style.right = "0"; }); socialFix.addEventListener("mouseleave", function () { if (window.innerWidth < 768) return; if (hideTimeout) clearTimeout(hideTimeout); hideTimeout = setTimeout(() => { socialFix.style.right = "-25px"; }, 500); }); ["click", "touchstart"].forEach((evt) => { socialFix.addEventListener(evt, handleFirstInteraction); }); }); function validateEmail(email) { if (email.length > 255) return false; const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/; if (!emailRegex.test(email)) return false; if (email.includes('..') || email.startsWith('.') || email.endsWith('.')) return false; return true; } function sanitizeInput(input) { input = input.replace(/<[^>]*>/g, ''); input = input.replace(/javascript:/gi, ''); input = input.replace(/on\w+\s*=/gi, ''); input = input.replace(/[<>"'&(){}[\]]/g, ''); return input.trim(); } document.addEventListener('DOMContentLoaded', function () { function showModal(message, type) { const messageContainer = document.getElementById("messageContainerFooter"); messageContainer.textContent = message; messageContainer.className = `alert alert-${type} mt-3`; messageContainer.classList.remove("d-none"); setTimeout(() => { messageContainer.classList.add("d-none"); }, 5000); } document.getElementById("emailFormFooter").addEventListener("submit", function(event) { event.preventDefault(); const emailInput = document.getElementById("emailFooter"); const email = sanitizeInput(emailInput.value.trim()); if (!validateEmail(email)) { showModal('Invalid email format', 'danger'); return; } const formData = new FormData(); formData.append('email', email); fetch('/subscribeNewsletter', { method: "POST", body: formData, headers: { "Accept": "application/json", "X-Requested-With": "XMLHttpRequest" } }) .then(response => { if (!response.ok) { showModal("Error submitting email. Try again.", 'danger'); } return response.json(); }) .then(data => { showModal(data.message, 'success'); }) .catch(error => { showModal("Error submitting email. Try again.", 'danger'); }); }); });