Ett arrangement – eller en enkel ukentlig serie
Når: én milonga, en workshop, eller noe som gjentas likt hver uke.
Fyll ut skjemaet. For faste kvelder velger du «Gjentas: Ukentlig» og siste dato; hver dato blir et eget arrangement som senere kan endres eller avlyses for seg.
Tittel og beskrivelse kan skrives på norsk eller engelsk («Tekstspråk»). Har du teksten på begge språk, kan du legge den andre inn i de valgfrie feltene nederst – men ett språk er nok.
Åpne skjemaet ↗Flere datoer med variasjoner – fra regneark
Når: en serie der f.eks. DJ eller pris varierer, eller mange datoer på én gang.
- Første rad er kolonnenavnene, andre rad har alt som er felles (tittel, sted, tider, pris …).
- På de neste radene fyller du bare inn det som er annerledes – typisk Dato og DJ. Tom celle = som andre rad. Skriv
-for å fjerne en opplysning, og «Avlyst» i Status for avlyste datoer. - Merk alle cellene (også kolonnenavnene), kopier (Ctrl+C / ⌘C) og lim inn i skjemaet «Nytt arrangement (fra tabell)». Fungerer fra Excel, Google Regneark og Numbers.
| Tittel | Type | Dato | Starttid | Sluttid | Sted | Adresse | Arrangør | DJ | Pris (kr) | Lenke | Status |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Fredagsmilonga | Milonga | 16.10.2026 | 20:00 | 00:30 | Salen | Storgata 1, Oslo | Tangoklubben | DJ A | 150 | https://… | – |
| 23.10.2026 | DJ B | ||||||||||
| 30.10.2026 | Avlyst |
Kolonner
- Tittel
- Navnet på arrangementet. (påkrevd)
- Type
- Én eller flere, skilt med komma: Kurs, Workshop, Milonga, Practica, Festival, Maraton, Utetango, Annet – f.eks. «Kurs, Milonga» eller «Milonga, Utetango». (påkrevd)
- Dato
- Én dato per rad: ÅÅÅÅ-MM-DD eller DD.MM.ÅÅÅÅ. (påkrevd)
- Starttid / Sluttid
- TT:MM. Sluttid etter midnatt er greit (f.eks. 01:00). Starttid (påkrevd)
- Sted / Adresse
- Navn på stedet og gateadresse. (påkrevd)
- Arrangør
- Klubb eller person som arrangerer. (påkrevd)
- DJ / Lærere
- Navn – lærere skilt med komma.
- Pris (kr), Studentpris (kr), Kurspris (kr)
- Hele kroner.
- Musikk
- Tradisjonell, Alternativ / neo og/eller Levende orkester, skilt med komma.
- Flyer / Video
- Lenke til bilde / YouTube eller Vimeo.
- Lenke
- Arrangementets nettside eller Facebook-arrangement. (påkrevd)
- Beskrivelse
- Kort tekst.
- Tekstspråk
- «Norsk» (standard) eller «English»: språket i Tittel og Beskrivelse.
- Tittel (andre språk) / Beskrivelse (andre språk)
- Valgfritt: tittel og beskrivelse på det andre språket (engelsk hvis teksten er norsk).
- Status
- Skriv «Avlyst» på datoer som er avlyst.
Kolonnene kan stå i hvilken som helst rekkefølge, og du trenger bare de du bruker.
Med KI – fra en Facebook-side eller nettside
Når: arrangementet er allerede beskrevet et sted, og du vil slippe å skrive det inn selv.
- Kopier ledeteksten under.
- Åpne KI-assistenten (Copilot, Gemini, ChatGPT …), lim inn ledeteksten og legg til arrangementsteksten rett etter – kopier teksten fra arrangementssiden, eller legg ved et skjermbilde. KI-assistenter kan som regel ikke logge inn på Facebook selv.
- Les over svaret. KI kan ta feil – sjekk særlig dato, klokkeslett, sted og pris.
- Lim inn hele svaret i skjemaet «Nytt arrangement (JSON fra KI)».
You are helping to submit an event to Tangokalender, a community calendar for Argentine tango in Oslo.
Read the event information I give you below (text, screenshot or link contents) and convert it as follows.
Pages to use (open them if you can browse; if you cannot, work from what the user gives you):
- https://tango.oslo.no/schema/tango-event-submission.schema.json: the submission JSON Schema, with every field and the allowed values. Follow it exactly.
- https://tango.oslo.no/events.json: the upcoming events, as stored. Check it before you answer: whether the event is already listed, which events belong to the same series, and how venues, addresses, organisers and teachers are already spelt.
- https://github.com/Tangokalender/tangokalender.github.io/tree/main/events: every event as one JSON file, past dates too (events/YYYY/MM-month/YYYY-MM-DD-<id>.json). Use it when the series has no upcoming dates left, e.g. a new term of a course.
Rules:
- Output ONLY a JSON value that conforms to this JSON Schema, with no explanation around it: https://tango.oslo.no/schema/tango-event-submission.schema.json
- Required in every object: "title", "types", "start", "venue" (with "name" and "address"), "organizer" and "link". Everything else may be null or left out.
- "organizer" is the group or person the source names as organiser. If none is named, use the page or profile that published the event (on Facebook: the event host). Ask the user if you cannot tell.
- One JSON object per date. If the event repeats (e.g. "every Wednesday until 9 December"), output an array with one object per date and leave out dates the source says are cancelled. If no end date is given, include the next 4 dates.
- "start" and "end" are Oslo local time: "YYYY-MM-DDTHH:MM", without a time zone. Use "YYYY-MM-DD" when no time is given (e.g. festivals). If the event ends after midnight, "end" has the next day's date. If the year is not stated, use the next upcoming occurrence of that date.
- "types" is a list with one or more of: class (class or course), workshop (workshop or seminar), milonga (social dance evening), practica (practice evening), festival (festival or multi-day event with workshops), marathon (multi-day, mostly social dancing), outdoor (open-air / outdoor event (utetango); combine with e.g. milonga), other (anything else). Use several when the event combines them, e.g. ["class", "milonga"], or ["milonga", "outdoor"] for an open-air milonga.
- "music_style" (only if the source states it) is a list of: alternative (alternative or neo tango), live_orchestra (live orchestra), traditional (traditional / golden-age tango).
- Prices are whole Norwegian kroner as integers: "price_nok" (regular entry), "student_price_nok", "class_price_nok" (the class or course part). If a price covers a whole course or several dates (e.g. 910 kr for a 6-session course), put it in "class_price_nok" on each date, leave "price_nok" null, and say what it covers in "description" (e.g. "Pris for hele kurset.").
- "venue" is {"name", "address", "city"}; "city" is usually "Oslo".
- "link" is the URL of the event page (for example the Facebook event). "flyer_url" and "video_url" (YouTube or Vimeo) only if such links appear in the source.
- "description": 1–3 short, neutral sentences (level, entry, dress code). No marketing language. Write it in the language of the source if that is Norwegian or English, otherwise in English.
- "lang" is the language of "title" and "description": "nb" (Norwegian) or "en" (English).
- "translations" only if the source itself has the text in both languages: {"en": {"title": …, "description": …}} for a Norwegian event (or {"nb": …} for an English one). Never translate yourself.
- Use null (or [] for lists) for anything the source does not state. Never guess names, prices, times or addresses.
- Write people's names (DJ, teachers, organiser) only as they appear in the public event.
- If a date is already in the calendar (same title or organiser, venue and date), do not output it again. Tell the user that it is already listed and that corrections go through the «Rett opp» link on the event page.
Existing events as templates:
- When the event continues a series that is already in the calendar (a weekly milonga, a course, a monthly practica), or the user gives you an existing event as JSON, use the latest event of that series as a template. Find it in the pages above, by the same title, or by the same organiser and venue.
- Copy "title" exactly: a new date with the same title and the same organiser or venue is added to the existing series. Also copy "types", "venue", "organizer", "teachers", "music_style", the prices, "description", "lang" and "translations", unless the source says something different. The source always wins over the template.
- Take "start", "end", "dj", "flyer_url" and "video_url" from the source only. These change from date to date. "link" is the source's event page; use the template's only when the source has none.
- Even for a new event, if the venue or the organiser is already in the calendar, write the name and address exactly as they are there.
- Stored events are not submissions. Convert them: leave out "$schema", "id", "series", "status", "source", "source_url", "published_date", "first_seen", "last_verified", "crawl_timestamp" and "confidence". Shorten "start" and "end" to "YYYY-MM-DDTHH:MM" (no seconds, no "+01:00"/"+02:00"). Turn "video" {"platform", "id"} into "video_url" (https://www.youtube.com/watch?v=<id> or https://vimeo.com/<id>).
Example. For the input
Milonga del Fiordo 🎶 Fredag 12. mars kl. 21–01.30 på Kulturhuset Fjord, Storgata 9, Oslo.
DJ: Gjeste-DJ. Inngang 150 kr, studenter 100 kr. Tradisjonell tango hele kvelden.
Arr: Tangoforeningen Fjord. https://www.facebook.com/events/000000000000000
the output is
{
"title": "Milonga del Fiordo",
"types": ["milonga"],
"start": "2027-03-12T21:00",
"end": "2027-03-13T01:30",
"venue": {"name": "Kulturhuset Fjord", "address": "Storgata 9, Oslo", "city": "Oslo"},
"organizer": "Tangoforeningen Fjord",
"dj": "Gjeste-DJ",
"teachers": [],
"music_style": ["traditional"],
"price_nok": 150,
"student_price_nok": 100,
"class_price_nok": null,
"description": "Milonga med tradisjonell tango hele kvelden.",
"lang": "nb",
"flyer_url": null,
"video_url": null,
"link": "https://www.facebook.com/events/000000000000000"
}
Event information:
Faste kvelder blir én oppføring per dato – skriv gjerne til KI-assistenten hvilke datoer det gjelder, f.eks. «hver onsdag fra 7. oktober til 9. desember, ikke 18. november». Er det nye datoer for noe som allerede står i kalenderen, bruker KI-en en tidligere dato som mal, så navn, sted og pris blir skrevet likt. Kan ikke assistenten åpne lenker, kan du lime inn en tidligere dato fra events.json i tillegg.
Rette opp eller avlyse
Hvert arrangement har en lenke «Rett opp ↗». Skjemaet viser hva som står der nå; fyll bare inn det som skal endres, velg om endringen gjelder bare denne datoen eller også alle senere i serien, og send inn. Avlysninger meldes med «Status: Avlyst» – arrangementet blir stående som «Avlyst» i kalenderen.
For redaktører: endre mange arrangementer fra kommandolinjen
Når: du har skrivetilgang til data-repoet og vil endre mange datoer på én gang – avlyse en måned, gi en serie nytt sted, rette en pris.
tangoedit er et lite program for Linux, Windows og macOS (last ned, ingen installasjon). Kjør det i en klone av data-repoet; med Julia gjør julia --project=. -m TangoKalender edit … det samme.
- Finn arrangementene. Alle søkeordene må treffe;
nøkkel:tekstsøker i ett felt (series:,type:,venue:). Bare kommende arrangementer, avgrens med--from/--until. - Se før du endrer.
--dry-runviser endringene linje for linje,--previewsom kort. - Endre med
nøkkel=verdi:status=cancelled,price_nok=150,venue.name=…. Alt sjekkes før det skrives; ved feil endres ingenting. - Commit og lag en pull request. Siden oppdateres når den er flettet.
# hvilke treffer?
tangoedit series:onsdagsmilonga --from=2026-11-01 --until=2026-11-30
# slik blir de (ingenting skrives)
tangoedit series:onsdagsmilonga --from=2026-11-01 --until=2026-11-30 status=cancelled --dry-run
# avlys
tangoedit series:onsdagsmilonga --from=2026-11-01 --until=2026-11-30 status=cancelled
tangoedit --helpPersonvern
Bruk bare opplysninger som allerede er offentlige. Navn på DJ-er og lærere skal bare være med hvis de har godtatt det – du bekrefter dette i skjemaet. Ikke lim inn private meldinger eller personopplysninger i en KI-assistent.
Du trenger en (gratis) GitHub-konto for å sende inn. For utviklere og KI-agenter: llms.txt · innsendingsskjema (JSON Schema) · lagret format