Community Centre Volunteer Form: AI Sign-Ups and Rota Reminders

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Community Centre Volunteer Form: AI Sign-Ups and Rota Reminders.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Community Centre Volunteer Form: AI Sign-Ups and Rota Reminders.

Ask a chat assistant to draft the form's fields and wording, build the form in a free tool such as Google Forms that feeds a spreadsheet, and have the sheet send each volunteer a reminder the day before their shift. Keep safeguarding checks outside the form: it records consent and role choices, and a named person confirms checks.

A blank template cannot tell you that a date-of-birth field is more data than you need, or that a script on a free Google account can email only 100 recipients a day. Those details decide whether the system survives its first month, so they come first. The AI's job is drafting: field lists, wording, a formula, a short script. Decisions about who may work with whom stay with people.

Follow me on Instagram@sagnikteaches

A six-session centre and the rota it runs today

Picture a community centre with six regular sessions: a Tuesday lunch club, a Wednesday repair cafe, a Thursday coffee morning, a Friday youth club, a Saturday sports hall and a monthly community meal. Fifty-eight people are on the volunteer list, about 30 are active in a typical month, and the coordinator builds the rota in a messaging group and a notebook. Every figure here is illustrative; use your own.

Connect on LinkedInSagnik Bhattacharya

The weekly places add up to 17: four at lunch club, three at the repair cafe, three at the coffee morning, five at the youth club and two in the sports hall, with eight more at the monthly meal. By hand that is roughly three hours a week: an hour building the rota, about 42 minutes sending 17 reminders at two and a half minutes each, and the rest chasing replies and finding cover. The set-up below aims for about 75 minutes a week. Treat that as a target to test over a month, not a promise.

Subscribe on YouTube@sagnikteaches

Fourteen sign-up fields, and five to leave out

Ask only what you need to match someone to a session and contact them about shifts. Everything else can wait for an induction conversation, where a person can explain why they are asking.

FieldTypeWhy it is there
First nameShort answer, requiredUsed in every message
SurnameShort answer, requiredTells people with the same first name apart
EmailShort answer with email validation, requiredThe default reminder route
Mobile numberShort answer, optionalOnly for people who want shift texts
Are you 18 or over?Yes or No, requiredReplaces a date of birth; a "No" goes to your under-18 process
Roles you would like to help withCheckboxes, plus "Not sure yet"Matches people to sessions
When can you usually help?Checkbox grid: days by morning, afternoon, eveningBuilds availability without a phone call
How often?Multiple choice: weekly, fortnightly, monthly, one-off eventsSets expectations on both sides
Earliest start dateDateStops anyone being rostered before they are ready
Skills or experience that might helpParagraph, optionalUseful, never a requirement
Anything we should know so volunteering works for youParagraph, optionalInvites adjustments without asking for diagnoses
Safeguarding acknowledgementSingle checkbox, requiredSays some roles need checks before starting
How we use your detailsSingle checkbox, requiredConsent line that points to your privacy wording
How did you hear about us?Multiple choice, optionalShows which recruitment route works

The five to leave out: date of birth (the 18-or-over question does the job), home address, ID or passport numbers, medical conditions, and an emergency contact. Collect an emergency contact at induction, once you have met the person. Ask for references only for the roles that need them, and later.

Above the submit button, put a privacy line in your own words. A starting point:

We will use these details to organise rotas and to contact you about shifts. Only [named roles] can see them. We keep them while you volunteer with us and delete them [period] after you stop. To see, correct or delete your details, contact [name and contact route].

Have your data-protection adviser read that wording before the form goes live; what you must say varies by place and by what you do with the data.

A prompt for the field list, and what a first draft usually gets wrong

Use made-up details when you ask for help, and give the assistant the rules up front. This prompt describes the centre without naming a single real person.

I coordinate volunteers at a community centre with six regular sessions: lunch club, repair cafe, coffee morning, youth club, sports hall and a monthly community meal. The youth club involves children, so those volunteers need checks before they start.

Draft the fields for a volunteer sign-up form.
Rules:
- Ask for the minimum needed to match people to sessions and contact them about shifts.
- No date of birth, home address, ID numbers or medical details. Use an "are you 18 or over?" question instead.
- For each field give the type (short answer, checkbox, grid), whether it is required, and a one-line reason.
- Add a two-sentence note about safeguarding checks that does not promise anyone a role.
- Plain English, reading age about 11.
Return a table, then the privacy line to put above the submit button.

