net10.0net8.0
SynologyCalendarClient is a library to handle Synology calendar API requests.
Published
Aug 18, 2026
2mo ago
Total Downloads
389
389
Install
dotnet add package HaemmerElectronics.SeppPenner.SynologyCalendarClient --version 1.0.2
| Product | Versions |
|---|---|
| .NET |
README
SynologyCalendarClient
SynologyCalendarClient is a project to handle Synology calendar API requests. However, as the Synology calendar API description is very bad, it is not yet finished.
Available for
- Net 8.0
- Net 10.0
Net Core and Net Framework latest and LTS versions
Basic usage
// The type name repeats the namespace, so an alias keeps the code readable.
using SynologyClient = SynologyCalendarClient.Client.SynologyCalendarClient;
/// <summary>
/// The main method of the program.
/// </summary>
public static async Task Main()
{
// Create the logger.
var logger = LoggerConfig.GetLoggerConfiguration(nameof(Program))
.WriteTo.Sink((ILogEventSink)Log.Logger)
.CreateLogger();
// Create the Synology calendar client.
var synologyCalendarClient = new SynologyClient("https://example.com/calendars", logger);
// Login.
var loginResult = await synologyCalendarClient.Login(
3,
"username",
"password",
enableSynoToken: true,
format: LoginFormat.Sid);
// If the login failed, jump out.
if (loginResult is null || !loginResult.Success)
{
logger.Error("The Synology login failed");
return;
}
// Get all calendars.
var calendarsResult = await synologyCalendarClient.GetAllCalendars(
1,
true,
false);
// If the login failed, jump out.
if (calendarsResult is null || !calendarsResult.Success)
{
logger.Error("Loading calendars failed");
return;
}
}
Issues
- Creating a event still fails: https://stackoverflow.com/questions/77349742/how-to-use-the-synology-calendar-api-to-create-events-in-c
- Tested methods: Login, Logout, GetApiInformation, GetAllCalendars, GetCalendarById, CreateEvent, GetAllEvents, SetEventData, CreateEvent.
- Missing deserialization tests for Events and Tasks.
- The API description is pretty bad, so I decided to use CalDav. Checkout https://github.com/SeppPenner/CalDAVNet and https://github.com/SeppPenner/CalDavSynologySyncer for examples.
Change history
See the Changelog.
Changes from Previous Version
v1.0.1v1.0.2
Added Frameworks
net10.0
Removed Frameworks
net6.0
Added Dependencies
Newtonsoft.Json(net10.0)
Serilog(net10.0)
Removed Dependencies
Newtonsoft.Json(net6.0)
Serilog(net6.0)
Adoption Assessment
A verified publisher signal is available. Assess fit from the package's supported frameworks, license and dependency graph rather than popularity alone.
Compatibility metadata lists 2 target frameworks; confirm the exact target used by your application.
Related Guides & Workflows
Learn how to evaluate, integrate, or audit this package in your .NET project.