Attendance and incoming visits

Officials' travel and leave, meeting attendance, and visitors to Bahrain
Travel Leave Requested, not yet approved Cabinet Monday

Click a bar to edit it. Dashed bars were added by hand; hatched bars are requests posted to the group that have no approval in the chat yet.

TravelLeave
DatesVisitorPurposeRequested to meetStatusSource
DatesVisitorPurposeAlso asked to meetStatusRecommendation

Availability message

Message template

Edit freely. Placeholders: {{range}} {{count}} {{unavailable}} {{available}} {{mondays}} {{exco}}. Official lines use {{name}} {{entity}} {{country}} {{dates}} {{type}}; meeting lines use {{meeting}} {{day}} {{date}} {{count}} {{names}}.

OfficialTypeWhere / whatFromToMondaysSource

Requests awaiting approval in the chat

Posted to the group but with no matching item in an *APPROVED* reply. Mark one as approved to count it.
PostedOfficialTypeWhere / whatDates

Items the parser wasn't sure about

Nothing here is counted unless it also appears in Trips. Add a trip by hand if one is missing, or dismiss.
DateTypeFlagsSource text

Officials

Order is seniority (cabinet list order; non-cabinet officials come after). Counted officials appear on the timeline; Cabinet members count toward Mondays, Exco members toward Tuesdays/Thursdays. Aliases help the parser match spelling variants; separate with commas.
OrderCountedCabinetExcoNameArabic name / titleEntityAliasesOther entity codes

People found in the chat who aren't in the list

Add one as an official, or as an alias of an existing official.

Import a WhatsApp export

Drop the exported chat (.txt or .zip) here or
In WhatsApp: group → ⋮ → More → Export chat → Without media. Re-importing replaces parsed trips; your manual trips and edits are kept.

Import a spreadsheet

Drop an Excel or CSV file here or
Columns: Official, Entity, Type (travel/leave), Country, From, To, Event. Dates as real Excel dates or YYYY-MM-DD.

Shared data (encrypted)

One phone publishes; every other phone receives automatically when the app opens. Everything is encrypted with the passphrase before it leaves the phone — the storage only ever holds a locked box.
not set up
Colleague setup

On a colleague's phone: open Attendance → Import & data → paste the setup code into the Storage address box (it fills both boxes) → type the passphrase → Save settings → Fetch now. From then on the app updates itself each time it opens.

Backup & reset