> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rescueconsole.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List events

> One page of your events, soonest first unless you say otherwise, each with how many animals it lists. Deleted events are never listed. Every occurrence of a series is its own event here. Needs **read** on Events.



## OpenAPI

````yaml /api-reference/openapi.json get /api/events/events
openapi: 3.1.0
info:
  title: RescueConsole API
  version: '2026-09-19'
  description: >-
    Your own organization's records, from your own software. There is no
    sandbox: every request goes to your live organization.
servers:
  - url: https://{organization}.rescueconsole.com
    description: Your own organization's address, the one you sign in at.
    variables:
      organization:
        default: your-rescue
        description: >-
          The first part of the address you sign in at. A key only works at the
          address of the organization it was made in.
security:
  - apiKey: []
tags:
  - name: Animals
    description: The animals in your care, and the ones you have placed.
  - name: Animal notes
    description: Notes written on an animal's record.
  - name: Animal weights
    description: An animal's weight readings, one per weighing.
  - name: Animal medical records
    description: >-
      Vaccines, treatments, procedures, tests, exams and other medical records
      on one animal.
  - name: Animal placements
    description: The people an animal came from or has been placed with, over time.
  - name: Animal nutrition
    description: 'What an animal eats: its feeding list and its diet.'
  - name: Animal relationships
    description: Siblings, parents, offspring and bonded pairs.
  - name: Animal tags
    description: Your own short labels on an animal.
  - name: Breeds
    description: The breed or kind lists your intake form offers for each species.
  - name: Litters
    description: Litters, and the animals born into them.
  - name: Locations and housing
    description: >-
      The places animals are housed at each of your locations: campuses,
      buildings, rooms and cages, the tunnels that join cages into one space,
      and who is in each.
  - name: Foster homes
    description: >-
      The people who foster for you, what each home can take, and the animals
      offered to and placed with them.
  - name: Intakes
    description: >-
      How each animal arrived: the route in, who brought it, why it was given up
      and the state it came in.
  - name: Medical due
    description: >-
      Medical work that is outstanding across all your animals, and one medical
      record added to many animals at once.
  - name: Transports
    description: >-
      Transport runs: a chain of drives, each leg with its own driver, that
      moves animals from one place to another.
  - name: Animal calendar
    description: >-
      The dated things in animal care on one calendar: medical work due,
      adoptions, foster placements starting and ending, arrivals, and meet and
      greets.
  - name: Animal reports
    description: >-
      The operations report: intakes, outcomes, live release rate and the
      animals in your care, each figure with its own definition.
  - name: Adoption applications
    description: >-
      Applications to adopt or foster, from first draft to a decision, and the
      adoption contract signed on an approved one.
  - name: Adoptions
    description: >-
      Animals that went home, what each adopter owes and has paid, and closing
      or reversing the adoption.
  - name: Signed contracts
    description: >-
      Contracts signed on an adoption, a foster placement or an intake, each
      kept exactly as it read when it was signed.
  - name: Contract templates
    description: >-
      The contracts your organization has people sign, with the merge fields
      that fill them in.
  - name: Reconciliations
    description: >-
      A payment processor's settlement lines, matched against the adoption
      payments you recorded.
  - name: Animal custom fields
    description: >-
      The extra fields your organization adds to animals, housing units and
      adoption applications.
  - name: Age groups
    description: >-
      What counts as a baby, an adult or a senior, per species, which fee rules
      and discounts read.
  - name: Animal statuses
    description: >-
      Your organization's status vocabulary for animal records, and what kind of
      status each one is.
  - name: Application stages
    description: >-
      The steps an adoption or foster application moves through before it is
      decided, in your organization's words.
  - name: Behaviour attributes
    description: >-
      The catalogue of behavioural traits, and where a trait with each name may
      be shown beyond the record.
  - name: Cage card templates
    description: >-
      The layouts your organization prints for the kennel door: paper, fields,
      photo and QR code.
  - name: Adoption fee schedules
    description: >-
      The rules that suggest an animal's adoption fee, and the discounts laid
      over them.
  - name: Medical catalogue
    description: >-
      The diagnoses, tests, vaccines, treatments, procedures, conditions and
      medications your medical records pick from.
  - name: People
    description: >-
      The people your organization deals with: adopters, donors, volunteers,
      fosters and everybody else.
  - name: Person notes
    description: Notes written on a person's record.
  - name: Person contacts
    description: >-
      A person's phone numbers and email addresses, one of each kind marked
      primary.
  - name: Person addresses
    description: A person's addresses, one of them primary.
  - name: Person tags
    description: Free-text labels on a person, added and removed one at a time.
  - name: People duplicates
    description: People who look like the same person entered twice, and merging them.
  - name: People custom fields
    description: The fields a person's record carries beyond the standard ones.
  - name: Organizations
    description: >-
      The outside organizations your rescue deals with: veterinary practices,
      partner rescues, shelters, suppliers, employers and agencies.
  - name: Organization locations
    description: An organization's places, one of them the main one.
  - name: Affiliations
    description: >-
      Who works at, volunteers for or otherwise belongs to an organization, now
      or in the past.
  - name: Forms
    description: >-
      The forms your organization publishes, such as an adoption application or
      a volunteer sign-up, and the questions on them.
  - name: Submissions
    description: >-
      What people sent through your forms, and what your team does with each
      one.
  - name: Tasks
    description: >-
      To-dos, on a record or for the whole organization, narrowed to the records
      your key may read.
  - name: Calendar
    description: >-
      The dated work across your organization in one list, narrowed to the areas
      your key may read.
  - name: Activity
    description: >-
      What was created, changed and deleted in your organization, narrowed to
      the areas your key may read.
  - name: Shift schedules
    description: >-
      Schedules: the occasions shifts are grouped under, such as an adoption day
      or Saturday kennel cover.
  - name: Shift windows
    description: >-
      Shifts: a stretch of time at a place, with the volunteer roles it needs
      and how many of each (the address calls a shift a window).
  - name: Shift bookings
    description: >-
      Sign-ups: a person taking a role on a shift, giving it up, and the hours
      they worked.
  - name: Volunteers
    description: >-
      The people who volunteer: where each stands, what they have done, and
      where they would rather work.
  - name: Volunteer roles
    description: >-
      The jobs a volunteer can sign up for, such as Dog walker or Adoption
      counselor.
  - name: Volunteer qualifications
    description: 'Approvals: who may take which role, and at which location.'
  - name: Shift policies
    description: The rules you set for sign-ups and cancellations.
  - name: Shift calendar
    description: Schedules and shifts as calendar items for a date range.
  - name: Shift custom fields
    description: Your own fields on schedules, shifts and sign-ups.
  - name: Events
    description: >-
      The occasions your rescue hosts: adoption days, fundraisers, clinics and
      the rest.
  - name: Events calendar
    description: Your events between two days, as calendar entries.
  - name: Campaigns
    description: >-
      Appeals you raise money for, each with its goal and what it has raised so
      far.
  - name: Donations
    description: 'Gifts of money: how much, from whom, and what they were given to.'
  - name: Donors
    description: The people who have given, with what each has given in all.
  - name: Wish list
    description: The things your rescue needs, and the deliveries that met them.
  - name: Fundraising custom fields
    description: Your organization's own fields on donations and campaigns.
  - name: Message templates
    description: >-
      Saved wording your organization sends again and again, with merge fields
      filled from your records.
  - name: Sending
    description: >-
      Everything here sends real email from your organization, and none of it
      can be unsent.
  - name: Message log
    description: >-
      The email your organization has sent or tried to send, and what became of
      each message.
  - name: Conversations
    description: >-
      The email conversations in your organization's inboxes, and the records
      each one is about.
  - name: Inboxes
    description: >-
      The addresses your organization receives email at, and who may read each
      one.
  - name: Contact preferences
    description: >-
      Whether a person has asked not to be emailed, altogether or about one kind
      of message.
  - name: Suppressions
    description: >-
      Addresses no email goes to, because mail to them bounced or their owner
      asked not to be written to.
  - name: Sender and deliverability
    description: Who your organization's email goes out as, and how much of it arrives.
  - name: Registry flags
    description: >-
      Safety flags your organization files about a person or an animal, which
      other organizations using RescueConsole can see once the flag is vetted
      and shared.
  - name: Registry reviews
    description: >-
      Another organization's vote on a flag it did not file, which decides
      whether the flag becomes active or disputed.
  - name: Registry search
    description: >-
      The lookup by microchip number that anybody may make, with or without a
      key.
