There is a Date Repeat API (bundled with the Date module) available that creates a form to select a repeat rule and to compute the dates that match that rule. Repeat rules use the iCal RRULE standards to create a string that represents all the characteristics of the repeat.
The CCK Date module implements the Date Repeat API to create repeating CCK dates. All CCK date fields and widgets can become repeating dates. Add or edit the field and scroll down to where you select the number of multiple values. If the Date Repeat API is enabled, you will see 'repeating' as an alternative to allowing 'unlimited' multiple values. In the 6.2 version the option is labeled 'Number of values'. In the 5.2 version it is labeled 'Multiple'.