Untitled
unknown
plain_text
a year ago
3.8 kB
3
Indexable
func AddToCalender(store:EKEventStore) { DispatchQueue.main.async { guard self.arrAgendaDetail.count > 0 else { return } let event = EKEvent(eventStore: store) let model = self.arrAgendaDetail[0] event.title = String(format: "%@ - %@", App_Name, model.Heading ?? "") event.location = model.custom_location // Event details let strStartDate = model.Start_date_cal ?? "" let strEndDate = model.End_date_cal ?? "" let strStartTime = model.Start_time ?? "" let strEndTime = model.End_time ?? "" let eventTimeZoneAbbreviation = model.Event_show_time_zone ?? "UTC" // Date formatter for parsing event date-time let eventDateFormatter = DateFormatter() eventDateFormatter.dateFormat = "MM/dd/yyyy HH:mm" eventDateFormatter.locale = Locale(identifier: "en_US_POSIX") eventDateFormatter.timeZone = TimeZone(abbreviation: eventTimeZoneAbbreviation) let startDateTimeString = "\(strStartDate) \(strStartTime)" let endDateTimeString = "\(strEndDate) \(strEndTime)" guard let startDateInEventTimeZone = eventDateFormatter.date(from: startDateTimeString), let endDateInEventTimeZone = eventDateFormatter.date(from: endDateTimeString) else { print("Error parsing event dates") return } // Convert event time to the user's current time zone let userTimeZone = TimeZone.current let userDateFormatter = DateFormatter() userDateFormatter.dateFormat = "MM/dd/yyyy HH:mm" userDateFormatter.locale = Locale(identifier: "en_US_POSIX") userDateFormatter.timeZone = userTimeZone // Convert start and end dates to user's time zone let startDateInUserTimeZone = userDateFormatter.string(from: startDateInEventTimeZone) let endDateInUserTimeZone = userDateFormatter.string(from: endDateInEventTimeZone) let newuserDateFormatter = DateFormatter() newuserDateFormatter.dateFormat = "MM/dd/yyyy HH:mm" guard let startDate = newuserDateFormatter.date(from: startDateInUserTimeZone), let endDate = newuserDateFormatter.date(from: endDateInUserTimeZone) else { print("Error converting event dates to user time zone") return } // Configure and save the event event.startDate = startDate event.endDate = endDate event.calendar = store.defaultCalendarForNewEvents let alarm = EKAlarm(relativeOffset: -60 * 60) // 1 hour before event.addAlarm(alarm) if Utility.fetchExistedEventState(forStart: startDate, andEnd: endDate, andEvent: event) { DispatchQueue.main.async { Utility.showAlert(withTitle: App_Name, andMessage: CALENDAR_EVENT_ALREADY_EXIST_MSG) } } else { do { try store.save(event, span: .thisEvent) DispatchQueue.main.async { Utility.showAlert(withTitle: App_Name, andMessage: CALENDAR_EVENT_SAVED_MSG) } } catch { print("Error saving event to calendar: \(error)") } } } }
Editor is loading...
Leave a Comment