/** * Update an existing appointment that is already synced with Google Calendar. * * This method updates the google calendar event item that is connected with the * provided appointment record of Easy!Appointments. * * @param array $appointment Contains the appointment record data. * @param array $provider Contains the provider record data. * @param array $service Contains the service record data. * @param array $customer Contains the customer recod data. * @parma array $company_settings Contains some company settings that are used * by this method. By the time the following values must be in the array: * 'company_name'. * @return Google_Event Returns the Google_Event class object. */ public function update_appointment($appointment, $provider, $service, $customer, $company_settings) { $this->CI->load->helper('general'); $event = $this->service->events->get($provider['settings']['google_calendar'], $appointment['id_google_calendar']); $event->setSummary($service['name']); $event->setLocation($company_settings['company_name']); $start = new Google_EventDateTime(); $start->setDateTime(date3339(strtotime($appointment['start_datetime']))); $event->setStart($start); $end = new Google_EventDateTime(); $end->setDateTime(date3339(strtotime($appointment['end_datetime']))); $event->setEnd($end); $event->attendees = array(); $event_provider = new Google_EventAttendee(); $event_provider->setDisplayName($provider['first_name'] . ' ' . $provider['last_name']); $event_provider->setEmail($provider['email']); $event->attendees[] = $event_provider; if ($customer != NULL) { $event_customer = new Google_EventAttendee(); $event_customer->setDisplayName($customer['first_name'] . ' ' . $customer['last_name']); $event_customer->setEmail($customer['email']); $event->attendees[] = $event_customer; } $updated_event = $this->service->events->update($provider['settings']['google_calendar'], $event->getId(), $event); return $updated_event; }