{ "version": "https://jsonfeed.org/version/1.1", "user_comment": "This feed allows you to read the posts from this site in any feed reader that supports the JSON Feed format. To add this feed to your reader, copy the following URL -- https://matoken.org/blog/tag/calendar/feed/json/ -- and add it your reader.", "home_page_url": "https://matoken.org/blog/tag/calendar/", "feed_url": "https://matoken.org/blog/tag/calendar/feed/json/", "language": "ja", "title": "Calendar – matoken's blog", "description": "Is there no plan B?", "icon": "https://matoken.org/blog/wp-content/uploads/2025/03/cropped-1865f695c4eecc844385acef2f078255036adccd42c254580ea3844543ab56d9.jpeg", "items": [ { "id": "http://matoken.org/blog/?p=3163", "url": "https://matoken.org/blog/2021/03/31/post-your-calendar-to-discord-with-webhooks/", "title": "\u30ab\u30ec\u30f3\u30c0\u30fc\u3092Webhooks\u3067Discord\u306b\u6295\u7a3f", "content_html": "
\n

\u4ee5\u4e0b\u306e\u8a18\u4e8b\u3067DavCal\u3084Google\u30ab\u30ec\u30f3\u30c0\u30fc\u3092\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u3067\u95b2\u89a7\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\uff0e

\n
\n
\n\n
\n
\n

\u305b\u3063\u304b\u304f\u306a\u306e\u3067Discord\u306b\u3082\u6bce\u671d\u305d\u306e\u65e5\u306e\u30a4\u30d9\u30f3\u30c8\u3092\u6295\u7a3f\u3059\u308b\u3088\u3046\u306b\u3057\u3066\u307f\u307e\u3059\uff0e

\n
\n
\n

Discord\u306fWebhooks\u3092\u4f7f\u3063\u3066\u304b\u3093\u305f\u3093\u306b\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u6295\u7a3f\u3059\u308b\u3053\u3068\u304c\u51fa\u6765\u307e\u3059\uff0e

\n
\n
\n\n
\n
\n

\u6295\u7a3f\u3057\u305f\u3044\u30c1\u30e3\u30f3\u30cd\u30eb\u306e\"\u2699\"\u30a2\u30a4\u30b3\u30f3\u300c\u30c1\u30e3\u30f3\u30cd\u30eb\u306e\u7de8\u96c6\u300d\u304b\u3089\u300c\u9023\u643a\u30b5\u30fc\u30d3\u30b9\u300d\u2192\u300c\u30a6\u30a7\u30d6\u30d5\u30c3\u30af\u300d\u304b\u3089\u64cd\u4f5c\u3067\u304d\u307e\u3059\uff0e
\n\u65b0\u3057\u3044\u30a6\u30a7\u30d6\u30d5\u30c3\u30af\u3092\u4f5c\u6210\u3057\uff0c\u6295\u7a3f\u30c1\u30e3\u30f3\u30cd\u30eb\u3092\u78ba\u8a8d\u3057\u3066\u300c\u30a6\u30a7\u30d6\u30d5\u30c3\u30afURL\u3092\u30b3\u30d4\u30fc\u300d\u3067Webhooks URL\u3092\u5165\u624b\u3057\u307e\u3059\uff0e

\n
\n
\n

Webhooks URL\u306f\u3053\u3093\u306a\u611f\u3058\u306e\u3082\u306e\u3067\u3059\uff0e
\nhttps://ptb.discord.com/api/webhooks/826777625053495306/QZoG2LLZOFlsKO_Auf1IQcXHVFozlgU37EGO9bhQKAifzZ0VAkyIYuQjRSzuOvC7U1gR

\n
\n
\n

curl\u3067\u6295\u7a3f\u30c6\u30b9\u30c8\u3092\u3057\u3066\u307f\u307e\u3059\uff0e

\n
\n
\n
\n
$ curl -X POST -H \"Content-Type: application/json\" \\\n  -d '{\"username\": \"\u30dc\u30c3\u30c8\", \"content\": \"\u3053\u3093\u306b\u3061\u306f\"\ud83e\udd16\"\"}' \\\n  'https://ptb.discord.com/api/webhooks/826777625053495306/QZoG2LLZOFlsKO_Auf1IQcXHVFozlgU37EGO9bhQKAifzZ0VAkyIYuQjRSzuOvC7U1gR'
\n
\n
\n
\n

\"Discord

\n
\n
\n

\u3053\u308c\u3067\u6295\u7a3f\u3067\u304d\u307e\u3057\u305f :)

\n
\n
\n

Discord\u306b\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u6295\u7a3f\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u306e\u3067\uff0c\u4ee5\u4e0b\u306e\u30a8\u30f3\u30c8\u30ea\u3067\u66f8\u3044\u305f khal \u30b3\u30de\u30f3\u30c9\u3067\u4eca\u65e51\u65e5\u5206\u306e\u4e88\u5b9a\u30bf\u30a4\u30c8\u30eb\u3092\u5165\u624b\u3057\u3066Discord\u306b\u6295\u7a3f\u3059\u308b\u3088\u3046\u306b\u3057\u3066\u307f\u307e\u3059\uff0e

\n
\n
\n\n
\n
\n

\u4ee5\u4e0b\u306e\u9069\u5f53\u306aScript\u3092\u7528\u610f\u3057\u307e\u3057\u305f\uff0e

\n

\n2021-04-01 \u7de8\u96c6)
\n\u30a4\u30d9\u30f3\u30c8\u304c\u306a\u3044\u65e5\u306b\u3082\u6295\u7a3f\u3057\u3066\u3057\u307e\u3063\u3066\u3044\u305f\u306e\u3092\u4fee\u6b63&Bashism\u3060\u3063\u305f\u306e\u3092sh\u3067\u52d5\u304f\u3088\u3046\u4fee\u6b63

\n
\n
\n
\n
#!/bin/sh\n# khal\u30b3\u30de\u30f3\u30c9\u3067\u4eca\u65e5\u306e\u4e88\u5b9a\u3092\u5165\u624b\u3057\u3066Discord\u306bpost\u3059\u308b\n# https://matoken.org/blog/2021/03/31/post-your-calendar-to-discord-with-webhooks/\n\n# Discord\u306eWebhook URL\n# \u4ee5\u4e0b\u306eURL\u3092\u53c2\u8003\u306b\u5165\u624b\u3057\u3066\u8a2d\u5b9a\u3059\u308b\n# https://support.discord.com/hc/ja/articles/228383668-%E3%82%BF%E3%82%A4%E3%83%88%E3%83%AB-Webhooks%E3%81%B8%E3%81%AE%E5%BA%8F%E7%AB%A0\nDISCORD_WEBHOOK='https://ptb.discord.com/api/webhooks/\u2026\u2026\u2026\u2026'\n\n# khal\n#   list -> \u4e00\u89a7\u8868\u793a\n#   --format \"{title}\" -> \u30bf\u30a4\u30c8\u30eb\u3060\u3051\u8868\u793a\n#   today -> \u4eca\u65e5\u304b\u3089\n#   today -> \u4eca\u65e5\u307e\u3067\n# sed -> json\u306e\u6539\u884c\u5f62\u5f0f\u306b\u5909\u63db\nCAL=$(khal list --format \"{title}\" today today | sed -z -e \"s/\\n/\\\\\\\\\\\\\\\\n/g\")\n\n# \u30a4\u30d9\u30f3\u30c8\u306e\u306a\u3044\u65e5\u306f\u6295\u7a3f\u305b\u305a\u7d42\u4e86\nif [ \"${CAL}\" = 'No events\\\\n' ]\nthen\n  echo \"${CAL}\"\n  exit\nfi\n\nMSG=$(printf '{\"username\": \"\u4eca\u65e5\u306e\u30a4\u30d9\u30f3\u30c8\"\ud83d\udcc5\"\", \"content\": \"%s\"}\\n' \"${CAL}\")\necho \"$MSG\"\n\n# Discord WebHock \u3067Kagolug \u306e#random \u3078post\ncurl -X POST -H \"Content-Type: application/json\" \\\n\t-d \"${MSG}\" \\\n\t\"${DISCORD_WEBHOOK}\"
\n
\n
\n
\n

\u8a66\u3057\u306b\u5b9f\u884c\u3059\u308b\u3068\u6295\u7a3f\u3055\u308c\u307e\u3057\u305f\uff0e

\n
\n
\n

\u624b\u52d5\u3067\u53e9\u304f\u306e\u306f\u9762\u5012\u3059\u304e\u308b\u306e\u3067\u81ea\u52d5\u5b9f\u884c\u3059\u308b\u3088\u3046\u306bcrontab\u306b\u767b\u9332\u3057\u3066\u304a\u304d\u307e\u3059\uff0e

\n
\n
\n
\n
$ crontab -l | grep calpost\n58 4 * * *      /home/matoken/bin/calpost.sh 2>&1 > /home/matoken/tmp/cron/calpost.sh.log
\n
\n
\n
\n

\u6bce\u65e504:58\u306b\u5b9f\u884c\u3059\u308b\u3088\u3046\u306b\u3057\u307e\u3057\u305f\uff0e

\n
\n
\n
\u74b0\u5883
\n
\n
$ dpkg-query -W vdirsyncer khal curl bash\nbash    5.0-4\ncurl    7.64.0-4+deb10u1\nkhal    1:0.9.10-1.1\nvdirsyncer      0.16.7-2\n$ lsb_release -dr\nDescription:    Debian GNU/Linux 10 (buster)\nRelease:        10\n$ uname -m\nx86_64
\n
\n
\n", "content_text": "\u4ee5\u4e0b\u306e\u8a18\u4e8b\u3067DavCal\u3084Google\u30ab\u30ec\u30f3\u30c0\u30fc\u3092\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u3067\u95b2\u89a7\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\uff0e\n\n\n\n\u30ab\u30ec\u30f3\u30c0\u30fc\u306eDavCal\u3092\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u306b\u51fa\u529b\u3057\u305f\u3044 \u2013 matoken\u2019s meme\n\n\n\n\u305b\u3063\u304b\u304f\u306a\u306e\u3067Discord\u306b\u3082\u6bce\u671d\u305d\u306e\u65e5\u306e\u30a4\u30d9\u30f3\u30c8\u3092\u6295\u7a3f\u3059\u308b\u3088\u3046\u306b\u3057\u3066\u307f\u307e\u3059\uff0e\n\n\nDiscord\u306fWebhooks\u3092\u4f7f\u3063\u3066\u304b\u3093\u305f\u3093\u306b\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u6295\u7a3f\u3059\u308b\u3053\u3068\u304c\u51fa\u6765\u307e\u3059\uff0e\n\n\n\n\u30bf\u30a4\u30c8\u30eb: Webhooks\u3078\u306e\u5e8f\u7ae0 \u2013 Discord\n\n\n\n\u6295\u7a3f\u3057\u305f\u3044\u30c1\u30e3\u30f3\u30cd\u30eb\u306e\u30a2\u30a4\u30b3\u30f3\u300c\u30c1\u30e3\u30f3\u30cd\u30eb\u306e\u7de8\u96c6\u300d\u304b\u3089\u300c\u9023\u643a\u30b5\u30fc\u30d3\u30b9\u300d\u2192\u300c\u30a6\u30a7\u30d6\u30d5\u30c3\u30af\u300d\u304b\u3089\u64cd\u4f5c\u3067\u304d\u307e\u3059\uff0e\n\u65b0\u3057\u3044\u30a6\u30a7\u30d6\u30d5\u30c3\u30af\u3092\u4f5c\u6210\u3057\uff0c\u6295\u7a3f\u30c1\u30e3\u30f3\u30cd\u30eb\u3092\u78ba\u8a8d\u3057\u3066\u300c\u30a6\u30a7\u30d6\u30d5\u30c3\u30afURL\u3092\u30b3\u30d4\u30fc\u300d\u3067Webhooks URL\u3092\u5165\u624b\u3057\u307e\u3059\uff0e\n\n\nWebhooks URL\u306f\u3053\u3093\u306a\u611f\u3058\u306e\u3082\u306e\u3067\u3059\uff0e\nhttps://ptb.discord.com/api/webhooks/826777625053495306/QZoG2LLZOFlsKO_Auf1IQcXHVFozlgU37EGO9bhQKAifzZ0VAkyIYuQjRSzuOvC7U1gR\n\n\ncurl\u3067\u6295\u7a3f\u30c6\u30b9\u30c8\u3092\u3057\u3066\u307f\u307e\u3059\uff0e\n\n\n\n$ curl -X POST -H \"Content-Type: application/json\" \\\n -d '{\"username\": \"\u30dc\u30c3\u30c8\", \"content\": \"\u3053\u3093\u306b\u3061\u306f\"}' \\\n 'https://ptb.discord.com/api/webhooks/826777625053495306/QZoG2LLZOFlsKO_Auf1IQcXHVFozlgU37EGO9bhQKAifzZ0VAkyIYuQjRSzuOvC7U1gR'\n\n\n\n\n\n\n\u3053\u308c\u3067\u6295\u7a3f\u3067\u304d\u307e\u3057\u305f :)\n\n\nDiscord\u306b\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u6295\u7a3f\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u306e\u3067\uff0c\u4ee5\u4e0b\u306e\u30a8\u30f3\u30c8\u30ea\u3067\u66f8\u3044\u305f khal \u30b3\u30de\u30f3\u30c9\u3067\u4eca\u65e51\u65e5\u5206\u306e\u4e88\u5b9a\u30bf\u30a4\u30c8\u30eb\u3092\u5165\u624b\u3057\u3066Discord\u306b\u6295\u7a3f\u3059\u308b\u3088\u3046\u306b\u3057\u3066\u307f\u307e\u3059\uff0e\n\n\n\n* \u30ab\u30ec\u30f3\u30c0\u30fc\u306eDavCal\u3092\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u306b\u51fa\u529b\u3057\u305f\u3044 \u2013 matoken\u2019s meme\n\n\n\n\u4ee5\u4e0b\u306e\u9069\u5f53\u306aScript\u3092\u7528\u610f\u3057\u307e\u3057\u305f\uff0e\n\n2021-04-01 \u7de8\u96c6)\n\u30a4\u30d9\u30f3\u30c8\u304c\u306a\u3044\u65e5\u306b\u3082\u6295\u7a3f\u3057\u3066\u3057\u307e\u3063\u3066\u3044\u305f\u306e\u3092\u4fee\u6b63&Bashism\u3060\u3063\u305f\u306e\u3092sh\u3067\u52d5\u304f\u3088\u3046\u4fee\u6b63\n\n\n\n#!/bin/sh\n# khal\u30b3\u30de\u30f3\u30c9\u3067\u4eca\u65e5\u306e\u4e88\u5b9a\u3092\u5165\u624b\u3057\u3066Discord\u306bpost\u3059\u308b\n# https://matoken.org/blog/2021/03/31/post-your-calendar-to-discord-with-webhooks/\n\n# Discord\u306eWebhook URL\n# \u4ee5\u4e0b\u306eURL\u3092\u53c2\u8003\u306b\u5165\u624b\u3057\u3066\u8a2d\u5b9a\u3059\u308b\n# https://support.discord.com/hc/ja/articles/228383668-%E3%82%BF%E3%82%A4%E3%83%88%E3%83%AB-Webhooks%E3%81%B8%E3%81%AE%E5%BA%8F%E7%AB%A0\nDISCORD_WEBHOOK='https://ptb.discord.com/api/webhooks/\u2026\u2026\u2026\u2026'\n\n# khal\n# list -> \u4e00\u89a7\u8868\u793a\n# --format \"{title}\" -> \u30bf\u30a4\u30c8\u30eb\u3060\u3051\u8868\u793a\n# today -> \u4eca\u65e5\u304b\u3089\n# today -> \u4eca\u65e5\u307e\u3067\n# sed -> json\u306e\u6539\u884c\u5f62\u5f0f\u306b\u5909\u63db\nCAL=$(khal list --format \"{title}\" today today | sed -z -e \"s/\\n/\\\\\\\\\\\\\\\\n/g\")\n\n# \u30a4\u30d9\u30f3\u30c8\u306e\u306a\u3044\u65e5\u306f\u6295\u7a3f\u305b\u305a\u7d42\u4e86\nif [ \"${CAL}\" = 'No events\\\\n' ]\nthen\n echo \"${CAL}\"\n exit\nfi\n\nMSG=$(printf '{\"username\": \"\u4eca\u65e5\u306e\u30a4\u30d9\u30f3\u30c8\", \"content\": \"%s\"}\\n' \"${CAL}\")\necho \"$MSG\"\n\n# Discord WebHock \u3067Kagolug \u306e#random \u3078post\ncurl -X POST -H \"Content-Type: application/json\" \\\n\t-d \"${MSG}\" \\\n\t\"${DISCORD_WEBHOOK}\"\n\n\n\n\u8a66\u3057\u306b\u5b9f\u884c\u3059\u308b\u3068\u6295\u7a3f\u3055\u308c\u307e\u3057\u305f\uff0e\n\n\n\u624b\u52d5\u3067\u53e9\u304f\u306e\u306f\u9762\u5012\u3059\u304e\u308b\u306e\u3067\u81ea\u52d5\u5b9f\u884c\u3059\u308b\u3088\u3046\u306bcrontab\u306b\u767b\u9332\u3057\u3066\u304a\u304d\u307e\u3059\uff0e\n\n\n\n$ crontab -l | grep calpost\n58 4 * * * /home/matoken/bin/calpost.sh 2>&1 > /home/matoken/tmp/cron/calpost.sh.log\n\n\n\n\u6bce\u65e504:58\u306b\u5b9f\u884c\u3059\u308b\u3088\u3046\u306b\u3057\u307e\u3057\u305f\uff0e\n\n\n\u74b0\u5883\n\n$ dpkg-query -W vdirsyncer khal curl bash\nbash 5.0-4\ncurl 7.64.0-4+deb10u1\nkhal 1:0.9.10-1.1\nvdirsyncer 0.16.7-2\n$ lsb_release -dr\nDescription: Debian GNU/Linux 10 (buster)\nRelease: 10\n$ uname -m\nx86_64", "date_published": "2021-03-31T20:38:22+09:00", "date_modified": "2021-04-01T20:32:06+09:00", "authors": [ { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" } ], "author": { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" }, "tags": [ "Calendar", "Discord", "Webhook", "buster", "Debian", "Linux" ] }, { "id": "http://matoken.org/blog/?p=3160", "url": "https://matoken.org/blog/2021/03/31/output-the-calendar-davcal-to-the-command-line/", "title": "\u30ab\u30ec\u30f3\u30c0\u30fc\u306eDavCal\u3092\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u306b\u51fa\u529b\u3057\u305f\u3044", "content_html": "
\n
\n
\n

\u4f55\u3089\u304b\u306e\u65e5\u7a0b\u3092\u6c7a\u3081\u308b\u3068\u304d\u306b\u672a\u6765\u306e\u65e5\u7a0b\u3092\u898b\u306a\u304c\u3089\u6c7a\u3081\u305f\u3044\u3053\u3068\u304c\u3042\u308a\u307e\u3059\uff0e
\nWeb\u30d9\u30fc\u30b9\u3067\u3044\u3044\u304b\u3068\u601d\u3063\u305f\u306e\u3067\u3059\u304c\uff0c\u7279\u306b\u4f4e\u89e3\u50cf\u5ea6\u3060\u3068\u30bf\u30a4\u30c8\u30eb\u306e\u4e00\u90e8\u3057\u304b\u8868\u793a\u3055\u308c\u305a\u3088\u304f\u308f\u304b\u308a\u307e\u305b\u3093\uff0e\u30b3\u30d4\u30fc\u30da\u30fc\u30b9\u30c8\u3057\u3066EtherPad\u306a\u3069\u306b\u8cbc\u308b\u3068\u3044\u3044\u3067\u3059\u304c\u6642\u9593\u304c\u304b\u304b\u308b\u3057\u9762\u5012\u3067\u3059\uff0e
\nDavCal\u306a\u3069\u306e\u60c5\u5831\u3092\u7bc4\u56f2\u6307\u5b9a\u3057\u3066\u8868\u793a\u51fa\u6765\u308b\u3068\u4fbf\u5229\u305d\u3046\u3060\u306a\u3068\u601d\u3044\u307e\u3057\u305f\uff0e

\n
\n
\n

\u306f\u3058\u3081\u306f\u30b3\u30de\u30f3\u30c9\u3092\u53e9\u3044\u3066\u7bc4\u56f2\u6307\u5b9a\u3057\u3066\u8868\u793a\u3059\u308b\u3088\u3046\u306a\u3082\u306e\u304c\u306a\u3044\u304b\u3068\u601d\u3063\u305f\u306e\u3067\u3059\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\uff0e\u5c11\u3057\u9762\u5012\u3067\u3059\u304c\uff0c vdirsyncer \u3067\u30ea\u30e2\u30fc\u30c8\u306e\u30ab\u30ec\u30f3\u30c0\u30fc\u3092\u30ed\u30fc\u30ab\u30eb\u306b\u30b3\u30d4\u30fc\u3057\u3066 khal \u30b3\u30de\u30f3\u30c9\u3067\u8868\u793a\u3059\u308b\u3088\u3046\u306b\u3057\u3066\u307f\u307e\u3057\u305f\uff0e

\n
\n
\n
\n
\n

Vdirsyncer \u306e\u5c0e\u5165\u3068\u8a2d\u5b9a

\n
\n
\n

Vdirsyncer \u306f\u30ab\u30ec\u30f3\u30c0\u30fc\u3068\u30b3\u30f3\u30bf\u30af\u30c8\u3092\u30ed\u30fc\u30ab\u30eb\u3068\u540c\u671f\u3067\u304d\u308b\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u3067\u3059\uff0e\u3053\u308c\u3067\u30ea\u30e2\u30fc\u30c8\u306eDavCal \u306e\u60c5\u5831\u3092\u30ed\u30fc\u30ab\u30eb\u306b\u540c\u671f\u3057\u307e\u3059\uff0e

\n
\n
\n
\n
$ sudo apt install vdirsyncer (1)\n$ mkdir ~/.config/vdirsyncer\n$ vi ~/.config/vdirsyncer/config (2)\n$ cat ~/.config/vdirsyncer/config\n[general]\nstatus_path = \"~/.vdirsyncer/status/\"\n\n[pair my_calendars]\na = \"my_calendars_local\"\nb = \"my_calendars_remote\"\ncollections = null\nmetadata = [\"color\"]\n\n[storage my_calendars_local]\ntype = \"filesystem\"\npath = \"~/.calendars/\"\nfileext = \".ics\"\n\n[storage my_calendars_remote]\ntype = \"caldav\"\nurl = \"https://files.matoken.org/remote.php/dav/public-calendars/YW5gc6gMG8tC63AH?export\"
\n
\n
\n
\n
    \n
  1. Vdirsyncer \u306e\u5c0e\u5165
  2. \n
  3. \u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u4f5c\u6210
  4. \n
\n
\n
\n

\u3053\u308c\u3067\u3068\u308a\u3042\u3048\u305a Vdirsyncer \u3092\u5c0e\u5165\u3057\u3066\uff0c\u30ea\u30e2\u30fc\u30c8\u306e CalDav \u5f62\u5f0f\u306e\u30ab\u30ec\u30f3\u30c0\u30fc\u3092\u30ed\u30fc\u30ab\u30eb\u306e\u30b9\u30c8\u30ec\u30fc\u30b8\u306b\u540c\u671f\u3067\u304d\u307e\u3059\uff0e
\n\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306f\u4ee5\u4e0b\u306e\u30da\u30fc\u30b8\u3092\u53c2\u8003\u306b\u3057\u307e\u3057\u305f\uff0e\u76f8\u4e92\u540c\u671f\u306f\u305b\u305a\uff0c\u30ea\u30e2\u30fc\u30c8\u306e\u30c7\u30fc\u30bf\u3092\u30ed\u30fc\u30ab\u30eb\u306b\u540c\u671f\u3059\u308b\u3060\u3051\u306e\u52d5\u4f5c\u306e\u3064\u3082\u308a\u3067\u3059\uff0e

\n
\n
\n
\n
$ vdirsyncer discover my_calendars (1)\nDiscovering collections for pair my_calendars\nmy_calendars_local:\nmy_calendars_remote:\n  - \"YW5gc6gMG8tC63AH\" (\"onlin_event (matoken)\")\nwarning: No collection \"YW5gc6gMG8tC63AH\" found for storage my_calendars_local.\nShould vdirsyncer attempt to create it? [y/N]: y\nSaved for my_calendars: collections = [\"YW5gc6gMG8tC63AH\"]\n$ vdirsyncer sync (2)\nSyncing my_calendars/YW5gc6gMG8tC63AH\nCopying (uploading) item 05f764a4-8c30-46ed-a0fe-62c67d3975a8 to my_calendars_local/YW5gc6gMG8tC63AH\nCopying (uploading) item 1acc3691-a12b-4534-a4e2-6ee6213ecff1 to my_calendars_local/YW5gc6gMG8tC63AH\nCopying (uploading) item 202e727b-0431-40b5-8008-9ada1269c7c8 to my_calendars_local/YW5gc6gMG8tC63AH\nCopying (uploading) item 2312a403-b2e6-4716-9c6f-45aa94519654 to my_calendars_local/YW5gc6gMG8tC63AH\n  :\n$ ls ~/.calendars/YW5gc6gMG8tC63AH/ | head (3)\n05f764a4-8c30-46ed-a0fe-62c67d3975a8.ics\n1acc3691-a12b-4534-a4e2-6ee6213ecff1.ics\n202e727b-0431-40b5-8008-9ada1269c7c8.ics\n2312a403-b2e6-4716-9c6f-45aa94519654.ics\n263c2df9-ad9b-40d5-a946-614af7bc10ae.ics\n29cbecc8-0b88-41da-b7d0-0c71062eb6b4.ics\n2c66d40f-f5bd-4a67-bfb9-9bbb0258a966.ics\n2e81f5bd-1aad-435a-bfa4-4a3ebe75e489.ics\n30d41952-4dc3-4f10-bb6d-3311593f1d25.ics\n3335be8d-9dd6-4b5e-81e9-a292d56fa17e.ics
\n
\n
\n
\n
    \n
  1. \u8a2d\u5b9a\u3092\u63a2\u7d22\u3057\u3066\u521d\u671f\u5316\uff0e\u8a2d\u5b9a\u3092\u4f5c\u3063\u305f\u3068\u304d\u306b\u5b9f\u884c\uff0e
  2. \n
  3. \u30ab\u30ec\u30f3\u30c0\u30fc\u3092\u540c\u671f\uff0e\u5b9a\u671f\u7684\u306b\u5b9f\u884c\uff0e
  4. \n
  5. \u540c\u671f\u3055\u308c\u305f\u30c7\u30fc\u30bf\u304c .ics \u30d5\u30a1\u30a4\u30eb\u3068\u3057\u3066\u4f5c\u3089\u308c\u3066\u3044\u308b\u306e\u3092\u78ba\u8a8d\uff0e
  6. \n
\n
\n
\n

\u30ab\u30ec\u30f3\u30c0\u30fc\u304c\u30ed\u30fc\u30ab\u30eb\u306b\u540c\u671f\u3055\u308c\u307e\u3057\u305f :)
\nvdirsyncer sync \u306f\u5b9a\u671f\u7684\u306b\u5b9f\u884c\u3057\u3066\u540c\u671f\u3059\u308b\u3088\u3046\u306b\u3057\u307e\u3059\uff0e

