Notionの特定のページに書かれた「今日のスケジュール」を読み取り、iPhone / iPad / Mac のウィジェットとして「いまの予定」「次の予定」を表示する専用アプリです。
アプリにNotionのデータを読み取らせるために、専用のキー(トークン)を発行します。
- Notion Integrations にアクセスします。
- 「新しいインテグレーション(New integration)」を作成します。
- 発行された 「内部インテグレーションシークレット」(
ntn_等から始まる文字列)をコピーします。 - ご自身のNotionワークスペースに戻り、予定を書き込む予定のページ(またはその親階層のページ)を開きます。
- ページ右上の「・・・(メニュー)」を開き、「コネクトの追加」 から先ほど作成したインテグレーションを追加します。(これを忘れるとAPIからページが見えません)
コード内のバンドルIDが汎用的な com.example になっているため、実機へインストールする際はご自身専用のIDに変更する必要があります。
ソースコード内の example の部分を、他人と被らないご自身のID(例: com.myname など)に置き換えます。変更が必要な箇所は以下の4つです。
project.ymlのbundleIdPrefix: com.exampleApp/NotionSchedule.entitlementsのgroup.com.example.NotionScheduleWidgetWidget/NotionScheduleWidget.entitlementsの同箇所Shared/SharedStorage.swift3行目付近のsuitNameの同箇所
- ターミナルでこのディレクトリを開き、ツールを使って設定を反映します。
/opt/homebrew/bin/xcodegen generate
- 生成された
NotionSchedule.xcodeprojをダブルクリックして Xcode で開きます。 - Xcode の左側(プロジェクトナビゲーター)の最上部にある青いアイコン
NotionScheduleをクリックします。 TARGETSのNotionScheduleとNotionScheduleWidgetの両方について、「Signing & Capabilities」 タブを開き、Teamのドロップダウンからご自身の Apple ID を選択します。- 画面上部の再生ボタン(▶︎)を押して、アプリを実機へ転送します。
- インストールされたアプリを起動します。
- 取得した「インテグレーションシークレット」を入力し [Save Token] を押します。
- Notionに
YYYY-MM-DD 今日のスケジュールというタイトルのページを作成します(例:2026-04-09 今日のスケジュール)。 - ページ内に以下のように書いてください。
※
### Today's Plan - 10:00-11:00 タスクA - 11:30-12:00 タスクB ---
### Today's Planヘッダーから---(区切り線)の間に、時刻ベース(HH:mm-HH:mm)で記載したものが認識されます。 - アプリの [Fetch Today's Plan & Update Widget] ボタンを押します。
- ホーム画面に戻り、ウィジェットを追加すると、現在の進行中予定や次の予定が表示されます!ウィジェットをタップすると直接該当のNotionページへと遷移します。
現状では「毎日Notionから最新データをダウンロードする処理」は手動で行う仕様になっています。
- Notionから本体へのデータダウンロード(一日1回・手動)
- 毎日、朝などにアプリを開き「Fetch Today's Plan」ボタンを押してください。最新の予定が本体内にダウンロード(キャッシュ)されます。
- ウィジェットの表示切り替え(アプリを閉じていても完全自動)
- データさえダウンロードしておけば、その日1日の「今の予定」や「次の予定」への表示切り替えは、予定の境界時間に合わせてOS側で完全自動で更新されます(毎回アプリを開き直す必要はありません)。