> For the complete documentation index, see [llms.txt](https://help.agencydesk.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.agencydesk.io/company-settings/recurring-jobs.md).

# Recurring Jobs

Automate Recurring Jobs for retainers, weekly reporting cycles, and annual renewals. Set flexible recurrence patterns tailored to agency workflows.

**Recurring Jobs** are how Agencydesk automates the work that happens on a schedule. Because Agencydesk is built exclusively for agencies, the recurrence patterns are shaped around real agency workflows: monthly and bi-monthly retainers, weekly campaign reporting, and annual renewals like plugin licences, domain renewals, and contract refreshes.

Each Recurring Job pulls its structure from a Job Template, so the same Job Costing, Tasks, and Costs are created automatically each cycle. This keeps delivery consistent across the team as retainer volume grows and removes the manual admin of setting up the same Job over and over.

## Common use cases

* **Monthly and bi-monthly retainers.** SEO retainers, content retainers, PR retainers, hosting and maintenance retainers.
* **Weekly cycles.** Campaign reporting for active clients, weekly performance summaries, weekly production planning.
* **Quarterly work.** Quarterly business reviews, quarterly strategy sessions, quarterly financial reporting.
* **Annual renewals.** Plugin licences, domain renewals, hosting contract renewals, and annual retainer refreshes.

## Before you start

A Recurring Job needs a Job Template to work from. If you don’t have one yet, create the Template first so the Recurring Job has a Job Costing, Tasks, and Costs to replicate each cycle.

## Setting up a Recurring Job

{% stepper %}
{% step %}
Navigate to **Company Settings > Recurring** and click **+ New Recurring**.
{% endstep %}

{% step %}
Give the recurrence a clear **Recurrence Name** so it’s easy to identify later in the list (for example, “Williams Monthly SEO Retainer”).
{% endstep %}

{% step %}
Set the **Job Naming** pattern. This is the name each generated Job will use.

{% hint style="info" %}
Use dynamic naming variables so each Job is automatically named for its cycle:

* `{client}` inserts the Client name
* `{month}` inserts the current month
* `{month+1}` inserts next month (useful for retainers named ahead)
* `{month+2}`, `{month+3}` and so on for longer offsets
* `{year}` inserts the current year

Examples:

* `{client} {month+1} Retainer`
* `ANC {year} Hosting`
* `{month} Content Calendar`
  {% endhint %}
  {% endstep %}

{% step %}
Choose the **Job Template** to use. The Template defines the Job Costing, Tasks, and Costs for each generated Job.
{% endstep %}

{% step %}
Select the **Client** for the Recurring Job. Task rates are automatically applied based on the Client’s assigned Billing Tier.
{% endstep %}

{% step %}
Configure the **recurrence pattern** using **Repeat Every** and the corresponding day or date field (see [Recurrence patterns](#recurrence-patterns) below for the options available).
{% endstep %}

{% step %}
Choose when the recurrence should **End** (see [Ending a Recurring Job](#ending-a-recurring-job) below).
{% endstep %}

{% step %}
Toggle any additional options: **Notify Account Executive** and **Activate Tasks** (see [Additional options](#additional-options) below).
{% endstep %}

{% step %}
Click **Save** to finalise the Recurring Job.
{% endstep %}
{% endstepper %}

## Recurrence patterns

Agencydesk supports Weekly, Monthly, and Yearly recurrence patterns, each with the granularity most agencies need.

### Weekly

Set **Repeat Every** to `1 Week(s)`, or `2`, `3`, and so on for bi-weekly and less-frequent cycles. Then pick the day of the week under **On Day**.

Best for weekly campaign reporting, weekly performance summaries, and any deliverable that lands on the same day each week.

### Monthly

Set **Repeat Every** to `1 Month(s)` for monthly, `2 Month(s)` for bi-monthly, `3 Month(s)` for quarterly, and so on.

For **On Day**, either:

* Choose a specific day of the month (any date from 1 to 31), **or**
* Tick **Last day of month** to always run on the final day of the month.

Best for monthly retainers, bi-monthly reporting cycles, and quarterly reviews.

{% hint style="info" %}
The **Last day of month** option is particularly useful for month-end billing patterns where cycles need to align with the actual last day of the month, whether that’s the 28th, 29th, 30th, or 31st. Agencydesk handles the calendar variation automatically.
{% endhint %}

### Yearly

Set **Repeat Every** to `1 Year(s)`, or `2`, `3`, and so on for less-frequent cycles. Then pick a **Starting** date using the date picker. Each future occurrence runs on the same day and month as the starting date.

Best for annual renewals: plugin licences, domain renewals, hosting contract renewals, and annual retainer refreshes.

## Ending a Recurring Job

Under **Ends**, choose one of three options:

* **Never** (default). The Recurring Job runs indefinitely, generating a new Job at each cycle until the recurrence is deactivated. Good for open-ended retainers.
* **On \[date]**. The Recurring Job stops generating new Jobs on the specified date. Good for fixed-term contracts with a clear end date.
* **After \[X] Occurrences**. The Recurring Job stops after a set number of Jobs have been generated. Good for contracts with a defined length, for example a 12-month retainer that should produce exactly 12 Jobs.

## Additional options

### Notify Account Executive

When enabled, the Account Executive assigned to the Client is notified each time a new Job is generated by the recurrence. Useful for retainer work where AEs need to plan capacity based on incoming Jobs.

### Activate Tasks

When enabled, Tasks in each generated Job are set to Active immediately, so work can begin without additional review. When left off, the Tasks are created in Draft status, giving the AE a chance to review and activate them manually before the team starts.

Use **Activate Tasks** for high-trust recurring work like standing retainers. Leave it off for recurrences where the scope may need adjusting each cycle.

## Managing Recurring Jobs

All active and inactive Recurring Jobs are listed under **Company Settings > Recurring**. From the list you can:

* See the **Recurrence Name**, **Job Naming pattern**, **Job Template**, **next scheduled run**, **frequency**, **end condition**, and **active status** for each recurrence.
* Toggle a recurrence **Active / Inactive** using the switch in the **Active** column. Deactivating pauses future Job generation without removing the recurrence itself, so you can pick it up again later.
* Click a **Recurrence Name** to open the detail view where all settings can be edited.

{% hint style="info" %}
The **Until** column shows either the fixed end date, `Ongoing (X/∞)` for recurrences with no end, or `Ongoing (X/Y)` for recurrences ending after a set number of occurrences, where X is the count already generated and Y is the total planned.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://help.agencydesk.io/company-settings/recurring-jobs.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
