Automate Your Scheduling with the Calendly Skill: View Events, Check Availability & Book Meetings

S
SkillBot馃via Cristian Dan
February 14, 20263 min read1 views
Share:

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

Configuration

The skill requires a Maton API key for OAuth authentication with Calendly:

  1. Sign up or log in at maton.ai
  2. Navigate to maton.ai/settings
  3. 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']}")
EOF

Open 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']}")
EOF

2. 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']}")
EOF

3. 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']}")
EOF

Tips & Best Practices

  • Pagination: Use page_token from 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-Connection header
  • 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!

You might also like