Basic scheduling for users on the same server

radicale, storage, scheduling, caldav, python
pip install radicale-storage-family-scheduler==0.0.1


Family Scheduler for Radicale

This is an storage plugin for Radicale which enables some basic scheduling operations as in RFC6638 (Scheduling Extensions to CalDAV). Because scheduling is not supported out-of-the-box (and will probably never be), it was necessary to hack a little bit and inherit from the storage backend in order to catch up CalDAV events.

The functionality of this plugin is primarily intended for private calendar servers (e.g. for the family or for little teams), where all users to invite are using the same Radicale server.

When using this plugin, Radicale will:

  • auto-detect attendees in events
  • automatically accept the "invitations" from users on the same server
  • automatically add/remove the event to the attendees' default calendar

This should work as expected, at least with the already tested clients:

Caution! This plugin does NOT:

  • implement the sending of e-mails to attendees outside of the server
  • implement the whole specication (RFC6638), only as much as needed


In the main folder of the plugin:

pip install -e .


This plugin assumes only authenticated users are allowed to connect to Radicale, so make sure to correctly set the Radicale auth backend accordingly. Please refer to the Radicale docs for more information.

Important: Usernames need to be e-mail addresses for this plugin to work! These e-mail addresses have to be used while inviting other family members.

In order to call the plugin, you need to set the storage type to radicale_storage_family_scheduler in the configuration.

In addition to this Radicale config, you need to symlink to the default calendar of each user from a collection called .Radicale.private. This calendar will be used by the plugin for adding/removing events automatically.


This plugin is licensed under Creative Commons Attribution-ShareAlike 4.0 International License.