MODULE · Events

One calendar. Every school day, accounted for. Holidays, exams, PTMs, festivals, sports day — in one place.

A single academic calendar for the whole school — holidays, exams, parent-teacher meetings, sports day, festivals and student events. Every entry is linked to attendance, fee schedules and parent WhatsApp alerts, so a date change in March automatically pushes through every dependent module. Built for the Indian school year — CBSE, ICSE, IB, IGCSE and State Boards.

How most Indian schools manage events today

It is the second week of June in a CBSE school in Indore. The principal is preparing the academic calendar for 2025-26 in an Excel sheet that her predecessor mailed her three years ago. The state government has just notified two extra working days for the Eid holiday. The exam coordinator wants the Half-Yearly schedule locked by July. The PT teacher needs Sports Day before the monsoon. The accountant is asking which dates count as 'school holiday' for the bus contractor invoice. Four people, four documents, one calendar that nobody fully owns.

By August, parents are calling the office every Monday morning to ask whether school is open. WhatsApp class groups are forwarding the wrong dates from a 2023 circular. The exam in-charge has scheduled the Class 10 pre-board on the same Saturday as the inter-school cricket finals — nobody noticed because the two calendars never sat side by side. By December, the principal's calendar Excel has 14 versions; the parent app shows the August version because nobody re-uploaded the file. UDISE+ asks for the working-day count and four staff give four numbers.

Inkwelly's Events module replaces this with one academic calendar. Every event — holidays, exams, parent-teacher meetings, sports day, cultural festivals, student trips — lives as a real database row with a defined eventType, affectedClasses, attendanceImpact and parentVisibility. The principal owns the calendar; the office staff publish it; the parents see it on WhatsApp; the Attendance module, the Examinations module and the bus contractor's holiday list all read from the same source.

What we built instead

A structured Event model with first-class fields for every piece of context an Indian school actually needs — eventType (holiday, exam, PTM, sports, festival, trip, working-Saturday-off, half-day), affectedClasses[], attendanceImpact (HOLIDAY, WORKING_DAY, HALF_DAY, NO_IMPACT), parentVisibility, whatsappTemplate, recurrence and notifyDaysBefore. Every event is one row, one source of truth, every dependent module reads from it.

The principal sets up the academic calendar once in March; the system carries the structure forward year-on-year (state-government holiday list, board exam blackouts, parent-teacher meeting cadence). Parent WhatsApp reminders are auto-scheduled. Attendance closures are auto-applied. Exam-block conflicts — like the cricket-final vs. pre-board overlap — are flagged before publish.

What the Events module covers

  • Single academic calendar — sessions defined in [Academics](/modules/academics) feed start/end dates; events live inside the session.
  • 12 event types — Holiday, Working Saturday, Half-Day, Exam, PTM, Sports Day, Cultural Festival, Trip, Workshop, Inspection, Vacation Block, Other.
  • Class-scoped events — a Class 10 pre-board affects only Class 10; a sports day affects the whole school; an inter-house drama affects only Houses A and B.
  • Attendance impact — every event declares whether it counts as a working day, half-day, holiday or no-impact — fed directly into the attendance roll.
  • Calendar heatmap — the signature visual; one square per day, colour-coded by event load; surfaces clusters and clashes instantly.
  • Session progress — days completed, days remaining, working days lost, holidays consumed, vacation blocks ahead.
  • Composition split — events grouped by type for the year, with year-on-year comparison.
  • Monthly stack — events per month, stacked by type, useful for planning the next year's calendar.
  • Upcoming timeline — next 30 days at a glance, with parent-visibility status per event.
  • Exam schedule integration — exam events flow from the [Examinations module](/modules/examinations) automatically; conflicts flagged across both.
  • Holiday impact — working-day count for UDISE+ and CBSE renewal forms, computed automatically.
  • Class impact — per-class working-day count; useful for boards like ICSE that require minimum instructional days per subject.
  • Auto WhatsApp alerts — 1 day before, morning of, change/cancellation — using Inkwelly's WhatsApp Business API.
  • Recurring events — weekly assembly, monthly PTM, term-end exam pattern — set once, run forever.
  • Photo-event publishing — attach photos to a sports day or annual day; parents see the gallery in the app post-event.
  • Closed-session read-only — last year's calendar is sealed; queryable forever, never editable.

