🐵💻 ChatGPTでスケジュールアシスタントを作る:業務効率を一段上へ!
1. はじめに:毎日のスケジュール調整、面倒くさくないですか?
Slackやメール、カレンダーと格闘しながら、
- 「来週のこの打ち合わせ、誰が参加できるの?」
- 「15時から30分空いてる時間ある?」
- 「予定に関して上司に要約送っておいて」
こんなやりとりを日々繰り返している方、多いのではないでしょうか?
そこで今回は、**ChatGPT API(GPT-4)**を使って「簡単なスケジュールアシスタント」を自作する方法を紹介します。AIに自然言語で予定を聞いたり、まとめてもらったりできたら、チームのコミュニケーションがスムーズになりますよね。
この記事では、カレンダーのJSONデータをもとにChatGPTに自然言語で質問できるシステムを構築します。コード付きでわかりやすく解説するので、ぜひハンズオンしてみてください!
2. 技術概要:ChatGPTを予定確認に使うという発想
ChatGPTは自然言語生成に優れたAIですが、予定データ(構造化データ)を理解させるには工夫が必要です。
今回の要素技術は以下のとおりです:
- OpenAI GPT-4 API:自然言語応答の中核
- JSON形式のカレンダーデータ:予定の構造化情報
- LangChainのFunction Calling(またはTool機能):GPTにタスク処理をさせる
- Pythonでの実装:バックエンドで対話処理を制御
3. 実装例:ChatGPTと会話しながら予定を確認
📅 前提:カレンダーのJSON例
[
{
"title": "開発チーム定例",
"start": "2025-06-06T10:00:00",
"end": "2025-06-06T11:00:00",
"attendees": ["佐藤", "田中", "山本"]
},
{
"title": "1on1ミーティング(上司)",
"start": "2025-06-06T15:00:00",
"end": "2025-06-06T15:30:00",
"attendees": ["自分", "部長"]
}
]
🧠 ステップ1:ChatGPT APIを叩く
import openai
import json
openai.api_key = "sk-xxxx"
calendar_data = [...] # 上記の予定データ
system_prompt = """
あなたはスケジュールアシスタントです。
ユーザーの自然言語の質問に対して、JSON形式の予定データをもとに回答してください。
"""
user_question = "6月6日に15時から空いてる時間ある?"
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[
{"role": "system", "content": system_prompt},
{"role": "user", "content": f"予定データ: {json.dumps(calendar_data, ensure_ascii=False)}"},
{"role": "user", "content": user_question}
],
temperature=0.3
)
print(response['choices'][0]['message']['content'])
🧾 実行結果(例)
6月6日は15:00〜15:30に1on1ミーティングがあるため、その時間は埋まっています。
それ以外の空き時間は、11:00〜15:00までの間です。
かなり自然な応答が返ってきました!
4. 実務でのTips&落とし穴
✅ 実務で役立つポイント
-
temperature=0.3
などで出力の安定性を確保 - データを渡す際は、できるだけ簡潔なJSON形式に整える
-
function_call
を活用すれば、GPTが処理を指示→Pythonが処理→結果を返す流れも可能
⚠️ よくある失敗パターン
ケース | 原因 | 対処法 |
---|---|---|
応答が曖昧 | JSONが複雑すぎる | 時系列でソート or フィルターして渡す |
未来の日付を認識しない |
today などを明示していない |
2025-06-05時点での予定です と指示を明確に |
会話履歴で文脈が崩れる | 長いログで誤解 | 必要に応じて履歴をリセットする処理を追加 |
5. 応用編:Google Calendarと連携する
ここまでの例は静的なJSONでしたが、実務で使うならGoogle Calendarとの連携が便利です。
🔗 Google Calendar APIを使うと?
- OAuthで認証し、個人の予定を取得
- Pythonでカレンダー取得 → GPTに渡して自然言語で質問
- 例えば「来週空いてる時間教えて」→即回答!
Zenn/Qiitaの別記事でOAuth連携や実装詳細を深掘り予定です(リクエストあればぜひ)。
6. まとめ:ChatGPT × スケジュール管理の可能性
✅ メリット
- 非エンジニアでも自然言語で予定確認ができる
- 複数メンバーの予定を横断的に確認できる
- Slack Botなどに組み込めばさらに便利
❌ デメリット・課題
- 処理のリアルタイム性には限界あり(APIレスポンス+カレンダーの最新性)
- 長期間の予定や曖昧な表現に弱い場合も
🚀 今後の展望
- LangChainなどのフレームワークと組み合わせて本格的なAIスケジューラーに発展可能
- GPTs(カスタムGPT)にスケジュール特化の機能を持たせる
- 音声入力やSlack連携などで社内ツール化も現実的
🔧 参考リンク
この記事を読んで「やってみたい!」と思った方は、ぜひ自分の予定管理に組み込んでみてください。業務効率がグッと上がること間違いなしです!
次回は「AIに旅行計画を立ててもらうチャレンジ」の実装に挑戦予定です📆💬
ご感想や質問があればコメント欄やTwitterでぜひ教えてください!