Advertisement
Guest User

Scriptable small event & reminder counters lockscreen

a guest
Jan 17th, 2024
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.96 KB | Software | 0 0
  1. // Variables used by Scriptable.
  2. // These must be at the very top of the file. Do not edit.
  3. // icon-color: purple; icon-glyph: magic;
  4. //Shoutout to riverwolf for sharing the code to fetch remaining events for the day. https://talk.automators.fm/t/calendar-reminders/9236
  5.  
  6. var widget = new ListWidget();
  7. const NOW = new Date();
  8.  
  9. // Find today's events that are part of the calendar list
  10. const VISIBLE_CALENDARS = [
  11. "Your Calendar 1",
  12. "Your Calendar 2",
  13. "Your Calendar 3",
  14. "Your Calendar 4",
  15. "Your Calendar 5",
  16. "Your Calendar 6",
  17. "Your Calendar 7",
  18. ];
  19.  
  20. const itemsToShow = [];
  21. const events = await CalendarEvent.today();
  22. for (const event of events) {
  23. if (
  24. event.endDate.getTime() > NOW.getTime() &&
  25. VISIBLE_CALENDARS.includes(event.calendar.title)
  26. ) {
  27. itemsToShow.push({
  28. id: event.identifier,
  29. });
  30. }
  31. }
  32.  
  33. let calsymbol = SFSymbol.named("calendar");
  34.  
  35. var imagestack = widget.addStack();
  36. imagestack.setPadding(5, 5, 5, 5);
  37. imagestack.addSpacer();
  38. let calimage = imagestack.addImage(calsymbol.image);
  39. calimage.resizable = false;
  40. calimage.tintColor = Color.white();
  41. calimage.centerAlignImage();
  42. imagestack.addSpacer();
  43.  
  44. var counterstack = widget.addStack();
  45. counterstack.setPadding(5, 5, 5, 5);
  46. counterstack.addSpacer();
  47. counterstack.addText(String(itemsToShow.length)).font =
  48. Font.regularSystemFont(25);
  49. counterstack.addSpacer();
  50.  
  51. widget.url = "calshow://";
  52.  
  53. if (config.runsInApp) widget.presentMedium();
  54. else if (config.runsInWidget) Script.setWidget(widget);
  55.  
  56.  
  57.  
  58. ——————-
  59.  
  60.  
  61.  
  62. // Variables used by Scriptable.
  63. // These must be at the very top of the file. Do not edit.
  64. // icon-color: purple; icon-glyph: magic;
  65. //Shoutout to riverwolf for sharing the code to fetch remaining reminders for the day. https://talk.automators.fm/t/calendar-reminders/9236
  66.  
  67. var widget = new ListWidget();
  68.  
  69. const NOW = new Date();
  70. // Find today's reminders
  71.  
  72. // NOTE: all-day reminders have their time set to 00:00 of the same day, but aren't returned with incompleteDueToday...
  73. let queryStartTime = new Date(NOW);
  74. queryStartTime.setDate(queryStartTime.getDate() - 1);
  75. queryStartTime.setHours(23, 59, 59, 0);
  76. let queryEndTime = new Date(NOW);
  77. queryEndTime.setHours(23, 59, 59, 0);
  78. const reminders = await Reminder.incompleteDueBetween(
  79. queryStartTime,
  80. queryEndTime
  81. );
  82.  
  83. let remsymbol = SFSymbol.named("list.bullet");
  84.  
  85. var imagestack = widget.addStack();
  86. imagestack.setPadding(5, 5, 5, 5);
  87. imagestack.addSpacer();
  88. let remimage = imagestack.addImage(remsymbol.image);
  89. remimage.resizable = false;
  90. remimage.tintColor = Color.white();
  91. imagestack.addSpacer();
  92.  
  93. var counterstack = widget.addStack();
  94. counterstack.setPadding(5, 5, 5, 5);
  95. counterstack.addSpacer();
  96. let remindercount = (counterstack.addText(String(reminders.length)).font =
  97. Font.regularSystemFont(25));
  98. counterstack.addSpacer();
  99.  
  100. widget.url = "x-apple-reminderkit://";
  101.  
  102. if (config.runsInApp) widget.presentMedium();
  103. else if (config.runsInWidget) Script.setWidget(widget);
  104.  
  105.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement