elvanto services¶
Services (calendar event) commands.
Subcommands¶
| Command | Purpose |
|---|---|
services list |
List services in a date range (defaults to the last 6 months) |
services people |
Show volunteers assigned to a specific service |
services song-usage |
Analyse how often each song has been used |
services list¶
Lists services in a date range. By default, the range is the last 6 months ending today (local time).
Text output:
Columns: id | date | name. The date is formatted in the local time zone.
Flags¶
| Flag | Description |
|---|---|
--from <YYYY-MM-DD> |
Inclusive start date. Defaults to 6 months before --to. |
--to <YYYY-MM-DD> |
Inclusive end date. Defaults to today (local time). |
--id <MODE> |
short (default), long, or hidden. See Lookups. |
--json |
Emit normalized JSON. |
Examples¶
# Last 6 months (default)
elvanto services list
# A specific quarter
elvanto services list --from 2026-01-01 --to 2026-03-31
# Just the upcoming month
elvanto services list --from "$(date -I)" --to "$(date -I -d '+1 month')"
services people¶
elvanto services people <ID> [--hide-unfilled] [--in ID]...
[--email] [--id short|long|hidden] [--json]
Shows the people assigned to a specific service, broken down by department,
sub-department, and position. The <ID> is the service id (short or full)
from services list.
Text output (without --email):
1eb01e76 | Service Leaders | Service Leader | Alice Brown | confirmed
1eb01e76 | Vocals | Worship Leader | Alice Brown | confirmed
deadbeef | Vocals | BV | Bob Carter | confirmed
abcd1234 | Instruments | Acoustic Guitar | Carol Davies | confirmed
- | Instruments | Bass | (unfilled) | -
feedcafe | Production | FOH | Dave Edwards | confirmed
Columns: person_id | sub_department | position | name | status. Unfilled
positions render the id column as - and (unfilled) in the name column —
pass --hide-unfilled to drop them, or --id hidden to drop the id column
entirely.
Flags¶
| Flag | Description |
|---|---|
--hide-unfilled |
Omit positions that have no person assigned. |
--in <ID\|NAME\|PATH> |
Keep rows whose department, sub-department, or position matches. Accepts the same id/name/path forms as people list; the resolver only sees nodes on this service. |
--email |
Include each person's primary email as an extra column. |
--id <MODE> |
short (default), long, or hidden for the person-id column. See Lookups. |
--json |
Emit normalized JSON. Includes ids at every level. |
Examples¶
# Full team for one service
elvanto services people 02b06b47
# Worship team only, hide gaps, include emails — by name
elvanto services people 02b06b47 \
--in "Service Leaders" --in Vocals \
--hide-unfilled --email
# Same thing by id (better for .env defaults)
elvanto services people 02b06b47 \
--in bf40484c --in 03fa8320 \
--hide-unfilled --email
JSON output:
[
{
"department": "Music Team",
"department_id": "d-1-...",
"sub_department": "Vocals",
"sub_department_id": "sd-1-...",
"position": "Worship Leader",
"position_id": "p-wl-...",
"person_id": "1eb01e76-...",
"name": "Alice Brown",
"email": "alice@example.com"
}
]
Unfilled positions appear in JSON with person_id and name omitted (when
--hide-unfilled is not set).
services song-usage¶
Counts how many times each song has been used across services, and lists those sung N or fewer times (default: 2). Includes who led each time. Useful for finding songs that could use more rotation.
Text output (no --json mode):
Songs sung ≤ 2 times in the last 12 months:
"Lord I Need You" by Christy Nockels, ... — sung once
2025-11-22 — Led by Lara Coates
"Mighty To Save" by Ben Fielding, Reuben Morgan — sung once
2026-05-23 — Led by Chris Beaven
"O Come To The Altar" by Chris Brown, ... — sung twice
2025-11-29 — Led by Chris Beaven
2026-02-21 — Led by Chris Beaven
Flags¶
| Flag | Description |
|---|---|
--from <YYYY-MM-DD> |
Inclusive start date. Defaults to 12 months before --to. |
--to <YYYY-MM-DD> |
Inclusive end date. Defaults to today. |
--max-uses <N> |
Only show songs used ≤ N times (default: 2). |
--json |
Emit all song usage as JSON (ignores --max-uses / --one-leader). |
--one-leader |
Also show songs used more than N times if always led by the same person. |
Examples¶
# Songs used 1-2 times in the last 12 months
elvanto services song-usage
# Full usage history as JSON (for scripts)
elvanto services song-usage --json
# Songs used ≤ 3 times since the start of 2026
elvanto services song-usage --from 2026-01-01 --max-uses 3
# Also include songs dominated by one leader
elvanto services song-usage --one-leader