\n
\n
\n
\n
$ crontab -l | grep 'vdirsyncer sync'\n4 4 * * *       chronic vdirsyncer sync
\n
\n
\n
\n

crontab \u306b\u8a2d\u5b9a\u3057\u3066\uff11\u65e5\uff11\u56de\u540c\u671f\u3059\u308b\u3088\u3046\u306b\u3057\u307e\u3057\u305f\uff0e
\nchronic \u3092\u631f\u3093\u3067\u3044\u307e\u3059\u304c\uff0c\u3053\u308c\u306fmoreutils \u306e\u30b3\u30de\u30f3\u30c9\u306e\uff11\u3064\u3067\uff0c\u6b63\u5e38\u7d42\u4e86\u6642\u306b\u306f\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u51fa\u529b\u3057\u306a\u3044\u3068\u3044\u3046\u3082\u306e\u3067\u3059\uff0e\u30a8\u30e9\u30fc\u6642\u3060\u3051\u30e1\u30fc\u30eb\u304c\u98db\u3076\u306f\u305a\uff0e

\n
\n
\n
\n
\n

khal\u306e\u5c0e\u5165\u3068\u8a2d\u5b9a

\n
\n
\n

\u30ab\u30ec\u30f3\u30c0\u30fc\u306e\u540c\u671f\u306f\u51fa\u6765\u307e\u3057\u305f\u304c\uff0cics\u30d5\u30a1\u30a4\u30eb\u304c\u3042\u308b\u3060\u3051\u306a\u306e\u3067\u95b2\u89a7\u304c\u4e0d\u4fbf\u3067\u3059\uff0e\u95b2\u89a7\u3059\u308b\u305f\u3081\u306b khal \u30b3\u30de\u30f3\u30c9\u3092\u5229\u7528\u3057\u307e\u3059\uff0e