paths:
  /api/events/events:
    get:
      tags:
        - Events
      summary: List events
      description: >-
        One page of your events, soonest first unless you say otherwise, each
        with how many animals it lists. Deleted events are never listed. Every
        occurrence of a series is its own event here. Needs **read** on Events.
      operationId: listEvents
      parameters:
        - name: status
          in: query
          schema:
            $ref: '#/components/schemas/EventStatus'
        - name: kind
          in: query
          schema:
            $ref: '#/components/schemas/EventKind'
        - name: is_public
          in: query
          description: >-
            `true` for events marked public, `false` for internal ones. Any
            other value is ignored.
          schema:
            type: string
            enum:
              - 'true'
              - 'false'
        - name: series_id
          in: query
          description: 'Every occurrence of one series: the `series_id` its events carry.'
          schema:
            type: string
        - name: from
          in: query
          description: Events starting on or after this day. Only the date is read.
          schema:
            type: string
            format: date
        - name: to
          in: query
          description: >-
            Events starting on or before the end of this day, UTC. Only the date
            is read.
          schema:
            type: string
            format: date
        - name: sort
          in: query
          schema:
            type: string
            enum:
              - starts_at
              - name
              - status
              - created_at
            default: starts_at
        - name: dir
          in: query
          schema:
            type: string
            enum:
              - asc
              - desc
            default: asc
        - name: limit
          in: query
          description: How many to return. 25 unless you say, 100 at most.
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 25
        - name: offset
          in: query
          description: How many to skip, for the next page.
          schema:
            type: integer
            minimum: 0
            default: 0
      responses:
        '200':
          description: One page of events.
          content:
            application/json:
              schema:
                type: object
                required:
                  - results
                  - limit
                  - offset
                  - has_more
                  - total
                properties:
                  results:
                    type: array
                    items:
                      allOf:
                        - $ref: '#/components/schemas/Event'
                        - type: object
                          properties:
                            animal_count:
                              type: integer
                              description: How many animals the event lists.
                  limit:
                    type: integer
                  offset:
                    type: integer
                  has_more:
                    type: boolean
                    description: Whether there is another page after this one.
                  total:
                    type: integer
                    description: How many events match in all.
        '400':
          $ref: '#/components/responses/Problem'
        '401':
          $ref: '#/components/responses/Problem'
        '403':
          $ref: '#/components/responses/Problem'
