This document describes the layout and format of the file system storage
It’s safe to access and manipulate the data by hand or with scripts.
Scripts can be invoked manually, periodically (e.g. with
cron) or after each
change to the storage with the configuration option
hook in the
section (e.g. Git Versioning).
The file system contains the following files and folders:
.Radicale.lock: The lock file for locking the storage.
collection-root: This folder contains all collections and items.
A collection is represented by a folder. This folder may contain the file
.Radicale.props with all WebDAV properties of the collection encoded
An item is represented by a file containing the iCalendar data.
All files and folders, whose names start with a dot but not
(internal files) are ignored.
If you introduce syntax errors in any of the files, all requests that access
the faulty data will fail. The logging output should contain the names of the
Future releases of Radicale 2.x.x will store caches and sync-tokens in the
.Radicale.cache folder inside of collections.
This folder may be created or modified, while the storage is locked for shared
In theory, it should be safe to delete the folder. Caches will be recreated
automatically and clients will be told that their sync-token isn’t valid
You may encounter files or folders that start with
Radicale uses them for atomic creation and deletion of files and folders.
They should be deleted after requests are finished but it’s possible that
they are left behind when Radicale or the computer crashes.
It’s safe to delete them.
When the data is accessed by hand or by an externally invoked script,
the storage must be locked. The storage can be locked for exclusive or
shared access. It prevents Radicale from reading or writing the file system.
The storage is locked with exclusive access while the
Linux shell scripts
$ flock --exclusive /path/to/storage/.Radicale.lock COMMAND
$ flock --shared /path/to/storage/.Radicale.lock COMMAND
Linux and MacOS
syscall. Python provides it in the
for exclusive access or
which also supports shared access. Setting