Automate Your Scheduling with the Calendly Skill: View Events, Check Availability & Book Meetings
If you've ever wished your AI assistant could check your meeting schedule, find available slots, or even book appointments for you, the Calendly skill from ClawdHub makes it possible. This guide walks you through installation, setup, and practical use cases for integrating Calendly with your Clawdbot workflow.
What Problem Does This Solve?
Managing a busy calendar is time-consuming. You might need to:
- Check what meetings you have coming up
- Find available time slots for a new meeting
- See who's attending your scheduled calls
- Cancel or reschedule meetings programmatically
The Calendly skill connects your scheduling data to Clawdbot via the Maton API gateway, enabling your AI assistant to handle these tasks conversationally.
Installation
Install the skill with a single command:
npx clawhub@latest install calendly-apiConfiguration
The skill requires a Maton API key for OAuth authentication with Calendly:
- Sign up or log in at maton.ai
- Navigate to maton.ai/settings
- Copy your API key
Set the environment variable:
export MATON_API_KEY="your-api-key-here"Connect your Calendly account by creating a connection:
python <<'EOF'
import urllib.request, os, json
data = json.dumps({'app': 'calendly'}).encode()
req = urllib.request.Request('https://ctrl.maton.ai/connections', data=data, method='POST')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
req.add_header('Content-Type', 'application/json')
result = json.load(urllib.request.urlopen(req))
print(f"Complete OAuth at: {result['connection']['url']}")
EOFOpen the returned URL in your browser to authorize Calendly access.
Usage Examples
1. View Your Upcoming Meetings
List active scheduled events for the next week:
python <<'EOF'
import urllib.request, os, json
from datetime import datetime, timedelta
# Get your user URI first
req = urllib.request.Request('https://gateway.maton.ai/calendly/users/me')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
user = json.load(urllib.request.urlopen(req))['resource']
# Fetch upcoming events
now = datetime.utcnow().strftime('%Y-%m-%dT%H:%M:%SZ')
req = urllib.request.Request(f'https://gateway.maton.ai/calendly/scheduled_events?user={user["uri"]}&status=active&min_start_time={now}')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
events = json.load(urllib.request.urlopen(req))
for e in events['collection']:
print(f"{e['start_time'][:10]} - {e['name']}")
EOF2. Check Available Time Slots
Find open slots for a specific event type:
python <<'EOF'
import urllib.request, os, json
event_type_uri = "https://api.calendly.com/event_types/YOUR_EVENT_TYPE_ID"
start = "2025-03-01T00:00:00Z"
end = "2025-03-08T00:00:00Z"
req = urllib.request.Request(f'https://gateway.maton.ai/calendly/event_type_available_times?event_type={event_type_uri}&start_time={start}&end_time={end}')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
slots = json.load(urllib.request.urlopen(req))
for slot in slots['collection'][:5]:
print(f"Available: {slot['start_time']} - {slot['scheduling_url']}")
EOF3. List Your Event Types
See all your scheduling links:
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://gateway.maton.ai/calendly/users/me')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
user = json.load(urllib.request.urlopen(req))['resource']
req = urllib.request.Request(f'https://gateway.maton.ai/calendly/event_types?user={user["uri"]}&active=true')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
types = json.load(urllib.request.urlopen(req))
for t in types['collection']:
print(f"{t['name']} ({t['duration']} min) - {t['scheduling_url']}")
EOFTips & Best Practices
- Pagination: Use
page_tokenfrom responses to fetch more results for large datasets - Date ranges: The availability endpoint supports a maximum of 7 days per request
- Webhooks: Set up webhook subscriptions to get notified of new bookings (requires paid Calendly plan)
- Multiple connections: If you manage multiple Calendly accounts, specify which one using the
Maton-Connectionheader - Rate limits: The Calendly API has rate limits; batch requests when possible
Conclusion
The Calendly skill transforms your AI assistant into a scheduling powerhouse. Whether you need a quick overview of your week, want to find available meeting slots, or automate booking workflows, this integration has you covered.
Install it now: npx clawhub@latest install calendly-api
Resources:
Comments (0)
No comments yet. Be the first to comment!