ForwardWidgets
Widgets for Douban and Trakt watchlists plus personalized recommendations, live TV streaming including PlutoTV, Yatu ra…
WebCalendar is a PHP application used to maintain a calendar for a single user or an intranet group of users. It can al…
git clone https://github.com/craigk5n/webcalendar.gitcraigk5n/webcalendarWebCalendar is a multi-user, web-based calendar application built with PHP. It supports multiple database backends, features event management, user groups, access controls, and integrates with external applications. Designed for both personal and enterprise use, WebCalendar can be deployed on any web server with PHP support.
# Clone the repository git clone https://github.com/craigk5n/webcalendar.git cd webcalendar # Start with Docker Compose docker-compose -f docker/docker-compose-php8.yml up # Access at http://localhost:8080
Download the latest release or clone the repository:
git clone https://github.com/craigk5n/webcalendar.git
Point your web server to the WebCalendar directory
Run the web-based installer by visiting your WebCalendar URL:
https://yourserver.com/webcalendar/
The installer will automatically redirect to the setup wizard.
Follow the guided setup to configure your database and admin user
For automated deployments, use the headless installer:
php wizard/headless.php
See the Installation Guide for detailed instructions.
Build and run a development environment with live file mounting:
# Start the development containers (MariaDB + PostgreSQL) docker-compose -f docker/docker-compose-php8-dev.yml up # Access at http://localhost:8080 (MariaDB) or http://localhost:8081 (PostgreSQL)
Changes to your local files are immediately reflected in the container.
See Docker Deployment for all available configurations.
WebCalendar supports containerized deployments via environment variables:
# Docker Compose example environment: WEBCALENDAR_USE_ENV: "true" WEBCALENDAR_DB_TYPE: mysqli WEBCALENDAR_DB_HOST: db WEBCALENDAR_DB_DATABASE: webcalendar WEBCALENDAR_DB_LOGIN: webcalendar WEBCALENDAR_DB_PASSWORD: "your_secure_password" WEBCALENDAR_MODE: prod
For Apache deployments, add to .htaccess or web server configuration:
SetEnv WEBCALENDAR_USE_ENV true SetEnv WEBCALENDAR_DB_TYPE mysqli SetEnv WEBCALENDAR_DB_HOST localhost SetEnv WEBCALENDAR_DB_DATABASE webcalendar SetEnv WEBCALENDAR_DB_LOGIN webcalendar SetEnv WEBCALENDAR_DB_PASSWORD "your_secure_password" SetEnv WEBCALENDAR_MODE prod
Legacy backends (code present, untested on PHP 8): Oracle, DB2, ODBC, Interbase
Run the test suite with PHPUnit:
# Install dev dependencies (only needed for testing/development) composer install # Run PHPUnit tests cd tests; ./run_unit_tests.sh; cd .. # Syntax check all PHP files cd tests; ./compile_test.sh; cd ..
WebCalendar includes all required dependencies in the release (primarily in the pub/ directory). You do not need to run Composer unless you are adding or updating dependencies.
If you need to modify dependencies:
# Install PHP dependencies (only needed for adding/updating dependencies) composer install # Copy vendor assets to project directories (requires Linux — uses sha384sum) make
WebCalendar can integrate with external systems for user authentication and configuration:
Create a bridge script in includes/user-app-yourapp.php:
// Implement required functions for authentication
function user_valid_login($login, $password) { ... }
function user_get_users() { ... }
See user-ldap.php and user-app-joomla.php for examples.
Create includes/config-app-yourapp.php to override settings dynamically.
Browse the full documentation or see the docs index on GitHub.
To report a security vulnerability, please see SECURITY.md. Do not open a public issue for security reports.
Contributions are welcome! Please read the Contributing Guide for details.
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)Bug reports and feature requests use GitHub issue templates.
This project has a Code of Conduct. Please follow it in all interactions.
WebCalendar is licensed under the GNU General Public License v2.0.
See CHANGELOG.md for release history.
Craig Knudsen - craig@k5n.us - https://k5n.us
See AUTHORS for a complete list of contributors.
more like this
Widgets for Douban and Trakt watchlists plus personalized recommendations, live TV streaming including PlutoTV, Yatu ra…
A lightweight, simplified, RedNotebook-inspired journal/diary app. Built with Electron. Makes dated text files.
Free Chess Club: Play online chess for free using a modern web interface for Internet Chess Servers such as FICS.
View and plan your life in an online calendar by visually by seeing it from days to decades
search projects, people, and tags