var dur_month = 1const startDate = new Date()
startDate.setMonth(startDate.getMonth() - dur_month)
console.log(`日历的开始时间 ${startDate.toLocaleDateString()}`)const endDate = new Date()
endDate.setMonth(endDate.getMonth() + dur_month)
console.log(`日历的结束时间 ${endDate.toLocaleDateString()}`)const reminders = await Reminder.allDueBetween(startDate, endDate)
console.log(`获取 ${reminders.length} 条提醒事项`)var calendar = await Calendar.forEvents()//获取日历名和对应的日历
var m_dict = {}
for(cal of calendar)
{m_dict[cal.title] = cal//console.log(`日历:${cal.title}`)
}const events = await CalendarEvent.between(startDate, endDate, calendar)
console.log(`获取 ${events.length} 条日历`)for (const reminder of reminders) {//reminder的标识符const targetNote = `[Reminder] ${reminder.identifier}`const [targetEvent] = events.filter(e => e.notes != null && (e.notes.indexOf(targetNote) != -1))//过滤重复的reminderif(!m_dict[reminder.calendar.title]){console.warn("找不到日历"+ reminder.calendar.title)continue}if (targetEvent) {console.log(`找到已经创建的事项 ${reminder.title}`)updateEvent(targetEvent, reminder)} else {const newEvent = new CalendarEvent()createEvent(newEvent, reminder,targetNote)}
}Script.complete()function createEvent(event, reminder,targetNote){console.warn(`创建事项 ${reminder.title} 到 ${reminder.calendar.title}`)event.notes = targetNote + "\n" + reminder.notes//要加入备注cal_name = reminder.calendar.titlecal = m_dict[cal_name]event.calendar = cal  if(reminder.isCompleted){event.title = `✅${reminder.title}`}else{event.title = `⭕️${reminder.title}`}event.startDate = reminder.dueDatevar ending = new Date(reminder.dueDate)ending.setHours(ending.getHours()+1)event.endDate = endingevent.save()
}function updateEvent(event, reminder) {cal_name = reminder.calendar.titlecal = m_dict[cal_name]event.calendar = cal//console.warn(event.calendar.title)//已完成事项if(reminder.isCompleted){event.title = `✅${reminder.title}`    var period = (reminder.dueDate-reminder.completionDate)/1000/3600/24period = period.toFixed(1)if(period < 0){period = -periodevent.location = " 延期" + period + "天完成" }else if (period == 0){event.location = " 准时完成"}else{event.location = " 提前" + period + "天完成"}}//未完成事项else{const nowtime  = new Date()var period = (reminder.dueDate-nowtime)/1000/3600/24period = period.toFixed(1)event.title = `⭕️${reminder.title}`//console.log(reminder.title+(period))if(period < 0){event.location = " 延期" + (-period) + "天" }else{event.location = " 还剩" + period + "天" }}event.save()
}

