Skip to main content

Workout Calendar - Releases

← App details

Nextcloud 35

Workout Calendar 1.0.0
Release Details
UpdatedNov. 2, 2026, 6:11 p.m.
Changelog

First release.

Added

  • Garmin Connect activities appear as events in a Nextcloud calendar, synced in the background by the Nextcloud cron, without anyone being signed in.
  • Every person on the instance connects their own Garmin account. The password is stored encrypted and only used to sign in.
  • A setup wizard in the personal settings: sign in to Garmin, choose a new or an existing calendar, choose how far back to import.
  • History import of 30 days, 90 days, 1 year or the complete Garmin history. Large imports run in stages over several background runs.
  • Events with sport icon, sport and distance in the title, and duration, distance, pace or speed, heart rate, elevation and a link to Garmin Connect in the description. Activities changed in Garmin are updated, each activity becomes exactly one event.
  • Choice of what happens to events of activities deleted in Garmin: keep them, mark them as cancelled or delete them, checked for a configurable number of days.
  • Overview with connection state, last and next sync, last error, event count and imported period. Manual sync, adjustable sync interval with optional random variation.
  • Changing the calendar later, optionally moving the existing events.
  • Signing out of Garmin and resetting the app, each with the choice to keep or remove the events.
  • A notification when the sync has failed for a day, and a log that names the failed step and error category without repeating a lasting failure.
  • English and German user interface.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECjCCAvICAhSGMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYxMTAyMTcwMjMxWhcNMzcwMjA3MTcwMjMxWjAaMRgwFgYD
VQQDDA93b3Jrb3V0Y2FsZW5kYXIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK
AoICAQCgvV6ngQhnGKc0Ia36M3DgAE/ouNq7BjpKZnnXbaODxlEhfOa9luO8txX1
yT7w+JPejwmE+pKogQzZVzwO1CCzgJh7qP6/gdNCTuxydJfIjXndlXN156gGVH2S
aZRHMD1r1LV0IWNkjvAATYy3ak6WEbRWGaRgefSsMVbnNJfdr260UB2EcbNNS2YL
EjCN3K3+Qlx9kBLU6JkiOc/ExilycoVpMN4/9QD5oiRErNCZV6OS0hWKD8YIL7QJ
KUC0dlr43485kEZGbpJLZ5/pth2Ao488CixoL7qSmPxajXorla8E5wgpLIlSmpYh
S+HcZL+WA5DbJ5Yq3RwFdnEUK70TdDTjGEDNx+VLoKWNR/MyKCLs+CKz7ad2rvLu
FUSFGzh97k9gmFCxY3FMfIF0KCNDNuqa+pVn0CugIY3rZWXJwMWOLTk7sQ4FZVRD
HsnGUcyfBzFGN/4Us6pZQQ785ENcTG5N9vGhSdZFktExG0JY5Bx8LvTbX04SqabQ
xKb5Av0wicXepm1UguwwpbrK9BYiTDQIw3/BJJdz1A6lT2QS/QV3XfMeMBUTFR2d
PxyDyeU/xwqjxpXQasrFvnGfZu3+3/wbmVIz0FJeiLU0YvkkPb7xJVRygXcaVpdJ
DX0hxQ4MfqZUm18ZZx73U8Qa+DamTUejd0EyLaeVN0GbXJuIhQIDAQABMA0GCSqG
SIb3DQEBCwUAA4IBAQBwZk0JrpxTHInyCTdpJfvx1/1y3CvPoDieoGAsMqfz9fZ8
7xDAwdZ+ucjyj7s0LfJcAk6OpRvJr6ACkasqgxXOwNr/eWROWcqnpLl74Yi8XXW5
N7ZKATkalJnAYbJWqoD77ztcrayHxyeowB1ruw7WjaSwu0BdLAQz19Uhss/nS+2Q
yzt3O0NrwZhAHO7bwlTxa2EGPdifvxbuqUnkB3x35qQmrM/L5K9fYWGaUxLrvtio
SCnKOH4eXX2rCGC4tNt8ApoCe24doRShoK1F4o4DpOTO5Cc8JqUo6q6g8ulZtFpK
QQg5Og9/SDZ5mU04NCnsuE+szDq+ph2aBiEgRRaM
-----END CERTIFICATE-----
SignatureekCXec9MaGdgK+eDibxdaYrho5LGqwsSlwxihR2+oJTu7pJwcOj8nSEzBO1GHYC3SCGyWTjWqzw3ps0O+HUSB48ImQtmwaZLqo7dKk6gEjzfbBA6ZfYo52kabjq+KmZe4mi9cacruEuTo5gsulp/RfBv6XptawoiYt3Rct416wtu/wd0BWrFU3qALEyG8bqoxWvUZZB2UMNMt21uCxeWL0XiIfT3P64Pc2BSAyCmg6QsX+3WN1fT0c510zOrMxdADNoI44AFRJMA5+boWtudXBiFtipTELdk5sHDCMHnwqc7edpw/cyKehCZmdukCKPpT/UKTvkLwQ8V04PFrdpO/cLyLQFvIKDdF8xC8B5ylRNnVyiiRtPL5q3oNX7v+y0WbjCZjxmPcFVB1TbHG11BWlUcz0eSkDIcKDWYR6qRWkXPYokV34Ktt+RYQ9E90rYZr422I/CwnLLgCzYQATYXavl0Ee6Da9/1Q6PEdFKy09qqgDzvxsee+ZCpML1SDBCR6PvJLKCvMTlJflvB+LyfV8gI/U8lpR2IJGtjoGneJPzdflIRkuZHmmWF5OwIs/qUNq0rjp5/zb4J9CZl+WzzmPE2fwxqmYOEbrTHujIViLziSZD1L+ddGgGtbVtHEL+yulxXYMGnNV/NV64AZ9iwF6XPpqROgkFCadE0E4l+UII=
Signature digestsha512
Dependencies
Required Nextcloud versions >=33.0.0,<36.0.0
Minimum Integer bits32
PHP>=8.2.0
PHP extensions curl

