diff --git a/archivebox/parsers/__init__.py b/archivebox/parsers/__init__.py
index 5d0d5ca5..42b2464e 100644
--- a/archivebox/parsers/__init__.py
+++ b/archivebox/parsers/__init__.py
@@ -33,6 +33,7 @@ from ..logging_util import TimedProgress, log_source_saved
from .pocket_html import parse_pocket_html_export
from .pinboard_rss import parse_pinboard_rss_export
+from .wallabag_atom import parse_wallabag_atom_export
from .shaarli_rss import parse_shaarli_rss_export
from .medium_rss import parse_medium_rss_export
from .netscape_html import parse_netscape_html_export
@@ -43,6 +44,7 @@ from .generic_txt import parse_generic_txt_export
PARSERS = (
# Specialized parsers
+ ('Wallabag ATOM', parse_wallabag_atom_export),
('Pocket HTML', parse_pocket_html_export),
('Pinboard RSS', parse_pinboard_rss_export),
('Shaarli RSS', parse_shaarli_rss_export),
diff --git a/archivebox/parsers/wallabag_atom.py b/archivebox/parsers/wallabag_atom.py
new file mode 100644
index 00000000..0d77869f
--- /dev/null
+++ b/archivebox/parsers/wallabag_atom.py
@@ -0,0 +1,57 @@
+__package__ = 'archivebox.parsers'
+
+
+from typing import IO, Iterable
+from datetime import datetime
+
+from ..index.schema import Link
+from ..util import (
+ htmldecode,
+ enforce_types,
+ str_between,
+)
+
+
+@enforce_types
+def parse_wallabag_atom_export(rss_file: IO[str], **_kwargs) -> Iterable[Link]:
+ """Parse Wallabag Atom files into links"""
+
+ rss_file.seek(0)
+ entries = rss_file.read().split('