mvan231

Move events in range x days

Jan 16th, 2023 (edited)
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.12 KB | None | 0 0
  1. // Variables used by Scriptable.
  2. // These must be at the very top of the file. Do not edit.
  3. // icon-color: blue; icon-glyph: magic;
  4. let now = new Date()
  5. let datePick = new DatePicker()
  6.  
  7. //setup the date picker default date
  8. datePick.initialDate = new Date(now.getFullYear(),now.getMonth(),now.getDate(),00,00)
  9.  
  10. let alerter
  11.  
  12. createAlert('Next, please pick the start date of the timeframe to look for events',0)
  13. await alerter.present()
  14. let sourceDateStart = await datePick.pickDate()
  15.  
  16. createAlert('Next, please pick the end date of the timeframe to look for events',0)
  17. await alerter.present()
  18.  
  19. let sourceDateEnd = await datePick.pickDate()
  20. sourceDateEnd = new Date(sourceDateEnd.getFullYear(),sourceDateEnd.getMonth(),sourceDateEnd.getDate(),23,59)
  21.  
  22. createAlert('Next, please the number of days to shift the events that are found (i.e. +/- x number of days',1)
  23. await alerter.present()
  24. let dateShift = alerter.textFieldValue(0)
  25. log(`dateShift value is ${dateShift}`)
  26.  
  27. log(`sourceDateStart is ${sourceDateStart}\nsourceDateEnd is ${sourceDateEnd}`)
  28.  
  29. let cals = await Calendar.presentPicker(false)
  30. //log(cals)
  31. let events = await CalendarEvent.between(sourceDateStart, sourceDateEnd,cals)
  32. log(events)
  33.  
  34. events.forEach((event) => {
  35. event.removeAllRecurrenceRules()
  36. let destDate = event.startDate
  37. log(`destDate is ${destDate}`)
  38. destDate.setHours(event.startDate.getHours())
  39. destDate.setMinutes(event.startDate.getMinutes())
  40. destDate.setDate(Number(event.startDate.getDate()) + Number(dateShift))
  41. event['startDate']=destDate
  42.  
  43. destDate.setHours(event.endDate.getHours())
  44. destDate.setMinutes(event.endDate.getMinutes())
  45. destDate.setDate(Number(event.endDate.getDate()) + Number(dateShift))
  46. event['endDate'] = destDate
  47. log(`destDate is ${destDate}`)
  48. log(`event ${event.title} now at ${event['startDate']} and ending at ${event['endDate']}`)
  49. event.addRecurrenceRule(RecurrenceRule.weekly(1))
  50. event.save()
  51. })
  52.  
  53. function createAlert(prompt,textEntryField){
  54. alerter=new Alert()
  55. alerter.message = prompt
  56. alerter.addAction("OK")
  57. if(textEntryField==1)alerter.addTextField('Days to shift events', '')
  58. }
Advertisement
Add Comment
Please, Sign In to add comment