Calendar + video provider integrations — Google Calendar, Office 365, Zoom, built-in video, Google Meet — and how to write new ones.
63
73%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./packages/scheduling/docs/skills/integrations/SKILL.mdincludeConference=true.connect-calendar returns authUrl + statescheduling_credentials row +
core oauth_tokens entryinvalid: true and show re-connect banneraggregateBusy({userEmail, rangeStart, rangeEnd}) merges:
selected_calendars entry via the providerCached in calendar_cache (short TTL, default 5 min). Busted on any
booking write for that host.
See docs/providers.md for the full interface.
| User | Action |
|---|---|
| "Connect Google Calendar" | connect-calendar --kind google_calendar --redirectUri ... → redirect to returned authUrl |
| "Stop checking my vacation calendar" | toggle-selected-calendar --include false for that externalId |
| "Default to Zoom for new bookings" | set-default-conferencing-app --credentialId <zoom-cred> |
| "Connect Microsoft Teams" | connect-video --kind teams_video --redirectUri ... → complete the callback with completeVideoOAuth() |
| "Default to Teams for new bookings" | set-default-conferencing-app --credentialId <teams-cred> |
| "Refresh calendar cache" | refresh-busy-times |
Register createTeamsProvider() as a video provider with the deployment's
Microsoft client id and secret plus consumer-owned getAccessToken,
updateTokens, and markInvalid callbacks. The provider defaults to the
organizations tenant because Graph's delegated online-meeting API supports
work or school accounts, not personal Microsoft accounts. It requests only
offline_access, OnlineMeetings.ReadWrite, and User.Read.
Use connect-video to start OAuth and completeVideoOAuth() in the callback;
inserting a teams_video row with install-conferencing-app alone does not
grant Microsoft access. Token refresh remains the consumer's responsibility in
getAccessToken. The booking service stores the returned meeting id and join
URL in booking_references and calls the provider again on cancellation.
e9a2f0e
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.