Project Checklist guides · Reference

Template guide for AI assistants

The plain-text template language: lists, tasks, notes, ids, durations, effort, dependencies and a start date, with a complete example. Give this page or the .md file to an AI assistant and describe the job.

You are helping someone write a template for Project Checklist, a ServiceM8 add-on that plans a job as lists of tasks on a board and a timeline. The person will paste your text into Manage templates > New template. Output plain text in exactly the format below. Do not add headings, bullets, numbering, tables or commentary around it — the app reads the text line by line.

1. What a template holds

A template is one or more lists. Each list holds tasks. A task may carry a note and a plan (how long it takes, what it waits for). The dates are worked out when the template is applied, so a template never contains dates (except the optional start date, section 6).

2. The basic shape

Site Prep:
- Clear the site
- Dig trench

Install:
- Lay conduit
- Pull cable

Rules:

  • A list is a line ending with a colon. Example: Site Prep:
  • A task is a line starting with a dash. Example: - Dig trench
  • Every task belongs to the list above it. Write the list line first.
  • Blank lines are ignored. Indentation is ignored.
  • Lines in square brackets are tokens (sections 3 to 6). Token names are not case sensitive. A token the app does not know is ignored.

3. List tokens

Write these on their own line, directly under the list name. Both are optional.

Token What it does
[list colour: sky] Colours the list. Choose one of: sky, mint, sun, rose, lavender, sand, stone.
[nest under: Site Prep] Shows this list inside another list of the same template. The host must be a list in this template and must not be nested itself (one level only). One nest under per list.

A colour or host the app does not recognise gives a warning and is ignored; the template still applies.

4. Notes on a task

Write a note on its own line, directly under the task.

Token What it does
[note] text Adds a note to the task above.
[action note] text Adds a note that needs action. The task is flagged until someone deals with it.

One note per task. If two are written, the last one wins.

5. Plan tokens on a task

These make the task appear on the timeline with dates. Write them on the line under the task, several per line if you like:

- Dig trench [id: dig]
  [duration: 3d] [effort: 6h]
- Lay conduit
  [after: dig] [duration: 2d] [effort: 4h]

[id: …] may also sit at the end of the task line, as above.

Token What it does Rules
[id: dig] Gives the task a short name other tasks can wait for. Must be unique in the template. Use short lowercase words, letters, digits and hyphens. Only add an id to a task that something waits for.
[after: dig] Starts this task the next working day after the task with that id finishes. To wait for several tasks: [after: dig, pour], or repeat the token. The id must exist. A task cannot wait for itself, and tasks cannot wait for each other in a loop.
[duration: 3d] How many working days the task takes. A whole number of days, at least 1. The account's non-working days are skipped (set in Settings > Working week; Monday to Friday unless changed).
[effort: 6h] How much work time the task needs. A unit is required: 6h, 90m, 1h30m, 1.5h. This is separate from duration: a task can take 5 days on the calendar but only 6 hours of work.

How dates are worked out:

  • Day 1 is the day the template is applied (or the start date, section 6).
  • A task with no after starts on day 1.
  • A task with after starts the next working day after the LAST task it waits for finishes.
  • A task is only given dates when it has a duration, waits on a task, or is waited on. Any other task stays unscheduled, which is fine: a template may plan part of a job and leave the rest to the person.
  • A scheduled task with no duration counts as 1 day.

6. Start date (optional)

[start: 2026-10-05]

On its own line at the top. The plan starts on that date instead of the day the template is applied. Format is exactly YYYY-MM-DD. Only add it when the person gives you a date.

7. What refuses the whole template

The app refuses to apply the template, and says which task is wrong, when:

  • a duration is not a number of days ([duration: soon])
  • an effort has no unit ([effort: 6])
  • two tasks share an id
  • an after names an id that does not exist, or names the task itself
  • tasks wait on each other in a loop
  • the start date is not a real date in YYYY-MM-DD form

Everything else (a wrong colour, a wrong host list, an unknown token) only warns.

8. Advice for the assistant

  • Ask for the list names, the tasks in each, and roughly how long each task takes. Ask what has to finish before what. Do not invent dependencies.
  • Use working days for duration, hours or minutes for effort. Keep effort within what the duration allows (a 1-day task is at most about 8h of effort).
  • Use plain trade language for task names. Keep them short. Do not end a task name with a colon.
  • Add an [id: …] only to tasks that other tasks wait for.
  • Do not write real dates. Use durations and after. Add [start: …] only when the person gives a date.
  • Reply with the template text only, inside one code block, ready to paste.

9. Complete example

[start: 2026-10-05]

Site Prep:
[list colour: sand]
- Confirm access with customer [id: access]
  [duration: 1d] [effort: 1h]
  [action note] Phone the site contact the day before.
- Dig trench [id: dig]
  [after: access] [duration: 2d] [effort: 8h]
  [note] Call Dial Before You Dig first.

Install:
[list colour: sky]
- Lay conduit [id: conduit]
  [after: dig] [duration: 1d] [effort: 4h]
- Pull cable [id: cable]
  [after: conduit] [duration: 1d] [effort: 3h]
- Fit switchboard [id: board]
  [after: dig] [duration: 2d] [effort: 10h]

Electrical checks:
[list colour: mint]
[nest under: Install]
- Test and tag [id: test]
  [after: cable, board] [duration: 1d] [effort: 2h]

Handover:
- Walk the customer through the work
  [after: test] [duration: 1d] [effort: 1h]
- Send invoice