1: 2018-01-11 (木) 01:15:03 yuji | 現: 2020-12-26 (土) 16:07:34 yuji Attached file: rfc2445.txt, Attached file: reinlendar.png, Deleted an attach file: yuji.r2skin at 2022-08-29 (月) 09:37:26 at 2022-08-29 (月) 10:30:49 at 2022-09-04 (日) 10:52:34, Deleted an attach file: yuji1.2.r2skin at 2023-01-05 (木) 11:48:34, Deleted an attach file: yuji1.1.r2skin at 2023-01-05 (木) 11:52:04 at 2023-06-09 (金) 14:35:12 at 2024-05-24 (金) 06:46:33, Deleted an attach file: Yuji.r2skin at 2024-05-24 (金) 06:46:43 at 2024-05-24 (金) 06:50:38, Deleted an attach file: Yuji_0.r2skin at 2024-05-27 (月) 09:42:18 at 2024-05-27 (月) 09:42:26 at 2024-05-27 (月) 09:54:35 at 2024-05-27 (月) 09:54:39 at 2024-05-27 (月) 10:23:41 at 2024-05-27 (月) 10:23:45 |
||
---|---|---|---|
Line 1: | Line 1: | ||
#topicpath | #topicpath | ||
- | * Desknet's NEOのスケジュールデータをiCalendar形式で取得する [#c1b65f5b] | + | * スケジュールデータ [#m9f6bc51] |
- | ** iCalendar形式で取得する [#y3c216bb] | + | 多くのスケジュール(カレンダー)のアプリケーションで使用されるデータ形式に,iCalendarフォーマットがある。~ |
- | http://<Desknet's NEOのURL>/scripts/dneoical/dneoical.exe?userid=xxxxx&_word=yyyyyy&from=今からどのくらい前(月単位)&to=いまからどのくらいあと(月単位) | + | ファイルの拡張子は.icsで,テキストファイルになっている。~ |
- | のようにすれば,Desknet's NEOのスケジュールデータがiCAL形式で取得できます。(xxxxxはアカウントID,yyyyyyはパスワード) | + | |
- | wget -O todo.ics "http://<Desknet's NEOのURL>/scripts/dneoical/dneoical.exe?userid=xxxxx&_word=yyyyy&from=2&to=2" | + | フォーマット仕様は,&ref(rfc2445.txt,,RFC2445);として規定されている。(更新バージョン[[RFC-5545>https://tex2e.github.io/rfc-translater/html/rfc5545.html]])~ |
- | のように,batファイルにしてWindowsのタスクにでも登録しておけば,定期的に取り出せます。 | + | |
- | 残念ながら,Desknet's NEOのスケジュールへiCalendar形式のファイルを使ってデータを直接登録することは出来ません。 | + | ** GoogleカレンダーのスケジュールをiCalendar形式で取得する [#e55e1428] |
+ | Googleカレンダーに登録しているスケジュールをWindowsのデスクトップに表示するような目的で,GoogleカレンダーのデータをiCalendar形式で取得してみる。 | ||
- | ** Outlookなんかに取り込む [#mf6fe030] | + | *** GCALDaemonを使用してicsファイルでダウンロードする [#sa03c2ad] |
+ | [[GCALDaemon>https://sourceforge.net/projects/gcaldaemon/]]はJavaアプリケーションで,WindowsやLinuxマシン等で使用できるGPLアプリケーション。~ | ||
- | Outlookのアカウント設定>インターネット予定表に以下を追加すると,Outlookのスケジュールに取り込める。~ | + | この[[GCALDaemon>https://sourceforge.net/projects/gcaldaemon/]]を使用すると,GooogleカレンダーのデータをicsファイルとしてローカルPCにダウンロード出来,さらにicsファイルを更新することで,Googleカレンダーのデータを更新するということも出来ていた。~ |
- | 設定するには,Outlookのアカウントの設定>インターネットの予定表に, | + | しかし,2014/11/17にGoogleはGCALDaemonが動作するCalendar API v2のサポートを突然廃止し,代わりにCalendar API v3(認証にOAuth 2.0を使用する)に移行した。~ |
- | http://<Desknet's NEOのURL>/scripts/dneoical/dneoical.exe?userid=xxxxx&_word=yyyyyy&from=1&to=3 | + | このことでGCALDaemonはうまく動作しなくなってしまって,しばらくして上記の[[GCALDaemon>https://sourceforge.net/projects/gcaldaemon/]]のサイトもなくなってしまった ;( ~ |
- | ↑のように設定し,適当な名前を付けておく。 | + | |
- | ** Rainlendarなどで利用する [#nf9435f4] | + | その後しばらくして,Calendar API v3で動作できる[[GCALDaemon>https://github.com/LancelotLiu/GCALDaemon]]が修正バージョンとして公開された。いまのところ問題なく動作している。~ |
- | Desknet's NEOのdneoical.exeから出力されるiCalendar形式のデータは''UID''(&ref(rfc2445.txt,,RFC2445);に規定されている)項目が出力されません。~ | + | |
- | このため,ほとんどのiCalendar形式に対応しているアプリでもDesknet's NEOが出力したデータを上手く利用出来ません。~ | + | Calendar API v3に対応したGCALDaemonをインストールするには,[[GCALDaemon>https://github.com/LancelotLiu/GCALDaemon]]からgit cloneするなりして,任意のディレクトリにダウンロードする。~ |
+ | |||
+ | 次にGCALDaemonが''Google Calendar API''にアクセスできるように,Google Developper ConsoleでGoogle Calendar APIを有効にする必要がある。~ | ||
+ | WEBブラウザーで[[Google Developper Console>https://console.developers.google.com]]にログインして,以下の作業をする。~ | ||
+ | - 新しいProjectを作成する~ | ||
+ | 任意の名前で作成して大丈夫。~ | ||
+ | - そのProjectでGoogle Calendar APIを有効にする~ | ||
+ | - クライアントIDを作成する~ | ||
+ | -- Installed applicationを選択して,Configure consent screenボタンを押す。~ | ||
+ | -- EMAIL ADDRESSを入力。~ | ||
+ | -- PRODUCT NAMEにGCALDaemonと入力。~ | ||
+ | -- 保存ボタンをクリック。~ | ||
+ | -- APPLICATION TYPEはOtherにする。~ | ||
+ | - Download JSONでファイルをダウンロードする~ | ||
+ | ファイル名を''client_secrets.json''にして''GCALDaemon\etc''ディレクトリを作成して,そこにファイルをコピーする。~ | ||
+ | |||
+ | その後,GCALDaemonの設定をする。~ | ||
+ | ''config-editor-new.bat''を実行して,File synchronizerで使用するGoogleカレンダーとローカルのicsファイルの場所とファイル名を登録する。~ | ||
+ | |||
+ | これでGCALDaemonを使用する準備が出来たので,インストールしたディレクトリある''bin\sync-now-new.bat''を実行してGoogle Calendarからデータが設定したicsファイルに保存できているか確認する。~ | ||
+ | 問題なければ''bin\sync-now-new.bat''でのGoogleカレンダーとicsファイルを手動での同期は出来ているので,タスクスケジューラーで定期実行するようにすればOK。~ | ||
+ | |||
+ | 残念ながら,GCALDaemonでは''Google Tasksのデータはサポートされていない。''~ | ||
+ | |||
+ | ** Desknet's NEOのスケジュールデータをiCalendar形式で取得する [#y3c216bb] | ||
+ | 会社で使われている[[Desknet's NEO>https://www.desknets.com/]]のスケジュールデータをical形式で取得する。 | ||
+ | http://<Desknet's NEOのURL>/scripts/dneoical/dneoical.exe?userid=xxxxx&_word=yyyyyy&from=今からどのくらい前(月単位)&to=いまからどのくらいあと(月単位) | ||
+ | のようにすれば,Desknet's NEOのスケジュールデータがical形式で取得できます。(xxxxxはアカウントID,yyyyyyはパスワード) | ||
+ | |||
+ | 以下のようなBATファイルを作って, | ||
+ | wget -O todo.ics "http://<Desknet's NEOのURL>/scripts/dneoical/dneoical.exe?userid=xxxxx&_word=yyyyy&from=2&to=2" | ||
+ | Windowsのタスクスケジューラーに登録しておけば,定期的にスケジュールデータを取り出せます。 | ||
+ | |||
+ | 残念ながらこの方法では,Desknet's NEOのスケジュールへiCalendar形式のファイルを使ってデータを直接登録することは出来ません。 | ||
+ | |||
+ | *** Rainlendarなどで利用できるようなフォーマットにする [#nf9435f4] | ||
+ | Desknet's NEOのdneoical.exeから出力されるiCalendar形式のデータは''UID(&ref(rfc2445.txt,,RFC2445);に規定されている)項目が出力されない。''~ | ||
+ | このため,ほとんどのiCalendar形式に対応しているアプリでもDesknet's NEOが出力したデータを上手く利用出来ない。~ | ||
Desknet's NEOを販売しているところで,仕様通りに出力するようにプログラムを修正して貰えればいいのですが・・・ | Desknet's NEOを販売しているところで,仕様通りに出力するようにプログラムを修正して貰えればいいのですが・・・ | ||
Line 26: | Line 62: | ||
しょうが無いんで,''UID''項目を追加することにします。 | しょうが無いんで,''UID''項目を追加することにします。 | ||
- | 上記のようにして,Desknet's NEOから自分のスケジュールデータをnalux_temp.icsというファイルに出力したとして, | + | 上記のようにして,Desknet's NEOから自分のスケジュールデータをdesknets_temp.icsというファイルに出力したとして, |
- | awk '/DTEND/{print $0; print "UID:y-ueno"NR"@hogehoge.co.jp";} ! /DTEND/{print $0;}' nalux_temp.ics" > nalux.ics | + | awk '/DTEND/{print $0; print "UID:y-ueno"NR"@hogehoge.co.jp";} ! /DTEND/{print $0;}' desknets_temp.ics" > desknets.ics |
- | rm nalux_temp.ics" | + | rm desknets_temp.ics" |
とかして,''UID''を追加すれば他のアプリでも利用できます。~ | とかして,''UID''を追加すれば他のアプリでも利用できます。~ | ||
- | 上記のデータ取得手順とともにBATファイルにしてタスク登録して,定期的に実行して利用している。 | + | 上記のデータ取得手順とともにBATファイルにしてタスクスケジューラーに登録して,定期的に実行して利用している。 |
BATファイルの例:get_desknet.bat(desknet'sの予定表をtodo.icsに保存する) | BATファイルの例:get_desknet.bat(desknet'sの予定表をtodo.icsに保存する) | ||
@echo off | @echo off | ||
rem desknet'sの予定表をダウンロードする | rem desknet'sの予定表をダウンロードする | ||
- | wget -O "C:\Users\<user>\Documents\iCalendar\todo_temp.ics" "http://<Desknet's NEOのURL>/scripts/dneoical /dneoical.exe?userid=xxxxx&_word=yyyyy&from=1&to=3" | + | wget -O "desknets_temp.ics" "http://<Desknet's NEOのURL>/scripts/dneoical /dneoical.exe?userid=xxxxx&_word=yyyyy&from=1&to=3" |
- | awk '/DTEND/{print $0; print "UID:zzzzz"NR"@hogehoge.co.jp";} ! /DTEND/{print $0;}' "C:\Users\<user>\Documents\iCalendar\todo_temp.ics" > "C:\Users\<user>\Documents\iCalendar\todo.ics" | + | awk '/DTEND/{print $0; print "UID:zzzzz"NR"@hogehoge.co.jp";} ! /DTEND/{print $0;}' "desknets_temp.ics" > "desknets.ics" |
- | rm "C:\Users\yueno\Documents\iCalendar\todo_temp.ics" | + | rm "desknets_temp.ics" |
+ | ファイル名は,実際にはフルpath。 | ||
+ | |||
+ | ** NextcloudのTasksデータをiCalendar形式で取得する [#w9f3364e] | ||
+ | NextcloudはDropboxのようなオンラインストレージを自前のサーバーで構築できるサーバーアプリケーション。~ | ||
+ | |||
+ | このNextcloudのアドインアプリとしてCalendarというスケジュール管理を追加するものがある。(Googleカレンダーの機能を自前で用意できる)~ | ||
+ | PCのWEBブラウザやスマホの専用アプリからCalendarデータを登録・利用することが出来る。データはTodoリストと共有のようだ。~ | ||
+ | |||
+ | *** iCalendar形式で取得する [#z32e729e] | ||
+ | 以下のようなBATファイルでデータをicsファイルに取得できる。~ | ||
+ | @rem nextcloudからCalendar/Todoデータをダウンロードする | ||
+ | wget --no-check-certificate --http-user="xxxxx" --http-password="yyyyyy" -O "todo.ics" "https://<nextcloudが動作しているサーバー>/nextcloud/remote.php/dav/calendars/<アカウントID>/personal?export" | ||
+ | CalendarデータだけでなくTodoリスト(Tasks)データも同時にダウンロード出来るようだ。 | ||
+ | |||
+ | ** Microsoft365の予定表をiCalendar形式で取得する [#wbb35b05] | ||
+ | Microsoft365(Outlook)予定表データをiCalendar形式のファイルとして取得すると,他のアプリケーションで利用ができ便利になる。~ | ||
+ | - [[Microsoft365のカレンダー>https://outlook.office.com/calendar]]にWEBブラウザーでアクセスする。~ | ||
+ | 必要であればサインインする。~ | ||
+ | - 予定表の画面右上の設定(歯車アイコン)をクリックし,右側に表示される設定画面の下にある''Outlookのすべての設定を表示''をクリックする。~ | ||
+ | - 予定表 → 共有予定表 → 予定表を公開する → 取得したい予定表を選ぶ → 権限(すべての詳細を閲覧可能などを選ぶ) → 公開 とすると,HTMLとICSのURLが表示される。~ | ||
+ | 表示されたICSのURLをコピーする。~ | ||
+ | |||
+ | 以下のようなBATファイルを作成する。 | ||
+ | wget -O "保存したいファイル名" "ICSのURL" | ||
+ | そして,そのBATファイルをタスクスケジューラーに登録しておけば,定期的に予定表データをicsファイルとして取得出来る。~ | ||
+ | |||
+ | 残念ながらこの方法では''Microsoft365の予定表にデータを登録することは出来ません。''~ | ||
+ | |||
+ | * Windowsデスクトップにicsファイルのデータを表示する [#s1bcaf32] | ||
+ | |||
+ | ** Rainlendarでデスクトップにicsファイルのデータを表示する [#ceedeebf] | ||
+ | #ref(reinlendar.png,,around) | ||
+ | [[Rainlendar>http://www.rainlendar.net]]は。Windowsのデスクトップにスケジュールを表示したり編集したりすることが出来るアプリケーション。~ | ||
+ | |||
+ | 無料で使用できるLiteバージョンと有料のProバージョン(9.95EUR)がある。~ | ||
+ | ProバージョンだとGoogleカレンダーやGoogle Tasks,Microsoft365/Office365やCalDAV,Remember The Milk,Toodledo等のクライアントして動作も出来るんで,上記のように苦労してローカルPCにicsファイルをいちいち作成する必要は無い。~ | ||
+ | |||
+ | Liteバージョンを使用している身なので,上記のようにしてGoogleカレンダーのデータをicsファイルのダウンロードして,それを利用することでGoogleカレンダーのスケジュールを表示している。~ | ||
+ | |||
+ | 便利なことにRainlendar Liteでicsファイルのスケジュールを更新して,GCALDaemonを使用してGoogleカレンダーを更新することが出来る。 | ||
+ | |||
+ | #ref(Yuji.r2skin,,自作のスキン) | ||
+ | #clear | ||
+ | |||
+ | * Todoデータ [#a76ae4e6] | ||
+ | Todoリストやタスク管理をしているデータを,カレンダーデータと同様にiCalendar形式で取得できると,いろいろなアプリケーションで利用出来て便利になります。~ | ||
+ | |||
+ | ** Google tasksのTodoデータをiCalendar形式で取得する [#i8d51b06] | ||
+ | Google tasksは,[[GMail>https://mail.google.com]]の中でTodoリストとして使用されている。 | ||
+ | |||
+ | 以前は,[[Google Task Porter>https://groups.google.com/forum/#!forum/google-tasks-porter]]で上手く取得できていたが,2012/10あたりのGoogle tasksの仕様変更で取得できなくなった。 | ||
+ | |||
+ | [[Google Tasks Backup>https://github.com/Google-Tasks-Backup]]が使えそうなんだけど・・・~ | ||
+ | Google Tasks Backupは,Python/Google App Engine,Apache License 2.0のOSS。 | ||
+ | |||
+ | 他の方法としては,https://mail.google.com/tasks/android を使うとシンプルにTodoが表示されるので,ここからicsファイルに変換するようなプログラムを作れば良い気がするが・・・ | ||
+ | |||
+ | いまだに良い方法が見つかっていない。 | ||
+ | |||
+ | ** TickTickのTodoデータをiCalendar形式で取得する [#w49c6636] | ||
+ | [[TickTick>https://ticktick.com/]]は,シンプルで便利なTodoリストタスク管理アプリ。~ | ||
+ | PCのWEBブラウザやスマホの専用アプリからTodoデータを登録・利用することが出来る。 | ||
+ | |||
+ | *** iCalendar形式で取得する [#xf84851d] | ||
+ | @echo off | ||
+ | @rem ticktickからTodoデータをダウンロードする | ||
+ | wget -O "ticktick_tmp.ics" http://ticktick.com/pub/calendar/feeds/xxxxxxxxxxxx/basic.ics | ||
+ | TickTickのURLは,すべてのリストにアクセスできるURL(設定画面から確認出来る)。 | ||
+ | 注意することとして,''期限を登録したTodoデータ''でないと,ダウンロードしたicsファイルにデータが入らない。 | ||
+ | |||
+ | また,icsファイルのデータは,VEVENTタグになっているので,他のTodoアプリでもTodoデータとして利用できるようにVTODOタグに変更する。 | ||
+ | awk '{sub("VEVENT", "VTODO"); print $0;}' "ticktick_tmp.ics" > "ticktick.ics" | ||
+ | rm ticktick_tmp.ics | ||
+ | こんなようにしてうまく利用できるようにした。 | ||
+ | |||
+ | ** remenber The milkのTodoデータをiCalendar形式で取得する [#y39ac69b] | ||
+ | [[remenber The milk>https://www.rememberthemilk.com]]は,シンプルで便利なTodoリストタスク管理アプリ。~ | ||
+ | PCのWEBブラウザやスマホの専用アプリからTodoデータを登録・利用することが出来る。 | ||
+ | |||
+ | *** iCalendar形式で取得する [#a5266ac6] | ||
+ | @rem remenber The milkからTodoデータをダウンロードする | ||
+ | wget --no-check-certificate --http-user=xxxxx --http-passwd=yyyyyy -O "todo.ics" http://www.rememberthemilk.com/icalendar/<アカウントID>/ | ||
+ | でicsファイルとして,Todoデータをダウンロード出来る。 | ||
+ | |||
+ | |||
+ | |||
+ | ** NextcloudのTasksデータをiCalendar形式で取得する [#d11f58cb] | ||
+ | NextcloudはDropboxのようなオンラインストレージを自前のサーバーで構築できる。~ | ||
+ | そのNextcloudのアドインアプリとしてTasksというTodoリスト・タスク管理が出来るものがある。~ | ||
+ | PCのWEBブラウザやスマホの専用アプリからTodoデータを登録・利用することが出来る。データはCalendarと共有のようだ。~ | ||
+ | |||
+ | *** iCalendar形式で取得する [#k46fa17f] | ||
+ | 上記のCalendarデータの取得BATファイルでTodoデータも取得できる。~ | ||
+ | |||
+ | * WindowsデスクトップにTodoデータを表示する [#e0572bf6] | ||
+ | icsファイルにTodoデータを保存できれば,icsファイルをTodoデータとして処理できるアプリケーションでWindowsデスクトップに表示できる。 | ||
+ | |||
+ | ** RainlendarでTodoデータを表示する [#z47369b7] | ||
+ | カレンダーのicsファイルを表示するのと同様に,TodoデータのicsファイルをRainlendarに登録すればTodoの表示ができる。~ |