rumenx / drupal_calendar
Drupal 11+ module for calendar event creation, ICS generation, and event management.
Installs: 4
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 1
Type:drupal-module
Requires
- php: >=8.3
- rumenx/php-calendar: ^1.0.0
Requires (Dev)
- phpunit/phpunit: ^10.0
This package is auto-updated.
Last update: 2025-06-12 19:53:42 UTC
README
A modern, feature-rich calendar module for Drupal 11+ that supports event creation, ICS file generation, invitations, RSVP, recurring events, admin logging, REST API, and more.
Features
- Create and manage custom events
- Generate ICS files for events (attach to entity, static file, or email)
- Admin panel for event management, settings, and logs
- User invitations and RSVP tracking
- Recurring events (daily, weekly, monthly)
- Frontend calendar (simple list and FullCalendar grid)
- Upcoming events block
- REST API for events and RSVPs
- Granular permissions and access control
- Email reminders and notifications
- Logging and audit trail
- Unit and functional tests
Installation
You can install this module via Composer:
composer require rumenx/drupal_calendar
Or manually:
- Place the module in your
modules/custom
directory. - Run
composer install
to install dependencies (rumenx/php-calendar). - Enable the module via Drupal admin or Drush.
Configuration
- Visit
/admin/config/drupal-calendar
to configure settings (ICS handling, email templates, reminders, etc). - Place the "Upcoming Events" block as needed.
- Access the admin event list at
/admin/content/drupal-calendar/events
.
REST API
- List events:
GET /api/drupal-calendar/events?_format=json
- Get event:
GET /api/drupal-calendar/events/{event_id}?_format=json
- Get RSVPs:
GET /api/drupal-calendar/events/{event_id}/rsvps?_format=json
Permissions
- Create, view, and manage events and invitations via Drupal permissions.
Testing
-
Unit tests: Run with Composer-installed PHPUnit:
vendor/bin/phpunit
(runs only unit tests by default)vendor/bin/phpunit --testsuite Unit
(explicitly runs unit tests)
-
Functional tests: Must be run inside a full Drupal site:
- With Drush:
drush test:run drupal_calendar
- Or:
php core/scripts/run-tests.sh --module drupal_calendar
- With Drush:
Unit tests do not require a Drupal site. Functional tests require a working Drupal environment and will fail if run with plain PHPUnit.
License
MIT License. See LICENSE.md for details.