After thinking about it, it seems quite simple. I can create a personal calendar event in half an hour, consuming only about 0.1% of my CodeX quota (CodeX's estimate).
The idea is: First, let the user configure their available time slots.
Then, connect to Google Calendar to pull busy slots.
Then, calculate the available slots using "available time - occupied slots - buffer".
After the user selects a slot, lock and confirm, create a calendar event, and send an email.