{"id":10918,"date":"2015-03-30T19:11:44","date_gmt":"2015-03-30T23:11:44","guid":{"rendered":"http:\/\/mjtsai.com\/blog\/?p=10918"},"modified":"2015-03-30T19:11:44","modified_gmt":"2015-03-30T23:11:44","slug":"fantastical-and-multiple-events","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2015\/03\/30\/fantastical-and-multiple-events\/","title":{"rendered":"Fantastical and Multiple Events"},"content":{"rendered":"<p><a href=\"http:\/\/leancrew.com\/all-this\/2015\/02\/fantastical-and-multiple-events\/\">Dr. Drang<\/a>:<\/p>\n<blockquote cite=\"http:\/\/leancrew.com\/all-this\/2015\/02\/fantastical-and-multiple-events\/\">\n<p>So I&rsquo;ve tried to come up with ways to make entering several similar calendar entries as painless as possible. Back when I was using TextMate, <a href=\"http:\/\/www.leancrew.com\/all-this\/2010\/01\/calendar-events-bundle-for-textmate\/\">I had a system<\/a> in which I entered one event per line with pipe characters (|) separating the description, date, time, duration, and location fields. These would then be converted into an <code>.ics<\/code> file and imported into iCal. That worked fairly well, but errors were sometimes hard to catch because the pipe separators made the lines noisy and difficult to read.<\/p>\n<p>Enter <a href=\"https:\/\/itunes.apple.com\/us\/app\/fantastical-calendar-reminders\/id435003921?mt=12&amp;uo=4&amp;at=10l4Fv\">Fantastical<\/a> and its <a href=\"http:\/\/www.leancrew.com\/all-this\/2013\/04\/whats-really-great-about-fantastical\/\">natural language parsing<\/a>. Even better, enter Fantastical&rsquo;s small but powerful AppleScript dictionary that allows you to write programs that use its NLP.<\/p>\n<p>[&#8230;]<\/p>\n<p>Is writing a file with a bunch of lines like this really easier than just typing them directly into Fantastical&rsquo;s entry field? That depends on the power of your text editor and how good you are at exploiting that power. The lines have a lot of repeated text, and if you&rsquo;re good at using things like copy-and-paste, search-and-replace, column editing, and multiple cursors, you&rsquo;ll probably find that entering 15&#8211;20 lines in a file is distinctly faster.<\/p>\n<\/blockquote>\n<p>It&rsquo;s kind of like using a BBEdit shell worksheet. There&rsquo;s a point&mdash;in between entering the commands manually and writing a script to generate them all&mdash;where it makes sense to <em>construct<\/em> them in an interactive editor and then execute all the lines.<\/p>","protected":false},"excerpt":{"rendered":"<p>Dr. Drang: So I&rsquo;ve tried to come up with ways to make entering several similar calendar entries as painless as possible. Back when I was using TextMate, I had a system in which I entered one event per line with pipe characters (|) separating the description, date, time, duration, and location fields. These would then [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"","apple_news_api_id":"","apple_news_api_modified_at":"","apple_news_api_revision":"","apple_news_api_share_url":"","apple_news_coverimage":0,"apple_news_coverimage_caption":"","apple_news_is_hidden":false,"apple_news_is_paid":false,"apple_news_is_preview":false,"apple_news_is_sponsored":false,"apple_news_maturity_rating":"","apple_news_metadata":"\"\"","apple_news_pullquote":"","apple_news_pullquote_position":"","apple_news_slug":"","apple_news_sections":"\"\"","apple_news_suppress_video_url":false,"apple_news_use_image_component":false,"footnotes":""},"categories":[2],"tags":[159,154,194,30,232],"class_list":["post-10918","post","type-post","status-publish","format-standard","hentry","category-technology","tag-applescript","tag-bbedit","tag-fantastical","tag-mac","tag-python"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/10918","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/comments?post=10918"}],"version-history":[{"count":1,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/10918\/revisions"}],"predecessor-version":[{"id":10919,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/10918\/revisions\/10919"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=10918"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=10918"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=10918"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}