【问题标题】:Automator + Calendar: Duplicate events from “Filter Calendar Events” and add to another calendarAutomator + 日历:从“过滤日历事件”中复制事件并添加到另一个日历
【发布时间】:2017-05-21 09:22:18
【问题描述】:

我正在尝试将事件子集从一个日历复制到另一个日历,忽略任何重复发生。

使用纯 AppleScript 解决方案很难解析循环事件,但 Automator 会通过循环查看与过滤器参数匹配的事件实例,所以这是我采用的方法。

如何创建从“过滤日历事件”输出的事件的副本并将它们添加到给定的日历中? (不用担心添加重复项)

【问题讨论】:

    标签: macos scripting calendar automation applescript


    【解决方案1】:

    我不知道 applescript 操作是否或如何处理从日历操作传递的数据对象。

    您没有指定要对事件数据执行的操作,但我建议的解决方案是在“过滤日历事件”操作之后添加“事件摘要”操作。这将传递一个包含所有事件详细信息的字符串,如下所示:

    "TOTAL EVENTS: 2
    
    EVENT 1 OF 2
    Summary:    PTO Meeting
    Status: none
    Date:   1/11/17 to 1/11/17
    Time:   8:30:00 AM to 9:30:00 AM
    
    EVENT 2 OF 2
    Summary:    MW Board Meeting
    Status: none
    Date:   1/11/17 to 1/11/17
    Time:   1:00:00 PM to 2:00:00 PM
    "
    

    因此,您的脚本操作可以解析数据:

    on run {input}
        set eventSummary to input as text -- or item 1 of input
        -- parse the string
        return
    end run
    

    同样,您没有指定要对返回的事件做什么,因此无法建议您需要什么字符串解析,但应该很容易弄清楚。

    【讨论】:

    • 好的,我添加了一个关于我实际想要做的事情的简短说明。基本上将事件的子集从一个日历复制到另一个日历。摘要是一种很好的方法,但是如何将摘要转换回等效事件(如果可能,不要进行一些混乱的字符串解析)?
    • 是的,通过使用 clean :) 字符串解析,以及:告诉日历“MyCal”以属性 {description:mySummary, summary:mySummary, start date:startDate, end date 结束新事件:结束日期}。你也可以在 Applescript 中做所有的事情,但这会很糟糕,因为“谁”调用在 applescript 中获取 Cal 事件变得非常慢,非常快。
    • 您是否还需要帮助解析“EVENT 1 OF 2 摘要:PTO 会议状态:无 日期:1/11/17 至 1/11/17 时间:上午 8:30:00 至 9:上午 30:00”?
    • 不,我现在开始工作了。谢谢!很快就会更新这个问题。
    • 我最终使用了 Run Javascript,因为 js 更适合字符串解析。现在一切正常!谢谢你的建议,就在我脸上哈哈。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-06
    • 1970-01-01
    相关资源
    最近更新 更多