ローカルカレンダー
SwiftDataを正本として、Googleアカウントなしでも予定を管理できます。
Features
ローカル予定とGoogleの外部予定を区別しながら、同じ一覧とWidgetで確認できます。
SwiftDataを正本として、Googleアカウントなしでも予定を管理できます。
外部予定の表示・編集・削除と、任意のGoogle連携に対応します。
選択したローカル予定をGoogleへ同期します。Google側変更の自動取り込みは行いません。
ローカル編集を先に保存し、pending状態から手動で再同期できます。
ひとつのSwiftUIプロジェクトでiPhone、iPad、Macに対応します。
Small、Medium、Large、macOSのExtra Largeで予定を確認できます。
通常、終日、複数日、繰り返し予定を統合された一覧で扱います。
Screenshots
個人情報を含まないRelease画面へ後から置き換えます。ダミー画面は掲載していません。
macOS 一覧+詳細public/screenshots/event-list-detail.png
4種類のWidgetpublic/screenshots/widgets.png
予定の作成・編集public/screenshots/event-editor.png
Google同期状態public/screenshots/sync-status.png
How it works
単一のCalendarBoardカレンダーをSwiftDataへ保存し、オフラインでも編集します。
同期を有効にしたローカル予定だけをGoogle Calendarへ送ります。
Googleから取得した予定は別データとして表示し、同期済みコピーは重複表示しません。
開発者管理のOAuth ClientとPKCEを使用し、Tokenは端末のKeychainへ保存します。
Privacy
予定は基本的に端末内へ保存します。Google連携時だけGoogle APIと直接通信します。iOS版の予定一覧下部だけにGoogleのバナー広告を1枠表示し、macOSとWidgetには広告を表示しません。独自サーバー、独自Analytics、IDFAは使用しません。
プライバシーポリシーを読むApp Store
CalendarBoardはiOS 17以降とmacOS 14以降に対応し、App Storeで無料配布する予定です。
予定一覧下部に同意管理付きAdaptive Bannerを1枠表示します。編集、詳細、ログイン画面には表示しません。
広告を表示せず、広告SDKもリンクしません。
任意で連携でき、Googleログインなしでもローカル予定を管理できます。
App Storeリンクは公開後に掲載します。