Everyday | API DocumentationEveryday | API Documentation
  • Pricing
  • Documentation
  • API Reference
Information
Profiles
    List profilesgetCreate profilepostRetrieve profilegetDelete profiledeleteUpdate profilepatchList a profile's eventsgetCreate event for a profilepostList a profile's seriesgetCreate series for a profilepostList followers of a profileget
Events
    List a profile's eventsgetCreate event for a profilepostList eventsgetCreate eventpostRetrieve eventgetDelete eventdeleteUpdate eventpatchCancel eventpostReschedule eventpostList RSVPsgetCreate RSVPpostDelete RSVPdeleteUpdate RSVPpatchRSVP statisticsgetGet RSVP settingsgetUpdate RSVP settingspatchList events in a seriesgetAdd event to seriespostRemove event from seriesdelete
RSVPs
    List RSVPsgetCreate RSVPpostDelete RSVPdeleteUpdate RSVPpatchRSVP statisticsgetGet RSVP settingsgetUpdate RSVP settingspatch
Series
    List a profile's seriesgetCreate series for a profilepostList seriesgetRetrieve seriesgetDelete seriesdeleteUpdate seriespatchPreview series deletiongetList events in a seriesgetAdd event to seriespostRemove event from seriesdelete
Calendars
    List calendarsgetRetrieve calendargetList calendar eventsgetCreate calendar eventpostDelete calendar eventdeleteUpdate calendar eventpatch
Subscriptions
    List subscriptionsgetCreate subscriptionpostRetrieve subscriptiongetDelete subscriptiondeleteUpdate subscriptionpatch
Follows
    List followers of a profilegetList followsgetCreate followpostDelete followdelete
Search
    Search across events, profiles, and seriesget
MCP
    MCP Server (consumer / OAuth)postMCP Server (developer / API key)post
Schemas
powered by Zuplo
Everyday Public API
Everyday Public API

Series

Ordered or themed collections of events under a profile (e.g., a season, a course, a tour).


List a profile's series

GET
https://api.every.day
/v1/profiles/{profile_id}/series

Returns series belonging to the specified profile.

List a profile's series › path Parameters

profile_id
​string · required

Prefixed unique identifier of the profile (e.g., prf_8f3ab21e49c44c8baf7b5e4a1b2c3d4e).

List a profile's series › query Parameters

cursor
​string

Opaque cursor returned from a previous list response.

limit
​integer · min: 1 · max: 100

Maximum number of items to return per page. Range 1-100, default 20.

Default: 20

List a profile's series › Responses

Page

​object[] · required
has_more
​boolean · required
next_cursor
​string | null · required
GET/v1/profiles/{profile_id}/series
curl --request GET \ --url https://api.every.day/v1/profiles/:profile_id/series
shell
Example Responses
No example specified for this content type
application/json

Create series for a profile

POST
https://api.every.day
/v1/profiles/{profile_id}/series

Creates a series under a profile owned by the authenticated user. slug must be unique within the profile; conflicts return 409.

Create series for a profile › path Parameters

profile_id
​string · required

Prefixed unique identifier of the profile (e.g., prf_8f3ab21e49c44c8baf7b5e4a1b2c3d4e).

Create series for a profile › Headers

Idempotency-Key
​string · minLength: 8 · maxLength: 255

A client-generated identifier (UUIDv4 recommended; 8–255 chars, alphanumeric/underscore/hyphen) for the request. The header is validated and logged, but server-side deduplication is not enforced: resubmitting a create with the same key produces a second resource. Treat creates as non-idempotent and design retries accordingly. Deduplication is planned for a future API version.

Create series for a profile › Request Body

name
​string · required
slug
​string · required
description
​string | null
is_private
​boolean

Create series for a profile › Responses

Created

id
​string
name
​string
slug
​string
description
​string | null
is_private
​boolean
created_at
​string · date-time
updated_at
​string · date-time
POST/v1/profiles/{profile_id}/series
curl --request POST \ --url https://api.every.day/v1/profiles/:profile_id/series \ --header 'Content-Type: application/json' \ --data ' { "name": "name", "slug": "slug", "description": "description", "is_private": true } '
shell
Example Request Body
{ "name": "name", "slug": "slug", "description": "description", "is_private": true }
json
Example Responses
No example specified for this content type
application/json

List series

GET
https://api.every.day
/v1/series

Returns the series the authenticated caller can manage — those they own directly or administer through an organization they belong to. This is a workflow endpoint, not platform-wide discovery: public series owned by others are not returned. Use it to resolve a name to a series you can write to. Use listProfileSeries to scope to a single profile.

List series › query Parameters

cursor
​string

Opaque cursor returned from a previous list response.

limit
​integer · min: 1 · max: 100

Maximum number of items to return per page. Range 1-100, default 20.

Default: 20

List series › Responses

Page

​object[] · required
has_more
​boolean · required
next_cursor
​string | null · required
GET/v1/series
curl --request GET \ --url https://api.every.day/v1/series
shell
Example Responses
No example specified for this content type
application/json

Retrieve series

GET
https://api.every.day
/v1/series/{series_id}

Returns a single series by ID.

Retrieve series › path Parameters

series_id
​string · required

Prefixed unique identifier of the series (e.g., ser_8f3ab21e49c44c8baf7b5e4a1b2c3d4e).

Retrieve series › Responses

Series

id
​string
name
​string
slug
​string
description
​string | null
is_private
​boolean
created_at
​string · date-time
updated_at
​string · date-time
GET/v1/series/{series_id}
curl --request GET \ --url https://api.every.day/v1/series/:series_id
shell
Example Responses
No example specified for this content type
application/json

Delete series