\n
\n\n
\n
\n
$ sudo sudo apt install khal\n$ mkdir ~/.config/khal\n$ vi ~/.config/khal/config\n$ cat ~/.config/khal/config\n[calendars]\n  [[event]]\n\n    path = ~/.calendars/YW5gc6gMG8tC63AH/\n    readonly = True\n\n[locale]\ntimeformat = %H:%M\ndateformat = %Y-%m-%d\nlongdateformat = %Y-%m-%d\ndatetimeformat = %Y-%m-%d %H:%M\nlongdatetimeformat = %Y-%m-%d %H:%M
\n
\n
\n
\n

khal\u3092\u5c0e\u5165\u3057\u3066\u8a2d\u5b9a\u3092\u66f8\u3044\u3066\u307f\u307e\u3057\u305f\uff0epath\u306f Vdirsyncer \u3067\u540c\u671f\u3055\u308c\u305f\u5834\u6240\u3092\u6307\u5b9a\u3057\u307e\u3059\uff0e
\n\u3053\u306e\u72b6\u614b\u3067khal\u3092\u53e9\u304f\u3068\u3053\u3093\u306a\u611f\u3058\u3067\u8868\u793a\u3055\u308c\u307e\u3057\u305f\uff0e

\n
\n
\n
\n
$ khal\n    Mo Tu We Th Fr Sa Su     Tomorrow, 2021-03-31\nMar  1  2  3  4  5  6  7     20:00-21:30 TechLION vol.37 \u301cTechLION\u51fa\u6f14\u8005\u306b\u805e\u304f\u3001\u3053\u306e1\u5e74\u3068\u3053\u306e10\u5e74\u3002\u305d\u3057\u3066\u672a\u6765\u301c :: # \u8996\u8074\u65b9\u6cd5  \u672c\u30a4\u30d9\u30f3\u30c8\u306fYouTube\u306b\u3066\u914d\u4fe1\u3057\u307e\u3059  \u8996\u8074URL\u306f\u6c7a\u307e\u308a\u6b21\u7b2c\u63b2\u8f09\u3057\u307e\u3059  #\n     8  9 10 11 12 13 14     \u30d7\u30ed\u30b0\u30e9\u30e0  2011\u5e743\u6708\u306b\u65d7\u63da\u3052\u3057\u305fTechLION\u304c10\u5468\u5e74\u3092\u8fce\u3048\u308b\u306b\u3042\u305f\u308a\u3001\u8a18\u5ff5\u8a66\u5408\u3092\u30aa\u30f3\u30e9\u30a4\u30f3\u30a4\u30d9\u30f3\u30c8\u3068\u3057\u3066\u884c\u3044\u307e\u3059\u3002   \u30c8\n\u30fc\u30af\u30bb\u30c3\u30b7\u30e7\u30f3\u3067\u306f\u3001\u3053\u308c\u307e\u3067TechLION\u306b\u51fa\u6f14\u3057\u3066\u304f\u3060\u3055\u3063\u305f\u7686\u3055\u3093\u306b\u3001IT\u696d\u754c\u306e\u6700\u8fd1\u306e\u72b6\u6cc1\u3001\n    15 16 17 18 19 20 21     10\u5e74\u9593\u306e\u5909\u5316\u3001\u4eca\u5f8c\u306e\u4e88\u60f3\u306a\u3069\u3092\u304a\u805e\u304d\u3057\u307e\u3059\u3002\u4e8b\u524d\u306b\u5b9f\u65bd\u3057\u305f\u30a2\u30f3\u30b1\u30fc\u30c8\u7d50\u679c\u3092\u898b\u306a\u304c\u3089MC\u306e2\u540d\u304c\u9032\u884c\u3057\u307e\u3059\u304c\u3001\u56de\u7b54\u306b\u3088\u3063\n\u3066\u306f\u51fa\u6f14\u8005\u306e\u65b9\u3082\u30c8\u30fc\u30af\u306b\u3054\u53c2\u52a0\u3044\u305f\u3060\u304d\u307e\u3059\u3002\n    22 23 24 25 26 27 28     TechLION\u65d7\u63da\u3052\u8a18\u5ff5\u65e5\u3067\u3082\u3042\u308b3\u670831\u65e5\u306e\u591c\u3001\u304a\u9152\u3092\u7247\u624b\u306b\u304a\u697d\u3057\u307f\u304f\u3060\u3055\u3044\uff01    * \u51fa\u6f14\uff1a\u3053\u308c\u307e\u3067\u306eTechLION\u306b\u3054\u51fa\u6f14\u306e\u7686\u3055\n\u3093   * MC\uff1a\u6cd5\u6797\u6d69\u4e4b\u3001\u99ae\u5bcc\u4e45  # \u958b\u50ac\u6982\u8981    * \u540d\u79f0\uff1aTechLION\nApr 29 30 31  1  2  3  4     vol.37 \u301cTechLION\u51fa\u6f14\u8005\u306b\u805e\u304f\u3001\u3053\u306e1\u5e74\u3068\u3053\u306e10\u5e74\u3002\u305d\u3057\u3066\u672a\u6765\u301c   * \u4e3b\u50ac\uff1a\u30c1\u30fc\u30e0TechLION   * \u5354\u8cdb\uff1aUSP\u7814\u7a76\u6240\u3001\u6280\u8853\u8a55\n\u8ad6\u793e   * \u5f8c\u63f4\uff1a\u65e5\u672cUNIX\u30e6\u30fc\u30b6\u4f1a   *\n     5  6  7  8  9 10 11     \u65e5\u6642\uff1a2021\u5e743\u670831\u65e5(\u6c34) 20:00\u958b\u6f14\u300121:30\u7d42\u4e86\u4e88\u5b9a   * \u5834\u6240\uff1a\u30aa\u30f3\u30e9\u30a4\u30f3 (YouTube\u306b\u3066\u914d\u4fe1)   * \u6599\u91d1\uff1a\u7121\u6599   * \u516c\u5f0f\u30bf\u30b0\n\uff1atechlion   * \u554f\u3044\u5408\u308f\u305b\u5148\uff1a\u30c1\u30fc\u30e0TechLION\n    12 13 14 15 16 17 18     (E-mail\uff1astaff[at]techlion.jp)  # \u30a4\u30d9\u30f3\u30c8\u8a73\u7d30  https://techlion.jp/vol37\n    19 20 21 22 23 24 25     https://techlion.connpass.com/event/205623/\nMay 26 27 28 29 30  1  2\n     3  4  5  6  7  8  9\n    10 11 12 13 14 15 16\n    17 18 19 20 21 22 23\n    24 25 26 27 28 29 30\nJun 31  1  2  3  4  5  6
\n
\n
\n
\n

