Agent skill

Scheduled Events And Queues

by mendixlabs in mendixlabs/mxcli

Scheduled events (Mendix's cron) and task queues in MDL — the eight repeat variants and the fields each takes, and what a queue does and does not throttle.

Apache-2.0Auto-check passedBackend & APIs

Install Scheduled Events And Queues

skills CLI
$ npx skills add mendixlabs/mxcli --skill scheduled-events-and-queues -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install mendixlabs/mxcli scheduled-events-and-queues --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/mendixlabs/mxcli.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/mendix/scheduled-events-and-queues .claude/skills/scheduled-events-and-queues && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
scheduled-events-and-queues
GitHub stars
129
Token cost
~3.3k tokens
SKILL.md length
1,384 words
Files
1
Skills in repo
72
Repo updated
First seen
Licence
Apache-2.0

At a glance

Scheduled events (Mendix's cron) and task queues in MDL — the eight repeat variants and the fields each takes, and what a queue does and does not throttle.

  • Running a microflow on a schedule
  • SKILL.md covers When to Use This Skill, Scheduled Events, Task Queues and Common Mistakes, plus 7 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md
  • Bounding how many background tasks run at once

What it does

Scheduled Events And Queues is an agent skill from mendixlabs/mxcli. Scheduled events (Mendix's cron) and task queues in MDL — the eight repeat variants and the fields each takes, and what a queue does and does not throttle. Use when running a microflow on a schedule, or bounding how many background tasks run at once.

Its SKILL.md is about 3.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Backend & APIs, covering Background jobs and Scheduled and recurring tasks. The repository describes itself as: Mendix cli tool, a headless way to work with Mendix projects. Enables Mendix projects for use with 3rd party agentic coding tools like Claude Code and Copilot. Includes a… The licence is Apache-2.0.

When your agent uses it

  • Running a microflow on a schedule
  • Bounding how many background tasks run at once

Example prompts

  • “/scheduled-events-and-queues”

What it can do on your machine

Read from SKILL.md and the folder at commit 22d9ea6. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are sql, java, mdl and bash).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Scheduled Events And Queues loads about 3.3k tokens when it runs. Until then it costs about 70 tokens; SKILL.md has 1,384 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~70
When it runs · the whole SKILL.md, loaded when a task matches
~3.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from mendixlabs/mxcli at commit 22d9ea6, republished under its Apache-2.0 licence (© mendixlabs). 1,384 words, ~3,297 tokens.

Download SKILL.mdSave it as .claude/skills/scheduled-events-and-queues/SKILL.md (or your agent's skills folder).
name
scheduled-events-and-queues
description
Scheduled events (Mendix's cron) and task queues in MDL — the eight repeat variants and the fields each takes, and what a queue does and does not throttle. Use when running a microflow on a schedule, or bounding how many background tasks run at once.

Scheduled Events and Task Queues

When to Use This Skill

Use this skill when the user wants to:

  • Run a microflow on a schedule ("every night at 4", "hourly", "cron", "batch job")
  • Inspect or change an existing scheduled event
  • Limit how many background tasks run at once (a task queue)
  • Run a microflow or Java action call on a queue (IN QUEUE)

These two features are unrelated. A scheduled event does not go through a task queue. Its own concurrency control is OnOverlap.

Scheduled Events

Mendix's cron: run a microflow on a repeating schedule.

sql
mdl 1;
-- Inspect
list scheduled events;
list scheduled events in Ops;
describe scheduled event Ops.NightlyCleanup;   -- re-executable MDL

-- Create
create scheduled event Ops.NightlyCleanup (
  Microflow: Ops.SE_Cleanup,
  Repeat: Daily,
  HourOfDay: 4,
  MinuteOfHour: 0,
  TimeZone: Server,
  Enabled: true
);

drop scheduled event Ops.NightlyCleanup;

Microflow and Repeat are always required. show is a synonym for list.

Pick the Repeat first, then use only its fields

Mendix stores the repeat rule as one of eight types, and they differ in which fields they carry — not just in their values. Naming a field from another repeat is an error, not a no-op:

Error: Repeat Daily does not have Multiplier — it takes HourOfDay, MinuteOfHour
RepeatFieldsMeans
MinutelyMultiplierevery N minutes
HourlyMultiplier, MinuteOffsetevery N hours, at :MM past
DailyHourOfDay, MinuteOfHourevery day at HH:MM (no multiplier)
WeeklyWeekdays, HourOfDay, MinuteOfHouron the named days at HH:MM
MonthlyByDateMultiplier, MonthOffset, DayOfMonth, HourOfDay, MinuteOfHourthe Dth of every N months
MonthlyByWeekdayMultiplier, MonthOffset, DaySelector, Weekday, HourOfDay, MinuteOfHourthe last Friday of every N months
YearlyByDateMonth, DayOfMonth, HourOfDay, MinuteOfHourevery 2 January
YearlyByWeekdayMonth, DaySelector, Weekday, HourOfDay, MinuteOfHourthe first Monday of March

Field values:

FieldValue
Multiplier1 or more (defaults to 1)
MinuteOffset0–59
MonthOffset0-based: which month of a multi-month cycle fires
HourOfDay / MinuteOfHour0–23 / 0–59
DayOfMonth / Month1–31 / 1–12
Weekdaysquoted list: 'Monday, Friday' (case-insensitive)
DaySelectorFirst, Second, Third, Fourth, Last
WeekdaySunday … Saturday

Optional on any repeat:

PropertyValuesDefault
Enabledtrue / falsefalse — a new event does not run until you enable it
OnOverlapDelayNext / SkipNextDelayNext
TimeZoneUTC / ServerUTC
StartDateTimeRFC 3339, e.g. '2026-01-01T04:00:00Z'none
Documentationfree textnone

SkipNext drops a run that would overlap the previous one; DelayNext waits.

More examples
sql
mdl 1;
-- Every two hours, 23 minutes past
create scheduled event Ops.HourlyPing (
  Microflow: Ops.SE_Ping,
  Repeat: Hourly,
  Multiplier: 2,
  MinuteOffset: 23
);

-- Mondays and Fridays at 09:30
create scheduled event Ops.WeeklyReport (
  Microflow: Ops.SE_Report,
  Repeat: Weekly,
  Weekdays: 'Monday, Friday',
  HourOfDay: 9,
  MinuteOfHour: 30
);

-- The last Friday of every third month, 18:00
create scheduled event Ops.QuarterEnd (
  Microflow: Ops.SE_Close,
  Repeat: MonthlyByWeekday,
  Multiplier: 3,
  MonthOffset: 2,
  DaySelector: Last,
  Weekday: Friday,
  HourOfDay: 18
);

Task Queues

A task queue bounds how many queued calls run at once. Binding a call to it is a separate step — see IN QUEUE.

sql
mdl 1;
list task queues;
describe task queue Ops.OrderProcessing;

create task queue Ops.OrderProcessing ( Parallelism: 3, ClusterWide: true );
create task queue Ops.Mail;                     -- defaults: parallelism 1, per-instance

create or modify task queue Ops.OrderProcessing ( Parallelism: '$MyModule.Workers' );
drop task queue Ops.Mail;
PropertyMeaningDefault
Parallelismhow many run at once — an expression, not a number1
ClusterWidetrue = across the cluster, false = per runtime instancefalse

Mendix stores parallelism as an expression string, so 3 and '3' are the same thing and an arbitrary expression is legal.

Common Mistakes

MistakeSymptomFix
Multiplier on a Daily repeatRepeat Daily does not have MultiplierDaily has no multiplier — use HourOfDay/MinuteOfHour, or switch to Hourly
Forgetting Enabled: trueThe event is in the model but never runsSet Enabled: true (the default is false)
TimeZone: serverhas the wrong casing — Mendix stores it as "Server"Use the exact spelling: Server, UTC, DelayNext, SkipNext, Last, Friday
HourOfDay: 24it must be between 0 and 23Hours are 0–23; midnight is 0
Expecting a queue to throttle a scheduled eventNothing changesThey are unrelated — use OnOverlap

Binding a Call to a Queue — IN QUEUE

The queue document only defines the concurrency limit. What actually runs work in the background is the binding on the call activity, and Mendix allows it on exactly two: Call microflow and Call Java action. In MDL that is a trailing in queue clause, in the same position on both — after the argument list, before any on error:

sql
mdl 1;
create or modify microflow Ops.ACT_Enqueue ()
begin
  call microflow Ops.ACT_Process(Order = $Order) in queue Ops.OrderProcessing;
  call java action Ops.RefreshData(Url = $Url)   in queue Ops.OrderProcessing;
end;

describe microflow renders the clause back, so the binding round-trips.

Three traps, verified on mxbuild 11.13.0 (the microflow one on 11.12.0)

A queued microflow must return nothing. A call microflow … in queue … whose target declares returns … fails the build with CE7033 "A microflow used for background execution must have a Microflow return type of 'Nothing'.", reported at the call activity. mxcli check reports it as MDL088 — without a project when the script creates the microflow, and under --references for one already stored. Drop the returns clause (and the return value) from the worker microflow:

sql
mdl 1;
create microflow Ops.ACT_Work ($Note: String)   -- no `returns`
begin
  log info node 'Ops' 'working';
end;

A queued Java action must return Nothing. Anything else fails the build with CE7038 "A Java action used for background execution must have a return type of 'Nothing'." mxcli's default return type for create java action is Boolean, so returns void is required, not optional:

sql
mdl 1;
create java action Ops.RefreshData(Url: string not null) returns void
as $$ return; $$;

The queue must exist. A missing one is CE1613 "The selected task queue … no longer exists", reported against the call activity — it names the activity, not the script, so a typo is expensive to trace from the build log. mxcli check --references resolves the name first and reports it against the statement instead.

That CE1613 is also the proof the binding is real: drop the queue on a project mxcli wrote and the error appears, naming both the queue and the activity.

Show full SKILL.md (601 more words)Show less
A Rewrite Must Restate the Queue

create or modify microflow rebuilds the microflow from the statement, so a binding the script does not restate is gone. mxcli refuses rather than drop it:

Error: microflow Ops.ACT_Caller has 1 call(s) bound to a task queue that this
script does not restate (Ops.MyQueue), and rewriting it would silently drop the
binding.

Add in queue Ops.MyQueue to the call and the rewrite goes through. Without the refusal the binding was written back as null and the project then looked healthier than before — mx check stopped reporting CE1613, because the configuration the error was about had been deleted.

One thing is still refused: a retry policy on a queued call (Queues$QueueFixedRetry / Queues$QueueExponentialRetry). MDL has no syntax for it, so a rewrite cannot preserve it — change that microflow in Studio Pro.

When a Java Action Is the Better Tool

The activity property gives queueing and nothing else. The runtime API, reachable from a Java action, gives queueing and retry, and can queue a Java action directly with no wrapper microflow:

java
Core.userActionCall("Ops.RefreshData")
    .withParams(url)
    .withExponentialRetry(5, Duration.ofSeconds(2), Duration.ofMinutes(2))
    .executeInBackground(ctx, "Ops.OrderProcessing");

Use Core.microflowCall(...) when the unit of work really is a microflow.

Placing Them in Folders

Both take a folder clause on create, straight after the qualified name:

mdl
mdl 1;
create scheduled event Ops.SE_Nightly folder 'Private/Scheduled events'
  ( Microflow: Ops.ACT_Nightly, Repeat: Daily, StartDateTime: '2026-01-01T02:00:00Z' );

create task queue Ops.Q_Imports folder 'Private/Queues' ( Parallelism: 3 );

On create or modify the clause moves an existing document; omitting it leaves placement alone. See organize-project.

Validation Checklist

Before presenting a script:

bash
mxcli check script.mdl                       # catches wrong-repeat fields (MDL-SCHED01)
mxcli check script.mdl -p app.mpr --references
  • Every scheduled event has Microflow and Repeat
  • Only that repeat's fields are used
  • Enabled: true if it is meant to run
  • Enum values spelled exactly (Server, DelayNext, Last, Monday)
  • The target microflow exists and takes no parameters

Querying and Linting

Both document types are in the catalog after refresh catalog:

sql
-- Anything that fires more often than once a minute
select QualifiedName, RepeatDescription, Microflow
from CATALOG.SCHEDULED_EVENTS
where Enabled = 1 and IntervalSeconds < 60;

select QualifiedName, Parallelism, ClusterWide from CATALOG.QUEUES;

A scheduled event counts as a caller of the microflow it runs, so list callers of Ops.SE_Cleanup lists it and the lint rule for orphaned microflows (QUAL004) does not flag it. IntervalSeconds is derived from the schedule, not from the legacy Interval/IntervalType pair Mendix also stores.

Starlark lint rules can iterate both: scheduled_events() yields repeat, interval_seconds, on_overlap, time_zone, enabled, and microflow_name; queues() yields parallelism (a string) and cluster_wide.

  • mxcli syntax scheduled-event, mxcli syntax queue — full syntax reference
  • write-microflows — writing the microflow the event calls
  • project-settings — after-startup / before-shutdown microflows

Scheduled events — Mendix's cron (LIST/DESCRIBE/CREATE [OR MODIFY]/DROP). Repeat: names one of the eight ScheduledEvents$*Schedule variants and only that variant's fields are accepted; a field from another repeat is refused by mxcli check (MDL-SCHED01) and by exec, which call the same function. The document shape is pinned by re-serializing three whole Studio Pro-authored events (Workflow Commons 4.11.0, OIDC SSO 4.6.0, SAML 4.2.1) element by element — modelsdk/gen is wrong about two properties here

the integers are stored as int64 (gen says int32, the #585 mismatch) and StartDateTime is a BSON datetime (gen says string), so both engines share one raw-BSON codec in mdl/scheduledevents. Interval/IntervalType are legacy siblings of Schedule that Studio Pro writes and does not keep in sync — derived on CREATE, carried through untouched on MODIFY. Only the Day and Hour variants have a Studio Pro reference; the other six are metamodel-derived and verified to load. Both are in the catalog (CATALOG.SCHEDULED_EVENTS, CATALOG.QUEUES) and a scheduled event emits a schedule edge into CATALOG.REFS — without it a microflow run only by a scheduled event was reported as dead by list callers, GRAPH_DEAD_ASSETS and lint rule QUAL004.

Task queues (LIST/DESCRIBE/CREATE [OR MODIFY]/DROP TASK QUEUE). Config.ParallelismExpression is a string and the sibling int32 Parallelism is not written — matching all four Studio Pro queues in Business Events 3.12.1. Binding a call to a queue is not yet authorable, so CREATE OR REPLACE|MODIFY MICROFLOW is refused when the stored microflow has a queued call (guard-don't-drop, ADR-0005)

the rebuild used to write QueueSettings back as null, which made mx check go from CE1613 to 0 errors by deleting the user's configuration

© mendixlabs, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/mendix/scheduled-events-and-queues of mendixlabs/mxcli.

Open the folder on GitHubat commit 22d9ea6

Compare with similar skills

Scheduled Events And Queues next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Scheduled Events And Queues compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Scheduled Events And Queues this skillmendixlabs/mxcli129—~3.3kAutomated safety check: PassApache-2.0
Trigger.dev Background Taskspapermark/papermark9.2k—~2.1kAutomated safety check: PassCustom licence
Frappe App Devfrappe/skills147—~943Automated safety check: PassNone
Schkedbibendi/schked138—~454Automated safety check: PassMIT
Job Patternsdilolabs/nosia2131 repos~1.6kAutomated safety check: PassMIT
Sap Btp Job Schedulingsecondsky/sap-skills462—~3.6kAutomated safety check: PassGPL-3.0

Similar skills

  • Trigger.dev Background Tasks

    papermark/papermark

    Guides building durable background tasks, scheduled jobs and queues with Trigger.dev, including retries, waits, idempotency and concurrency limits.

    9.2k GitHub stars~2.1k tokensUpdated 1 mo ago
    Backend & APIsAuto-check passed
  • Frappe App Dev

    frappe/skills

    Builds full-stack Frappe Framework applications end-to-end. An agent skill from frappe/skills.

    147 GitHub stars~943 tokensUpdated yesterday
    Backend & APIsAuto-check passed
  • Schked

    bibendi/schked

    Guide for working with Schked, a Ruby recurring-job scheduler built on top of rufus-scheduler.

    138 GitHub stars~454 tokensUpdated 1 mo ago
    Backend & APIsAuto-check passed
  • Job Patterns

    dilolabs/nosia

    Implements shallow background jobs with later/now conventions using Solid Queue.

    213 GitHub starsUsed in 1 repo~1.6k tokens
    Backend & APIsAuto-check passed
  • Sap Btp Job Scheduling

    secondsky/sap-skills

    This skill provides comprehensive guidance for SAP BTP Job Scheduling Service development, configuration, and operations.

    462 GitHub stars~3.6k tokensUpdated 5 days ago
    Backend & APIsAuto-check passed
  • Frappe Syntax Scheduler

    Impertio-Studio/Frappe_Claude_Skill_Package

    A skill your agent uses when configuring scheduler events and background jobs in Frappe/ERPNext v14/v15/v16.

    189 GitHub stars~2.7k tokensUpdated 23 days ago
    Backend & APIsAuto-check passed

More from mendixlabs/mxcli

All 72 skills in this repo
  • Mendix Odata Pushdown

    mendixlabs/mxcli

    Push OData query options into the SQL of a Mendix resource served by a read microflow, so $filter, $orderby, $top, $skip, $count and the key lookup reach the database instead of being silently…

    129 GitHub stars~2.5k tokensUpdated today
    Auto-check passed
  • Mendix Vega Charts

    mendixlabs/mxcli

    Chart a Mendix app with Vega-Lite through a pluggable widget that takes the specification and the data as separate properties, so the model emits rows and never assembles a chart payload.

    129 GitHub stars~3k tokensUpdated today
    Auto-check passed
  • Mendix Bulk Oql Dml

    mendixlabs/mxcli

    Run set-based INSERT, UPDATE and DELETE against Mendix entities through OQL statements, which the runtime supports and Studio Pro cannot author.

    129 GitHub stars~1.4k tokensUpdated today
    Auto-check passed
  • Agents

    mendixlabs/mxcli

    Author Mendix AI agent documents in MDL — Model, Knowledge Base, Consumed MCP Service and Agent, with variables, tools and multi-line prompts.

    129 GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Analyze Runtime

    mendixlabs/mxcli

    Find out what a running Mendix app actually does — logs, Prometheus metrics, OpenTelemetry traces and the model catalog, joined across sources.

    129 GitHub stars~2.8k tokensUpdated today
    Auto-check passed
  • Assess Migration

    mendixlabs/mxcli

    Investigate an existing non-Mendix application (Java, .NET, Python, Node, PHP, …) and produce a structured migration assessment for Mendix.

    129 GitHub stars~3.6k tokensUpdated today
    Auto-check: notes

Questions about Scheduled Events And Queues

What does Scheduled Events And Queues do?

Scheduled events (Mendix's cron) and task queues in MDL — the eight repeat variants and the fields each takes, and what a queue does and does not throttle. Scheduled Events And Queues is an agent skill from mendixlabs/mxcli. Scheduled events (Mendix's cron) and task queues in MDL — the eight repeat variants and the fields each takes, and what a queue does and does not throttle.

When should I use Scheduled Events And Queues?

Scheduled Events And Queues fits situations like: running a microflow on a schedule; bounding how many background tasks run at once.

How do I install Scheduled Events And Queues in Claude Code?

Run `npx skills add mendixlabs/mxcli --skill scheduled-events-and-queues -a claude-code`. Or copy the skill folder (.claude/skills/mendix/scheduled-events-and-queues in mendixlabs/mxcli) into .claude/skills/scheduled-events-and-queues in your project. Claude Code loads it when a task matches its description.

How do I install Scheduled Events And Queues in Codex?

Run `npx skills add mendixlabs/mxcli --skill scheduled-events-and-queues -a codex`. Or copy the skill folder (.claude/skills/mendix/scheduled-events-and-queues in mendixlabs/mxcli) into .agents/skills/scheduled-events-and-queues in your project. Codex loads it when a task matches its description.

Can I use Scheduled Events And Queues in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add mendixlabs/mxcli --skill scheduled-events-and-queues -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/scheduled-events-and-queues, .gemini/skills/scheduled-events-and-queues, .github/skills/scheduled-events-and-queues and .opencode/skills/scheduled-events-and-queues in your project.

What does Scheduled Events And Queues need to run?

SKILL.md names no scripts, command-line tools or credentials: Scheduled Events And Queues is instructions for the agent only.

Does Scheduled Events And Queues access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Scheduled Events And Queues safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Scheduled Events And Queues use?

Scheduled Events And Queues is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Scheduled Events And Queues use?

About 3.3k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Scheduled Events And Queues?

Skills that share tags, products or a category with Scheduled Events And Queues: Trigger.dev Background Tasks (papermark/papermark, 9.2k stars), Frappe App Dev (frappe/skills, 147 stars), Schked (bibendi/schked, 138 stars) and Job Patterns (dilolabs/nosia, 213 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Scheduled Events And Queues?

mendixlabs (a GitHub organization) maintains it in mendixlabs/mxcli, which has 129 GitHub stars. The repository holds 72 skills in this directory. The repository was last updated on October 10, 2026.

Source: mendixlabs/mxcli on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.