Drag & Drop Event Calendar self-updates
A WordPress plugin for managing and displaying events in an interactive calendar with drag & drop support.
by Lucas Dühr | more than ads · github.com/crispyparmaham/wp-event-calender
★ 1stars
0forks
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/crispyparmaham/wp-event-calender/archive/refs/heads/main.zipShips its own WordPress updater (Plugin Update Checker), so new versions show up under Dashboard → Updates.
Time Calendar
A full-featured WordPress event calendar with registration, waitlist, email templates, and a design token system.
Features
- Flexible event management — single, multi-date, and recurring events
- Registration forms with waitlist, cancellation links, and rate limiting
- Customizable email templates — structured editor or full HTML expert mode
- Design token system — light/dark mode, all colors via CSS Custom Properties
- Admin dashboard with KPIs, upcoming events, and 30-day registration chart
- Schema.org structured data for SEO
- Mobile-optimized calendar — slider, scaled, or optimized views
- No coding required for basic setup
Requirements
| Dependency | Version |
|---|---|
| WordPress | 6.0+ |
| PHP | 8.2+ |
| ACF PRO | 6.0+ |
Installation
- Upload the
time-calendarfolder towp-content/plugins/ - Activate the plugin in Plugins
- Ensure ACF PRO is installed and active
- Go to Events > Kalender to start
Shortcodes
[time_calendar] — Interactive frontend calendar
| Attribute | Values | Default |
|---|---|---|
type |
all / category slug |
all |
week_only |
true / false |
global setting |
mobile |
slider / optimized / scaled / desktop |
global setting |
[time_calendar type="training" week_only="true"]
[time_events] — Server-side event listing
| Attribute | Values | Default |
|---|---|---|
preset |
any saved preset key | default |
category |
category slug | all |
layout |
grid / list / cards |
grid |
columns |
1 / 2 / 3 |
3 |
group_by |
none / month / month_inline |
none |
show_past |
true / false |
false |
limit |
integer | -1 (all) |
show_image |
true / false |
true |
show_date |
true / false |
true |
show_time |
true / false |
true |
show_location |
true / false |
true |
show_trainer |
true / false |
true |
show_price |
true / false |
true |
show_excerpt |
true / false |
true |
show_badge |
true / false |
true |
[time_events preset="kompakt"]
[time_events category="seminar" layout="cards" columns="2"]
[time_event_info] — Event detail bar / cards
| Attribute | Values | Default |
|---|---|---|
event_id |
post ID | current post |
layout |
bar / cards |
bar |
show_date |
true / false |
true |
show_time |
true / false |
true |
show_location |
true / false |
true |
show_host |
true / false |
true |
show_seats |
true / false |
true |
show_audience |
true / false |
true |
[time_event_info layout="cards"]
[time_registration] — Registration form
| Attribute | Values | Default |
|---|---|---|
event_id |
post ID | current post |
title |
string | Anmelden |
[time_registration event_id="42"]
[time_price_bar] — Sticky price bar
| Attribute | Values | Default |
|---|---|---|
post_id |
post ID | current post |
link |
URL | #anmelden |
link_text |
string | Jetzt anmelden |
[time_price_bar link="#contact"]
[training_ical_button] — iCal download
| Attribute | Values | Default |
|---|---|---|
event_id |
post ID | current post |
label |
string | Zum Kalender hinzufuegen |
Mail Placeholders
| Placeholder | Description |
|---|---|
{{firstname}} |
First name |
{{lastname}} |
Last name |
{{event_title}} |
Event title |
{{event_date}} |
Date & time |
{{event_location}} |
Location |
{{storno_url}} |
Cancellation link |
{{blogname}} |
Site name |
{{anrede}} |
Salutation (Sie/du) |
{{anrede_possessiv}} |
Possessive (Ihre/deine) |
{{anrede_akkusativ}} |
Accusative |
{{anrede_dativ}} |
Dative |
{{anrede_imperativ}} |
Imperative form |
File Structure
time-calendar/
├── functions.php # Bootstrap & constants
├── includes/
│ ├── admin/
│ │ ├── settings.php # Settings page
│ │ ├── dashboard.php # Admin dashboard
│ │ ├── admin-page.php # Admin calendar
│ │ ├── events-overview.php # Events list
│ │ ├── categories.php # Categories
│ │ └── updater.php # GitHub updater
│ ├── post-type/
│ │ ├── cpt.php # CPT & ACF fields
│ │ └── schema.php # Schema.org output
│ ├── ajax.php # Event AJAX handlers
│ ├── shortcodes/
│ │ ├── shortcode-calendar.php # [time_calendar]
│ │ ├── shortcode-events.php # [time_events]
│ │ ├── shortcode-event-info.php # [time_event_info]
│ │ ├── shortcode-registration.php # [time_registration]
│ │ ├── shortcode-price-bar.php # [time_price_bar]
│ │ └── ical.php # iCal endpoint
│ └── registration/
│ ├── registration.php # DB helpers
│ ├── registration-ajax.php # Registration AJAX
│ ├── registration-mail.php # Mail logic & templates
│ ├── registration-admin-page.php # Admin UI
│ ├── cancel.php # Cancellation handler
│ ├── export.php # CSV export
│ ├── waitlist.php # Waitlist logic
│ └── reminder.php # Reminder cron
├── assets/
│ ├── js/
│ │ ├── admin/calendar.js
│ │ └── frontend/
│ │ ├── calendar-frontend.js # Calendar + week plan
│ │ └── registration.js # Registration form
│ └── css/
│ ├── design-system.css # CSS Custom Properties
│ ├── admin/
│ └── frontend/
│ ├── calendar-frontend.css
│ ├── events.css
│ ├── event-info.css
│ ├── price-bar.css
│ └── registration.css
└── templates/
└── single-time_event.php
3.4.4
License
GPL-2.0 — see LICENSE for details.