ClubCal Lite
Lightweight club calendar using a custom post type. Xtremely lightweight, 200kb including FullCalendar with AJAX events loading, modal event details and minimal styling.
by Tibor Berki <https://github.com/Tdude> · github.com/tdude/clubcal-lite
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/tdude/clubcal-lite/archive/refs/heads/main.zipReadme
ClubCal Lite - Absolutely No Bloat, No SPAM, No Phone Home
ClubCal Lite is a small WordPress calendar plugin for clubs and communities. You can do whatever you want with it.
It adds an Events custom post type and renders your events in a fast, modern calendar powered by FullCalendar (loaded only on pages where you use the shortcode).
Highlights
- Lightweight: no Gutenberg blocks for Wordpress required, no jQuery dependency.
- AJAX events loading: the calendar fetches only the events it needs.
- Month + week list views: switch between a classic grid and a weekly list.
- Modal event details: click an event to view details without leaving the page.
- Theme-friendly styling: minimal CSS, with dark-mode support.
Quick start
- Activate the plugin.
- Create your first event under Events in WP Admin.
- Add the calendar to any page with:
[club_calendar]
Shortcode options
category: filter byevent_categoryslugview: initial view (default:dayGridMonth, alternative:listWeek)initial_date: open the calendar on a specific date (e.g.2025-12-19)
Example:
[club_calendar category="socials" view="listWeek" initial_date="2025-12-19"]
-
Add Event categories and use as you see fit. -
You can add as many calendars as you wish in your posts.Calendar Shortcode Updated
The [club_calendar] shortcode now supports a list_months attribute:
Usage: [club_calendar]
[club_calendar list_months="6"]
[club_calendar view="listRange"]
[club_calendar view="listRange" list_months="1"]
[club_calendar view="dayGridMonth" list_months="12"]Attributes:
- list_months - Number of months to show in list view (1-12, default: 3)
- view - Initial view: dayGridMonth (default) or listRange (formerly listWeek)
- category - Filter by category slug
- initial_date - Start date (YYYY-MM-DD)
How It Works
- The toolbar now shows "Månad" (Month) and "3 månader" (3 months) buttons by default
- The list button text dynamically updates based on list_months value:
- list_months="1" → "1 månad"
- list_months="3" → "3 månader"
- list_months="6" → "6 månader"
- When clicking the list button, it shows events for the specified duration starting from the current date
- Backwards compatible: view="listWeek" automatically maps to view="listRange"
Quick Start for Swedish, translate to any language and contribute
-
Upload all files to your WordPress installation:
clubcal-lite.php→/wp-content/plugins/clubcal-lite/languages/folder →/wp-content/plugins/clubcal-lite/languages/
-
Set WordPress to Swedish:
- Go to Settings → General
- Set "Site Language" to Svenska (Swedish)
- Save changes
-
The plugin will automatically display in Swedish!
File Structure
clubcal-lite/
├── clubcal-lite.php (main plugin file)
├── README.md (this file)
├── README-SVENSKA.md (Swedish documentation)
└── languages/
├── clubcal-lite.pot (translation template)
├── clubcal-lite-sv_SE.po (Swedish translation - editable)
├── clubcal-lite-sv_SE.mo (Swedish translation - compiled)
└── compile_po.py (utility to compile .po to .mo)
What's Translated
All admin interface text is translatable:
- Post type labels ("Events", "Add New Event", etc.)
- Meta box labels ("Event Details", "Start date/time", etc.)
- Taxonomy labels ("Event Categories", "Event Tags")
- Frontend strings ("Open event page")
The calendar interface (FullCalendar) is already configured for Swedish locale with:
- Swedish month/day names
- Swedish button labels ("Idag", "Månad", "Veckolista")
- Swedish week settings (Monday first)
Adding More Languages
To create a new translation:
-
Copy
languages/clubcal-lite-sv_SE.poand rename it:- Danish:
clubcal-lite-da_DK.po - Norwegian:
clubcal-lite-nb_NO.po - Finnish:
clubcal-lite-fi.po - German:
clubcal-lite-de_DE.po
- Danish:
-
Translate all
msgstrvalues (leavemsgidunchanged) -
Compile to
.moformat:# Using msgfmt (if installed) msgfmt clubcal-lite-LOCALE.po -o clubcal-lite-LOCALE.mo # Or using the included Python script python3 compile_po.py -
Upload both
.poand.mofiles to thelanguages/folder -
Set WordPress to use your language
Editing Translations
Using Poedit (Recommended)
- Download Poedit
- Open the
.pofile - Edit translations
- Save (automatically compiles to
.mo)
Manual Editing
- Open
.pofile in text editor - Find the string to translate:
msgid "Event" msgstr "Your translation" - Edit the
msgstrvalue - Compile to
.mo(see above) - Upload new
.mofile - Clear WordPress cache
Translation Template
Use clubcal-lite.pot as a template for new translations. It contains all translatable strings with empty msgstr values.
Troubleshooting
Translations not showing
- Check WordPress language setting (Settings → General)
- Check file names (must match locale exactly, e.g.,
sv_SEnot justsv) - Check file path (
/wp-content/plugins/clubcal-lite/languages/) - Check file permissions (
.mofiles should be readable: chmod 644) - Clear cache (WordPress object cache and any caching plugins)
- Try incognito mode to rule out browser caching
Some strings still in English
The calendar view uses FullCalendar's Swedish locale, configured in the plugin code. If you see English:
- Clear cache
- Check browser console for JavaScript errors
- Ensure the plugin file is the updated version with
load_textdomain()
Plugin Updates
When updating the plugin:
- Backup your translations (
.poand.mofiles) - Update
clubcal-lite.php - Restore your translation files
- Check if new strings were added (compare with new
.potfile) - Update translations if needed
- Recompile
.mofiles
Contributing Translations
If you create a translation for a new language, please consider sharing it:
- Open a pull request on GitHub
- Contact the plugin author (github.com/Tdude)
- Share in WordPress translation forums
Calendar Locale Configuration
The calendar already includes Swedish locale settings in the JavaScript:
locale: 'sv',
firstDay: 1, // Monday
buttonText: {
today: 'Idag',
month: 'Månad',
week: 'Vecka',
day: 'Dag',
list: 'Lista'
}
For other languages, you may need to add FullCalendar locale files or modify the plugin's JavaScript configuration.
Support
For questions or issues:
- Check the Swedish README (
README-SVENSKA.md) for detailed instructions - Open an issue on GitHub
- Contact the plugin author (github.com/Tdude)
Current Version: 0.1.3
Text Domain: clubcal-lite
Supported Languages: Swedish (sv_SE)