See it in action

Built for the Indian academic year

Global calendar tools assume a fixed Monday-to-Friday school week, two long term breaks, and one parent-teacher conference a year. Indian schools live in a different reality — a six-day week (with selectively-off Saturdays), three-term structure, multiple state-notified holidays announced two weeks before they happen, and a calendar that has to coexist with CBSE's pre-board blackout dates, ICSE's coursework windows, and the local district administration's election-day school closures. The Events module is built around these realities, not around a US-school template.

State-government holiday updates without a re-upload

When the UP government notifies an extra holiday for a state festival on a Tuesday afternoon, the principal opens Inkwelly, adds one event, ticks 'notify parents now', and the school is done. WhatsApp alerts go out within minutes; attendance for the next morning auto-closes; the bus contractor's invoice picks up the new holiday automatically. Compare this to the Excel-and-WhatsApp workflow where every dependent system has to be updated separately and three of them inevitably aren't.

Conflict-aware before publish

The heatmap surfaces clashes before they hit parents. Class 10 pre-board scheduled on the same Saturday as the inter-school cricket final shows up as a yellow conflict cell; a click reveals the affected class and event pair. The exam in-charge resolves it in the same screen. By the time the calendar is published, no two events are silently competing for the same students.

Attendance closure happens automatically

Declaring an event as HOLIDAY or HALF_DAY is enough — the attendance module reads the impact field and closes or shortens the day automatically. No teacher has to mark 'no school today'. UDISE+ working-day count and ICSE instructional-days reports both pull from the same source, so the number that goes to the board is the number on the principal's dashboard.

Recurring events, set once

Weekly Saturday morning assembly, monthly Class 1-5 PTM on the second Saturday, term-end examinations on a fixed pattern — every recurring event is set up once and replicates across the year automatically. State-board schools that follow a four-Saturday-on, two-Saturday-off cycle inherit the pattern from Academics; no manual entry, no missed week.

Class-scoped, not school-wide by default

A Class 10 pre-board affects Class 10 — not Class 6's lunch break or Class 12's projects. A drama rehearsal for House A and B disrupts only those students. The affectedClasses[] field is first-class; the parent of a Class 6 student sees only the events that touch her child's day; the principal sees everything. No more 'school is closed for whom?' WhatsApp threads.

WhatsApp alerts that actually reach parents

Event reminders go out as real WhatsApp messages — not passive push notifications — via the official WhatsApp Business API. Default Hinglish, configurable per school. PTM invitations carry a slot-booking deep link; sports day announcements carry the venue map; holiday alerts carry the resumed-school date. Parents who never install the parent app still get every alert.

Pehle har Diwali ke baad parents ka call aata tha — kal school khulega ya nahi? Ab bas hum event create karte hain aur sab ko WhatsApp pe time se message chala jata hai. Office ka phone band hi nahi hota tha pehle, ab ekdum quiet hai.
Mrs. Anita Saxena · Principal · Spring Dale Public School, Agra

Before and after Inkwelly Events

FeatureExcel + WhatsApp groupsInkwelly Events
Adding a new state-notified holidayUpdate Excel, mail to staff, post on parent group, update bus contractor sheet, mark register — four staff, three hours, one missed systemOne event row, tick 'notify parents now' — 90 seconds; every dependent module updates
Working-day count for UDISE+Manual count from a printed calendar; numbers differ across staffComputed from `attendanceImpact` field; one number for the whole school
Exam-day conflict detectionDiscovered when parents call 'today is the cricket final and pre-board?'Heatmap shows the clash before publish; resolved in the same screen
Parent reach for cancellationsThree different WhatsApp groups, half the parents miss itDirect WhatsApp via Business API — delivered, read receipts visible
Class-scoped eventsSchool-wide messages even when only one class is affected`affectedClasses[]` ensures only relevant parents get the alert
Recurring eventsRe-typed every term; one term someone forgets the assembly daySet once with a recurrence rule; replicates across the year
Photo-event publishingPhotos shared in WhatsApp groups; lost in two weeksLinked to the event; live in the parent app for the rest of the session
Year-end calendar archiveExcel file lost during summer breakSealed read-only — next year's principal opens last year's calendar in seconds
Bus contractor invoiceDriver counts holidays manually from a printed listHoliday count exported in one click for invoice reconciliation

