/// <summary>
        /// Schedule or “book” an appointment.
        /// <para>
        /// For more information look at https://msdn.microsoft.com/en-us/library/microsoft.crm.sdk.messages.bookrequest(v=crm.7).aspx
        /// </para>
        /// </summary>
        /// <param name="appointment"></param>
        /// <returns>
        /// Returns <c>Validation Result</c> (<see cref="ValidationResult"/>) in <see cref="ValidateResponse"/>.
        /// You can reach created <c>Appointment</c> Id in <see cref="ValidationResult.ActivityId"/> property.
        /// </returns>
        public BookResponse Book(XrmAppointment appointment)
        {
            ExceptionThrow.IfNull(appointment, "appointment");

            BookRequest request = new BookRequest()
            {
                Target = appointment.ToEntity()
            };

            return((BookResponse)this.OrganizationService.Execute(request));
        }
        /// <summary>
        /// Create an appointment from <see cref="XrmAppointment"/> object.
        /// </summary>
        /// <param name="appointment"></param>
        /// <returns>
        /// Created record Id (<see cref="Guid"/>)
        /// </returns>
        public Guid Create(XrmAppointment appointment)
        {
            ExceptionThrow.IfNull(appointment, "appointment");

            return(this.OrganizationService.Create(appointment.ToEntity()));
        }