The first reply to a prompt like this usually looks complete, which is the danger. Here is what I would expect to correct, based on the way assistants tend to over-collect:

  • A date-of-birth field "to check eligibility". Replace it with the 18-or-over question. If someone answers No, they go to your under-18 process, which is a conversation, not a form field.
  • "Proof of address" or "ID number" rows. Delete them. Neither helps you build a rota, and both turn a sign-up sheet into a store of sensitive data.
  • A safeguarding note saying all volunteers will be background checked before starting. That overpromises for roles that do not involve children or vulnerable adults, and it is not for the form to decide. Rewrite it role by role, as in the safeguarding section below.
  • A confirmation that starts "Dear Applicant" and promises a reply within 24 hours. Change the tone and promise only what a part-time coordinator can keep.
  • No route for people who do not use forms. Add a phone number or a paper copy, and have a person enter those answers.

A first draft of around 17 fields is typical. Cutting it to 14 takes about five minutes and removes the three that would create the most risk.

Build it in Google Forms and point the answers at a sheet

Google Forms is free with a Google account, and its answers can land in a Google Sheet, which is all this set-up needs. If your plan includes it, Gemini can draft the form for you. Google's help page says the "Help me create a form" feature needs an eligible Google Workspace or Google AI plan, works on a computer, cannot edit an existing form (run on one, it replaces that form with the generated version) and does not create multi-section forms. For a form this size, building it by hand from the table takes about 20 minutes and avoids all three limits. If you want to try the Gemini route, Gemini in Google Forms is covered in its own tutorial.

  1. Start a blank form, add the fields from the table, and mark the required ones. Give the email question response validation so a mistyped address is rejected at the door.
  2. Submit one test response first, because the Summary view only appears once a form has a response. Then open Responses, then Summary, then More, then Select destination for responses, and choose to create a new spreadsheet. Your test answer is copied into it.
  3. Open Settings, then Presentation, then Confirmation message, and click Edit. Write what really happens next. The on-screen message cannot use the person's name, so the personal welcome comes later by email.
  4. Leave "Limit to 1 response" off. It makes people sign in to a Google Account, and a volunteer without one will give up.
  5. Submit a second test response and check that both rows sit in the sheet.

An honest confirmation message might read:

Thank you for offering to help. Your details have reached our volunteer coordinator, who will email you within [number] days to arrange a short chat. You will not be on the rota until we have spoken, and roles with children need checks first. Prefer not to use a form? Ring [phone number] and we will fill it in together.

If you would rather not use Google, Jotform's free Starter plan allows five forms and 100 submissions a month, which suits one sign-up form but runs tight if you also use it for event sign-ups. Its Bronze plan is $39 a month, or $34 a month billed yearly. Check the current limits on Jotform's pricing page before you commit.

From responses to a rota: three tabs and one guard formula

The tab the form creates belongs to the form, so never edit it. Add three more tabs to the same spreadsheet.

  • Volunteers. One row per approved person: ID, first name, surname, email, mobile, roles approved, check status, induction date, notes. The coordinator copies a person across after a conversation and gives them an ID such as V-017. The rota uses IDs, so names never need to appear next to check status.
  • Rota. One row per place per session: date, start time, session, role, volunteer ID, then columns that look up the first name, the email and a flag, and a final column the reminder script fills in.
  • Settings. A short list of the roles that need checks, one per row in column A.

Format the Start column as plain text and type times as 10:30, so a script reads exactly what you see. Format the Date column as a date. A filled-in week looks like this:

DateStartSessionRoleIDFlagReminder
Tue 3 Nov10:30Lunch clubHostV-017OKSent 2 Nov 09:02
Tue 3 Nov10:30Lunch clubKitchenV-022OKSent 2 Nov 09:02
Fri 6 Nov16:30Youth clubSession helperV-031OKDue 5 Nov
Fri 6 Nov16:30Youth clubSession helperV-040BLOCKEDNot sent: check still in progress

The guard is the Flag column. It marks a row BLOCKED when the role is on the Settings list and the volunteer's check status is anything other than Cleared. These three formulas fill the lookups and the flag in row 2; copy them down.

