Create or update a card's recurrence rule
const url = 'https://projects.work.optidata.cloud/api/boards/1/cards/1/recurrence';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"target_column_id":301,"frequency":"weekly","interval":1,"by_day":["MO","TH"]}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://projects.work.optidata.cloud/api/boards/1/cards/1/recurrence \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "target_column_id": 301, "frequency": "weekly", "interval": 1, "by_day": [ "MO", "TH" ] }'Defines how often a new occurrence of this card is generated and into
which column. If the card already has a rule (even a stopped one), it is
updated; otherwise a new rule is created. iCal-style refinements are
supported: weekdays (by_day), month days (by_month_day), months
(by_month) and monthly positions such as “first Monday” (by_set_pos).
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Board id.
Card id (must belong to the board).
Request Bodyrequired
Section titled “Request Bodyrequired”object
Column of this board where generated occurrences are placed.
Repeat every N periods (default 1).
Weekdays the rule fires on.
Days of the month the rule fires on.
Months the rule fires in (1 = January).
Position within the month (1 = first … -1 = last), combined with by_day.
Example
{ "target_column_id": 301, "frequency": "weekly", "interval": 1, "by_day": [ "MO", "TH" ]}Responses
Section titled “Responses”The stored rule.
object
Repeat rule for a card.
object
Example
{ "message": "Card repetition created successfully.", "recurrence": { "id": 15, "original_card_id": 9001, "target_column_id": 301, "frequency": "weekly", "interval": 1, "by_day": [ "MO", "TH" ], "by_month_day": null, "by_month": null, "by_set_pos": null, "last_occurrence_at": null, "next_occurrence_at": "2026-07-27T00:00:00.000000Z" }}Missing, invalid or expired bearer passport.
object
Example
{ "error": "JWT passport exception: Missing bearer token in request"}The authenticated user lacks the required board permission.
object
Example
{ "message": "This action is unauthorized."}Resource not found, or a nested resource does not belong to its parent in the path.
object
Example
{ "message": "Not found."}Validation failed.
object
First validation error message.
Map of field name → list of error messages.
object
Example
{ "message": "The name field is required.", "errors": { "name": [ "The name field is required." ] }}