目的


在 MacOS 下利用定时任务创建提醒事项,使其即时显示在 iPhone 上。(例如降价提醒)

方法一:通过 cron 服务执行 AppleScript


  1. 在 /Users/<username>/ 下创建脚本 cron_reminder.sh

    #!/bin/bashosascript << END
    set mydate to (current date) + (1 * minutes)
    tell application "Reminders"make new reminder with properties {name:"This is a cron reminder", remind me date:mydate, due date:mydate}
    end tell
    END
    

    提醒时间设为当前时间再加一分钟,如果不加,在 MacOS 上会即时弹出提醒,但 iPhone 不会弹出(因为当前这一分钟已经过时了)。

    Reminders 的参数可以参考 “脚本编辑器”,打开「脚本编辑器」 → 新建一个脚本 → 用快捷键 ⌘⇧O 打开 AppleScript 字典(Dictionary)。

  2. 给脚本赋予执行权限

    chmod +x cron_reminder.sh
    
  3. 设置 cron job

    crontab -e
    * * * * * /Users/<username>/cron_reminder.sh
    
  4. 设置权限
    在 [设置] - [安全性与隐私] - [隐私] - [提醒事项] 里,把 ”cron“ 和 ”终端“ 勾上。有时系统会自动弹出提示要不要允许它们访问提醒事项,选“是”就行了。

  • 可以在脚本的前面添加你想要创建提醒事项的触发条件,例如监控某个商品降价的时候就给你发个提醒,看你怎么发挥了。

  • 用 AppleScript 添加日历日程的例子(可以在“脚本编辑器”里进行调试):

    tell application "Calendar"tell calendar "calendar-name"set theCurrentDate to current datemake new event at end with properties {description:"Event Decription", summary:"Event Name", location:"Event Location", start date:theCurrentDate + 1 * minutes, end date:theCurrentDate + 2 * minutes, url:"https://bing.com"}end tell
    end tell
    

参考

AppleScript 入门:探索 macOS 自动化
How can I add reminders via the command line?
Applescript set string to date and add 30 minutes
Applescript or Terminal : Add a event on calendar

方法二:通过 Mac launchd 执行 automator


  1. 打开 ”自动操作“ (automator),新建一个 ”工作流程“,在左边资源库里选 [日历],把 [新建提醒事项项目] 拖到右边窗口,就可以设定标题和日期等参数。设置好并保存为 /Users/<username>/launchd_reminder.workflow

  2. 再创建一个执行上面 workflow 的脚本 /Users/<username>/launchd_reminder.sh

    #!/bin/bash
    automator /Users/<username>/launchd_reminder.workflow
    
  3. 到 ~/Library/LaunchAgents 下新建文件 com.<username>.reminder.plist,注意替换里面 ProgramArguments 的脚本路径和 StartInterval 间隔时间(秒)。

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict><key>Label</key><string>com.test.reminder</string><key>ProgramArguments</key><array><string>/Users/<username>/launchd_reminder.sh</string></array><key>Nice</key><integer>1</integer><key>StartInterval</key><integer>60</integer><key>RunAtLoad</key><true/><key>StandardErrorPath</key><string>/tmp/cron.err</string><key>StandardOutPath</key><string>/tmp/cron.out</string>
    </dict>
    </plist>
    
  4. 加载 plist

    launchctl load com.<username>.reminder.plist
    

    可以用 list 查看刚才加载的服务(用 Label 标识)

    launchctl list com.test.reminder
    
  5. 第一次执行会弹出安全提示,效果跟 [设置] - [安全性与隐私] - [隐私] 里设置一样,点击 “是” 就OK了。如果要取消定时任务,则用 unload 卸载。

    launchctl unload com.<username>.reminder.plist

参考

Mac crontab: Creating MacOS startup jobs with crontab, er, launchd

总结

  • 方法一:简单直接,可以自由发挥,但要熟悉 AppleScript ,有一定的难度;
  • 方法二:可以傻瓜式选择要自动运行的服务和参数,但过程有点复杂。遗憾的是该方法不能设置当前时间为提醒时间,达不到iPhone 即时提醒的效果。