F2 (first name):  =IFERROR(VLOOKUP($E2,Volunteers!$A:$I,2,FALSE),"")
G2 (email):       =IFERROR(VLOOKUP($E2,Volunteers!$A:$I,4,FALSE),"")
H2 (flag):        =IFERROR(IF(AND(COUNTIF(Settings!$A$2:$A$10,$D2)>0,VLOOKUP($E2,Volunteers!$A:$I,7,FALSE)<>"Cleared"),"BLOCKED","OK"),"CHECK ID")

Add conditional formatting so BLOCKED turns the row red. That makes a mistake visible when you build the rota, not on the night. An assistant can write these formulas in a minute if you describe your tabs, and you can test them with two dummy rows: one restricted role with status "In progress" (should say BLOCKED) and one with "Cleared" (should say OK).

Safeguarding checks: what the sheet records and what it cannot do

Your safeguarding lead decides which roles need checks, and the checks themselves go through the official route and whatever your insurer or umbrella body requires. The form and the sheet do two small jobs: they tell people up front, and they stop a restricted role being rostered before the check is confirmed.

The note for the form can be short:

Some of our roles involve children or adults who may need extra protection. For those roles we complete checks before you start, and you will not be put on the rota until we have confirmed in writing that they are complete. This form does not ask for any check documents.

Behind the form, keep to a few firm rules:

  • Only the safeguarding lead edits the check-status column. Protect it (Data, then Protect sheets and ranges) so everyone else can read it and nobody else can change it.
  • Use four values: Not needed, In progress, Cleared and Expired. Put the date in the notes column.
  • No certificate numbers, ID scans or disclosure details in the sheet, ever. The sheet says what the status is, not why.
  • Share the spreadsheet with named people, never with "anyone with the link".
  • The AI never sees the status column and never decides eligibility. Give it dummy data when you ask for formulas or scripts.

If your sector has legal duties about who may work with children or vulnerable adults, those duties sit with the centre. This sheet supports your process; it is not a compliance system. For the policy itself, a safeguarding policy template for a children's club is a better starting point than a form.

Reminder wording at three lengths: email, text and cover request

A reminder has one job: to get a person who cannot come to say so while there is still time to find cover. Four short messages cover a volunteer's whole week, and one prompt can draft all of them.

Write four volunteer messages for a community centre. Plain and warm, no pressure, no exclamation marks.
1. Day-before reminder, email: subject line plus under 60 words.
2. Day-before reminder, text: under 160 characters including the placeholders.
3. Cover request to a standby list: under 40 words; the first reply gets the shift.
4. Thank-you the day after a shift: under 40 words.
Use these placeholders exactly: [first name], [session], [role], [day], [time], [date], [number], [centre].
Do not invent parking, refreshments or any other details.

An illustrative reply:

1. Subject: Reminder: [session] tomorrow at [time]
Hi [first name], a reminder that you are down for [role] at [session] tomorrow, [day], starting at [time]. Cannot make it? Reply to this email or ring [number] today so we can find cover. Thank you for giving your time. [centre]

2. Hi [first name], reminder: [session] tomorrow at [time]. Can't make it? Ring [number] today so we can find cover. Thanks, [centre]

3. Cover needed: [session] on [day] at [time], role [role]. If you can help, reply YES or ring [number]. The first reply gets it and we will confirm. Thanks, [centre]

4. Thanks for helping with [session] yesterday, [first name]. It made a difference. Your next shift is [date].

With real names and a phone number filled in, the text version runs to roughly 130 to 150 characters, so it stays a single message as long as it contains no emoji or curly apostrophes. Either can switch a text to an encoding that allows only 70 characters per message, so a reminder you thought was one text is billed as two or three. Check the character count your sending service shows before the first send. What I would change before using any of these:

  • Cut the machine voice. Drafts often open "Dear Volunteer, this is an automated message", which tells people nobody is listening. The version above sounds like the coordinator because it is signed by the centre and gives a number to ring.
  • Delete any consequence. Models like to add "Failure to attend may affect your place on the rota". Volunteers give their time for nothing, and one line like that can lose a regular.
  • Only promise what you can monitor. "The first reply gets it" works only if someone is watching the phone. If nobody is, say "ring [number]" instead.
  • Check any translation. If some volunteers read another language, ask the assistant for translations of the reminder, then have a fluent speaker read them before the first send. A wrong reminder is worse than none.