DELETE
https://api.every.day
/v1/series/{series_id}

Deletes a series. By default, events that belong only to this series are preserved; pass cascade_exclusive_events=true to also delete them. Use previewSeriesDeletion first to see what would be removed.

Delete series › path Parameters

series_id
​string · required

Prefixed unique identifier of the series (e.g., ser_8f3ab21e49c44c8baf7b5e4a1b2c3d4e).

Delete series › query Parameters

cascade_exclusive_events
​boolean

If true, also delete events that belong only to this series. Events shared with other series are preserved.

Default: false

Delete series › Responses

Deleted

member_count
​integer · required

Total events that were tagged in this series at delete time.

deleted_event_count
​integer · required

Events permanently deleted (only nonzero when cascade_exclusive_events=true).

preserved_event_count
​integer · required

Events that remain on the profile after deletion.

DELETE/v1/series/{series_id}
curl --request DELETE \ --url https://api.every.day/v1/series/:series_id
shell
Example Responses
No example specified for this content type
application/json

Update series

PATCH
https://api.every.day
/v1/series/{series_id}

Updates fields on a series owned by the authenticated user. The slug is unique within the parent profile; conflicts return 409.

Update series › path Parameters

series_id
​string · required

Prefixed unique identifier of the series (e.g., ser_8f3ab21e49c44c8baf7b5e4a1b2c3d4e).

Update series › Request Body

name
​string
slug
​string
description
​string | null
is_private
​boolean

Update series › Responses

Updated

id
​string
name
​string
slug
​string
description
​string | null
is_private
​boolean
created_at
​string · date-time
updated_at
​string · date-time
PATCH/v1/series/{series_id}
curl --request PATCH \ --url https://api.every.day/v1/series/:series_id \ --header 'Content-Type: application/json' \ --data ' { "name": "name", "slug": "slug", "description": "description", "is_private": true } '
shell
Example Request Body
{ "name": "name", "slug": "slug", "description": "description", "is_private": true }
json
Example Responses
No example specified for this content type
application/json

Preview series deletion

GET
https://api.every.day
/v1/series/{series_id}/deletion-preview

Returns a read-only preview of what deleteSeries would affect: the series itself, plus the list of events that would be removed if cascade_exclusive_events=true is passed. Does not modify anything.

Preview series deletion › path Parameters

series_id
​string · required

Prefixed unique identifier of the series (e.g., ser_8f3ab21e49c44c8baf7b5e4a1b2c3d4e).

Preview series deletion › Responses

Deletion impact summary

series_name
​string · required
member_count
​integer · required

Total events tagged in this series.

exclusive_count
​integer · required

Events that would be deleted in cascade mode.

shared_count
​integer · required

Events that would be preserved (also tagged in other series).

GET/v1/series/{series_id}/deletion-preview
curl --request GET \ --url https://api.every.day/v1/series/:series_id/deletion-preview
shell
Example Responses
No example specified for this content type
application/json

List events in a series

GET
https://api.every.day
/v1/series/{series_id}/events

Returns events in the specified series, ordered by start time.

List events in a series › path Parameters

series_id
​string · required

Prefixed unique identifier of the series (e.g., ser_8f3ab21e49c44c8baf7b5e4a1b2c3d4e).

List events in a series › query Parameters

cursor
​string

Opaque cursor returned from a previous list response.

limit
​integer · min: 1 · max: 100

Maximum number of items to return per page. Range 1-100, default 20.

Default: 20

List events in a series › Responses

Page

​object[] · required
has_more
​boolean · required
next_cursor
​string | null · required
GET/v1/series/{series_id}/events
curl --request GET \ --url https://api.every.day/v1/series/:series_id/events
shell
Example Responses
No example specified for this content type
application/json

Add event to series

POST
https://api.every.day
/v1/series/{series_id}/events

Adds an existing event to the series. The event and series must both be owned by the authenticated user. Adding an event that is already in the series is a no-op.

Add event to series › path Parameters

series_id
​string · required

Prefixed unique identifier of the series (e.g., ser_8f3ab21e49c44c8baf7b5e4a1b2c3d4e).

Add event to series › Headers

Idempotency-Key
​string · minLength: 8 · maxLength: 255

A client-generated identifier (UUIDv4 recommended; 8–255 chars, alphanumeric/underscore/hyphen) for the request. The header is validated and logged, but server-side deduplication is not enforced: resubmitting a create with the same key produces a second resource. Treat creates as non-idempotent and design retries accordingly. Deduplication is planned for a future API version.

Add event to series › Request Body

event_id
​string · required

Add event to series › Responses

Linked

No data returned
POST/v1/series/{series_id}/events
curl --request POST \ --url https://api.every.day/v1/series/:series_id/events \ --header 'Content-Type: application/json' \ --data ' { "event_id": "event_id" } '
shell
Example Request Body
{ "event_id": "event_id" }
json
Example Responses
No example specified for this content type

Remove event from series

DELETE
https://api.every.day
/v1/series/{series_id}/events/{event_id}

Removes the event-series link but does not delete the event itself. Inverse of addEventToSeries.

Remove event from series › path Parameters

series_id
​string · required

Prefixed unique identifier of the series (e.g., ser_8f3ab21e49c44c8baf7b5e4a1b2c3d4e).

event_id
​string · required

Prefixed unique identifier of the event (e.g., evt_8f3ab21e49c44c8baf7b5e4a1b2c3d4e).

Remove event from series › Responses

Removed

No data returned
DELETE/v1/series/{series_id}/events/{event_id}
curl --request DELETE \ --url https://api.every.day/v1/series/:series_id/events/:event_id
shell
Example Responses
No example specified for this content type

RSVPsCalendars