# Schedule/Program execution once at a specific date-time

**URL:** https://community.jenkins.io/t/schedule-program-execution-once-at-a-specific-date-time/35447
**Category:** Ask a question
**Tags:** question, jenkinsfile
**Created:** [August 20, 2025, 8:47pm UTC](https://community.jenkins.io/t/schedule-program-execution-once-at-a-specific-date-time/35447 "2025-08-20T20:47:42Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![hwk000](https://avatars.discourse-cdn.com/v4/letter/h/4bbf92/32.png) [@hwk000](https://community.jenkins.io/u/hwk000)
#### Post date: [August 20, 2025, 8:47pm UTC](https://community.jenkins.io/t/schedule-program-execution-once-at-a-specific-date-time/35447/1 "2025-08-20T20:47:42Z")

</div>

Hey! I’m trying to offer my users an easy-to-use way of executing a Jenkins Pipeline at a specific date/time of their choosing.  
Ideally, they would trigger a pipeline, input certain parameters including a date-time, and then automagically the pipeline would run at that time (days or even weeks after they set it)

For this, I though of creating a “wrapper” pipeline that schedules a second one, but I’m not finding a way to configure that schedule.

Using the “build periodically” option with a cron expression for a single day sounds like the obvious choice but the name of the feature itself hints at the first issue: I need a one-time execution, not a recurring one. It’s also not user friendly and users would need to go into the pipeline configuration to set it (I don’t think I could change it programmatically via jenkinsfiles?)

The [Parameterized Scheduler Plugin](https://plugins.jenkins.io/parameterized-scheduler) suffers from pretty much the same issues.

I would obviously like to avoid weird hacky solutions like using Linux/Windows crontab/scheduler or a third pipeline that runs every minute looking at other pipelines to build…

is there really no built-in way to execute a pipeline at a specific date and time in the future?

---

<div class="post-metadata">

### Author: ![mawinter69](https://dub1.discourse-cdn.com/flex013/user_avatar/community.jenkins.io/mawinter69/32/1625_2.png) [@mawinter69](https://community.jenkins.io/u/mawinter69)
#### Post date: [August 20, 2025, 9:15pm UTC](https://community.jenkins.io/t/schedule-program-execution-once-at-a-specific-date-time/35447/2 "2025-08-20T21:15:36Z")

</div>

[Schedule Build](https://plugins.jenkins.io/schedule-build/) would do the job. Though it has some limitations.  
It basically adds the job to the queue with a correspondingly long delay.  
If someone triggers the job with identical parameters, then it will start immediately and the queued entry disappears.  
Also if the job has no parameters, as soon as something else triggers the job the queued one is gone.

---

<div class="post-metadata">

### Author: ![mawinter69](https://dub1.discourse-cdn.com/flex013/user_avatar/community.jenkins.io/mawinter69/32/1625_2.png) [@mawinter69](https://community.jenkins.io/u/mawinter69)
#### Post date: [August 20, 2025, 9:51pm UTC](https://community.jenkins.io/t/schedule-program-execution-once-at-a-specific-date-time/35447/3 "2025-08-20T21:51:35Z")

</div>

The problem with the queue could be resolve by adding a otherwise not used parameters that you can give a random value.  
Another thing to consider is that when you schedule a build far in the future there is no guarantee that the parameters are still valid when the job starts.

---

<div class="post-metadata">

### Author: ![Artalus](https://dub1.discourse-cdn.com/flex013/user_avatar/community.jenkins.io/artalus/32/11413_2.png) [@Artalus](https://community.jenkins.io/u/Artalus)
#### Post date: [August 28, 2025, 9:10am UTC](https://community.jenkins.io/t/schedule-program-execution-once-at-a-specific-date-time/35447/4 "2025-08-28T09:10:11Z")

</div>

> [@hwk000](#):
>
> is there really no built-in way to execute a pipeline at a specific date and time in the future?

The only “built-in” way without installing additional plugins would be to have wrapper sleep and then trigger the target job:

```auto
int hours_to_wait = ...
sleep(unit: 'HOURS', time: hours_to_wait)
build(job: 'target-job', ...)

```

You can provide the datetime through job parameters, and then do some time manipulation through Java/Groovy internals.
