1815440faSAtari911# DokuWiki Calendar Plugin 219378907SAtari911 3da206178SAtari911A feature-rich calendar plugin for DokuWiki with multiple themes, Outlook sync, recurring events, and a static presentation mode. 49ccd446eSAtari911 59ccd446eSAtari911## Features 69ccd446eSAtari911 7da206178SAtari911### Calendar Views 8da206178SAtari911- **Interactive Calendar** - Full-featured calendar with event management 9da206178SAtari911- **Static Calendar** - Read-only presentation mode for public display 10da206178SAtari911- **Sidebar Widget** - Compact upcoming events widget 11da206178SAtari911- **Event Panel** - Standalone event list 129ccd446eSAtari911 13da206178SAtari911### Event Management 14da206178SAtari911- Create, edit, and delete events 15da206178SAtari911- Recurring events (daily, weekly, monthly, yearly) 16da206178SAtari911- Multi-day events with date ranges 17da206178SAtari911- Time conflict detection 18da206178SAtari911- Task mode with completion tracking 19da206178SAtari911- Important event highlighting with ⭐ 209ccd446eSAtari911 219ccd446eSAtari911### Themes 22da206178SAtari911- **Matrix** - Green on dark (default) 23da206178SAtari911- **Pink** - Pink/magenta on dark 24da206178SAtari911- **Purple** - Purple/violet on dark 25da206178SAtari911- **Professional** - Blue on white 26da206178SAtari911- **Wiki** - Neutral gray (matches DokuWiki) 27da206178SAtari911- **Dark** - Blue on dark gray 28da206178SAtari911- **Light** - Clean white/gray 299ccd446eSAtari911 30da206178SAtari911### Sync & Backup 31*22ab52b1SAtari911- Outlook/ICS calendar sync 32da206178SAtari911- Full event backup/restore 33da206178SAtari911- Config import/export 349ccd446eSAtari911 35da206178SAtari911### Localization 36da206178SAtari911- English (en) 37da206178SAtari911- German (de) 389ccd446eSAtari911 39da206178SAtari911## Installation 4019378907SAtari911 41da206178SAtari9111. Download the latest release 42da206178SAtari9112. Extract to `lib/plugins/calendar/` 43da206178SAtari9113. Access Admin > Calendar Management to configure 4419378907SAtari911 45da206178SAtari911## Syntax 4619378907SAtari911 47da206178SAtari911### Interactive Calendar 485836612dSAtari911``` 495836612dSAtari911{{calendar}} 50da206178SAtari911{{calendar namespace=work}} 51da206178SAtari911{{calendar namespace=personal;work}} 52da206178SAtari911{{calendar namespace=projects:*}} 535836612dSAtari911``` 545836612dSAtari911 55da206178SAtari911### Static Calendar (Read-only) 565836612dSAtari911``` 57da206178SAtari911{{calendar static}} 58da206178SAtari911{{calendar namespace=meetings static}} 59da206178SAtari911{{calendar month=2 static}} 60da206178SAtari911{{calendar title="Club Events" static}} 61da206178SAtari911{{calendar theme=professional static}} 62da206178SAtari911{{calendar static noprint}} 635836612dSAtari911``` 645836612dSAtari911 65da206178SAtari911#### Static Calendar Options 665836612dSAtari911 67da206178SAtari911| Option | Description | Example | 68da206178SAtari911|--------|-------------|---------| 69da206178SAtari911| `static` | Enable read-only mode | `{{calendar static}}` | 70da206178SAtari911| `namespace=X` | Filter by namespace | `namespace=meetings` | 71da206178SAtari911| `month=X` | Lock to specific month (1-12) | `month=6` | 72da206178SAtari911| `year=X` | Lock to specific year | `year=2026` | 73da206178SAtari911| `title="X"` | Custom title (supports spaces) | `title="Team Events"` | 74da206178SAtari911| `theme=X` | Apply theme | `theme=matrix` | 75da206178SAtari911| `noprint` | Hide print button | `noprint` | 76da206178SAtari911 77da206178SAtari911### Event Panel 7819378907SAtari911``` 7919378907SAtari911{{eventpanel}} 80da206178SAtari911{{eventpanel namespace=work height=400}} 8119378907SAtari911``` 825836612dSAtari911 83da206178SAtari911### Event List 8419378907SAtari911``` 85da206178SAtari911{{eventlist}} 86da206178SAtari911{{eventlist namespace=meetings range=30}} 8719378907SAtari911``` 8819378907SAtari911 89da206178SAtari911### Sidebar Widget 90da206178SAtari911``` 91da206178SAtari911{{calendar sidebar}} 92da206178SAtari911{{calendar sidebar namespace=important}} 93da206178SAtari911``` 9419378907SAtari911 95da206178SAtari911## Admin Features 9619378907SAtari911 97da206178SAtari911Access via **Admin > Calendar Management**: 9819378907SAtari911 99da206178SAtari911- **Manage Events** - Browse, search, move events between namespaces 100da206178SAtari911- **Recurring Events** - Manage series, extend, trim, pause/resume 101da206178SAtari911- **Important Namespaces** - Configure which namespaces get ⭐ highlighting 102da206178SAtari911- **Outlook Sync** - Configure ICS calendar synchronization 103da206178SAtari911- **Backup/Restore** - Full event data backup 104da206178SAtari911- **Themes** - Select and preview themes 105231d0edbSAtari911 106da206178SAtari911## Event Description Formatting 107231d0edbSAtari911 108da206178SAtari911Descriptions support DokuWiki-style formatting: 109231d0edbSAtari911 110da206178SAtari911- `**bold**` or `__bold__` → **bold** 111da206178SAtari911- `//italic//` → *italic* 112da206178SAtari911- `[[page|text]]` → DokuWiki links 113da206178SAtari911- `[text](url)` → Markdown links 114da206178SAtari911- Line breaks preserved 115231d0edbSAtari911 116da206178SAtari911## Keyboard Shortcuts 117231d0edbSAtari911 118da206178SAtari911- `Escape` - Close dialogs 119da206178SAtari911- `Enter` - Submit forms (when focused) 120da206178SAtari911 121815440faSAtari911## Architecture (v7.0+) 122815440faSAtari911 123815440faSAtari911The plugin uses a modular class-based architecture: 124815440faSAtari911 125815440faSAtari911- **`classes/FileHandler.php`** - Atomic file operations with locking to prevent data corruption 126815440faSAtari911- **`classes/EventCache.php`** - Caching layer with 5-minute TTL for improved performance 127815440faSAtari911- **`classes/RateLimiter.php`** - AJAX rate limiting for security (60 req/min read, 30 req/min write) 128815440faSAtari911- **`classes/EventManager.php`** - Consolidated event CRUD operations 129815440faSAtari911 130da206178SAtari911## Requirements 131da206178SAtari911 132da206178SAtari911- DokuWiki (Hogfather or later recommended) 133da206178SAtari911- PHP 7.4+ 134da206178SAtari911- Modern browser (Chrome, Firefox, Edge, Safari) 135da206178SAtari911 136da206178SAtari911## License 137da206178SAtari911 138da206178SAtari911GPL-2.0 139da206178SAtari911 140da206178SAtari911## Author 141da206178SAtari911 142da206178SAtari911atari911 (atari911@gmail.com) 143da206178SAtari911 144da206178SAtari911## Links 145da206178SAtari911 146da206178SAtari911- [DokuWiki Plugin Page](https://www.dokuwiki.org/plugin:calendar) 147da206178SAtari911- [GitHub Repository](https://github.com/atari911/dokuwiki-plugin-calendar) 148da206178SAtari911- [Issue Tracker](https://github.com/atari911/dokuwiki-plugin-calendar/issues) 149815440faSAtari911 150815440faSAtari911## Version 151815440faSAtari911 152815440faSAtari9117.0.8 153