---
title: "How do I create a schedule to automate job runs?"
slug: "how-do-i-create-a-schedule-to-automate-job-runs"
updated: 2024-09-26T13:15:31Z
published: 2024-09-26T13:15:31Z
canonical: "support.lusid.com/how-do-i-create-a-schedule-to-automate-job-runs"
---

> ## Documentation Index
> Fetch the complete documentation index at: https://support.lusid.com/llms.txt
> Use this file to discover all available pages before exploring further.

# How do I create a schedule to automate job runs?

You can create a *schedule* to trigger an [existing job](/v1/docs/how-do-i-create-a-job) to run at chosen times. For example, you could automate a job that securely upserts transactions into LUSID from a CSV file so that it runs automatically at market close on business days.

> **Note:** This article shows you how to create a schedule on behalf of a single user, granted they have sufficient privileges. If the user account is deleted, any schedules created on the user's behalf will be affected. We recommend creating schedules on behalf of a service user using the [CreateSchedule](https://www.lusid.com/docs/api/scheduler/endpoints/schedules/CreateSchedule/) API, or updating your existing schedules using the [UpdateSchedule](https://www.lusid.com/docs/api/scheduler/endpoints/schedules/UpdateSchedule/) API. [Read more on setting up a schedule on behalf of a service user.](/v1/docs/setting-up-a-schedule-subscription-or-other-activity-on-behalf-of-a-service-user)

To create a schedule so that a job runs automatically:

1. In the [LUSID web app](https://www.lusid.com/app), navigate to the **Schedules** dashboard and click the **Create schedule** button (top right). ![](https://cdn.document360.io/d575ad81-c0ed-4980-bbd1-d59ac5c3de82/Images/Documentation/087c9ef0-2c81-4976-9f8c-e49a1a650279.png)
2. On the **Specify job** screen, choose the **Job** to automate from the dropdown list, and a **Scope** and **Code** that together uniquely identify the schedule (note, a schedule is separate to the job itself and requires its own scope and code): ![](https://cdn.document360.io/d575ad81-c0ed-4980-bbd1-d59ac5c3de82/Images/Documentation/e69c7d4e-b3f7-4163-a18f-f9b702f0f0e2.png)
3. On the **Arguments** screen, confirm the default values for any command line arguments and environment variables passed in to the job, or provide values to override the defaults. ![](https://cdn.document360.io/d575ad81-c0ed-4980-bbd1-d59ac5c3de82/Images/Documentation/bfe11a27-bfd8-4628-9087-dec341aebccd.png)
4. On the **Triggers** screen, select `Time based` as **Trigger type** and configure the trigger as either:
  - `Daily` to trigger the schedule at a particular hour daily, or on particular days of the week.
  - `Hourly` to trigger the schedule hourly at a particular minute, this can be daily or only on particular days of the week.
  - A `Cron` expression adhering to [this standard](https://www.quartz-scheduler.net/documentation/quartz-3.x/tutorial/crontrigger.html#introduction).

Note you can create multiple schedules from one job, for example you could create a second schedule and configure the arguments to upsert transactions to a different transaction portfolio.