Nextcloud 34

Workout Calendar 1.0.0
Release Details
UpdatedNov. 2, 2026, 6:11 p.m.
Changelog

First release.

Added

  • Garmin Connect activities appear as events in a Nextcloud calendar, synced in the background by the Nextcloud cron, without anyone being signed in.
  • Every person on the instance connects their own Garmin account. The password is stored encrypted and only used to sign in.
  • A setup wizard in the personal settings: sign in to Garmin, choose a new or an existing calendar, choose how far back to import.
  • History import of 30 days, 90 days, 1 year or the complete Garmin history. Large imports run in stages over several background runs.
  • Events with sport icon, sport and distance in the title, and duration, distance, pace or speed, heart rate, elevation and a link to Garmin Connect in the description. Activities changed in Garmin are updated, each activity becomes exactly one event.
  • Choice of what happens to events of activities deleted in Garmin: keep them, mark them as cancelled or delete them, checked for a configurable number of days.
  • Overview with connection state, last and next sync, last error, event count and imported period. Manual sync, adjustable sync interval with optional random variation.
  • Changing the calendar later, optionally moving the existing events.
  • Signing out of Garmin and resetting the app, each with the choice to keep or remove the events.
  • A notification when the sync has failed for a day, and a log that names the failed step and error category without repeating a lasting failure.
  • English and German user interface.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECjCCAvICAhSGMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYxMTAyMTcwMjMxWhcNMzcwMjA3MTcwMjMxWjAaMRgwFgYD