The same wording works for a reminder a week ahead of a monthly event, where people need time to rearrange a day. Add one line saying what the shift involves, and move the cover-request message to three days before instead of one.

Sending the reminders: by hand, by script, and the daily limit

There are three routes, and the right one depends on how many people you remind and who owns the sheet.

Route one: the sheet writes the message, you send it

Add a column to the Rota tab that builds tomorrow's message for each row, then filter out the blanks and copy each message into your phone or messaging group. It involves no code, no sending limits and a human in the loop, and it suits 20 reminders a week comfortably.

J2:  =IF(AND(H2="OK",A2=TODAY()+1),"Hi "&F2&", reminder: "&C2&" tomorrow at "&B2&". Cannot make it? Ring [number] today so we can find cover. Thanks, [centre]","")

Route two: a small script sends the emails

Google Sheets has a built-in scripting tool called Apps Script. A script can read the Rota tab each morning and email tomorrow's volunteers. One limit matters, and it sits on Google's Apps Script quotas page: a free Google account can send to 100 recipients a day through the mail service, and a Google Workspace account to 1,500. Your 17 weekly places average a handful of emails a day, so even a busy Friday sits far below 100. If the centre is registered as a non-profit, check whether it qualifies for Google Workspace for Nonprofits.

This is the version I would accept after review. The test switch at the top sends every email to the coordinator alone, and in test mode it does not mark rows as sent.

const TEST_MODE = true;                         // true: every email goes to the coordinator only
const COORDINATOR = 'PUT_COORDINATOR_EMAIL_HERE';  // replace with the coordinator's own address
const SENDER = 'Community centre volunteers';

function sendTomorrowReminders() {
  const sheet = SpreadsheetApp.getActive().getSheetByName('Rota');
  const rows = sheet.getDataRange().getValues();
  const tz = Session.getScriptTimeZone();
  const t = new Date();
  t.setDate(t.getDate() + 1);
  const tomorrow = Utilities.formatDate(t, tz, 'yyyy-MM-dd');

  // Columns: A date, B start (plain text), C session, D role, E volunteer ID,
  // F first name, G email, H flag (OK or BLOCKED), I reminder sent
  for (let i = 1; i < rows.length; i++) {
    const [date, start, session, role, id, first, email, flag, sent] = rows[i];
    if (!date || !email || flag !== 'OK' || sent) continue;
    const day = Utilities.formatDate(new Date(date), tz, 'yyyy-MM-dd');
    if (day !== tomorrow) continue;

    const body = 'Hi ' + first + ',\n\n' +
      'A reminder that you are down for ' + role + ' at ' + session +
      ' tomorrow, starting at ' + start + '.\n\n' +
      'Cannot make it? Reply to this email or ring [number] today so we can find cover.\n\n' +
      'Thank you for giving your time,\n' + SENDER;

    MailApp.sendEmail({
      to: TEST_MODE ? COORDINATOR : email,
      subject: 'Reminder: ' + session + ' tomorrow at ' + start,
      body: body,
      name: SENDER
    });
    if (!TEST_MODE) {
      sheet.getRange(i + 1, 9).setValue('Sent ' + Utilities.formatDate(new Date(), tz, 'd MMM HH:mm'));
    }
  }
}

function createDailyTrigger() {
  ScriptApp.newTrigger('sendTomorrowReminders').timeBased().everyDays(1).atHour(9).create();
}

To use it, open Extensions, then Apps Script, paste the code over the sample, replace the two placeholders and save. Run sendTomorrowReminders once by hand. The first run asks you to authorise the script, and because it is your own you may see a warning that Google has not verified it; carry on only for code you have read. Check the project's time zone in its settings so "tomorrow" means tomorrow where you are. When the test emails look right, set TEST_MODE to false and run createDailyTrigger once. The trigger fires some time between 9 and 10 each morning.

If an assistant writes the script for you, review it against five points: it emails only addresses in your sheet, makes no outside web requests, marks each row as sent, has a test mode, and runs once a day. Ask it to explain every line in plain words before you paste anything, and give it dummy rows instead of real volunteers while you work.

