Download the PHP package dynamic/silverstripe-calendar without Composer
On this page you can find all versions of the php package dynamic/silverstripe-calendar. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download dynamic/silverstripe-calendar
More information about dynamic/silverstripe-calendar
Files in dynamic/silverstripe-calendar
Package silverstripe-calendar
Short Description A calendar module for the SilverStripe CMS.
License BSD-3-Clause
Informations about the package silverstripe-calendar
SilverStripe Calendar
A comprehensive calendar module for the SilverStripe CMS with event management, recurring events, and category organization.
Requirements
- SilverStripe CMS ^5.0
- SilverStripe Lumberjack ^3.0
- Nesbot Carbon ^3.0
- Symbiote GridField Extensions ^4.0
- Symbiote Queued Jobs ^5.0
- Uncle Cheese Display Logic ^3.0
- Ryan Potter Color Field ^1.0
- DFT Frontend MultiSelectField ^1.0
Installation
After installation, run /dev/build?flush=all to update your database.
License
See License
Features
- Event Management: Create and manage events with comprehensive details
- Recurring Events: Support for complex recurring event patterns using Carbon
- Category Organization: Organize events with color-coded categories
- Calendar Display: Multiple view modes (month, week, day, list)
- Event Search & Filtering: Advanced filtering by category, date range, and keywords
- Admin Interface: Comprehensive CMS interface for event management
- Lumberjack Integration: Nested event management within calendar pages
- Frontend Calendar: Interactive JavaScript calendar interface
- Event Categories: Color-coded categorization system
- Responsive Design: Mobile-friendly calendar views
Usage
Basic Setup
- Create a Calendar Page: In the CMS, create a new page of type "Calendar"
- Configure Categories: Use the Calendar Admin to create event categories
- Add Events: Create events either through the Calendar Admin or as child pages of your Calendar page
Calendar Page
The Calendar page serves as the main container for your events and provides the frontend calendar interface.
Event Management
Events can be managed in two ways:
Calendar Admin Interface
Access through CMS Admin → Calendar to manage:
- Event Pages
- Categories
Lumberjack Interface
Manage events as child pages directly within your Calendar page for a hierarchical approach.
Event Categories
Create color-coded categories to organize your events:
- Assign colors for visual distinction
- Filter events by category
- Organize events by type, department, or any classification system
Recurring Events
The module supports complex recurring patterns:
- Daily, weekly, monthly, yearly recurrence
- Custom recurrence rules using Carbon date manipulation
- Exception dates for holidays or special circumstances
- End dates or occurrence limits
Frontend Integration
Hybrid Calendar Architecture
The module provides a hybrid frontend approach:
- Primary Interface: Interactive FullCalendar.js for calendar views
- Server-Side Support: Traditional templates for custom implementations
- Responsive Design: Mobile-friendly across all view modes
FullCalendar Integration
The default Calendar.ss template includes an interactive calendar powered by FullCalendar with:
- Event navigation and filtering
- Category-based color coding
- Responsive month/week/day views
- Event details modal/popover
- AJAX event loading
Custom Template Implementation
For custom implementations without FullCalendar, you can create server-side event listings:
The events_per_page configuration controls server-side pagination for custom templates.
Template Customization
Override templates by copying them to your theme:
Calendar.ss- Main calendar page templateEventPage.ss- Individual event template- Calendar JavaScript components in
client/dist/
Configuration
Basic Configuration
Timezone Configuration
IMPORTANT: If your events are stored in a timezone other than UTC, you must configure the timezone to ensure ICS calendar feeds display correct times.
How it works:
- Event times are stored in your database in the configured timezone (e.g., 8:00 AM Central Time)
- When generating ICS feeds, times are parsed in the configured timezone and converted to UTC
- Calendar applications (Google Calendar, Outlook, Apple Calendar) receive UTC times and display them in the user's local timezone
Common timezone examples:
'America/New_York'- Eastern Time (US)'America/Chicago'- Central Time (US)'America/Denver'- Mountain Time (US)'America/Los_Angeles'- Pacific Time (US)'Europe/London'- Greenwich Mean Time'Australia/Sydney'- Australian Eastern Time
Note: If not configured, the default timezone is UTC.
Category Configuration
Categories support color customization and can be managed through the Calendar Admin interface.
Recurring Events Configuration
Configure default recurrence options:
Template Configuration
The module templates use vanilla Bootstrap classes and should work out of the box. To disable theme-specific configurations for testing:
Development
Frontend Development
The module includes a webpack-based build system for frontend assets:
Testing
Run the test suite:
Upgrading
From Version 1.x
When upgrading from version 1.x, run the datetime conversion task:
This migrates datetime data to separate date and time fields.
From Earlier 2.x Versions
- Ensure Carbon ^3.0 compatibility
- Review recurring event configurations
- Run
/dev/buildto apply database changes
Troubleshooting
Common Issues
Events not displaying:
- Ensure
/dev/build?flush=allhas been run - Check event date ranges and publication status
JavaScript calendar not loading:
- Verify frontend assets are built (
npm run build) - Check browser console for JavaScript errors
Recurring events not generating:
- Verify queued jobs are configured and running
- Check recurring event configuration and Carbon date logic
Performance Optimization
For large numbers of events:
- Enable query caching in your environment
- Consider pagination limits
- Use category filtering to reduce load
Contributing
We welcome contributions! Please read our contributing guidelines and:
- Fork the repository
- Create a feature branch
- Write tests for new functionality
- Ensure code quality standards are met
- Submit a pull request
Maintainers
Bugtracker
Bugs are tracked in the issues section of this repository. Before submitting an issue please read over existing issues to ensure yours is unique.
If the issue does look like a new bug:
- Create a new issue
- Describe the steps required to reproduce your issue, and the expected outcome. Unit tests, screenshots and screencasts can help here.
- Describe your environment as detailed as possible: SilverStripe version, Browser, PHP version, Operating System, any installed SilverStripe modules.
Development and Contribution
If you would like to make contributions to the module please ensure you raise a pull request and discuss with the module maintainers.
Related Modules
- SilverStripe Elemental Calendar - Elemental block integration
All versions of silverstripe-calendar with dependencies
nesbot/carbon Version ^3.0
ryanpotter/silverstripe-color-field Version ^1.0
silverstripe/cms Version ^5.0
silverstripe/lumberjack Version ^3.0
symbiote/silverstripe-gridfieldextensions Version ^4.0
symbiote/silverstripe-queuedjobs Version ^5.0
unclecheese/display-logic Version ^3.0