如何在 MacOS 创建定时任务和提醒事项相关推荐

  1. 实现 消息提醒图标_Mac 上自带的「提醒事项」千万别错过

    相信大部分人的手机或电脑上都有一款具有备忘或提醒功能的应用. 不管是在工作.学习还是生活中,借助这些工具能给我们带来很多便利. 比如,本期Mac毒要给大家介绍的就是 Mac 自带的「提醒事项」应用. ...

  2. 如何使用 Mac 上自带的「提醒事项」!

    相信大部分人的手机或电脑上都有一款具有备忘或提醒功能的应用.不管是在工作.学习还是生活中,借助这些工具能给我们带来很多便利.比如,本期小编要给大家介绍的就是 Mac 自带的「提醒事项」应用. ▍应用介 ...

  3. 如何使用 Mac 上自带的「提醒事项」

    相信大部分人的手机或电脑上都有一款具有备忘或提醒功能的应用.不管是在工作.学习还是生活中,借助这些工具能给我们带来很多便利. macOS 上的「提醒事项」界面设计得非常简约大方,直观易懂,便于使用. ...

  4. 如何在MacOS上创建第一个iOS Flutter应用

    文章目录 1.安装Flutter 2.设置iOS模拟器 3.在Flutter中创建一个Hello World应用 Google于2018年12月4日发布了Flutter 1.0,它是一款功能强大的工具 ...

  5. java 创建日程到期提醒_日程管理工具—Things 3

    Mac上最好用的日程管理工具是哪个?Things 3 for Mac是首选,Things3 Mac全新的设计,外观简洁.大气,功能也是非常强大的,让你用一种优雅而直观的方式来管理个人事务,无论在生活还 ...

  6. 如何干净的删除vm_如何在macOS 10.15 Catalina绕过XProtect?

    在macOS 10.15 Catalina中,Apple进行了许多安全性能地改进,包括通过使所有可执行文件都受XProtect扫描来加固系统,而不管文件是否带有com.apple.quarantine ...

  7. 如何在前端删除项目中的文件_如何在macOS上恢复已删除的文件

    有时候不小心删除了我们不打算删除的MacBook上的文件.在MacBook上恢复永久删除的文件非常困难,但这并非不可能.在本文中,我们将指导您如何恢复MacBook上最近恢复的文件或永久删除的文件.从 ...

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

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

  9. 怎么才能在Mac电脑提醒事项添加提醒事项

    如何在Mac电脑提醒事项应用中添加提醒事项?还有不少用户不知道Mac系统中的提醒事项到底怎样使用,今天跟随小编一起来看看Mac提醒事项的使用方法,希望Mac提醒事项的使用方法介绍可以帮助大家. 首先, ...

最新文章

  1. WINCE config.bib文件中的FSRAMPERCENT的意义
  2. hdu 4362(单调队列优化dp)
  3. Android的Intent Action 大全
  4. android listview使用自定义的adapter没有了OnItemClickListener事件解决办法
  5. java integer 包_java之学习基本类型包装类的概述及Integer类的概述和构造方法
  6. Unity3d官方测试插件学习-单元测试,集成测试
  7. 项目部署时,linux环境配置问题
  8. 收购 GitHub 滔天争议后,微软回应一切
  9. html如何插入动图,动态图片如何插入到PPT里?
  10. 圆和长方形周长相等谁的面积大_长方形,正方形和圆的面积相等时,谁的周长最大...
  11. 声纹识别概述(3)声纹识别系统
  12. npm i 安装时报错问题解决
  13. WMS系统关于退料的几种方式
  14. serializers.serialize
  15. 动漫培训学费一般多少钱
  16. 实验二 CPU 部件实现之 ALU 和寄存器堆
  17. linux+手机+gps,Linux环境下利用GPS+蓝牙实现移动定位
  18. python作业:有一个学生成绩表,包括学号、姓名、高数、英语,计算机。 录入若干个学生学号、姓名、高数、英语,计算机5项数据。 将学生成绩表数据写入文件,文件名为“学生成绩表.txt
  19. Python文档算法整理
  20. 记一次现网sentinel 造成的端口差异问题

热门文章

  1. html预览dwg文件,大佬救命!有关dwg文件预览的问题
  2. 可以让人变老的相机_变老相机软件盘点,四款可以让人变老的相机软件
  3. 杭电ACM:人见人爱A-B
  4. 心理学专业转用户体验_用户体验设计心理学
  5. JSON编辑器,在线与离线
  6. OpenCV Android以及扩展模块opencv_contrib的编译
  7. 拼多多开店怎么提高点击率?天创速盈提出应对措施
  8. File pyzed\sl.pyx, line 1, in init pyzed.sl ZED相机python API安装错误
  9. Ubuntu双网卡主机给其他主机共享网络
  10. 【重磅!】Certihash正在与IBM合作开发一款名为“哨兵节点(Sentinel Node)”的网络安全检测工具