New tools across 13 categories: - Email/Newsletter: beehiiv, klaviyo, postmark, brevo, activecampaign - Data Enrichment: clearbit, apollo - CRO/Testing: hotjar, optimizely - Analytics: plausible - Scheduling: calendly, savvycal - Forms: typeform - Messaging: intercom - Social: buffer - Video: wistia - Payments: paddle - Affiliate: partnerstack - Reviews: trustpilot, g2 - Push: onesignal - Webinar: demio, livestorm Each tool includes a zero-dependency CLI and integration guide. Registry and CLI README updated with all new entries. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
181 lines
3.4 KiB
Markdown
181 lines
3.4 KiB
Markdown
# SavvyCal
|
|
|
|
Scheduling platform API for managing scheduling links, events, availability slots, and webhooks.
|
|
|
|
## Capabilities
|
|
|
|
| Integration | Available | Notes |
|
|
|-------------|-----------|-------|
|
|
| API | ✓ | REST API v1 - scheduling links, events, webhooks |
|
|
| MCP | - | Not available |
|
|
| CLI | ✓ | [savvycal.js](../clis/savvycal.js) |
|
|
| SDK | - | No official SDK |
|
|
|
|
## Authentication
|
|
|
|
- **Type**: Bearer Token (Personal Access Token or OAuth 2.0)
|
|
- **Header**: `Authorization: Bearer {token}`
|
|
- **Get key**: Developer Settings in SavvyCal dashboard (create a Personal Access Token)
|
|
|
|
## Common Agent Operations
|
|
|
|
### Get current user
|
|
|
|
```bash
|
|
GET https://api.savvycal.com/v1/me
|
|
```
|
|
|
|
### List scheduling links
|
|
|
|
```bash
|
|
GET https://api.savvycal.com/v1/scheduling-links
|
|
```
|
|
|
|
### Get a scheduling link
|
|
|
|
```bash
|
|
GET https://api.savvycal.com/v1/scheduling-links/{id}
|
|
```
|
|
|
|
### Create a scheduling link
|
|
|
|
```bash
|
|
POST https://api.savvycal.com/v1/scheduling-links
|
|
|
|
{
|
|
"name": "30 Minute Meeting",
|
|
"slug": "30min",
|
|
"duration_minutes": 30
|
|
}
|
|
```
|
|
|
|
### Update a scheduling link
|
|
|
|
```bash
|
|
PATCH https://api.savvycal.com/v1/scheduling-links/{id}
|
|
|
|
{
|
|
"name": "Updated Meeting Name"
|
|
}
|
|
```
|
|
|
|
### Delete a scheduling link
|
|
|
|
```bash
|
|
DELETE https://api.savvycal.com/v1/scheduling-links/{id}
|
|
```
|
|
|
|
### Duplicate a scheduling link
|
|
|
|
```bash
|
|
POST https://api.savvycal.com/v1/scheduling-links/{id}/duplicate
|
|
```
|
|
|
|
### Toggle link state (active/disabled)
|
|
|
|
```bash
|
|
POST https://api.savvycal.com/v1/scheduling-links/{id}/toggle
|
|
```
|
|
|
|
### Get available time slots
|
|
|
|
```bash
|
|
GET https://api.savvycal.com/v1/scheduling-links/{id}/slots
|
|
```
|
|
|
|
### List events
|
|
|
|
```bash
|
|
GET https://api.savvycal.com/v1/events
|
|
```
|
|
|
|
### Get an event
|
|
|
|
```bash
|
|
GET https://api.savvycal.com/v1/events/{id}
|
|
```
|
|
|
|
### Create an event
|
|
|
|
```bash
|
|
POST https://api.savvycal.com/v1/events
|
|
|
|
{
|
|
"scheduling_link_id": "{link_id}",
|
|
"start_at": "2024-01-20T10:00:00Z",
|
|
"name": "John Doe",
|
|
"email": "john@example.com"
|
|
}
|
|
```
|
|
|
|
### Cancel an event
|
|
|
|
```bash
|
|
POST https://api.savvycal.com/v1/events/{id}/cancel
|
|
```
|
|
|
|
### List webhooks
|
|
|
|
```bash
|
|
GET https://api.savvycal.com/v1/webhooks
|
|
```
|
|
|
|
### Create a webhook
|
|
|
|
```bash
|
|
POST https://api.savvycal.com/v1/webhooks
|
|
|
|
{
|
|
"url": "https://example.com/webhook",
|
|
"events": ["event.created", "event.canceled"]
|
|
}
|
|
```
|
|
|
|
## Key Metrics
|
|
|
|
### Scheduling Link Data
|
|
- `id` - Unique link identifier
|
|
- `name` - Display name
|
|
- `slug` - URL slug
|
|
- `duration_minutes` - Meeting duration
|
|
- `state` - Active or disabled
|
|
- `url` - Full scheduling URL
|
|
|
|
### Event Data
|
|
- `id` - Unique event identifier
|
|
- `name` - Invitee name
|
|
- `email` - Invitee email
|
|
- `start_at` / `end_at` - Event timing
|
|
- `status` - Event status
|
|
- `scheduling_link` - Associated scheduling link
|
|
|
|
## Parameters
|
|
|
|
### List Events
|
|
- `before` / `after` - Pagination cursors
|
|
- `limit` - Results per page (default 20, max 100)
|
|
|
|
### List Scheduling Links
|
|
- `before` / `after` - Pagination cursors
|
|
- `limit` - Results per page
|
|
|
|
## When to Use
|
|
|
|
- Managing scheduling links programmatically
|
|
- Retrieving booked events for CRM or analytics sync
|
|
- Checking available time slots for custom booking UIs
|
|
- Automating scheduling link creation for campaigns
|
|
- Monitoring booking activity via webhooks
|
|
|
|
## Rate Limits
|
|
|
|
- Not officially documented
|
|
- Implement retry logic with exponential backoff
|
|
- Monitor for HTTP 429 responses
|
|
|
|
## Relevant Skills
|
|
|
|
- lead-generation
|
|
- sales-automation
|
|
- appointment-scheduling
|
|
- customer-onboarding
|