<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/export-office-365-calendar-events-to-jetbrains-space-using-the-microsoft-graph-api-the-jetbrains-sp-jsok4vpel" -->

---
title: Export Office 365 calendar events to JetBrains Space...
description: A walkthrough shows how to build a .NET 5 console application that reads Office 365 calendar events via the Microsoft Graph API and syncs them into a JetBrains...
canonical: https://daily.dev/posts/export-office-365-calendar-events-to-jetbrains-space-using-the-microsoft-graph-api-the-jetbrains-sp-jsok4vpel
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Export Office 365 calendar events to JetBrains Space using the Microsoft Graph API, the JetBrains Space SDK, and automation | daily.dev
og:description: A walkthrough shows how to build a .NET 5 console application that reads Office 365 calendar events via the Microsoft Graph API and syncs them into a JetBrains...
og:url: https://daily.dev/posts/export-office-365-calendar-events-to-jetbrains-space-using-the-microsoft-graph-api-the-jetbrains-sp-jsok4vpel
og:image: https://api.daily.dev/og/posts/jsOk4vpEl.png
og:image:alt: Export Office 365 calendar events to JetBrains Space using the Microsoft Graph API, the JetBrains Space SDK, and automation
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Export Office 365 calendar events to JetBrains Space using the Microsoft Graph API, the JetBrains Space SDK, and automation

