xref: /plugin/calendar/README.md (revision 22ab52b18c5d3c5ae871112fa82f077b843801a6)
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