Answers:
使用AppleScript可以做到这一点。
如果您熟悉这项技术,您应该只浏览iCal和Mail相应的字典。如果没有,那就是熟悉的机会!这是一个很好的起点。
这是一个你可以使用的非常基本的脚本(仅在Snow Leopard上测试,但在Lion上也可以正常工作):
tell application "Mail"
set theSelection to selection
set theMessage to first item of theSelection
set theSumm to subject of theMessage
set theDescription to "From : " & sender of theMessage
set theUrl to "message:%3C" & message id of theMessage & "%3E"
end tell
tell application "iCal"
make todo at end of events of (first item of every calendar) with properties {summary:theSumm, description:theDescription, url:theUrl}
end tell
为了在Mail中轻松使用它,您应该将其保存~/Library/Scripts/Applications/Mail/
(如果它们不存在则创建文件夹)并激活AppleScript编辑器首选项中的Scripts菜单栏项。这是你在Mail时的结果:
您还可以使用生产力工具来启动脚本。那里有很多,但我个人使用Keyboard Maestro和Alfred。
还有很大的改进空间。例如,您可以设置默认警报,将其插入给定日历...为了自己改进它,请使用AppleScript字典:它是您可以找到的最佳参考。但是,这些链接也可能有用,因为它们提供了许多示例(有些可能太旧):脚本邮件和脚本iCal。
在Snow Leopard中,我使用MailTag作为Mail插件,使用Mail.app。在MailTag中,您可以创建实际在iCal中创建的任务。但是,MailTag在Lion中发布了Mail.app的新版本并暂时删除了此功能。
由于我使用Things来管理日常任务,我通常只是将邮件消息拖到Dock中的Things图标中并在那里创建一个任务。事情会将任务同步到iCal。
使用Automator可能会有一个更简单的解决方案,至少对我的需求而言。此解决方案采用选定的文本,并将其用作预先设置的iCal日历/待办事项列表中的新提醒的标题。
当我问起我想要创建什么时,我启动了Automator并选择了“Service”。
我在默认情况下保留了初始设置(“服务在[任何应用程序]中接收选定的[文本]”)
从左侧的“库”窗格中,我选择了“日历”,然后从中间窗格中选择“新建待办事项”。然后我选择了添加到:[现有日历]并选择了一个日历(我的默认提醒日历,它在iCloud上并与我的iPhone同步)。Automator假设(正确)您要将任何选定的文本提供给新的待办事项。出于我的目的,通过勾选复选框并选择“中”来设置默认优先级是有意义的,但您的需求可能会有所不同。
我将服务保存为CreateReminder(Automator自动附加扩展名.workflow)。Voila,当我选择文本时,该服务显示在Mail.app中,右键单击它,然后选择服务> CreateReminder。
作为奖励,这使您可以在任何应用程序中创建所选文本的提醒,而不仅仅是在Mail.app中。
我可以推荐这个第三方解决方案让这个大脑变得容易:很奇妙
这将做你要求的一切。
Fantastical适用于您最喜爱的Mac日历应用程序:iCal,BusyCal,Entourage或Outlook。您甚至可以使用Google日历或Yahoo! 日历
关于FANTASTICAL的关键是它如何仅仅通过自然语言分析创建一个新的iCal任务(或事件)。
作为一个例子,这个macrumours的摘录Fantastical review:
使用先进的自然语言引擎,Fantastical非常具有表现力,允许用户以自己的风格输入事件文本。例如,输入一个句子,例如“周二在123 Main Street与John共进午餐”,Fantastical会将句子翻译成一个事件并将其添加到他们的日历中。
如何创建工作流以获得使用Fantastical从电子邮件添加iCal任务或事件的能力的示例是:
(以下假设您已创建新的Automator任务以将剪贴板复制的文本传递给FANTASTICAL):
选择要用于新任务的电子邮件句子,例如“在周五完成此操作”。
通过CMD+ 复制此选定任务C
点击预定义的快捷键,使用FANTASTICAL的自然语言引擎将复制到剪贴板的文本作为新任务(或事件)直接处理到iCal中
或 - (如果您不想使用Automator):
选择要用于新任务的电子邮件句子,例如“在周五完成此操作”。
通过CMD+ 复制此选定任务C
点击您在FANTASTICAL中预定义的任何键盘快捷键。
将所选文本粘贴到FANTASTICAL输入字段中,然后单击“确定”。
繁荣!您的新任务(或事件)已经通过FANTASTICAL令人难以置信的“自然语言”引擎添加到您的iCal日历中。
我编辑了一个在网上找到的旧AppleScript与Reminders一起工作。它使用邮件主题作为标题,使用邮件正文作为注释。需要注意的是iCal必须处于活动状态,否则工作流程将失败。我已将iCal设置为最小化服务运行的时间。我还在最后为Reminders添加了一个启动。我似乎无法弄清楚的唯一一件事是添加一个电子邮件的链接,但除此之外它运作良好。
on run {input, parameters}
tell application "Calendar" to activate
tell application "Calendar"
set miniaturized of window 1 to true
tell application "Mail"
set theSelection to selection
set theMessage to item 1 of theSelection
set theurl to "message://%3c" & theMessage's message id & "%3e"
set thedes to theMessage's content
set input to theMessage's subject
end tell
end tell
tell application "Calendar"
tell calendar "Reminders"
make new todo at end with properties {url:theurl, summary:input, description:thedes}
end tell
end tell
return input
end run
希望这有助于某人!凯文