{"id":5920,"date":"2020-01-19T12:24:35","date_gmt":"2020-01-19T17:24:35","guid":{"rendered":"https:\/\/www.rushworth.us\/lisa\/?p=5920"},"modified":"2020-01-27T15:43:43","modified_gmt":"2020-01-27T20:43:43","slug":"scraping-calendar-events","status":"publish","type":"post","link":"https:\/\/www.rushworth.us\/lisa\/?p=5920","title":{"rendered":"Scraping Calendar Events"},"content":{"rendered":"<p>We&#8217;ve learned the value of engaging with local government &#8212; with few people involved in local proceedings, it&#8217;s pretty easy for a generally unpopular proposal to seem reasonable. And then we&#8217;re all stuck with the generally unpopular regulation. It is a pain, however, to keep manually adding the next Trustee meeting. And there&#8217;s no way I&#8217;m checking the website daily to find out about any emergency meetings.<\/p>\n<p>Now I&#8217;m <a href=\"https:\/\/github.com\/ljr55555\/getInfoFromPublicGoogleCalendar\" target=\"_blank\" rel=\"noopener noreferrer\">pulling the events from their Google calendar<\/a> and creating new meeting items in my Exchange calendar:<\/p>\n<ol>\n<li><a href=\"https:\/\/developers.google.com\/docs\/api\/quickstart\/python\" rel=\"nofollow\">Register the app with Google to use the API<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/ecederstrand\/exchangelib\">Install exchangelib<\/a><\/li>\n<li>Copy config.sample to config.py and add personal information<\/li>\n<li>Create a ca.crt file with the CA signing key for your Exchange server (or remove the custom adapter if your server cert is signed by a public key)<\/li>\n<li>Run getCalendarEvents.py and follow the URL to authorize access to your calendar<\/li>\n<\/ol>\n<p>I&#8217;ve tweaked the script to <a href=\"https:\/\/github.com\/ljr55555\/getInfoFromSchoolPointe\" target=\"_blank\" rel=\"noopener noreferrer\">grab events from the school district&#8217;s calendar in SchoolPointe<\/a> too. Now we <em>know<\/em> when there&#8217;s a school board meeting or dress-up day.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>We&#8217;ve learned the value of engaging with local government &#8212; with few people involved in local proceedings, it&#8217;s pretty easy for a generally unpopular proposal to seem reasonable. And then we&#8217;re all stuck with the generally unpopular regulation. It is a pain, however, to keep manually adding the next Trustee meeting. And there&#8217;s no way &hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[33,63],"tags":[896,821,664,897],"class_list":["post-5920","post","type-post","status-publish","format-standard","hentry","category-coding","category-home-automation","tag-calendar","tag-microsoft-exchange","tag-python","tag-scheduling"],"_links":{"self":[{"href":"https:\/\/www.rushworth.us\/lisa\/index.php?rest_route=\/wp\/v2\/posts\/5920","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rushworth.us\/lisa\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rushworth.us\/lisa\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rushworth.us\/lisa\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rushworth.us\/lisa\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5920"}],"version-history":[{"count":1,"href":"https:\/\/www.rushworth.us\/lisa\/index.php?rest_route=\/wp\/v2\/posts\/5920\/revisions"}],"predecessor-version":[{"id":5922,"href":"https:\/\/www.rushworth.us\/lisa\/index.php?rest_route=\/wp\/v2\/posts\/5920\/revisions\/5922"}],"wp:attachment":[{"href":"https:\/\/www.rushworth.us\/lisa\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5920"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rushworth.us\/lisa\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5920"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rushworth.us\/lisa\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5920"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}