Imports System.Collections.Generic
Imports Infragistics.Win
Imports Infragistics.Win.UltraWinSchedule
Imports System.Diagnostics
        '  Add a new Owner to the Owners collection
        Dim myOwner As Owner = Me.calendarInfo.Owners.Add("myCalendar")
        '  Create a DateRecurrence object for the first weekday of each month,
        '  beginning on the first day of the current year.
        Dim firstOfMonth As DateRecurrence = New DateRecurrence(New DateTime(DateTime.Today.Year, 1, 1))
        '  Make the recurrence only span the current year.
        firstOfMonth.RangeEndDate = New DateTime(DateTime.Today.Year, 12, 31)
        '  Set the pattern properties for the recurrence.
        firstOfMonth.PatternFrequency = RecurrencePatternFrequency.Monthly
        firstOfMonth.PatternType = RecurrencePatternType.Calculated
        firstOfMonth.PatternOccurrenceOfDayInMonth = RecurrencePatternOccurrenceOfDayInMonth.First
        firstOfMonth.PatternDaysOfWeek = RecurrencePatternDaysOfWeek.AllWeekdays
        '  Create an OwnerRecurringDateSettings object using the new recurrence.
        Dim firstOfMonthSettings As OwnerRecurringDateSettings = New OwnerRecurringDateSettings(firstOfMonth)
        '  Specify the working hours for the first weekday of each month
        '  as 8AM to 4:30PM.
        firstOfMonthSettings.WorkingHours.Add(New TimeRange(TimeSpan.FromHours(8), TimeSpan.FromHours(16.5)))
        '  Now create a DateRecurrence object that will occur on every other Friday
        Dim everyOtherFriday As DateRecurrence = New DateRecurrence(New DateTime(DateTime.Today.Year, 1, 1))
        '  Make the recurrence only span the current year.
        everyOtherFriday.RangeEndDate = New DateTime(DateTime.Today.Year, 12, 31)
        '  Set the pattern properties for the recurrence.
        everyOtherFriday.PatternFrequency = RecurrencePatternFrequency.Weekly
        everyOtherFriday.PatternInterval = 2
        everyOtherFriday.PatternDaysOfWeek = RecurrencePatternDaysOfWeek.Friday
        '  Create an OwnerRecurringDateSettings object using the new recurrence.
        Dim everyOtherFridaySettings As OwnerRecurringDateSettings = New OwnerRecurringDateSettings(everyOtherFriday)
        '  Specify the working hours for every other Friday as 9AM to 3PM.
        everyOtherFridaySettings.WorkingHours.Add(New TimeRange(TimeSpan.FromHours(9), TimeSpan.FromHours(15)))
        '  Now create a DateRecurrence object that will occur every weekday
        Dim everyWeekday As DateRecurrence = New DateRecurrence(New DateTime(DateTime.Today.Year, 1, 1))
        '  Make the recurrence only span the current year.
        everyWeekday.RangeEndDate = New DateTime(DateTime.Today.Year, 12, 31)
        '  Set the pattern properties for the recurrence.
        everyWeekday.PatternFrequency = RecurrencePatternFrequency.Daily
        everyWeekday.PatternDaysOfWeek = RecurrencePatternDaysOfWeek.AllWeekdays
        '  Create an OwnerRecurringDateSettings object using the new recurrence.
        Dim everyWeekdaySettings As OwnerRecurringDateSettings = New OwnerRecurringDateSettings(everyWeekday)
        '  Specify the working hours for every weekday as 9AM to 5:30PM
        everyWeekdaySettings.WorkingHours.Add(New TimeRange(TimeSpan.FromHours(9), TimeSpan.FromHours(17.5)))
        '  Now add each of the three OwnerRecurringDateSettings objects to the Owner's
        '  RecurringDateSettings collection. Note that the order in which they are added
        '  is important; as a rule, the one that generates the fewest occurences should
        '  be added first. This is because when the working hours are defined by the
        '  WorkingHours collection, any range of time that does not appear in the collection
        '  is considered to fall within the non-working hour range, i.e., the resolution
        '  process ends there.
        '
        '  In this example, If we don't add the monthly and weekly recurrences before
        '  the daily one, the daily one will generate occurrences on the first weekday
        '  of every month and every other Friday, superceding the monthly and weekly recurrences.
        myOwner.RecurringDateSettings.Add(firstOfMonthSettings)
        myOwner.RecurringDateSettings.Add(everyOtherFridaySettings)
        myOwner.RecurringDateSettings.Add(everyWeekdaySettings)