LoginSignup
3
1

More than 3 years have passed since last update.

Microsoft TodoをiOSのリマインダと同期させて利用する場合に、繰り返し予定の期限が予期せぬ値になる

Last updated at Posted at 2019-06-30

前置き

Logic AppsでMicrosoft Todoのデータを利用していたところ、当日の完了タスクをフィルタ出来ない、完了したはずのタスクが残っている、などの意図せぬ挙動をしたので、原因追及をしました。

その結果、iOSのリマインダで利用した場合とMicrosoft TodoやLogic Appsから利用した場合に期限の挙動が変わってくる、ということが分かったのでメモを残します。

※ 本記事は2019/6/29時点の検証結果を元に書いています。今後の仕様変更などにより挙動が変わる可能性があります。

※ 2019/7/14追記 本件については、以下の記事も深く関連します
* Power Automate(旧Microsoft Flow)でOutlook タスク(Microsoft ToDo)を利用する際の制限事項:2019/7/14時点

調査方法

  • Microsoft TodoとiOSのリマインダの同期設定を行う(iOSの設定でOutlook.comのアカウントを追加)
  • iOSリマインダから期限付きの繰り返し予定を作成する
  • iOSリマインダ、Microsoft Todo、Logic Appsのそれぞれでタスクの完了を行う
  • (1)作成したタスク、(2)完了したタスク、(3)完了後に生成された繰り返しタスク、のそれぞれの期限をLogic Appsで確認する

2019-06-30_22h54_29.png

Logic Appsでの確認は、「フォルダー内のすべてのタスクの一覧表示」で得られた値のうち、"DueDateTime"の"DateTime"を参照。

2019-06-30_22h57_53.png

結果

完了する方法 iOSリマインダのアラーム日時 (1)作成したタスクの期限 (2)完了したタスクの期限 (3)完了後生成された繰り返しタスクの期限
iOSリマインダ 2019/6/29 9:00 2019-06-29T00:00:00Z 2019-06-29T00:00:00Z 2019-06-30T00:00:00Z
LogicApp 2019/6/29 9:00 2019-06-29T00:00:00Z 2019-06-29T00:00:00Z 2019-06-30T00:00:00Z
iOSリマインダ 2019/6/29 12:00 2019-06-29T00:00:00Z 2019-06-29T03:00:00Z 2019-06-30T00:00:00Z
LogicApp 2019/6/29 12:00 2019-06-29T00:00:00Z 2019-06-29T00:00:00Z 2019-06-30T03:00:00Z
iOSリマインダ 2019/6/29 15:00 2019-06-29T00:00:00Z 2019-06-29T06:00:00Z 2019-06-30T00:00:00Z
LogicApp 2019/6/29 15:00 2019-06-29T00:00:00Z 2019-06-29T00:00:00Z 2019-06-30T06:00:00Z
  • Microsoft TodoとLogic Appsは同結果だったので割愛
  • 同様に18時、21時のタスクも作成して試したが同様の結果だったので割愛

挙動のまとめ

完了する方法 (2)完了したタスクの期限 (3)完了後生成された繰り返しタスクの期限
iOSリマインダ アラーム時刻に書き換える UTC 0時に設定する
LogicApp 書き換えを行わない アラーム時刻に書き換える

なお、今回はタスクの作成をiOSリマインダで統一しましたが、Microsoft TodoやLogic Appsでタスクを作るとまた挙動が異なります。

回避策

  1. Logic Appsを利用する前提であれば、iOSリマインダとの同期は行わず、Microsoft Todoのみを利用する
  2. iOSリマインダを利用する必要がある場合、日本時間9時(UTC 0時)でタスクを作成する。(iOSリマインダで完了してもMicrosoft TodoやLogic Appsで完了しても同じ結果になる)

2の回避策の場合は、任意の時間にアラームで通知したい、という機能は残念ながら諦める必要があります。

後書き

こんな仕組みを作っていました。

  • Microsoft Todoでその日完了したタスクと未完了だったタスクをLogic Appsで収集し、SQL Databaseに格納
  • 未完成の当日タスクはLogic Apps側で完了
  • SQL Databaseに格納したタスクの達成度データをPowerBIで可視化

2019-06-30_23h15_17.png

が、しばらく運用していると、次のような症状が出てきました。

  • 完了したタスク、未完了のタスクが思ったようにフィルタリングできない
  • Logic Apps実行後に当日のタスクが残っている
  • 繰り返しタスクを完了すると自動で翌日のタスクが生成されるはずなのに、翌日以降のタスクとして生成されてしまう

対象のタスクはiOSのリマインダでもMicrosoft TodoでもLogic Appsでも完了することがあり、そこが原因ではないかと調べた内容が今回の記事になります。

なお、調査の際にはMicrosoft Todoのタスク情報をLogic Appsで抽出し、Excelに書き出しながら行いました。

かなりニッチですが同じような現象で困っている方のヒントになれば幸いです。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1