Import & Export
BabyLog imports and exports CSV, per baby. Bring data in from another tracker; take all of yours out whenever you want. No paywall on either direction.
Where to find it

Open Baby → [Baby name] → Data. Everything import-and-export lives here.
Per baby is deliberate — when you share with caregivers, each baby has its own data scope and its own access rules. The export for one baby never leaks logs from another.
Export
Tap Export CSV and BabyLog downloads a complete CSV of that baby's logs to your device.
What's included
- Every log entry across all 12 log types
- Original timestamps in your locale's timezone
- All values, units, and free-text notes
- Who logged each entry (caregiver name)
- Created and updated timestamps for auditing
No fields are hidden behind Pro. The export is everything you can see in the app.
Use the export to
- Move to another tool (the format is simple enough to map elsewhere)
- Keep a long-term archive
- Send to your paediatrician as a structured handover
- Feed into a spreadsheet for custom analysis
Import

Two ways to bring data in:
- Upload a CSV file from your device.
- Paste CSV from your clipboard — useful when you've exported small batches from another app.
BabyLog parses the file, validates it against the schema, and shows you a preview before saving. The preview lists how many rows are new, how many conflict with existing entries, and how many will be skipped. Any validation warnings (unrecognised values, malformed timestamps) are shown before you reach the preview so you can fix them first.
You confirm. Then BabyLog runs the import, reporting progress per log type as it goes.
Fixing rows that don't align

Some rows in your CSV won't slot in cleanly — values outside the expected range, a timestamp that already exists, a field that didn't parse. BabyLog gathers these into a single list so they don't block the rest of the import.
Tap any row in the list to open it. From there you have two choices, exactly like editing a normal log:
- Adjust the value — fix the field that didn't validate (e.g. correct a misformatted timestamp, change ml to a sensible amount) and save. The row joins the imported set.
- Delete the import entry — drop the row entirely. Useful when the source data was wrong.
When the list is empty, the import is finished. Rows you didn't touch stay out of your data — nothing partial gets saved.
Re-importing the same CSV file won't create duplicates — BabyLog matches on type + timestamp + key fields, so any rows that did land the first time are skipped on a re-run.
After the import

You get a summary — how many entries were imported and how many were skipped. The imported logs appear on Timeline, Calendar, and Summary instantly because the import runs through the same local-first pipeline as new logs you tap in by hand.
If a caregiver is online when you import, they'll receive the new logs the next time their app checks for changes.
Large imports
Importing months or years of data at once is supported. BabyLog chunks the work so the UI stays responsive and so a dropped connection part-way through doesn't corrupt your dataset.
If the import is interrupted, BabyLog shows you what landed and what didn't. Re-running the import from the same file is safe — duplicate detection picks up where it left off.
CSV format and tips
The import expects one CSV per baby. The simplest path to get the column layout right:
- Export a small sample from BabyLog first.
- Use that as your template.
- Paste into a spreadsheet, replace with your real data, then re-import.
If you're coming from another tracker that exports a different shape, you can ask an AI tool to reformat the file — paste your source CSV and the BabyLog sample export into ChatGPT or Claude and ask it to reshape the columns to match.