🧠 AIでパーソナルブランディング:自分のスケジュールをAIで自動管理してみた!
🧩 はじめに:タスクに追われるエンジニアたちへ
エンジニアとして働いていると、会議、開発、コードレビュー、技術キャッチアップ…やることが山積みで、**「今日は何から手をつければいいんだっけ?」**と立ち止まる瞬間がありませんか?
特に、フルスタックエンジニアやスタートアップで複数の役割を兼任している方にとって、スケジュール管理は地味だけど極めて重要です。
本記事では、そんな日々の予定管理をAIで自動化し、自分自身を「拡張」する方法を紹介します。
🤖 テーマ:AIを活用したスケジュール自動化
今回紹介するのは、次のような流れを自動化するアプローチです:
- Google Calendar APIで予定を取得
- OpenAI GPTでタスクをカテゴリ分類
- 優先順位とコンテキスト(仕事/私生活)に応じた日程提案
- 提案内容をカレンダーに反映
🛠 技術スタックと環境
- 言語:Python 3.11
- Google Calendar API
- OpenAI GPT-4 API
- FastAPI(APIインタフェース用)
- SQLite(簡易ストレージ)
必要なライブラリ:
pip install openai google-api-python-client fastapi uvicorn python-dotenv
💡 実装例:AIスケジューラーの構築
1. Google Calendarから予定取得
from googleapiclient.discovery import build
from google.oauth2 import service_account
SCOPES = ['https://www.googleapis.com/auth/calendar.readonly']
SERVICE_ACCOUNT_FILE = 'credentials.json'
credentials = service_account.Credentials.from_service_account_file(
SERVICE_ACCOUNT_FILE, scopes=SCOPES)
service = build('calendar', 'v3', credentials=credentials)
events_result = service.events().list(calendarId='primary', maxResults=10).execute()
events = events_result.get('items', [])
2. GPTでカテゴリ・優先度分類
import openai
openai.api_key = "YOUR_API_KEY"
def classify_task(task_description):
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[
{"role": "system", "content": "あなたは予定分類のアシスタントです。"},
{"role": "user", "content": f"次の予定を分類してください:'{task_description}'"}
]
)
return response['choices'][0]['message']['content']
例:
「コードレビュー」→ 仕事 / 中優先度
「歯医者」→ 私生活 / 高優先度
3. AIが提案するスケジュールを組むロジック(擬似)
from datetime import datetime, timedelta
def suggest_time_slot(task, existing_events):
# 仮ロジック:翌日9時〜17時の空いてる時間に入れる
tomorrow = datetime.now() + timedelta(days=1)
return {
"task": task,
"start": f"{tomorrow.date()}T09:00:00",
"end": f"{tomorrow.date()}T10:00:00"
}
4. カレンダーへ反映
def add_event_to_calendar(task, start, end):
event = {
'summary': task,
'start': {'dateTime': start, 'timeZone': 'Asia/Tokyo'},
'end': {'dateTime': end, 'timeZone': 'Asia/Tokyo'}
}
service.events().insert(calendarId='primary', body=event).execute()
🧭 実運用でのTips&よくある失敗
✅ 実践的なTips
-
GPTのプロンプトはできるだけ明示的に。たとえば:
- 「優先度の高いものから順に並べてください」
- 「仕事 / プライベートに分類してください」
-
タスクの入力文をテンプレート化しておくと分類精度が安定します。
-
GPT APIのレスポンスが曖昧なときは正規表現+ルールベースで補正。
❌ よくある失敗
失敗例 | 解決策 |
---|---|
カレンダーAPIの認証エラー | credentials.jsonが正しくない / スコープ設定忘れ |
GPTが想定外の分類を返す | system promptを強化、定型文を明示 |
予定がバッティングする |
events().list() で空き時間チェックを追加 |
🚀 応用アイデアと拡張
この仕組みはシンプルですが、以下のような応用が考えられます:
- ChatGPTで自然言語から予定追加(例:「明日3時に歯医者」)
- 週次レビューとフィードバック生成(GPTでレポート作成)
- タスク完了に応じた次のタスク提案
- NotionやSlack連携
特にNotion連携は、個人の「自己拡張」のハブとして非常に強力です。
🧠 まとめ:AIで「自分」を管理する時代へ
視点 | 内容 |
---|---|
メリット | タスク漏れ防止、優先度管理、自動化による省力化 |
デメリット | GPTの分類精度、依存性が高くなりすぎるリスク |
展望 | 個人AI秘書としての定着、チーム単位への応用 |
「AIに管理される」のではなく、「AIを自分の能力の延長として使う」。
それが本シリーズの核心です。
🔚 最後に:今日から始めてみよう
本記事のコードを使えば、すぐに自分専用のAIスケジューラーを作ることができます。
あなたのタスク整理スキルも、ブランド力も、AIとともにレベルアップさせましょう。
Qiitaにスニペット付きのリポジトリもアップしていますので、ぜひチェックしてください👇
GitHubリポジトリはこちら(※仮リンク)
必要に応じて次回は「オリジナルAIアイコンの生成」や「パーソナルアシスタントBotの作り方」もご紹介予定です!