Recurring appointments
A recurring event is one that happens more than once at a regular interval. The implementation in Dime.Scheduler follows the same logic as Outlook and other calendar systems, so anyone who has set up a repeating meeting before will feel at home.
Appointment editorโ
The appointment editor has an extra combobox where the planner builds the pattern. Recurring appointmentsRecurring appointmentAn appointment that repeats on a schedule - weekly, monthly - that you manage as one series instead of re-creating it each time. are off by default, so this is an optional field. If an appointmentAppointmentA task scheduled to a resource for a specific period - the scheduled instance you see on the planning board. doesn't need a pattern, leave the repeat field set to 'None' and you're done.
Once you select an interval, a button appears:
This legend button states the recurrence rule as a sentence rather than a pattern. In the example above the rule is simple: a daily occurrence with no end date. The sentence becomes especially helpful when the rule is more complex, such as a two-monthly occurrence on the second weekend day.
The legend button opens a window where you build the recurrence rule by choosing the frequency, the interval and the end time of the repeat:
- Frequency: Daily, weekly, monthly, yearly
- Interval: the options vary according to the selected frequency
- End time: on date or after a given amount of occurrences.
Recurring patternsโ
Daily occurrencesโ
A daily recurring appointment is the simplest case. As the name suggests, the interval reads as "every x days".
This example creates an appointment every day until the first of January 2024.
Weekly occurrencesโ
The same logic applies to weekly occurrences (and to all the others). The one extra variable is that besides the frequency, you also choose the days. At least one day must be selected.
This example creates an appointment every Wednesday until the first of January 2024. The appointment you create or update must also comply with this rule. If you set this rule for an appointment that starts on a Monday, Dime.Scheduler moves the original appointment to the first available date in the series.
Monthly occurrencesโ
You can select one of two modes:
- Day picker
- Presets
For example, you can create appointments on the 1st, 3rd and 25th every other month. Or you can pick every second weekend day, or every third day of the month.

This example creates an appointment on the 1st, 15th and 30th of every month until the first of January 2024. The same caveat as the weekly occurrences applies: every appointment must comply with the recurrence rule, even when the original appointment doesn't.
Yearly occurencesโ
The yearly recurring appointment closely mirrors the monthly pattern, except for the scope: it works on months rather than days.

You can refine the occurrence rule further, though this is entirely optional. For example, "every 3rd Friday in March, July and November until May 2030" is a perfectly valid recurrence pattern.
Updating recurring appointments and occurrencesโ
When you create a recurring appointment, all occurrences are created and published instantly. Occurrences appear on the planning boardPlanning boardThe main graphical scheduling surface where dispatchers drag tasks onto resources across a timeline. with a special icon:
Modifying a recurring appointment can mean one of two things:
- Update the entire sequence
- Update the occurrence
An occurrence is a single instance in the series of appointments that make up the recurring appointment. When Dime.Scheduler creates such a sequence, the appointments are created independently yet stay connected. They can move freely on the planning board while remaining linked together, so removing or updating one appointment doesn't break the link with the others in the range. These instances are also called "exception occurrences" and are marked with an exclamation mark in front of the recurring icon.
Any action other than the appointment editor that changes a record produces an exception occurrence. For example, changing the duration of an occurrence by drag-and-drop flags that appointment as an exception occurrence automatically. As noted, the recurring appointment itself can only be managed through the appointment editor.
When the appointment is part of a set, Dime.Scheduler asks the planner whether to update the whole series or just this occurrence:
If you update the entire sequence, all appointments (and assigned resources) are evaluated and then updated or removed as needed. Any occurrences (exceptions to the sequence) are reset so the recurrence pattern is applied. However, if the pattern and the duration of the sequence are unchanged, the occurrences' dates are not overridden.
The rule for resetting the recurring appointment is therefore simple: if the update changes the recurrence pattern or the dates (or duration), the recurring appointment is recalculated. If you only update fields like subject, resourcesResourceAn entity that can carry out work - a person, vehicle, tool, or room - that you schedule on the planning board. or indicatorsIndicatorCollective term for the visual signals - categories and time markers - that identify and label appointments. in the editor, the exception occurrences keep their status (exception occurrence), dates and resources, and only the master data is updated.
When you select the entire series, one more thing needs confirming: the start date of the series.
By default the date of the first occurrence in the series is used, but you can override this in two ways:
- Start the recurring appointment on the start date of the appointment you are currently editing
- Select a different date
For example, suppose you update the second occurrence of a recurring appointment, apply the "all" option and check "use appointment's start date". The series shifts to the right by one occurrence. Leave the box unchecked and keep the original date in the start field, and the first occurrence starts on the same day as before.
Repeat limitsโ
For reasons specific to Dime.Scheduler, a recurring appointment needs an end so the ecosystem doesn't overflow. A never-ending series of appointments in the back office would cause problems, so every recurring pattern must end at some point. You can define the end of a repeatable event in two ways:
- Amount of occurrences
- On date
The first option caps the number of appointments; the second stops the series on a date. The recurring pattern holds all the information on when to create the appointments, and the end repeat setting sets the latest possible date of the final appointment in the series.
You can change this value, and just like the pattern it triggers the system to recalculate the entire series. This may add, update or remove appointments.
Here is an example showing the difference between the two for the weekly on Monday pattern (start date is Tuesday 1 January 2019):
| Date | 5 occurrences | Until February 1 |
|---|---|---|
| 7 January | โ | โ |
| 14 January | โ | โ |
| 21 January | โ | โ |
| 28 January | โ | โ |
| 4 February | โ | โ |
A word about iCalendarโ
Calendars are everywhere: on your phone, in your work and personal mailbox, on your computer, in your office lobby, on your wall. Now imagine every developer or company that builds a calendar widget used its own proprietary format for storing appointments. The result would be a mess in which sharing calendars and meeting requests, as we do today, would be almost impossible.
As in many other areas, standards and specifications enable interoperability by giving the industry a common understanding of how to communicate between systems. For calendars, the industry standard is the iCalendar (or RFC5545) specification, which also defines how to exchange recurring event information.
For example, the rule FREQ=DAILY;COUNT=10;INTERVAL=2 specifies 10 occurrences that happen every other day. Dime.Scheduler can convert this string into a set of appointments, and it follows the same rules when users create recurring appointments in the appointment editor. In other words, Dime.Scheduler is compliant with the RFC5545 specification.