A fully agentic calendar assistant built with the OpenAI Agents SDK that transforms natural language into Google Calendar events with automatic Google Meet links.
🧠 Smart Natural Language Processing - "Book lunch with Sarah next Friday at 1pm"
🤖 OpenAI Agents SDK - Built with the official agentic framework
📧 Automatic Attendee Invitations - Just mention an email and they're invited
🔗 Google Meet Links - Auto-generated for meetings with attendees
📅 Google Calendar Integration - Real events in your calendar
⏰ Smart Date/Time Parsing - Handles "tomorrow", "next week", etc.
🗑️ Event Management - Create, list, delete, and reschedule events
# Clone and setup
git clone <your-repo>
cd Scheduling
# Always activate venv first!
source venv/bin/activate && python simple_calendar_agent.py🧑 You: Book gym session tomorrow at 6pm for 1 hour
🤖: Your gym session has been booked for tomorrow at 6 PM.
View it here: [Calendar Link](https://calendar.google.com/...)
🧑 You: Schedule call with John at 3pm, email: john@company.com
🤖: Meeting with John scheduled for today at 3:00 PM.
👤 Attendee invited: john@company.com
🔗 Google Meet: https://meet.google.com/xyz-abc-def
🧑 You: List my upcoming events
🤖: 📅 Upcoming Events:
1. **Team Meeting** - Monday, Dec 18 at 2:00 PM
2. **Lunch with Sarah** - Tuesday, Dec 19 at 12:30 PM
🧑 You: Cancel my lunch with Sarah
🤖: 🗑️ Event 'Lunch with Sarah' has been deleted.
🧑 You: Move team meeting to 3pm tomorrow
🤖: ⏰ Event 'Team Meeting' has been rescheduled to Tuesday, Dec 19 at 3:00 PM.
# Clean @function_tool decorators
@function_tool
def create_calendar_event(summary: str, start_datetime: str,
attendee_email: str = None):
"""Create calendar event with Google Meet integration."""
# Auto-generate Meet link when attendee present
if attendee_email:
event['conferenceData'] = {
'createRequest': {
'conferenceSolutionKey': {'type': 'hangoutsMeet'},
'requestId': str(uuid.uuid4())
}
}
# Agent with comprehensive tool set
agent = Agent(
name="SimpleCalendarAgent",
tools=[create_calendar_event, list_upcoming_events,
delete_event, reschedule_event, ...]
)- Automatic Detection - Mentions email → Creates Meet link
- Seamless Invitations - Calendar invites with Meet link included
- Zero Configuration - Works out of the box with Google Calendar API
📦 Scheduling/
├── 🤖 simple_calendar_agent.py # Main OpenAI Agents SDK agent
├── 🔧 calendar_tools.py # Google Calendar + Meet tools
├── 📦 requirements.txt # Dependencies
├── 🚀 run_calendar.sh # Quick start script
├── 🔐 .env # OpenAI API key
├── 🗝️ credentials.json # Google OAuth credentials
├── 🎫 token.json # Google auth token
└── 📚 README.md # This file
# These all work perfectly:
"Book a meeting with Michael tomorrow at 5pm"
"Schedule lunch next Friday at 1pm"
"Book call with Sarah at 2pm, email: sarah@company.com"
"Cancel my doctor appointment"
"Move meeting with John to next Tuesday at 3pm"The agent automatically detects emails in various formats:
"email: john@company.com""john@company.com""his email is john@company.com""contact sarah@startup.co"
- Create - Natural language → Calendar event
- List - View upcoming events with IDs
- Delete - By event ID or title search
- Reschedule - Change time/date for existing events
- Invite - Automatic attendee invitations + Meet links
- Go to Google Cloud Console
- Create new project or select existing
- Enable Google Calendar API
- Create OAuth 2.0 credentials
- Download
credentials.jsonto project root
# Add to .env file
OPENAI_API_KEY=sk-proj-your-api-key-herepip install -r requirements.txt./run_calendar.shsource venv/bin/activate
python simple_calendar_agent.pyimport asyncio
from simple_calendar_agent import run_agent
asyncio.run(run_agent())✅ OpenAI Agents SDK - Official framework, not custom wrapper
✅ @function_tool decorators - Modern tool integration pattern
✅ Agent() declaration - Proper agentic architecture
✅ Runner.run() execution - True agentic orchestration
✅ Context Awareness - Understands dates, times, preferences
✅ Tool Chaining - Can perform multi-step operations
| Feature | Basic Calendar | This Agent |
|---|---|---|
| Natural Language | ❌ | ✅ |
| Google Meet Links | ❌ | ✅ Auto-generated |
| Smart Date Parsing | ❌ | ✅ |
| Attendee Invitations | ❌ | ✅ |
| Event Management | ❌ | ✅ Full CRUD |
| Agentic Framework | ❌ | ✅ OpenAI SDK |
- OAuth 2.0 - Secure Google authentication
- Local Storage - Tokens stored locally only
- API Keys - Environment variables only
- No Data Collection - Everything stays on your machine
"No module named 'agents'"
pip install openai-agents>=0.1.0"Calendar API not enabled"
- Enable Google Calendar API in Cloud Console
- Regenerate credentials.json
"Invalid token"
- Delete
token.jsonand re-authenticate - Check OAuth scopes in credentials
# Add to simple_calendar_agent.py for debugging
import logging
logging.basicConfig(level=logging.DEBUG)- Fork the repository
- Create feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- OpenAI - For the Agents SDK framework
- Google - For Calendar API and Meet integration
- Python Community - For excellent libraries
Ready for AI-powered calendar management? 🚀
Your assistant is powered by OpenAI Agents SDK with Google Meet integration!
Need help? Open an issue or reach out:
- 📧 Email: [Your Email]
- 🐛 Issues: [GitHub Issues]
- 📖 Docs: [Documentation Link]
Happy Scheduling! 📅✨