ForHosting KIT · Travel & geography

ETA calculator

Leave at 09:30 with 180 km to go at an average of 90 km/h and you arrive at 11:30: the calculator adds the travel time to your leave time and gives an arrival clock to share with a passenger, hotel or receiver. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon
If you enter
Departure time
09:30
Remaining distance
180
Average moving speed
90
You get
Departure hour
9
Departure minute
30
Travel time hours
2
Travel time minutes
120

An estimated time of arrival calculator answers a simple travel question: if you leave at a known clock time with a given remaining distance and a realistic average speed, what clock time should you expect to arrive? Enter a 24-hour departure such as 09:30, the kilometres or miles still ahead, and your expected moving rate in matching units per hour; the tool divides distance by speed for pure travel hours, adds that duration to the departure clock with midnight wrap, and returns a zero-padded arrival time, day offset, duration labels, and substitution steps.

What estimated arrival clock time means

Estimated time of arrival in this tool is a closed-form clock result, not a live traffic feed. You supply when you leave on a 24-hour clock, how much distance remains, and the average speed you expect while moving. Travel time is remaining distance divided by average speed when both share a consistent unit system—kilometres with kilometres per hour, or miles with miles per hour.

Rejecting zero or negative speed protects callers from silent infinity, which would corrupt calendars, dispatch boards, and billing scripts that assume a finite positive travel interval. Compared with a pure driving-duration tool that only returns an offset in hours, this landing targets people who already have a leave time and need the arrival clock printed for the passenger, hotel, or receiver.

Passenger and hotel check-in windows

Travellers enter leave time, remaining highway distance, and a conservative average speed to share a realistic arrival clock before booking dinner or early check-in.

Courier and last-mile dispatch

Dispatch scripts convert remaining leg distance and fleet average speed into an arrival HH:MM for the receiver without calling a maps vendor on every ping.

Classroom constant-velocity ETA problems

Teachers generate deterministic arrival-clock answers for distance-over-speed homework and show zero-speed rejection as a validation lesson.

What happens if average speed is zero or negative?

Zero or negative speed cannot produce a finite travel time or arrival clock.

Does this use live traffic or GPS?

No. It is a closed formula on the three inputs you supply. No maps, no Date, and no network inside the solver.

Is the ETA calculator free?

The browser tool is free and runs locally.

What if the trip runs past midnight?

The arrival still comes out as a valid 24-hour time, and a day offset tells you it falls on the next day. A long overnight drive therefore never shows an impossible clock time.

Which units should distance and speed use?

The same family: kilometres with kilometres per hour, or miles with miles per hour. The tool divides one by the other without converting, so mixing miles with km/h gives a wrong arrival time.

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.

POSThttps://api.kit.forhosting.com/travel/eta-calculator

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.

curl -X POST https://api.kit.forhosting.com/travel/eta-calculator \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"remaining_distance":180,"average_speed":90}'
{
  "remaining_distance": 180,
  "average_speed": 90
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "travel.eta_calculator",
  "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.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

max_distance1000000
max_speed10000
HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

Zero or negative average speed is rejected with invalid_input because division by zero cannot produce a finite arrival.

What estimated arrival clock time means

That duration is added to the departure minutes since midnight; if the sum crosses midnight the response advances day_offset and still prints a valid HH:MM arrival. The model does not query congestion, weather, border queues, or elevation profiles; it is a transparent formula so planners and students can recompute the hours by hand and trust the same answer in the browser and on the API.

How to call the API and what comes back

Send a JSON body with remaining_distance (aliases distance, remaining, dist, d, leg_distance) and average_speed (aliases speed, avg_speed, v, velocity) as finite positive numbers within the published maxima. Provide departure either as departure_time string HH:MM (aliases depart, leave_at, start_time, time_out) or as departure_hour zero through twenty-three with optional departure_minute zero through fifty-nine defaulting to zero. On success the response echoes departure_time, departure_hour, departure_minute, rounded remaining_distance and average_speed, travel_time_hours, travel_time_minutes, a compact travel_time_formatted label, arrival_time as HH:MM, arrival_hour, arrival_minute, day_offset, day_note, the formula string arrival equals departure plus remaining_distance over average_speed, a short English message, and ordered substitution steps. Failed validation—missing departure, missing distance or speed, non-finite numbers, out-of-range values, malformed clock strings, or zero or negative speed—returns invalid_input and is never charged. Pricing is a flat $0.002 per successful request with unit item and zero marginal unit price.

Practical tips, limits, and related searches

Keep remaining distance and average speed in the same unit family; mixing miles of road with kilometres per hour silently warps the hours without the solver detecting the mismatch, because the formula is unit-agnostic by design. Prefer a conservative average speed when planning family pickups or tight check-in windows rather than the posted highway maximum. Absolute limits reject absurd inputs that would overflow intermediate results: multi-million unit distances or impossible speeds. Prefer this capability when you already know when you leave and need the arrival HH:MM; if you only need hours of driving without a clock, use a road-trip duration calculator instead. Use departure_time for human forms that collect a single clock field, and departure_hour plus departure_minute when your client already stores integers. Multi-day hauls simply increase day_offset while still returning a correct clock face. This landing targets people searching for an estimated time of arrival calculator, ETA from departure and speed, or arrival clock time online; it is not a turn-by-turn navigator, not a live traffic ETA, and not a pure duration-only road-trip offset tool that omits the leave clock. Failed tasks that return invalid_input do not consume prepaid balance, which keeps exploratory scripts cheap when you deliberately send speed zero to verify error handling.

How is estimated arrival time calculated?

Travel hours equal remaining_distance divided by average_speed. That duration is added to your departure clock on a 24-hour face; day_offset counts midnights crossed.

Can I send hour and minute instead of a HH:MM string?

Yes. Provide departure_hour (0–23) and optional departure_minute (0–59, default 0) when you omit departure_time.

Read the full KIT documentation →