Fluent syntax, strong typing, and comprehensive documentation. Supports every version of every API, with OIDC built in.
Covers all Planning Center APIs
Install the NuGet package, point it at your credentials, and start querying.
1. Install
dotnet add package Crews.PlanningCenter.Api
2. Authenticate & query
Create a Personal Access Token in your Planning Center developer account, then:
PlanningCenterPersonalAccessToken token = new() { AppId = "your-app-id", Secret = "your-secret" }; var httpClient = new HttpClient { BaseAddress = new(PlanningCenterAuthenticationDefaults.BaseUrl) }; httpClient.DefaultRequestHeaders.Authorization = token; var peopleClient = new PeopleClient(httpClient).Latest; var response = await peopleClient.People.WithId("123").GetAsync(); Console.WriteLine($"Person: {response.Data?.Attributes?.Name}");
Built specifically for Planning Center's API structure, with patterns that feel natural in modern .NET.
Navigate resources with a clean, chainable interface. No URL
construction, and no more variables and awaits scattered
across your code.
Full coverage of the 8 core product APIs, plus the 3 metadata APIs — including all API versions.
Every code path in the library is covered by unit tests. Integration tests run against the live Planning Center API and cover nearly every supported endpoint, giving you confidence in every release.
Supports both Personal Access Token and OIDC / OAuth 2.0 flows. ASP.NET Core applications get first-class support with a one-call extension method and automatic bearer-token forwarding.
All resource attributes, relationships, and metadata are represented as fully typed C# classes — including correct nullability annotations. Catch API mismatches at compile time, not at runtime.
Register all product clients in one line with
AddPlanningCenterApi(). Works seamlessly with
IHttpClientFactory, resilience pipelines, and the standard ASP.NET Core DI
container.
Read the full documentation, browse the API reference, or check out the source on GitHub.