The Problem: Managing Recurring Tasks Manually

Sound familiar? Every month someone has to remember to create the maintenance ticket. Every Friday a review ticket should be created. Quarterly reports, annual license checks, weekly backup controls - everything has to be created manually.

In many companies, this leads to:

  • Forgotten tasks - Regular tickets are created too late or not at all
  • Inconsistent processes - Every agent creates tickets differently
  • Wasted time - Repetitive manual work that could be automated
  • Missing traceability - No history of when which tasks were created
  • No flexibility - Complex rules like "2nd Tuesday of the month" cannot be mapped

The Solution: Automatic Ticket Creation with the TicketScheduler

The TicketScheduler Add-on for Znuny 7.2.x automates the creation of recurring tickets. Define rules - the Znuny Daemon does the rest. Every 5 minutes, the system checks for due schedules and creates tickets automatically.

Screenshots

Schedule Overview:

Schedule Overview

Edit Schedule:

Edit Schedule

Features Overview

7 Schedule Types

From simple daily rhythms to complex monthly rules:

TypeDescriptionExample
DailyEvery day at a specific timeDaily at 08:00
WeeklyOn specific weekdaysEvery Monday and Wednesday
Monthly (Day)On the Xth day of the monthOn the 15th of each month
Monthly (Weekday)On the Xth occurrence of a weekdayOn the 2nd Tuesday
Monthly (Weekday + Offset)X days before/after a weekday3 days after the last Friday
YearlyOn a specific dateEvery year on April 1st
IntervalEvery N daysEvery 14 days

Normal Tickets and Process Tickets

Normal tickets with full access to all ticket fields:

  • Queue, Priority, Type, Service, SLA
  • Owner, Responsible, Customer User
  • Title and Body with dynamic placeholders
  • DynamicFields
  • Checklist templates (optional)

Process tickets for automated workflows:

  • Select Process and Activity Dialog
  • Dialog fields are loaded automatically
  • Pre-fill Activity Dialog data
  • Requires ITSM / Process Management

Placeholder System

Dynamic content in ticket title and body:

PlaceholderOutput
[DATE]2026-03-21
[DATE_DE]21.03.2026
[MONTH_NAME]March
[WEEKDAY]Saturday
[WEEK]12
[QUARTER]1
Example title: Maintenance Report [MONTH_NAME] [YEAR] becomes "Maintenance Report March 2026"

End Options

Control how long a schedule should run:

  • Never - Run indefinitely
  • After X Executions - Automatically stop after N tickets
  • Until Date - Automatically stop from a specific date

Differentiated Permissions

GroupAccess
TicketSchedulerManager (RW)Create, Edit, Delete in own queues
TicketSchedulerManager (RO)View only
TicketSchedulerAdmin (RW)All queues, sees error banner

Clear Management Interface

The scheduler overview shows all schedules at a glance:

  • Filters: All, Active, Scheduled, Failed
  • Actions: Edit, Duplicate, Preview, History, Execute Now, Activate/Deactivate, Delete
  • Error banner for administrators on failed executions
  • Execution history with ticket IDs and error messages

Optional Extensions

Add-onFunction
Znuny ChecklistAutomatic assignment of checklist templates
ITSM / Process ManagementScheduling of process tickets
Both are automatically detected - install and use.

Use Cases

Monthly Server Maintenance

Schedule Type: Monthly (Day)
Day: 15
Time: 08:00
Title: Server Maintenance [MONTH_NAME] [YEAR]
Queue: IT-Operations
Priority: Normal

Weekly Backup Check

Schedule Type: Weekly
Weekdays: Monday
Time: 07:00
Title: Backup Check CW [WEEK]
Queue: IT-Operations

Quarterly License Review

Schedule Type: Monthly (Day)
Day: 1
Time: 09:00
Title: License Review Q[QUARTER]/[YEAR]
Queue: IT-Administration
End Option: Never

Task After the Last Friday of the Month

Schedule Type: Monthly (Weekday + Offset)
Occurrence: Last
Weekday: Friday
Offset: +3 days
Time: 10:00
Title: Month-End Review [MONTH_NAME]

Technical Details

Daemon Integration

  • Automatic execution every 5 minutes via the Znuny Daemon
  • Console command Maint::Ticket::SchedulerRun for manual execution
  • Dry-run mode for testing without ticket creation
  • Time simulation for development and testing

SysConfig

SettingDescriptionDefault
TicketScheduler::EnabledEnable feature1
TicketScheduler::DefaultTimezoneDefault timezoneEurope/Berlin
TicketScheduler::MaxHistoryEntriesMax. history entries (0 = unlimited)0
TicketScheduler::LogSuccessfulExecutionsLog successes0

Data Preservation

  • Four database tables for schedules, history, DynamicFields, and checklists
  • Complete execution history with ticket IDs
  • Error logging with timestamps

Installation

Installation works like any Znuny package:

Option A: OPM Package (recommended)

  1. Download OPM package from the Packages page
  2. Admin > Package Manager > Install package
  3. Done - the Daemon takes over automatically

Option B: Manual

  1. Copy files: cp -r src/* /opt/znuny/
  2. Clear cache: bin/znuny.Console.pl Maint::Cache::Delete
  3. Rebuild SysConfig: bin/znuny.Console.pl Maint::Config::Rebuild

After installation:

  1. Add users to the TicketSchedulerManager group (RW for full access)
  2. Menu item Tickets > Ticket Scheduler in main navigation
  3. Create your first schedule

Comprehensive Testing

The add-on is backed by 193 automated tests:

  • 116 unit tests - CRUD, schedule calculation, placeholders, execution, history, DynamicFields, checklists, end options, feature detection
  • 77 simulation tests - 90-day time-lapse with 64 schedules of all schedule types

Open Source

The TicketScheduler Add-on is Open Source under the GPL v3 license:

  • Free to use
  • Source code viewable
  • Modifications allowed
  • Community contributions welcome

Repository: codeberg.org/wolkig-it/znuny_ticketscheduler

Conclusion

With the TicketScheduler Add-on, you automate the creation of recurring tickets - from simple daily tasks to complex monthly rules like "3 days after the last Friday."

Benefits at a glance:

  • 7 flexible schedule types
  • Normal tickets and process tickets
  • Dynamic placeholders for title and body
  • DynamicFields and checklist integration
  • Differentiated permissions
  • Automatic Daemon integration
  • Error banner and execution history
  • 193 automated tests
  • Free and Open Source

Try it out!

Download and documentation: codeberg.org/wolkig-it/znuny_ticketscheduler