PHPackages                             texxasrulez/calendar - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. texxasrulez/calendar

ActiveRoundcube-plugin[Utility &amp; Helpers](/categories/utility)

texxasrulez/calendar
====================

Calendar plugin

3.6.0(8mo ago)22.0kGPL-3.0PHPPHP &gt;=7.2.0

Since Sep 10Pushed 2mo ago1 watchersCompare

[ Source](https://github.com/texxasrulez/calendar)[ Packagist](https://packagist.org/packages/texxasrulez/calendar)[ Docs](https://github.com/texxasrulez/calendar)[ RSS](/packages/texxasrulez-calendar/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (3)Versions (2)Used By (0)

Calendar for Roundcube
======================

[](#calendar-for-roundcube)

[![Downloads](https://camo.githubusercontent.com/01ee3b2f809477106b7d4e747b4066ac1139619fe5710bdf3b4b1b0e152b08c8/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f74657878617372756c657a2f63616c656e6461722f746f74616c3f7374796c653d706c6173746963266c6f676f3d676974687562266c6f676f436f6c6f723d7768697465266c6162656c3d446f776e6c6f616473266c6162656c436f6c6f723d6171756126636f6c6f723d626c7565)](https://camo.githubusercontent.com/01ee3b2f809477106b7d4e747b4066ac1139619fe5710bdf3b4b1b0e152b08c8/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f74657878617372756c657a2f63616c656e6461722f746f74616c3f7374796c653d706c6173746963266c6f676f3d676974687562266c6f676f436f6c6f723d7768697465266c6162656c3d446f776e6c6f616473266c6162656c436f6c6f723d6171756126636f6c6f723d626c7565)[![Packagist Downloads](https://camo.githubusercontent.com/7b956fae5a8c500c1dc584855bfa0d57ca6f934928c21f1556e046f4b15d5bfc/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f74657878617372756c657a2f63616c656e6461723f7374796c653d706c6173746963266c6f676f3d7061636b6167697374266c6f676f436f6c6f723d7768697465266c6162656c3d446f776e6c6f616473266c6162656c436f6c6f723d626c756526636f6c6f723d676f6c64)](https://packagist.org/packages/texxasrulez/calendar)[![Packagist Version](https://camo.githubusercontent.com/330c942d88c6dd1618b20fc910b46070238b87c8dc6cf3f11676fde913167436/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f74657878617372756c657a2f63616c656e6461723f7374796c653d706c6173746963266c6f676f3d7061636b6167697374266c6f676f436f6c6f723d7768697465266c6162656c3d56657273696f6e266c6162656c436f6c6f723d626c756526636f6c6f723d6c696d65677265656e)](https://packagist.org/packages/texxasrulez/calendar)[![Github License](https://camo.githubusercontent.com/377bbde83003790f7583d5835d96bda561a1ac0f040bc065579aa8d11ad5d17c/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f74657878617372756c657a2f63616c656e6461723f7374796c653d706c6173746963266c6f676f3d676974687562266c6162656c3d4c6963656e7365266c6162656c436f6c6f723d626c756526636f6c6f723d636f72616c)](https://github.com/texxasrulez/calendar/LICENSE)[![GitHub Stars](https://camo.githubusercontent.com/a04d02107a6f348e21262167d55c6b4c12666ec185a3ed6d3d3a42d0e29bb8d9/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f74657878617372756c657a2f63616c656e6461723f7374796c653d706c6173746963266c6f676f3d676974687562266c6162656c3d5374617273266c6162656c436f6c6f723d626c756526636f6c6f723d64656570736b79626c7565)](https://github.com/texxasrulez/calendar/stargazers)[![GitHub Issues](https://camo.githubusercontent.com/e1c075bfdc22c4547d5664c8134ecc581ff01c0842ba1139def93806bfa8b3f6/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732f74657878617372756c657a2f63616c656e6461723f7374796c653d706c6173746963266c6f676f3d676974687562266c6162656c3d497373756573266c6162656c436f6c6f723d626c756526636f6c6f723d61717561)](https://github.com/texxasrulez/calendar/issues)[![GitHub Contributors](https://camo.githubusercontent.com/d1176866069ef3e0a204fc462f28808dceccfbb2969d2e567738fe997ca4b683/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f636f6e7472696275746f72732f74657878617372756c657a2f63616c656e6461723f7374796c653d706c6173746963266c6f676f3d676974687562266c6f676f436f6c6f723d7768697465266c6162656c3d436f6e7472696275746f7273266c6162656c436f6c6f723d626c756526636f6c6f723d6f7263686964)](https://github.com/texxasrulez/calendar/graphs/contributors)[![GitHub Forks](https://camo.githubusercontent.com/078d6728b07e0947dfaf2396134c1ee237699687724eb2b0357e6fa7f37f9064/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f666f726b732f74657878617372756c657a2f63616c656e6461723f7374796c653d706c6173746963266c6f676f3d676974687562266c6f676f436f6c6f723d7768697465266c6162656c3d466f726b73266c6162656c436f6c6f723d626c756526636f6c6f723d6461726b6f72616e6765)](https://github.com/texxasrulez/calendar/forks)[![Donate Paypal](https://camo.githubusercontent.com/02124075ee7ea4c192ef867cb30577b0b43ba74ea42b8dbe20b56ef518d94cdb/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f50617970616c2d4d6f6e65795f506c65617365212d626c75652e7376673f7374796c653d706c6173746963266c6162656c436f6c6f723d626c756526636f6c6f723d666f72657374677265656e266c6f676f3d70617970616c)](https://www.paypal.me/texxasrulez)

This is not my original plugin. It tracks Kolab's calendar plugin as they release it, and I mainly add and maintain the `rounddav` driver so it integrates cleanly with the RoundDAV Suite of plugins for Roundcube.

Overview
--------

[](#overview)

This plugin adds a full calendar interface to Roundcube, including:

- day, week, month, and agenda views
- multiple calendars with per-calendar colors
- recurring events
- reminders and alarms
- attendees, invitations, and RSVP handling
- attachments
- import/export support
- shared calendar support, depending on backend

This fork supports these backends:

- `database` for local SQL-backed calendars
- `kolab` for Kolab groupware storage
- `caldav` for generic CalDAV servers
- `rounddav` for RoundDAV integration

For calendar UI widgets, iTip handling, and iCal parsing/export, this plugin requires the `libcalendaring` and `libkolab` plugins.

Requirements
------------

[](#requirements)

- Roundcube with plugin support enabled
- PHP 7.1 or newer
- The `libcalendaring` plugin
- The `libkolab` plugin
- A configured backend: `database`, `kolab`, `caldav`, or `rounddav`
- Database access for the plugin's local support tables

Admin Guide
-----------

[](#admin-guide)

### 1. Install the plugin

[](#1-install-the-plugin)

Copy this plugin into your Roundcube `plugins/` directory as `calendar`.

If you are installing manually from Kolab sources, you also need these companion plugins:

- `libcalendaring`
- `libkolab`

Example layout:

```
roundcube/
  plugins/
    calendar/
    libcalendaring/
    libkolab/

```

### 2. Create the plugin config

[](#2-create-the-plugin-config)

Copy the distributed config and edit it for your environment:

```
cd plugins/calendar
cp config.inc.php.dist config.inc.php
```

The main setting is:

```
$config['calendar_driver'] = 'rounddav';
```

Valid values are:

- `database`
- `kolab`
- `caldav`
- `rounddav`

### 3. Initialize the SQL tables

[](#3-initialize-the-sql-tables)

Each backend ships with SQL initialization files under its own driver directory. Run Roundcube's database initialization script against the backend you plan to use.

Examples:

```
bin/initdb.sh --dir=plugins/calendar/drivers/database/SQL
bin/initdb.sh --dir=plugins/calendar/drivers/caldav/SQL
bin/initdb.sh --dir=plugins/calendar/drivers/kolab/SQL
bin/initdb.sh --dir=plugins/calendar/drivers/rounddav/SQL
```

Use the directory that matches your configured `calendar_driver`.

### 4. Enable the plugin in Roundcube

[](#4-enable-the-plugin-in-roundcube)

Add `calendar` to your active plugins list in `config/config.inc.php`:

```
$config['plugins'] = [
    // ...
    'calendar',
];
```

### 5. Configure the backend

[](#5-configure-the-backend)

#### RoundDAV backend

[](#rounddav-backend)

This fork is primarily intended for the `rounddav` backend.

Minimum working setup:

```
$config['calendar_driver'] = 'rounddav';
$config['calendar_caldav_server'] = 'https://www.domain.com/rounddav/public/';
$config['calendar_caldav_url'] = 'https://www.domain.com/rounddav/public/calendars/%u/%n/';
```

You can also use:

```
$config['rounddav_base_url'] = 'https://www.domain.com/rounddav/public';
```

If `calendar_caldav_server` is empty, the driver will fall back to `rounddav_base_url`.

Useful RoundDAV-specific options supported by this fork include:

- `rounddav_calendar_slug_uri`
- `rounddav_calendar_autocolor`
- `rounddav_calendar_color_palette`
- `rounddav_calendar_favorites`

#### Generic CalDAV backend

[](#generic-caldav-backend)

Use `calendar_driver = 'caldav'` and point the CalDAV settings to your server:

```
$config['calendar_driver'] = 'caldav';
$config['calendar_caldav_server'] = 'https://caldav.example.com/';
$config['calendar_caldav_url'] = 'https://caldav.example.com/calendars/%u/%n/';
```

#### Database backend

[](#database-backend)

Use this when you want calendar storage fully inside Roundcube's database.

```
$config['calendar_driver'] = 'database';
```

#### Kolab backend

[](#kolab-backend)

Use this when Roundcube is connected to a Kolab groupware environment.

```
$config['calendar_driver'] = 'kolab';
```

### 6. Review common calendar options

[](#6-review-common-calendar-options)

Some useful settings from `config.inc.php.dist`:

- `calendar_default_view`
- `calendar_contact_birthdays`
- `calendar_timeslots`
- `calendar_agenda_range`
- `calendar_first_day`
- `calendar_first_hour`
- `calendar_work_start`
- `calendar_work_end`
- `calendar_default_alarm_type`
- `calendar_default_alarm_offset`
- `calendar_event_coloring`
- `calendar_allow_invite_shared`
- `calendar_itip_send_option`

### 7. Optional: preinstall CalDAV sources

[](#7-optional-preinstall-caldav-sources)

The sample config includes a commented example for `calendar_caldav_preinstalled_sources`. This is useful when you want every Roundcube user to automatically see one or more CalDAV or RoundDAV calendars.

Typical uses:

- a per-user RoundDAV calendar using `%u` and `%p`
- a shared or global calendar account with fixed credentials

### Troubleshooting

[](#troubleshooting)

- If the calendar page loads but no calendars appear, verify the selected `calendar_driver` and its URLs.
- If using `rounddav`, make sure either `calendar_caldav_server` or `rounddav_base_url` is set.
- If event dialogs or iCal handling fail, verify `libcalendaring` and `libkolab` are installed and enabled.
- If calendars exist but changes do not save, confirm the backend SQL tables were initialized for the selected driver.
- If free/busy is missing, review your `kolab_freebusy_server` and related scheduling configuration.

User Guide
----------

[](#user-guide)

### Opening the calendar

[](#opening-the-calendar)

Open the `Calendar` task in Roundcube. The interface provides:

- a main calendar view
- a mini calendar for quick navigation
- a calendar list on the left
- a toolbar for view changes, navigation, and new events

### Changing views

[](#changing-views)

Users can switch between:

- `Day`
- `Week`
- `Month`
- `Agenda`

Use the toolbar buttons to change views, and use the mini calendar or toolbar arrows to jump to another date.

### Working with calendars

[](#working-with-calendars)

Users can:

- show or hide calendars with the checkbox list
- create a new calendar with the `+` button
- edit calendar name, color, and reminder behavior
- remove calendars they own

Depending on backend and permissions, users may also see:

- shared calendars
- read-only calendars
- birthdays calendars
- pending or declined invitation calendars

### Creating events

[](#creating-events)

Users can create events by:

- clicking `New event` in the toolbar
- dragging across a time range in day or week view
- double-clicking a day for an all-day event

Event fields include:

- title
- location
- description
- URL
- start and end
- all-day flag
- reminder
- calendar
- category
- free/busy status
- priority
- privacy

### Editing and moving events

[](#editing-and-moving-events)

Users can:

- click an event to view details
- click `Edit` to change full event settings
- drag and drop events to move them
- resize events directly in the calendar view
- move an event between calendars from the edit form

### Recurring events

[](#recurring-events)

The recurrence tab supports repeating events such as:

- daily
- weekly
- monthly
- yearly

Users can define how often the event repeats and when the series ends.

### Reminders

[](#reminders)

Reminders can be configured per event and, depending on backend support, per calendar.

Users can:

- set a default reminder preference
- dismiss reminders
- snooze reminders for a later time

### Invitations and scheduling

[](#invitations-and-scheduling)

This plugin supports meeting workflows:

- adding participants
- sending invitations
- tracking RSVP responses
- checking availability
- booking resources when configured

When invitations are received by email, Roundcube can process them through the calendar integration.

### Search, import, export, and printing

[](#search-import-export-and-printing)

Users can also:

- search events by keyword
- import calendar data
- export events as iCal
- print calendar views

Notes
-----

[](#notes)

- This plugin is based on Kolab's calendar codebase.
- In this fork, the main project-specific work is keeping the `rounddav` backend integrated and compatible with the RoundDAV Suite for Roundcube.
- The bundled `helpdocs/` directory contains additional upstream end-user documentation.

License
-------

[](#license)

This project is distributed under the GPL-3.0 license. See [LICENSE](LICENSE).

###  Health Score

36

—

LowBetter than 82% of packages

Maintenance76

Regular maintenance activity

Popularity22

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity30

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

251d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/95c3af6e41a9786e8be2edb48176e43a7d1ddef429793a312168450ff4269deb?d=identicon)[texxasrulez](/maintainers/texxasrulez)

---

Top Contributors

[![texxasrulez](https://avatars.githubusercontent.com/u/10519182?v=4)](https://github.com/texxasrulez "texxasrulez (30 commits)")

### Embed Badge

![Health badge](/badges/texxasrulez-calendar/health.svg)

```
[![Health](https://phpackages.com/badges/texxasrulez-calendar/health.svg)](https://phpackages.com/packages/texxasrulez-calendar)
```

###  Alternatives

[roundcube/carddav

CardDAV adapter for connecting to CardDAV-enabled addressbooks

28155.3k](/packages/roundcube-carddav)[johndoh/globaladdressbook

Adds global address books to Roundcube

706.0k](/packages/johndoh-globaladdressbook)[johndoh/sauserprefs

Control SpamAssassin settings from within Roundcube

583.6k](/packages/johndoh-sauserprefs)[jfcherng-roundcube/show-folder-size

A Roundcube plugin which shows folder size.

2515.2k](/packages/jfcherng-roundcube-show-folder-size)[kolab/calendar

Calendar plugin

3010.5k](/packages/kolab-calendar)[johndoh/swipe

Adds swipe actions to the message list of Roundcube

115.3k](/packages/johndoh-swipe)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
