Tidrapportering ur kalendern: så slutar konsulter gissa timmar

Emil Haglund
Senior M365-specialist
Mötena finns redan i Outlook. Med Microsoft Graph blir de tidrader som bara ska godkännas, matchade mot rätt kund på deltagare och ämne. Så byggde vi det, och vad som krävs för att det ska hålla.
Fråga en konsult hur många timmar hen lade på en kund förra veckan och du får en siffra som är fel åt det lägre hållet. Inte av oärlighet, utan för att tidrapportering på fredag eftermiddag är en minnesövning. Mötet på tisdag som drog över, förberedelsen innan, mejlet efter. Det försvinner.
Det märkliga är att det mesta redan finns nedskrivet. Kalendern vet när mötet började, hur länge det pågick och vem som var med. Det enda som saknas är en koppling mellan den informationen och tidrapporten.
Så fungerar det
Projektportalen läser varje användares kalender via Microsoft Graph, en vecka i taget. Varje möte blir ett förslag till tidrad: datum, längd, och en gissning på kund och aktivitet. Konsulten går igenom veckan, justerar det som är fel och godkänner. Det som inte är kundtid, interna möten och lunch, filtreras bort innan det visas.
Outlook
Mötena finns redan
Graph
calendarView per vecka
Matchning
Deltagare och ämne
Godkänn
Konsulten justerar
Tidrader
SharePoint-lista
Outlook
Mötena finns redan
Graph
calendarView per vecka
Matchning
Deltagare och ämne
Godkänn
Konsulten justerar
Tidrader
SharePoint-lista
Nyckeln är matchningen. Den gör tre försök i ordning:
- Deltagarnas domän. Om någon i mötet har en adress på kundens domän är det kundens möte. Domänen finns på företaget i CRM:et.
- Ämnesraden. Kundnamn eller projektnamn i ämnet matchas mot aktiva projekt.
- Historik. Om samma mötesserie godkänts mot ett projekt tidigare föreslås det igen.
Träffar ingen av dem visas raden utan kund, och konsulten väljer. Valet sparas, så nästa vecka träffar matchningen.
Vad som krävs för att det ska hålla
Det tekniska är inte svårt. Microsoft Graph har ett anrop som ger alla händelser i ett tidsspann, inklusive återkommande möten utvecklade till enskilda tillfällen. Det som avgör om lösningen används är tre andra saker.
| Krav | Varför | Hur vi löste det |
|---|---|---|
| Rätt behörigheter | Att läsa andras kalendrar är känsligt | Delegerad behörighet: var och en ser bara sin egen kalender i portalen |
| Snabb genomgång | Tar godkännandet längre än att skriva in för hand används det inte | En vecka på en skärm, tangentbordsnavigering, godkänn allt med ett klick |
| Rätt granularitet | Tidrader behöver aktivitet, inte bara kund | Aktiviteterna kommer från projektet, som kommer från offerten |
OBS: Kalendern säger hur länge mötet var bokat, inte hur länge det pågick. Låt längden vara ett förslag som går att ändra, och visa start- och sluttid så att konsulten ser vad den kommer ifrån.
Det som inte står i kalendern
Allt arbete är inte möten. Förberedelse, utveckling och skrivande sker mellan mötena. Vår lösning är enkel: tidrader kan läggas till för hand, och ett projekt kan ha en standardaktivitet för "arbete utan möte". Målet är inte att kalendern ska vara hela sanningen, utan att den ska vara utgångspunkten så att det som ska läggas till är litet.
Ett oväntat resultat var att konsulterna började boka in sitt eget arbete i kalendern, för att det var lättare än att skriva in det efteråt. Kalendern blev planering och rapport samtidigt.
Från tidrad till faktura
Godkända tidrader ligger i en SharePoint-lista per projekt. När månaden stängs summeras de per aktivitet och person, och summeringen blir fakturans bilaga. Kunden ser inte bara en summa utan vad som gjorts, i vilket projekt, av vem. Det är den biten som gör att fakturan sällan ifrågasätts.
Lösningen finns beskriven som del sju av vårt flaggskeppscase, och kopplingen mellan Outlook och tidraderna har en egen sida.
Vanliga frågor
Läser ni alla anställdas kalendrar?
Nej. Varje person ser och godkänner sin egen kalender i portalen med sina egna behörigheter. Ingen administratör ser någon annans kalender genom lösningen.
Vad händer med privata möten?
Möten markerade som privata i Outlook returneras utan ämne och deltagare och filtreras bort. Interna möten utan extern deltagare visas inte heller som kundtid.
Fungerar det med Google Workspace?
Mönstret ja, koden nej. Google Calendar har ett motsvarande API. Matchningen på domän och ämne är densamma.
Hur hanterar ni möten med flera kunder?
Raden visas utan kund och konsulten delar upp den. Det är sällsynt nog att en manuell hantering är bättre än en gissning.
Skapad med AI
Om artikeln
Denna artikel är framtagen delvis med hjälp av AI (Anthropic Claude) och kan därför innehålla felaktigheter eller generaliseringar. Innehållet är granskat av en människa innan publicering, men vi rekommenderar att du verifierar viktig information innan du fattar beslut baserat på den.