3
minutter lesetid

Digital julekalender for ansatte - 3 bærekraftige løsninger som sprer glede

No items found.

Julen er en tid for å skape samhold og glede på arbeidsplassen. En digital julekalender for ansatte er en moderne og miljøvennlig måte å gjøre dette på, samtidig som den reduserer fysisk avfall og plast. Her presenterer vi tre kreative og bærekraftige løsninger som både er enkle å implementere og gir en digital vri på den tradisjonelle julekalenderen.

1. UkeQuiz-julekalender med Einar Tørnquist

Vil du gjøre desember ekstra morsom på jobb uten å bruke masse tid på planlegging? En digital julekalender for ansatte er den perfekte løsningen – og med UkeQuiz får du alt ferdig levert.

Her får du daglige quizzer og gåter laget av Einar Tørnquist, kjent for sin smarte humor og treffsikre spørsmål. Alt skjer digitalt, og kalenderen kan tilpasses bedriftens logo og farger, slik at den føles helt som deres egen.

De ansatte får en ny utfordring hver dag, og resultatene skaper engasjement, latter og litt vennskapelig konkurranse – uansett om kollegaene sitter på kontoret eller jobber hjemmefra.

👉 Gjør som mange andre bedrifter og velg UkeQuiz – en digital julekalender som samler ansatte, sprer glede og gjør førjulstiden til årets mest engasjerende periode.

2. Digital donasjonskalender for de ansatte

En donasjonskalender er et meningsfullt digitalt alternativ til en tradisjonell julekalender. I stedet for fysiske gaver, kan bedriften gi daglige donasjoner til veldedige formål på vegne av de ansatte. Dette kan inkludere støtte til miljøorganisasjoner, prosjekter som renser havet, eller trær som plantes i ansatte sitt navn. Med digitale løsninger fra leverandører som GiGavenVidere eller Glede, kan du sørge for at hver dag i adventstiden gir noe tilbake til samfunnet, og samtidig engasjerer de ansatte i noe som er både bærekraftig og givende.

3. Glede-julekalender med opplevelser

Med en Glede-julekalender kan du gi ansatte digitale gavekort som de kan bruke på små, hyggelige opplevelser hver søndag i advent. Disse gavekortene er universelle og kan brukes til å kjøpe en kaffe, kakao eller noe annet som gir julestemning. Dette er en perfekt måte å skape glede på uten å generere avfall fra tradisjonelle gaver. Løsningen er enkel å implementere digitalt, og den gir ansatte en personlig og miljøvennlig opplevelse i førjulstiden.

Julekalender til ansatte med Glede
Glede gjør det enkelt å skreddersy en julekalender til din bedrift

Hvilken digital julekalender passer best for dine ansatte?

En digital julekalender for ansatte er en flott måte å skape samhold og julestemning på, samtidig som du tar hensyn til miljøet. Med løsninger som Glede-julekalender, UkeQuiz og donasjonskalender, kan du bidra til en grønnere førjulstid, hvor ansatte får glede av opplevelser, quiz-moro og veldedighet – helt uten avfall. Start planleggingen av din digitale julekalender for ansatte i dag, og gi dem en julekalender som virkelig skiller seg ut!

Kontakt oss

Tusen takk! Vi har mottatt din henvendelse, og vil svare deg i løpet av én arbeidsdag 😊
Uups! Noe gikk galt, og meldingen ble ikke sendt. Prøv igjen, eller ta kontakt med oss på e-post: support@glede.app

Kom i gang med Glede

Gi gavekortet som kan brukes overalt — i butikk og på nett!