VQQDDA93b3Jrb3V0Y2FsZW5kYXIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK
AoICAQCgvV6ngQhnGKc0Ia36M3DgAE/ouNq7BjpKZnnXbaODxlEhfOa9luO8txX1
yT7w+JPejwmE+pKogQzZVzwO1CCzgJh7qP6/gdNCTuxydJfIjXndlXN156gGVH2S
aZRHMD1r1LV0IWNkjvAATYy3ak6WEbRWGaRgefSsMVbnNJfdr260UB2EcbNNS2YL
EjCN3K3+Qlx9kBLU6JkiOc/ExilycoVpMN4/9QD5oiRErNCZV6OS0hWKD8YIL7QJ
KUC0dlr43485kEZGbpJLZ5/pth2Ao488CixoL7qSmPxajXorla8E5wgpLIlSmpYh
S+HcZL+WA5DbJ5Yq3RwFdnEUK70TdDTjGEDNx+VLoKWNR/MyKCLs+CKz7ad2rvLu
FUSFGzh97k9gmFCxY3FMfIF0KCNDNuqa+pVn0CugIY3rZWXJwMWOLTk7sQ4FZVRD
HsnGUcyfBzFGN/4Us6pZQQ785ENcTG5N9vGhSdZFktExG0JY5Bx8LvTbX04SqabQ
xKb5Av0wicXepm1UguwwpbrK9BYiTDQIw3/BJJdz1A6lT2QS/QV3XfMeMBUTFR2d
PxyDyeU/xwqjxpXQasrFvnGfZu3+3/wbmVIz0FJeiLU0YvkkPb7xJVRygXcaVpdJ
DX0hxQ4MfqZUm18ZZx73U8Qa+DamTUejd0EyLaeVN0GbXJuIhQIDAQABMA0GCSqG
SIb3DQEBCwUAA4IBAQBwZk0JrpxTHInyCTdpJfvx1/1y3CvPoDieoGAsMqfz9fZ8
7xDAwdZ+ucjyj7s0LfJcAk6OpRvJr6ACkasqgxXOwNr/eWROWcqnpLl74Yi8XXW5
N7ZKATkalJnAYbJWqoD77ztcrayHxyeowB1ruw7WjaSwu0BdLAQz19Uhss/nS+2Q
yzt3O0NrwZhAHO7bwlTxa2EGPdifvxbuqUnkB3x35qQmrM/L5K9fYWGaUxLrvtio
SCnKOH4eXX2rCGC4tNt8ApoCe24doRShoK1F4o4DpOTO5Cc8JqUo6q6g8ulZtFpK
QQg5Og9/SDZ5mU04NCnsuE+szDq+ph2aBiEgRRaM
-----END CERTIFICATE-----
SignatureekCXec9MaGdgK+eDibxdaYrho5LGqwsSlwxihR2+oJTu7pJwcOj8nSEzBO1GHYC3SCGyWTjWqzw3ps0O+HUSB48ImQtmwaZLqo7dKk6gEjzfbBA6ZfYo52kabjq+KmZe4mi9cacruEuTo5gsulp/RfBv6XptawoiYt3Rct416wtu/wd0BWrFU3qALEyG8bqoxWvUZZB2UMNMt21uCxeWL0XiIfT3P64Pc2BSAyCmg6QsX+3WN1fT0c510zOrMxdADNoI44AFRJMA5+boWtudXBiFtipTELdk5sHDCMHnwqc7edpw/cyKehCZmdukCKPpT/UKTvkLwQ8V04PFrdpO/cLyLQFvIKDdF8xC8B5ylRNnVyiiRtPL5q3oNX7v+y0WbjCZjxmPcFVB1TbHG11BWlUcz0eSkDIcKDWYR6qRWkXPYokV34Ktt+RYQ9E90rYZr422I/CwnLLgCzYQATYXavl0Ee6Da9/1Q6PEdFKy09qqgDzvxsee+ZCpML1SDBCR6PvJLKCvMTlJflvB+LyfV8gI/U8lpR2IJGtjoGneJPzdflIRkuZHmmWF5OwIs/qUNq0rjp5/zb4J9CZl+WzzmPE2fwxqmYOEbrTHujIViLziSZD1L+ddGgGtbVtHEL+yulxXYMGnNV/NV64AZ9iwF6XPpqROgkFCadE0E4l+UII=
Signature digestsha512
Dependencies
Required Nextcloud versions >=33.0.0,<36.0.0
Minimum Integer bits32
PHP>=8.2.0
PHP extensions curl

Nextcloud 33

Workout Calendar 1.0.0
Release Details
UpdatedNov. 2, 2026, 6:11 p.m.
Changelog

First release.

Added

  • Garmin Connect activities appear as events in a Nextcloud calendar, synced in the background by the Nextcloud cron, without anyone being signed in.
  • Every person on the instance connects their own Garmin account. The password is stored encrypted and only used to sign in.
  • A setup wizard in the personal settings: sign in to Garmin, choose a new or an existing calendar, choose how far back to import.
  • History import of 30 days, 90 days, 1 year or the complete Garmin history. Large imports run in stages over several background runs.
  • Events with sport icon, sport and distance in the title, and duration, distance, pace or speed, heart rate, elevation and a link to Garmin Connect in the description. Activities changed in Garmin are updated, each activity becomes exactly one event.
  • Choice of what happens to events of activities deleted in Garmin: keep them, mark them as cancelled or delete them, checked for a configurable number of days.
  • Overview with connection state, last and next sync, last error, event count and imported period. Manual sync, adjustable sync interval with optional random variation.
  • Changing the calendar later, optionally moving the existing events.
  • Signing out of Garmin and resetting the app, each with the choice to keep or remove the events.
  • A notification when the sync has failed for a day, and a log that names the failed step and error category without repeating a lasting failure.
  • English and German user interface.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECjCCAvICAhSGMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYxMTAyMTcwMjMxWhcNMzcwMjA3MTcwMjMxWjAaMRgwFgYD
