Look up people, groups, service rosters, songs, follow-up flows and giving in Elvanto.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Put a person into a people-flow step (e.g. start a new guest's follow-up), optionally assigning a step admin. Elvanto: peopleFlows/steps/addPerson.
The people flow step's id.
The person's id.
Person id of the step admin to assign them to.
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
Put a person into a people-flow step (e.g. start a new guest's follow-up), optionally assigning a step admin. Elvanto: peopleFlows/steps/addPerson.
| Argument | Type | Description |
|---|---|---|
| step_id* | string | The people flow step's id. |
| assign_to | string | Person id of the step admin to assign them to. |
| person_id* | string | The person's id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"step_id",
"person_id"
],
"properties": {
"step_id": {
"type": "string",
"minLength": 1,
"description": "The people flow step's id."
},
"assign_to": {
"type": "string",
"description": "Person id of the step admin to assign them to."
},
"person_id": {
"type": "string",
"minLength": 1,
"description": "The person's id."
}
}
}Add a person to a group, optionally as Leader or Assistant Leader. Undoable by removing them from the group in Elvanto. Elvanto: groups/addPerson.
| Argument | Type | Description |
|---|---|---|
| group_id* | string | The group's id. |
| position | string | Position in the group. Omit for a regular member. |
| person_id* | string | The person's id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"group_id",
"person_id"
],
"properties": {
"group_id": {
"type": "string",
"minLength": 1,
"description": "The group's id."
},
"position": {
"enum": [
"Leader",
"Assistant Leader"
],
"type": "string",
"description": "Position in the group. Omit for a regular member."
},
"person_id": {
"type": "string",
"minLength": 1,
"description": "The person's id."
}
}
}Create an event on a calendar, optionally repeating. Times are 24-hour GMT. Use status "draft" to stage it unpublished. Elvanto: calendar/events/create.
| Argument | Type | Description |
|---|---|---|
| end* | string | End, yyyy-mm-dd hh:mm:ss (24h, GMT). |
| name* | string | Event name. |
| color | string | Hex color, e.g. #FF0000. |
| start* | string | Start, yyyy-mm-dd hh:mm:ss (24h, GMT). |
| where | string | Where the event is held. |
| repeat | string | Make it a repeating event. |
| status | string | Visibility. Default public. |
| all_day | string | All-day event? Default no. |
| locations | any | Location(s) to add to the event. |
| organizer |
Add a new person to the church database (e.g. a first-time guest). Returns the new person id and family id. Does not create a login. Elvanto: people/create.
| Argument | Type | Description |
|---|---|---|
| string | Email address. | |
| phone | string | Phone number (non-digits are stripped by Elvanto). |
| fields | object | Extra fields to set, e.g. {"gender":"Male","birthday":"1989-04-23","marital_status":"Married","departments":["Music"],"custom_<field id>":"value"}. Use *_replace / *_remove variants (e.g. departments_replace) to replace or remove list values. access_permissions* are refused: this server never changes what a person may administer. |
| mobile | string | Mobile number (non-digits are stripped by Elvanto). |
| contact | string | Mark the person a contact (yes) or not (no). |
| archived | string | Mark the person archived (yes) or not (no). |
| lastname* | string | Last name. |
| family_id | any | Family id to join an existing family, or "new" to start a new family. |
Fetch one group by id, optionally with its members (fields=["people"]). Elvanto: groups/getInfo.
| Argument | Type | Description |
|---|---|---|
| id* | string | The group's id. |
| fields | array | Optional extra group fields: people (members and their position), categories, departments, demographics, locations. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"description": "The group's id."
},
"fields": {
"type": "array",
"items": {
"enum": [
"people",
"categories",
"departments",
"demographics",
"locations"
],
"type": "string"
},
"description": "Optional extra group fields: people (members and their position), categories, departments, demographics, locations."
}
}
}Fetch one person by id, optionally with extra fields (birthday, addresses, departments, locations, family, custom fields...). Elvanto: people/getInfo.
| Argument | Type | Description |
|---|---|---|
| id* | string | The person's id. |
| fields | array | Optional extra person fields to return, e.g. gender, birthday, anniversary, school_grade, marital_status, development_child, special_needs_child, security_code, receipt_name, giving_number, mailing_address, mailing_city, mailing_state, mailing_postcode, mailing_country, home_address, home_city, home_state, home_postcode, home_country, access_permissions, departments, service_types, demographics, locations, family, or a custom field as custom_<field id> (see elvanto_list_custom_fields). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"description": "The person's id."
},
"fields": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"description": "Optional extra person fields to return, e.g. gender, birthday, anniversary, school_grade, marital_status, development_child, special_needs_child, security_code, receipt_name, giving_number, mailing_address, mailing_city, mailing_state, mailing_postcode, mailing_country, home_address, home_city, home_state, home_postcode, home_country, access_permissions, departments, service_types, demographics, locations, family, or a custom field as custom_<field id> (see elvanto_list_custom_fields)."
}
}
}Fetch one service by id with optional detail: service/rehearsal times, plan (order of service), volunteers roster, songs, files, notes. Elvanto: services/getInfo.
| Argument | Type | Description |
|---|---|---|
| id* | string | The service's id. |
| fields | array | Optional extra service fields: series_name, service_times, rehearsal_times, other_times, plans (the order of service), volunteers (the roster: who is serving in which position, and whether confirmed), songs, files, notes, picture. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"description": "The service's id."
},
"fields": {
"type": "array",
"items": {
"enum": [
"series_name",
"service_times",
"rehearsal_times",
"other_times",
"plans",
"volunteers",
"songs",
"files",
"notes",
"picture"
],
"type": "string"
},
"description": "Optional extra service fields: series_name, service_times, rehearsal_times, other_times, plans (the order of service), volunteers (the roster: who is serving in which position, and whether confirmed), songs, files, notes, picture."
}
}
}List calendar events between two dates, optionally for specific calendars (use "services" as a calendar to include services). Elvanto: calendar/events/getAll.
| Argument | Type | Description |
|---|---|---|
| end* | string | End date (yyyy-mm-dd). |
| page | integer | Results page to retrieve (1-based). Default 1. |
| start* | string | Start date (yyyy-mm-dd). |
| fields | array | Optional extra event fields, e.g. ["locations"]. |
| calendar | any | Calendar id(s) to read from; "services" for services. |
| page_size | integer | Records per page, 1-1000. Default 100 here (Elvanto's own default is 1000). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"start",
"end"
],
"properties": {
"end": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "End date (yyyy-mm-dd)."
},
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Results page to retrieve (1-based). Default 1."
},
"start": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Start date (yyyy-mm-dd)."
},
"fields": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"description": "Optional extra event fields, e.g. [\"locations\"]."
},
"calendar": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1
}
],
"description": "Calendar id(s) to read from; \"services\" for services."
},
"page_size": {
"type": "integer",
"maximum": 1000,
"minimum": 1,
"description": "Records per page, 1-1000. Default 100 here (Elvanto's own default is 1000)."
}
}
}List the church's calendars with their ids. Elvanto: calendar/getAll.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}List the church's custom person fields (id, name, type and allowed values). Use the id as custom_<id> in fields / search. Elvanto: people/customFields/getAll.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}List giving / chart-of-accounts categories (funds) with ids; status 1 = active, 0 = archived. Elvanto: financial/categories/getAll.
| Argument | Type | Description |
|---|---|---|
| page | integer | Results page to retrieve (1-based). Default 1. |
| page_size | integer | Records per page, 1-1000. Default 100 here (Elvanto's own default is 1000). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Results page to retrieve (1-based). Default 1."
},
"page_size": {
"type": "integer",
"maximum": 1000,
"minimum": 1,
"description": "Records per page, 1-1000. Default 100 here (Elvanto's own default is 1000)."
}
}
}List small groups / ministries with meeting day, time, place and frequency; add fields=["people"] to include members and leaders. Elvanto: groups/getAll.
| Argument | Type | Description |
|---|---|---|
| page | integer | Results page to retrieve (1-based). Default 1. |
| fields | array | Optional extra group fields: people (members and their position), categories, departments, demographics, locations. |
| page_size | integer | Records per page, 1-1000. Default 100 here (Elvanto's own default is 1000). |
| suspended | string | yes = only suspended groups, no = exclude them. Default all. |
| category_id | any | Only groups in this group category id (or any of these ids). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Results page to retrieve (1-based). Default 1."
},
"fields": {
"type": "array",
"items": {
"enum": [
"people",
"categories",
"departments",
"demographics",
"locations"
],
"type": "string"
},
"description": "Optional extra group fields: people (members and their position), categories, departments, demographics, locations."
},
"page_size": {
"type": "integer",
"maximum": 1000,
"minimum": 1,
"description": "Records per page, 1-1000. Default 100 here (Elvanto's own default is 1000)."
},
"suspended": {
"enum": [
"yes",
"no"
],
"type": "string",
"description": "yes = only suspended groups, no = exclude them. Default all."
},
"category_id": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1
}
],
"description": "Only groups in this group category id (or any of these ids)."
}
}
}List people in the church database, optionally filtered by category and by suspended / contact / archived status. Paginated (the response carries page, per_page, total). Elvanto: people/getAll.
| Argument | Type | Description |
|---|---|---|
| page | integer | Results page to retrieve (1-based). Default 1. |
| fields | array | Optional extra person fields to return, e.g. gender, birthday, anniversary, school_grade, marital_status, development_child, special_needs_child, security_code, receipt_name, giving_number, mailing_address, mailing_city, mailing_state, mailing_postcode, mailing_country, home_address, home_city, home_state, home_postcode, home_country, access_permissions, departments, service_types, demographics, locations, family, or a custom field as custom_<field id> (see elvanto_list_custom_fields). |
| contact | string | yes = only contacts, no = exclude contacts. Default all. |
| archived | string | yes = only archived people, no = exclude them. Default all. |
| page_size | integer | Records per page, 1-1000. Default 100 here (Elvanto's own default is 1000). |
| suspended | string | yes = only suspended people, no = exclude them. Default all. |
| category_id |
List the people categories (e.g. New People, Church Members, Inactive) with their ids. Elvanto: people/categories/getAll.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}List the people currently in one people-flow step, with status, due date and assigned admin — e.g. who still needs a follow-up call. Not paginated. Elvanto: peopleFlows/steps/people.
| Argument | Type | Description |
|---|---|---|
| status | string | Only people with this status in the step. |
| step_id* | string | The people flow step's id. |
| assigned | string | Only people assigned to this admin (person id), or "unassigned". |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"step_id"
],
"properties": {
"status": {
"enum": [
"complete",
"notstarted",
"pending",
"inprogress"
],
"type": "string",
"description": "Only people with this status in the step."
},
"step_id": {
"type": "string",
"minLength": 1,
"description": "The people flow step's id."
},
"assigned": {
"type": "string",
"description": "Only people assigned to this admin (person id), or \"unassigned\"."
}
}
}List the steps of one people flow with descriptions, instructions, due rules and admins. Elvanto: peopleFlows/steps/getAll.
| Argument | Type | Description |
|---|---|---|
| flow_id* | string | The people flow's id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"flow_id"
],
"properties": {
"flow_id": {
"type": "string",
"minLength": 1,
"description": "The people flow's id."
}
}
}List people flows — the church's follow-up pipelines (e.g. First Time Guest Follow Up) — with their steps and admins. Elvanto: peopleFlows/getAll.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}List services (upcoming by default). Add fields such as volunteers (the roster), plans (order of service) and songs to answer 'who is serving Sunday?' or 'what are we singing?'. Elvanto: services/getAll.
| Argument | Type | Description |
|---|---|---|
| all | string | yes = include past services too. Ignored when start/end are given. |
| end | string | Only services on/before this date (yyyy-mm-dd). |
| page | integer | Results page to retrieve (1-based). Default 1. |
| start | string | Only services on/after this date (yyyy-mm-dd). |
| fields | array | Optional extra service fields: series_name, service_times, rehearsal_times, other_times, plans (the order of service), volunteers (the roster: who is serving in which position, and whether confirmed), songs, files, notes, picture. |
| status | string | Only published or only draft services. Default both. |
| page_size | integer | Records per page, 1-1000. Default 100 here (Elvanto's own default is 1000). |
| service_types | any | Only these service type id(s). |
List the arrangements of one song — sequence, BPM, keys, lyrics and chord chart (optionally transposed). Elvanto: songs/arrangements/getAll.
| Argument | Type | Description |
|---|---|---|
| page | integer | Results page to retrieve (1-based). Default 1. |
| files | boolean | Also return attached files. |
| song_id* | string | The song's id (from elvanto_list_songs). |
| page_size | integer | Records per page, 1-1000. Default 100 here (Elvanto's own default is 1000). |
| chord_chart_key | string | Transpose the chord chart into this key, e.g. F#. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"song_id"
],
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Results page to retrieve (1-based). Default 1."
},
"files": {
"type": "boolean",
"description": "Also return attached files."
},
"song_id": {
"type": "string",
"minLength": 1,
"description": "The song's id (from elvanto_list_songs)."
},
"page_size": {
"type": "integer",
"maximum": 1000,
"minimum": 1,
"description": "Records per page, 1-1000. Default 100 here (Elvanto's own default is 1000)."
},
"chord_chart_key": {
"type": "string",
"description": "Transpose the chord chart into this key, e.g. F#."
}
}
}List or search the song library by title, artist or lyrics (with CCLI number, categories and locations). Elvanto: songs/getAll.
| Argument | Type | Description |
|---|---|---|
| page | integer | Results page to retrieve (1-based). Default 1. |
| files | boolean | Also return attached files. |
| title | string | Only songs whose title matches. |
| artist | string | Only songs by this artist. |
| lyrics | string | Only songs whose lyrics contain this text. |
| page_size | integer | Records per page, 1-1000. Default 100 here (Elvanto's own default is 1000). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Results page to retrieve (1-based). Default 1."
},
"files": {
"type": "boolean",
"description": "Also return attached files."
},
"title": {
"type": "string",
"description": "Only songs whose title matches."
},
"artist": {
"type": "string",
"description": "Only songs by this artist."
},
"lyrics": {
"type": "string",
"description": "Only songs whose lyrics contain this text."
},
"page_size": {
"type": "integer",
"maximum": 1000,
"minimum": 1,
"description": "Records per page, 1-1000. Default 100 here (Elvanto's own default is 1000)."
}
}
}List giving transactions between two dates, optionally for one fund — donor, date, method, batch and per-fund amounts. Read-only: this server never writes financial records. Elvanto: financial/transactions/getAll.
| Argument | Type | Description |
|---|---|---|
| end* | string | End date (yyyy-mm-dd). |
| page | integer | Results page to retrieve (1-based). Default 1. |
| start* | string | Start date (yyyy-mm-dd). |
| page_size | integer | Records per page, 1-1000. Default 100 here (Elvanto's own default is 1000). |
| category_id | string | Only this financial category (fund) id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"start",
"end"
],
"properties": {
"end": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "End date (yyyy-mm-dd)."
},
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Results page to retrieve (1-based). Default 1."
},
"start": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Start date (yyyy-mm-dd)."
},
"page_size": {
"type": "integer",
"maximum": 1000,
"minimum": 1,
"description": "Records per page, 1-1000. Default 100 here (Elvanto's own default is 1000)."
},
"category_id": {
"type": "string",
"description": "Only this financial category (fund) id."
}
}
}Find people matching field values, e.g. {"email":"[email protected]"} or {"lastname":"Smith","volunteer":"yes"}. Searchable keys: firstname, preferred_name, lastname, email, phone, mobile, category_id, archived, contact, deceased, volunteer, gender, birthday, anniversary, marital_status, school_grade, security_code, receipt_name, giving_number, groups, date_added / date_modified / last_login (UTC, yyyy-mm-dd or yyyy-mm-dd hh:mm:ss; matched as on-or-after), and custom_<field id>. Use only one of archived / contact / deceased at a time. Elvanto: people/search.
| Argument | Type | Description |
|---|---|---|
| page | integer | Results page to retrieve (1-based). Default 1. |
| fields | array | Optional extra person fields to return, e.g. gender, birthday, anniversary, school_grade, marital_status, development_child, special_needs_child, security_code, receipt_name, giving_number, mailing_address, mailing_city, mailing_state, mailing_postcode, mailing_country, home_address, home_city, home_state, home_postcode, home_country, access_permissions, departments, service_types, demographics, locations, family, or a custom field as custom_<field id> (see elvanto_list_custom_fields). |
| search* | object | Field → value pairs to match. |
| page_size | integer | Records per page, 1-1000. Default 100 here (Elvanto's own default is 1000). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"search"
],
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Results page to retrieve (1-based). Default 1."
},
"fields": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"description": "Optional extra person fields to return, e.g. gender, birthday, anniversary, school_grade, marital_status, development_child, special_needs_child, security_code, receipt_name, giving_number, mailing_address, mailing_city, mailing_state, mailing_postcode, mailing_country, home_address, home_city, home_state, home_postcode, home_country, access_permissions, departments, service_types, demographics, locations, family, or a custom field as custom_<field id> (see elvanto_list_custom_fields)."
},
"search": {
"type": "object",
"description": "Field → value pairs to match.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "array",
"items": {
"type": "string"
}
}
]
}
},
"page_size": {
"type": "integer",
"maximum": 1000,
"minimum": 1,
"description": "Records per page, 1-1000. Default 100 here (Elvanto's own default is 1000)."
}
}
}Edit an existing person's details — name, contact info, category, flags, family, or extra fields. Only the fields you pass change. Cannot touch username, password or login status. Elvanto: people/edit.
| Argument | Type | Description |
|---|---|---|
| id* | string | The person's id. |
| string | Email address. | |
| phone | string | Phone number (non-digits are stripped by Elvanto). |
| fields | object | Extra fields to set, e.g. {"gender":"Male","birthday":"1989-04-23","marital_status":"Married","departments":["Music"],"custom_<field id>":"value"}. Use *_replace / *_remove variants (e.g. departments_replace) to replace or remove list values. access_permissions* are refused: this server never changes what a person may administer. |
| mobile | string | Mobile number (non-digits are stripped by Elvanto). |
| contact | string | Mark the person a contact (yes) or not (no). |
| archived | string | Mark the person archived (yes) or not (no). |
| lastname | string |
| string |
| Person id of the organizer. |
| repeat_on | string | Weekly/fortnightly: monday..sunday. Monthly: weekday or monthday. |
| calendar_id* | string | Calendar id (see elvanto_list_calendars). |
| description | string | Description (basic HTML allowed). |
| register_url | string | Registration website URL. |
| who_can_attend | string | "all" to let anyone attend; omit for invite-only. |
| repeat_end_date | string | Stop repeating at, yyyy-mm-dd hh:mm:ss (GMT). |
| show_guest_list | string | Show the guest list on the event page? Default no. |
| repeat_frequency | integer | How often to repeat. Required for daily, monthly, yearly. |
| repeat_occurrences | integer | Number of repeats. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"name",
"calendar_id",
"start",
"end",
"organizer"
],
"properties": {
"end": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}$",
"description": "End, yyyy-mm-dd hh:mm:ss (24h, GMT)."
},
"name": {
"type": "string",
"minLength": 1,
"description": "Event name."
},
"color": {
"type": "string",
"pattern": "^#[0-9A-Fa-f]{6}$",
"description": "Hex color, e.g. #FF0000."
},
"start": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}$",
"description": "Start, yyyy-mm-dd hh:mm:ss (24h, GMT)."
},
"where": {
"type": "string",
"description": "Where the event is held."
},
"repeat": {
"enum": [
"daily",
"weekdays",
"mon_wed_fri",
"tue_thu",
"weekly",
"fortnightly",
"monthly",
"yearly"
],
"type": "string",
"description": "Make it a repeating event."
},
"status": {
"enum": [
"public",
"private",
"draft"
],
"type": "string",
"description": "Visibility. Default public."
},
"all_day": {
"enum": [
"yes",
"no"
],
"type": "string",
"description": "All-day event? Default no."
},
"locations": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1
}
],
"description": "Location(s) to add to the event."
},
"organizer": {
"type": "string",
"minLength": 1,
"description": "Person id of the organizer."
},
"repeat_on": {
"type": "string",
"description": "Weekly/fortnightly: monday..sunday. Monthly: weekday or monthday."
},
"calendar_id": {
"type": "string",
"minLength": 1,
"description": "Calendar id (see elvanto_list_calendars)."
},
"description": {
"type": "string",
"description": "Description (basic HTML allowed)."
},
"register_url": {
"type": "string",
"format": "uri",
"description": "Registration website URL."
},
"who_can_attend": {
"type": "string",
"description": "\"all\" to let anyone attend; omit for invite-only."
},
"repeat_end_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}$",
"description": "Stop repeating at, yyyy-mm-dd hh:mm:ss (GMT)."
},
"show_guest_list": {
"enum": [
"yes",
"no"
],
"type": "string",
"description": "Show the guest list on the event page? Default no."
},
"repeat_frequency": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "How often to repeat. Required for daily, monthly, yearly."
},
"repeat_occurrences": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Number of repeats."
}
}
}| firstname* | string | First name. |
| volunteer | string | Mark the person a volunteer (yes) or not (no). |
| category_id | string | People category id (see elvanto_list_people_categories). |
| preferred_name | string | Preferred name (nickname). |
| family_relationship | string | Relationship within the family. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"firstname",
"lastname"
],
"properties": {
"email": {
"type": "string",
"description": "Email address."
},
"phone": {
"type": "string",
"description": "Phone number (non-digits are stripped by Elvanto)."
},
"fields": {
"type": "object",
"description": "Extra fields to set, e.g. {\"gender\":\"Male\",\"birthday\":\"1989-04-23\",\"marital_status\":\"Married\",\"departments\":[\"Music\"],\"custom_<field id>\":\"value\"}. Use *_replace / *_remove variants (e.g. departments_replace) to replace or remove list values. access_permissions* are refused: this server never changes what a person may administer.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"anyOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
]
}
},
"mobile": {
"type": "string",
"description": "Mobile number (non-digits are stripped by Elvanto)."
},
"contact": {
"enum": [
"yes",
"no"
],
"type": "string",
"description": "Mark the person a contact (yes) or not (no)."
},
"archived": {
"enum": [
"yes",
"no"
],
"type": "string",
"description": "Mark the person archived (yes) or not (no)."
},
"lastname": {
"type": "string",
"minLength": 1,
"description": "Last name."
},
"family_id": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
{
"type": "string",
"const": "new"
}
],
"description": "Family id to join an existing family, or \"new\" to start a new family."
},
"firstname": {
"type": "string",
"minLength": 1,
"description": "First name."
},
"volunteer": {
"enum": [
"yes",
"no"
],
"type": "string",
"description": "Mark the person a volunteer (yes) or not (no)."
},
"category_id": {
"type": "string",
"description": "People category id (see elvanto_list_people_categories)."
},
"preferred_name": {
"type": "string",
"description": "Preferred name (nickname)."
},
"family_relationship": {
"enum": [
"Primary Contact",
"Spouse",
"Partner",
"Child",
"Sibling",
"Grandfather",
"Grandmother",
"Other"
],
"type": "string",
"description": "Relationship within the family."
}
}
}| any |
| Only people in this people category id (or any of these ids). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Results page to retrieve (1-based). Default 1."
},
"fields": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"description": "Optional extra person fields to return, e.g. gender, birthday, anniversary, school_grade, marital_status, development_child, special_needs_child, security_code, receipt_name, giving_number, mailing_address, mailing_city, mailing_state, mailing_postcode, mailing_country, home_address, home_city, home_state, home_postcode, home_country, access_permissions, departments, service_types, demographics, locations, family, or a custom field as custom_<field id> (see elvanto_list_custom_fields)."
},
"contact": {
"enum": [
"yes",
"no"
],
"type": "string",
"description": "yes = only contacts, no = exclude contacts. Default all."
},
"archived": {
"enum": [
"yes",
"no"
],
"type": "string",
"description": "yes = only archived people, no = exclude them. Default all."
},
"page_size": {
"type": "integer",
"maximum": 1000,
"minimum": 1,
"description": "Records per page, 1-1000. Default 100 here (Elvanto's own default is 1000)."
},
"suspended": {
"enum": [
"yes",
"no"
],
"type": "string",
"description": "yes = only suspended people, no = exclude them. Default all."
},
"category_id": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1
}
],
"description": "Only people in this people category id (or any of these ids)."
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"all": {
"enum": [
"yes",
"no"
],
"type": "string",
"description": "yes = include past services too. Ignored when start/end are given."
},
"end": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Only services on/before this date (yyyy-mm-dd)."
},
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Results page to retrieve (1-based). Default 1."
},
"start": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Only services on/after this date (yyyy-mm-dd)."
},
"fields": {
"type": "array",
"items": {
"enum": [
"series_name",
"service_times",
"rehearsal_times",
"other_times",
"plans",
"volunteers",
"songs",
"files",
"notes",
"picture"
],
"type": "string"
},
"description": "Optional extra service fields: series_name, service_times, rehearsal_times, other_times, plans (the order of service), volunteers (the roster: who is serving in which position, and whether confirmed), songs, files, notes, picture."
},
"status": {
"enum": [
"published",
"draft"
],
"type": "string",
"description": "Only published or only draft services. Default both."
},
"page_size": {
"type": "integer",
"maximum": 1000,
"minimum": 1,
"description": "Records per page, 1-1000. Default 100 here (Elvanto's own default is 1000)."
},
"service_types": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1
}
],
"description": "Only these service type id(s)."
}
}
}| Last name. |
| family_id | any | Family id to join an existing family, or "new" to start a new family. |
| firstname | string | First name. |
| volunteer | string | Mark the person a volunteer (yes) or not (no). |
| category_id | string | People category id (see elvanto_list_people_categories). |
| preferred_name | string | Preferred name (nickname). |
| family_relationship | string | Relationship within the family. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"description": "The person's id."
},
"email": {
"type": "string",
"description": "Email address."
},
"phone": {
"type": "string",
"description": "Phone number (non-digits are stripped by Elvanto)."
},
"fields": {
"type": "object",
"description": "Extra fields to set, e.g. {\"gender\":\"Male\",\"birthday\":\"1989-04-23\",\"marital_status\":\"Married\",\"departments\":[\"Music\"],\"custom_<field id>\":\"value\"}. Use *_replace / *_remove variants (e.g. departments_replace) to replace or remove list values. access_permissions* are refused: this server never changes what a person may administer.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"anyOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
]
}
},
"mobile": {
"type": "string",
"description": "Mobile number (non-digits are stripped by Elvanto)."
},
"contact": {
"enum": [
"yes",
"no"
],
"type": "string",
"description": "Mark the person a contact (yes) or not (no)."
},
"archived": {
"enum": [
"yes",
"no"
],
"type": "string",
"description": "Mark the person archived (yes) or not (no)."
},
"lastname": {
"type": "string",
"minLength": 1,
"description": "Last name."
},
"family_id": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
{
"type": "string",
"const": "new"
}
],
"description": "Family id to join an existing family, or \"new\" to start a new family."
},
"firstname": {
"type": "string",
"minLength": 1,
"description": "First name."
},
"volunteer": {
"enum": [
"yes",
"no"
],
"type": "string",
"description": "Mark the person a volunteer (yes) or not (no)."
},
"category_id": {
"type": "string",
"description": "People category id (see elvanto_list_people_categories)."
},
"preferred_name": {
"type": "string",
"description": "Preferred name (nickname)."
},
"family_relationship": {
"enum": [
"Primary Contact",
"Spouse",
"Partner",
"Child",
"Sibling",
"Grandfather",
"Grandmother",
"Other"
],
"type": "string",
"description": "Relationship within the family."
}
}
}