(function () { const DEBUG = false; const log = (...a) => DEBUG && console.log('[weglot-ui]', ...a); const normalize = (code) => { if (!code) return ''; code = String(code).toLowerCase(); if (code.includes('-')) code = code.split('-')[0]; // en-US -> en if (code === 'nb') code = 'no'; // Bokmål -> 'no' if (code === 'se') code = 'sv'; // common slip return code; }; // We cache a template per language so we can rebuild the list let TEMPLATES = { inner: {}, outer: {} }; function cacheTemplates(wrapper) { // Grab any [lang] blocks (from toggle OR list) and store inner/outer wrapper.querySelectorAll('[lang]').forEach(el => { const lang = normalize(el.getAttribute('lang')); if (!lang) return; if (!TEMPLATES.inner[lang]) TEMPLATES.inner[lang] = el.innerHTML; if (!TEMPLATES.outer[lang]) TEMPLATES.outer[lang] = el.outerHTML; }); log('cached templates', TEMPLATES); } function updateSwitcher(currentLang) { currentLang = normalize(currentLang); const wrappers = document.querySelectorAll('.wg-element-wrapper.sw6'); if (wrappers.length === 0) { log('no wrappers'); return; } else { wrappers.forEach(wrapper => { const toggle = wrapper.querySelector('.wg-dropdown-toggle'); const list = wrapper.querySelector('.wg-dd-1-list'); if (!toggle || !list) { log('missing toggle/list'); return; } // Ensure templates are cached (first run on this page load) if (!TEMPLATES.inner.no || !TEMPLATES.inner.sv || !TEMPLATES.inner.en) { cacheTemplates(wrapper); } // If any template still missing, bail (structure not as expected) if (!TEMPLATES.inner.no || !TEMPLATES.inner.sv || !TEMPLATES.inner.en) { log('incomplete templates'); return; } // 1) Set TOGGLE visual (attribute + optional state class + content) toggle.setAttribute('lang', currentLang); toggle.classList.remove('is-no','is-sv','is-en'); toggle.classList.add(`is-${currentLang}`); toggle.innerHTML = TEMPLATES.inner[currentLang]; // 2) Rebuild LIST to contain ONLY the two other languages (fresh each time) const ALL = ['no','sv','en']; const others = ALL.filter(l => l !== currentLang); // Build a clean list using the captured OUTER html so structure/classes match const htmlA = TEMPLATES.outer[others[0]]; const htmlB = TEMPLATES.outer[others[1]]; // Clear and insert exactly two items list.innerHTML = ''; // Insert via range to keep outerHTML intact const r1 = document.createRange(); r1.selectNode(list); list.appendChild(r1.createContextualFragment(htmlA)); const r2 = document.createRange(); r2.selectNode(list); list.appendChild(r2.createContextualFragment(htmlB)); // Optional: normalize classes on list items too list.querySelectorAll('[lang]').forEach(el => { const l = normalize(el.getAttribute('lang')); el.classList.remove('is-no','is-sv','is-en'); el.classList.add(`is-${l}`); }); log('updated → current:', currentLang, 'others:', others); } ) } } // Event delegation (survives DOM swaps) document.addEventListener('click', function (e) { const link = e.target.closest('.wg-element-wrapper.sw6 [lang]'); if (!link) return; e.preventDefault(); const lang = normalize(link.getAttribute('lang')); // Trigger Weglot switch (subdomain setups will reload; path setups will not) document.cookie = "glede_locale=" + lang + "; path=/; domain=.glede.app; max-age=31536000"; Weglot.switchTo(lang); // Do NOT call update here for subdomain setups; page will reload anyway. }); // Run AFTER Weglot has rendered (important on subdomain reload) function runAfterWeglotReady() { const run = () => { const lang = normalize(Weglot.getCurrentLang()); // Wait one frame to let Weglot paint its switcher nodes requestAnimationFrame(() => updateSwitcher(lang)); }; Weglot.on('initialized', run); // If already initialized (script included late), run immediately if (Weglot.getCurrentLang && Weglot.getCurrentLang()) run(); // For path-based projects (no reload), update visuals after change Weglot.on('languageChanged', (newLang) => { updateSwitcher(newLang) }); } // Boot when DOM is ready if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', runAfterWeglotReady); } else { runAfterWeglotReady(); } })();