Movie & Series Marathon Planner
Plan a binge: when each movie or episode starts and ends, total days, and a calendar.
Try an example: Lord-of-the-Rings-length trilogy over a weekend · A 5-season drama at 2 hours a night
How it works
Add movies (runtime) and series (episodes × minutes × seasons), your breaks, when you start and how many hours a day you want to watch. The planner schedules every movie and episode, tells you how many days the marathon takes and whether you finish by a date, and exports the viewing sessions as an .ics calendar.
- Each movie is one item; each series becomes episodes × seasons items of the given length.
- Items are watched in the order entered. Within a day, a break follows each item (the episode break inside a title, the title break between titles); breaks do not count towards the daily maximum.
- If the next item would push the day over the maximum viewing time, it moves to the next day at the daily start time. With pausing allowed, an item is split instead when at least 15 minutes fit into the day.
- An item longer than the daily maximum is scheduled in one piece (with a warning) unless pausing is allowed.
- A viewing session belongs to the day it starts, even if it runs past midnight. Times are local wall-clock times without a time zone; the .ics file uses floating times (RFC 5545), so calendars show them at the same clock time wherever you are.
- Finish-by check: the last item must end before midnight at the end of that date. Required hours per day = total watching time ÷ number of days from the start date to the finish-by date.
Sources
For scripts and AI agents
- JSON API:
POST https://runtimemarathonplanner.usefulweb.site/api/v1/calculate(same calculation as this page) - Interface description: OpenAPI 3.1 · AI guide: llms.txt
- MCP server (Streamable HTTP):
https://runtimemarathonplanner.usefulweb.site/mcp· tool nameruntime_marathon_planner
Example request
curl -s -X POST https://runtimemarathonplanner.usefulweb.site/api/v1/calculate \
-H 'content-type: application/json' \
-d '{"titles":[{"title":"Part 1","minutes":178},{"title":"Part 2","minutes":179},{"title":"Part 3","minutes":201}],"start":"2026-10-23T19:00","dailyStart":"14:00","maxHoursPerDay":6,"breakMinutes":10,"titleBreakMinutes":30,"allowSplit":false,"finishBy":"2026-10-25"}'