A car maintenance log app that knows what is due.
A car maintenance log app has one job: answer "what is due, and when" for one specific car, without you doing the arithmetic. That takes more than a list of oil changes. It takes the vehicle identified properly, a rule for each service with two clocks, one counting miles and one counting months, and a receipt on every line so the history is worth something when you sell the car or make a warranty claim. That is the test this page applies, and it is the same test that runs through the rest of our app examples: the job first, the tool second.
Below: the fields, the service intervals from a real manufacturer schedule, how to decode a VIN for free, what the FTC says about receipts and warranties, and where the off-the-shelf options stop.
See what a car maintenance log app needs to recordThe short version
Two clocks per service, and a receipt on every line.
A car maintenance log app needs the vehicle (VIN, year, make, model, engine, starting odometer), a rule for each service (a mileage interval and a time limit, from the maintenance guide for that exact car), and an entry for each visit (date, odometer, service, shop, cost, parts, receipt photo). Reminders fire on whichever clock runs out first. Everything people actually want from the app, what is due next, cost per mile, a history to hand a buyer, is calculated from those three things. The rest of this page is the detail, with a real schedule to copy the shape from.
The fields
What a car maintenance log app needs to record.
Three tables, really. The vehicle is entered once. The rules are entered once per service and edited rarely. The entries are what you add every time something is done. Most apps collapse these into one long list of visits, which is why they can show history but cannot say what is due.
The vehicle, once
Entered on the day the log starts and rarely touched again.
- VIN, all 17 characters, decoded rather than typed
- Year, make, model, trim and engine, from the decode
- Odometer reading and date on the day the log starts
- Fuel type and transmission, from the decode
- Plate and a nickname, if there is more than one car
The rules, per service
One row per service, copied from the maintenance guide for that exact car.
- Service name, from a fixed list rather than free text
- Mileage interval
- Time limit in months
- A second interval for severe conditions, if the guide has one
- Last done: odometer and date, which start both clocks
The entries, per visit
One row every time something is done, by a shop or by you.
- Date and odometer at the time of service
- Which rule it satisfies, so the clocks reset
- Who did it: the shop, or DIY
- Cost, split into parts and labor if you want cost per mile
- Parts fitted, and whether they were new, aftermarket or recycled
- A photo of the receipt, and what the shop found or you declined
The field that gets skipped is the odometer at the time of service. A log with dates but no mileage cannot run the mileage clock, and a log with mileage but no dates cannot run the calendar one. Both belong on every entry, or the reminder logic in the next section has nothing to work with.
The rules
Service intervals: what "due" actually means.
Every manufacturer schedule is written the same way: a mileage interval and a time limit, whichever comes first. Toyota's guide for the 2025 Camry says it plainly: scheduled maintenance every 5,000 miles or six months, and if you drive 5,000 miles in less than six months, go at 5,000 miles; if six months arrive first, go at six months. It even tells low-mileage drivers to mark a calendar. A car maintenance log app is that calendar, with the odometer counted alongside it.
One service, two clocks
Due in about a month, by the calendar, even though the odometer says 2,600 miles to go. The reminder fires on the earlier clock.
A real schedule
One manufacturer's intervals, as the app would store them
These are the standard rows from Toyota's 2025 Camry Warranty & Maintenance Guide, read off its maintenance log charts. Your car's guide will have different numbers. The shape is what matters: two clocks, and a separate column for severe conditions.
| Service | Mileage clock | Calendar clock | Dirt, dusty or muddy roads |
|---|---|---|---|
| Rotate tires | Every 5,000 miles | 6 months | Same |
| Engine oil and oil filter | Every 10,000 miles | 12 months | Every 5,000 miles |
| Cabin air filter | Every 10,000 miles | Mileage only in the chart | Same |
| Engine air filter | Every 30,000 miles | Mileage only in the chart | Inspect every 5,000 miles |
| Brake pads and discs | Inspect every 5,000 miles; measure thickness and disc runout every 30,000 | 6 months for the inspection | Same |
| Engine coolant | First at 100,000 miles, then every 50,000 | 120 months first, then every 60 | Same |
| Spark plugs | At 120,000 miles | Mileage only; required under the emissions control warranty | Same |
Intervals from Toyota's 2025 Camry Warranty & Maintenance Guide, maintenance log pages 40 to 45. The guide also says to replace the oil and filter after 12 months even when the maintenance reminder has not appeared, and to perform the severe-conditions items only if the majority of your driving is done under those conditions.
Try it
How often is each service due for you?
Pick how far you drive in a year. The intervals are the 2025 Camry ones from the table above, so the numbers are an illustration of the rule, not a schedule for your car.
| Service | The guide says | For you, about every | Which clock wins |
|---|---|---|---|
| Rotate tires | 5,000 miles or 6 months | 5 months | The odometer |
| Engine oil and oil filter | 10,000 miles or 1 year | 10 months | The odometer |
| Cabin air filter | 10,000 miles | 10 months | The odometer |
| Engine air filter | 30,000 miles | 2.5 years | The odometer |
| Brake pad thickness and disc runout | 30,000 miles | 2.5 years | The odometer |
| Engine coolant, first replacement | 100,000 miles or 10 years | 8.3 years | The odometer |
| Spark plugs | 120,000 miles | 10 years | The odometer |
Notice how the calendar takes over at low mileage. An app that only counts miles never tells a 6,000-mile-a-year driver that the oil is due.
The vehicle
Start with the VIN, not a dropdown.
Year, make and model typed from memory are how a log ends up describing a car that does not quite exist: the wrong engine, the wrong trim, a year off. The VIN on the door jamb or the registration identifies the exact vehicle, and it can be decoded for free.
What the 17 characters mean
Positions fixed by the federal VIN rule, 49 CFR 565.15. Position 9 is a check digit computed from the other 16, which is why a typed VIN can be validated before it is decoded, and position 10 is the model year, which is why NHTSA recommends sending the year along with the VIN.
The free decoder
What NHTSA's vPIC API returns
NHTSA runs a public VIN decoder, vPIC, built from the information manufacturers file with the agency about how they assign VINs. There is no API key. One GET request to vpic.nhtsa.dot.gov/api/vehicles/DecodeVinValues/{VIN}?format=json returns a flat record of about 150 fields. We ran it while writing this page, against a sample VIN, and these are the ones a maintenance log actually uses:
| Field | Value returned |
|---|---|
| Make | HONDA |
| Model | Accord |
| ModelYear | 2003 |
| Trim | EX-V6 |
| BodyClass | Coupe |
| EngineCylinders | 6 |
| DisplacementL | 2.998832712 |
| FuelTypePrimary | Gasoline |
| TransmissionStyle | Automatic |
| PlantCity | MARYSVILLE |
| ErrorCode | 0 |
- Formats: JSON, XML or CSV, chosen with the format parameter.
- Partial VINs work, with an asterisk for characters you do not have, and NHTSA recommends sending the model year too.
- A batch endpoint, DecodeVINValuesBatch, takes up to 50 VINs in one call, which is the fleet onboarding path.
- Empty fields mean NHTSA has no data for that variable, not that the car lacks the feature; the response says so itself.
- Traffic is governed by an automated rate control, so decode once when a vehicle is added and store the result.
The endpoint list, parameters and examples are on NHTSA's vPIC API page. What the decoder does not know is your car's service schedule; that still comes from the maintenance guide, which is why the rules table above is entered by hand.
The evidence
Receipts, shops, and the warranty.
The reason the receipt photo is a required field, not a nice extra, is the warranty. The FTC's consumer guidance on auto warranties says you do not have to use the dealer for repairs or maintenance to keep your warranty in effect, that it is illegal for a dealer to deny coverage because routine maintenance or repairs were done by someone else, and that the warranty stays in effect if you use aftermarket or recycled parts. In the same breath it tells you to keep records of oil changes, tire rotations, belt replacements, new brake pads and inspections, because those records are how you show the vehicle was properly maintained if you ever need the warranty. Read the FTC's auto warranty guidance. It adds one more thing worth building a field for: a service contract may require you to follow all of the manufacturer's routine maintenance recommendations, and skipping them can void it.
So each entry should capture what a claims adjuster would ask for: the shop's name, the date, the odometer reading printed on the invoice, the line items, and which parts were new, aftermarket or recycled. The shop keeps its own copy of the same visit in its own system, which is what an auto repair shop app is for. Your log is the owner's copy, and the receipt photo is the bridge between the two.
For DIY work the receipt is the parts receipt, and the entry should say so. An oil change you did yourself with a dated parts receipt and an odometer reading is a record; one you remember doing "sometime in the spring" is not.
The workflow
How to keep track of car maintenance, in six steps.
This is the order the data has to go in, whether the log is an app, a spreadsheet, or a notebook. Skipping step four is the usual reason a new log fires no reminders for a year and then fires all of them at once.
- 1
Decode the VIN and store the result
One call to vPIC when the car is added. Save the year, make, model, trim, engine and fuel type as fields on the vehicle so nothing downstream depends on the API being up.
- 2
Enter the odometer and the date, today
This is the anchor for every calculation. Without it the app cannot say how far or how long it has been since anything.
- 3
Load the rules from the maintenance guide
One row per service with its mileage interval and its time limit. Copy them from the guide for that year and model, not from a generic default, and keep them editable.
- 4
Backfill last done for each rule
From receipts or the stamped service booklet where you have them. Where you do not, use the purchase date and mileage and mark the value as estimated, so the first reminder is early rather than missed.
- 5
Set the reminder on the earlier clock
For each rule, next due is the smaller of last-done odometer plus the interval and last-done date plus the months. Give the reminder a lead time in miles and days so it lands before the visit, not on the day.
- 6
Log every visit with the odometer and the receipt
Each entry names the rule it satisfies, which moves last done forward and resets both clocks. The receipt photo is what turns the entry into evidence.
Step five is where a log becomes an app. Computing "next due" is arithmetic; getting that number onto a phone screen two weeks before the visit, whether or not the app is open, is a platform feature with its own setup. That part is covered separately in push notifications for service reminders, and it is worth reading before deciding whether the reminder is a notification, a calendar entry, or an email.
Picking an approach
Six ways to keep a car maintenance log, compared.
None of the fields above need a fancy tool. Most of the common options make at least one of them hard to get consistently, and the one they most often drop is the calendar clock.
| Approach | VIN decode | Both clocks per service | Rules from your car's guide | Receipts on the entry | Several cars and drivers | Who maintains it |
|---|---|---|---|---|---|---|
| Glovebox booklet | No | you do the arithmetic | yes, it is the guide | stapled in, if at all | one booklet per car | you, in pen |
| Spreadsheet | No | if you write the formulas | if you type them in | a link to a folder | one tab per car | you, and it drifts |
| Consumer maintenance app | some do | usually miles, sometimes both | generic defaults, editable | Yes | often a paid tier | the vendor |
| Manufacturer's own app | for its own cars | Yes | for that brand only | dealer visits only | that brand only | the manufacturer |
| Fleet management software | Yes | Yes | custom per asset | Yes | Yes | the vendor, priced per vehicle |
| Custom-built log app | Yes | Yes | whatever you enter | Yes | Yes | you |
One neighboring category is a different job wearing a similar name. If the number you actually care about is the monthly total across fuel, insurance, parking and repairs rather than what is due next, that is a budget tracker app with a car category, not a maintenance log. The two share the cost field and nothing else; a maintenance log without the odometer and the rules is just a list of what you spent.
Free vs. paid
Is there a free car maintenance log app?
For one car, yes. The glovebox booklet is free, a spreadsheet is free, and consumer apps commonly offer a free tier for a single vehicle. The cost shows up with the second car, the second driver, or the first time you want the reminder to fire on the calendar as well as the odometer, which tend to be the paid features. Building your own is not free either: Newly has no free plan and starts at $25 a month, which is the honest comparison against a paid tracker's subscription or a fleet tool's per-vehicle price, not against a free one.
When to build your own
Building a car maintenance log app around your own cars.
The reason to build your own is rarely price. It is fit. A household with four cars on three different schedules, a small business with six vans and a driver on each, a classic that counts engine hours instead of miles, or someone who wants the log kept next to their fuel and insurance records does not fit an app built for one owner and one car, and bending it to fit is how a coolant change gets missed. That gap, a routine no off-the-shelf tool quite matches, is what Newly is for: describe the vehicles, the rules, the reminders and who gets them, and it builds a real native app around that routine rather than around a vendor's template.
Two product facts to plan around, both from the docs on App Store submission: the iOS build is compiled and submitted to App Store Connect under your own Apple Developer Program membership, you test it through TestFlight before Apple's review, and v2 does not produce Android release builds. If the other driver in the house carries an Android phone, that settles how they get their reminders: a shared calendar entry or a printed schedule, not an app they would have to install.
Sources
Where the specifics came from.
Three things on this page come from a primary source rather than general consensus. All three were opened while writing it, and the vPIC call was run live.
FAQ
Car maintenance log apps, answered.
Three things. The vehicle: VIN, year, make, model, engine, and the odometer reading on the day the log starts. The rules: one row per service with its mileage interval and its time limit, taken from the maintenance guide for that exact car, so the app knows an oil change on a 2025 Camry is due at 10,000 miles or 12 months, whichever comes first. The entries: date, odometer, service performed, who did it, cost, parts, and a photo of the receipt. Everything else people want from the app, what is due next, cost per mile, a history to hand a buyer, is calculated from those three.
Start with the two clocks, then the receipts.
A car maintenance log app earns its place the day a reminder fires before the damage rather than after. Get the rules and the fields right on paper first, then look at what other people have built around routines like yours.