Skip to content
Back

Two Roundcube plugins: CalDAV for calendar, tasks and contacts, DarkReader for the mail body

Edit this post on GitHub

Roundcube is my webmail. For a long time it shipped without calendars, tasks and address books. Extensions exist, but many depend on a fixed environment or pull in half a PHP stack. I wrote two plugins that do exactly what I need and nothing beyond it.

Calendar, tasks and contacts from any CalDAV server

roundcube_caldav_suite is a client for CalDAV and CardDAV. It connects to any server that speaks those standards - Radicale, Baïkal, Nextcloud, iCloud, Google - and pulls calendars, task lists and address books from it.

Week view of the calendar: four colour-coded calendars on the left, the week's events on the right

Month view: a month's grid with colour-coded events and all-day entries

What is in it:

Task list with checkboxes, a due date and sorting by due date

Address book view with a contact list and a search field

Two properties mattered to me.

When editing, only the fields I changed are touched. Anything the form does not know - RRULE, ATTENDEE, ORGANIZER, EXDATE, custom X- properties - is preserved instead of disappearing on save.

Accessibility is part of the build, not bolted on: keyboard navigation, ARIA labels, semantic HTML, a fully accessible list view, a skip link to the calendar and a loading indicator that gets announced. The calendar and task lists use Roundcube’s native list semantics: select with a click, edit with Enter or a double click.

There is an optional location search with Photon (default, no key), Nominatim or Google Places. With Google the call goes through a server-side proxy, so the key stays on the server.

Requirements are PHP 8.1 or newer and Roundcube 1.6 or newer. The plugin directory must be named caldav_suite.

Installation - one route is enough:

cd /path/to/roundcube
composer require slohmaier/roundcube_caldav_suite

Alternatively, unpack the release zip or clone the repository. Then add caldav_suite to $config['plugins'].

Only the mail body, dark

roundcube-mailbody_dark solves a smaller problem: many newsletters are designed light and glare in a dark Roundcube theme. DarkReader in the browser helps, but recolours the whole page.

This plugin loads DarkReader into the message preview frame and enables it there. Only the mail content is themed; the folder list, toolbar and headers keep what the theme gives them.

Mail body in Off mode: a light newsletter on a dark interface

The same mail body in Dark mode

The same mail body in Light mode

Settings block with the default mode and the brightness, contrast, grayscale and sepia values

Installation:

composer require slohmaier/mailbody_dark

Then add mailbody_dark to $config['plugins'] and reload Roundcube with a hard reload (Ctrl+Shift+R) so the new JavaScript is picked up. A moon icon appears in the toolbar.

DarkReader is bundled, version 4.9.109, MIT-licensed, © Alexander Shutau and contributors.

Licence and where to get them

Both plugins are GPL-3.0-or-later and live on GitHub and Packagist:

Bugs and requests belong in the issues of the respective repository.


Edit this post on GitHub
Share this post on:

Previous Post
StarTooth: Bluetooth-Geräte per Sternchen im Infobereich steuern
Next Post
StarTooth: Connecting Bluetooth devices from the tray, with starred favourites