Публиковать в календаре
Монастыри, линии и центры Дхармы, которые уже есть в календаре, могут сами публиковать в нём свои события, годовщины учителей и дни линии, а также слово на день. Для этого нужен один файл простого формата. Его можно заполнить вручную по шаблону, проверить на этом сайте и отправить письмом; помощник ИИ — только по желанию.
Кто может публиковать
Общины, которые уже есть в календаре. Редактор сообщает каждой общине её идентификатор — короткое имя латиницей, которое пишут в поле source. Если вашей общины в календаре ещё нет, сначала подайте заявку.
Что можно публиковать
- События — друбчены, ретриты, семинары, учения, пуджи: даты, время, место, короткий текст и ссылка.
- Годовщины учителей и дни линии. Их указывают один раз по тибетской дате — месяц и день, — и они повторяются каждый год: западную дату календарь вычисляет сам.
- Слово на день — цитата, наставление или напоминание на определённую дату или каждый год на тибетскую дату. У цитаты всегда указан источник. Таких записей может быть много, хоть каждый день, — но не больше трёх на одну дату.
К любой записи можно добавить одно изображение — с подтверждением прав и подписью автора.
Правила
Календарь существует для практики, поэтому требования простые и строгие:
- Только подлинное содержание Дхармы: практика, учение, жизнь общины.
- Без рекламы, цен, продажи, просьб о пожертвованиях или спонсорстве, политики, критики других учителей и традиций, обещаний исцеления.
- Ничего выдуманного: ни дат, ни биографий, ни цитат, ни авторства, ни титулов.
- Каждая цитата называет автора, а также книгу и переводчика, если они есть.
- Ваши собственные тексты на ваших языках. Мы ничего не переводим машиной; машинный перевод, который вы сделали сами, публикуется, только если его одобрит редактор.
- Никаких частных контактов в публичных текстах.
Тибетские даты
Указывайте месяц и день так, как их держит ваша линия. Западную дату мы вычисляем каждый год сами — по системе Пхугпа (Мен-Ци-Кханг), как и для всего календаря: практику пропущенного дня переносят на следующий, а из сдвоенных дней отмечают первый.
Бывает, что месяц сдвоенный. На такой год укажите в leapMonth, какую половину отмечает ваша община: first — первую (так будет, если ничего не указать), second — вторую, both — обе.
Не пересчитывайте тибетскую дату в западную и не добавляйте год — ни для годовщин, ни для ежегодных записей. Проверка покажет, на какие дни они придутся в ближайшие годы.
Если ваша линия держится другого альманаха (например, Цурпху), публикуйте эти дни как события с конкретными датами.
Лосар, четыре Дучена, дни Гуру Ринпоче, полнолуния и новолуния уже есть в календаре — не добавляйте их как годовщины, даже если община называет такой день днём линии. То, что община делает в этот день, публикуйте как событие или как ежегодное слово на день.
Практику, которую община выполняет каждый месяц в определённый лунный день (скажем, в каждое полнолуние), подавайте либо событиями — по одному на дату, с датами из вашего альманаха, — либо двенадцатью ежегодными записями (месяцы 1–12, тот же день), каждая с leapMonth: both, чтобы в сдвоенный месяц она появилась в обеих половинах.
Файл шаг за шагом
Файл — это JSON в кодировке UTF-8, до 2 МБ. Назовите его так: идентификатор-дата.json, например example-2026-11-02.json. Полей, которых нет в формате, быть не может: чаще всего это опечатки, и данные в них потерялись бы незаметно.
Публичные тексты записывают по языкам: { "ru": "…", "en": "…" }. Каждый язык текста должен быть в languages или machineTranslated, а язык самой записи — обязательно. Только обычный текст, без HTML.
Проще всего начать с шаблона template.v1.json: в нём по одной записи каждого вида, а всё, что нужно заменить, начинается с REPLACE:. Замените и образцы — your-community-id, you@example.org, адреса https://example.org/…, your-picture.jpg; даты, время и тибетские месяц и день в шаблоне — только примеры. Проверка заметит и REPLACE:, и эти образцы, но не даты: их сверьте сами.
Файл в целом
| Поле | Обязательное | Что это | Ограничение · Пример |
|---|---|---|---|
$schema | Обязательное: нет | Адрес схемы: с ним редактор кода проверяет файл, пока вы пишете. | "https://…/schema.v1.json" |
format | Обязательное: да | Всегда именно эта строка. | "firstbuddha-sangha-contribution" |
version | Обязательное: да | Версия формата. | 1 |
source | Обязательное: да | Идентификатор общины, который дал редактор. | a–z 0–9 -, 2–32"example" |
community | Обязательное: нет | Название и сайт общины — для редактора. | name ≤ 120{ "name": "…", "website": "https://…" } |
contact | Обязательное: да | Кто отправляет: имя, почта, роль. Не публикуется. | name ≤ 120 · email ≤ 254 · role ≤ 80{ "name": "…", "email": "…", "role": "…" } |
confirm | Обязательное: да | Оба true: вы уполномочены говорить от имени общины, и у общины есть право публиковать эти тексты и изображения. | { "authorised": true, "rights": true } |
languages | Обязательное: да | Языки, на которых община пишет сама; первый — основной. | 1–8["en", "uk"] |
machineTranslated | Обязательное: нет | Языки, которые есть только машинным переводом по вашей просьбе. | ["ru"] |
zone | Обязательное: при условии | Часовой пояс событий (название IANA). Обязателен, если у какого-то события указано время. | IANA"Europe/Kyiv" |
part | Обязательное: нет | Номер части, если файл разделён. | of ≤ 20{ "n": 1, "of": 2 } |
entries | Обязательное: да | Записи: события, годовщины, слово на день. | ≤ 1000: event ≤ 300 · anniversary ≤ 100 · note ≤ 800[ … ] |
{
"$schema": "https://www.firstbuddha.space/sangha/contribute/schema.v1.json",
"format": "firstbuddha-sangha-contribution",
"version": 1,
"source": "example",
"community": {
"name": "Example Dharma Centre",
"website": "https://example.org"
},
"contact": {
"name": "Name Surname",
"email": "office@example.org",
"role": "Secretary"
},
"confirm": {
"authorised": true,
"rights": true
},
"languages": [
"en",
"uk"
],
"zone": "Europe/Kyiv",
"entries": [ … ]
}Любая запись (в списке entries)
| Поле | Обязательное | Что это | Ограничение · Пример |
|---|---|---|---|
type | Обязательное: да | Вид записи. | "event" · "anniversary" · "note" |
id | Обязательное: да | Идентификатор записи. Не меняйте его, когда отправляете файл снова. | a–z 0–9 -, ≤ 64"2026-tara-retreat" |
lang | Обязательное: нет | Язык, на котором запись написана изначально; без него — первый из languages. | "en" |
url | Обязательное: нет | Ссылка на страницу записи. | https://, ≤ 2048"https://example.org/tara-2026" |
image | Обязательное: нет | Одно изображение (см. ниже). | { "file": "tara-retreat.jpg", … } |
Событие — type: "event"
| Поле | Обязательное | Что это | Ограничение · Пример |
|---|---|---|---|
kind | Обязательное: да | Вид события (список ниже). | "ritual" |
title | Обязательное: да | Название. | ≤ 160{ "en": "Green Tara retreat" } |
subtitle | Обязательное: нет | Подзаголовок; только на тех языках, на которых есть название. | ≤ 200 |
summary | Обязательное: нет | Коротко, одно-два предложения. | ≤ 400 |
description | Обязательное: нет | Подробное описание. Сохраняется, но приложение его не показывает. | ≤ 3000 |
location | Обязательное: нет | Где именно: зал, храм, город. | ≤ 200{ "en": "Main shrine hall" } |
zone | Обязательное: нет | Другой часовой пояс для этого события. | IANA"Asia/Kathmandu" |
allDay | Обязательное: да | true — событие на весь день, без времени. | false |
startDate | Обязательное: да | Первый день. | YYYY-MM-DD"2026-12-04" |
endDate | Обязательное: нет | Последний день, включительно; без него — тот же, что startDate. | YYYY-MM-DD"2026-12-06" |
startTime | Обязательное: при условии | Время начала; обязательно, если allDay — false. | HH:MM"09:00" |
endTime | Обязательное: нет | Время окончания. | HH:MM"17:00" |
daily | Обязательное: нет | Для события со временем на несколько дней: true — каждый день отдельное занятие с startTime до endTime. false — один непрерывный промежуток от startTime первого дня до endTime последнего; так же будет, если daily не указать, поэтому для таких событий указывайте его всегда. | true |
videoUrl | Обязательное: нет | Ссылка на трансляцию или запись. | https:// |
registration | Обязательное: нет | required — нужна регистрация, none — не нужна. | "required" |
status | Обязательное: нет | cancelled — событие отменено. | "cancelled" |
Виды событий (kind):
teaching— Ученияritual— Пуджи и практикиmonastic— Монашеская общинаcourse— Курсыclass— Занятияcommunity— Жизнь общины и служениеother— Другое
{
"type": "event",
"id": "2026-tara-retreat",
"kind": "ritual",
"title": {
"en": "Green Tara retreat",
"uk": "Ретрит Зеленої Тари"
},
"summary": {
"en": "Three days of Tara practice with the resident lama.",
"uk": "Три дні практики Тари з ламою громади."
},
"location": {
"en": "Main shrine hall",
"uk": "Головна святиня"
},
"allDay": false,
"startDate": "2026-12-04",
"endDate": "2026-12-06",
"startTime": "09:00",
"endTime": "17:00",
"daily": true,
"registration": "required",
"url": "https://example.org/tara-2026",
"image": {
"file": "tara-retreat.jpg",
"credit": "Photo: Example Dharma Centre",
"rightsConfirmed": true,
"alt": {
"en": "Statue of Green Tara on the shrine",
"uk": "Статуя Зеленої Тари на вівтарі"
}
}
}Годовщина — type: "anniversary"
| Поле | Обязательное | Что это | Ограничение · Пример |
|---|---|---|---|
title | Обязательное: да | Название. | ≤ 160{ "en": "Lineage day" } |
subtitle | Обязательное: нет | Подзаголовок; только на тех языках, на которых есть название. | ≤ 200 |
summary | Обязательное: нет | Коротко, одно-два предложения. | ≤ 400 |
tibetan | Обязательное: да | Тибетский месяц и день; leapMonth — first, second или both. | month 1–12 · day 1–30{ "month": 3, "day": 10 } |
{
"type": "anniversary",
"id": "founding-teacher-parinirvana",
"title": {
"en": "Parinirvana of our founding teacher",
"uk": "Паринірвана засновника громади"
},
"tibetan": {
"month": 3,
"day": 10
}
}Слово на день — type: "note"
| Поле | Обязательное | Что это | Ограничение · Пример |
|---|---|---|---|
kind | Обязательное: да | quote — цитата, instruction — наставление, reminder — напоминание. | "quote" |
title | Обязательное: нет | Заголовок. | ≤ 120 |
text | Обязательное: да | Сам текст; переносы строк (стихи) сохраняются. | ≤ 600 |
attribution | Обязательное: при условии | Откуда: author — автор (для цитаты обязательно), work — произведение, ref — страница или глава, translator — переводчик. | author ≤ 120 · work ≤ 200 · ref ≤ 80 · translator ≤ 120{ "author": { "en": "…" }, "ref": "p. 12" } |
date | Обязательное: одно из двух | Один раз, в этот день. На одну дату — не больше трёх записей «слово на день». | YYYY-MM-DD"2026-12-01" |
tibetan | Обязательное: одно из двух | Каждый год, в этот тибетский день. | month 1–12 · day 1–30{ "month": 9, "day": 15 } |
{
"type": "note",
"id": "2026-12-01-quote",
"kind": "quote",
"date": "2026-12-01",
"text": {
"en": "The words of the quote, exactly as they are published.",
"uk": "Слова цитати — так, як їх надруковано."
},
"attribution": {
"author": {
"en": "Name of the teacher",
"uk": "Імʼя вчителя"
},
"work": {
"en": "Title of the book",
"uk": "Назва книжки"
},
"ref": "p. 12"
}
}Изображение — image
| Поле | Обязательное | Что это | Ограничение · Пример |
|---|---|---|---|
file | Обязательное: одно из двух | Имя файла изображения, который вы прикладываете к письму. Только латинские буквы, цифры, точка, дефис и подчёркивание, без пробелов: tara-retreat.jpg. | .jpg .jpeg .png .webp .heic"tara-retreat.jpg" |
url | Обязательное: одно из двух | Или адрес изображения, уже опубликованного для вашей общины. | https://www.firstbuddha.space/media/sangha/… |
credit | Обязательное: да | Подпись: кто автор. | ≤ 120"Photo: Example Dharma Centre" |
rightsConfirmed | Обязательное: да | true — у вас есть право публиковать это изображение. | true |
alt | Обязательное: нет | Что на изображении — для тех, кто его не видит. | ≤ 200{ "en": "…" } |
{
"file": "tara-retreat.jpg",
"credit": "Photo: Example Dharma Centre",
"rightsConfirmed": true,
"alt": {
"en": "Statue of Green Tara on the shrine",
"uk": "Статуя Зеленої Тари на вівтарі"
}
}Часовой пояс
Время событий — местное время общины. Укажите пояс в zone названием IANA: Europe/Kyiv, Asia/Kathmandu, America/New_York. Читатели в других поясах увидят событие в своём времени.
Идентификаторы
id записи остаётся тем же, когда вы отправляете файл снова: так календарь понимает, что это та же запись, изменённая, а не новая. Пишите его строчными латинскими буквами, цифрами и дефисами: 2026-tara-retreat, tulku-urgyen-parinirvana. От 1 до 64 знаков, без дефиса в начале и в конце; каждый id — только один раз во всём файле, среди событий, годовщин и слов на день вместе.
Файл заменяет всё прежнее
Каждый файл — полный снимок. Он заменяет всё, что община присылала раньше: записей, которых нет в новом файле, в календаре больше не будет.
Части
Слишком длинный файл (например, сотни записей «слово на день») можно разделить на части, до 20. Каждая часть — полный правильный файл с теми же source, contact, confirm, languages, machineTranslated и zone и полем part: { "n": 1, "of": 3 }. Отправляйте все части вместе.
Регулярные занятия
Регулярные занятия перечислите как отдельные события, по одному на дату, — до 300 событий. Если община ведёт календарь iCal или Google, лучше дайте нам его адрес.
Разное время в разные дни
Если у дней события разное время (суббота 10:00–18:00, воскресенье 10:00–14:00), сделайте отдельную запись на каждый день с тем же title или один промежуток от начала первого дня до конца последнего (daily: false). Не выбирайте одно время для всех дней.
Изображения
Только фотографии, которые вы сделали сами или на публикацию которых у вас есть письменное разрешение. Для каждого изображения подтвердите права (rightsConfirmed: true) и укажите подпись автора (credit).
JPEG, PNG, WebP или HEIC, до 10 МБ каждое, длинная сторона не меньше 600 пикселей (лучше от 1200). До 60 изображений в одной отправке. Имя файла пишите латиницей — буквы, цифры, точка, дефис, подчёркивание, без пробелов (tara-retreat.jpg); любой другой файл переименуйте перед отправкой.
Мы удаляем из фотографии скрытые данные (место съёмки, камеру), уменьшаем её и публикуем с вашей подписью.
Загрузки
Одни и те же файлы для всех языков:
- Шаблон — файл для заполнения
template.v1.json - Пример — заполненный файл вымышленной общины
example.v1.json - Схема JSON — для редакторов кода и автоматической проверки
schema.v1.json
Помощник ИИ (по желанию)
Если материал уже есть — расписание в PDF, посты, таблицы, список цитат, — помощник ИИ может превратить его в такой файл. Это лишь удобство: всё описанное выше работает и без него.
Помощник задаёт уточняющие вопросы (часовой пояс, языки, тибетская или западная дата, права на изображения, источники цитат), напоминает правила и выдаёт один файл в нашем формате и список изображений. Сам он ничего не отправляет: файл проверяете и отправляете вы. Инструкции для помощника написаны по-английски, но говорить он будет на вашем языке.
- Claude — навык (zip)
- В настройках Claude (Capabilities → Skills) загрузите zip-файл, а затем попросите Claude подготовить файл для Buddhist Calendar.
- ChatGPT — инструкции
- Создайте собственный GPT или проект, вставьте инструкции и добавьте как знания три файла ниже.
- Gemini — инструкции
- Создайте Gem, вставьте инструкции и добавьте те же три файла.
- Промпт для любого чат-бота
- Вставьте его в чат вместе со своим материалом.
Файлы для помощника:
Проверьте и отправьте
- Проверьте файл на странице проверки. Файл не покидает вашего браузера.
- Отправьте файл (все части) и изображения на burners.reissue3b@icloud.com с темой
Sangha file: <id>. Если изображения не помещаются в одно письмо, отправьте несколько писем с той же темой. - Редактор читает каждый файл. Одобренное появляется в календаре со следующим обновлением сайта; неодобренное не публикуется никогда.
- Чтобы изменить опубликованное, скачайте свой текущий файл с
https://www.firstbuddha.space/api/sangha/v1/<id>/contribution.json, исправьте его, снова добавьте contact и отправьте.
Конфиденциальность
Контактные данные в файле (contact) нужны только для ответа и удаляются ещё до публикации. Всё остальное в файле становится публичным.
