GoodInbound

Project and Scheduling

All routes here need a project API key: Authorization: Bearer gi_live_.... See Authentication.

Project and entitlements#

Read and update the project the API key belongs to, and inspect the plan limits that apply to it.

Method Path Description
GET /api/projects/:projectId Get the current project.
PUT /api/projects/:projectId Update project settings and branding.
GET /api/projects/:projectId/entitlements Get the subscription, usage, and effective plan limits.
  • Project creation and deletion are dashboard-only.
  • PUT accepts name, slug, timezone, and onboarded; slugs use lowercase letters, digits, and hyphens.
  • Entitlements are the source of truth for API access and resource limits; don't hard-code plan assumptions.

Event types#

Manage bookable meeting definitions and choose which connected calendars each event type reads and writes.

Method Path Description
GET /api/projects/:projectId/event-types List event types.
POST /api/projects/:projectId/event-types Create an event type.
GET /api/projects/:projectId/event-types/:eventTypeId Get an event type.
PUT /api/projects/:projectId/event-types/:eventTypeId Update an event type.
DELETE /api/projects/:projectId/event-types/:eventTypeId Delete an event type.
GET /api/projects/:projectId/event-types/:eventTypeId/calendars Get destination and availability calendar selections.
PUT /api/projects/:projectId/event-types/:eventTypeId/calendars Replace destination and availability calendar selections.
  • Event type writes are subject to the project's plan limit.
  • Create with name, slug, duration, and optionally description, location, color, buffers, booking caps, confirmation mode, bookingFormId, settings, or copyFromEventTypeId.
  • Calendar IDs must belong to a connection available to the project or its team.

Schedules and availability rules#

Manage reusable schedules, their weekly working windows, and date-specific overrides.

Method Path Description
GET /api/projects/:projectId/schedules List schedules.
POST /api/projects/:projectId/schedules Create a schedule.
PUT /api/projects/:projectId/schedules/:scheduleId Update a schedule.
DELETE /api/projects/:projectId/schedules/:scheduleId Delete a schedule.
GET /api/projects/:projectId/schedules/:scheduleId/rules List weekly availability rules.
PUT /api/projects/:projectId/schedules/:scheduleId/rules Replace weekly availability rules.
GET /api/projects/:projectId/schedules/:scheduleId/overrides List date overrides.
POST /api/projects/:projectId/schedules/:scheduleId/overrides Create a date override.
DELETE /api/projects/:projectId/schedules/:scheduleId/overrides/:overrideId Delete a date override.
  • Times in rules and overrides are local to the schedule's timezone.
  • Create schedules with name, timezone, and isDefault. Rules contain dayOfWeek, startTime, and endTime; 24:00 is valid only as an end time.
  • Replacing rules replaces the complete set; read the current rules before editing.