真香!自动同步ios的提醒事项和日历,显示日打卡内容 - 知乎专栏
文章推薦指數: 80 %
ios的提醒事项没有日历视图,这是我一直想要的功能,以前一直寻求第三方软件,但是第三方软件都要收费,现在发现通过一个脚本就可以自动同步,于是自己动手写了个脚本 ...
首发于ios小技巧无障碍写文章登录/注册ios的提醒事项没有日历视图,这是我一直想要的功能,以前一直寻求第三方软件,但是第三方软件都要收费,现在发现通过一个脚本就可以自动同步,于是自己动手写了个脚本。
视频教程请戳脚本功能未完成的项目会添加到日历,日期是截止时间,位置一栏提醒了还剩多少时间完成项目以后会把打卡的日程添加到日历,时间是完成项目的时间在延期的时候会把未完成项目的截止日期改为当天,变为全天事项实现方法在iphone或者ipad下载scriptable打开app,新建一个脚本,将本文最后的脚本文件复制到里面。
打开ios自带的快捷指令app,创建一个自动化,在打开提醒事项或者日历的时候自动运行scriptable的同步脚本文件,记得吧alwaysruninapp这个选项关闭如果不想要每次打开两个app就自动运行脚本,也可以手动创建我的快捷指令,然后也是添加scriptable的脚本,把运行时显示和runinapp关闭,然后在首页的-1屏添加快捷指令的小组件,每天进行一键同步。
重要的一步!!需要在日历里面添加提醒事项列表名对应的日历列表名,只需要创建想同步的列表,不想显示在日历上的待办事项不需要创建列表。
例如然后打开app就可以一键同步啦脚本放下面,也可以自己去scriptable里面添加,写得比较丑希望大佬放过我!vardur_month=1
conststartDate=newDate()
startDate.setMonth(startDate.getMonth()-dur_month)
console.log(`日历的开始时间${startDate.toLocaleDateString()}`)
constendDate=newDate()
endDate.setMonth(endDate.getMonth()+dur_month)
console.log(`日历的结束时间${endDate.toLocaleDateString()}`)
constreminders=awaitReminder.allDueBetween(startDate,endDate)
console.log(`获取${reminders.length}条提醒事项`)
varcalendar=awaitCalendar.forEvents()
//获取日历名和对应的日历
varm_dict={}
for(calofcalendar)
{
m_dict[cal.title]=cal
//console.log(`日历:${cal.title}`)
}
constevents=awaitCalendarEvent.between(startDate,endDate,calendar)
console.log(`获取${events.length}条日历`)
varreminders_id_set=newSet(reminders.map(e=>e.identifier))
//删除日历里提醒事项删除的事项
events_created=events.filter(e=>e.notes!=null&&e.notes.includes("[Reminder]"))
for(leteventofevents_created){
//console.warn(event.notes)
letreg=/(\[Reminder\])\s([A-Z0-9\-]*)/
letr=event.notes.match(reg)
//if(r)console.log(r[2])
if(!reminders_id_set.has(r[2]))
{
event.remove()
}
}
for(constreminderofreminders){
//reminder的标识符
consttargetNote=`[Reminder]${reminder.identifier}`
const[targetEvent]=events.filter(e=>e.notes!=null&&e.notes.includes(targetNote))//过滤重复的reminder
if(!m_dict[reminder.calendar.title])
{
console.warn("找不到日历"+reminder.calendar.title)
continue
}
if(targetEvent){
//console.log(`找到已经创建的事项${reminder.title}`)
updateEvent(targetEvent,reminder)
}else{
console.warn(`创建事项${reminder.title}到${reminder.calendar.title}`)
constnewEvent=newCalendarEvent()
newEvent.notes=targetNote+"\n"+reminder.notes//要加入备注
updateEvent(newEvent,reminder)
}
}
Script.complete()
functionupdateEvent(event,reminder){
event.title=`${reminder.title}`
cal_name=reminder.calendar.title
cal=m_dict[cal_name]
event.calendar=cal
//console.warn(event.calendar.title)
//已完成事项
if(reminder.isCompleted)
{
event.title=`✅${reminder.title}`
event.isAllDay=true
event.startDate=reminder.dueDate
//event.endDate=reminder.dueDate
//varending=newDate(reminder.completionDate)
//ending.setHours(ending.getHours()+1)
//event.endDate=ending
varperiod=(reminder.dueDate-reminder.completionDate)/1000/3600/24
period=period.toFixed(1)
if(period<0)
{
period=-period
event.location="延期"+period+"天完成"
}
elseif(period==0)
{
event.location="准时完成"
}
else
{
event.location="提前"+period+"天完成"
}
}
//未完成事项
else{
constnowtime=newDate()
varperiod=(reminder.dueDate-nowtime)/1000/3600/24
period=period.toFixed(1)
//console.log(reminder.title+(period))
if(period<0)
{
//待办顺延
event.location="延期"+(-period)+"天"
//如果不是在同一天,设置为全天事项
if(reminder.dueDate.getDate()!=nowtime.getDate())
{
event.title=`❌${reminder.title}`
event.startDate=nowtime
event.endDate=nowtime
event.isAllDay=true
}
//在同一天的保持原来的时间
else
{
event.title=`⭕️${reminder.title}`
event.isAllDay=false
event.startDate=reminder.dueDate
varending=newDate(reminder.dueDate)
ending.setHours(ending.getHours()+1)
event.endDate=ending
}
console.log(`【${reminder.title}】待办顺延${-period}天`)
}
else
{
event.title=`⭕️${reminder.title}`
event.isAllDay=false
event.location="还剩"+period+"天"
event.startDate=reminder.dueDate
varending=newDate(reminder.dueDate)
ending.setHours(ending.getHours()+1)
event.endDate=ending
}
}
if(!reminder.dueDateIncludesTime)
event.isAllDay=true
event.save()
}
编辑于2022-09-1700:10iOS时间管理提醒事项(app)赞同570300条评论分享喜欢收藏申请转载文章被以下专栏收录ios小技巧分享一些使用ios的小技巧
延伸文章資訊
- 1就能輕鬆實現iOS行事曆與提醒事項即時同步! | Facebook
相信有不少人都會將臨時代辦事項記錄在iPhone「提醒事項」App內,如果想要將iOS「提醒事項」自動同步到「行事曆」內要怎麼做?同步功能似乎需要依賴第三方App 才能 ...
- 2iPhone內建「提醒事項」其實超好用!10大「隱藏版技巧」讓 ...
今天編輯就要告訴大家iPhone內建的「提醒事項」App,有十個實用功能可以 ... 地點傳給你時,不但可以將其直接加入行事曆,也能一舉同步到提醒事項裡, ...
- 3如果iCloud「聯絡人」、「行事曆」或「提醒事項」無法同步
檢查App 設定 · 點一下「設定」,然後點一下「行事曆」。 · 點一下「同步」。 · 如果已選取「所有行程」,請改成選擇特定的時間範圍,例如「1 個月以來的行程 ...
- 4真香!自动同步ios的提醒事项和日历,显示日打卡内容 - 知乎专栏
ios的提醒事项没有日历视图,这是我一直想要的功能,以前一直寻求第三方软件,但是第三方软件都要收费,现在发现通过一个脚本就可以自动同步,于是自己动手写了个脚本 ...
- 5终极解决方案!一键同步ios【提醒事项】到【日历】
一键同步ios【提醒事项】到日历,实现打卡显示到日历功能!告别第三方时间管理软件!需要下载一个免费的javascript软件:scriptable,然后添加我的脚本脚本内容和图文 ...