Immich starts a metadata extraction job for every new asset, so it reads the date taken from the file itself. A Google Photos Takeout keeps that date for many photos only in JSON files next to them, which Immich does not use. This page opens the fixer with the Takeout folders kept as they are; once the dates are inside the files, any way of getting them into Immich works.
- Immich reads
- The file's metadata, when each asset is added
- The fixer writes
- DateTimeOriginal and its offset in JPEGs, creation time in MP4 and MOV
- Upload with
- The web app, the mobile app or immich upload
- Or point at it
- An external library: files stay where they are
This page opens the fixer with the Takeout folders kept as they are. Checked: October 2026.
Two ways in: upload or external library
Uploading copies the files into Immich's own storage. The web app has an upload button, and the command line tool (installed with npm i -g @immich/cli, signed in with immich login and your server address and API key) uploads whole folders: immich upload --recursive takes subfolders too, which it skips by default, and --album makes one album per folder name. --dry-run shows what would be uploaded first.
An external library leaves the files where they are: the folder is mounted into the immich-server container, read-only if you like, and Immich scans it, once a day by default. Immich's docs say that metadata edited in Immich for an external asset is stored only inside Immich, not written to the file, and that a file changed on disk shows up after the next library scan. So write the fixed files first and point the library at them, rather than fixing a folder Immich has already scanned.
Time zones
Immich's TZ setting is only a fallback for when the time zone cannot be determined from the image metadata. The fixer writes the offset (OffsetTimeOriginal) into each JPEG next to the date, so the moment is in the file and not left to the server's setting.
Where immich-go fits
Immich's documentation points people with a Google Takeout to immich-go, a community-maintained tool that reads the JSON files while it uploads. That works for Immich only. The fixer takes the other route: the dates go into the files themselves, so the same folder also reads correctly in a file manager, on another server or in a backup.
How to do it
- 1Add every .zip part of your Takeout below, or the folder you extracted them to.
- 2Check the preview, pick the time zone if needed, and write the fixed files to a folder or a ZIP.
- 3Upload: run immich upload --recursive --album with the fixed folder (after immich login), or use the web app's upload button.
- 4Or as an external library: copy the fixed folder to the server, mount it into the immich-server container and add it as an external library.
- 5Open a few assets in Immich and check their date and location.
Known pitfalls
- Fixing files Immich has already imported does not move them on the timeline by itself: uploaded assets are copies, and an external library needs a rescan. Fix first, import second.
- immich upload does not go into subfolders unless you add --recursive. A Takeout is all subfolders.
- Immich does not modify original files; dates you edit in Immich go into .xmp sidecar files, and in a read-only external library no sidecar can be written, so dates and locations there cannot be edited. That is one more reason to have the right date in the file before Immich sees it.
- HEIC, PNG, WebP and GIF files are copied unchanged in this version, so they reach Immich with whatever date is already inside them. The report lists the ones that had none.
Questions
Should I use the fixer or immich-go?
immich-go reads the JSON files during upload into Immich. The fixer writes the dates into the files, which helps if you also keep the photos anywhere else. Either way, do not upload the unfixed Takeout first.
Does Immich keep the album folders?
With immich upload --album, each folder name becomes an album. The fixer skips album copies by default, so a photo that sits in an album and in a year folder is uploaded once.
Are my photos uploaded to Omnvert?
No. The fixer runs in your browser tab: the archives are read from your disk and the fixed files are written back to your disk.
What does it cost?
Scanning and the full preview are free. Writing is free for up to 25 files per job; one credit covers a whole job, and a Day Pass or Pro covers unlimited jobs.
Sources
The app-specific steps and behaviour above were checked against these official pages:
Omnvert is not affiliated with Google, Meta or Microsoft. Immich is an open-source project; Omnvert is not affiliated with it.