What to plant right now — by USDA zone
Pick your USDA zone (or type your ZIP). See exactly what is sowable, transplantable, or installable this week. Pulls from our 50 state planting calendars and 500 crop-by-state pages.
The tool below pulls from our state-by-state planting calendars and 500 crop-by-state pages. It does not guess. If your local frost dates differ from the regional average (you live on a south-facing hill, in a heat island, near a lake), shift the recommendations by 1–2 weeks accordingly.
<p style="font-size: 14px; color: var(—text-soft);" id="pn-status">Pick a zone (or type your ZIP) to see what is plantable this week.</p> <div id="pn-results"></div> </div>
How this works
We anchor each zone to its average last-spring-frost and first-fall-frost dates, the way every Extension service does:
| Zone | Last spring frost | First fall frost | Growing season |
|---|---|---|---|
| 3 | early June | early September | ~90 days |
| 4 | late May | mid September | ~110 days |
| 5 | mid May | late September | ~135 days |
| 6 | late April | mid October | ~170 days |
| 7 | mid April | late October | ~195 days |
| 8 | early April | early November | ~215 days |
| 9 | mid March | late November | ~255 days |
| 10 | February | December | ~300 days |
| 11 | none (frost-free) | none | year-round |
From those two anchors, we calculate when each common crop or ornamental can be sown, transplanted, or installed. The cutoffs follow standard Extension guidance: cool-season crops want soil temps in the 40s–60s, warm-season crops want soil in the 60s–70s, root vegetables and brassicas want a fall finish window of 6–10 weeks before first frost depending on the species.
What is not in the tool
- Trees and large shrubs — best planted in fall (zones 5–8) or early spring (zones 3–4); the tool does not list these because the window is months long, not weeks long. See the /care/ hub for tree planting timing.
- Houseplants moved outside — too dependent on your specific microclimate and the species.
- Bulbs for next year — fall is the right window for spring bulbs, late spring for summer bulbs. The tool lists these only when their window is open.
- Anything that needs starting indoors 8+ weeks before transplant — the tool tells you when to direct sow or transplant, not when to start seeds indoors. See /tools/seed-starting-calculator/ for indoor start dates.
See also
- State-by-state planting calendars — 50 states with last/first frost dates and signature crops
- When-to-plant crop pages — 500 specific crop × state combinations
- Frost dates by ZIP code — find your local average dates
- USDA zone finder — map and ZIP lookup
<script> // What to plant now — zone-aware client-side recommendations (function() { // Anchor dates per zone (last_spring_frost, first_fall_frost) as approximate ISO month-day strings const ZONE_DATA = { 3: { lsf: '06-01', fff: '09-05', name: 'Zone 3 (very cold)' }, 4: { lsf: '05-25', fff: '09-20', name: 'Zone 4 (cold)' }, 5: { lsf: '05-15', fff: '09-30', name: 'Zone 5 (cold)' }, 6: { lsf: '04-25', fff: '10-15', name: 'Zone 6 (cool)' }, 7: { lsf: '04-15', fff: '10-25', name: 'Zone 7 (moderate)' }, 8: { lsf: '04-05', fff: '11-05', name: 'Zone 8 (mild)' }, 9: { lsf: '03-15', fff: '11-25', name: 'Zone 9 (warm)' }, 10: { lsf: '02-15', fff: '12-15', name: 'Zone 10 (warm)' }, 11: { lsf: null, fff: null, name: 'Zone 11 (tropical, frost-free)' } };
// Each crop: when it's plantable (relative to LSF or FFF, in days) // mode: 'sow' (direct sow), 'transplant', 'install' (perennial/shrub) // window_start, window_end in days RELATIVE to LSF (negative = before, positive = after) // Or relative to FFF for fall crops (use ff_start, ff_end) const CROPS = [ // SPRING — COOL SEASON (sow before/around LSF) { name:'Peas', mode:'Direct sow', start:-42, end:0, icon:'🌱', href:'/guides/pea-plant-care/', note:'As soon as soil is workable; tolerates light frost' }, { name:'Spinach', mode:'Direct sow', start:-42, end:-7, icon:'🌱', href:'/guides/spinach-care/', note:'Bolts in heat; finish before LSF + 14 days' }, { name:'Lettuce', mode:'Direct sow', start:-35, end:14, icon:'🌱', href:'/guides/lettuce-care/', note:'Succession sow every 2 weeks' }, { name:'Radish', mode:'Direct sow', start:-28, end:14, icon:'🌱', href:'/guides/radish-care/', note:'30-day crop, succession sow until heat' }, { name:'Carrot', mode:'Direct sow', start:-28, end:14, icon:'🌱', href:'/guides/carrot-care/', note:'Slow germination; keep moist' }, { name:'Onion (sets)', mode:'Direct sow', start:-35, end:0, icon:'🌱', href:'/guides/growing-onions/', note:'Plant sets or seedlings; needs long cool season' }, { name:'Kale', mode:'Transplant', start:-21, end:14, icon:'🌿', href:'/guides/growing-kale/', note:'Hardens off down to 25°F when established' }, { name:'Broccoli', mode:'Transplant', start:-14, end:7, icon:'🌿', href:'/guides/growing-broccoli/', note:'Needs to finish before heat sets in' }, { name:'Cabbage', mode:'Transplant', start:-14, end:14, icon:'🌿', href:'/guides/cabbage-care/', note:'Tolerates light frost when hardened' },
// SPRING — WARM SEASON (sow/transplant around or after LSF) { name:'Tomato', mode:'Transplant', start:7, end:42, icon:'🍅', href:'/guides/tomato-plant-care/', note:'Soil must be 60°F+; tarp dark plastic to warm' }, { name:'Pepper', mode:'Transplant', start:14, end:42, icon:'🌶️', href:'/guides/pepper-plant-care/', note:'Needs warmer soil than tomato (65°F+)' }, { name:'Eggplant', mode:'Transplant', start:21, end:42, icon:'🍆', href:'/guides/eggplant-care/', note:'The most heat-loving of the nightshades' }, { name:'Cucumber', mode:'Direct sow', start:0, end:35, icon:'🥒', href:'/guides/cucumber-plant-care/', note:'Sow successions every 3 weeks' }, { name:'Zucchini', mode:'Direct sow', start:0, end:35, icon:'🥒', href:'/guides/zucchini-plant-care/', note:'Two plants is plenty for most households' }, { name:'Bush beans', mode:'Direct sow', start:0, end:49, icon:'🌱', href:'/guides/growing-green-beans/', note:'Succession sow every 2 weeks for steady supply' }, { name:'Pole beans', mode:'Direct sow', start:0, end:21, icon:'🌱', href:'/guides/growing-pole-beans/', note:'One sowing produces for 8-10 weeks' }, { name:'Corn', mode:'Direct sow', start:0, end:21, icon:'🌽', href:'/guides/growing-corn/', note:'Block planting needed for pollination' }, { name:'Basil', mode:'Transplant', start:14, end:42, icon:'🌿', href:'/guides/growing-basil/', note:'Hates cold soil; wait until 65°F' }, { name:'Squash', mode:'Direct sow', start:0, end:35, icon:'🎃', href:'/guides/growing-winter-squash/', note:'Watch for squash vine borer in mid-June' }, { name:'Melon', mode:'Direct sow', start:7, end:21, icon:'🍈', href:'/guides/growing-watermelon/', note:'Needs 75-100 days; only viable in zones 5+' },
// FALL — COOL SEASON (sow before FFF, relative to fff) { name:'Fall spinach', mode:'Direct sow', ff_start:-56, ff_end:-21, icon:'🌱', href:'/guides/spinach-care/', note:'Overwinters under row cover in zones 6+' }, { name:'Fall lettuce', mode:'Direct sow', ff_start:-49, ff_end:-21, icon:'🌱', href:'/guides/lettuce-care/', note:'Succession until cool weather slows growth' }, { name:'Fall kale', mode:'Transplant', ff_start:-70, ff_end:-35, icon:'🌿', href:'/guides/growing-kale/', note:'Sweetens after first frost' }, { name:'Fall radish', mode:'Direct sow', ff_start:-42, ff_end:-21, icon:'🌱', href:'/guides/radish-care/', note:'Daikon and storage radishes need longer than spring types' }, { name:'Fall carrot', mode:'Direct sow', ff_start:-70, ff_end:-49, icon:'🌱', href:'/guides/carrot-care/', note:'Mulch heavily to extend harvest into winter' }, { name:'Garlic', mode:'Plant cloves', ff_start:-14, ff_end:14, icon:'🧄', href:'/guides/growing-garlic/', note:'2-6 weeks before ground freezes; harvest next July' },
// ORNAMENTAL — spring window { name:'Pansy', mode:'Transplant', start:-21, end:21, icon:'🌸', href:'/guides/pansy-care/', note:'Cold-tolerant; fades in heat' }, { name:'Dahlia tubers', mode:'Plant tubers',start:7, end:35, icon:'💐', href:'/guides/dahlia-care/', note:'Soil 60°F+; tubers rot in cold wet ground' }, { name:'Gladiolus', mode:'Plant corms', start:0, end:42, icon:'💐', href:'/guides/gladiolus-care/', note:'Succession plant every 2 weeks for extended bloom' }, { name:'Caladium', mode:'Plant tubers',start:21, end:42, icon:'🌿', href:'/guides/caladium-care/', note:'Tropical; needs warm soil and warm air' },
// ORNAMENTAL — fall window (relative to FFF) { name:'Tulip bulbs', mode:'Plant bulbs', ff_start:-21, ff_end:21, icon:'🌷', href:'/guides/tulip-care/', note:'When soil cools below 60°F; before ground freezes' }, { name:'Daffodil bulbs', mode:'Plant bulbs', ff_start:-42, ff_end:0, icon:'🌼', href:'/guides/daffodil-care/', note:'Plant earlier than tulips; rooting needs warmer soil' }, { name:'Allium bulbs', mode:'Plant bulbs', ff_start:-21, ff_end:14, icon:'🌸', href:'/guides/allium-care/', note:'Same window as tulips; deer-proof' }, { name:'Crocus bulbs', mode:'Plant bulbs', ff_start:-28, ff_end:0, icon:'💐', href:'/guides/crocus-care/', note:'Tiny bulbs, plant 100 at a time for impact' }, ];
function daysBetween(d1, d2) { return Math.round((d2 - d1) / (10006060*24)); }
function parseAnchor(year, mmdd) { if (!mmdd) return null; return new Date(year + '-' + mmdd + 'T12:00:00'); }
function render(zoneKey) { const z = ZONE_DATA[zoneKey]; const status = document.getElementById('pn-status'); const results = document.getElementById('pn-results'); if (!z) { status.textContent = 'Pick a zone (or type your ZIP) to see what is plantable this week.'; results.innerHTML = ''; return; } if (!z.lsf) { status.innerHTML = '' + z.name + ' — frost-free year-round. Plant cool-season crops Oct–March, warm-season crops year-round. See the <a href="/planting/">state calendar</a> for your area.'; results.innerHTML = ''; return; } const now = new Date(); const year = now.getFullYear(); const lsf = parseAnchor(year, z.lsf); const fff = parseAnchor(year, z.fff); const daysFromLsf = daysBetween(lsf, now); const daysFromFff = daysBetween(fff, now);
status.innerHTML = '' + z.name + ' · Last spring frost ≈ ' + lsf.toLocaleDateString('en-US',{month:'long',day:'numeric'}) + ' · First fall frost ≈ ' + fff.toLocaleDateString('en-US',{month:'long',day:'numeric'}) + '';
// Filter crops with active window const plantable = CROPS.filter(c => { if ('start' in c) { return daysFromLsf >= c.start && daysFromLsf <= c.end; } if ('ff_start' in c) { return daysFromFff >= c.ff_start && daysFromFff <= c.ff_end; } return false; });
if (plantable.length === 0) { results.innerHTML = '<div class="plantnow-card" style="text-align:center; padding:32px 16px;"><h3 style="margin:0 0 8px;">Nothing in the active planting window right now</h3><p style="color:var(—text-soft); margin:0;">This is normal — most zones have quiet stretches between the spring and fall windows. Use this time to plan, build soil, and prep beds. See <a href="/care/">care articles</a> for off-season tasks.</p></div>'; return; }
// Group by mode const groups = {}; plantable.forEach(c => { if (!groups[c.mode]) groups[c.mode] = []; groups[c.mode].push(c); });
let html = '<div class="plantnow-card"><h3 style="margin-top:0;">' + plantable.length + ' crops are in their planting window right now</h3>'; Object.keys(groups).forEach(mode => { html += '<h4 style="margin:18px 0 8px; color:var(—text);">' + mode + ' (' + groups[mode].length + ')</h4>'; html += '<div class="plantnow-results">'; groups[mode].forEach(c => { html += '<a class="plantnow-chip" href="' + c.href + '" style="text-decoration:none; color:inherit;">' + c.icon + ' ' + c.name + '<span>' + c.note + '</span></a>'; }); html += '</div>'; }); html += '<p style="font-size:13px; color:var(—text-soft); margin-top:20px;">Frost dates are zone averages. Adjust by 1–2 weeks if you garden in a known microclimate (south-facing slope, urban heat island, cold valley). For state-specific timing, see the <a href="/planting/">planting calendar</a> for your state.</p></div>'; results.innerHTML = html; }
document.getElementById('pn-zone').addEventListener('change', function(e) { render(parseInt(e.target.value, 10)); if (e.target.value) { try { localStorage.setItem('opc-zone', e.target.value); } catch(_) {} } });
document.getElementById('pn-detect').addEventListener('click', function() { document.getElementById('pn-zip').style.display = 'inline-block'; document.getElementById('pn-zip').focus(); });
// ZIP → zone (approximate, US only). Source: USDA 2023 PHZM. Stored as 2-digit ZIP prefix → zone. const ZIP_PREFIX_TO_ZONE = { '00': 4, '01': 6, '02': 6, '03': 5, '04': 4, '05': 4, '06': 6, '07': 6, '08': 7, '09': 6, '10': 7, '11': 7, '12': 5, '13': 5, '14': 5, '15': 6, '16': 6, '17': 6, '18': 6, '19': 7, '20': 7, '21': 7, '22': 7, '23': 7, '24': 6, '25': 6, '26': 6, '27': 7, '28': 7, '29': 8, '30': 8, '31': 8, '32': 9, '33': 10, '34': 10, '35': 7, '36': 8, '37': 7, '38': 7, '39': 8, '40': 6, '41': 6, '42': 6, '43': 6, '44': 6, '45': 6, '46': 6, '47': 6, '48': 5, '49': 5, '50': 5, '51': 5, '52': 5, '53': 5, '54': 5, '55': 4, '56': 4, '57': 4, '58': 3, '59': 4, '60': 5, '61': 5, '62': 6, '63': 6, '64': 6, '65': 6, '66': 6, '67': 6, '68': 5, '69': 5, '70': 9, '71': 8, '72': 8, '73': 7, '74': 7, '75': 8, '76': 8, '77': 9, '78': 8, '79': 7, '80': 5, '81': 5, '82': 5, '83': 5, '84': 6, '85': 9, '86': 7, '87': 6, '88': 7, '89': 7, '90': 10, '91': 10, '92': 10, '93': 9, '94': 10, '95': 9, '96': 9, '97': 8, '98': 8, '99': 5 };
document.getElementById('pn-zip').addEventListener('input', function(e) { const v = e.target.value.replace(/\D/g, '').slice(0,5); e.target.value = v; if (v.length >= 2) { const zone = ZIP_PREFIX_TO_ZONE[v.slice(0,2)]; if (zone) { document.getElementById('pn-zone').value = String(zone); render(zone); } } });
// Restore last zone try { const saved = localStorage.getItem('opc-zone'); if (saved) { document.getElementById('pn-zone').value = saved; render(parseInt(saved, 10)); } } catch(_) {} })(); </script>