Practice management for advocates

VakilOS: a practice system built around the next date

An advocate's day is set by a cause list they do not control, and one missed next date can hurt a client.

VakilOS Today screen showing hearings today, a warning that a past hearing has no outcome recorded, a citation review alert, fees overdue and the day's court board
Built for
Advocates and small chambers in India
Core modules
Diary, cases, clients, dues, notices, alerts and reminders
Find anything
Ctrl+K search across cases, clients and CNR numbers

The problem in the real world

A litigating advocate's schedule is driven by courts. Hearings move, matters are adjourned, and the next date is whatever the order says. It lives in a paper diary, a clerk's memory and a phone calendar that rarely agree.

Fees are the other half. A client may owe an instalment on one matter and a retainer on another, and the advocate carries the whole picture in their head. Chasing a fee feels awkward, so it is put off.

Reminding is the third chore. Clients need a nudge before a hearing and another about the fee, ideally in the language they are comfortable in, and the advocate needs a warning before a deadline. Done by hand it is a list that nobody has time to keep.

The hard part

The court diary as the source of truth

The rule: A hearing is not finished until its outcome and next date are recorded, and a hearing with neither must be impossible to ignore.

Edge cases

  • A hearing happens, but nobody records what the court ordered.
  • A matter is adjourned and the next date has to roll forward into the diary.
  • Several hearings fall on the same day in different courts, each with its own item number and time.

How it is handled

Today, Diary and the case record all read from the same hearings. A hearing in the past with no next date raises a banner on Today ("Record the next date so nothing drops off your diary") and a list of past appearances awaiting an outcome. Recording an outcome is one click from the board. In the demo we saw outcomes and dates entered by the advocate. We did not see dates pulled automatically from eCourts, and we do not claim that.

Life of a hearing

  1. Scheduled

    Date, time, court and item number

  2. On today's board

    Listed with Record outcome

  3. Awaiting outcome

    Flagged until someone records it

  4. Outcome recorded

    What the court ordered

  5. Next date set

    A new hearing enters the diary

  • Exit: Matter closedCases move through Active, Hearing Scheduled, Judgment Awaited, Won and Closed.
VakilOS diary in month view with hearings plotted on their dates and the day's hearings listed on the right with court and item number
From the product's demo workspace. Names and figures are sample data.

One record per matter, findable by any identifier

The rule: Whatever number the advocate remembers, one search should open the right case.

Edge cases

  • Lawyers refer to a matter by case number, by client name or by the 16-character CNR the courts assign.
  • The same client may have several matters, each with different courts and fees.
  • Opposite party, presiding officer and court all belong to the matter and have to travel with it.

How it is handled

Each case stores its case number and its CNR next to the court, presiding officer, opposite party, filing date, next date, client and fees. Ctrl+K searches cases, clients and CNR numbers from anywhere. We did not review how duplicates are prevented, so this page makes no claim about it.

What a case record holds

  • Case number

    Example from the demo
    CRL/204/2024
    Used for
    How the court and the advocate refer to it
  • CNR

    Example from the demo
    HRRT010012342024
    Used for
    The court-assigned national identifier
  • Court and officer

    Example from the demo
    Rohtak District Court
    Used for
    Where to appear and before whom
  • Next date

    Example from the demo
    07 Oct 2026, 10:30, item 14
    Used for
    Feeds Today and the Diary
  • Client and fees

    Example from the demo
    Agreed, received, overdue, next due
    Used for
    Links the matter to money

Case details are sample data from the demo workspace.

Fees and dues, matter by matter and client by client

The rule: For every matter the advocate should know what was agreed, what has come in and what is late, without opening a spreadsheet.

Edge cases

  • A fee is paid in instalments, or only part of an instalment is paid.
  • The advocate is looking at one month, but older unpaid fees still count as overdue.
  • Several clients owe money and the advocate needs to know who to call first.

How it is handled

Each due has a state: upcoming, due today, overdue, part paid, paid or waived. A part-paid instalment keeps its balance (₹50,000 of ₹75,000 in the demo). The period filter changes what is expected and received, while overdue always counts every unpaid fee whatever its date, and the screen says so. Overdue money is grouped by age and ranked by client, and every row can send a WhatsApp reminder. Reminder counts are kept per due.

