Houseplant watering schedule calculator by pot size
This houseplant watering schedule calculator estimates how many days to leave between waterings for a recognized plant type and pot diameter.
Run — free
It begins with a general care baseline for the selected plant, then adjusts the interval because small pots tend to dry sooner while larger pots generally hold moisture longer. The transparent result shows the baseline, size band, adjustment factor, and recommended interval. Use it as a repeatable reminder, then check the soil and your plant before actually adding water.
Select the plant type and measure the pot
Choose the exact plant_type value that best describes your houseplant: cactus, monstera, orchid, peace_lily, pothos, rubber_plant, snake_plant, spider_plant, succulent, or zz_plant. The calculator deliberately supports a defined list because plants with different growth habits should not receive an invented generic baseline. If your plant is not listed, the request returns an error instead of pretending that a potentially unsuitable schedule is reliable. Measure pot_size_inches across the inside of the pot at its widest opening. Do not use the height, circumference, decorative outer planter, or the size printed on a shipping box. If a nursery pot sits inside a cachepot, measure the nursery pot that actually contains the roots and growing medium. Enter a diameter from 2 through 24 inches; decimal measurements are accepted. Pot diameter is a practical proxy for growing-medium volume, but pot depth and shape still matter, so two containers with the same diameter may not dry at precisely the same rate. The output preserves the submitted measurement for easy checking.
Understand how the interval is estimated
Each supported plant type has a general baseline interval for a medium pot. Moisture-tolerant plants such as peace lilies receive a shorter baseline, while drought-adapted cactus, snake plants, succulents, and ZZ plants receive longer ones. The pot diameter then selects a transparent adjustment band. Pots up to 4 inches use a factor of 0.75 because their smaller soil volume commonly loses available moisture sooner. Pots over 4 and up to 8 inches use the baseline unchanged. Pots over 8 and up to 12 inches use 1.25, and pots over 12 through 24 inches use 1.5. The adjusted value is rounded to the nearest whole day, with a minimum of two and a maximum of thirty-two days. The response includes baseline_interval_days, pot_size_band, pot_size_factor, and recommended_interval_days, so the recommendation can be reproduced without hidden judgment. This is a scheduling estimate, not a claim that every plant in a size band consumes water identically.
Use the schedule as a reminder to inspect
Treat recommended_interval_days as the next time to inspect the plant, not an instruction to pour water automatically. Push a clean finger or suitable moisture probe into the growing medium and consider the needs of the selected species before watering. Bright light, warm rooms, low humidity, active growth, porous terracotta, loose soil, and strong airflow can shorten the real interval. Winter dormancy, cool conditions, high humidity, dense mixes, nonporous containers, and low light can lengthen it. Drainage holes are essential because a sensible calendar cannot compensate for roots standing in trapped water. Watch for evidence over several cycles: persistently wet soil, fungus gnats, yellowing leaves, or soft tissue can indicate excessive watering, while severe wilting, shrinking, or soil pulling from the pot can indicate that checks are too far apart. Record the date, soil condition, and response, then adjust your personal reminder gradually. Recently repotted, propagated, diseased, or stressed plants may require care beyond this general estimate.
What you can do with it
Set a first watering reminder
Create a reasonable first check date for a newly acquired supported houseplant while you learn how quickly its soil dries at home.
Adjust after repotting
Compare the estimated interval before and after moving a plant into a different pot diameter, then refine it through soil checks.
Standardize routine plant checks
Give household members or office caretakers a consistent inspection cadence without presenting the calendar as an automatic watering command.
FAQ
How much does the calculation cost?
Each API calculation costs $0.002. The browser version can be run directly on the page.
Which plant types are recognized?
The accepted values are cactus, monstera, orchid, peace_lily, pothos, rubber_plant, snake_plant, spider_plant, succulent, and zz_plant.
Why does pot size change the interval?
Small pots generally hold less growing medium and dry sooner, while larger pots generally retain usable moisture longer. The calculator applies fixed size-band factors to reflect that tendency.
Should I water automatically on the recommended day?
No. Use the date as a reminder to inspect soil moisture and plant condition, then water only when appropriate for that species and environment.
Does the estimate account for season, light, or humidity?
No. Those conditions can materially change drying time. Observe the plant over several cycles and adjust your actual reminder as conditions change.
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/life/plant-watering-schedule \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"plant_type":"pothos","pot_size_inches":6}'const res = await fetch("https://api.kit.forhosting.com/life/plant-watering-schedule", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"plant_type": "pothos",
"pot_size_inches": 6
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/life/plant-watering-schedule",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"plant_type": "pothos",
"pot_size_inches": 6
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/life/plant-watering-schedule", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"plant_type":"pothos","pot_size_inches":6}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"plant_type":"pothos","pot_size_inches":6}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/life/plant-watering-schedule", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"plant_type": "pothos",
"pot_size_inches": 6
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "life.plant_watering_schedule",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |