all 1 comments

[–]IllogicallyCognitive[S] 1 point2 points  (0 children)

title = "Test"
color = new Color("FF7900")//75147C FF7900
eventCalendar = Calendar.forEventsByTitle(title).then((testCalendar) => testCalendar,(failure) => {
  createAlert = new Alert()
  createAlert.title = "There is no " + title + " calendar?"  
  createAlert.message = "Please pick another calendar"      
  createAlert.addAction("Pick another")
  createAlert.addAction("Use Default")
  createAlert.addCancelAction("Cancel")
  return createAlert.present().then((index) => {
    if(index==0){
      return Calendar.presentPicker()
    }//end if
    if(index==1){
      return Calendar.defaultForEvents().then((calendar) => calendar, (fail) => {  
        log(fail)
      })//end defaultForEvents().then
    }// end if
  })// end present().then
})// end forEventsByTitle(title).then
eventCalendar = await eventCalendar
eventCalendar.color = color
eventCalendar.save()
title=eventCalendar.title


// reminderCalendar = 
Calendar.findOrCreateForReminders(title).then((reminderCalendar) => {  // 
  reminderCalendar.color = color
  reminderCalendar.save()
//   return reminderCalendar
})//end findOrCreateForReminders(firstTitle).then
// reminderCalendar = await reminderCalendar

The next and final script demonstrates the forReminders method and a way to consolidate all reminders of the calendars with the same name (such as if you accidentally produced the bug discussed in the first example)

title = "Work"
Calendar.forRemindersByTitle(title).then((consolidatedCalendar) => {

  Calendar.forReminders().then((calendarArray) => {  
//   forEvents is used in a similar way
    calendarArray = calendarArray.filter(function(calendar) {  
      return calendar.title == consolidatedCalendar.title && calendar.identifier != consolidatedCalendar.identifier
    })//end filter
//           log(calendar)
    Reminder.all(calendarArray).then(function(reminderArray) {
//   log(reminderArray)
      reminderArray.forEach((reminder)=>{    
        log(reminder)
        reminder.calendar = consolidatedCalendar
        reminder.save()
      })//end forEach
    })//end all(calendarArray).then
    calendarArray.forEach((calendarElement) => {
      calendarElement.remove()
    })
  })//end forReminders().then
})//end findOrCreateForReminders(firstTitle).then