ios提醒事项同步日历scriptable代码相关推荐

  1. ios提醒事项和日历同步优化

    优化了同步,将原本无时间的提醒事项同步成全天事项 代码改自:https://blog.csdn.net/zackerzhuang 这位博主,可以配合她的小目标,非常好用. 更新点 1.原本无时间的提醒 ...

  2. 提醒事项同步日历代码

    var dur_month = 12const startDate = new Date() startDate.setMonth(startDate.getMonth() - dur_month) ...

  3. 【ios】提醒事项与日历同步升级版可快速新建提醒不用设置时间

    经过朋友反馈iPad可能不行✋目前也没有时间解决,pad用户慎用 起因: 看到知乎的 [真香!自动同步ios的提醒事项和日历,显示日打卡内容]文章,试了试,确实很方便,可以再提醒事项里添加事项,日历就 ...

  4. 无法同步谷歌日历_真香!自动同步ios的提醒事项和日历,显示日打卡内容

    ios的提醒事项没有日历视图,这是我一直想要的功能,以前一直寻求第三方软件,但是第三方软件都要收费,现在发现通过一个脚本就可以自动同步,于是自己动手写了个脚本. 视频教程请戳 真香!一键同步ios[提 ...

  5. 【已解决】iphone和mac的备忘录、提醒事项、日历等无法同步。MacBook点击“更新Apple ID 设置”无反应。

    iphone和mac的备忘录.提醒事项.日历等无法同步. 1. iCloud官网可以正常登录 2.App Store也可以正常登录 3.但是系统偏好设置中的Apple ID一直提示"更新Ap ...

  6. 如何高效的使用苹果产品的备忘录、提醒事项、日历?

    作者:HotPursuit丶 链接:https://www.zhihu.com/question/22027616/answer/338956660 来源:知乎 著作权归作者所有.商业转载请联系作者获 ...

  7. iPhone 中常用、好用的提醒类软件(闹钟、提醒事项、日历、滴答清单)

    iPhone 中常用.好用的提醒类软件(闹钟.提醒事项.日历.滴答清单) 背景 对比 iPhone 的提醒事项.闹钟.日历,以及第三方的滴答清单的通知的强弱程度,找出 iPhone 上好用的通知软件( ...

  8. 为什么苹果日历不能设置日程_iphone6提醒事项加入日历怎么不提醒我 到时

    iphone6提醒事项加入日历怎么不提醒我 到时 234游戏网友 提出于 2019-07-14 21:02:21 请问:iPhone6s plus如何添加提醒事项 1.苹果手机提醒事项不提醒,可以查看 ...

  9. 简单几步让iOS提醒事项和Micosoft To Do同步

    一.登录Microsoft To Do 二.在提醒事项中添加Outlook账户 设置->提醒事项->账户->添加账户->Outlook.com 最后设置一下需要推送的应用,只需 ...

最新文章

  1. sql的不等于条件优化_SQL优化案例(2):OR条件优化
  2. getRectSubPix函数
  3. 寻找冬日里的流量美食,发现了李子柒走红的秘密
  4. 精益软件开发简介之A版
  5. 【STM32】GPIO之LED
  6. 《Python深度学习》第四章的实验结果图汇总
  7. linux运行core控制台程序,VisualStudioCode创建的asp.net core控制台程序部署到linux
  8. 40_并发编程-事件
  9. SAP License:ERP到底能带给企业什么
  10. 怎么保存php格式,把php代码保存到php文件实现方法
  11. linux ruby安装目录,SuseLInux下安装Ruby 及 Rails遇到的问题及解决方法
  12. C++ Vector初始化(一维,多维)
  13. 修真院教学模式四大体系之学习方法篇
  14. Mysql语句商城系统表案例
  15. C++/C语言-基本语法
  16. 正好配资复盘观点:上证第一支撑位3426
  17. 关于java变量命名,介绍阿里JAVA命名规范及IDEA实时检测插件的使用以及CODELF取名神器
  18. mysql partition 语法,MySQL与瀚高数据库的范围分区的语法及实例(APP)
  19. css3探测光圈_CSS3光圈散开提示效果
  20. python pandas包,Python的常用包pandas,numpy

热门文章

  1. iOS和Android的差别
  2. 向日葵在mac不能以服务器运行吗,使用向日葵软件实现mac远程桌面连接windows的步骤...
  3. 04_51入门_数码管
  4. [最大独立集]Knights
  5. 博弈论学习之巴什博弈,尼姆博弈, sg博弈
  6. 计算机主要配件型号价格,你知道电脑的“五大主要部件”的选择吗?
  7. oracle 闪回空间爆满,基于ORA-19815闪回空间爆满问题的处理方法
  8. 什么是KYC,KYC认证的重要性
  9. python折叠次数计算珠穆朗玛峰_2019-07-26python作业2
  10. java设计模式-动态代理(InvocationHandler)