Skip to content

Add a Calendly service configuration #12

Description

@shreyanshjain7174

What

Add Calendly as a registered service, following the exact pattern already used by github, slack, stripe, and google_workspace.

Why

More service configurations mean more agents can use AgentGate out of the box without writing any Go code — this is a config-only, no-code-required contribution.

Files to touch

  • configs/services.yaml — the file the Dockerfile and quickstart actually load. Add a calendly: entry.
  • config/services.yaml — the local, non-Docker dev default. Add the same entry for consistency (see internal/registry/production_config_test.go's TestProductionConfig_LocalDevDefaultMatches, which checks these two files don't drift).
  • configs/services/calendly.yaml — a new per-service reference file, matching the convention README.md points readers at (see configs/services/google_workspace.yaml for the exact shape to copy).

Suggested shape

Calendly's REST API v2 (https://developer.calendly.com/api-docs) supports OAuth2 and a simple bearer personal access token; a read-only starting point:

calendly:
  base_url: https://api.calendly.com
  auth:
    type: bearer
  actions:
    list_scheduled_events:
      method: GET
      path: /scheduled_events
      params:
        user: string
        count: "int?"

Acceptance checks

  • configs/services.yaml, config/services.yaml, and configs/services/calendly.yaml all parse as valid YAML and match the registry.Config schema in internal/registry/registry.go.
  • go test ./internal/registry/... passes, including the existing TestProductionConfig_* tests.
  • No Go code changes are required for this issue.

Test path (no secrets needed)

go test ./internal/registry/... -run TestProductionConfig -v

This test loads the real config files directly — no live Calendly account, API key, or network access needed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions