CRM 2011 CS: Retrieve the schedule of a system user

/* Retrive The Schedule of Current User */

using (OrganizationServiceProxy _serviceProxy = new OrganizationServiceProxy(serverConfig.OrganizationUri,

                                                    serverConfig.HomeRealmUri,

                                                    serverConfig.Credentials,

                                                    serverConfig.DeviceCredentials))

{

    _serviceProxy.ServiceConfiguration.CurrentServiceEndpoint.Behaviors.Add(new ProxyTypesBehavior());

 

                  

    // Get the current user's information.

    WhoAmIRequest userRequest = new WhoAmIRequest();

    WhoAmIResponse userResponse = (WhoAmIResponse)_serviceProxy.Execute(userRequest);

 

    // Retrieve the schedule of the current user.                                           

    QueryScheduleRequest scheduleRequest = new QueryScheduleRequest

    {

        ResourceId = userResponse.UserId,

        Start = DateTime.Now,

        End = DateTime.Today.AddDays(7),

        TimeCodes = new TimeCode[] { TimeCode.Available }

    };

    QueryScheduleResponse scheduleResponse = (QueryScheduleResponse)_serviceProxy.Execute(scheduleRequest);

}