Programmatically Job Scheduling

Hi everyone,

I have to implement a process in which the bot first sends an email and then, after some days, has to send a reminder. The email has some information that I wouldn’t want to get again in the reminder, so I was thinking about schedule the reminder job, with the information as arguments.

I’ve seen that I can schedule a job easily in Orchestrator, but I cannot find if that’s possible programmatically. Does someone know if there’s an activity in Studio to do that, or something?

Thanks in advance.

Hi @fjrueda,

You can use start job activity to start the reminder job in UiPath studio.

Hi @sangeethaneelavannan1,

Thanks for your response, but I don’t see any argument in the activity to specify the date the job has to be run. How can I schedule the job to be run n days in the future? Let’s say, for example, that today the first process is run, sending the email; let’s say that the reminder, then, has to be sent on Monday, November 14th. How can I, using that activity, schedule the reminder?


Hi @fjrueda ,

Have you considering using the orchestrator API? You can access swagger ui to see the api reference for your specific scenario, you will need to reach these endpoints

Here’s the url format

  • Jobs: to start a job
  • Releases: to identify the process you want to run
  • Schedules: to customize scheduled triggers

Actually, yes, but I was hoping there was an easier way to do it, like an activity or something like that. Sadly, it seems there’s no an easy path for it.

After some investigation in the API, as suggested by @Edwin_Barahona, I saw that when the API says schedules, it really means triggers, which I could do manually if the running date would be the same every month. As it has to be dynamic, I cannot use that solution.

Also, the API call which runs a job is like the activity pointed by @sangeethaneelavannan1: doesn’t allow setting the expected execution date (or I’ve not seen how).

I don’t know if there’s a better solution, but I’m for now going to work on a combination of putting the date in an asset/queue, plus a trigger running daily. The process then will check for that asset/queue and decide if sends the reminder or not.

If in a couple of days someone comes with a better solution, I’ll adopt that, but in the meanwhile I think it’s the way to go.

Thanks, @Edwin_Barahona and @sangeethaneelavannan1, for your suggestions.


Assuming your use case is to schedule a job at a given day and hour, you will still need to create the trigger as it is what orchestrator will use to trigger the process.

So, what you need to do in your api call is update such trigger to be launched exactly when you need, to accomplish that you need to send a cron expression rather than the default values.

An example of a use case I have:

I created a regular trigger in orchestrator and left it disabled

Then my code calls the schedules api to enable it when I need it to run using a cron expression, essentially, I take an input parameter of when do I want to schedule the job (3 hours, 5 minutes, etc…) then do my endpoint calls

Define the schedule time/date


Build the payload

// I have this payload template, feel free to use it/modify it at your convenience
  "Enabled": true,
  "Name": "SCHEDULE_NAME",
  "ReleaseId": RELEASEID,
  "ReleaseKey": "RELEASE_KEY",
  "ReleaseName": "RELEASE_NAME",
  "PackageName": "PACKAGE_NAME",
  "EnvironmentName": "ENVIRONMENT_NAME",
  "StartStrategy": 1,
  "ExecutorRobots": [],
  "EnvironmentId": "ENVIRONMENT_ID",
  "TimeZoneId": "Eastern Standard Time",
  "StopProcessDate": "STOP_PROCESS_DATE",
  "StartProcessCronSummary": "Every 30 minutes",
  "StartProcessCron": "CRON_EXPRESSION",
  "StartProcessCronDetails": "{\"type\":0,\"minutely\":{\"atMinute\":30},\"hourly\":{},\"daily\":{},\"weekly\":{\"weekdays\":[]},\"monthly\":{\"weekdays\":[]},\"advancedCronExpression\":\"\"}",

Call the endpoints

//Get the schedule Id based on the schedule name
"/odata/ProcessSchedules?%24filter=Name%20eq%20'" + in_ScheduleName+"'"

//Enable the schedule

"/odata/ProcessSchedules(" + ScheduleDetails("ScheduleId") +")"

There are a few validation steps in between, but in rough theory that’s how you customize a schedule with API calls. Hope this helps

Forgot to mention, I’m no expert in cron expressions. I used an expression generator to build the format I needed

Here are a few

Cron expression generator by Cronhub
Cron Expression Generator | Programmer Online Tools (

Not exactly what I expected, but I guess it’s the closest I’ll get to what I wanted. Thanks.

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.