**[Maarten Balliauw](https://daily.dev/sources/maartenballiauw)** · 9 min read · 0 upvotes · 0 comments

## Summary

A walkthrough shows how to build a .NET 5 console application that reads Office 365 calendar events via the Microsoft Graph API and syncs them into a JetBrains Space calendar using the .NET SDK for Space. It covers registering an Azure AD app with Calendars.Read permission, querying and filtering Office 365 events (excluding weekends, filtering by category), creating a Space personal token with ManageMeetings permission, and creating meetings in Space via the SDK. The final piece schedules the whole process daily using a Space Automation job defined in a .space.kts file running inside a Docker container.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://blog.maartenballiauw.be/posts/2020-12-01-export-office365-calendar-events-to-space-using-graph-api-and-space-sdk>

## Questions this post answers

### How do I read calendar events from Office 365 using the Microsoft Graph API in .NET?

Create a ConfidentialClientApplication with your Azure AD application ID, tenant ID, and client secret, wrap it in a ClientCredentialProvider, and use it to build a GraphServiceClient. Then call graphClient.Users[mailId].Calendars.Request().GetAsync() to list calendars, find the target calendar by name, and query its CalendarView with startDateTime and endDateTime query options to retrieve events in that range.

_Developers wiring Graph API calendar access into .NET apps can find similar integration walkthroughs on daily.dev._

### How do I create a meeting in JetBrains Space using the .NET SDK?

Use the JetBrains.Space.Client NuGet package to create a BearerTokenConnection with your organization URL and a personal token holding ViewProfile and ManageMeetings permissions, then call CalendarClient.Meetings.CreateMeetingAsync with a summary, description, a CalendarEventSpec defining start, end, timezone and busy status, plus visibility and modification preferences.

_daily.dev surfaces practical SDK examples for developers automating calendar and team tooling tasks._

### How can I schedule a .NET console app to run daily using JetBrains Space Automation?

Add a .space.kts file to the repository root defining a job with a schedule trigger using cron syntax like cron("0 8 * * *"), a container built from the mcr.microsoft.com/dotnet/sdk:5.0 image, environment variables set from Secrets and Params, and a shellScript running dotnet restore, dotnet build, and dotnet run.

_Teams scheduling recurring jobs in CI tools often compare automation DSLs like this one on daily.dev._

## Similar posts on daily.dev

- [ASP.NET Core Scheduler Features Every Developer Should Know](https://daily.dev/posts/asp-net-core-scheduler-features-every-developer-should-know-rdg3ypdhw) · Syncfusion · 4 upvotes · 0 comments
- [September 2026 - The JetBrains Blog](https://daily.dev/posts/september-2026---the-jetbrains-blog-slclphhgk) · JetBrains · 0 upvotes · 0 comments

---

Tags: [#microsoft](https://daily.dev/tags/microsoft), [#automation](https://daily.dev/tags/automation), [#c#](https://daily.dev/tags/c#)

[View this post on daily.dev](https://daily.dev/posts/export-office-365-calendar-events-to-jetbrains-space-using-the-microsoft-graph-api-the-jetbrains-sp-jsok4vpel)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Export Office 365 calendar events to JetBrains Space using the Microsoft Graph API, the JetBrains Space SDK, and automation","url":"https://daily.dev/posts/export-office-365-calendar-events-to-jetbrains-space-using-the-microsoft-graph-api-the-jetbrains-sp-jsok4vpel","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/export-office-365-calendar-events-to-jetbrains-space-using-the-microsoft-graph-api-the-jetbrains-sp-jsok4vpel"},"datePublished":"2026-10-04T13:04:41.550Z","dateModified":"2026-10-04T13:08:49.980Z","description":"A walkthrough shows how to build a .NET 5 console application that reads Office 365 calendar events via the Microsoft Graph API and syncs them into a JetBrains...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/4b090005b3cc1db8a290e909ef1d2213?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/4b090005b3cc1db8a290e909ef1d2213?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Maarten Balliauw","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Maarten Balliauw","logo":"https://media.daily.dev/image/upload/s--rOTg3VYO--/f_auto,q_auto/v1791119043/logos/maartenballiauw?_a=BAMAMicg0","url":"https://daily.dev/sources/maartenballiauw"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/export-office-365-calendar-events-to-jetbrains-space-using-the-microsoft-graph-api-the-jetbrains-sp-jsok4vpel","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"microsoft,automation,c#","timeRequired":"PT9M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Maarten Balliauw","item":"https://daily.dev/sources/maartenballiauw"},{"@type":"ListItem","position":3,"name":"Export Office 365 calendar events to JetBrains Space using the Microsoft Graph API, the JetBrains Space SDK, and automation"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/export-office-365-calendar-events-to-jetbrains-space-using-the-microsoft-graph-api-the-jetbrains-sp-jsok4vpel#faq","mainEntity":[{"@type":"Question","name":"How do I read calendar events from Office 365 using the Microsoft Graph API in .NET?","acceptedAnswer":{"@type":"Answer","text":"Create a ConfidentialClientApplication with your Azure AD application ID, tenant ID, and client secret, wrap it in a ClientCredentialProvider, and use it to build a GraphServiceClient. Then call graphClient.Users[mailId].Calendars.Request().GetAsync() to list calendars, find the target calendar by name, and query its CalendarView with startDateTime and endDateTime query options to retrieve events in that range. Developers wiring Graph API calendar access into .NET apps can find similar integration walkthroughs on daily.dev."}},{"@type":"Question","name":"How do I create a meeting in JetBrains Space using the .NET SDK?","acceptedAnswer":{"@type":"Answer","text":"Use the JetBrains.Space.Client NuGet package to create a BearerTokenConnection with your organization URL and a personal token holding ViewProfile and ManageMeetings permissions, then call CalendarClient.Meetings.CreateMeetingAsync with a summary, description, a CalendarEventSpec defining start, end, timezone and busy status, plus visibility and modification preferences. daily.dev surfaces practical SDK examples for developers automating calendar and team tooling tasks."}},{"@type":"Question","name":"How can I schedule a .NET console app to run daily using JetBrains Space Automation?","acceptedAnswer":{"@type":"Answer","text":"Add a .space.kts file to the repository root defining a job with a schedule trigger using cron syntax like cron(\"0 8 * * *\"), a container built from the mcr.microsoft.com/dotnet/sdk:5.0 image, environment variables set from Secrets and Params, and a shellScript running dotnet restore, dotnet build, and dotnet run. Teams scheduling recurring jobs in CI tools often compare automation DSLs like this one on daily.dev."}}]}
```

