Job scheduling

Running something later, or on a cadence, without keeping a process alive to do it — a nightly job, a retry in an hour, a report on the first of the month — and knowing afterwards whether it ran.

Overview

SAP SHIPS
Node.js →

@sap/cds Schedules a service's events as tasks with srv.schedule(): once, after a delay, or repeatedly on an interval or a cron expression, persisted in the event queue and cancelled with srv.unschedule().

Not covered: Tasks run in the application's own processes from its own database, so a stopped application runs none; the SAP Job Scheduling service is the one that calls in from outside. .every() counts from the end of the last successful run, not from a fixed clock.

THE COMMUNITY ADDS

@cap-js-community/event-queue declares periodic events in its own YAML configuration and spreads them across application instances over Redis.

Artifacts3

3 of 3 artifacts
ArtifactSignals
CDS plugins1
@cap-js-community/event-queueTransactional processing of asynchronous and periodic CAP events
Signals
Functional boundary
Packages1
@sap/cdsCAP Node.js runtime
Signals
none
Services1
SAP Job Scheduling serviceCalls an application endpoint on a schedule and logs each run
Signals
none

Content3

Group by
Piece, what it offers
SAP Job Scheduling Service: 🔧 Generate Your Own Client Library from OpenAPI Spec
SAP Community, DenisDuev, Blog
SAP Job Scheduling Service: Set Job Run Status with the REST API and Node.js
SAP Community, DenisDuev, Blog
SAP BTP Cloud foundry Job Scheduling for CAP based project
SAP Community, sunojmichael1, Blog
SAP Job Scheduling Service: 🔧 Generate Your Own Client Library from OpenAPI Spec
SAP Community, DenisDuev, Blog
SAP Job Scheduling Service: Set Job Run Status with the REST API and Node.js
SAP Community, DenisDuev, Blog

Details

What changed — and what it makes stale2
CAP Java 5.0.0, CAP, Java

CAP Java gained the scheduling API in the June 2026 release, which also brought @sap/cds 10: Schedule.create() with .after(), .every() and .cron(), and named tasks that can be cancelled. In both runtimes a named task runs once when the application is scaled horizontally.

Makes stale:

Advice that CAP Java has no scheduling of its own.

@sap/cds 9.9.0, CAP, Node.js

Before this, the Node.js scheduling API that arrived as alpha in the May 2025 release offered .after() and .every() with a delay or an interval. 9.9.0 added cron expressions to .every(), and srv.schedule.task() and srv.unschedule.task() to create and remove singleton tasks.

Makes stale:

Advice that CAP's own scheduling takes intervals only, and that a cron cadence needs a plugin or an external scheduler.

Coverage
statecore and community, CAP
assessed
relationshipunassessed
also inBTP/BAIP, ABAP
For your agent
Ref
capability:job-scheduling
JSON
/capabilities/job-scheduling.json
MCP
Connecting an agent