Bapha.be offers data about events on an internet site for a municipality, in standard machine-readable format (iCalendar). All software, working with this format, can be configured to periodically fetch the information about the events and to show it current, without bothering the users to visit a website. The different programs understand the iCalendar format to a different extent, and show what they have understood.
Offering the information in machine-readable format allows re-publishing it automatically on portals, without having to retype the information for each event. See What is CalDAV and Synchronizing with vdirsyncer.
The site may store IP addresses to prevent misuse.
When new events or tasks are uploaded, an email notification is usually sent to the subscribers of the mailing list firstname.lastname@example.org. No notifications are sent, when just the content of an uploaded event is changed. The mailing list email@example.com can be subscribed from https://l.bapha.be/mm3/postorius/lists/aaa.l.bapha.be/.
Navigation with Keyboard
The TAB-key selects the elements on the web page. ENTER opens the active element. J jumps in the past. K goes in the future. L returns to today.
Integration with Android
If you do the integration with Google Calendar, as described below, it is not necessary to install additional programs, but then all distinct calendars will be shown as a single one and the tasks (deadlines) will not be displayed.
With the open-source application DAVx⁵, which can be downloaded over Google Play Store or from F-Droid, Android synchronizes its calendars with aaa.bapha.be. Other suitable applications exist, too.
In DAVx⁵ version 3.3.4 or newer create a new account by selecting the “orange ＋”. Under “Add account” select “Advanced login (special use cases)” and then enter: (base URL) aaa.bapha.be, without password, without certificate. In older version of DAVx⁵ select the “orange ＋” and then create an account with email address for user firstname.lastname@example.org with any password.
When new calendars are created on the server, DAVx⁵ must be told explicitly to refresh the list of calendars. The events are shown in the calendar applications on Android, after these applications are explicitly told which calendars to show. The calendars on Android do now show attachments (images) or internet addresses to events.
To-Do, as e.g. deadlines for applications, are presented as VTODO objects in CalDAV. When Tasks.org (F-Droid, Google Play), jtx Board (F-Droid, Google Play) or OpenTasks (Google Play, F-Droid) is installed, DAVx⁵ can synchronize the deadlines as tasks. To configure Tasks.org to download the tasks without DAVx⁵, go to ⚙ Settings → ＋ Add an account → (Select a Platform) CalDAV → as user enter email@example.com, random password, URL: https://aaa.bapha.be . Click on the diskette.
Integration with Apple
The integration works with all Apple devices. Under OS X open the Calendar application and then Preferences → Accounts. Under iOS select “Settings” → “Accounts”.
From there chose “Other“ → “CalDAV”. Enter as user firstname.lastname@example.org with any password and as server aaa.bapha.be .
Select Calendars and Reminders to synchronize events and tasks.
Integration with Gnome Evolution
Evolution is software for working with calendars and emails under Linux. Select “File”→ New → “Collection Account” → “Advanced Options”. As server type aaa.bapha.be, do not enter user name. “Look up” → Next → Next → Finish. Check the menu “View“ → Window → Calendar (Ctrl+3).
Integration with Google Calendar
Go to calendar.google.com. From the upper left corner select the hamburger sign ☰, then “Other Calendars” → ＋→ “From URL address”. As URL address enter either https://aaa.bapha.be/a.ics (events from the past and in the future) or https://aaa.bapha.be/f.ics (only events in the future).
Google Calendar does not show the pictures and the URLs of the events.
After the connected Android devices realize that there is a new source of data, they can be manually set to show the additional calendar.
Integration with Live/Hotmail/Outlook.com Calendar
Go to calendar.live.com and select from the left “+ Add calendar” → “Subscribe from web”. As address enter either https://aaa.bapha.be/a.ics (events from the past and the future) or https://aaa.bapha.be/f.ics (only events in the future).
Integration with Microsoft Outlook
Install the Add-On CalDAVSynchronizer. Add a new profile. As username enter email@example.com with any password, as synchronization direction select Server → Outlook, with WebDAV synchronization, only calendars.
Integration with Mozilla Thunderbird
Thunderbird is a program for calendars and emails, running under Windows, Linux and Mac OS. You need version 78.10 or higher.
For version 91 select the “Calendar” tab from the upper left corner (Ctrl+Shift+C). On the left side, click on the ＋ after “Calendar”. → “On the Network” → Next. Leave “Username” empty, provide aaa.bapha.be as Location, leave “This location does not require credentials” unckecked, and “Offline support” checked. → Subscribe. When calendars are added or removed from the server, this procedure must be repeated.
The remaining text is for version 78.10+. From the menu “Tools” → “Add-ons” install the add-ons TbSync and DAV-4-TbSync/Provider for CalDAV and CardDAV. These enhance Thunderbird to be able to discover calendars, after entering only username or servername.
Afterwards click in the bottom right corner on “TbSync” or choose from the menu “Tools” → “Add-on Options”→TbSync. From the “TbSync account manager” window select at the bottom “Account actions” → “Add new account” → “CalDAV & CardDAV” → “Manual Configuration“. As CalDAV server address enter https://aaa.bapha.be/dav/calendars/ , provide name for the account. skip username and CalDAV server. “Next” → “Finish”. Select “Enable and synchronize this account”. Mark the calendars and then “Synchronize now”. Close the window. After selecting in the menu “Events and Tasks” → “Calendar” (Ctrl+Shift+C) you will see the events.
From time to time go back in the window “ТВSync account manager” and select over the account “Synchronize account”, in order to get the newest list of the calendars from the server.
Integration with Telegram
The events and tasks are mirrored in the Telegram channel aaa_bapha_be.
Integration with vdirsyncer
vdirsyncer can synchronize over CalDAV the data with the server on a Linux computer. To use it create a file called config containing
status_path = "status"
type = "filesystem"
path = "events"
fileext = ".ics"
a = "remote"
b = "local"
collections = ["from a"]
metadata = ["color", "displayname"]
conflict_resolution = "a wins"
type = "caldav"
url = "https://firstname.lastname@example.org/"
read_only = true
vdirsyncer -c config discover --no-list && vdirsyncer -c config metasync --max-workers=1 && vdirsyncer -c config sync --force-delete --max-workers=1
This program does not show the content of the files. It is suitable for organizations, which want to download and republish automatically the events.
Integration with Windows
In order to show the CalDAV data in the integrated Windows Calendar, some work arounds are necessary. Open “Settings” → “Accounts” → “Email and app accounts” → “+ Add new account” → “iCloud”. As email address type email@example.com with arbitrary password → “Done”. After it is “done”, tap the newly created iCloud account → “Edit” → “Edit synchronization for account” → “Manage”. If Windows has changed the username, type again firstname.lastname@example.org. “Change mailbox sync settings”. Turn off Email and Contacts, leave Calendars on. Select “Advanced mailbox setting (settings for Contacts and Calendars (CalDAV) server”. As Calendar server provide https://aaa.bapha.be/. “Done” → “Save”. After a while in the programme “Calendar” you will see the different calendars and events.
Integration with Yahoo Calendar
Go to calendar.yahoo.com and select “Actions ⌄” → “Follow other calendars”. As iCal address enter either https://aaa.bapha.be/a.ics (events from the past and for the future) or https://aaa.bapha.be/f.ics (only events from the future).
The Yahoo calendar does not show pictures to the events.
Adding new Events
Adding new events is performed by the calendar administrators. They clarify how to provide them with information about new, changed, cancelled events: on the phone, by visiting an office, per text or iCalendar file over email. The simplest way to send an iCalendar file is to create an event in an application working with calendars, and to enter there as “participant” the email address of the calendar administrator. By doing so the event will be automatically sent over email, once saved. Bapha.be does not offer a website for users to submit events.
To the events can be attached pictures up to 200kb. The pictures will be shown on https://aaa.bapha.be and https://aaa.bapha.be/t with original dimensions.
The events can contain arbitrary text, including Unicode pictures (emoji). If an event contains description in several languages, it is likely that only the text at the beginning will be read. In order to publish an event in several languages, a separate calendar can be created for all foreigners, or a separate calendar per language. It is recommended to use a single language for the description.
What is CalDAV
In order to save information about events in a machine readable way a format is created called iCalendar. In this format for each event can be stored: summary, description, begin, end, internet site, repetition formula (e.g. every other Wednesday), location, categories, (cancelled) status, colour, attach a file (picture). The iCalendar format does not foresee to enter information simultaneously in many languages or to use HTML.
To distribute the data in iCalendar format the protocol CalDAV can be used. It allows creating separate calendars, and each calendar contains events. Properties of each calendar are: name, description, color, URL address, what kinds of objects does it store. The objects can be “Events”, “Notes” and “Tasks”. The website for unauthenticated aaa.bapha.be shows only the events. Both calendars and events can have their own color. The programs displaying the events can show the color of the event instead of the color of the calendar.
For example on https://bapha.be one of the calendars has name “English”, description “Click on the coloured circles, to hide calendars.”, blue color, URL address https://email@example.com/English/ and can contain objects of types ”Events” and ”Notes”. Some of the calendar properties from https://aaa.bapha.be can be seen at https://firstname.lastname@example.org after entering username email@example.com and password abc.
The software understanding CalDAV periodically polls from the servers only the information which was changed since the last synchronization. Some software automatically refreshes the list of calendars from the server, other has to be told explicitly to do so.
What is WebCAL
A simpler way to distribute the events is to create one big file, containing all the events. This site offers two such files: https://aaa.bapha.be/f.ics (containing events from the future) and https://aaa.bapha.be/a.ics with the events from the past and from the future.
By clicking on webcal://aaa.bapha.be/f.ics (future events) or webcal://aaa.bapha.be/a.ics (all events) some programs offer to directly subscribe to the events and refresh automatically the information in the future.
Bapha.be offers the best from the existing standards for distributing information about events. Over time standards improve to cover new use cases. Extending a standard takes a lot of time.
Advantage of WebCAL compared to CalDAV is that subscribing to updates can be achieved using one click and the integration works with more programs. The disadvantage is, that for each change the whole big file must be transferred again, rather than getting just the changes since the last synchronization.
How much calendars and with which names shall be created is a matter of personal taste. As example: “Sport”, “For kids”, “Cinema”, “Courses”, “Infrastructure Maintenance“, “⚐ BG|EN|FR|РУ” (Български|English|française|Русский - Calendar for Foreigners), “Culture”, “Non-cultural calendar”, “Exhibitions and Museums”, “Education”, “Clubs”, “Others”, “Not essential”.
With the website the visitors and the residents can inform themselves what they can visit for a certain date. It is reasonable to enter for exhibitions one event lasting many days: begin and end of the exhibition. Entering a separate, identical event for each working day (from 10am to 5pm) with the same description leads to a more complicated overview. For frames consisting of several subevents, like a movie festival with many films, it is reasonable to enter each sub-event as a separate event. In this way it is possible to obtain information about all happenings, without visiting the website of the frame-event. When the big event is far in the future with an unclear yet programme, it can be entered with begin and end.
Including events with incomplete information, as skipping mandatory participants fees, attaching pictures showing “free” for paid services, or offering free things only after money has been spent, is misleading information, which in long term decreases the trust in the information source.
Cancelled events can be deleted or kept in the calendar with status “cancelled”. For events moved in the time, the old event can be adjusted by the new dates; or a new event can be created, while the old event is marked as “Cancelled” and reworded to contain a link to the new event.
Notifications about events are advertisement. The advertisement is both for the organizer and for the municipality. The criteria for publishing events are set by each administrator. E.g. thematic evening in a bar does not need to be published, like events containing the word “only” or superlatives.
The parameter of the events “Status: Tentative” shall be used seldom. Using the parameters “Status: Confirmed”, Priority, Reminders, which will jump on the devices of the users, are discouraged.
Accepting Information for Events
The easiest way is to let the consumers (the organizers) create the event directly in iCalendar format and send it to the administrator as “invitation”. The administrator accepts the invitation, by storing it in a calendar and that’s all. In order to create and submit the iCalendar file, the consumers describe the event in the software they use anyway for calendars, and add the email address of the administrator as a participant.
This simplest way has its specialities. In order to work the applications for calendaring and emails must cooperate, or the same program for managing emails and calendars must be used. Such software is Gnome Evolution, Microsoft Outlook, Mozilla Thunderbird. After the event is uploaded in the calendar, all subscribers of the calendar will see the original author of the event as organizer and the administrator as participant. The participant may not change the event description, incl. changing the text. If the organizer changes the description, submits a new invitation and the administrator accepts it, the old event will be replaced with the new one.
This process is used often within organizations. Bapha.be proposes to apply the process beyond a single entity.