Scheduling a release
This page is for producers who want an episode to go out at a set time without anyone pressing a button. Exponential
does it with the Wait until date workflow event (kernel/classes/workflowtypes/event/ezwaituntildate/ezwaituntildatetype.php).
It is not active out of the box: an administrator sets it up once.
Contents
How it works
- The episode class has a date field, for example Release date (
ezdatetime). - A workflow with the Wait until date event runs before publishing.
- When an editor sends the episode for publishing and the date is in the future, the event records "Event delayed until" the date and the version waits.
- The workflow cronjob (
workflow.php, cronjob partfrequent) checks waiting versions and publishes the episode at its first run after the date. - If the event's option to change the published date is on, the item's published date is set to the release date. That date orders the feed.
If the date field is empty or already past, the episode is published at once.
One-time setup
For the administrator, following the ezwaituntildate example:
- Add the date field to the episode class (Building an episode class).
- Setup > Workflows: create a workflow and add the event Wait until date. In its settings, choose the episode class and its date field, and decide on the option that sets the published date.
- Setup > Triggers: connect the workflow to
content / publish / before. - Make sure the
frequentcronjob part runsworkflow.php, and know how often it runs (Cronjobs).
The full picture of scheduled content, including hiding and removing at a date, is on Scheduled publishing.
Scheduling an episode
- Prepare the episode completely: audio, show notes, guests (Publishing an episode).
- Fill in Release date with the date and time of release.
- Press Send for publishing. The version is now pending: it is in My pending items, not on the site.
Do not leave a scheduled episode as a draft: a draft is never published by the cronjob.
When it really appears
| Step | Delay |
|---|---|
| The release time passes | - |
The next run of the frequent cronjob part | up to its interval, as set in the server's crontab |
| The episode is published on the site | at that run |
| The podcast feed lists it | when the feed cache runs out: up to CacheTime, 1200 seconds as shipped |
| Apps show it | on each app's own schedule |
So "release at 6:00" means "on the site at the first cron run after 6:00, in the feed up to 20 minutes later". For a release that must be exact to the minute, schedule a few minutes early or have someone check.
The time you enter is read by the site in its configured time zone; agree in the team which zone is meant.
Changing or cancelling
- Move the date: while the version waits, the waiting process is listed under Setup > Workflow processes. Ask your administrator how changes to waiting versions are handled on your site; the safe way is to cancel the waiting process and send a version with the new date.
- Cancel: an administrator can cancel the waiting workflow process on that page, after a confirmation; the episode stays unpublished (Workflows).
Checks
- To do: The day before: the episode is in My pending items, and Setup > Workflow processes lists it as waiting.
- To do: After the release time and the next cron run: the episode page opens signed out.
- To do: Within the feed's cache time: the feed lists the episode at the top.
- To do: The published date is the release date, if the option is on.
If nothing happens on the day, the cronjob most likely did not run (Troubleshooting feeds and media).
Related pages
- Scheduled publishing
- Workflows
- A release calendar
- Free documentation: this page is free to copy, translate and improve under the GNU FDL 1.3.
Become an Exponential Partner
Partners share their information, provide funding, contribute back and develop the products with us, and that is how Exponential grows. A partner website and dashboard are planned for mid-2027: please become a partner today to speed up our growth rate and land new features faster.