A comprehensive WordPress plugin for managing holiday calendars with multi-country support, designed specifically for HR teams to easily manage and display company holidays.
- Multi-country Support - Manage holidays for multiple countries (Bangladesh, Nepal, and extensible for more)
- Dual View Modes - Calendar view and List view for flexible holiday display
- HR-Friendly CSV Import/Export - Bulk import/export holidays with downloadable templates
- Admin Interface - Complete management system for countries and holidays
- Frontend Shortcodes - Easy integration with any WordPress theme
- Responsive Design - Mobile-friendly calendar and list views
- Intuitive dashboard with holiday statistics
- Country management with timezone support
- Individual holiday CRUD operations
- CSV template download for easy imports
- Bulk import/export with validation and error reporting
- Advanced filtering and search capabilities
- Beautiful calendar grid with holiday highlighting
- Detailed list view with search and filtering
- View switching with user preference persistence
- Country and holiday type filtering
- Responsive design for all devices
- Print-friendly layouts
- Upload the plugin files to
/wp-content/plugins/wp-holiday-calendar/ - Activate the plugin through the 'Plugins' screen in WordPress
- Navigate to 'Holidays' in the admin menu to configure
- Add your countries and holidays
- Use shortcodes to display calendars on your website
- WordPress 5.0 or higher
- PHP 7.4 or higher
- MySQL 5.6 or higher
- Go to Holidays > Countries
- Click Add New Country
- Enter country code (2 letters), name, and timezone
- Save the country
- Go to Holidays > Manage Holidays
- Add holidays individually or use CSV import
- Set holiday name, date, country, type, and description
- Choose if the holiday is recurring (annual/lunar)
- Go to Holidays > Import/Export
- Download the CSV template
- Fill the template with your holiday data
- Upload and import the CSV file
- Export existing holidays for backup or sharing
// Display calendar view
[pathao_calendar]
// Display list view
[pathao_calendar view="list"]
// Filter by country
[pathao_calendar country="BD"]
// Filter by type
[pathao_calendar type="national"]
// Combined filters
[pathao_calendar view="list" country="NP" year="2024"]view- "calendar" or "list" (default: calendar)country- Country code (BD, NP, etc.) or "all" (default: all)month- Specific month in YYYY-MM formatyear- Specific year (YYYY format)type- Holiday type: "national", "religious", "cultural", "company", or "all"
Holiday Name,Date,Country Code,Type,Description,Recurring
"Independence Day","2024-03-26","BD","National","Bangladesh Independence Day","Annual"
"New Year","2024-01-01","NP","National","Nepali New Year","Annual"
"Eid ul-Fitr","2024-04-10","BD","Religious","End of Ramadan","Lunar"- Holiday Name: Required text field
- Date: Required in YYYY-MM-DD format
- Country Code: Required 2-letter ISO code
- Type: Required - "national", "religious", "cultural", or "company"
- Description: Optional text description
- Recurring: Required - "none", "annual", or "lunar"
id- Primary keycode- 2-letter country code (unique)name- Country nametimezone- Timezone identifiercreated_at- Creation timestampupdated_at- Last update timestamp
id- Primary keycountry_id- Foreign key to countries tablename- Holiday namedate- Holiday datetype- Holiday type (enum)description- Optional descriptionrecurring- Recurrence type (enum)created_at- Creation timestampupdated_at- Last update timestamp
GET /wp-json/pathao-calendar/v1/countries
GET /wp-json/pathao-calendar/v1/holidays
Parameters: country, month, year, type, start_date, end_date
GET /wp-json/pathao-calendar/v1/holidays/export
Parameters: country, year, type
// Filter holidays before display
add_filter('pathao_calendar_holidays', 'custom_holiday_filter');
// Modify calendar display
add_filter('pathao_calendar_display', 'custom_calendar_display');// Hook into holiday import
add_action('pathao_calendar_holiday_imported', 'after_holiday_import');
// Hook into country creation
add_action('pathao_calendar_country_created', 'after_country_created');Create custom templates in your theme:
pathao-calendar/calendar-view.phppathao-calendar/list-view.php
Override plugin styles in your theme:
.pathao-holiday-calendar {
/* Your custom styles */
}
.holiday-national {
background: your-color;
}The plugin is translation-ready. Language files are located in the /languages/ directory.
- Asia/Dhaka (Bangladesh)
- Asia/Kathmandu (Nepal)
- And all standard PHP timezones
-
CSV Import Fails
- Check date format (YYYY-MM-DD)
- Verify country codes exist
- Ensure file size is under 5MB
-
Calendar Not Displaying
- Verify shortcode parameters
- Check that countries and holidays exist
- Ensure theme compatibility
-
Timezone Issues
- Verify country timezone settings
- Check WordPress timezone configuration
Enable WordPress debug mode for detailed error logs:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);For support, feature requests, or bug reports:
- GitHub Issues: https://github.com/nadimtuhin/wp-holiday-calendar
- Email: nadimtuhin@gmail.com
We welcome contributions! Please see our contributing guidelines in the repository.
- Clone the repository
- Install dependencies
- Follow WordPress coding standards
- Submit pull requests
This plugin is licensed under GPL v2 or later.
- Initial release
- Multi-country holiday support
- Calendar and list views
- CSV import/export functionality
- Admin management interface
- REST API endpoints
- Responsive design
- Localization support
- Holiday approval workflow
- Email notifications for upcoming holidays
- Google Calendar sync
- Holiday templates by industry
- Multi-year planning
- Advanced reporting
Developed by Nadim Tuhin - Making holiday management simple and efficient for HR teams worldwide.