title: How to retrieve recurring appointments
body: <p>I am retrieving appoints from an exchange server using the service.FindItems method and it isn't returning recurring appointments. It returns the first instance of recurring items but no more after that and IsRecurring is set to false on the appointment.</p>
  
  <p>This is the code:</p>
  
  <pre><code>private void loadUsersAppointments(string user, int rscID)
      {
          // Add a search filter that searches on the body or subject.
          List&lt;SearchFilter&gt; searchFilterCollection = new List&lt;SearchFilter&gt;();
          searchFilterCollection.Add(new SearchFilter.IsGreaterThan(AppointmentSchema.Start, DateTime.Today.AddDays(-7)));
  
          // Create the search filter.
          SearchFilter searchFilter = new SearchFilter.SearchFilterCollection(LogicalOperator.Or, searchFilterCollection.ToArray());
  
          CalendarView V = new CalendarView(DateTime.Today.AddDays(-7), DateTime.Today.AddMonths(1), 1000);
          V.PropertySet = new PropertySet(BasePropertySet.IdOnly, AppointmentSchema.Subject, AppointmentSchema.Start, AppointmentSchema.End);
          V.Traversal = ItemTraversal.Shallow;
  
          // Create a view with a page size of 50.
          ItemView view = new ItemView(10000);
  
          // Identify the Subject and DateTimeReceived properties to return.
          // Indicate that the base property will be the item identifier
          view.PropertySet = new PropertySet(BasePropertySet.IdOnly, AppointmentSchema.Subject, AppointmentSchema.Start, AppointmentSchema.End);
  
          // Order the search results by the DateTimeReceived in descending order.
          view.OrderBy.Add(AppointmentSchema.Start, SortDirection.Descending);
  
          // Set the traversal to shallow. (Shallow is the default option; other options are Associated and SoftDeleted.)
          view.Traversal = ItemTraversal.Shallow;
  
          // Send the request to search the Inbox and get the results.
          ExchangeService service = GlobalFunc.ElevateGetBinding();
          service.ImpersonatedUserId = new ImpersonatedUserId(ConnectingIdType.SmtpAddress, user+"@works.local");
          FindItemsResults&lt;Item&gt; findResults = service.FindItems(WellKnownFolderName.Calendar, searchFilter, view);
  
          List&lt;Item&gt; items = new List&lt;Item&gt;();
          foreach (Microsoft.Exchange.WebServices.Data.Appointment appointment in findResults)
          {
              items.Add(appointment);
          }
          service.LoadPropertiesForItems(items, PropertySet.FirstClassProperties);
  
          // Process each item.
          foreach (Microsoft.Exchange.WebServices.Data.Appointment myItem in items)
          {
              DevExpress.XtraScheduler.Appointment AddAppt = new DevExpress.XtraScheduler.Appointment();
  
              try {
                  if (myItem.Subject.StartsWith("Advisor Appointment"))
                      AddAppt.LabelId = 8;
                  else
                      AddAppt.LabelId = 2;
                  AddAppt.Subject = myItem.Subject;
              }
              catch { }
              try
              {
  
              }
              catch (Exception ex) { MessageBox.Show(ex.Message); }
              try { AddAppt.Start = myItem.Start; }
              catch { }
              try { AddAppt.Description = myItem.Body; }
              catch { }
              try { AddAppt.End = myItem.End; }
              catch { }
              AddAppt.ResourceId = rscID;
  
  
  
  
              schStorage.Appointments.Add(AddAppt);
          }
      }
  </code></pre>
  
  <p>Any ideas would be much appreciated.</p>
  
  <p>Thanks</p>