components:
  schemas:
    EventStatus:
      type: string
      enum:
        - draft
        - scheduled
        - cancelled
        - completed
    EventKind:
      type: string
      description: The same kinds Shifts uses. `events` is shown as Event.
      enum:
        - adoption
        - fundraiser
        - clinic
        - transport
        - training
        - meeting
        - events
        - other
    Event:
      allOf:
        - $ref: '#/components/schemas/EventFields'
        - type: object
          required:
            - id
            - name
            - starts_at
            - all_day
            - status
            - is_public
            - created_at
            - updated_at
          properties:
            id:
              type: string
            series_id:
              type:
                - string
                - 'null'
              description: >-
                The first occurrence's ID, on every occurrence of a series, the
                first included. Null for an event that stands alone.
            recurrence:
              oneOf:
                - $ref: '#/components/schemas/EventRecurrence'
                - type: 'null'
              description: >-
                The series' rule, on its first occurrence only. Null on every
                other event.
            created_at:
              type: string
              format: date-time
            updated_at:
              type: string
              format: date-time
    EventFields:
      type: object
      properties:
        name:
          type: string
          maxLength: 120
        summary:
          type:
            - string
            - 'null'
          maxLength: 300
          description: A line or two about it.
        description:
          type:
            - string
            - 'null'
          maxLength: 8000
        kind:
          oneOf:
            - $ref: '#/components/schemas/EventKind'
            - type: 'null'
        starts_at:
          type: string
          description: >-
            A date, YYYY-MM-DD, for an all-day event, or a timestamp for a timed
            one.
        ends_at:
          type:
            - string
            - 'null'
          description: >-
            A date or a timestamp, like `starts_at`. Refused if it is before a
            `starts_at` sent with it.
        all_day:
          type: boolean
          description: >-
            Whether it is an all-day event. Send bare dates in `starts_at` and
            `ends_at` for one.
        location_unit_id:
          type:
            - string
            - 'null'
          description: One of your own locations, when it is held at one.
        venue_organization_id:
          type:
            - string
            - 'null'
          description: >-
            One of your organizations, when it is held at one. Its name and
            address are copied into `venue_name` and `venue_address`. Clearing
            it leaves those as they are.
        venue_name:
          type:
            - string
            - 'null'
          maxLength: 200
        venue_address:
          type:
            - string
            - 'null'
          maxLength: 500
          description: The address, on one line.
        status:
          $ref: '#/components/schemas/EventStatus'
        is_public:
          type: boolean
          description: >-
            Whether your public site may show it. It shows an event that is
            public and scheduled or completed.
        registration_url:
          type:
            - string
            - 'null'
          description: >-
            Where people sign up, an http or https address. An address with no
            scheme is given https://.
        form_slug:
          type:
            - string
            - 'null'
          pattern: ^[a-z0-9](?:[a-z0-9-]{0,58}[a-z0-9])?$
          description: >-
            The address of one of your own published forms, for people to sign
            up with. Lowercase letters, digits and hyphens. Whether the form
            exists is not checked.
        shift_schedule_id:
          type:
            - string
            - 'null'
          description: >-
            The Shifts schedule that covers it. Adding volunteer coverage sets
            this for you.
    EventRecurrence:
      type: object
      description: >-
        How the event repeats. The occurrences are worked out once, when the
        series is created, up to 100 of them. With neither `until` nor `count`
        nor `never_ends`, the series runs a year ahead and stops there.
      required:
        - freq
      properties:
        freq:
          type: string
          enum:
            - daily
            - weekly
            - monthly
            - yearly
        interval:
          type: integer
          minimum: 1
          maximum: 52
          default: 1
          description: Every this many days, weeks, months or years.
        by_weekday:
          type: array
          minItems: 1
          items:
            type: integer
            minimum: 0
            maximum: 6
          description: >-
            Weekly only: the days, 0 for Sunday to 6 for Saturday. The start's
            own weekday when left out.
        monthly_by:
          type: string
          enum:
            - date
            - weekday
          description: >-
            Monthly only: the same date each month, or the same weekday, such as
            the second Tuesday. A month without that date or that weekday is
            skipped.
        until:
          type: string
          format: date
          description: >-
            The last day an occurrence may fall on. Not with `count` or
            `never_ends`.
        count:
          type: integer
          minimum: 2
          maximum: 100
          description: >-
            How many occurrences, the first included. Not with `until` or
            `never_ends`.
        never_ends:
          type: boolean
          description: >-
            The series has no end: more occurrences are added as time passes so
            it always reaches a year ahead, with the first occurrence's details,
            status and public setting. Not with `until` or `count`.
        tz:
          type: string
          description: >-
            The time zone the times are kept in, such as America/Los_Angeles, so
            a 10 o'clock event stays at 10 across a daylight saving change. UTC
            when left out.
  responses:
    Problem:
      description: What is wrong, in one sentence you can show to a person.
      content:
        application/json:
          schema:
            type: object
            required:
              - error
            properties:
              error:
                type: string
          example:
            error: house_trained must be 1, 0 or null (not assessed)
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
      description: An API key from Settings, API keys. It starts with rc_live_.

````