ikhal\u30b3\u30de\u30f3\u30c9\u3092\u4f7f\u3046\u3068\u30c0\u30f3\u30d7\u3067\u306f\u306a\u304f\uff0ctui\u306ehal\u304c\u8d77\u52d5\u3057\u3066\u30a4\u30f3\u30bf\u30e9\u30af\u30c6\u30a3\u30d6\u306b\u64cd\u4f5c\u3067\u304d\u307e\u3059\uff0e

\n
\n
\n

\"ikhal\"/

\n
\n
\n

\u3061\u3087\u3063\u3068\u5197\u9577\u306a\u306e\u3067 --format \"title}\" \u3067\u30bf\u30a4\u30c8\u30eb\u3060\u3051\u8868\u793a\u3059\u308b\u3088\u3046\u306b\u3057\u3066\u307f\u307e\u3057\u305f\uff0e

\n
\n
\n
\n
$ khal list --format \"{title}\"\nTomorrow, 2021-03-31\nTechLION vol.37 \u301cTechLION\u51fa\u6f14\u8005\u306b\u805e\u304f\u3001\u3053\u306e1\u5e74\u3068\u3053\u306e10\u5e74\u3002\u305d\u3057\u3066\u672a\u6765\u301c
\n
\n
\n
\n

\u4eca\u65e5\u3060\u3051\u3084\uff0c\u4eca\u65e5\u304b\u3089\uff17\u65e5\u9593\u306a\u3069\u7bc4\u56f2\u6307\u5b9a\u3082\u51fa\u6765\u307e\u3059\uff0e

\n
\n
\n
\n
$ khal list --format \"{title}\" today today (1)\n$ khal list --format \"{title}\" today 7days (2)\n$ khal list --format \"{title}\" 2021-03-01 2021-03-31 (3)\n$ faketime 2021-03-03 khal list --format \"{title}\" today (4)
\n
\n
\n
\n
    \n
  1. \u4eca\u65e5\u304b\u3089\u4eca\u65e5\u307e\u3067\u8868\u793a
  2. \n
  3. \u4eca\u65e5\u304b\u30897\u65e5\u9593\u8868\u793a
  4. \n
  5. 03/01\u301c03/31\u307e\u3067\u8868\u793a
  6. \n
  7. faketime\u306703/03\u3068\u3057\u3066khal\u3092\u5b9f\u884c
  8. \n
\n
\n
\n

URL\u3082\u8868\u793a\u3057\u305f\u3044\u3051\u3069\uff0c\u3042\u3063\u3066\u3082.ics\u306eDiscription\u306e\u4e2d\u306a\u3069\u306a\u306e\u3067\u3061\u3087\u3063\u3068\u9762\u5012\u305d\u3046\u306a\u306e\u3067\u4eca\u56de\u306f\u8ae6\u3081\u307e\u3057\u305f\uff0e\u5fc5\u8981\u306a\u3068\u304d\u306f\u30ab\u30ec\u30f3\u30c0\u30fc\u3092\u53c2\u7167\u3059\u308b\u3053\u3068\u306b\u3057\u307e\u3059\uff0e

\n
\n
\n
\n
\n

\u8907\u6570\u306e\u30ab\u30ec\u30f3\u30c0\u30fc\u306e\u8a2d\u5b9a

\n
\n
\n

2\u3064\u76ee\u306e\u30ab\u30ec\u30f3\u30c0\u30fc\u3092\u767b\u9332\u3057\u3066\u307f\u307e\u3059\uff0e\u6b21\u306f\u65e5\u672c\u306e\u4f11\u65e5\u30ab\u30ec\u30f3\u30c0\u30fc\u3092\u767b\u9332\u3057\u3066\u307f\u307e\u3059\uff0e

\n
\n\n
\n

Google\u306e\u65e5\u672c\u8a9e\u7248( https://www.google.com/calendar/ical/ja.japanese%23holiday%40group.v.calendar.google.com/public/basic.ics )\u3092\u5229\u7528\u3059\u308b\u3053\u3068\u306b\u3057\u307e\u3059\uff0e

\n
\n
\n

~/.config/vdirsyncer/config \u306b\u4ee5\u4e0b\u306e\u8a2d\u5b9a\u3092\u8ffd\u8a18\u3057\u307e\u3059\uff0e

\n
\n
\n
\n
[pair holiday_calendars]\na = \"holiday_calendars_local\"\nb = \"holiday_calendars_remote\"\ncollections = null\nmetadata = [\"color\"]\n\n[storage holiday_calendars_local]\ntype = \"filesystem\"\npath = \"~/.calendars/holiday_calendars/\"\nfileext = \".ics\"\n\n[storage holiday_calendars_remote]\ntype = \"http\"\nurl = \"https://www.google.com/calendar/ical/ja.japanese%23holiday%40group.v.calendar.google.com/public/basic.ics\"
\n
\n
\n
\n

\u8a2d\u5b9a\u53cd\u6620\u3057\u3066\u30ab\u30ec\u30f3\u30c0\u30fc\u3092\u540c\u671f\u3057\u307e\u3059\uff0e

\n
\n
\n
\n
$ vdirsyncer discover holiday_calendars\n$ vdirsyncer sync holiday_calendars
\n
\n
\n
\n

\u6b21\u306bkhal\u306e\u8a2d\u5b9a\u3067\u3059\uff0e
\n~/.config/khal/config \u306e [calendars] \u30bb\u30af\u30b7\u30e7\u30f3\u306b\u4ee5\u4e0b\u306e\u8a2d\u5b9a\u3092\u8ffd\u8a18\u3057\u307e\u3059\uff0e

\n
\n
\n
\n
  [[holiday]]\n    path = ~/.calendars/holiday_calendars/\n    readonly = True
\n
\n
\n
\n

\u3053\u306e\u72b6\u614b\u3067khal\u3092\u5b9f\u884c\u3057\u3066\u307f\u308b\u3068\u795d\u65e5\u3082\u8868\u793a\u3055\u308c\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f :)