Who uses it, and how

Four different people open the Events module on a normal week. Each gets a workflow tuned to their role and exactly the data they need.

Principal

Opens the calendar dashboard once a week. Sees session progress (working days completed, holidays consumed, vacation block ahead), the next 30-day timeline, and any conflict alerts. Adds the new circular's holiday with two clicks. Looks at how parent reach is trending. Closes the laptop. Total time: 6 minutes.

Office staff

Most data entry happens here. State-notified holidays, PTM slot rosters, photo uploads after sports day, special-circumstance closures — all entered in the same form. The form remembers the school's defaults (Hinglish WhatsApp, parent-visibility on, attendance-impact = HOLIDAY for state-government notifications) so a typical event takes under 90 seconds.

Class teacher

Sees only events that affect her batch — today's PTM slot, next week's class trip, the Saturday assembly. The teacher app surfaces a daily 'today's events' card so she can prepare; no more being surprised by a guest-speaker assembly nobody mentioned. Class 10 teachers preparing for pre-board see the exam block weeks in advance.

Parent

Gets a weekly Sunday digest WhatsApp listing the next seven days. Day-of reminders for PTMs and exams. The parent app shows a personal calendar filtered to the parent's children — if Aarav is in Class 6 and Avani is in Class 4, the parent sees both their events without manually filtering. Photos from sports day appear in the same screen post-event.

How it connects to the rest of Inkwelly

The Events module is the backbone of the school's time. Attendance reads holiday and half-day flags; Examinations sources its exam blocks here; Academics registers the session start/end and working-day pattern; the parent app reads the per-child calendar; the bus contractor's invoice pulls the holiday count; the Homework module skips assigning homework on declared holidays. Change one date — every dependent module updates. No double entry, ever.

Migration from your current setup

Most schools come to Inkwelly Events from one of three places — a printed/Excel academic calendar, a calendar feature inside their existing ERP, or a no-system-at-all WhatsApp-only practice. Migration in all three cases is short.

From Excel

We accept a CSV import — dates, event types, affected classes — and seat your year's calendar in 20 minutes. State-notified holidays for UP, MH, KA, TN, GJ, RJ, MP, WB and KL come pre-loaded for the current calendar year and update via Inkwelly's national-holidays feed. You add only the school-specific events.

From an existing ERP

We export your calendar from Fedena, Entab, MySchool, MyClassboard or campus tools — either via CSV or direct DB read — and import in one batch. Recurrence patterns and attendance-impact flags are mapped automatically; anything ambiguous is flagged for the principal to confirm before publish.

From no-system-at-all

The most common Tier-2/3 starting point. The school knows its calendar in the principal's head plus a chain of WhatsApp circulars. We seat the academic structure (sessions, classes) in 30 minutes, pre-load 18 standard Indian school events (Republic Day, Independence Day, Diwali, Holi, Eid, Christmas, Pongal/Lohri, regional festivals), and the school adds school-specific events as they happen.

Closed-session sealing

At year-end — when Academics closes the session — the calendar is sealed read-only. UDISE+ working-day numbers, exam dates, PTM logs and event photos are all queryable forever. Two years from now, your audit team can pull the 2024-25 calendar in 10 seconds.

See Inkwelly Events live

20-minute walkthrough on a real CBSE dataset — calendar heatmap, event creation, parent WhatsApp delivery, attendance impact and the principal's session-progress dashboard.

Security, privacy and DPDP compliance

Event data is operational metadata; photo uploads contain images of children. Both are stored on Inkwelly's India-region infrastructure (Mumbai). Photo galleries default to in-app-only visibility (no public links). Per-child filtering ensures a parent never sees another family's child in a different class. The DPDP Act 2023 minor-data provisions are honoured — parental consent on photo publication is captured at admission and is auditable. Closed sessions are sealed for retention without becoming editable.

