Scheduling
Open Settings → Automation to create, edit, pause, resume, or run scheduled work now. In chat, use CronAdd to create a recurring job, ScheduleWakeup for a one-time follow-up, and CronList or CronRemove to manage jobs.
Scheduled work runs with the permissions of its owner. Keep prompts and checks within that scope. A shell check that runs on the host needs an admin-owned or instance job; a check inside a managed project runs in that project instead.
Choose personal or instance scope
CronAdd requires an explicit scope:
| Scope | Who can create it | Permissions and results |
|---|---|---|
personal |
A linked Elowen account with access to the cronjob plugin | Runs with that account's permissions. Results normally appear in a separate conversation named after the job. A job created in a direct 1:1 platform chat can return results to that chat. |
instance |
Only the instance owner | Runs with instance-owner permissions and normally sends results to the notification channel. |
An administrator is not automatically the instance owner. Use personal for a job that belongs to you. Personal jobs normally report in a separate conversation named after the job; a recurring job created in a direct platform chat can report back there. A shared-room job does not send its results back into the room. A destination channel, a five-field cron expression and a host shell check need administrator authority: CronAdd offers them on a personal job only to the instance owner, an administrator can set them on their own job in Settings → Automation, and a shell check on a personal job runs only while its owner is an administrator, which is checked before each run. A managed-project check runs inside that project, and managed-project schedules must be personal. Other accounts' personal jobs are private; administrators can see instance jobs and their own personal jobs.
Create a recurring job
Use CronAdd with a name, schedule, prompt, and conversationSessionId from CronConversations. The conversation id files the job in the conversation list; it does not choose the job's permissions, context, or delivery destination. The web page handles filing for you.
New jobs wait for their next scheduled time instead of running as soon as you save them. Set enabled: false to create one paused. In Settings → Automation, you can also pause or resume an existing job without deleting it.
Choose an interval, daily or weekly time, or five-field cron expression:
every 15m
daily 07:30
weekly sun 20:00
0 9 * * 1-5
Intervals use minutes or hours. Each personal account can keep up to 20 jobs by default, and this limit also applies to the instance owner. Every account other than the instance owner has a configurable minimum interval of 15 minutes by default. CronAdd takes instance scope only from the instance owner; in Settings → Automation an administrator can set a job's Owner to Everyone, which makes it an instance job. Five-field cron expressions, host shell checks, and destination channels need administrator authority, so CronAdd offers them on a new personal job to the instance owner alone. Ordinary personal jobs use interval, daily, or weekly schedules. A five-field expression uses minute, hour, day of month, month, and day of week, as in 0 9 * * 1-5 for weekdays at 09:00. The operator can change the per-account limits in cronjob settings.
Examples
For a personal daily summary, choose an eligible conversation with CronConversations and pass its id:
CronAdd({
name: "morning-summary",
scope: "personal",
schedule: "daily 07:30",
conversationSessionId: "<conversation-id>",
prompt: "Summarize yesterday's completed work and today's calendar."
})
For one check after a deployment:
ScheduleWakeup({
name: "verify-deploy",
when: "in 5m",
prompt: "Check whether the deployment finished successfully and report the outcome."
})
Set a time zone and understand missed runs
Daily, weekly, five-field cron schedules, active-hours windows, and at HH:MM wake-ups use the assistant's configured time zone. Set Timezone in Settings → Plugins → runtime-context using an IANA name such as Europe/Prague. The setting applies to the whole instance and to the date and time Elowen sees. If it is empty, the server's time zone is used. Intervals such as every 15m are durations and do not depend on a time zone.
After downtime, a daily or weekly job still runs late on the day it is due, as long as the service is running again that day. A weekly job does not run for a weekday that was missed entirely. A five-field cron job catches up only its latest missed occurrence within the configured window, 24 hours by default; the window can be set from one hour to seven days. An interval does not replay a backlog; it runs once when due. If daylight saving repeats a clock time, a matching cron slot runs once. A time skipped by the spring change does not run.
Limit a job or choose where results go
Optional fields for recurring jobs:
hours: allow runs in a whole-hour window, such as5-21. Overnight windows such as22-5work.model: choose a model asprovider/model; otherwise the server default is used.plain: true: omit the job-name header from the result.notifyChannelId: send results to a channel or thread. Only the instance owner can set it on a new personal job. An explicit destination takes precedence over normal delivery.
A run that shares images delivers them with its result. If the run has no other output, only the images are sent.
The schedule builder offers interval, daily, weekly, and advanced cron modes. Times are shown in the configured scheduler time zone.
Run a check before the prompt
A recurring job can include a check command. Elowen runs it before the prompt. If it fails or prints nothing, the job is skipped without a model turn. If it prints output, that output is included with the prompt.
check: "new-emails --since-last-run"
A host shell check requires an instance job or a sufficiently privileged personal owner. The default time limit is 60 seconds and is configurable. Checks run with their job's execution permissions, so use only commands you trust and keep the output short.
Schedule a one-time wake-up
Use a wake-up when you want Elowen to check something once. Examples include in 30s, in 20m, in 2h, or at 18:30. Delays in seconds must be at least five seconds; delays in minutes or hours must be at least one minute. A requested wall-clock time uses the configured time zone; a time up to five minutes in the past fires shortly after, while an earlier time means the next occurrence.
A wake-up deletes itself when it fires, and a failed wake-up turn is not retried the way a recurring job is. A wake-up created in your own Elowen conversation or a direct 1:1 platform chat resumes that conversation and returns its result there. A wake-up created in a shared room does not post its result back to the room; it uses the normal notification delivery. Don't use repeated wake-ups to poll a background command or delegated task; those report when they finish.
Find, pause, or remove a job
CronList shows jobs you can access, their last run, and their result. Pending one-time wake-ups appear there until they fire. Use an id from CronList with CronRemove to delete a job permanently. Pause a recurring job in Settings → Automation if you may want it again. The same page can queue an immediate run of a recurring job (Run now) and shows past runs in its History tab. Its Calendar tab shows upcoming runs in a week view with day cards.
If a run fails or its result cannot be delivered, the job's owner receives an alert, and the details are in the History tab.