1# DokuWiki Calendar Plugin 2 3A feature-rich calendar plugin for DokuWiki with multiple themes, Outlook sync, recurring events, and a static presentation mode. 4 5## Features 6 7### Calendar Views 8- **Interactive Calendar** - Full-featured calendar with event management 9- **Static Calendar** - Read-only presentation mode for public display 10- **Sidebar Widget** - Compact upcoming events widget 11- **Event Panel** - Standalone event list 12 13### Event Management 14- Create, edit, and delete events 15- Recurring events (daily, weekly, monthly, yearly) 16- Multi-day events with date ranges 17- Time conflict detection 18- Task mode with completion tracking 19- Important event highlighting with ⭐ 20 21### Themes 22- **Matrix** - Green on dark (default) 23- **Pink** - Pink/magenta on dark 24- **Purple** - Purple/violet on dark 25- **Professional** - Blue on white 26- **Wiki** - Neutral gray (matches DokuWiki) 27- **Dark** - Blue on dark gray 28- **Light** - Clean white/gray 29 30### Sync & Backup 31- Outlook sync 32- Full event backup/restore 33- Config import/export 34 35### Localization 36- English (en) 37- German (de) 38 39## Installation 40 411. Download the latest release 422. Extract to `lib/plugins/calendar/` 433. Access Admin > Calendar Management to configure 44 45## Syntax 46 47### Interactive Calendar 48``` 49{{calendar}} 50{{calendar namespace=work}} 51{{calendar namespace=personal;work}} 52{{calendar namespace=projects:*}} 53``` 54 55### Static Calendar (Read-only) 56``` 57{{calendar static}} 58{{calendar namespace=meetings static}} 59{{calendar month=2 static}} 60{{calendar title="Club Events" static}} 61{{calendar theme=professional static}} 62{{calendar static noprint}} 63``` 64 65#### Static Calendar Options 66 67| Option | Description | Example | 68|--------|-------------|---------| 69| `static` | Enable read-only mode | `{{calendar static}}` | 70| `namespace=X` | Filter by namespace | `namespace=meetings` | 71| `month=X` | Lock to specific month (1-12) | `month=6` | 72| `year=X` | Lock to specific year | `year=2026` | 73| `title="X"` | Custom title (supports spaces) | `title="Team Events"` | 74| `theme=X` | Apply theme | `theme=matrix` | 75| `noprint` | Hide print button | `noprint` | 76 77### Event Panel 78``` 79{{eventpanel}} 80{{eventpanel namespace=work height=400}} 81``` 82 83### Event List 84``` 85{{eventlist}} 86{{eventlist namespace=meetings range=30}} 87``` 88 89### Sidebar Widget 90``` 91{{calendar sidebar}} 92{{calendar sidebar namespace=important}} 93``` 94 95## Admin Features 96 97Access via **Admin > Calendar Management**: 98 99- **Manage Events** - Browse, search, move events between namespaces 100- **Recurring Events** - Manage series, extend, trim, pause/resume 101- **Important Namespaces** - Configure which namespaces get ⭐ highlighting 102- **Outlook Sync** - Configure ICS calendar synchronization 103- **Backup/Restore** - Full event data backup 104- **Themes** - Select and preview themes 105 106## Event Description Formatting 107 108Descriptions support DokuWiki-style formatting: 109 110- `**bold**` or `__bold__` → **bold** 111- `//italic//` → *italic* 112- `[[page|text]]` → DokuWiki links 113- `[text](url)` → Markdown links 114- Line breaks preserved 115 116## Keyboard Shortcuts 117 118- `Escape` - Close dialogs 119- `Enter` - Submit forms (when focused) 120 121## Architecture (v7.0+) 122 123The plugin uses a modular class-based architecture: 124 125- **`classes/FileHandler.php`** - Atomic file operations with locking to prevent data corruption 126- **`classes/EventCache.php`** - Caching layer with 5-minute TTL for improved performance 127- **`classes/RateLimiter.php`** - AJAX rate limiting for security (60 req/min read, 30 req/min write) 128- **`classes/EventManager.php`** - Consolidated event CRUD operations 129 130## Requirements 131 132- DokuWiki (Hogfather or later recommended) 133- PHP 7.4+ 134- Modern browser (Chrome, Firefox, Edge, Safari) 135 136## License 137 138GPL-2.0 139 140## Author 141 142atari911 (atari911@gmail.com) 143 144## Links 145 146- [DokuWiki Plugin Page](https://www.dokuwiki.org/plugin:calendar) 147- [GitHub Repository](https://github.com/atari911/dokuwiki-plugin-calendar) 148- [Issue Tracker](https://github.com/atari911/dokuwiki-plugin-calendar/issues) 149 150## Version 151 1527.0.8 153