我今天愿意用汉堡换你下周二的钱

作者:Shawn Powers

我的日常工作是在每个月的15号和最后一天支付工资,除非这些日子正好是周末,在这种情况下,我会在之前的周五收到工资。根据这些规则,创建一个Google Calendar活动非常困难。 事实上,不可能使用Google的GUI计划工具创建具有这些规则的重复事件。

幸运的是,您可以从.ical文件导入事件,并且Google将理解更复杂的计划。 在我的例子中,我需要两个单独的事件。 对于每个月的15号,如果周末则在周五支付工资,以下是.ical文件:


BEGIN:VCALENDAR
BEGIN:VEVENT
DTSTART:20170101
DTEND:20170101
RRULE:FREQ=MONTHLY;BYDAY=FR;BYMONTHDAY=13
RRULE:FREQ=MONTHLY;BYDAY=FR;BYMONTHDAY=14
RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYMONTHDAY=15
SUMMARY: Get Paid
END:VEVENT
END:VCALENDAR

DTSTARTDTEND日期设置为您第一次希望重复事件开始的时间。 我只是从2017年1月1日开始。如果您阅读这些逻辑,基本上,如果周五是13号,或者周五是14号,或者任何工作日落在15号,则该事件将被安排在周五。 规则按顺序评估,因此如果周五是13号或14号,则该事件会安排在当天。

除了周末之外,每个月的最后一天实际上有点复杂,但仍然可行。 该事件看起来像这样:


BEGIN:VCALENDAR
BEGIN:VEVENT
DTSTART:20170101
DTEND:20170101
RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1;WKST=MO;
SUMMARY: Get Paid
END:VEVENT
END:VCALENDAR

该逻辑有点难以理解,实际上我必须改编Stack Overflow上的一篇文章才能使其工作。 它们似乎都运行完美,所以我没有抱怨。

为了将它们添加到您的日历,您只需使用上述文本保存两个文本文件。 我不确定是否需要.ical扩展名,但这是文件的类型,所以我建议使用它。 然后您“导入”一个日历,并且您将被询问要将事件添加到哪个日历。 不幸的是,如果您需要更改计划,您将必须删除该事件并重新创建/导入它,因为它无法通过Google GUI进行调整。 但是,重点是算出日期,这样我就不必再编辑它了。

Shawn是Linux Journal的副编辑,并且从一开始就参与Linux。他对开源充满热情,并且喜欢教学。 他也喝太多的咖啡,这经常在他的写作中表现出来。

加载Disqus评论