Life of a fee

  1. Upcoming

    Agreed, not yet due

  2. Due today

    Shown on the Today screen

  3. Overdue

    Counted by days late and age band

  4. Part paid

    Balance carried forward

  5. Paid

    Recorded against the matter

  • Exit: WaivedA due can be closed without payment instead of staying overdue forever.
VakilOS dues screen with expected, received and overdue totals, a table of overdue fees with mark-paid and WhatsApp reminder buttons, and an ageing breakdown
From the product's demo workspace. Names and figures are sample data.

Reminders and alerts that run without a list

The rule: The advocate is told about fees, hearings and deadlines early enough to act, and a client is nudged in the language they prefer, without anyone keeping track by hand.

Edge cases

  • A fee is about to fall due and nobody has chased it.
  • A client reads Hindi more comfortably than English.
  • A hearing or a filing deadline is close, but the advocate is in court and not looking at the app.

How it is handled

The Alerts and email settings let the advocate choose what the app watches. A daily email lists fees due today and overdue, with client phone numbers, and a warning can fire on the day or 1, 3 or 7 days before a fee falls due. In-app alerts cover hearings today and tomorrow, deadlines within 3 days and new cases, and an optional desktop pop-up appears once a day. Each alert carries its next step, such as Mark paid, Part payment or New date, so it can be cleared where it appears. For clients, a Remind button opens a WhatsApp message in the client's preferred language, Hindi or English, and every due counts how many times it has been reminded. Two limits to be plain about: the WhatsApp message goes out on the advocate's tap rather than on a schedule, and the daily email needs the email service configured on the server, which was not set up in the demo, so we did not see an email delivered.

What the app watches, and what it offers

  • Fee falling due

    What the advocate sees
    Alert on the day, or 1, 3 or 7 days before
    Next step on offer
    Mark paid, Part payment or New date
  • Fee overdue

    What the advocate sees
    Daily email and the Collect panel, with days late
    Next step on offer
    WhatsApp reminder, and the reminded count rises
  • Hearing today or tomorrow

    What the advocate sees
    In-app alert, and the Diary counts client reminders pending
    Next step on offer
    Call, or WhatsApp in Hindi or English
  • Deadline within 3 days

    What the advocate sees
    In-app alert, plus the Deadlines panel on Today
    Next step on offer
    Open the matter and act
  • Past hearing with no next date

    What the advocate sees
    Banner and an Awaiting outcome list
    Next step on offer
    Record the outcome and the next date

Alert timings come from the Alerts and email settings in the demo workspace. Settings are saved on the device.

VakilOS Today screen with the day's court board and its Record outcome buttons, an Awaiting outcome list, and a Collect panel of overdue fees each with Mark paid and WhatsApp reminder buttons
From the product's demo workspace. Names and figures are sample data.

How it fits together

  • Advocate and clerk entries

    Hearings, outcomes, notes, fees

  • Client records

    Contacts, matters, agreed fees

  • Alert settings

    What to watch and how early

VakilOS

  • Diary
  • Cases and CNR
  • Fees and dues
  • Alerts and reminders
  • Today board and day list

    Printable list for court

  • WhatsApp reminders

    Hindi or English, per client

  • Daily fee email and in-app alerts

    Fees, hearings and deadlines

What this means for your business

  • Dates that move

    A diary where every item must end in a recorded outcome and a next date is the same problem as production schedules, service visits and delivery slots that slip. Flagging what has no next step is the feature.

  • Money per job, with part payments

    Agreed, received, overdue and next due per matter, with ageing bands, maps directly to project billing, milestone invoices and customer dues in an ERP, for India and for UAE contracts.

  • Reminders at the right time, in the right language

    Lead times the user sets, a daily digest, and one-tap messages in the customer's preferred language apply to payment chasers, delivery notices and service-visit confirmations in any ERP or CRM. For UAE customers that is where Arabic and English messaging matters.

Tech notes
  • Observed from the running product: a Next.js application on Vercel, with a light and dark theme, a Ctrl+K search, a printable day list and WhatsApp reminder links.
  • Alert preferences are saved on the device, and the daily fee email depends on an email service configured on the server. In the demo that service was not set up, so we saw the setting but not a delivered email.
  • WhatsApp reminders open as a message for the advocate to send, in Hindi or English by client preference. They are not scheduled sends.
  • Not reviewed: how next dates are sourced and whether duplicate cases are prevented. Left out rather than guessed.
  • Screens are from the demo workspace. Every client, party and case number is sample data.

Have logic this messy in your operations? Let's talk.