← 返回
未分类 中文

macOS AppleScript Fallback (Reminders / Notes / Calendar / iMessage)

Reliable macOS AppleScript fallback for creating Apple Reminders, Apple Notes, Apple Calendar events, and sending iMessage when direct tool/plugin routes are...
当直接工具/插件路径不可用时,通过 macOS AppleScript 作为可靠的备用方案,用于创建 Apple 提醒事项、Apple 备忘录、Apple 日历事件及发送 iMessage。
qy-zhang qy-zhang 来源
未分类 clawhub v1.0.0 1 版本 100000 Key: 无需
★ 0
Stars
📥 641
下载
💾 6
安装
1
版本
#latest

概述

macOS AppleScript Fallback

Use local shell + AppleScript for 4 tasks:

  1. Create reminder (Reminders)
  2. Create note (Notes)
  3. Create calendar event (Calendar)
  4. Send iMessage (Messages)

Prefer bundled scripts in scripts/ over ad-hoc inline AppleScript for consistency and compatibility.

Quick Start

Run these scripts directly:

# reminder
./scripts/create_reminder.sh "今晚8点吃晚饭" "2026-03-22 20:00:00"

# note (HTML body required)
./scripts/create_note.sh "<h1>武汉三日游</h1><p>Day1 黄鹤楼...</p>" "iCloud"

# calendar
./scripts/create_calendar_event.sh "跑步" "个人" "2026-03-23 08:00:00" "2026-03-23 08:30:00"

# iMessage
./scripts/send_imessage.sh "zhangqianyi1995@icloud.com" "武汉下周末天气:..."

Workflow

Step 1: Clarify user intent + required fields

  • Reminder: title, optional datetime
  • Note: title/body content (render as HTML), optional account name
  • Calendar: title, calendar name, start datetime, end datetime
  • iMessage: recipient (phone or Apple ID), message text

If missing required fields, ask one concise follow-up question.

Step 2: Execute script (not plugin)

Always call the corresponding script in scripts/.

Why:

  • avoids low-version parser differences
  • centralizes fallback logic
  • easier to debug and publish

Step 3: Confirm result to user

  • If script returns an object/id or sent, report success.
  • If no output but exit code is 0, still report success and suggest user verify in app UI.

Step 4: On failure, diagnose quickly

Use checks from references/troubleshooting.md.

Most frequent root causes:

  • macOS Automation permission prompt not approved
  • locale-dependent date parsing format
  • Messages iMessage service/account not initialized
  • target calendar/account name mismatch

Compatibility Rules (important)

  1. Avoid locale-fragile date strings where possible.
  2. Messages: resolve service by service type = iMessage, not by hard-coded service name.
  3. Calendar: if named calendar doesn’t exist, fallback to first calendar.
  4. Notes: if account iCloud is missing, fallback to default account.
  5. Notes body uses HTML (

    ,

    ) for stable rendering.

Output style to user

Keep concise and concrete:

  • what was created/sent
  • key details (time/target)
  • returned ID (if any)
  • one-line next step if verification needed

Bundled Resources

