Everyday | API DocumentationEveryday | API Documentation
  • Pricing
  • Documentation
  • API Reference
Information
Organizations
    List available organizationsget
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 eventpatchList connected external calendarsgetRead your agendaget
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 · pattern: ^prf_[0-9a-fA-F]{32}… · 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 · pattern: ^prf_[0-9a-fA-F]{32}… · 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 · pattern: ^ser_[0-9a-fA-F]{32}…
profile_id
​string | null · pattern: ^prf_[0-9a-fA-F]{32}…

Owning profile ID. Null when the profile is no longer visible to the caller.

name
​string
slug
​string
description
​string | null
is_private
​boolean
created_at
​string | null · date-time
updated_at
​string | null · 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 · pattern: ^ser_[0-9a-fA-F]{32}… · required

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

Retrieve series › Responses

Series

id
​string · pattern: ^ser_[0-9a-fA-F]{32}…
profile_id
​string | null · pattern: ^prf_[0-9a-fA-F]{32}…

Owning profile ID. Null when the profile is no longer visible to the caller.

name
​string
slug
​string
description
​string | null
is_private
​boolean
created_at
​string | null · date-time
updated_at
​string | null · 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 · pattern: ^ser_[0-9a-fA-F]{32}… · 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 · pattern: ^ser_[0-9a-fA-F]{32}… · 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 · pattern: ^ser_[0-9a-fA-F]{32}…
profile_id
​string | null · pattern: ^prf_[0-9a-fA-F]{32}…

Owning profile ID. Null when the profile is no longer visible to the caller.

name
​string
slug
​string
description
​string | null
is_private
​boolean
created_at
​string | null · date-time
updated_at
​string | null · 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 · pattern: ^ser_[0-9a-fA-F]{32}… · 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).

member_recurring_count
​integer · min: 0 · required
exclusive_recurring_count
​integer · min: 0 · required
shared_recurring_count
​integer · min: 0 · required
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 · pattern: ^ser_[0-9a-fA-F]{32}… · 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 · pattern: ^ser_[0-9a-fA-F]{32}… · 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 · pattern: ^evt_[0-9a-fA-F]{32}… · 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 · pattern: ^ser_[0-9a-fA-F]{32}… · required

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

event_id
​string · pattern: ^evt_[0-9a-fA-F]{32}… · 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