---
title: "Evaluate an RRule and return occurrences"
method: POST
path: "/api/v2/spaces/{spaceID}/notifications/silencing/rrule/evaluate"
tags: ["alerts"]
---

# Evaluate an RRule and return occurrences

`POST /api/v2/spaces/{spaceID}/notifications/silencing/rrule/evaluate`

## Request

- Base URL: `https://api.netdata.cloud` (the document declares no server; this is the origin it was published from)
- URL: `https://api.netdata.cloud/api/v2/spaces/{spaceID}/notifications/silencing/rrule/evaluate`
- Auth: API key in header `Authorization`
- TypeScript: <https://skmtc.dev/netdata/apis/netdata-cloud-api/docs/api/v2/spaces/:spaceID/notifications/silencing/rrule/evaluate/post.ts> (a function with typed inputs; its response is checked against the schema)

Evaluates an RRule string and returns the next occurrences within the specified time window.
This endpoint allows users to verify their rrule configuration for silencing rules.

## Path parameters

- `spaceID` string, uuid, required

## Request body

- ApiEvaluateRRuleReq
  - `lasts_until` string: The end time for the daily active window (optional)
  - `limit` integer: Maximum number of occurrences to return (optional, default: 25, max: 200)
  - `rrule` string: The RRule string to evaluate (RFC 5545 format). FREQ must be DAILY, WEEKLY, MONTHLY or YEARLY and may recur at most 24 times a day
  - `starts_at` string: The start time for the rrule (DTSTART)
  - `timezone` string: IANA timezone the recurrence is anchored to (optional, default: UTC). The rrule fires at the intended wall-clock time in this zone across DST transitions
  - `window` ApiEvaluateRRuleWindowReq
    - `end` string: End of the evaluation time window
    - `start` string: Start of the evaluation time window

## Response `200`

The evaluated RRule occurrences

- ApiEvaluateRRuleRes
  - `has_more` boolean: Whether there are more occurrences beyond the limit
  - `occurrences` ApiOccurrence[]: List of occurrence timestamps within the window
    - `end` string: The end time of the occurrence (only present if lasts_until was provided)
    - `start` string: The start time of the occurrence
  - `rrule` string: The normalized rrule string

## Other responses

- `400`: `\"errorCode\": \"ErrBadRequest\"`: when the request payload is invalid
- `401`: `\"errorCode\": \"ErrUnauthorized\"`: when the provided user token/cookie cannot be matched with an account
- `403`: `\"errorCode\": \"ErrForbidden\"`: when caller has no permissions to access the space or evaluate silencing rrules
- `413`: `\"errorCode\": \"ErrRequestEntityTooLarge\"`: when the rrule is too dense or starts_at is anchored too far from the window for the evaluation to complete within its iteration budget
- `422`: `\"errorCode\": \"ErrUnprocessableEntity\"`: when invalid spaceID is provided
- `500`: `\"errorCode\": \"ErrInternal\"`: when some Internal Server Error has occurred

---

[API](https://skmtc.dev/netdata/apis/netdata-cloud-api.md) - [All operations](https://skmtc.dev/netdata/apis/netdata-cloud-api/llms.txt) - [OpenAPI document](https://skmtc.dev/netdata/apis/netdata-cloud-api/revisions/902a6689b462?raw)