\n
\n
\n
\n
$ khal list --format \"{title}\" 2021-03-20 1days\nSaturday, 2021-03-20\n\u6625\u5206\u306e\u65e5\nNBUG 2021\u5e743\u6708\u4f8b\u4f1a[\u7b2c250\u56de\u4f8b\u4f1a]\nKernel/VM\u63a2\u691c\u968aonline part2
\n
\n
\n
\n

\u3068\u3044\u3046\u3053\u3068\u3067\u5f53\u521d\u601d\u3063\u3066\u3044\u305f\u3088\u308a\u5c11\u3057\u9762\u5012\u3067\u3057\u305f\u304c\uff0c\u3068\u308a\u3042\u3048\u305a\u3084\u308a\u305f\u3044\u3053\u3068\u304c\u51fa\u6765\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f :)

\n
\n
\n
\n
\n

\u74b0\u5883

\n
\n
\n
\n
$ dpkg-query -W vdirsyncer khal faketime\nfaketime        0.9.7-3\nkhal    1:0.9.10-1.1\nvdirsyncer      0.16.7-2\n$ lsb_release -dr\nDescription:    Debian GNU/Linux 10 (buster)\nRelease:        10\n$ uname -m\nx86_64
\n
\n
\n
\n
\n", "content_text": "\u4f55\u3089\u304b\u306e\u65e5\u7a0b\u3092\u6c7a\u3081\u308b\u3068\u304d\u306b\u672a\u6765\u306e\u65e5\u7a0b\u3092\u898b\u306a\u304c\u3089\u6c7a\u3081\u305f\u3044\u3053\u3068\u304c\u3042\u308a\u307e\u3059\uff0e\nWeb\u30d9\u30fc\u30b9\u3067\u3044\u3044\u304b\u3068\u601d\u3063\u305f\u306e\u3067\u3059\u304c\uff0c\u7279\u306b\u4f4e\u89e3\u50cf\u5ea6\u3060\u3068\u30bf\u30a4\u30c8\u30eb\u306e\u4e00\u90e8\u3057\u304b\u8868\u793a\u3055\u308c\u305a\u3088\u304f\u308f\u304b\u308a\u307e\u305b\u3093\uff0e\u30b3\u30d4\u30fc\u30da\u30fc\u30b9\u30c8\u3057\u3066EtherPad\u306a\u3069\u306b\u8cbc\u308b\u3068\u3044\u3044\u3067\u3059\u304c\u6642\u9593\u304c\u304b\u304b\u308b\u3057\u9762\u5012\u3067\u3059\uff0e\nDavCal\u306a\u3069\u306e\u60c5\u5831\u3092\u7bc4\u56f2\u6307\u5b9a\u3057\u3066\u8868\u793a\u51fa\u6765\u308b\u3068\u4fbf\u5229\u305d\u3046\u3060\u306a\u3068\u601d\u3044\u307e\u3057\u305f\uff0e\n\n\n\u306f\u3058\u3081\u306f\u30b3\u30de\u30f3\u30c9\u3092\u53e9\u3044\u3066\u7bc4\u56f2\u6307\u5b9a\u3057\u3066\u8868\u793a\u3059\u308b\u3088\u3046\u306a\u3082\u306e\u304c\u306a\u3044\u304b\u3068\u601d\u3063\u305f\u306e\u3067\u3059\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\uff0e\u5c11\u3057\u9762\u5012\u3067\u3059\u304c\uff0c vdirsyncer \u3067\u30ea\u30e2\u30fc\u30c8\u306e\u30ab\u30ec\u30f3\u30c0\u30fc\u3092\u30ed\u30fc\u30ab\u30eb\u306b\u30b3\u30d4\u30fc\u3057\u3066 khal \u30b3\u30de\u30f3\u30c9\u3067\u8868\u793a\u3059\u308b\u3088\u3046\u306b\u3057\u3066\u307f\u307e\u3057\u305f\uff0e\n\n\n\n\nVdirsyncer \u306e\u5c0e\u5165\u3068\u8a2d\u5b9a\n\n\nVdirsyncer \u306f\u30ab\u30ec\u30f3\u30c0\u30fc\u3068\u30b3\u30f3\u30bf\u30af\u30c8\u3092\u30ed\u30fc\u30ab\u30eb\u3068\u540c\u671f\u3067\u304d\u308b\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u3067\u3059\uff0e\u3053\u308c\u3067\u30ea\u30e2\u30fc\u30c8\u306eDavCal \u306e\u60c5\u5831\u3092\u30ed\u30fc\u30ab\u30eb\u306b\u540c\u671f\u3057\u307e\u3059\uff0e\n\n\n\n$ sudo apt install vdirsyncer (1)\n$ mkdir ~/.config/vdirsyncer\n$ vi ~/.config/vdirsyncer/config (2)\n$ cat ~/.config/vdirsyncer/config\n[general]\nstatus_path = \"~/.vdirsyncer/status/\"\n\n[pair my_calendars]\na = \"my_calendars_local\"\nb = \"my_calendars_remote\"\ncollections = null\nmetadata = [\"color\"]\n\n[storage my_calendars_local]\ntype = \"filesystem\"\npath = \"~/.calendars/\"\nfileext = \".ics\"\n\n[storage my_calendars_remote]\ntype = \"caldav\"\nurl = \"https://files.matoken.org/remote.php/dav/public-calendars/YW5gc6gMG8tC63AH?export\"\n\n\n\n\nVdirsyncer \u306e\u5c0e\u5165\n\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u4f5c\u6210\n\n\n\n\u3053\u308c\u3067\u3068\u308a\u3042\u3048\u305a Vdirsyncer \u3092\u5c0e\u5165\u3057\u3066\uff0c\u30ea\u30e2\u30fc\u30c8\u306e CalDav \u5f62\u5f0f\u306e\u30ab\u30ec\u30f3\u30c0\u30fc\u3092\u30ed\u30fc\u30ab\u30eb\u306e\u30b9\u30c8\u30ec\u30fc\u30b8\u306b\u540c\u671f\u3067\u304d\u307e\u3059\uff0e\n\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306f\u4ee5\u4e0b\u306e\u30da\u30fc\u30b8\u3092\u53c2\u8003\u306b\u3057\u307e\u3057\u305f\uff0e\u76f8\u4e92\u540c\u671f\u306f\u305b\u305a\uff0c\u30ea\u30e2\u30fc\u30c8\u306e\u30c7\u30fc\u30bf\u3092\u30ed\u30fc\u30ab\u30eb\u306b\u540c\u671f\u3059\u308b\u3060\u3051\u306e\u52d5\u4f5c\u306e\u3064\u3082\u308a\u3067\u3059\uff0e\n\n\n\n$ vdirsyncer discover my_calendars (1)\nDiscovering collections for pair my_calendars\nmy_calendars_local:\nmy_calendars_remote:\n - \"YW5gc6gMG8tC63AH\" (\"onlin_event (matoken)\")\nwarning: No collection \"YW5gc6gMG8tC63AH\" found for storage my_calendars_local.\nShould vdirsyncer attempt to create it? [y/N]: y\nSaved for my_calendars: collections = [\"YW5gc6gMG8tC63AH\"]\n$ vdirsyncer sync (2)\nSyncing my_calendars/YW5gc6gMG8tC63AH\nCopying (uploading) item 05f764a4-8c30-46ed-a0fe-62c67d3975a8 to my_calendars_local/YW5gc6gMG8tC63AH\nCopying (uploading) item 1acc3691-a12b-4534-a4e2-6ee6213ecff1 to my_calendars_local/YW5gc6gMG8tC63AH\nCopying (uploading) item 202e727b-0431-40b5-8008-9ada1269c7c8 to my_calendars_local/YW5gc6gMG8tC63AH\nCopying (uploading) item 2312a403-b2e6-4716-9c6f-45aa94519654 to my_calendars_local/YW5gc6gMG8tC63AH\n :\n$ ls ~/.calendars/YW5gc6gMG8tC63AH/ | head (3)\n05f764a4-8c30-46ed-a0fe-62c67d3975a8.ics\n1acc3691-a12b-4534-a4e2-6ee6213ecff1.ics\n202e727b-0431-40b5-8008-9ada1269c7c8.ics\n2312a403-b2e6-4716-9c6f-45aa94519654.ics\n263c2df9-ad9b-40d5-a946-614af7bc10ae.ics\n29cbecc8-0b88-41da-b7d0-0c71062eb6b4.ics\n2c66d40f-f5bd-4a67-bfb9-9bbb0258a966.ics\n2e81f5bd-1aad-435a-bfa4-4a3ebe75e489.ics\n30d41952-4dc3-4f10-bb6d-3311593f1d25.ics\n3335be8d-9dd6-4b5e-81e9-a292d56fa17e.ics\n\n\n\n\n\u8a2d\u5b9a\u3092\u63a2\u7d22\u3057\u3066\u521d\u671f\u5316\uff0e\u8a2d\u5b9a\u3092\u4f5c\u3063\u305f\u3068\u304d\u306b\u5b9f\u884c\uff0e\n\u30ab\u30ec\u30f3\u30c0\u30fc\u3092\u540c\u671f\uff0e\u5b9a\u671f\u7684\u306b\u5b9f\u884c\uff0e\n\u540c\u671f\u3055\u308c\u305f\u30c7\u30fc\u30bf\u304c .ics \u30d5\u30a1\u30a4\u30eb\u3068\u3057\u3066\u4f5c\u3089\u308c\u3066\u3044\u308b\u306e\u3092\u78ba\u8a8d\uff0e\n\n\n\n\u30ab\u30ec\u30f3\u30c0\u30fc\u304c\u30ed\u30fc\u30ab\u30eb\u306b\u540c\u671f\u3055\u308c\u307e\u3057\u305f :)\nvdirsyncer sync \u306f\u5b9a\u671f\u7684\u306b\u5b9f\u884c\u3057\u3066\u540c\u671f\u3059\u308b\u3088\u3046\u306b\u3057\u307e\u3059\uff0e\n\n\n\n$ crontab -l | grep 'vdirsyncer sync'\n4 4 * * * chronic vdirsyncer sync\n\n\n\ncrontab \u306b\u8a2d\u5b9a\u3057\u3066\uff11\u65e5\uff11\u56de\u540c\u671f\u3059\u308b\u3088\u3046\u306b\u3057\u307e\u3057\u305f\uff0e\nchronic \u3092\u631f\u3093\u3067\u3044\u307e\u3059\u304c\uff0c\u3053\u308c\u306fmoreutils \u306e\u30b3\u30de\u30f3\u30c9\u306e\uff11\u3064\u3067\uff0c\u6b63\u5e38\u7d42\u4e86\u6642\u306b\u306f\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u51fa\u529b\u3057\u306a\u3044\u3068\u3044\u3046\u3082\u306e\u3067\u3059\uff0e\u30a8\u30e9\u30fc\u6642\u3060\u3051\u30e1\u30fc\u30eb\u304c\u98db\u3076\u306f\u305a\uff0e\n\n\n\n\nkhal\u306e\u5c0e\u5165\u3068\u8a2d\u5b9a\n\n\n\u30ab\u30ec\u30f3\u30c0\u30fc\u306e\u540c\u671f\u306f\u51fa\u6765\u307e\u3057\u305f\u304c\uff0cics\u30d5\u30a1\u30a4\u30eb\u304c\u3042\u308b\u3060\u3051\u306a\u306e\u3067\u95b2\u89a7\u304c\u4e0d\u4fbf\u3067\u3059\uff0e\u95b2\u89a7\u3059\u308b\u305f\u3081\u306b khal \u30b3\u30de\u30f3\u30c9\u3092\u5229\u7528\u3057\u307e\u3059\uff0e\n\n\n\nkhal \u2014 khal 0.9.7.dev138+g6f82622.d20190325 documentation\npimutils/khal: CLI calendar application\n\n\n\n\n$ sudo sudo apt install khal\n$ mkdir ~/.config/khal\n$ vi ~/.config/khal/config\n$ cat ~/.config/khal/config\n[calendars]\n [[event]]\n\n path = ~/.calendars/YW5gc6gMG8tC63AH/\n readonly = True\n\n[locale]\ntimeformat = %H:%M\ndateformat = %Y-%m-%d\nlongdateformat = %Y-%m-%d\ndatetimeformat = %Y-%m-%d %H:%M\nlongdatetimeformat = %Y-%m-%d %H:%M\n\n\n\nkhal\u3092\u5c0e\u5165\u3057\u3066\u8a2d\u5b9a\u3092\u66f8\u3044\u3066\u307f\u307e\u3057\u305f\uff0epath\u306f Vdirsyncer \u3067\u540c\u671f\u3055\u308c\u305f\u5834\u6240\u3092\u6307\u5b9a\u3057\u307e\u3059\uff0e\n\u3053\u306e\u72b6\u614b\u3067khal\u3092\u53e9\u304f\u3068\u3053\u3093\u306a\u611f\u3058\u3067\u8868\u793a\u3055\u308c\u307e\u3057\u305f\uff0e\n\n\n\n$ khal\n Mo Tu We Th Fr Sa Su Tomorrow, 2021-03-31\nMar 1 2 3 4 5 6 7 20:00-21:30 TechLION vol.37 \u301cTechLION\u51fa\u6f14\u8005\u306b\u805e\u304f\u3001\u3053\u306e1\u5e74\u3068\u3053\u306e10\u5e74\u3002\u305d\u3057\u3066\u672a\u6765\u301c :: # \u8996\u8074\u65b9\u6cd5 \u672c\u30a4\u30d9\u30f3\u30c8\u306fYouTube\u306b\u3066\u914d\u4fe1\u3057\u307e\u3059 \u8996\u8074URL\u306f\u6c7a\u307e\u308a\u6b21\u7b2c\u63b2\u8f09\u3057\u307e\u3059 #\n 8 9 10 11 12 13 14 \u30d7\u30ed\u30b0\u30e9\u30e0 2011\u5e743\u6708\u306b\u65d7\u63da\u3052\u3057\u305fTechLION\u304c10\u5468\u5e74\u3092\u8fce\u3048\u308b\u306b\u3042\u305f\u308a\u3001\u8a18\u5ff5\u8a66\u5408\u3092\u30aa\u30f3\u30e9\u30a4\u30f3\u30a4\u30d9\u30f3\u30c8\u3068\u3057\u3066\u884c\u3044\u307e\u3059\u3002 \u30c8\n\u30fc\u30af\u30bb\u30c3\u30b7\u30e7\u30f3\u3067\u306f\u3001\u3053\u308c\u307e\u3067TechLION\u306b\u51fa\u6f14\u3057\u3066\u304f\u3060\u3055\u3063\u305f\u7686\u3055\u3093\u306b\u3001IT\u696d\u754c\u306e\u6700\u8fd1\u306e\u72b6\u6cc1\u3001\n 15 16 17 18 19 20 21 10\u5e74\u9593\u306e\u5909\u5316\u3001\u4eca\u5f8c\u306e\u4e88\u60f3\u306a\u3069\u3092\u304a\u805e\u304d\u3057\u307e\u3059\u3002\u4e8b\u524d\u306b\u5b9f\u65bd\u3057\u305f\u30a2\u30f3\u30b1\u30fc\u30c8\u7d50\u679c\u3092\u898b\u306a\u304c\u3089MC\u306e2\u540d\u304c\u9032\u884c\u3057\u307e\u3059\u304c\u3001\u56de\u7b54\u306b\u3088\u3063\n\u3066\u306f\u51fa\u6f14\u8005\u306e\u65b9\u3082\u30c8\u30fc\u30af\u306b\u3054\u53c2\u52a0\u3044\u305f\u3060\u304d\u307e\u3059\u3002\n 22 23 24 25 26 27 28 TechLION\u65d7\u63da\u3052\u8a18\u5ff5\u65e5\u3067\u3082\u3042\u308b3\u670831\u65e5\u306e\u591c\u3001\u304a\u9152\u3092\u7247\u624b\u306b\u304a\u697d\u3057\u307f\u304f\u3060\u3055\u3044\uff01 * \u51fa\u6f14\uff1a\u3053\u308c\u307e\u3067\u306eTechLION\u306b\u3054\u51fa\u6f14\u306e\u7686\u3055\n\u3093 * MC\uff1a\u6cd5\u6797\u6d69\u4e4b\u3001\u99ae\u5bcc\u4e45 # \u958b\u50ac\u6982\u8981 * \u540d\u79f0\uff1aTechLION\nApr 29 30 31 1 2 3 4 vol.37 \u301cTechLION\u51fa\u6f14\u8005\u306b\u805e\u304f\u3001\u3053\u306e1\u5e74\u3068\u3053\u306e10\u5e74\u3002\u305d\u3057\u3066\u672a\u6765\u301c * \u4e3b\u50ac\uff1a\u30c1\u30fc\u30e0TechLION * \u5354\u8cdb\uff1aUSP\u7814\u7a76\u6240\u3001\u6280\u8853\u8a55\n\u8ad6\u793e * \u5f8c\u63f4\uff1a\u65e5\u672cUNIX\u30e6\u30fc\u30b6\u4f1a *\n 5 6 7 8 9 10 11 \u65e5\u6642\uff1a2021\u5e743\u670831\u65e5(\u6c34) 20:00\u958b\u6f14\u300121:30\u7d42\u4e86\u4e88\u5b9a * \u5834\u6240\uff1a\u30aa\u30f3\u30e9\u30a4\u30f3 (YouTube\u306b\u3066\u914d\u4fe1) * \u6599\u91d1\uff1a\u7121\u6599 * \u516c\u5f0f\u30bf\u30b0\n\uff1atechlion * \u554f\u3044\u5408\u308f\u305b\u5148\uff1a\u30c1\u30fc\u30e0TechLION\n 12 13 14 15 16 17 18 (E-mail\uff1astaff[at]techlion.jp) # \u30a4\u30d9\u30f3\u30c8\u8a73\u7d30 https://techlion.jp/vol37\n 19 20 21 22 23 24 25 https://techlion.connpass.com/event/205623/\nMay 26 27 28 29 30 1 2\n 3 4 5 6 7 8 9\n 10 11 12 13 14 15 16\n 17 18 19 20 21 22 23\n 24 25 26 27 28 29 30\nJun 31 1 2 3 4 5 6\n\n\n\nikhal\u30b3\u30de\u30f3\u30c9\u3092\u4f7f\u3046\u3068\u30c0\u30f3\u30d7\u3067\u306f\u306a\u304f\uff0ctui\u306ehal\u304c\u8d77\u52d5\u3057\u3066\u30a4\u30f3\u30bf\u30e9\u30af\u30c6\u30a3\u30d6\u306b\u64cd\u4f5c\u3067\u304d\u307e\u3059\uff0e\n\n\n\n\n\n\u3061\u3087\u3063\u3068\u5197\u9577\u306a\u306e\u3067 --format \"title}\" \u3067\u30bf\u30a4\u30c8\u30eb\u3060\u3051\u8868\u793a\u3059\u308b\u3088\u3046\u306b\u3057\u3066\u307f\u307e\u3057\u305f\uff0e\n\n\n\n$ khal list --format \"{title}\"\nTomorrow, 2021-03-31\nTechLION vol.37 \u301cTechLION\u51fa\u6f14\u8005\u306b\u805e\u304f\u3001\u3053\u306e1\u5e74\u3068\u3053\u306e10\u5e74\u3002\u305d\u3057\u3066\u672a\u6765\u301c\n\n\n\n\u4eca\u65e5\u3060\u3051\u3084\uff0c\u4eca\u65e5\u304b\u3089\uff17\u65e5\u9593\u306a\u3069\u7bc4\u56f2\u6307\u5b9a\u3082\u51fa\u6765\u307e\u3059\uff0e\n\n\n\n$ khal list --format \"{title}\" today today (1)\n$ khal list --format \"{title}\" today 7days (2)\n$ khal list --format \"{title}\" 2021-03-01 2021-03-31 (3)\n$ faketime 2021-03-03 khal list --format \"{title}\" today (4)\n\n\n\n\n\u4eca\u65e5\u304b\u3089\u4eca\u65e5\u307e\u3067\u8868\u793a\n\u4eca\u65e5\u304b\u30897\u65e5\u9593\u8868\u793a\n03/01\u301c03/31\u307e\u3067\u8868\u793a\nfaketime\u306703/03\u3068\u3057\u3066khal\u3092\u5b9f\u884c\n\n\n\nURL\u3082\u8868\u793a\u3057\u305f\u3044\u3051\u3069\uff0c\u3042\u3063\u3066\u3082.ics\u306eDiscription\u306e\u4e2d\u306a\u3069\u306a\u306e\u3067\u3061\u3087\u3063\u3068\u9762\u5012\u305d\u3046\u306a\u306e\u3067\u4eca\u56de\u306f\u8ae6\u3081\u307e\u3057\u305f\uff0e\u5fc5\u8981\u306a\u3068\u304d\u306f\u30ab\u30ec\u30f3\u30c0\u30fc\u3092\u53c2\u7167\u3059\u308b\u3053\u3068\u306b\u3057\u307e\u3059\uff0e\n\n\n\n\n\u8907\u6570\u306e\u30ab\u30ec\u30f3\u30c0\u30fc\u306e\u8a2d\u5b9a\n\n\n2\u3064\u76ee\u306e\u30ab\u30ec\u30f3\u30c0\u30fc\u3092\u767b\u9332\u3057\u3066\u307f\u307e\u3059\uff0e\u6b21\u306f\u65e5\u672c\u306e\u4f11\u65e5\u30ab\u30ec\u30f3\u30c0\u30fc\u3092\u767b\u9332\u3057\u3066\u307f\u307e\u3059\uff0e\n\n\n\niCal\u5f62\u5f0f\u306e\u65e5\u672c\u306e\u4f11\u65e5\u3092\u63a2\u3059 \u2013 matoken\u2019s meme\n\n\n\nGoogle\u306e\u65e5\u672c\u8a9e\u7248( https://www.google.com/calendar/ical/ja.japanese%23holiday%40group.v.calendar.google.com/public/basic.ics )\u3092\u5229\u7528\u3059\u308b\u3053\u3068\u306b\u3057\u307e\u3059\uff0e\n\n\n~/.config/vdirsyncer/config \u306b\u4ee5\u4e0b\u306e\u8a2d\u5b9a\u3092\u8ffd\u8a18\u3057\u307e\u3059\uff0e\n\n\n\n[pair holiday_calendars]\na = \"holiday_calendars_local\"\nb = \"holiday_calendars_remote\"\ncollections = null\nmetadata = [\"color\"]\n\n[storage holiday_calendars_local]\ntype = \"filesystem\"\npath = \"~/.calendars/holiday_calendars/\"\nfileext = \".ics\"\n\n[storage holiday_calendars_remote]\ntype = \"http\"\nurl = \"https://www.google.com/calendar/ical/ja.japanese%23holiday%40group.v.calendar.google.com/public/basic.ics\"\n\n\n\n\u8a2d\u5b9a\u53cd\u6620\u3057\u3066\u30ab\u30ec\u30f3\u30c0\u30fc\u3092\u540c\u671f\u3057\u307e\u3059\uff0e\n\n\n\n$ vdirsyncer discover holiday_calendars\n$ vdirsyncer sync holiday_calendars\n\n\n\n\u6b21\u306bkhal\u306e\u8a2d\u5b9a\u3067\u3059\uff0e\n~/.config/khal/config \u306e [calendars] \u30bb\u30af\u30b7\u30e7\u30f3\u306b\u4ee5\u4e0b\u306e\u8a2d\u5b9a\u3092\u8ffd\u8a18\u3057\u307e\u3059\uff0e\n\n\n\n [[holiday]]\n path = ~/.calendars/holiday_calendars/\n readonly = True\n\n\n\n\u3053\u306e\u72b6\u614b\u3067khal\u3092\u5b9f\u884c\u3057\u3066\u307f\u308b\u3068\u795d\u65e5\u3082\u8868\u793a\u3055\u308c\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f :)\n\n\n\n$ khal list --format \"{title}\" 2021-03-20 1days\nSaturday, 2021-03-20\n\u6625\u5206\u306e\u65e5\nNBUG 2021\u5e743\u6708\u4f8b\u4f1a[\u7b2c250\u56de\u4f8b\u4f1a]\nKernel/VM\u63a2\u691c\u968aonline part2\n\n\n\n\u3068\u3044\u3046\u3053\u3068\u3067\u5f53\u521d\u601d\u3063\u3066\u3044\u305f\u3088\u308a\u5c11\u3057\u9762\u5012\u3067\u3057\u305f\u304c\uff0c\u3068\u308a\u3042\u3048\u305a\u3084\u308a\u305f\u3044\u3053\u3068\u304c\u51fa\u6765\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f :)\n\n\n\n\n\u74b0\u5883\n\n\n\n$ dpkg-query -W vdirsyncer khal faketime\nfaketime 0.9.7-3\nkhal 1:0.9.10-1.1\nvdirsyncer 0.16.7-2\n$ lsb_release -dr\nDescription: Debian GNU/Linux 10 (buster)\nRelease: 10\n$ uname -m\nx86_64", "date_published": "2021-03-31T20:02:13+09:00", "date_modified": "2021-03-31T20:06:20+09:00", "authors": [ { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" } ], "author": { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" }, "tags": [ "Calendar", "DavCal", "iCal", "buster", "Debian", "Linux" ] }, { "id": "http://matoken.org/blog/?p=2568", "url": "https://matoken.org/blog/2019/10/17/find-japanese-holidays-in-ical-format/", "title": "iCal\u5f62\u5f0f\u306e\u65e5\u672c\u306e\u4f11\u65e5\u3092\u63a2\u3059", "content_html": "
\n

\"Nectcloud

\n
\n
\n

\u6700\u8fd1\u30ab\u30ec\u30f3\u30c0\u30fc\u3092Nextcloud\u306b\u79fb\u884c\u3057\u3066\u3044\u307e\u3059\uff0eAndroid\u3067\u3082Caldav Sync Free Beta\u3068\u3044\u3046\u30a2\u30d7\u30ea\u7d4c\u7531\u3067\u540c\u671f\u3067\u304d\u3066\u3044\u307e\u3059\uff0e

\n
\n
\n\n
\n
\n

\u554f\u984c\u7121\u3055\u305d\u3046\u304b\u306a\u30fc\u3068\u601d\u3063\u3066\u3044\u305f\u306e\u3067\u3059\u304c\uff0c\u65e5\u672c\u306e\u4f11\u65e5\u304c\u7121\u304f\u3066\u3061\u3087\u3063\u3068\u4e0d\u4fbf\u3067\u3059\uff0e\u5916\u90e8\u30ab\u30ec\u30f3\u30c0\u30fc\u306e\u8aad\u307f\u8fbc\u307f\u306f\u51fa\u6765\u308b\u306e\u3067iCal\u5f62\u5f0f\u306e\u3082\u306e\u304c\u3042\u308b\u3068\u826f\u3044\u306f\u305a\u3067\u3059\uff0e

\n
\n
\n

\u56fd\u6c11\u306e\u4f11\u65e5\u306f\u4ee5\u4e0b\u306b\u3042\u308b\u306e\u3067\u3059\u304ciCal\u306f\u7121\u304f\uff0c\u81ea\u5206\u3067\u5165\u529b\u3059\u308b\u306e\u306f\u9762\u5012\u3067\u3059\uff0eCSV\u5f62\u5f0f\u3067\u306e\u914d\u5e03\u3082\u3055\u308c\u3066\u3044\u308b\u306e\u3067\u5909\u63db\u3059\u308b\u306e\u3082\u3042\u308a\u3067\u3059\u304c\u4f55\u5ea6\u304b\u4ed5\u69d8\u304c\u5909\u308f\u3063\u3066\u3044\u308b\u306e\u3067\u307e\u305f\u4ed5\u69d8\u304c\u5909\u308f\u308b\u3068\u8ffd\u5f93\u304c\u9762\u5012\u305d\u3046\u3067\u3059\uff0e

\n
\n
\n\n
\n
\n

iCal\u5f62\u5f0f\u3067\u914d\u5e03\u3055\u308c\u3066\u3044\u308b\u3082\u306e\u304c\u306a\u3044\u304b\u63a2\u3057\u3066\u307f\u307e\u3057\u305f\uff0e

\n
\n
\n
\n
\n
\nyaml\u5f62\u5f0f\u306e\u4e16\u754c\u306e\u4f11\u65e5\u30ea\u30dd\u30b8\u30c8\u30ea\u3082\u3042\u3063\u305f\uff0edate-holidays-ical\u3068\u7d44\u307f\u5408\u308f\u305b\u3066iCal\u3082\u4f5c\u308c\u308b\u3088\u3046\uff0e\u3044\u3056\u3068\u306a\u3063\u305f\u3089\u3053\u308c\u3092\u4f7f\u3046\u3068\u826f\u3055\u305d\u3046\uff0e
\n\n
\n
\n
\n
\n

Apple\u8b39\u88fd

\n
\n
\n

Apple\u306eiCloud\u5411\u3051\u306e\u3082\u306e\u3067\u3059\u304c\uff0cNextcloud\u3067\u3082\u8aad\u307f\u8fbc\u3081\u307e\u3057\u305f\uff0e

\n
\n
\n\n
\n
\n

Google\u8b39\u88fd

\n
\n
\n

\u4ee5\u4e0b\u306fGoogle Calendar\u5411\u3051\u306e\u3082\u306e\u3067\u3059\uff0e\u3053\u308c\u3082Nextcloud\u3067\u8aad\u307f\u8fbc\u3081\u307e\u3057\u305f\uff0e\u4ee5\u524d\u306fGoogle Calendar\u306e\u753b\u9762\u304b\u3089\u5404\u7a2e\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u306e\u30a2\u30a4\u30b3\u30f3\u304c\u3042\u3063\u3066\u30ea\u30f3\u30af\u306e\u5165\u624b\u304c\u7c21\u5358\u3060\u3063\u305f\u306e\u3067\u3059\u304c\u4eca\u306f\u96a0\u3055\u308c\u3066\u3044\u307e\u3059\uff0e\u305d\u306e\u3046\u3061\u4f7f\u3048\u306a\u304f\u306a\u308b\u306e\u304b\u3082?

\n
\n
\n\n
\n
\n
\u4f59\u9332
\n

\u65e5\u672c\u306e\u4f11\u65e5\u3092\u63a2\u3057\u3066\u3044\u308b\u3068\u304d\u306b\u30e9\u30a4\u30d6\u30c9\u30a2\u306eiCal\u5929\u6c17\u3068\u3044\u3046\u3082\u306e\u3092\u898b\u3064\u3051\u307e\u3057\u305f\uff0e\u3053\u308c\u3082\u4fbf\u5229\u305d\u3046\u3067\u3059\uff0eNextcloud\u3067\u306f\u6570\u5024\u6587\u5b57\u53c2\u7167\u306f\u305d\u306e\u307e\u307e\u8868\u793a\u3055\u308c\u3066\u3057\u307e\u3046\u3088\u3046\u306a\u306e\u3067\u305d\u308c\u4ee5\u5916\u3092\u9078\u3093\u3060\u307b\u3046\u304c\u3044\u3044\u3067\u3059\uff0e

\n
\n
\n\n
\n
\n
Nextcloud\u74b0\u5883
\n
\n
$ sudo -u www-data php ./occ --version\nNextcloud 16.0.5\n$ sudo -u www-data php ./occ app:list|grep -i calendar\n  - calendar: 1.7.1\n$ lsb_release -dr\nDescription:    Debian GNU/Linux 10 (buster)\nRelease:        10
\n
\n
\n", "content_text": "\u6700\u8fd1\u30ab\u30ec\u30f3\u30c0\u30fc\u3092Nextcloud\u306b\u79fb\u884c\u3057\u3066\u3044\u307e\u3059\uff0eAndroid\u3067\u3082Caldav Sync Free Beta\u3068\u3044\u3046\u30a2\u30d7\u30ea\u7d4c\u7531\u3067\u540c\u671f\u3067\u304d\u3066\u3044\u307e\u3059\uff0e\n\n\n\nCalendar – \u30a2\u30d7\u30ea – App Store – Nextcloud\nCaldav Sync Free Beta – Google Play \u306e\u30a2\u30d7\u30ea\n\n\n\n\u554f\u984c\u7121\u3055\u305d\u3046\u304b\u306a\u30fc\u3068\u601d\u3063\u3066\u3044\u305f\u306e\u3067\u3059\u304c\uff0c\u65e5\u672c\u306e\u4f11\u65e5\u304c\u7121\u304f\u3066\u3061\u3087\u3063\u3068\u4e0d\u4fbf\u3067\u3059\uff0e\u5916\u90e8\u30ab\u30ec\u30f3\u30c0\u30fc\u306e\u8aad\u307f\u8fbc\u307f\u306f\u51fa\u6765\u308b\u306e\u3067iCal\u5f62\u5f0f\u306e\u3082\u306e\u304c\u3042\u308b\u3068\u826f\u3044\u306f\u305a\u3067\u3059\uff0e\n\n\n\u56fd\u6c11\u306e\u4f11\u65e5\u306f\u4ee5\u4e0b\u306b\u3042\u308b\u306e\u3067\u3059\u304ciCal\u306f\u7121\u304f\uff0c\u81ea\u5206\u3067\u5165\u529b\u3059\u308b\u306e\u306f\u9762\u5012\u3067\u3059\uff0eCSV\u5f62\u5f0f\u3067\u306e\u914d\u5e03\u3082\u3055\u308c\u3066\u3044\u308b\u306e\u3067\u5909\u63db\u3059\u308b\u306e\u3082\u3042\u308a\u3067\u3059\u304c\u4f55\u5ea6\u304b\u4ed5\u69d8\u304c\u5909\u308f\u3063\u3066\u3044\u308b\u306e\u3067\u307e\u305f\u4ed5\u69d8\u304c\u5909\u308f\u308b\u3068\u8ffd\u5f93\u304c\u9762\u5012\u305d\u3046\u3067\u3059\uff0e\n\n\n\n\u56fd\u6c11\u306e\u795d\u65e5\u306b\u3064\u3044\u3066 – \u5185\u95a3\u5e9c\n\n\nhttps://www8.cao.go.jp/chosei/shukujitsu/syukujitsu.csv (\u3053\u306eblog\u6295\u7a3f\u6642\u70b9\u3067\u662d\u548c30\u5e74\uff081955\u5e74\uff09\u304b\u3089\u5e73\u621032\u5e74\uff082020\u5e74\uff09\u56fd\u6c11\u306e\u795d\u65e5)\nhttps://www8.cao.go.jp/chosei/shukujitsu/syukujitsu_kyujitsu.csv (\u3053\u306eblog\u6295\u7a3f\u6642\u70b9\u30672017\u5e741\u6708\u304b\u30892019\u5e7411\u6708 \u56fd\u6c11\u306e\u795d\u65e5)\n\n\n\n\n\n\niCal\u5f62\u5f0f\u3067\u914d\u5e03\u3055\u308c\u3066\u3044\u308b\u3082\u306e\u304c\u306a\u3044\u304b\u63a2\u3057\u3066\u307f\u307e\u3057\u305f\uff0e\n\n\n\n\n\nyaml\u5f62\u5f0f\u306e\u4e16\u754c\u306e\u4f11\u65e5\u30ea\u30dd\u30b8\u30c8\u30ea\u3082\u3042\u3063\u305f\uff0edate-holidays-ical\u3068\u7d44\u307f\u5408\u308f\u305b\u3066iCal\u3082\u4f5c\u308c\u308b\u3088\u3046\uff0e\u3044\u3056\u3068\u306a\u3063\u305f\u3089\u3053\u308c\u3092\u4f7f\u3046\u3068\u826f\u3055\u305d\u3046\uff0e\n\n\ncommenthol/date-holidays: worldwide holidays\n\n\ndate-holidays/JP.yaml at master \u00b7 commenthol/date-holidays (\u65e5\u672c\u90e8\u5206)\n\n\n\ncommenthol/date-holidays-ical: Generate ical (.ics) files from date-holidays data\n\n\n\n\n\n\nApple\u8b39\u88fd\n\n\nApple\u306eiCloud\u5411\u3051\u306e\u3082\u306e\u3067\u3059\u304c\uff0cNextcloud\u3067\u3082\u8aad\u307f\u8fbc\u3081\u307e\u3057\u305f\uff0e\n\n\n\nwebcal://ical.mac.com/ical/Japanese32Holidays.ics\n\n\n\nGoogle\u8b39\u88fd\n\n\n\u4ee5\u4e0b\u306fGoogle Calendar\u5411\u3051\u306e\u3082\u306e\u3067\u3059\uff0e\u3053\u308c\u3082Nextcloud\u3067\u8aad\u307f\u8fbc\u3081\u307e\u3057\u305f\uff0e\u4ee5\u524d\u306fGoogle Calendar\u306e\u753b\u9762\u304b\u3089\u5404\u7a2e\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u306e\u30a2\u30a4\u30b3\u30f3\u304c\u3042\u3063\u3066\u30ea\u30f3\u30af\u306e\u5165\u624b\u304c\u7c21\u5358\u3060\u3063\u305f\u306e\u3067\u3059\u304c\u4eca\u306f\u96a0\u3055\u308c\u3066\u3044\u307e\u3059\uff0e\u305d\u306e\u3046\u3061\u4f7f\u3048\u306a\u304f\u306a\u308b\u306e\u304b\u3082?\n\n\n\nhttps://www.google.com/calendar/ical/ja.japanese%23holiday%40group.v.calendar.google.com/public/basic.ics (\u65e5\u672c\u8a9e\u7248)\nhttps://www.google.com/calendar/ical/japanese%40holiday.calendar.google.com/public/basic.ics (\u82f1\u8a9e\u7248)\n\n\n\n\u4f59\u9332\n\u65e5\u672c\u306e\u4f11\u65e5\u3092\u63a2\u3057\u3066\u3044\u308b\u3068\u304d\u306b\u30e9\u30a4\u30d6\u30c9\u30a2\u306eiCal\u5929\u6c17\u3068\u3044\u3046\u3082\u306e\u3092\u898b\u3064\u3051\u307e\u3057\u305f\uff0e\u3053\u308c\u3082\u4fbf\u5229\u305d\u3046\u3067\u3059\uff0eNextcloud\u3067\u306f\u6570\u5024\u6587\u5b57\u53c2\u7167\u306f\u305d\u306e\u307e\u307e\u8868\u793a\u3055\u308c\u3066\u3057\u307e\u3046\u3088\u3046\u306a\u306e\u3067\u305d\u308c\u4ee5\u5916\u3092\u9078\u3093\u3060\u307b\u3046\u304c\u3044\u3044\u3067\u3059\uff0e\n\n\n\niCal\u5929\u6c17 – Weather Hacks – livedoor \u5929\u6c17\u60c5\u5831\n\n\n\nNextcloud\u74b0\u5883\n\n$ sudo -u www-data php ./occ --version\nNextcloud 16.0.5\n$ sudo -u www-data php ./occ app:list|grep -i calendar\n - calendar: 1.7.1\n$ lsb_release -dr\nDescription: Debian GNU/Linux 10 (buster)\nRelease: 10", "date_published": "2019-10-17T06:39:10+09:00", "date_modified": "2019-10-17T06:38:30+09:00", "authors": [ { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" } ], "author": { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" }, "tags": [ "Calendar", "nextcloud", "buster", "Debian", "Linux" ] } ] }