{"id":499,"date":"2020-09-18T15:21:43","date_gmt":"2020-09-18T06:21:43","guid":{"rendered":"http:\/\/www.tkn.jp\/tknsys\/wordpress\/?p=499"},"modified":"2022-12-11T12:41:53","modified_gmt":"2022-12-11T03:41:53","slug":"cybozu2ical%ef%bc%88cybozu-office10%e3%81%8b%e3%82%89%e3%82%b9%e3%82%b1%e3%82%b8%e3%83%a5%e3%83%bc%e3%83%ab%e6%8a%bd%e5%87%ba%ef%bc%89","status":"publish","type":"post","link":"https:\/\/www.tkn.jp\/?p=499","title":{"rendered":"Cybozu2ical\uff08Cybozu Office10\u304b\u3089\u30b9\u30b1\u30b8\u30e5\u30fc\u30eb\u62bd\u51fa\uff09"},"content":{"rendered":"\n<p>Cybozu Office \u304b\u3089\u30b9\u30b1\u30b8\u30e5\u30fc\u30eb\u30c7\u30fc\u30bf\u3092\u30b9\u30af\u30ec\u30a4\u30d4\u30f3\u30b0\u3057\u3066\u3001ical\u5f62\u5f0f\u3067\u30ec\u30b9\u30dd\u30f3\u30b9\u3059\u308b\u30b9\u30af\u30ea\u30d7\u30c8\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u5143\u306f\u540d\u53e4\u5c4b\u306e\u793e\u9577\u69d8\u304c\u4f5c\u3089\u308c\u305f\u3082\u306e\u3067\u3001\u305d\u306e\u5f8c\u3001\u671b\u9060\u93e1\u30c9\u30c3\u30c8\u30b3\u30e0\u69d8\u304c\u4fee\u6b63\u3057\u305f\u3082\u306e\u3092\u52dd\u624b\u306b\u30e1\u30f3\u30c6\u3057\u305f\u3082\u306e\u3068\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<p><\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism undefined-numbers lang-php\" data-lang=\"PHP\"><code>\n&lt;?php\n\/*\n\u6a5f\u80fd\u8aac\u660e\uff1a CybozuOffice10\u306b\u5bfe\u3057\u3066\u30b9\u30b1\u30b8\u30e5\u30fc\u30eb\u3092\u30b9\u30af\u30ec\u30a4\u30d4\u30f3\u30b0\u3057\u3001ical\u5f62\u5f0f\u306b\u5909\u63db\u3057\u3066\u8fd4\u5374\u3059\u308b\u30b9\u30af\u30ea\u30d7\u30c8\n\u5229\u7528\u65b9\u6cd5\uff1a https:\/\/hoge\/cybouz2ical.php?user=username&pass=password\n\tusername\u306fCybozuOffice\u306e\u4e0b\u8a18\u30da\u30fc\u30b8\u306e\u300c\u30ed\u30b0\u30a4\u30f3\u540d\u300d\u6b04\u306b\u3066\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002\n\thttps:\/\/hoge\/fuga\/ag.cgi?page=PersonalUser\n\u6539\u7248\u5c65\u6b74\uff1a\n2009\/05\/13\n\t\u540d\u53e4\u5c4b\u3067\u306f\u305f\u3089\u304f\u793e\u9577\u30d6\u30ed\u30b0\u3060\u3082\u3093\u3067\n\t\u30b5\u30a4\u30dc\u30a6\u30baofffice8\u3068\u540c\u671f\u3059\u308b\u30c4\u30fc\u30eb\u66ab\u5b9a\u7248\n\thttp:\/\/ameblo.jp\/sitescope\/entry-10260113074.html\n2013\/08\/26\n\t\u4e0a\u8a18\u306b\u3066\u516c\u958b\u3057\u3066\u3044\u305f\u3060\u3044\u3066\u3044\u308b\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u30b5\u30a4\u30dc\u30a6\u30ba9\u7528\u306b\u52dd\u624b\u6539\u5909\u7248\n\t\u30b5\u30a4\u30dc\u30a6\u30ba Office Version 9.3.1 20130703181739\u306b\u3066\u78ba\u8a8d\n\t\u671b\u9060\u93e1\u30c9\u30c3\u30c8\u30b3\u30e0\n\t\u30b5\u30a4\u30dc\u30a6\u30ba9\u30fb\u30b5\u30a4\u30dc\u30a6\u30ba10\u306e\u30b9\u30b1\u30b8\u30e5\u30fc\u30eb\u3092iCal\u5f62\u5f0f\u3067Google\u30ab\u30ec\u30f3\u30c0\u30fc\u306b\u540c\u671f(\u4e00\u65b9\u901a\u884c)\n\t<blockquote class=\"wp-embedded-content\" data-secret=\"prHpLvzcTu\"><a href=\"http:\/\/www.boenkyo.com\/archives\/2333\">\u30b5\u30a4\u30dc\u30a6\u30ba9\u30fb\u30b5\u30a4\u30dc\u30a6\u30ba10\u306e\u30b9\u30b1\u30b8\u30e5\u30fc\u30eb\u3092iCal\u5f62\u5f0f\u3067Google\u30ab\u30ec\u30f3\u30c0\u30fc\u306b\u540c\u671f(\u4e00\u65b9\u901a\u884c)<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"&#8220;\u30b5\u30a4\u30dc\u30a6\u30ba9\u30fb\u30b5\u30a4\u30dc\u30a6\u30ba10\u306e\u30b9\u30b1\u30b8\u30e5\u30fc\u30eb\u3092iCal\u5f62\u5f0f\u3067Google\u30ab\u30ec\u30f3\u30c0\u30fc\u306b\u540c\u671f(\u4e00\u65b9\u901a\u884c)&#8221; &#8212; \u671b\u9060\u93e1\u30c9\u30c3\u30c8\u30b3\u30e0\" src=\"http:\/\/www.boenkyo.com\/archives\/2333\/embed#?secret=prHpLvzcTu\" data-secret=\"prHpLvzcTu\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n2020\/09\/18\n\t\u4e0a\u8a18\u3067\u516c\u958b\u3057\u3066\u3044\u308b\u30bd\u30fc\u30b9\u306b\u3064\u3044\u3066\u4ee5\u4e0b\u3092\u6539\u4fee\u3057\u307e\u3057\u305f\n\t\u30fb ical\u306eUID\u306e\u91cd\u8907\u3092\u907f\u3051\u308b\uff08Google\u30ab\u30ec\u30f3\u30c0\u30fc\u3067\u540c\u65e5\u306e\u8907\u6570\u4e88\u5b9a\u304c1\u65e51\u4ef6\u3057\u304b\u53d6\u308a\u8fbc\u3081\u306a\u3044\u306e\u3092\u4fee\u6b63\uff09\n\t\u30fb \u57fa\u672c\u8a8d\u8a3c\u8a2d\u7f6e\u3057\u3066\u3044\u308bCybozuOffice\u306b\u5bfe\u5fdc\n\t\u30fb URL\u30d1\u30e9\u30e1\u30bf\u306bUser\/Pass\u3092\u542b\u3081\u308b\u3088\u3046\u306b\u4fee\u6b63\uff08SSL\u3092\u4f7f\u7528\u3057\u306a\u3044\u3068\u5e73\u6587\u3067\u9001\u3089\u308c\u308b\u306e\u3067\u8981\u6ce8\u610f\uff09\n\t\u30fb \u305d\u306e\u4ed6\u5fae\u4fee\u6b63\n*\/\n\n$username = $_GET[&#39;user&#39;];\n$password = $_GET[&#39;pass&#39;];\n\nif(empty($username) || empty($password)){\n\tdie(&quot;parameter error!&quot;);\n}\n\n\/\/-------------------------------------------------------------------------------------------------------------------\n\/\/ \u8a2d\u5b9a\n\/\/-------------------------------------------------------------------------------------------------------------------\n\/\/define(&quot;CHAR_CODE&quot;,  &#39;SJIS&#39;);    \t\/\/\u30b5\u30a4\u30dc\u30a6\u30ba\u306e\u6587\u5b57\u30b3\u30fc\u30c9 \u30b5\u30a4\u30dc\u30a6\u30ba9\u306fSJIS\ndefine(&quot;CHAR_CODE&quot;,  &#39;UTF-8&#39;);    \t\/\/\u30b5\u30a4\u30dc\u30a6\u30ba\u306e\u6587\u5b57\u30b3\u30fc\u30c9\u3000\u30b5\u30a4\u30dc\u30a6\u30ba10\u306fUTF-8\ndefine(&quot;SCHEDULE_TITLE&quot;, &#39;Cybozu&#39;);\t\/\/\u30b9\u30b1\u30b8\u30e5\u30fc\u30eb\u30bf\u30a4\u30c8\u30eb\ndefine(&quot;SCHEDULE_MEMO&quot;,  TRUE);   \t\/\/\u30b9\u30b1\u30b8\u30e5\u30fc\u30eb\u30e1\u30e2\u307e\u3067\u53d6\u5f97\u3059\u308b\u5834\u5408\u306f&#39;TRUE&#39;\ndefine(&#39;PRODID&#39;, &#39;Cybozu2iCal&#39;);    \/\/http:\/\/ameblo.jp\/sitescope\/entry-10260113074.html\ndefine(&#39;CYBOZU_URL&#39;, &#39;https:\/\/hoge\/fuga\/ag.cgi&#39;);   \/\/\u30b5\u30a4\u30dc\u30a6\u30ba\u306eURL\ndefine(&quot;VERSION&quot;, 10);\t\t\t\t\/\/CybozuOffice\u30d0\u30fc\u30b8\u30e7\u30f3\uff08\uff19\uff0c\uff11\uff10\u306e\u307f\u5bfe\u5fdc\uff09\ndefine(&quot;SALU_ID&quot;, &#39;&#39;);\t\t\t\t\/\/\u57fa\u672c\u8a8d\u8a3c\uff08\u3042\u308b\u5834\u5408\u3060\u3051\u30bb\u30c3\u30c8\uff09\ndefine(&quot;SALU_PW&quot;, &#39;&#39;);\t\t\t\t\/\/\u57fa\u672c\u8a8d\u8a3c\uff08\u3042\u308b\u5834\u5408\u3060\u3051\u30bb\u30c3\u30c8\uff09\n\/\/-------------------------------------------------------------------------------------------------------------------\n\n\/\/POST\u30c7\u30fc\u30bf\u7d44\u307f\u7acb\u3066\n$data = array(\n    &quot;_System&quot; =&gt; &quot;login&quot;,\n    &quot;_Login&quot; =&gt; &quot;1&quot;,\n    &quot;LoginMethod&quot; =&gt; &quot;2&quot;,\n    &quot;_Account&quot; =&gt; $username,\n    &quot;Password&quot; =&gt; $password\n);\n$data = http_build_query($data, &quot;&quot;, &quot;&&quot;);\n\n\/\/header\u306b\u30bb\u30c3\u30c8\n$header = array(\n    &quot;Content-Type: application\/x-www-form-urlencoded&quot;,\n    &quot;Content-Length: &quot;.strlen($data)    \n);\n\n\/\/\u57fa\u672c\u8a8d\u8a3c\u304c\u3042\u308b\u30b5\u30a4\u30dc\u30a6\u30ba\u306e\u5834\u5408\nif(!empty(SALU_ID)){\n\t$header[] = &quot;Authorization: Basic &quot; . base64_encode(SALU_ID . &quot;:&quot; . SALU_PW);\n}\n\n$context = array(\n    &quot;http&quot; =&gt; array(\n        &quot;method&quot;  =&gt; &quot;POST&quot;,\n        &quot;header&quot;  =&gt; implode(&quot;\\r\\n&quot;, $header),\n        &quot;content&quot; =&gt; $data\n    )\n);\n\n\/\/\u500b\u4eba\u6708\u9593\u30b9\u30b1\u30b8\u30e5\u30fc\u30eb\n$url = CYBOZU_URL . &#39;?page=ScheduleUserMonth&#39;;\n\n\/\/\u30b5\u30a4\u30dc\u30a6\u30ba\u304b\u3089HTML\u30c7\u30fc\u30bf\u53d6\u5f97\n$work = file_get_contents($url, false, stream_context_create($context));\n\n\/\/\u6587\u5b57\u30b3\u30fc\u30c9\u3092UTF-8\u3078\u5909\u63db\n$work = mb_convert_encoding($work, &quot;UTF-8&quot;, CHAR_CODE);\n\n\n\/\/\u6b63\u898f\u8868\u73fe\u304c\u3081\u3093\u3069\u304f\u3055\u3044\u306e\u3067\u305d\u306e\u307e\u307e\u6587\u5b57\u5217\u6bd4\u8f03\u3067\u4e0d\u8981\u306a\u3068\u3053\u3092\u307e\u305a\u524a\u9664\n$work = substr(strchr($work,&#39;&lt;table class=&quot;schedule usermonth&quot; id=&quot;schedulemonth&quot; width=&quot;100%&quot; &gt;&#39;), 0);\n$work = substr($work, 0, strpos($work, &#39;&lt;table class=&quot;monthNavi&quot; &#39;));\n$work = substr(strchr($work,&#39;&lt;tbody id=&quot;um__body&quot;&gt;&#39;), 0);\n$work = substr($work, 0, strpos($work, &#39;&lt;\/table&gt;&#39;));\n\n\/\/\u6587\u5b57\u5217\u6bd4\u8f03\u3067\u3068\u308a\u3042\u3048\u305a\u3001\u30b9\u30b1\u30b8\u30e5\u30fc\u30eb\u3092\u914d\u5217\u306b\u683c\u7d0d\n$wdate1 = &quot;&quot;;\n$wdate2 = &quot;&quot;;\n$schedule_list = &quot;&quot;;\n$loop_flg = TRUE;\nwhile ( $loop_flg == TRUE ) {\n\t\/\/\u65e5\u4ed8\u306e\u53d6\u5f97\n\t$wdate = &quot;&quot;;\n\t$wdate = substr(strchr($work,&#39;&lt;span class=&quot;date&quot;&gt;&#39;), 19);\n\t$wdate = substr($wdate, 0, strpos($wdate, &#39;&lt;\/span&gt;&#39;));\n\tif ($wdate == &quot;&quot;) {\n\t\tbreak;\n\t}\n\n\t\/\/\u65e5\u4ed8\u306e\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u3092\u5909\u66f4\n\t$date_sp = &quot;&quot;;\n\t$date_sp = split(&#39;\/&#39;, $wdate);\n\t$schedule_date = Date(&#39;Y&#39;) . sprintf(&quot;%02d&quot;,$date_sp[0]) . sprintf(&quot;%02d&quot;,$date_sp[1]);\n\t\/\/\u6b21\u306e\u65e5\u3082\u53d6\u5f97\u3057\u3068\u304f\n\t$schedule_date_tommorow = &quot;&quot;;\n\t$schedule_date_tommorow = Date(&#39;Ymd&#39;, mktime(0, 0, 0, (int)$date_sp[0], (int)((int)$date_sp[1] + 1), (int)Date(&#39;Y&#39;) ) );\n\t\/\/\u65e5\u4ed8\u90e8\u5206\u3092\u30ab\u30c3\u30c8\n\t$work = substr(strchr($work,&#39;&lt;span class=&quot;date&quot;&gt;&#39;), 30);\n\n\t$loop_flg2 = TRUE;\n\twhile ( $loop_flg2 == TRUE ) {\n\t\tif ( strpos($work, &#39;&lt;a class=&quot;event&quot; href=&#39;) &gt; strpos($work, &#39;&lt;span class=&quot;date&quot;&gt;&#39;) ) {\n\t\t\tbreak;\n\t\t} else {\n\t        \/\/\u30b9\u30b1\u30b8\u30e5\u30fc\u30ebID\u3092\u53d6\u5f97\n\t\t\tif( VERSION == 9 ){\n\t\t\t\t\/\/ \u30b5\u30a4\u30dc\u30a6\u30ba9\n\t\t\t\t$schedule_id = substr(strchr($work,&#39;&lt;div class=&quot;eventLink scheduleMarkTitle0&quot; name=&quot;&#39;), 53);                   \n\t\t\t\t$schedule_id = substr($schedule_id, 0, strpos($schedule_id, &#39;&quot;&gt;&#39;));                                            \n\t\t\t}else{\n\t\t\t\t\/\/ \u30b5\u30a4\u30dc\u30a6\u30ba10\n\t\t\t\t$schedule_id = substr(strchr($work,&#39;&lt;div class=&quot;eventLink scheduleMarkTitle0 highlight-event&#39;), 56);\n\t\t\t\t$schedule_id = substr($schedule_id, 0, strpos($schedule_id, &#39;&quot; &#39;));\n\t\t\t}\n\n\t        if ( $schedule_id == &quot;&quot; ) {\n\t\t        break;\n\t        }\n\n\t        \/\/----------------------------------\n\t        if ( SCHEDULE_MEMO ) {\n\t            \/\/\u30b9\u30b1\u30b8\u30e5\u30fc\u30eb\u5185\u5bb9\u307e\u3067\u53d6\u5f97\n\t            $wlink = substr(strchr($work,&#39;&lt;a class=&quot;event&quot; href=&quot;ag.cgi?&#39;), 30);\n\t\t    \t$wlink = substr($wlink, 0, strpos($wlink, &#39;&quot; title=&quot;&#39;));\n\t            $url = CYBOZU_URL . &#39;?&#39; . $wlink;\n\t            \/\/\u30b5\u30a4\u30dc\u30a6\u30ba\u304b\u3089HTML\u30c7\u30fc\u30bf\u53d6\u5f97\n\t            $work2 = file_get_contents($url, false, stream_context_create($context));\n\t            \/\/\u6587\u5b57\u30b3\u30fc\u30c9\u3092UTF-8\u3078\u5909\u63db\n\t            $work2 = mb_convert_encoding($work2, &quot;UTF-8&quot;, CHAR_CODE);\n\t            \/\/\u6b63\u898f\u8868\u73fe\u304c\u3081\u3093\u3069\u304f\u3055\u3044\u306e\u3067\u305d\u306e\u307e\u307e\u6587\u5b57\u5217\u6bd4\u8f03\u3067\u4e0d\u8981\u306a\u3068\u3053\u3092\u307e\u305a\u524a\u9664\n\t\t    \t$work2 = substr(strchr($work2,&#39;&lt;table class=&quot;dataView scheduleDataView&quot; width=&quot;100%&quot; &gt;&#39;), 0);\n\t            $work2 = substr($work2, 0, strpos($work2, &#39;&lt;span class=&quot;vr_scheduleUserCount&quot;&gt;&#39;));\n\t            \/\/\u30b9\u30b1\u30b8\u30e5\u30fc\u30eb\u30bf\u30a4\u30c8\u30eb\u3092\u53d6\u5f97\n\t            $work2 = str_replace(&quot;\\n\\r&quot;,&quot;&quot;, $work2);\n\t            $work2 = str_replace(&quot;\\n&quot;,&quot;&quot;, $work2);\n\t            $work2 = str_replace(&quot;\\r&quot;,&quot;&quot;, $work2);\n\t            $schedule_description = substr(strchr($work2,&#39;&lt;div id=&quot;scheduleMemo&quot;&gt;&lt;tt&gt;&#39;), 27);\n\t            $schedule_description = substr($schedule_description, 0, strpos($schedule_description, &#39;&lt;\/tt&gt;&#39;));\n\t            $schedule_description = strip_tags($schedule_description);\n\t        }\n\t        \/\/----------------------------------\n\n\t\t\t\/\/\u30b9\u30b1\u30b8\u30e5\u30fc\u30eb\u30bf\u30a4\u30c8\u30eb\u3092\u53d6\u5f97\n\t\t\t$schedule_title = substr(strchr($work,&#39;=sm&quot; title=&quot;&#39;), 12);\n\t\t\t$schedule_title = substr($schedule_title, 0, strpos($schedule_title, &#39;&quot;&gt;&#39;));\n\n\t\t      \/\/\u6642\u523b\u3092\u53d6\u5f97\n\t\t\tif (strpos($work, &#39;&lt;span class=&quot;eventDateTime&quot;&gt;&#39;) &lt; strpos($work, &#39;=sm&quot; title=&quot;&#39;)) {\n\t\t\t\t$schedule_time = substr(strchr($work, &#39;&lt;span class=&quot;eventDateTime&quot;&gt;&#39;), 28);\n\t\t\t\t$schedule_time = substr($schedule_time, 0, strpos($schedule_time, &#39;\u00a0&#39;));\n\t\t\t} else {\n\t\t\t\t$schedule_time = &#39;&#39;;\n\t\t\t}\n\n\t\t\t\/\/\u30bf\u30a4\u30c8\u30eb\u90e8\u5206\u3092\u30ab\u30c3\u30c8\n\t\t\t$work = substr(strchr($work,&#39;=sm&quot; title=&quot;&#39;), 12);\n\n\t\t\t\/\/\u6642\u9593\u6307\u5b9a\u304c\u3042\u308b\u304b\u5224\u5b9a\n\t\t\tif ( !empty($schedule_time) ) {\n\t\t\t\t$time_sp = &quot;&quot;;\n\t\t\t\t$time_sp = split(&#39;-&#39;, $schedule_time);\n\t\t\t\t$from_sp = split(&#39;:&#39;, @$time_sp[0]);\n\n\t\t\t\t\/\/http:\/\/www.sunvisor.net\/node\/383\n\t\t\t\tif ( count($time_sp) &gt; 1 ) {\n\t\t\t\t    $to_sp   = split(&#39;:&#39;, @$time_sp[1]);\n\t\t\t\t} else {\n\t\t\t\t    $to_sp = $from_sp;\n\t\t\t\t}\n\t\t\t\t$from_sp[0] = sprintf(&#39;%02d&#39;, @$from_sp[0]); \n\t\t\t\t$to_sp[0] = sprintf(&#39;%02d&#39;, @$to_sp[0]); \n\n\t\t\t\t$from_hour = &quot;&quot;;\n\t\t\t\t$to_hour = &quot;&quot;;\n\n\t\t\t\tif ($from_sp[0]&lt;10) {\n\t\t\t\t\t$from_hour = &#39;0&#39; . @$from_sp[0];\n\t\t\t\t} else {\n\t\t\t\t\t$from_hour = $from_sp[0];\n\t\t\t\t}\n\t\t\t\tif ($to_sp[0]&lt;10) {\n\t\t\t\t\t$to_hour = &#39;0&#39; . $to_sp[0];\n\t\t\t\t} else {\n\t\t\t\t\t$to_hour = $to_sp[0];\n\t\t\t\t}\n\t\t\t\tif (count($to_sp)&lt;2){\n\t\t\t\t\t$to_hour = $from_hour + 1;\n\t\t\t\t\t$to_sp[1] = $from_sp[1];\n\t\t\t\t}\n\t\t\t\t$schedule_summary     = $schedule_title;\n\t\t\t\t\/\/http:\/\/www.sunvisor.net\/node\/383\n\t\t\t\t$schedule_from        = &#39;:&#39; . $schedule_date . &#39;T&#39; . @$from_sp[0] . @$from_sp[1]. &#39;00&#39;;\n\t\t\t\t$schedule_to          = &#39;:&#39; . $schedule_date . &#39;T&#39; . @$to_sp[0] . @$to_sp[1]. &#39;00&#39;;\n\t\t\t\t$schedule_description     = $schedule_title . &quot; &quot; . $schedule_description;\n\t\t\t} else {\n\t\t        $schedule_summary     = $schedule_title;\n\t\t        \/\/http:\/\/www.sunvisor.net\/node\/383\n\t\t        $schedule_from        = &#39;;VALUE=DATE:&#39; . $schedule_date;\n\t\t        $schedule_to          = &#39;;VALUE=DATE:&#39; . $schedule_date_tommorow;\n\n\t\t        $schedule_description     = $schedule_title . &quot; &quot; . $schedule_description;\n\t        }\n\t        \/\/http:\/\/www.sunvisor.net\/node\/383\n\t        $schedule_list[] = Array(&#39;id&#39;          =&gt; $schedule_id.$schedule_date,\n\t                                 &#39;description&#39; =&gt; $schedule_description,\n\t                                 &#39;dtstart&#39;     =&gt; $schedule_from,\n\t                                 &#39;dtend&#39;       =&gt; $schedule_to,\n\t                                 &#39;summary&#39;     =&gt; $schedule_summary);\n\t\t}\n\t}\n}\n\n\/\/\u3053\u3053\u304b\u3089\u51fa\u529b\nheader(&#39;Content-Type: text\/calendar; charset=utf-8&#39;);\necho &#39;BEGIN:VCALENDAR&#39;. &quot;\\n&quot;;\necho &#39;PRODID:&#39; . PRODID. &quot;\\n&quot;;\necho &#39;VERSION:2.0&#39;. &quot;\\n&quot;;\necho &#39;METHOD:PUBLISH&#39;. &quot;\\n&quot;;\necho &#39;CALSCALE:GREGORIAN&#39;. &quot;\\n&quot;;\necho &#39;X-WR-CALNAME:&#39; . SCHEDULE_TITLE . &quot;\\n&quot;;\necho &#39;X-WR-CALDESC:&#39; . SCHEDULE_TITLE . &quot;\\n&quot;;\necho &#39;X-WR-TIMEZONE:Asia\/Tokyo&#39;. &quot;\\n&quot;;\n\nif ( !empty($schedule_list) ) {\n\tforeach ( $schedule_list as $key =&gt; $vale ) {\n\t\techo &#39;BEGIN:VEVENT&#39;. &quot;\\n&quot;;\n\n\t\t\/\/ UID\u306e\u91cd\u8907\u3092\u907f\u3051\u308b\uff08Google\u30ab\u30ec\u30f3\u30c0\u30fc\u3067\u540c\u65e5\u306e\u8907\u6570\u4e88\u5b9a\u304c1\u4ef6\u3057\u304b\u53d6\u308a\u8fbc\u3081\u306a\u3044\u306e\u3092\u4fee\u6b63\uff09\n\t\t\/\/    echo &#39;UID:&#39; . SCHEDULE_TITLE . &#39;-&#39; . $vale[&#39;id&#39;] . &quot;\\n&quot;;\n\t\techo &#39;UID:&#39; . SCHEDULE_TITLE . &#39;-&#39; . $vale[&#39;id&#39;] . md5($vale[&#39;description&#39;].$vale[&#39;dtstart&#39;].$vale[&#39;dtend&#39;]) . &quot;\\n&quot;;\n\n\t\techo &#39;DESCRIPTION:&#39; . $vale[&#39;description&#39;]. &quot;\\n&quot;;\n\t\t\/\/http:\/\/www.sunvisor.net\/node\/383\n\t\techo &#39;DTSTART;TZID=Asia\/Tokyo&#39; . $vale[&#39;dtstart&#39;] . &quot;\\n&quot;;\n\t\techo &#39;DTEND;TZID=Asia\/Tokyo&#39; . $vale[&#39;dtend&#39;] . &quot;\\n&quot;;\n\t\techo &#39;SUMMARY:&#39;. $vale[&#39;summary&#39;]. &quot;\\n&quot;;\n\t\techo &#39;END:VEVENT&#39;. &quot;\\n&quot;;\n\t}\n}\n\necho &#39;BEGIN:VTIMEZONE&#39;. &quot;\\n&quot;;\necho &#39;TZID:Asia\/Tokyo&#39;. &quot;\\n&quot;;\necho &#39;BEGIN:STANDARD&#39;. &quot;\\n&quot;;\necho &#39;DTSTART:19700101T000000&#39;. &quot;\\n&quot;;\necho &#39;TZOFFSETFROM:+0900&#39;. &quot;\\n&quot;;\necho &#39;TZOFFSETTO:+0900&#39;. &quot;\\n&quot;;\necho &#39;END:STANDARD&#39;. &quot;\\n&quot;;\necho &#39;END:VTIMEZONE&#39;. &quot;\\n&quot;;\necho &#39;END:VCALENDAR&#39;. &quot;\\n&quot;;\n\n?&gt;<\/code><\/pre><\/div>\n","protected":false},"excerpt":{"rendered":"\n<p>Cybozu Office \u304b\u3089\u30b9\u30b1\u30b8\u30e5\u30fc\u30eb\u30c7\u30fc\u30bf\u3092\u30b9\u30af\u30ec\u30a4\u30d4\u30f3\u30b0\u3057\u3066\u3001ical\u5f62\u5f0f\u3067\u30ec\u30b9\u30dd\u30f3\u30b9\u3059\u308b\u30b9\u30af\u30ea\u30d7\u30c8\u3067\u3059\u3002<\/p>\n<p>\u5143\u306f\u540d\u53e4\u5c4b\u306e\u793e\u9577\u69d8\u304c\u4f5c\u3089\u308c\u305f\u3082\u306e\u3067\u3001\u305d\u306e\u5f8c\u3001\u671b\u9060\u93e1\u30c9\u30c3\u30c8\u30b3\u30e0\u69d8\u304c\u4fee\u6b63\u3057\u305f\u3082\u306e\u3092\u52dd\u624b\u306b\u30e1\u30f3\u30c6\u3057\u305f\u3082\u306e\u3068\u306a\u308a\u307e\u3059\u3002<\/p>\n<\/p>\n<p> &lt;?php \/* \u6a5f\u80fd\u8aac\u660e\uff1a CybozuOffice10\u306b\u5bfe\u3057\u3066\u30b9\u30b1\u30b8\u30e5\u30fc\u30eb\u3092\u30b9\u30af\u30ec\u30a4\u30d4\u30f3\u30b0\u3057\u3001ical\u5f62\u5f0f\u306b\u5909\u63db\u3057\u3066\u8fd4\u5374\u3059\u308b\u30b9\u30af\u30ea\u30d7\u30c8 \u5229\u7528\u65b9\u6cd5\uff1a https:\/\/hoge\/cybouz2ical.php?user=username&#038;pass=password username\u306fCybozuOffice\u306e\u4e0b\u8a18\u30da\u30fc\u30b8\u306e\u300c\u30ed\u30b0\u30a4\u30f3\u540d\u300d\u6b04\u306b\u3066\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002 https:\/\/hoge\/fuga\/ag.cgi?page=PersonalUser \u6539\u7248\u5c65\u6b74\uff1a 2009\/05\/13 \u540d\u53e4\u5c4b\u3067\u306f\u305f\u3089\u304f\u793e\u9577\u30d6\u30ed\u30b0\u3060\u3082\u3093\u3067 \u30b5\u30a4\u30dc\u30a6\u30baofffice8\u3068\u540c\u671f\u3059\u308b\u30c4\u30fc\u30eb\u66ab\u5b9a\u7248 http:\/\/ameblo.jp\/sitescope\/entry-10260113074.html 2013\/08\/26 \u4e0a\u8a18\u306b\u3066\u516c\u958b\u3057\u3066\u3044\u305f\u3060\u3044\u3066\u3044\u308b\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u30b5\u30a4\u30dc\u30a6\u30ba9\u7528\u306b\u52dd\u624b\u6539\u5909\u7248 \u30b5\u30a4\u30dc\u30a6\u30ba Office Version 9.3.1 20130703181739\u306b\u3066\u78ba\u8a8d \u671b\u9060\u93e1\u30c9\u30c3\u30c8\u30b3\u30e0 \u30b5\u30a4\u30dc\u30a6\u30ba9\u30fb\u30b5\u30a4\u30dc\u30a6\u30ba10\u306e\u30b9\u30b1\u30b8\u30e5\u30fc\u30eb\u3092iCal\u5f62\u5f0f\u3067Google\u30ab\u30ec\u30f3\u30c0\u30fc\u306b\u540c\u671f(\u4e00\u65b9\u901a\u884c) \u30b5\u30a4\u30dc\u30a6\u30ba9\u30fb\u30b5\u30a4\u30dc\u30a6\u30ba10\u306e\u30b9\u30b1\u30b8\u30e5\u30fc\u30eb\u3092iCal\u5f62\u5f0f\u3067Google\u30ab\u30ec\u30f3\u30c0\u30fc\u306b\u540c\u671f(\u4e00\u65b9\u901a\u884c) 2020\/09\/18 \u4e0a\u8a18\u3067\u516c\u958b\u3057\u3066\u3044\u308b\u30bd\u30fc\u30b9\u306b\u3064\u3044\u3066\u4ee5\u4e0b\u3092\u6539\u4fee\u3057\u307e\u3057\u305f \u30fb ical\u306eUID\u306e\u91cd\u8907\u3092\u907f\u3051\u308b\uff08Google\u30ab\u30ec\u30f3\u30c0\u30fc\u3067\u540c\u65e5\u306e\u8907\u6570\u4e88\u5b9a\u304c1\u65e51\u4ef6\u3057\u304b\u53d6\u308a\u8fbc\u3081\u306a\u3044\u306e\u3092\u4fee\u6b63\uff09 \u30fb \u57fa\u672c\u8a8d\u8a3c\u8a2d\u7f6e\u3057\u3066\u3044\u308bCybozuOffice\u306b\u5bfe\u5fdc \u30fb URL\u30d1\u30e9\u30e1\u30bf\u306bUser\/Pass\u3092\u542b\u3081\u308b\u3088\u3046\u306b\u4fee\u6b63\uff08SSL\u3092\u4f7f\u7528\u3057\u306a\u3044\u3068\u5e73\u6587\u3067\u9001\u3089\u308c\u308b\u306e\u3067\u8981\u6ce8\u610f\uff09 \u30fb \u305d\u306e\u4ed6\u5fae\u4fee\u6b63 *\/ $username = $_GET[&#39;user&#39;]; $password = $_GET[&#39;pass&#39;]; if(empty($username) || empty($password)){ die(&quot;parameter error!&quot;); } \/\/&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- \/\/ \u8a2d\u5b9a [&#8230;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-499","post","type-post","status-publish","format-standard","hentry","category-centos","odd"],"_links":{"self":[{"href":"https:\/\/www.tkn.jp\/index.php?rest_route=\/wp\/v2\/posts\/499","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tkn.jp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tkn.jp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tkn.jp\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tkn.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=499"}],"version-history":[{"count":5,"href":"https:\/\/www.tkn.jp\/index.php?rest_route=\/wp\/v2\/posts\/499\/revisions"}],"predecessor-version":[{"id":530,"href":"https:\/\/www.tkn.jp\/index.php?rest_route=\/wp\/v2\/posts\/499\/revisions\/530"}],"wp:attachment":[{"href":"https:\/\/www.tkn.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=499"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tkn.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=499"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tkn.jp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=499"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}