0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Zoom授業に入室するのが面倒くさいのでAppleScriptで自動化した

Last updated at Posted at 2021-05-12

いきさつ

昨年から大学ではZoom授業が行われ,今年もまだ遠隔授業....
毎時間カレンダーアプリを開いてZoomリンクを開くのは面倒くさい.
プログラマの三大美徳でも怠惰って言うじゃないか.
だったら自動化してしまおう!

使うもの

  • スクリプトエディタ
  • Mac標準カレンダーアプリ

カレンダーアプリの設定1

  1. カレンダーアプリを開き,予定(イベント)を作成する
  2. イベントの"メモ"または"URL"に授業のリンクを貼る

[注意] 同期しているGoogleカレンダーなどでも利用できます.しかし,googleカレンダーにはイベントにURLを設定できないため”メモ”部分にリンクを貼り付けてください

プログラムを書く

  1. スクリプトエディタを開く
  2. 新規書類を選択し,エディタウィンドウを開く
  3. AppleScriptが選択されていることを確認する(ウィンドウ左上)
  4. 以下のプログラムを書き込む
  5. メニューバー(画面上部) -> ファイル -> 書き出す
  6. ファイルフォーマットを"スクリプト"から"アプリケーション"に変更して保存する
hoge.scpt
script Method
	on main()
		try
			tell application "Calendar"
				set CurrentTime to (current date)  --現在時刻の取得
				tell Method to setSecond(CurrentTime)  --秒数を00に変更
				set cTime to result  --現在時刻を取得(検索開始時間)
				
				-- (設定1)
				set theEndDate to cTime + (10 * minutes) - 1 --検索終了時間 現在から30分後まで取得
				
				--カレンダー内のイベント情報を取得(現時刻から指定終了時間までの範囲指定)		
				--このカレンダーの名前(授業)から時刻でイベント検索
                                -- (設定2)
				set EvList to every event of calendar "授業" whose (start date ≥ cTime) and (start date ≤ theEndDate)
				
				--取得したイベント1つづつに実行
				repeat with theEvent in EvList

                                        -- (設定3)
					tell Method to openUrl(url of theEvent)

				end repeat
			end tell
		end try
	end getUrl
	
	on openUrl(link)
		-- デフォルトのブラウザで引数linkを開く
		open location link
	end openUrl
	
	on setSecond(theDate)
		-- 秒数を0秒に設定する
		set time of theDate to ((time of theDate) div minutes) * minutes
		return theDate
	end setSecond
end script

tell Method to main()

[注意]
(設定1) theEndDateでは10分後に始まるイベントまでを取得するようにしています. 1時間後まで取得したい場合は 10minutes を 1hours に,1日後まで取得したい場合は 1*days のように変更してください.
(設定2) カレンダー名(ここでは「授業」)を取得したいカレンダー名に変更してください.登録しているカレンダー名はカレンダーアプリで表示されているものです.
(設定3) イベントの"メモ"にリンクを記述した場合は"url of theEvent" から "summary of theEvent"に変更してください.

カレンダーアプリの設定2

  1. カレンダーアプリを再度開き,登録したイベントを編集する
    1. 通知を なし -> カスタム
    2. サウンド付きメッセージ -> ファイルを開く
    3. 新たに表示されたカラムを カレンダー -> その他
    4. 先ほど作成したアプリケーションファイルを選択
    5. 通知時間を 5分前 くらいにする
    6. OKをクリックして確定

[注意]
授業は毎週あると思いますが,イベントを繰り返し設定すると来週以降リンクを取得できません.
1週間分の授業予定を登録 -> 全イベント選択 --> 来週以降にコピペ をしてもらえると反応すると思います.

0
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?