What's included with the Events module

  • Unlimited events, unlimited classes, unlimited recurring patterns
  • 12 event types pre-defined; custom types configurable per school
  • WhatsApp Business delivery — included in plan, no separate setup
  • Calendar heatmap with conflict detection
  • Session progress dashboard — working days, holidays, vacation blocks
  • Composition + monthly stack views with year-on-year comparison
  • Auto attendance closure for HOLIDAY and HALF_DAY events
  • Exam schedule integration with the Examinations module
  • Holiday impact + class impact reports for UDISE+ and board renewals
  • Pre-loaded national + state holidays for 9 Indian states
  • Photo galleries linked to events — in-app, parent-only
  • Recurring events — weekly, monthly, term-pattern
  • Closed-session read-only retention — forever
  • Pre-loaded Indian school festival calendar — 18 events
  • DPDP-compliant data residency in Mumbai, India
  • Onboarding + training — 2 sessions, included in setup

Plan next academic year on one calendar

Switch from Excel + WhatsApp to a single audited calendar before April 1, 2026. Setup completes in under a week.

Frequently asked

10 questions
Can the Events module handle state-government-notified holidays that come at short notice?

Yes — this is exactly what it is built for. The principal or office staff add the event in under 90 seconds; WhatsApp alerts go out within minutes via the official WhatsApp Business API; attendance for the next morning auto-closes; the bus contractor's invoice picks up the new holiday automatically. State-notified Tuesday-afternoon holidays no longer trigger a Wednesday-morning panic.

Does it support our six-day week with selectively-off Saturdays?

Yes. The four-Saturday-on, two-Saturday-off pattern (or any custom pattern) is configured once at the school level in [Academics](/modules/academics). The Events module inherits it. A 'working Saturday' is a working day for attendance; an 'off Saturday' is treated as a holiday automatically. No event needs to be added per-Saturday.

How does the calendar interact with the exam schedule?

Events of type EXAM are sourced from the [Examinations module](/modules/examinations) automatically. The events calendar shows them as exam blocks; the heatmap flags any conflict between an exam block and a non-exam event for the same class. You configure exams in one place; events surfaces them where principals and parents need to see them.

Can I publish photos of sports day or annual day to parents?

Yes. Each event row supports an attached photo gallery (images uploaded via the [media library](/modules/media)). Galleries default to in-app-only visibility, are filtered to the affected classes, and respect per-family parental-consent flags captured at admission. Photos are stored on India-region infrastructure with no public link.

Does it integrate with the Indian holiday list, or do I have to add Diwali every year?

Pre-loaded for nine states (UP, MH, KA, TN, GJ, RJ, MP, WB, KL) plus all national holidays. Each year's specific dates (lunar-calendar holidays like Eid and Diwali) update via Inkwelly's national-holidays feed in February. Add school-specific events on top — sports day, annual function, vacation blocks — and you are done in an afternoon.

What happens when an event is cancelled or moved at the last minute?

Edit the event row, tick 'notify parents of change'. WhatsApp messages with the change template go to every parent in scope; the school day's attendance impact updates automatically; the bus contractor sees the change. The audit log retains the original date so you can always see when and why something moved.

How does this differ from Google Calendar or Outlook?

Google Calendar is great for personal scheduling — it has no concept of `affectedClasses`, `attendanceImpact`, parent-WhatsApp delivery, exam-block integration, or UDISE+ working-day reports. Inkwelly Events is purpose-built for the Indian school year: every field, every default, every report exists because an Indian school administrator needs it.

Can I generate the working-day count for UDISE+ submission?

Yes. The Holiday Impact card shows the year's working-day count, broken down per class for boards (like ICSE) that require minimum instructional days per subject. The number is computed from each event's `attendanceImpact` field, so the report and the principal's dashboard always agree.

Is there a way for class teachers to see only their events?

Yes. Each user sees the calendar through their role lens — a Class 6-A teacher sees school-wide events plus Class 6-A events; a subject teacher sees only events that affect her teaching batches; a parent sees only events affecting her children. The principal sees everything. No filtering required.

Are last year's event records preserved when we move to the new session?

Yes. When [Academics](/modules/academics) closes the session, every event from that year is sealed read-only. Working-day counts, exam blocks, PTM logs, photo galleries, parent-reach numbers — all queryable forever, never editable. Two years from now the calendar still answers questions for any audit, board renewal, or alumni request.

You might also like

4 reads

See Inkwelly on your school

30-minute demo. We open your current ERP with you and load your data into Inkwelly on the call. Dated go-live plan by the end of it.