SearchAsync Method (DateTime, DateTime, Int32, Object)

Appointments.SearchAsync Method (DateTime, DateTime, Int32, Object)

[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]

Asynchronously searches for appointments that occur between the specified start date and time and end date and time, returning no more than the specified number of appointments.

Namespace:  Microsoft.Phone.UserData
Assembly:  Microsoft.Phone (in Microsoft.Phone.dll)

public void SearchAsync(
	DateTime startTimeInclusive,
	DateTime endTimeInclusive,
	int maximumItems,
	Object state


Type: System.DateTime
The start date and time to use to search for appointments.
Type: System.DateTime
The end date and time to use to search for appointments.
Type: System.Int32
The maximum number of appointments to return.
Type: System.Object
A user-defined object that contains information about the operation.

The state object is stored in the AppointmentsSearchEventArgs class and passed to the SearchCompleted delegate when the operation is complete.

Applications that use the Calendar APIs may fail to start. This can occur for applications that are upgraded from Windows Phone OS 7.0 to Windows Phone OS 7.1. To resolve this issue, open the file WMAppManifest.xml and add the following element.

<Capability Name="ID_CAP_APPOINTMENTS"/>

The following example assumes that you have a Windows Phone application that has a page with a button named SearchAppointments. The code assumes that you have a databound list box named AppointmentResultsData. In this example, you search for all appointments in the next seven days. For the full example, including the XAML, see How to access calendar data for Windows Phone 8.

using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using Microsoft.Phone.Controls;
using Microsoft.Phone.UserData;

namespace ContactsAndCalendarTestApp
    public partial class AppointmentsPage : PhoneApplicationPage
        public AppointmentsPage()

        private void SearchAppointments_Click(object sender, RoutedEventArgs e)
            AppointmentResultsData.DataContext = null;
            Appointments appts = new Appointments();

            appts.SearchCompleted += new EventHandler<AppointmentsSearchEventArgs>(Appointments_SearchCompleted);

            DateTime start = new DateTime();
            start = DateTime.Now;

            DateTime end = new DateTime();
            end = start.AddDays(7);

            appts.SearchAsync(start, end, 20, "Appointments Test #1");

        void Appointments_SearchCompleted(object sender, AppointmentsSearchEventArgs e)
                //Bind the results to the list box that displays them in the UI.
                AppointmentResultsData.DataContext = e.Results;
            catch (System.Exception)
                //That's okay, no results.

Windows Phone OS

Supported in: 8.1, 8.0, 7.1

Windows Phone

© 2017 Microsoft