---
title: Customize monitor evaluation frequencies
description: >-
  Configure custom monitor schedules with daily, weekly, or monthly intervals
  for critical jobs using RRULE patterns for advanced scheduling.
breadcrumbs: Docs > Monitors > Monitor Guides > Customize monitor evaluation frequencies
---

# Customize monitor evaluation frequencies

## Overview{% #overview %}

Set a specific evaluation time and control the evaluation frequency for monitors to track the execution of critical jobs running in your environment. Monitor Custom Schedules enable you to alert on systems and processes that do not need to be continuously monitored, such as cron jobs.

Monitor Custom Schedules are supported on events, logs, and metrics monitors with daily, weekly, and monthly scheduling intervals.

## Configuration{% #configuration %}

{% image
   source="https://docs.dd-static.net/images/monitors/guide/custom_schedules/add_custom_schedule.729a3127e681f3f8cc37e4198bfdf3c5.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/monitors/guide/custom_schedules/add_custom_schedule.729a3127e681f3f8cc37e4198bfdf3c5.png?auto=format&fit=max&w=850&dpr=2 2x"
   alt="Button to add custom schedule in the monitor configuration" /%}

Click **Add Custom Schedule** to configure your evaluation frequency.

{% alert level="danger" %}
When a custom schedule is enabled on a monitor, the custom schedule cannot be disabled. Custom schedules can only be added or removed during monitor creation. The **Remove non-reporting groups** setting is unavailable. To work around this, create a new monitor without custom schedules.
{% /alert %}

{% tab title="Day" %}
Select the time of the day you want the monitor to evaluate at.

For example, the following monitor checks every day at 8:00PM that the daily backup job generated a success event for each database instance.

{% image
   source="https://docs.dd-static.net/images/monitors/guide/custom_schedules/custom_day.08de633463f0e9c6747c0930d5b073c8.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/monitors/guide/custom_schedules/custom_day.08de633463f0e9c6747c0930d5b073c8.png?auto=format&fit=max&w=850&dpr=2 2x"
   alt="Monitor configuration to check every day at 8pm that a success event has been generated for each database instance as a result of the daily backup job" /%}

{% /tab %}

{% tab title="Week" %}
Select the days of the week as well as the time of the day you want the monitor to evaluate at.

For example, the following monitor checks every week on Tuesday and Saturday at 6:00AM that marketing emails have been sent for each individual campaign.

{% image
   source="https://docs.dd-static.net/images/monitors/guide/custom_schedules/custom_week.446b29ceff16300debbfa0db011fd665.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/monitors/guide/custom_schedules/custom_week.446b29ceff16300debbfa0db011fd665.png?auto=format&fit=max&w=850&dpr=2 2x"
   alt="Monitor configuration to check every week on Tuesday and Saturday at 6am that marketing emails have been sent for each individual campaign" /%}

{% /tab %}

{% tab title="Month" %}
Select the day of the month as well as the time of the day you want the monitor to evaluate at.

For example, the following monitor checks on the first day of each month whether the cron job generating customer invoices has successfully run.

{% image
   source="https://docs.dd-static.net/images/monitors/guide/custom_schedules/custom_month.4992c9647c8f1cb53ceb5776389c1ee3.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/monitors/guide/custom_schedules/custom_month.4992c9647c8f1cb53ceb5776389c1ee3.png?auto=format&fit=max&w=850&dpr=2 2x"
   alt="Monitor configuration to check on the first day of each month whether the cron job generating customer invoices has successfully run." /%}

{% /tab %}

## RRULES{% #rrules %}

