Leave

Listing leave requests

# All approved leaves for a period
leaves = client.leave.list(
    from_date="01-Apr-2026",
    to_date="30-Apr-2026",
    approval_status="Approved",
)

# Pending requests only (v2 endpoint)
pending = client.leave.get_pending(
    from_date="01-Apr-2026",
    to_date="30-Apr-2026",
)

# Both approved and pending (useful to exclude from attendance)
active = client.leave.get_approved_and_pending(
    from_date="01-Apr-2026",
    to_date="30-Apr-2026",
)

Leave balance

balance = client.leave.get_balance()
for leave_type, info in balance.items():
    print(leave_type, "→ available:", info.get("balance"))

Applying for leave

client.leave.apply(
    leave_type_id="413124000000645719",
    from_date="04-May-2026",
    to_date="05-May-2026",
    reason="Annual leave",
)

Approving / rejecting

client.leave.approve(
    record_id="439215000012345678",
    status="Approved",
    comments="Approved. Enjoy!",
)

# Reject
client.leave.approve(
    record_id="439215000012345679",
    status="Rejected",
    comments="Conflicting project deadline.",
)

Cancelling

client.leave.cancel(
    record_id="439215000012345678",
    reason="Plans changed",
)