Everyday | API DocumentationEveryday | API Documentation
  • Pricing
  • Documentation
  • API Reference
Getting Started
    Getting Started
Useful Links
    Everyday HomeContact Us
powered by Zuplo

Build on Everyday

The Everyday API gives you programmatic access to the events, calendars, and time-based data that power the Everyday platform. Whether you're syncing schedules, building a companion app, automating workflows, or surfacing Everyday data inside your own product, this is where you start.

Everyday is both a consumer SaaS and a developer platform. That means the same primitives your users rely on every day — events, calendars, reminders, recurrences, time zones — are available to you through a clean, predictable REST API. If you can describe it on a calendar, you can build it with Everyday.

What You Can Build

  • Integrations that read and write events on behalf of Everyday users.
  • Automations that create, update, or archive events in response to activity in your own systems.
  • Companion apps that present Everyday data in new contexts — dashboards, embedded views, mobile experiences.
  • Workflows that combine Everyday with the rest of your stack.

The API is REST over HTTPS, returns JSON, and uses standard HTTP status codes. If you've worked with a modern API before, you'll feel at home in minutes.

Get Started in Three Steps

  1. Get Your API Key

    Every request to the Everyday API is authenticated with an API key. Keys are issued per subscription and managed in this developer portal. To get one:

    1. Click Login in the navigation above and sign in with your existing Everyday account.
    2. Choose a plan and complete signup.
    3. Open My Subscriptions, find the subscription you just created, and copy its API key. You can also regenerate keys, upgrade or downgrade your plan, and manage billing from this page at any time.

    Treat your API key like a password. Never commit it to source control, never embed it in client-side code, and rotate it immediately if you suspect it has been exposed.

    After subscribing, the portal links your new key to your account in the background. If your first API call returns 503 consumer_not_claimed, wait up to 60 seconds and retry — propagation usually takes a moment after a fresh subscription.

  2. Authenticate Your Requests

    Pass your API key in the Authorization header on every request, using the Bearer scheme:

    TerminalCode
    Authorization: Bearer YOUR_API_KEY

    That's it — no OAuth dance, no token exchange. If your key is valid and active, your request is authenticated.

  3. Make Your First Call

    Let's fetch the events on your calendar for today. Replace YOUR_API_KEY with the key you just created:

    TerminalCode
    curl https://api.every.day/v1/user_calendar_events \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json"

    You should get back a JSON payload listing your events. From here, you can create new events, update existing ones, manage calendars, and more — every endpoint is documented in the API Reference.

MCP Servers

Everyday exposes an MCP (Model Context Protocol) server so AI clients can call Everyday tools on your behalf. There are two ingress paths:

  • /mcp — Sign in via OAuth from any MCP-compatible client (Claude Desktop, ChatGPT, Cursor, etc.). The client walks you through a sign-in flow with Everyday, then calls tools on your account. Usage is billed via your consumer subscription. Point your MCP client config at https://api.every.day/mcp.
  • /mcp-developer — Authenticate with your developer API key (Authorization: Bearer YOUR_API_KEY), same key used for direct REST calls. Usage is billed via your developer plan, same meter as direct API requests. Use this for M2M agents and integrations where there's no end-user OAuth flow.

Both paths expose the same set of tools and call the same backend. Choose based on how your client authenticates.

Calling MCP directly

MCP-aware clients (Claude Desktop, ChatGPT, Cursor, and similar) configure their HTTP transport for you. If you're calling /mcp or /mcp-developer directly — for example with curl or a custom HTTP client — the MCP Streamable HTTP transport requires both JSON and SSE media types in the Accept header. Missing either value returns a 406:

Code
{"jsonrpc":"2.0","id":null,"error":{"code":-32600,"message":"Not Acceptable: Client must accept application/json and text/event-stream"}}

A correctly-shaped request:

TerminalCode
curl -X POST https://api.every.day/mcp \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -H "Accept: application/json, text/event-stream" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Where to Go Next

  • API Reference — Every endpoint, every parameter, every response, with live examples you can try right from the docs.
  • Guides — Step-by-step walkthroughs for common integration patterns: syncing external calendars, handling recurring events, working with time zones, and more.
  • Changelog — Stay current on new endpoints, improvements, and breaking changes.

Need Help?

If you get stuck, hit an unexpected response, or want to tell us what you're building, we'd love to hear from you. Reach out at [email protected] — real humans read every message.

Welcome to Everyday. We can't wait to see what you build.

Last modified on June 12, 2026
On this page
  • What You Can Build
  • Get Started in Three Steps
  • MCP Servers
    • Calling MCP directly
  • Where to Go Next
  • Need Help?
JSON