Bitrix24's built-in robots add calendar days to a date and know nothing about holidays: a "three days to pay the invoice" deadline set right before a long holiday turns into an overdue task before the customer has even seen the invoice. Roboteka's robots count deadlines by the Russian production calendar: they add working days accounting for holidays and shifts, check whether a day is a working day, find the nearest date you need, and determine the day of the week.

Why does "date + 3 days" break deadlines?

Intervals in the workflow designer are calendar-based: "+3 days" from a Friday is a Monday, and if that's a holiday, the deadline lands on a non-working day and the rep gets a task due on January 1. The Russian production calendar is more than just Saturdays and Sundays: holidays, shifted days off, working Saturdays — and the list changes every year by government decree. You can't bake it into a process template with built-in tools — you'd have to maintain a list of dates by hand and rework the workflow every year. So deadline calculation is moved into a robot that checks the current production calendar itself: the process stays simple, and holidays stop being its concern.

How do I add N working days to a date?

Date + N working days (RU). Input: the source date and a number of working days; a negative number counts backward — a reminder two working days before an event, for instance. The robot walks the Russian production calendar and skips days off and holidays; shifted working Saturdays and shortened pre-holiday days count as working. The date is accepted on input in the usual forms: YYYY-MM-DD, DD.MM.YYYY, or the value of a "date" field from the card. There are two outputs: the date in YYYY-MM-DD format — to write into a "date" field — and the same date in DD.MM.YYYY format — for the notification text. Example: an invoice is issued — the payment deadline five working days out is written into a deal field, a task is set on it, and an invoice approval route is built.

How do I check that a date is a working day?

Check: is the date a working day? takes a single date and returns a Y/N flag; a shortened pre-holiday day counts as working. Then comes the built-in "Condition": if N, postpone the send or push the deadline. Typical cases: don't send customers emails and SMS on holidays; don't schedule calls on a day off; before creating a task, make sure the planned date is a working day at all. If the date turns out to be non-working, the next action is to add one working day to it with the robot from the previous section — that gives you the nearest working day without manual shift tables. The "check → condition → shift" combination takes three actions and works the same for deals, leads and tasks alike.

How do I find the nearest Monday or end of month?

Nearest date by condition searches from the source date for the nearest matching one. The conditions: monday…sunday — a day of the week, first-day — the 1st of the next month, last-day — the last day of the current one, next-weekday — the nearest weekday. A separate "include the date itself" flag (N by default) handles the case where the source date already matches. There are three outputs: the found date in YYYY-MM-DD and DD.MM.YYYY formats and the number of days until it — handy for pausing the process until the right moment. Examples: a weekly report on Mondays, closing documents on the last day of the month, moving a payment to the 1st. The found date is written into a field or variable and then works like any ordinary deadline.

How do I find out the day of the week from a date?

Day of the week from a date returns the day number (1 — Monday … 7 — Sunday), the name in Russian and English, and a "day off" flag of Y/N. Note: the flag accounts only for Saturday and Sunday — it knows nothing about holidays, for which there's the working-day check by the production calendar from the section above. Use: different process logic by day of the week — requests created on Friday afternoon get scheduled for Monday; the Russian day name is handy to drop into a customer notification text without a manual lookup between number and day name.

Checklist

A deadline by the Russian calendar — "Date + N working days"; a check before sending — "Check: is the date a working day?"; recurring events — "Nearest date by condition"; branching by day — "Day of the week from a date". These robots are in the general category. If the robot you need isn't there, describe the task and we'll build it for free and add it to the catalog.