Skip to content
GET/v1/{metro}/events/calendarall plans

Event counts per day

For each local date in [from, to] (both required, at most 62 days inclusive), how many event occurrences start that day, how many of them are free, and how many fall in each category — every date included, with zeros. Occurrences are exactly the ones /v1/{metro}/events lists with occurrences=expand under the same filters, so a month view's counts always agree with the week or day list behind them.

Show more

Takes the same filters as /events. weekday, start_after, start_before and season apply to each occurrence. cursor, page, fields, expand, changed_since, q and facets are not available.

include=forecast (a paid add-on, entitled as on /events) adds a forecast to today and each of the next seven days.

Try this requestRun it with sample data, no key needed. Paste a key to run it live.
Example request
curl -sS \
  -H "X-API-Key: $TAILEND_API_KEY" \
  "https://api.tailend.dev/v1/philadelphia/events/calendar?from=2026-10-01&to=2026-10-31"
Example response · 200
{
  "data": [
    {
      "date": "2026-10-05",
      "count": 41,
      "free_count": 22,
      "categories": {
        "storytime_books": 14,
        "arts_creative": 9,
        "sports_active_play": 6
      }
    },
    {
      "date": "2026-10-06",
      "count": 0,
      "free_count": 0,
      "categories": {}
    },
    {
      "date": "2026-10-07",
      "count": 57,
      "free_count": 31,
      "categories": {
        "storytime_books": 19,
        "music_movement": 8
      },
      "forecast": {
        "summary": "Chance Showers",
        "temperature_f": {
          "min": 54,
          "max": 66
        },
        "precipitation_chance_max": 60,
        "wet_hours": [
          [
            13,
            16
          ]
        ],
        "issued_at": "2026-10-05T14:00:00Z",
        "expires_at": "2026-10-05T15:00:00Z"
      }
    }
  ],
  "meta": {
    "metro": "philadelphia",
    "window": {
      "from": "2026-10-05",
      "to": "2026-10-07",
      "timezone": "America/New_York"
    },
    "min_confidence": 0.7,
    "total": 98,
    "applied_filters": {
      "from": "2026-10-05",
      "to": "2026-10-07",
      "min_confidence": 0.7,
      "audience": [
        "not_adults"
      ]
    },
    "defaults_applied": [
      "min_confidence",
      "audience"
    ],
    "generated_at": "2026-10-07T12:00:00.000Z"
  }
}

Try any request with sample data, no key needed. Available on every plan.

Metro slug from /v1/metros (e.g. philadelphia).

First local date of the window, YYYY-MM-DD.

Last local date of the window (inclusive), at most 61 days after from.

Optional parameters (25)

Drop rows whose confidence is below this.

Keep rows whose categories contain any of these.

Keep rows whose audience is one of these.

Events, classes and camps only.

Events and classes tagged for a seasonal occasion.

Events built around a local pro sports team (watch parties, game-day themed events, team or mascot appearances).

A child's age in years.

Neighborhood slug or free-text name (case-insensitive).

Center latitude for a radius search.

Center longitude for a radius search.

Radius in metres around lat/lng (or near_zip, where enabled).

Beta — may not be enabled for all keys yet.

Beta — may not be enabled for all keys yet.

Beta — may not be enabled for all keys yet.

Keep rows held at this place (place.id).

Events, classes, and camps only; ignored for places.

true keeps only events with a stated clock time.

Filter on is_recurring.

Keep rows on any of these local days.

Local start time at or after this, HH:MM (or HH:MM:SS).

Local start time strictly before this, HH:MM; 09:00–12:00 is the morning and 12:00 belongs to the afternoon.

A budget.

Keep rows published by this organization (organization.id).

Opt into a block the lean default response leaves out.

How an include= the key is not entitled to is handled.

Ctrl Enter to send