Movie end time calculator
A listed showtime rarely tells you when you will actually leave the theater. This movie end time calculator combines the scheduled start, the film's runtime, and a separate allowance for trailers or advertisements.
Run — free
It returns a clear 24-hour end time and indicates when the finish falls after midnight. Use it to plan transport, dinner, childcare, parking, or a second screening without doing clock arithmetic in your head. The calculation is deterministic and keeps the movie duration distinct from the optional pre-show buffer.
Enter the scheduled showtime and official runtime
Start with the time printed on the ticket or cinema listing, using a 24-hour clock such as 19:30. Then enter the official movie runtime in whole minutes. Runtime must be greater than zero because a zero-minute or negative film cannot produce a meaningful estimate. The calculator accepts common aliases in API requests, but using start_time and runtime_minutes makes an integration easiest to understand later. Treat the official runtime as the length of the feature itself. If a cinema already publishes an end time that includes its pre-show program, do not copy that combined duration into the runtime field. Keeping these values separate makes the result auditable and lets you adjust the uncertain part without changing the known film length. For example, a 142-minute movie starting at 19:30 ends at 21:52 when no buffer is included. The displayed start time is normalized to two digits, so 9:05 is returned as 09:05 while retaining exactly the same clock meaning.
Add a realistic trailer and advertising buffer
Use buffer_minutes for trailers, advertisements, cinema announcements, or any other delay you expect between the advertised showtime and the feature. The buffer defaults to zero, which is useful for festivals, private screenings, home viewing, or venues that state the feature start precisely. Commercial theaters often have a pre-show, but its length varies by chain, venue, day, and individual screening, so the calculator deliberately does not invent a universal assumption. Enter the allowance that matches the information you have. A 20-minute buffer added to a 142-minute runtime creates a total elapsed time of 162 minutes. From a 19:30 showtime, that produces a 22:12 estimated end. Buffer minutes must be zero or a positive whole number. Keeping the buffer visible in the response helps you compare scenarios: calculate once with the venue's usual allowance, then again with a cautious upper estimate if a connection or reservation matters. Remember that this is planning arithmetic, not a guarantee about when a particular projection begins.
Read midnight crossings and plan around the estimate
The result includes end_time, total_minutes, and day_offset. End time is a normalized 24-hour clock value. Day offset is zero when the movie ends on the same calendar day as the listed start, one when it finishes after the next midnight, and can be larger for unusually long test inputs. This avoids ambiguous results: an end_time of 00:25 paired with day_offset 1 clearly means 12:25 a.m. on the following day, not earlier on the starting date. The calculation adds the runtime and buffer directly to the showtime; it does not use a time zone, calendar, current time, or daylight-saving rule. That makes it stable and appropriate for local theater schedules, where all values refer to the same local clock. For practical plans, consider adding a separate personal margin after the returned end time for credits, restroom stops, collecting belongings, reaching the car, or walking to transit. The calculator estimates when the entered program finishes; it does not predict how quickly you can exit the venue.
What you can do with it
Plan a ride home
Estimate the finish time before booking a pickup, checking the last train, or choosing a parking duration.
Coordinate dinner or childcare
Turn a showtime and runtime into a practical end time for reservations, babysitter schedules, or family plans.
Compare screenings
Calculate several showtimes with the same runtime and venue buffer to find the screening that fits your evening.
FAQ
What does the calculator cost?
It is free to use in the browser. API requests cost $0.002 each.
Does movie runtime usually include trailers?
Official runtime normally describes the feature. Enter trailers and advertisements separately as buffer_minutes when they apply.
What happens if the movie ends after midnight?
The end_time wraps to the 24-hour clock and day_offset becomes 1, clearly marking a finish on the following day.
Can the runtime be zero or negative?
No. Runtime must be a positive whole number of minutes; zero and negative values return an invalid-input error.
Can I omit the trailer and ad buffer?
Yes. buffer_minutes defaults to zero, so the result then adds only the movie runtime to the start time.
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/video/movie-runtime-showtime-calc \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"runtime_minutes":142,"start_time":"19:30"}'const res = await fetch("https://api.kit.forhosting.com/video/movie-runtime-showtime-calc", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"runtime_minutes": 142,
"start_time": "19:30"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/video/movie-runtime-showtime-calc",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"runtime_minutes": 142,
"start_time": "19:30"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/video/movie-runtime-showtime-calc", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"runtime_minutes":142,"start_time":"19:30"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"runtime_minutes":142,"start_time":"19:30"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/video/movie-runtime-showtime-calc", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"runtime_minutes": 142,
"start_time": "19:30"
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "video.movie_runtime_showtime_calc",
"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.
Limits
max_mb | 500 |
max_minutes | 60 |
max_megapixels | 3.9 |
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. |