Basic Tutorials
Create a task using REST Endpoints
Note
Please make sure a RMF2 Scheduler Server is running. For more, checkout Quick Start.
Let’s create a Task in the scheduler using the POST /schedule/edit API
and the TASK_ADD ScheduleAction.
This tutorial requires some utility command line tools. Run the following command to install them.
sudo apt install coreutils curl uuid-runtime jq
Step 1 - Dry run
Let’s do a dry-run of the REST API query. This checks if the query is valid. No changes are made to the schedule stored.
Run the following cURL command.
curl --location 'localhost:8000/schedule/edit' \
--header 'Content-Type: application/json' \
--data-raw '{
"type": "TASK_ADD",
"task": {
"id": "'$(uuidgen)'",
"start_time": "'$(date -u -Iseconds)'",
"type": "rmf2/dummy"
}
}'
You should receive a successful response as follows.
{"message":"Dry run successfully."}
Step 2 - add task
Let’s run the command with dry-run disabled.
This command changes the schedule stored.
Simply append query parameter dry_run=false to the URL.
localhost:8000/schedule/edit?dry_run=false
The full cURL command is as follows.
curl --location 'localhost:8000/schedule/edit?dry_run=false' \
--header 'Content-Type: application/json' \
--data-raw '{
"type": "TASK_ADD",
"task": {
"id": "'$(uuidgen)'",
"start_time": "'$(date -u -Iseconds)'",
"type": "rmf2/dummy"
}
}'
Upon success, you should receive the following response.
{"message":"Schedule updated successfully!"}
Step 3 - Verification
Let’s verify the task we have created.
To retrieve the task we have created,
you can use the GET /schedule/ API.
Simply run the following cURL command.
curl -sS localhost:8000/schedule/ | jq .
You should receive a response similar to the following.
{
"tasks": [
{
"type": "rmf2/dummy",
"start_time": "2025-04-21T10:28:10Z",
"id": "d37b295a-6fbc-431c-a87d-ece7607c9f89",
"status": ""
}
],
"processes": []
}
Note
RMF2 scheduler interprets and stores time in UTC timezone by default. The Time output follows the ISO8601 format.