Route three: a service that sends texts

Neither a form nor a script sends text messages. If texts matter more than email for your volunteers, look at a rota or messaging service that bundles text credits. Each text has a cost, and people must have agreed to receive them, so read the pricing page and the consent rules before you load a single number. The wording above works as a text unchanged.

A dry run, then a month of checks

Before anyone but you receives an email, rehearse with a few test rows. The whole rehearsal takes about 20 minutes.

  1. Add three rows to the Rota tab dated tomorrow, pointing at test entries in the Volunteers tab that use your own address and, with permission, a friend's. Leave TEST_MODE true and run the script. All three emails should reach the coordinator's inbox and nobody else's.
  2. Read them. Check the spam folder, the subject lines, and that session names and times read the way a volunteer would expect.
  3. Add a fourth row with a restricted role and a volunteer whose status is In progress. It should show BLOCKED and produce no email.
  4. Set TEST_MODE to false and run again. Your friend should receive one email and the Reminder column should fill. Run it a second time: nothing new should be sent.
  5. Create the daily trigger, delete the test rows, and put a note in the diary for the first live morning.

Notice what the AI did in all of this: it drafted the field list, the wording, the formulas and the script. It did not decide who gets a role, see anyone's check status, or hold any real volunteer's details. That division is what makes the set-up safe to run from a volunteer-led organisation where the person who built it may not be the person who runs it in a year.

Four numbers to read after a month

  • Places filled 48 hours ahead. Count filled places against the 17 weekly places. If 15 are filled two days out, you are catching gaps while you can still fix them.
  • Cover requests per week. A rising number means reminders are working or shifts are poorly matched; look at which sessions generate them.
  • No-shows. Count them against the same month before. If the figure has not moved, the cause may be the shift itself or the induction, not the reminder. Ask three volunteers what would have helped.
  • Coordinator minutes. Aim for around 75 a week for rota, reminders and replies. If it is still closer to three hours, find which step is still manual.

Sign-ups bring their own follow-on work, from the induction conversation to the first shift, and a volunteer onboarding checklist for charities covers it. If recruitment is the harder problem, ChatGPT for nonprofits: volunteer recruitment posts and rota messages is the place to look. And for the wider question of what to hand to AI in a centre and what to keep, see how to manage a community centre and where AI helps.

Questions centre coordinators ask about forms and reminders

Do volunteers need a Google account to fill in a Google Form?

Not by default. A form is open to anyone with the link unless you switch on settings that need sign-in. Limit to 1 response makes people sign in to a Google Account, and file-upload questions need sign-in too. Leave both off for a volunteer form, and offer a phone or paper route for anyone who prefers it.

Can the reminder go out as a text message instead of an email?

Not from a form or a sheet on its own, because Apps Script sends email, not texts. For texts you need a messaging or rota service with SMS credits, or a coordinator who sends from a phone using a message the sheet builds for each row. Keep texts under 160 characters so each stays a single message.

How long should we keep volunteers' details?

That is for your own data-protection policy and adviser to decide, and it belongs in the privacy line on the form. A sensible pattern is to keep details while someone volunteers and delete them a fixed period after they stop, with a yearly review of the whole list. Pick the period, write it down and diarise the review.

Should safeguarding check documents go through the form?

No. Keep certificates, ID numbers and similar documents out of the form and out of the sheet. Record only a status and a date, entered by the person responsible for safeguarding, and handle the documents as your safeguarding policy and the official checking service require. A form that asks for them makes you responsible for protecting sensitive data you did not need.

Is it safe to ask a chat assistant to write the reminder script?

Yes, if you give it made-up sample rows instead of real names or emails, and you read the code before running it. Check that it only emails addresses in your sheet, makes no outside web requests, marks each row as sent and has a test mode that sends to you alone. Ask the assistant to explain each line in plain words first.

Further reads

Sources: Google Forms help (view responses, settings, Gemini 'Help me create a form'), Google Apps Script quotas page, Jotform pricing page (read October 2026).

Want your volunteer rota and reminders set up properly?

On a 1:1 call we'll look at how sign-ups, rotas and reminders run today, pick the step worth automating first, and check whether tools you already use can do it.

Book a 1:1 call with me