{ "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/ical/feed/json -- and add it your reader.", "home_page_url": "https://matoken.org/blog/tag/ical", "feed_url": "https://matoken.org/blog/tag/ical/feed/json", "language": "ja", "title": "iCal – 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=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": "
\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
\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
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$ 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\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
$ 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\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
$ crontab -l | grep 'vdirsyncer sync'\n4 4 * * * chronic vdirsyncer sync\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
\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
$ 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\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
$ 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
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\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
$ 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\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$ 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)\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
\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
\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~/.config/vdirsyncer/config \u306b\u4ee5\u4e0b\u306e\u8a2d\u5b9a\u3092\u8ffd\u8a18\u3057\u307e\u3059\uff0e
[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\u8a2d\u5b9a\u53cd\u6620\u3057\u3066\u30ab\u30ec\u30f3\u30c0\u30fc\u3092\u540c\u671f\u3057\u307e\u3059\uff0e
\n$ vdirsyncer discover holiday_calendars\n$ vdirsyncer sync holiday_calendars\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
[[holiday]]\n path = ~/.calendars/holiday_calendars/\n readonly = True\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$ 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\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$ 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