Recurrence rule (RRULE) is a property name from the [iCalendar RFC](https://icalendar.org/rrule-tool.html), which is the standard for defining recurring events. Use the [official RRULE generator](https://icalendar.org/iCalendar-RFC-5545/3-8-5-3-recurrence-rule.html) to generate recurring rules. Leverage RRULEs to cover more advanced scheduling use cases.

To write a custom RRULE for your monitor, click **Use RRULE**.

**Notes**:

- Attributes specifying the duration in RRULE are not supported (for example, DTSTART, DTEND, DURATION).
- Evaluation frequencies must be a day or longer. For shorter evaluation frequencies, use the default monitor schedules.

#### Example: Monitor evaluates on the last day of the month{% #example-monitor-evaluates-on-the-last-day-of-the-month %}

```text
FREQ=MONTHLY;BYMONTHDAY=28,29,30,31;BYSETPOS=-1
```

{% image
   source="https://docs.dd-static.net/images/monitors/guide/custom_schedules/RRULE_last_day_month.9ffae6fc4f0c4c971ae9348309d76604.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/monitors/guide/custom_schedules/RRULE_last_day_month.9ffae6fc4f0c4c971ae9348309d76604.png?auto=format&fit=max&w=850&dpr=2 2x"
   alt="RRULE syntax used in the UI to evaluate the last day of the month" /%}

#### Example: Monitor evaluates every other month on the first and last Sunday of the month:{% #example-monitor-evaluates-every-other-month-on-the-first-and-last-sunday-of-the-month %}

```text
FREQ=MONTHLY;INTERVAL=2;BYDAY=1SU,-1SU
```

{% image
   source="https://docs.dd-static.net/images/monitors/guide/custom_schedules/RRULE_month_last_sunday.c8a4f9705a82a6cc96d7017fd6a9f5f9.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/monitors/guide/custom_schedules/RRULE_month_last_sunday.c8a4f9705a82a6cc96d7017fd6a9f5f9.png?auto=format&fit=max&w=850&dpr=2 2x"
   alt="RRULE syntax used in the UI to evaluate every other month on the first and last Sunday of the month" /%}

## Alerting behavior of monitors with custom schedules{% #alerting-behavior-of-monitors-with-custom-schedules %}

Monitors using default scheduling run the query with the default evaluation frequency and send alerts based on monitor status transitions (for example, when a monitor goes from WARN to OK or from OK to ALERT).

The timeline below illustrates the behavior of a monitor with default scheduling. The monitor sends alerts corresponding to status changes.

{% image
   source="https://docs.dd-static.net/images/monitors/guide/custom_schedules/alerting_behavior_regular.3cf24c84af27b5b963802275ed5939c1.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/monitors/guide/custom_schedules/alerting_behavior_regular.3cf24c84af27b5b963802275ed5939c1.png?auto=format&fit=max&w=850&dpr=2 2x"
   alt="Visual diagram showing a when a monitor sends an alert based on monitor state transitions for the default schedule with a thirty minute evaluation frequency" /%}

Monitors with custom schedules, on the other hand, evaluate on a daily, weekly, or monthly basis and send alerts based on the results of individual evaluations. Each evaluation is independent from the previous one and sends a notification when the result is not OK.

The timeline below illustrates the behavior of a monitor running on a custom schedule. Unlike the default scheduled monitor, the custom scheduled monitor sends an alert during its evaluation time based on the monitor state.

{% image
   source="https://docs.dd-static.net/images/monitors/guide/custom_schedules/alerting_behavior_custom.36f769ddd9097b297828710f3218238e.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/monitors/guide/custom_schedules/alerting_behavior_custom.36f769ddd9097b297828710f3218238e.png?auto=format&fit=max&w=850&dpr=2 2x"
   alt="Visual diagram showing a when a monitor sends an alert based on monitor state for the custom schedule with a daily evaluation frequency" /%}



## Further reading{% #further-reading %}

- [Learn about monitor evaluation frequency](https://docs.datadoghq.com/monitors/configuration.md?tab=thresholdalert#evaluation-frequency)
- [Downtimes](https://docs.datadoghq.com/monitors/downtimes.md)
- [Cumulative time windows](https://docs.datadoghq.com/monitors/configuration.md?tab=thresholdalert#evaluation-window)
