Yahoo!知恵袋で回答したレシピをもう少し便利にしました.
会議やゴミ捨てなど、時刻は決まってるけど不定期なイベントを簡単に素早くカレンダーに登録します.
※価格は記事執筆時のものです. 現在の価格はApp Storeから確認ください.
レビュー時のiOSバージョン : iOS15.0.2
スポンサーリンク
よく登録するイベントを簡単に登録
質問にあった内容と追加した仕様を合わせると以下になります.
- 追加したいイベントのタイトル、開始時刻、終了時刻は固定(終日の場合も考える)
- 日付と上で決まったいくつかのイベントを選ぶだけでカレンダーに追加
ただし追加する前にアラートを使って確認画面とします(別の手段もあります).
レシピ
まずは「辞書」アクションを使って固定イベントを追加しておきます.
各々の値は基本的に「辞書」になります, つまり「辞書の値が辞書」ということですね.
辞書の値の中身は以下のキーと値を入れます.
- [キー]開始時刻
[値(テキスト)]07:50といった時刻表記にします(時,分が1桁の場合先頭に0が必要) - [キー]終了時刻
上に同じ
終日の場合は開始時間の値を空にするか(画像右上)、辞書自体を空にします(画像右下).
ようは開始時刻の値の有無で終日かどうかをこの先で判定します.
キー自体がない場合も空として判断しれくれるため画像右下の方法では問題ありません.
続いて日時を指定します.
「入力を要求」で日時指定できるのですが, 実際に変数として使う時、デフォルトでは時刻を含んでいます.
そのため日時だけ使いたい場合はその箇所でフォーマットを合わせる必要があります.
続けてはじめに追加した辞書に対して「リストから選択」で一つ選ばせます.
はじめの辞書が対象なので選ぶ対象はイベント名、そして結果は選択したイベントの値、つまり選択したイベントの開始時刻と終了時刻からなるJSONです.
上で得たJSONを「入力から辞書を取得」で辞書にし, 終日判定のために「開始時刻」の値を取得しておきます.
上で得た開始時刻に対してif文を適用します.
但しこの開始時刻の値はブール値にしてあります.
開始時刻の値が真である場合は開始時刻の値が存在する…ということなので, 開始時刻と終了時刻を指定した上でカレンダーイベントを追加します.
ここで、日付は「入力を要求」で指定したものであり、開始時刻および終了時刻は最初の「辞書」アクションにある固定のものです.
よって「入力を要求」の結果をカスタムフォーマットで"yyyy/MM/dd"とし, 「リストから選択」で得た開始時刻と終了時刻の結果を同じくカスタムフォーマットで"hh:mm"としたものをそれぞれ繋げて適用します.
イベント名は「リストから選択」で出た結果の「名前」で取得できます.
その他の場合、つまり終日と判定された場合も同じようにアラートで確認した上で追加します.
終日の場合は時刻は無視されるため、フォーマットを変える必要はないため開始時刻にそのまま入れます.
同じく終日の場合は「終了時刻」が空であっても問題ありません.(終日判定を開始時刻で行っているのはこのためです)
またオプションにある「終日」のスイッチをオンにしておきます.
これでレシピは完了です.
〆
カスタム性を持たせる場合はイベント追加のアクションのオプションにある「作成シートを表示」をオンにして使ってください、イベント追加の前にカレンダーアプリが開いて対象の編集画面に移ります.
if文で追加するのもアリですがその方が編集がラクです, 代わりに毎回作成シートが表示されそこで「追加」しないといけなくなります.