scripts/

  • create_reminder.sh
  • args: ["YYYY-MM-DD HH:MM:SS"]</code></li><li><code>create_note.sh</code></li><li>args: <code><html-body> [account-name]</code></li><li><code>create_calendar_event.sh</code></li><li>args: <code><title> <calendar-name> <start> <end></code></li><li><code>send_imessage.sh</code></li><li>args: <code><buddy(phone/appleid)> <message></code></li></ul><h3>references/</h3><ul><li><code>troubleshooting.md</code></li><li>permission/automation prompts</li><li>date parsing and locale issues</li><li>Messages service/account init</li><li>calendar/account fallback checks</li><li>diagnostic commands</li></ul></div> </div> </div> <div id="tab-versions" class="detail-content"> <div class="detail-section"> <h2>版本历史</h2> <p style="margin-bottom:12px;font-size:14px;color:#94a3b8;">共 1 个版本</p> <ul class="version-list"> <li> <div> <span class="version-tag">v1.0.0</span> <span style="font-size:11px;color:#5b6abf;margin-left:8px;background:#eef0ff;padding:1px 8px;border-radius:10px;">当前</span> </div> <div style="font-size:12px;color:#94a3b8;"> 2026-03-30 19:28 安全 安全 </div> </li> </ul> </div> </div> <div id="tab-security" class="detail-content"> <div class="detail-section"> <h2>安全检测</h2> <div class="sec-grid"> <div class="sec-card"> <h4>腾讯云安全 (Keen)</h4> <div class="sec-status sec-safe"> 安全,无风险 </div> <a href="https://tix.qq.com/search/skill?keyword=87f9f158529ea1a6ce8009faed637400" target="_blank">查看报告</a> </div> <div class="sec-card"> <h4>腾讯云安全 (Sanbu)</h4> <div class="sec-status sec-safe"> 安全,无风险 </div> <a href="https://static.cloudsec.tencent.com/html-report-v2/2026/05/25/416885_80489ec393cf841273f90fc733fc00a4.html?q-sign-algorithm=sha1&q-ak=AKID8JMG1bzBC1dz96qNhssfFftujT1NCoFi&q-sign-time=1782158860%3B1813694860&q-key-time=1782158860%3B1813694860&q-header-list=host&q-url-param-list=&q-signature=010e9b5760a6b56b8cafcd042db0f9a399384725" target="_blank">查看报告</a> </div> </div> </div> </div> <!-- Recommended Skills --> <div style="margin-top:24px;"> <h2 style="font-size:18px;font-weight:600;margin-bottom:16px;">🔗 相关推荐</h2> <div class="rec-grid"> <div class="rec-card"> <span class="badge-cat" style="margin-bottom:8px;display:inline-block;">ai-agent</span> <h3><a href="/s/self-improving">Self-Improving + Proactive Agent</a></h3> <div class="rec-owner">ivangdavila</div> <div class="rec-desc">自我反思+自我批评+自我学习+自组织记忆。智能体评估自身工作、发现错误并持续改进。</div> <div class="rec-stats"> <span style="color:#f39c12;">★ 1,402</span> <span style="color:#5b6abf;">📥 323,492</span> </div> </div> <div class="rec-card"> <span class="badge-cat" style="margin-bottom:8px;display:inline-block;">ai-agent</span> <h3><a href="/s/self-improving-agent">self-improving agent</a></h3> <div class="rec-owner">pskoett</div> <div class="rec-desc">捕获经验教训、错误及修正内容,以实现持续改进。适用于以下场景:(1)命令或操作意外失败;(2)用户纠正Claude(如“不,那不对……”“实际上……”);(3)用户请求的功能不存在;(4)外部API或工具出现故障;(5)Claude发现自身</div> <div class="rec-stats"> <span style="color:#f39c12;">★ 4,114</span> <span style="color:#5b6abf;">📥 835,582</span> </div> </div> <div class="rec-card"> <span class="badge-cat" style="margin-bottom:8px;display:inline-block;">ai-agent</span> <h3><a href="/s/find-skills">Find Skills</a></h3> <div class="rec-owner">guipi888</div> <div class="rec-desc">场景驱动+关键词双模式技能发现工具。当用户用自然语言描述场景/需求(如"我想做一个海报""帮我分析股票"),或明确说"安装技能/find skills/找个skill"时,自动从官方内置、本地已安装、SkillHub、虾评、GitHub、C</div> <div class="rec-stats"> <span style="color:#f39c12;">★ 1,480</span> <span style="color:#5b6abf;">📥 542,906</span> </div> </div> </div> </div> </div> <script> document.addEventListener('DOMContentLoaded',function(){ document.querySelectorAll('.detail-tab').forEach(function(btn){ btn.addEventListener('click',function(e){ var tab = this.getAttribute('data-tab'); document.querySelectorAll('.detail-tab').forEach(function(b){b.classList.remove('active')}); document.querySelectorAll('.detail-content').forEach(function(c){c.classList.remove('active')}); this.classList.add('active'); var el = document.getElementById('tab-'+tab); if(el) el.classList.add('active'); }); }); }); </script> <div class="footer"> <p>Skill工具集 © 2026</p> </div></body> </html>