0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「AIでパーソナルブランディング」– 自分自身をAIで拡張する | [第6回]:AIでスケジュール管理を自動化

Posted at

🧠 AIでパーソナルブランディング:自分のスケジュールをAIで自動管理してみた!

🧩 はじめに:タスクに追われるエンジニアたちへ

エンジニアとして働いていると、会議、開発、コードレビュー、技術キャッチアップ…やることが山積みで、**「今日は何から手をつければいいんだっけ?」**と立ち止まる瞬間がありませんか?

特に、フルスタックエンジニアやスタートアップで複数の役割を兼任している方にとって、スケジュール管理は地味だけど極めて重要です。

本記事では、そんな日々の予定管理をAIで自動化し、自分自身を「拡張」する方法を紹介します。


🤖 テーマ:AIを活用したスケジュール自動化

今回紹介するのは、次のような流れを自動化するアプローチです:

  1. Google Calendar APIで予定を取得
  2. OpenAI GPTでタスクをカテゴリ分類
  3. 優先順位とコンテキスト(仕事/私生活)に応じた日程提案
  4. 提案内容をカレンダーに反映

🛠 技術スタックと環境

  • 言語: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の作り方」もご紹介予定です!

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?