VQQDDA93b3Jrb3V0Y2FsZW5kYXIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK
AoICAQCgvV6ngQhnGKc0Ia36M3DgAE/ouNq7BjpKZnnXbaODxlEhfOa9luO8txX1
yT7w+JPejwmE+pKogQzZVzwO1CCzgJh7qP6/gdNCTuxydJfIjXndlXN156gGVH2S
aZRHMD1r1LV0IWNkjvAATYy3ak6WEbRWGaRgefSsMVbnNJfdr260UB2EcbNNS2YL
EjCN3K3+Qlx9kBLU6JkiOc/ExilycoVpMN4/9QD5oiRErNCZV6OS0hWKD8YIL7QJ
KUC0dlr43485kEZGbpJLZ5/pth2Ao488CixoL7qSmPxajXorla8E5wgpLIlSmpYh
S+HcZL+WA5DbJ5Yq3RwFdnEUK70TdDTjGEDNx+VLoKWNR/MyKCLs+CKz7ad2rvLu
FUSFGzh97k9gmFCxY3FMfIF0KCNDNuqa+pVn0CugIY3rZWXJwMWOLTk7sQ4FZVRD
HsnGUcyfBzFGN/4Us6pZQQ785ENcTG5N9vGhSdZFktExG0JY5Bx8LvTbX04SqabQ
xKb5Av0wicXepm1UguwwpbrK9BYiTDQIw3/BJJdz1A6lT2QS/QV3XfMeMBUTFR2d
PxyDyeU/xwqjxpXQasrFvnGfZu3+3/wbmVIz0FJeiLU0YvkkPb7xJVRygXcaVpdJ
DX0hxQ4MfqZUm18ZZx73U8Qa+DamTUejd0EyLaeVN0GbXJuIhQIDAQABMA0GCSqG
SIb3DQEBCwUAA4IBAQBwZk0JrpxTHInyCTdpJfvx1/1y3CvPoDieoGAsMqfz9fZ8
7xDAwdZ+ucjyj7s0LfJcAk6OpRvJr6ACkasqgxXOwNr/eWROWcqnpLl74Yi8XXW5
N7ZKATkalJnAYbJWqoD77ztcrayHxyeowB1ruw7WjaSwu0BdLAQz19Uhss/nS+2Q
yzt3O0NrwZhAHO7bwlTxa2EGPdifvxbuqUnkB3x35qQmrM/L5K9fYWGaUxLrvtio
SCnKOH4eXX2rCGC4tNt8ApoCe24doRShoK1F4o4DpOTO5Cc8JqUo6q6g8ulZtFpK
QQg5Og9/SDZ5mU04NCnsuE+szDq+ph2aBiEgRRaM
-----END CERTIFICATE-----
SignatureekCXec9MaGdgK+eDibxdaYrho5LGqwsSlwxihR2+oJTu7pJwcOj8nSEzBO1GHYC3SCGyWTjWqzw3ps0O+HUSB48ImQtmwaZLqo7dKk6gEjzfbBA6ZfYo52kabjq+KmZe4mi9cacruEuTo5gsulp/RfBv6XptawoiYt3Rct416wtu/wd0BWrFU3qALEyG8bqoxWvUZZB2UMNMt21uCxeWL0XiIfT3P64Pc2BSAyCmg6QsX+3WN1fT0c510zOrMxdADNoI44AFRJMA5+boWtudXBiFtipTELdk5sHDCMHnwqc7edpw/cyKehCZmdukCKPpT/UKTvkLwQ8V04PFrdpO/cLyLQFvIKDdF8xC8B5ylRNnVyiiRtPL5q3oNX7v+y0WbjCZjxmPcFVB1TbHG11BWlUcz0eSkDIcKDWYR6qRWkXPYokV34Ktt+RYQ9E90rYZr422I/CwnLLgCzYQATYXavl0Ee6Da9/1Q6PEdFKy09qqgDzvxsee+ZCpML1SDBCR6PvJLKCvMTlJflvB+LyfV8gI/U8lpR2IJGtjoGneJPzdflIRkuZHmmWF5OwIs/qUNq0rjp5/zb4J9CZl+WzzmPE2fwxqmYOEbrTHujIViLziSZD1L+ddGgGtbVtHEL+yulxXYMGnNV/NV64AZ9iwF6XPpqROgkFCadE0E4l+UII=
Signature digestsha512
Dependencies
Required Nextcloud versions >=33.0.0,<36.0.0
Minimum Integer bits32
PHP>=8.2.0
PHP extensions curl