Skip to main content

TimeSister - Releases

← App details

Nextcloud 35

TimeSister 0.10.2
Release Details
UpdatedOct. 5, 2026, 4:10 p.m.
Changelog

API unchanged (api: 2), only additions; the capability gains privacy_notice: 1.

  • Privacy notice per team. GET /team/privacy?format=html|md gives every member a privacy notice of their team as a download (timesister-privacy-<slug>-<date>.html|md), in the language of the account; the Nextcloud admin gets it for any team with GET /admin/teams/{id}/privacy. The content is read live from the team: members with role, Team Admins, Leads with their projects, the shares matrix (who sees or edits whose time calendar), backup owner, consents, modules switched on, absence categories, vacation calendar, externals (count only, never a feed address). Nine sections: controller and contact, purpose, data and categories, where the data is stored, who has access, backups, retention and deletion with the legal references as a template (ArG 46, ArGV 1 Art. 73, OR 958f, DSG 6/19/25/32, GDPR 5(1)(e)/6(1)(b,c)/13/15/17(3)(b)/30/32), rights of the persons, and the note that it is a template from the team's settings and no legal advice. Empty fields read “[to be completed]”. The HTML is printable and loads nothing from outside; everything foreign is escaped.
  • Record setting/privacy. Team Admins keep the entries like setting/settings: controller {name, address, contact}, privacy_contact, hosting {provider, location}, retention {time_years (5), billing_years (10), note}, law (ch, eu, both; default both), authority. Texts at most 500 characters, years 0–30, otherwise 422. The Nextcloud admin writes it from the admin page through PUT /admin/teams/{id}/privacy with { data }.
  • Admin page: “Edit team” gains the section “Privacy” with these fields and the buttons “Privacy notice (HTML)” and “(Markdown)”.
  • New team from a team ZIP. “New team” takes a team ZIP as a second way: POST /admin/teams/import/preview (without a team) checks the file and names name, short name and the people of the backup; the admin chooses the team group, may change name and short name and maps the people to accounts here; POST /admin/teams/from-zip with { token, name, slug, group, mapping } creates the team and imports into it (merge). A taken short name or group is 409 before anything is created; fails the import, the empty team is removed again and the message says so.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBTCCAu0CAhQ5MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYxMDAyMTIyNTA2WhcNMzcwMTA3MTIyNTA2WjAVMRMwEQYD
VQQDDAp0aW1lc2lzdGVyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
pIgdY1zTI1ijZ+0dxFCrnqRRDx4NJyPi2Uv+S7CFcpdDZSfE4rF40RTCOqnPKDmm
GFX1b3a96FvJ8b53HZx9mb/wqA4DZfIy3qW+RLsIBNwBQdinFYD78SXWiqN6Ezy7
AV+vzZKl3g5QBxKCjyimBzld4PcrQa7H+UvaU51I+N876QNf/dEuVM7pNvzwqSlS
NVxKMYNhRfEmDrs7oddDDQJZ6xXFXBct8jMAUYsk/bl+gN3C7Qj7q4mdYkVNeUYC
MCLFRY+Vu65OTqQja+ircyWTP0BpPxbipnNhfrRgP4p2e1e1svPhvBuFyZ9wb+qP
LQ9BdMHrbCJ6fZ/QzExIPyvwq64IzusKP2jTu2IN0mDTh9r0hvxo4TlqAsfDPuOn
8LaWQ347jSTI211aodR5+F+k752t/1LuqPypj3pMwqDJ1TGTHKHV5lxK01LpDDwh
NxxTwmL7veeShsCkqYcEBE80mL3GDCSTqS072lBly+vkz3CJhgLBn03Foqtn9bBA
oyYbPKsS2naM1CJAEn2b+1jsuNY3A6fWdt8qs+ewHFrt22hbSRWtVwLASIpq+hf5
F/tkVB+beTMRp9ttcA8LiBftETG67Dn4bo26wxXSpWdMFemW3iax2VcLBb/Rszym
AFdXK5Kvpf8B0xBOE2oeAss7VL41+4BAKnjur16ainkCAwEAATANBgkqhkiG9w0B
AQsFAAOCAQEAlS9tWEgqRQeUGNoe+V/ZsNpXmYATepbZJTDnWPToJjyypJVW+V1D
94MnNEa2j1Sjp2ZVsLDzgnU4nt3EAvlMXRv/3ViuRn4JtzEAeL+QinDuN6/qvo2T
X7QneJLXaFC/xTNQiOZJPuQ9/8lu/Ve+IB6gvADdnPzlnkp/CZF//EZHYZBQ28OX
N4p/XdACnNShyUwJkyQ07euusw1YfJlphc+arH9alTEekWhNmR5VYNgpyu/X+4yQ
Cc1z2Pjd8oyjjcjqb6Pnowy9TV0mzxYXsUdBAT/CcNfe6en8G85/87m+dw5JB6c2
eTVpa8nbKAO5D//WsXmsWjPMheU6NkaYlg==
-----END CERTIFICATE-----
SignaturejEQ+HIQc3xd3ofU2+tzm7YjzndBoI24ZaUUlSenemv/oVYRfzvlILprDxlfbmB65Btdc786A0+A2R6aIQvfAzeIa2rsbt2JDz1wto4x/3BAn2KH5P3GqzyGwL0QJvgTcglQkQ1BQOlQbpvuKIMpZ+S/hDY3XF2nelakAKxZGn9emn3uJvYTF5ZeLwKwVVPjosuRV8ibHAkmRdayr3Y+1Poo/38W2c6lUSFGym8NSFC3FHiyk0/DyXyontKV6VD72v5o3IfDC1CqQZ0PCgAaWMgbq6gUgWpO8ZiBaVQ1/U5F9I8yHgWhoL8xUfBCgS3BYChqKFOgDAQojZy/azC4hqbht9NYW02LcPp+jCdKvsLkFYfNSQyeEnWpvvrRpw3qc33zWOoEH38eNAbfb/JOBTu0oba+vvxjwlAjXh3tzmjt2Aep/DrqSNG7meXU3bs03uQ5gnM77d64M5pkpYtkdYLFwYAt9BQV7AlSkSM1x1o1WXz1qvqwQPQfIyJ1RrjW9w/iHFJ+vX/uHd36ivUZd1k6yP90XlCucJyb71w4lHukjhnNpU36sxFpUjxP3MoXTMogalpZtSk/iBENncuJHxipZ8skYtXwbKAFeJgZ3tCHDkGNVVITCuO7QQwaPZP57jeSvqBi3nbefYswiwKf3omYBDwA4i9Q/9cLkFr1DmIU=
Signature digestsha512
Dependencies
Required Nextcloud versions >=33.0.0,<36.0.0
Minimum Integer bits32
PHP>=8.2.0
TimeSister 0.10.0
Release Details
UpdatedOct. 5, 2026, 1:45 p.m.
Changelog

API unchanged (api: 2), only additions; the capability gains team_backup: 1.

  • Team backup as a ZIP. On the admin page, every team has “Back up team (ZIP)” (GET /admin/teams/{id}/export): manifest.json with checksums, team.json (team, members, shares, consents), every record with its history under records/<kind>/<key>.json, status.json, absences.json and a fresh export of every active member's time calendar under calendars/. Person records carry their feed, so the ZIP is confidential (contains_secrets: true).
  • Restore and move. “Restore from ZIP” uploads the ZIP for a preview (POST /admin/teams/{id}/import/preview): the people of the backup, whether their account exists here, and the accounts of this Nextcloud to map to. POST /admin/teams/{id}/import with token, mapping (old account → new account or null for “without account”) and mode merge or replace writes records with history, roles, shares, consents, absences and status in one transaction, puts mapped accounts into the team group and stores the calendars as backups per person (source: "import"), which people fetch in the Mac app under “Old events”. Before importing into a team with content, the server stores a backup of it (protected and with the backup owner under TimeSister Backups/_team/).
  • Limits: ZIP 200 MB, entries 50 MB, 600 MB unpacked, no absolute paths or ..; only Nextcloud admins, write routes with brute-force protection.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBTCCAu0CAhQ5MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYxMDAyMTIyNTA2WhcNMzcwMTA3MTIyNTA2WjAVMRMwEQYD
VQQDDAp0aW1lc2lzdGVyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
pIgdY1zTI1ijZ+0dxFCrnqRRDx4NJyPi2Uv+S7CFcpdDZSfE4rF40RTCOqnPKDmm
GFX1b3a96FvJ8b53HZx9mb/wqA4DZfIy3qW+RLsIBNwBQdinFYD78SXWiqN6Ezy7
AV+vzZKl3g5QBxKCjyimBzld4PcrQa7H+UvaU51I+N876QNf/dEuVM7pNvzwqSlS
NVxKMYNhRfEmDrs7oddDDQJZ6xXFXBct8jMAUYsk/bl+gN3C7Qj7q4mdYkVNeUYC
MCLFRY+Vu65OTqQja+ircyWTP0BpPxbipnNhfrRgP4p2e1e1svPhvBuFyZ9wb+qP
LQ9BdMHrbCJ6fZ/QzExIPyvwq64IzusKP2jTu2IN0mDTh9r0hvxo4TlqAsfDPuOn
8LaWQ347jSTI211aodR5+F+k752t/1LuqPypj3pMwqDJ1TGTHKHV5lxK01LpDDwh
NxxTwmL7veeShsCkqYcEBE80mL3GDCSTqS072lBly+vkz3CJhgLBn03Foqtn9bBA
oyYbPKsS2naM1CJAEn2b+1jsuNY3A6fWdt8qs+ewHFrt22hbSRWtVwLASIpq+hf5
F/tkVB+beTMRp9ttcA8LiBftETG67Dn4bo26wxXSpWdMFemW3iax2VcLBb/Rszym
AFdXK5Kvpf8B0xBOE2oeAss7VL41+4BAKnjur16ainkCAwEAATANBgkqhkiG9w0B
AQsFAAOCAQEAlS9tWEgqRQeUGNoe+V/ZsNpXmYATepbZJTDnWPToJjyypJVW+V1D
94MnNEa2j1Sjp2ZVsLDzgnU4nt3EAvlMXRv/3ViuRn4JtzEAeL+QinDuN6/qvo2T
X7QneJLXaFC/xTNQiOZJPuQ9/8lu/Ve+IB6gvADdnPzlnkp/CZF//EZHYZBQ28OX
N4p/XdACnNShyUwJkyQ07euusw1YfJlphc+arH9alTEekWhNmR5VYNgpyu/X+4yQ
Cc1z2Pjd8oyjjcjqb6Pnowy9TV0mzxYXsUdBAT/CcNfe6en8G85/87m+dw5JB6c2
eTVpa8nbKAO5D//WsXmsWjPMheU6NkaYlg==
-----END CERTIFICATE-----
SignatureHHMb2+31646VtvU23p4RVtZtptGF7MTBZWn2lXr6uhOSVxL1J4sdS4IsVuH2k9e8i0h2vuussVImdxT1exUfmkJ8mUAPcEfu1LyRntkz7JpHE3INPcv2hSh1zZEScmLbNnKv7pIo7xfG9zndgUtBjukr3KL3Kf4hgIFnmmtwD030czbquAJpQZZp76OchTkKR+TQsq/uyREiIKWZNJFoma6rvYa/xs7BhlViJW2fvP1bKujcrK9aqlWk1+Y8XYgdhI7XXnCvxSBdURYkaP2v8rWMgzDuH7ZFTOsQkeqWin17nTzKhY983Q1KnRn+atWuJgzBVmGEYY0zLE2cQKdFDgqCrd1708wsiUxD+yvsVHK+yJGmg+7d8pfrCGFNUWj2f5MSQDpM2DQE43880Q6Jb0g6cO3VMv0KlfECIvKOIPnjLIt1cS3HBWa9E8Bqz+41sNHrkdw/a13xVI05gOv/xdYLaBbO82TelnMbL3u0B29afRKRWfzMFa0gAPg3mtkMhoGNCeMf6adf/RhkHEHWwWgp6ERxCY5s8Q1k4quh3+vM/3dXQ1kl2kuoClwxi4eDQlSCu6gxXKoSj2UTSGwjR+ucs1WfxvTLXt+IodA3lDx3VrMgHH/69HD7QcB3iTgm6WsLS5I/1f2TI8vV8Rxk7u0/i7cACWJyUBbcMwLwH/k=
Signature digestsha512
Dependencies
Required Nextcloud versions >=33.0.0,<36.0.0
Minimum Integer bits32
PHP>=8.2.0
TimeSister 0.9.1
Release Details
UpdatedOct. 5, 2026, 12:07 p.m.
Changelog

Three findings of the security review; API unchanged (api: 2).

  • The vacation calendar stays in the team. vacation_calendar in the settings record is accepted only when owner is a Team Admin of the team and url is a calendar of that owner (…/remote.php/dav/calendars/<owner>/<calendar>/), otherwise 422 invalid – on PUT, in a batch and on restore. The background job checks again (owner still a member, URL still theirs) and skips the team with a warning in the log; before, a Team Admin could point the mirror at any account's calendar.
  • PUT /me/absences: control characters in source_uid, kind, start or end are refused with 400 invalid; in the written events a CR is escaped like a line break and other control characters are dropped. Before, a CR in source_uid made the job rewrite the event on every run.
  • Brute-force protection: every writing route (PUT, POST, DELETE) carries #[BruteForceProtection(action: 'timesister')], and a refused write (403) counts for Nextcloud's throttling.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBTCCAu0CAhQ5MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYxMDAyMTIyNTA2WhcNMzcwMTA3MTIyNTA2WjAVMRMwEQYD
VQQDDAp0aW1lc2lzdGVyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
pIgdY1zTI1ijZ+0dxFCrnqRRDx4NJyPi2Uv+S7CFcpdDZSfE4rF40RTCOqnPKDmm
GFX1b3a96FvJ8b53HZx9mb/wqA4DZfIy3qW+RLsIBNwBQdinFYD78SXWiqN6Ezy7
AV+vzZKl3g5QBxKCjyimBzld4PcrQa7H+UvaU51I+N876QNf/dEuVM7pNvzwqSlS
NVxKMYNhRfEmDrs7oddDDQJZ6xXFXBct8jMAUYsk/bl+gN3C7Qj7q4mdYkVNeUYC
MCLFRY+Vu65OTqQja+ircyWTP0BpPxbipnNhfrRgP4p2e1e1svPhvBuFyZ9wb+qP
LQ9BdMHrbCJ6fZ/QzExIPyvwq64IzusKP2jTu2IN0mDTh9r0hvxo4TlqAsfDPuOn
8LaWQ347jSTI211aodR5+F+k752t/1LuqPypj3pMwqDJ1TGTHKHV5lxK01LpDDwh
NxxTwmL7veeShsCkqYcEBE80mL3GDCSTqS072lBly+vkz3CJhgLBn03Foqtn9bBA
oyYbPKsS2naM1CJAEn2b+1jsuNY3A6fWdt8qs+ewHFrt22hbSRWtVwLASIpq+hf5
F/tkVB+beTMRp9ttcA8LiBftETG67Dn4bo26wxXSpWdMFemW3iax2VcLBb/Rszym
AFdXK5Kvpf8B0xBOE2oeAss7VL41+4BAKnjur16ainkCAwEAATANBgkqhkiG9w0B
AQsFAAOCAQEAlS9tWEgqRQeUGNoe+V/ZsNpXmYATepbZJTDnWPToJjyypJVW+V1D
94MnNEa2j1Sjp2ZVsLDzgnU4nt3EAvlMXRv/3ViuRn4JtzEAeL+QinDuN6/qvo2T
X7QneJLXaFC/xTNQiOZJPuQ9/8lu/Ve+IB6gvADdnPzlnkp/CZF//EZHYZBQ28OX
N4p/XdACnNShyUwJkyQ07euusw1YfJlphc+arH9alTEekWhNmR5VYNgpyu/X+4yQ
Cc1z2Pjd8oyjjcjqb6Pnowy9TV0mzxYXsUdBAT/CcNfe6en8G85/87m+dw5JB6c2
eTVpa8nbKAO5D//WsXmsWjPMheU6NkaYlg==
-----END CERTIFICATE-----
SignatureVWjznXKWd7zrbSgsfEsahCgv6Y7OO6D4ZTWC45Yu8Ym7CJuaRDT4JTaSjSFbBzCj+6TdYN7pilrjaXohW8qB3ASuCJDO1RCVNDwhrYMY8blUg2Xsr4TrmiI5vdL3WRqplGYHtAHll2kfWJKc1eiviODQLbmFhczeQG5EOrBS39nG9hnBkdodn7hLpOrJfVFE1Wegpnh2lE3KIA78M/chg19yBGCeduSJywq0QoWUpk5dxq9Nh+7NDA+aK94Sh5tr/eZcpr2HQocPLwYb2ajDpLIihgbUL0X7XcbIcOZt3ryzavfTfkPaI8kTkgHkXOPHg5QaaODHrgClpG3pSggXHuGTAKv/AVvndpZKrTNAXFGXbF8M6NEYANPcIMvyEOKgT+bihW+4ivzLk6JvjoSjzEgLXeXen1fpJ8Vhw+E5XHTI2v3dtACXKHoWmLi+NbTzL3A2DP9XfOxbgLhPZ8f9XJikov4ZKfOgeGa9X43cLMI1r1R9WWyGMZCoUyOY/B8pmams7mCx4WhN+ersMXg5cFjECtFY+gnag/mJighIJiukJJuPOCGV6npbG0JQy0DBN3ydsl9xuj3O7no/56rfzsFF81fY327mam/qXWV7BWckM975FGuYutr7VFJ90J6PoxBhQJDfK1FNpF9autMc0WJVd5yUpZh/8cjqyhlTQv8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=33.0.0,<36.0.0
Minimum Integer bits32
PHP>=8.2.0
TimeSister 0.9.0
Release Details
UpdatedOct. 5, 2026, 6:31 a.m.
Changelog
  • API unchanged in form (api: 2), only additions; the capability gains absences: 1.
  • The shared vacation calendar. A Team Admin creates the calendar «TimeSister – Vacation» in their own account from the Mac app and shares it: the team group read-only, every Team Admin with write access. The settings record (setting/settings) names it: vacation_calendar: {url, owner}; absence_calendar_kinds says which categories appear (vacation, sickness, parental, civil_service, unpaid; default ["vacation"]).
  • PUT /me/absences: every client reports the complete state of its own absences for this and next year – items: [{source_uid, kind, start, end}], end exclusive, at most 400. The server replaces the person's rows (table ts_absences). A person with vacation_calendar_optout: true in their person record is stored nowhere, and what was there goes.
  • Written by the server: a background job (every 15 minutes) puts the absences of every team with a calendar into the owner's calendar as all-day events «<Category> · Initials Name» with X-TIMESISTER-PERSON, X-TIMESISTER-QUELLE and X-TIMESISTER-ART, over the public calendar API (ICreateFromString, no Sabre). Absences that are gone are written again with STATUS:CANCELLED – the API cannot delete; a Team Admin's Mac tidies them up. Events without the marks are never touched.
  • Migration: table ts_absences.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBTCCAu0CAhQ5MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYxMDAyMTIyNTA2WhcNMzcwMTA3MTIyNTA2WjAVMRMwEQYD
VQQDDAp0aW1lc2lzdGVyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
pIgdY1zTI1ijZ+0dxFCrnqRRDx4NJyPi2Uv+S7CFcpdDZSfE4rF40RTCOqnPKDmm
GFX1b3a96FvJ8b53HZx9mb/wqA4DZfIy3qW+RLsIBNwBQdinFYD78SXWiqN6Ezy7
AV+vzZKl3g5QBxKCjyimBzld4PcrQa7H+UvaU51I+N876QNf/dEuVM7pNvzwqSlS
NVxKMYNhRfEmDrs7oddDDQJZ6xXFXBct8jMAUYsk/bl+gN3C7Qj7q4mdYkVNeUYC
MCLFRY+Vu65OTqQja+ircyWTP0BpPxbipnNhfrRgP4p2e1e1svPhvBuFyZ9wb+qP
LQ9BdMHrbCJ6fZ/QzExIPyvwq64IzusKP2jTu2IN0mDTh9r0hvxo4TlqAsfDPuOn
8LaWQ347jSTI211aodR5+F+k752t/1LuqPypj3pMwqDJ1TGTHKHV5lxK01LpDDwh
NxxTwmL7veeShsCkqYcEBE80mL3GDCSTqS072lBly+vkz3CJhgLBn03Foqtn9bBA
oyYbPKsS2naM1CJAEn2b+1jsuNY3A6fWdt8qs+ewHFrt22hbSRWtVwLASIpq+hf5
F/tkVB+beTMRp9ttcA8LiBftETG67Dn4bo26wxXSpWdMFemW3iax2VcLBb/Rszym
AFdXK5Kvpf8B0xBOE2oeAss7VL41+4BAKnjur16ainkCAwEAATANBgkqhkiG9w0B
AQsFAAOCAQEAlS9tWEgqRQeUGNoe+V/ZsNpXmYATepbZJTDnWPToJjyypJVW+V1D
94MnNEa2j1Sjp2ZVsLDzgnU4nt3EAvlMXRv/3ViuRn4JtzEAeL+QinDuN6/qvo2T
X7QneJLXaFC/xTNQiOZJPuQ9/8lu/Ve+IB6gvADdnPzlnkp/CZF//EZHYZBQ28OX
N4p/XdACnNShyUwJkyQ07euusw1YfJlphc+arH9alTEekWhNmR5VYNgpyu/X+4yQ
Cc1z2Pjd8oyjjcjqb6Pnowy9TV0mzxYXsUdBAT/CcNfe6en8G85/87m+dw5JB6c2
eTVpa8nbKAO5D//WsXmsWjPMheU6NkaYlg==
-----END CERTIFICATE-----
SignatureA4IbD9Dc8QchZ8c6pxbFFoCb60KS5d3dq8mXXz4kaNRbbVmV+6hoQHw8BrbexVVNvBzZWW4ITw2+7CnsCYCx097pgO9u9Bjpr3aQi/f8+0pZfa6nULVcYGLeivNmLaZs/pWBe0ELeZVsLyLuMmf70jepG8gzkflD9efgdHu9zUrv05wr1ya5UjY6Pc2mkstM8dEgc+kE/0+FfWNuY4j7S2cwkfivJL4oSiNWWqRCzK5mCNKM1G+zr5bSpFz46ycVy4UXr1tX4m8g1Zt3Ig+1uR3pmXo+8pbVMX2SJ3vw/iFB0MSxl902rw+vk1tbbD4b6X/gsEMZNuMdprb/LI+QfQW0bKWM54jbNWW08KsA+hSDbXFt9ecdHDDoKIpPCGluzyu8UYNhSqLiQ21Cyt+LgzMUB8x82gWj7cDIJqSCkGlkQRL2ypPvVcj3eFe6eOXBXRiqRa3EvTy7UylTo/o81jasyiCweQAqW2nY6kM1HqjGRMQMHl1FhiNAEIDOrjvno5C2WdXY9xfuXgrhIngpWyOF6VjsIwXJzBRS7cEo8/HNhH8L4Iuati6HsaJLsoJ060iBFfuqponJXSluxn6uIyEddvVWKGeoy9FLZzYjMm5eKWvCo9SxoXy9nXNQcmA9bKwKQwT2fwc7fX40+h4sDhXlDQe2sLw7aS4QETVEg4Y=
Signature digestsha512
Dependencies
Required Nextcloud versions >=33.0.0,<36.0.0
Minimum Integer bits32
PHP>=8.2.0
TimeSister 0.8.3
Release Details
UpdatedOct. 2, 2026, 1:58 p.m.
Changelog
  • Admin settings, new team: the short name is suggested from the name (lowercase, umlauts spelled out, hyphens), typing turns capitals and spaces into the allowed form, and a hint names the rule (lowercase letters, digits, hyphens, 2 to 32 characters). Before, the form only said “fill in this field”.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBTCCAu0CAhQ5MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYxMDAyMTIyNTA2WhcNMzcwMTA3MTIyNTA2WjAVMRMwEQYD
VQQDDAp0aW1lc2lzdGVyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
pIgdY1zTI1ijZ+0dxFCrnqRRDx4NJyPi2Uv+S7CFcpdDZSfE4rF40RTCOqnPKDmm
GFX1b3a96FvJ8b53HZx9mb/wqA4DZfIy3qW+RLsIBNwBQdinFYD78SXWiqN6Ezy7
AV+vzZKl3g5QBxKCjyimBzld4PcrQa7H+UvaU51I+N876QNf/dEuVM7pNvzwqSlS
NVxKMYNhRfEmDrs7oddDDQJZ6xXFXBct8jMAUYsk/bl+gN3C7Qj7q4mdYkVNeUYC
MCLFRY+Vu65OTqQja+ircyWTP0BpPxbipnNhfrRgP4p2e1e1svPhvBuFyZ9wb+qP
LQ9BdMHrbCJ6fZ/QzExIPyvwq64IzusKP2jTu2IN0mDTh9r0hvxo4TlqAsfDPuOn
8LaWQ347jSTI211aodR5+F+k752t/1LuqPypj3pMwqDJ1TGTHKHV5lxK01LpDDwh
NxxTwmL7veeShsCkqYcEBE80mL3GDCSTqS072lBly+vkz3CJhgLBn03Foqtn9bBA
oyYbPKsS2naM1CJAEn2b+1jsuNY3A6fWdt8qs+ewHFrt22hbSRWtVwLASIpq+hf5
F/tkVB+beTMRp9ttcA8LiBftETG67Dn4bo26wxXSpWdMFemW3iax2VcLBb/Rszym
AFdXK5Kvpf8B0xBOE2oeAss7VL41+4BAKnjur16ainkCAwEAATANBgkqhkiG9w0B
AQsFAAOCAQEAlS9tWEgqRQeUGNoe+V/ZsNpXmYATepbZJTDnWPToJjyypJVW+V1D
94MnNEa2j1Sjp2ZVsLDzgnU4nt3EAvlMXRv/3ViuRn4JtzEAeL+QinDuN6/qvo2T
X7QneJLXaFC/xTNQiOZJPuQ9/8lu/Ve+IB6gvADdnPzlnkp/CZF//EZHYZBQ28OX
N4p/XdACnNShyUwJkyQ07euusw1YfJlphc+arH9alTEekWhNmR5VYNgpyu/X+4yQ
Cc1z2Pjd8oyjjcjqb6Pnowy9TV0mzxYXsUdBAT/CcNfe6en8G85/87m+dw5JB6c2
eTVpa8nbKAO5D//WsXmsWjPMheU6NkaYlg==
-----END CERTIFICATE-----
SignatureGRW9C98GhrKmeQUKnAaTPGPg18LlPcFtG8goKnnN2hebOjtVdbU7c6DOdvHS/Don9It0AG9dMsJ1qUSsW8/19lfMfAZBPi6cCFH0X0M7BVna+uYJQqTjcuHTW7y+XX47/awTRfeTcQyzEUoEJGTuKxGwWp+OHDy+5nwdG1zIHptnbAKPzMvlz3757OlK3dKZy9KWKjDIoTfFQ/MhhtmdmsJ2xc3YAeFW6zXuZxB/klHGYgfT6Ql1lc0tgIt91sZ74LJocI9Hfop6SSuWdzjRaYUk2MCgGZsTiwu1JDF6hCnusFvRJWamonjR17HZmRjt2RCrHewDYsXEUIB1O3tO2Zc+JHP9XbLVg6EPCAVIF1p9485Zcome1ziLpFo6j5cNBE/VoA57NJ/5ho9w+kjZHNHgm5uzVxqiMA+jxqkBK7FDO3Kma+zgt67/0qKhbvfiTmWXQoOdaek+mtFeYMCr/yvUcx9EJo568timCcTueptdmB+eYfxzUF3aQNF+mxKi5VbP6/7Ds5dJtcNA2aZia0eDUMxRXZa1hSWdWfO40ytFwHgxac3atulz/qUBWKz2Z34YKXl6aShMnQykTz/uhaZ/fP333Yp+66sl6Yc4nKi6PTLxPFiyTSK09/b6ZmOD9tYFXd2IBnvNBnF352goK6S1R3Ryd9YeWs/DcsbZhnA=
Signature digestsha512
Dependencies
Required Nextcloud versions >=33.0.0,<36.0.0
Minimum Integer bits32
PHP>=8.2.0
TimeSister 0.8.2
Release Details
UpdatedOct. 2, 2026, 1:39 p.m.
Changelog
  • App Store: the screenshots now come from bias.city/timesister. No code changes.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBTCCAu0CAhQ5MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYxMDAyMTIyNTA2WhcNMzcwMTA3MTIyNTA2WjAVMRMwEQYD
VQQDDAp0aW1lc2lzdGVyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
pIgdY1zTI1ijZ+0dxFCrnqRRDx4NJyPi2Uv+S7CFcpdDZSfE4rF40RTCOqnPKDmm
GFX1b3a96FvJ8b53HZx9mb/wqA4DZfIy3qW+RLsIBNwBQdinFYD78SXWiqN6Ezy7
AV+vzZKl3g5QBxKCjyimBzld4PcrQa7H+UvaU51I+N876QNf/dEuVM7pNvzwqSlS
NVxKMYNhRfEmDrs7oddDDQJZ6xXFXBct8jMAUYsk/bl+gN3C7Qj7q4mdYkVNeUYC
MCLFRY+Vu65OTqQja+ircyWTP0BpPxbipnNhfrRgP4p2e1e1svPhvBuFyZ9wb+qP
LQ9BdMHrbCJ6fZ/QzExIPyvwq64IzusKP2jTu2IN0mDTh9r0hvxo4TlqAsfDPuOn
8LaWQ347jSTI211aodR5+F+k752t/1LuqPypj3pMwqDJ1TGTHKHV5lxK01LpDDwh
NxxTwmL7veeShsCkqYcEBE80mL3GDCSTqS072lBly+vkz3CJhgLBn03Foqtn9bBA
oyYbPKsS2naM1CJAEn2b+1jsuNY3A6fWdt8qs+ewHFrt22hbSRWtVwLASIpq+hf5
F/tkVB+beTMRp9ttcA8LiBftETG67Dn4bo26wxXSpWdMFemW3iax2VcLBb/Rszym
AFdXK5Kvpf8B0xBOE2oeAss7VL41+4BAKnjur16ainkCAwEAATANBgkqhkiG9w0B
AQsFAAOCAQEAlS9tWEgqRQeUGNoe+V/ZsNpXmYATepbZJTDnWPToJjyypJVW+V1D
94MnNEa2j1Sjp2ZVsLDzgnU4nt3EAvlMXRv/3ViuRn4JtzEAeL+QinDuN6/qvo2T
X7QneJLXaFC/xTNQiOZJPuQ9/8lu/Ve+IB6gvADdnPzlnkp/CZF//EZHYZBQ28OX
N4p/XdACnNShyUwJkyQ07euusw1YfJlphc+arH9alTEekWhNmR5VYNgpyu/X+4yQ
Cc1z2Pjd8oyjjcjqb6Pnowy9TV0mzxYXsUdBAT/CcNfe6en8G85/87m+dw5JB6c2
eTVpa8nbKAO5D//WsXmsWjPMheU6NkaYlg==
-----END CERTIFICATE-----
SignatureATIAr4qih8sGO+zuFwWiW15at0VtQ4l8zGN+vqelMy+eekzj+Vc4NqUW1CamcgPKiYCgU9jBSg4Zvkdyddyhn4kq70lKXsqrNGm9bNk+Jz7ZAzSHjoFFy8nAojlVFbP1Dqe0JstFE+q0oLYb2i5mK/5+xjW0pYhV3tqqwUDJWrYl1g636B3QuNsmcVz4lj5dVu1yzNjLSyYh9ArVfJDQEh0sRz/YWhnKMo4F4BYOtJ8VZfxmS2QvdjcBoyKXLiOVI79i5vTpVoB/yYFbJcsmiYqAaVQkrSvOB6dbbYUZg2qUORkPBHq/6Mlxr3Pvzh2ezPxZLNImfUwW7sUc541RbYPpx8uZlKLfPitUz9wD7D33Qj8AqXEnANrRQzB/9fhN7H/xX4QGyHZ8PNDgng2Rh3DfXAYNMAvfie2mYzzbiJbenORkNZ++W+52nVwUaUj2ngPVYl0hHsEtDUH3SnWX8IJlPLhKp0EBOnGBXUdYUtSUUYRjWEeK97F/mIJ+X5Orm6Tp3OXknW1yBeMk1m9x0T+h5Qdg3eqxdX2erFpoTIIBSuT0C9KEe4F19LPiz6lCLrU4ZbeB12XecrZQWvn6YUA17LmzD1TXgg2deMR27+M4c8uTi6hf9RmZIfKScuJzRdkJO3jJEZws/Tz5Mab18wKtAWi+4MuHRnm1kjSpnoo=
Signature digestsha512
Dependencies
Required Nextcloud versions >=33.0.0,<36.0.0
Minimum Integer bits32
PHP>=8.2.0
TimeSister 0.8.1
Release Details
UpdatedOct. 2, 2026, 1:21 p.m.
Changelog
  • App Store: current screenshots (teams in the admin settings, the Mac app's week and the team's capacity). No code changes.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBTCCAu0CAhQ5MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYxMDAyMTIyNTA2WhcNMzcwMTA3MTIyNTA2WjAVMRMwEQYD
VQQDDAp0aW1lc2lzdGVyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
pIgdY1zTI1ijZ+0dxFCrnqRRDx4NJyPi2Uv+S7CFcpdDZSfE4rF40RTCOqnPKDmm
GFX1b3a96FvJ8b53HZx9mb/wqA4DZfIy3qW+RLsIBNwBQdinFYD78SXWiqN6Ezy7
AV+vzZKl3g5QBxKCjyimBzld4PcrQa7H+UvaU51I+N876QNf/dEuVM7pNvzwqSlS
NVxKMYNhRfEmDrs7oddDDQJZ6xXFXBct8jMAUYsk/bl+gN3C7Qj7q4mdYkVNeUYC
MCLFRY+Vu65OTqQja+ircyWTP0BpPxbipnNhfrRgP4p2e1e1svPhvBuFyZ9wb+qP
LQ9BdMHrbCJ6fZ/QzExIPyvwq64IzusKP2jTu2IN0mDTh9r0hvxo4TlqAsfDPuOn
8LaWQ347jSTI211aodR5+F+k752t/1LuqPypj3pMwqDJ1TGTHKHV5lxK01LpDDwh
NxxTwmL7veeShsCkqYcEBE80mL3GDCSTqS072lBly+vkz3CJhgLBn03Foqtn9bBA
oyYbPKsS2naM1CJAEn2b+1jsuNY3A6fWdt8qs+ewHFrt22hbSRWtVwLASIpq+hf5
F/tkVB+beTMRp9ttcA8LiBftETG67Dn4bo26wxXSpWdMFemW3iax2VcLBb/Rszym
AFdXK5Kvpf8B0xBOE2oeAss7VL41+4BAKnjur16ainkCAwEAATANBgkqhkiG9w0B
AQsFAAOCAQEAlS9tWEgqRQeUGNoe+V/ZsNpXmYATepbZJTDnWPToJjyypJVW+V1D
94MnNEa2j1Sjp2ZVsLDzgnU4nt3EAvlMXRv/3ViuRn4JtzEAeL+QinDuN6/qvo2T
X7QneJLXaFC/xTNQiOZJPuQ9/8lu/Ve+IB6gvADdnPzlnkp/CZF//EZHYZBQ28OX
N4p/XdACnNShyUwJkyQ07euusw1YfJlphc+arH9alTEekWhNmR5VYNgpyu/X+4yQ
Cc1z2Pjd8oyjjcjqb6Pnowy9TV0mzxYXsUdBAT/CcNfe6en8G85/87m+dw5JB6c2
eTVpa8nbKAO5D//WsXmsWjPMheU6NkaYlg==
-----END CERTIFICATE-----
SignatureEiNQFyO0IijUHbtqEpRvMeWOHL0XMnaxBuRxoNvCJFuD0omr3CvRYl1qOEzslMhF/qhuKhG7uSvgL/YTQrsDcNkgLVmmjXFH7ainztLFrJXlaxImvXeWtjr0sI2UQV3eFmPuXrndrSetvms5rtAjJf/L6RjgY0yhLV3Z62+hcT/o8W3ANurk407qEGWptsrUVZBm1Vnk0+Et1cXIRs4YX0F9mjqUpbUGL4cz6iX7bct9q++T/4kef705qCgfKM2qKbsUq6Je4i5yfJQG+DcfrCOaf9BTmRjjhudQn/g1zrSw5ueIaZc/pneX9gjhcGeRRxJXwlImApg5v+nTWVOirHuY7Wg8zjRo9f0kZsbWYtbOyi2E70KVR33OAVvJaToaJDukpthqOvO/UD/zOmr7hEcWtJa3V0CnK/Qxg8kCBde8BQNLpMIgXo4vr6Xukn7a3VZDZuKc1h29RNcwfwrYkcUdvmWDyW5lpWPDmfOwNMqOv7ZvLX2Clos7guKYLstvQGLTmwR8UaXAX09RPTn5GMap7PBaqUfk8R1/lcDNZ3sQTI0Nu6WybG0KRBtB7reRex9/+0yIpxKmE+or53MK4QdATkG4jQ6QSN9tYQ5L9hMSnT+ELEq6AGwCIYoDiv27QElB17CH1jGhAjVBWn1ymR/fMwRVeoWvtrLTCgzR3kY=
Signature digestsha512
Dependencies
Required Nextcloud versions >=33.0.0,<36.0.0
Minimum Integer bits32
PHP>=8.2.0
TimeSister 0.8.0
Release Details
UpdatedOct. 2, 2026, 1:12 p.m.
Changelog
  • First release in the Nextcloud App Store, for the beta of the TimeSister Mac app 0.4.0.
  • Contains everything listed below under 0.1.0 to 0.7.6; no further changes. API version 2.
  • Modules (Jobs, Budgets, Clients) need no change here: the clients keep the switches in the settings record (setting/settings, field modules).
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBTCCAu0CAhQ5MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYxMDAyMTIyNTA2WhcNMzcwMTA3MTIyNTA2WjAVMRMwEQYD
VQQDDAp0aW1lc2lzdGVyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
pIgdY1zTI1ijZ+0dxFCrnqRRDx4NJyPi2Uv+S7CFcpdDZSfE4rF40RTCOqnPKDmm
GFX1b3a96FvJ8b53HZx9mb/wqA4DZfIy3qW+RLsIBNwBQdinFYD78SXWiqN6Ezy7
AV+vzZKl3g5QBxKCjyimBzld4PcrQa7H+UvaU51I+N876QNf/dEuVM7pNvzwqSlS
NVxKMYNhRfEmDrs7oddDDQJZ6xXFXBct8jMAUYsk/bl+gN3C7Qj7q4mdYkVNeUYC
MCLFRY+Vu65OTqQja+ircyWTP0BpPxbipnNhfrRgP4p2e1e1svPhvBuFyZ9wb+qP
LQ9BdMHrbCJ6fZ/QzExIPyvwq64IzusKP2jTu2IN0mDTh9r0hvxo4TlqAsfDPuOn
8LaWQ347jSTI211aodR5+F+k752t/1LuqPypj3pMwqDJ1TGTHKHV5lxK01LpDDwh
NxxTwmL7veeShsCkqYcEBE80mL3GDCSTqS072lBly+vkz3CJhgLBn03Foqtn9bBA
oyYbPKsS2naM1CJAEn2b+1jsuNY3A6fWdt8qs+ewHFrt22hbSRWtVwLASIpq+hf5
F/tkVB+beTMRp9ttcA8LiBftETG67Dn4bo26wxXSpWdMFemW3iax2VcLBb/Rszym
AFdXK5Kvpf8B0xBOE2oeAss7VL41+4BAKnjur16ainkCAwEAATANBgkqhkiG9w0B
AQsFAAOCAQEAlS9tWEgqRQeUGNoe+V/ZsNpXmYATepbZJTDnWPToJjyypJVW+V1D
94MnNEa2j1Sjp2ZVsLDzgnU4nt3EAvlMXRv/3ViuRn4JtzEAeL+QinDuN6/qvo2T
X7QneJLXaFC/xTNQiOZJPuQ9/8lu/Ve+IB6gvADdnPzlnkp/CZF//EZHYZBQ28OX
N4p/XdACnNShyUwJkyQ07euusw1YfJlphc+arH9alTEekWhNmR5VYNgpyu/X+4yQ
Cc1z2Pjd8oyjjcjqb6Pnowy9TV0mzxYXsUdBAT/CcNfe6en8G85/87m+dw5JB6c2
eTVpa8nbKAO5D//WsXmsWjPMheU6NkaYlg==
-----END CERTIFICATE-----
SignaturefxoTtsaDyhn0+mem57AJMhKdXsUgeVk7ujCfO3TCT3IzToW37oGPQMRHpTtK5V78iEbv6KtQ250ecXjszghDcmsdpmv0jHyl/k3mKsmTuFWzZxshWQAk2ZAiayhyHBp0SdWyW//KJSEV0Up21ZfI0McRAxQpspuq0/9ictjb5NLouygzmJo6B5BiygCfcdc15htF8lmxPDpkmhedHAGb3KYIWba7OyOasqtikSEIjNiCje+ME6vtC5YVMHSFv2AUmQI+cEzpg89dCmPYULmtSb4LnfDYSWAm5pXWBBAnOKNGvjXU2gTrQ+Sp6YUCDGGAZeh3zpjewm4BECbgqXhQ+N/E14VNKKudqXxBKU830li/8StNjgnUQbUgZf2HqlelyTnUz4trW0OdaOmjRGCQHMbutTWa8ZBJzboaOQy/8cQlF+MDMcu+hj60SyRRa88YJUKUpS3P1ydIiV00719P+XEhLSL3urOnbLZDOhq68k22nhgTDCjL0GHb6Ks2GX5nSL74tD/OekpDakZceir1Z8In1hTwGSLm94J1eWThLVlhVdI5u+x5no6LgOQZxrsJurWxmYI45flfszMARmYyZWgO9jQME+gNXcD5ftUb+uPZ/eVQbcIhPjL+/0a2RShhxkkShE60SI6WSdT+BY3qP+ErSpc3xoXh7fV9O4D9bxw=
Signature digestsha512
Dependencies
Required Nextcloud versions >=33.0.0,<36.0.0
Minimum Integer bits32
PHP>=8.2.0

Nextcloud 34

TimeSister 0.10.2
Release Details
UpdatedOct. 5, 2026, 4:10 p.m.
Changelog

API unchanged (api: 2), only additions; the capability gains privacy_notice: 1.

  • Privacy notice per team. GET /team/privacy?format=html|md gives every member a privacy notice of their team as a download (timesister-privacy-<slug>-<date>.html|md), in the language of the account; the Nextcloud admin gets it for any team with GET /admin/teams/{id}/privacy. The content is read live from the team: members with role, Team Admins, Leads with their projects, the shares matrix (who sees or edits whose time calendar), backup owner, consents, modules switched on, absence categories, vacation calendar, externals (count only, never a feed address). Nine sections: controller and contact, purpose, data and categories, where the data is stored, who has access, backups, retention and deletion with the legal references as a template (ArG 46, ArGV 1 Art. 73, OR 958f, DSG 6/19/25/32, GDPR 5(1)(e)/6(1)(b,c)/13/15/17(3)(b)/30/32), rights of the persons, and the note that it is a template from the team's settings and no legal advice. Empty fields read “[to be completed]”. The HTML is printable and loads nothing from outside; everything foreign is escaped.
  • Record setting/privacy. Team Admins keep the entries like setting/settings: controller {name, address, contact}, privacy_contact, hosting {provider, location}, retention {time_years (5), billing_years (10), note}, law (ch, eu, both; default both), authority. Texts at most 500 characters, years 0–30, otherwise 422. The Nextcloud admin writes it from the admin page through PUT /admin/teams/{id}/privacy with { data }.
  • Admin page: “Edit team” gains the section “Privacy” with these fields and the buttons “Privacy notice (HTML)” and “(Markdown)”.
  • New team from a team ZIP. “New team” takes a team ZIP as a second way: POST /admin/teams/import/preview (without a team) checks the file and names name, short name and the people of the backup; the admin chooses the team group, may change name and short name and maps the people to accounts here; POST /admin/teams/from-zip with { token, name, slug, group, mapping } creates the team and imports into it (merge). A taken short name or group is 409 before anything is created; fails the import, the empty team is removed again and the message says so.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBTCCAu0CAhQ5MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYxMDAyMTIyNTA2WhcNMzcwMTA3MTIyNTA2WjAVMRMwEQYD
VQQDDAp0aW1lc2lzdGVyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
pIgdY1zTI1ijZ+0dxFCrnqRRDx4NJyPi2Uv+S7CFcpdDZSfE4rF40RTCOqnPKDmm
GFX1b3a96FvJ8b53HZx9mb/wqA4DZfIy3qW+RLsIBNwBQdinFYD78SXWiqN6Ezy7
AV+vzZKl3g5QBxKCjyimBzld4PcrQa7H+UvaU51I+N876QNf/dEuVM7pNvzwqSlS
NVxKMYNhRfEmDrs7oddDDQJZ6xXFXBct8jMAUYsk/bl+gN3C7Qj7q4mdYkVNeUYC
MCLFRY+Vu65OTqQja+ircyWTP0BpPxbipnNhfrRgP4p2e1e1svPhvBuFyZ9wb+qP
LQ9BdMHrbCJ6fZ/QzExIPyvwq64IzusKP2jTu2IN0mDTh9r0hvxo4TlqAsfDPuOn
8LaWQ347jSTI211aodR5+F+k752t/1LuqPypj3pMwqDJ1TGTHKHV5lxK01LpDDwh
NxxTwmL7veeShsCkqYcEBE80mL3GDCSTqS072lBly+vkz3CJhgLBn03Foqtn9bBA
oyYbPKsS2naM1CJAEn2b+1jsuNY3A6fWdt8qs+ewHFrt22hbSRWtVwLASIpq+hf5
F/tkVB+beTMRp9ttcA8LiBftETG67Dn4bo26wxXSpWdMFemW3iax2VcLBb/Rszym
AFdXK5Kvpf8B0xBOE2oeAss7VL41+4BAKnjur16ainkCAwEAATANBgkqhkiG9w0B
AQsFAAOCAQEAlS9tWEgqRQeUGNoe+V/ZsNpXmYATepbZJTDnWPToJjyypJVW+V1D
94MnNEa2j1Sjp2ZVsLDzgnU4nt3EAvlMXRv/3ViuRn4JtzEAeL+QinDuN6/qvo2T
X7QneJLXaFC/xTNQiOZJPuQ9/8lu/Ve+IB6gvADdnPzlnkp/CZF//EZHYZBQ28OX
N4p/XdACnNShyUwJkyQ07euusw1YfJlphc+arH9alTEekWhNmR5VYNgpyu/X+4yQ
Cc1z2Pjd8oyjjcjqb6Pnowy9TV0mzxYXsUdBAT/CcNfe6en8G85/87m+dw5JB6c2
eTVpa8nbKAO5D//WsXmsWjPMheU6NkaYlg==
-----END CERTIFICATE-----
SignaturejEQ+HIQc3xd3ofU2+tzm7YjzndBoI24ZaUUlSenemv/oVYRfzvlILprDxlfbmB65Btdc786A0+A2R6aIQvfAzeIa2rsbt2JDz1wto4x/3BAn2KH5P3GqzyGwL0QJvgTcglQkQ1BQOlQbpvuKIMpZ+S/hDY3XF2nelakAKxZGn9emn3uJvYTF5ZeLwKwVVPjosuRV8ibHAkmRdayr3Y+1Poo/38W2c6lUSFGym8NSFC3FHiyk0/DyXyontKV6VD72v5o3IfDC1CqQZ0PCgAaWMgbq6gUgWpO8ZiBaVQ1/U5F9I8yHgWhoL8xUfBCgS3BYChqKFOgDAQojZy/azC4hqbht9NYW02LcPp+jCdKvsLkFYfNSQyeEnWpvvrRpw3qc33zWOoEH38eNAbfb/JOBTu0oba+vvxjwlAjXh3tzmjt2Aep/DrqSNG7meXU3bs03uQ5gnM77d64M5pkpYtkdYLFwYAt9BQV7AlSkSM1x1o1WXz1qvqwQPQfIyJ1RrjW9w/iHFJ+vX/uHd36ivUZd1k6yP90XlCucJyb71w4lHukjhnNpU36sxFpUjxP3MoXTMogalpZtSk/iBENncuJHxipZ8skYtXwbKAFeJgZ3tCHDkGNVVITCuO7QQwaPZP57jeSvqBi3nbefYswiwKf3omYBDwA4i9Q/9cLkFr1DmIU=
Signature digestsha512
Dependencies
Required Nextcloud versions >=33.0.0,<36.0.0
Minimum Integer bits32
PHP>=8.2.0
TimeSister 0.10.0
Release Details
UpdatedOct. 5, 2026, 1:45 p.m.
Changelog

API unchanged (api: 2), only additions; the capability gains team_backup: 1.

  • Team backup as a ZIP. On the admin page, every team has “Back up team (ZIP)” (GET /admin/teams/{id}/export): manifest.json with checksums, team.json (team, members, shares, consents), every record with its history under records/<kind>/<key>.json, status.json, absences.json and a fresh export of every active member's time calendar under calendars/. Person records carry their feed, so the ZIP is confidential (contains_secrets: true).
  • Restore and move. “Restore from ZIP” uploads the ZIP for a preview (POST /admin/teams/{id}/import/preview): the people of the backup, whether their account exists here, and the accounts of this Nextcloud to map to. POST /admin/teams/{id}/import with token, mapping (old account → new account or null for “without account”) and mode merge or replace writes records with history, roles, shares, consents, absences and status in one transaction, puts mapped accounts into the team group and stores the calendars as backups per person (source: "import"), which people fetch in the Mac app under “Old events”. Before importing into a team with content, the server stores a backup of it (protected and with the backup owner under TimeSister Backups/_team/).
  • Limits: ZIP 200 MB, entries 50 MB, 600 MB unpacked, no absolute paths or ..; only Nextcloud admins, write routes with brute-force protection.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBTCCAu0CAhQ5MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYxMDAyMTIyNTA2WhcNMzcwMTA3MTIyNTA2WjAVMRMwEQYD
VQQDDAp0aW1lc2lzdGVyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
pIgdY1zTI1ijZ+0dxFCrnqRRDx4NJyPi2Uv+S7CFcpdDZSfE4rF40RTCOqnPKDmm
GFX1b3a96FvJ8b53HZx9mb/wqA4DZfIy3qW+RLsIBNwBQdinFYD78SXWiqN6Ezy7
AV+vzZKl3g5QBxKCjyimBzld4PcrQa7H+UvaU51I+N876QNf/dEuVM7pNvzwqSlS
NVxKMYNhRfEmDrs7oddDDQJZ6xXFXBct8jMAUYsk/bl+gN3C7Qj7q4mdYkVNeUYC
MCLFRY+Vu65OTqQja+ircyWTP0BpPxbipnNhfrRgP4p2e1e1svPhvBuFyZ9wb+qP
LQ9BdMHrbCJ6fZ/QzExIPyvwq64IzusKP2jTu2IN0mDTh9r0hvxo4TlqAsfDPuOn
8LaWQ347jSTI211aodR5+F+k752t/1LuqPypj3pMwqDJ1TGTHKHV5lxK01LpDDwh
NxxTwmL7veeShsCkqYcEBE80mL3GDCSTqS072lBly+vkz3CJhgLBn03Foqtn9bBA
oyYbPKsS2naM1CJAEn2b+1jsuNY3A6fWdt8qs+ewHFrt22hbSRWtVwLASIpq+hf5
F/tkVB+beTMRp9ttcA8LiBftETG67Dn4bo26wxXSpWdMFemW3iax2VcLBb/Rszym
AFdXK5Kvpf8B0xBOE2oeAss7VL41+4BAKnjur16ainkCAwEAATANBgkqhkiG9w0B
AQsFAAOCAQEAlS9tWEgqRQeUGNoe+V/ZsNpXmYATepbZJTDnWPToJjyypJVW+V1D
94MnNEa2j1Sjp2ZVsLDzgnU4nt3EAvlMXRv/3ViuRn4JtzEAeL+QinDuN6/qvo2T
X7QneJLXaFC/xTNQiOZJPuQ9/8lu/Ve+IB6gvADdnPzlnkp/CZF//EZHYZBQ28OX
N4p/XdACnNShyUwJkyQ07euusw1YfJlphc+arH9alTEekWhNmR5VYNgpyu/X+4yQ
Cc1z2Pjd8oyjjcjqb6Pnowy9TV0mzxYXsUdBAT/CcNfe6en8G85/87m+dw5JB6c2
eTVpa8nbKAO5D//WsXmsWjPMheU6NkaYlg==
-----END CERTIFICATE-----
SignatureHHMb2+31646VtvU23p4RVtZtptGF7MTBZWn2lXr6uhOSVxL1J4sdS4IsVuH2k9e8i0h2vuussVImdxT1exUfmkJ8mUAPcEfu1LyRntkz7JpHE3INPcv2hSh1zZEScmLbNnKv7pIo7xfG9zndgUtBjukr3KL3Kf4hgIFnmmtwD030czbquAJpQZZp76OchTkKR+TQsq/uyREiIKWZNJFoma6rvYa/xs7BhlViJW2fvP1bKujcrK9aqlWk1+Y8XYgdhI7XXnCvxSBdURYkaP2v8rWMgzDuH7ZFTOsQkeqWin17nTzKhY983Q1KnRn+atWuJgzBVmGEYY0zLE2cQKdFDgqCrd1708wsiUxD+yvsVHK+yJGmg+7d8pfrCGFNUWj2f5MSQDpM2DQE43880Q6Jb0g6cO3VMv0KlfECIvKOIPnjLIt1cS3HBWa9E8Bqz+41sNHrkdw/a13xVI05gOv/xdYLaBbO82TelnMbL3u0B29afRKRWfzMFa0gAPg3mtkMhoGNCeMf6adf/RhkHEHWwWgp6ERxCY5s8Q1k4quh3+vM/3dXQ1kl2kuoClwxi4eDQlSCu6gxXKoSj2UTSGwjR+ucs1WfxvTLXt+IodA3lDx3VrMgHH/69HD7QcB3iTgm6WsLS5I/1f2TI8vV8Rxk7u0/i7cACWJyUBbcMwLwH/k=
Signature digestsha512
Dependencies
Required Nextcloud versions >=33.0.0,<36.0.0
Minimum Integer bits32
PHP>=8.2.0
TimeSister 0.9.1
Release Details
UpdatedOct. 5, 2026, 12:07 p.m.
Changelog

Three findings of the security review; API unchanged (api: 2).

  • The vacation calendar stays in the team. vacation_calendar in the settings record is accepted only when owner is a Team Admin of the team and url is a calendar of that owner (…/remote.php/dav/calendars/<owner>/<calendar>/), otherwise 422 invalid – on PUT, in a batch and on restore. The background job checks again (owner still a member, URL still theirs) and skips the team with a warning in the log; before, a Team Admin could point the mirror at any account's calendar.
  • PUT /me/absences: control characters in source_uid, kind, start or end are refused with 400 invalid; in the written events a CR is escaped like a line break and other control characters are dropped. Before, a CR in source_uid made the job rewrite the event on every run.
  • Brute-force protection: every writing route (PUT, POST, DELETE) carries #[BruteForceProtection(action: 'timesister')], and a refused write (403) counts for Nextcloud's throttling.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBTCCAu0CAhQ5MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYxMDAyMTIyNTA2WhcNMzcwMTA3MTIyNTA2WjAVMRMwEQYD
VQQDDAp0aW1lc2lzdGVyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
pIgdY1zTI1ijZ+0dxFCrnqRRDx4NJyPi2Uv+S7CFcpdDZSfE4rF40RTCOqnPKDmm
GFX1b3a96FvJ8b53HZx9mb/wqA4DZfIy3qW+RLsIBNwBQdinFYD78SXWiqN6Ezy7
AV+vzZKl3g5QBxKCjyimBzld4PcrQa7H+UvaU51I+N876QNf/dEuVM7pNvzwqSlS
NVxKMYNhRfEmDrs7oddDDQJZ6xXFXBct8jMAUYsk/bl+gN3C7Qj7q4mdYkVNeUYC
MCLFRY+Vu65OTqQja+ircyWTP0BpPxbipnNhfrRgP4p2e1e1svPhvBuFyZ9wb+qP
LQ9BdMHrbCJ6fZ/QzExIPyvwq64IzusKP2jTu2IN0mDTh9r0hvxo4TlqAsfDPuOn
8LaWQ347jSTI211aodR5+F+k752t/1LuqPypj3pMwqDJ1TGTHKHV5lxK01LpDDwh
NxxTwmL7veeShsCkqYcEBE80mL3GDCSTqS072lBly+vkz3CJhgLBn03Foqtn9bBA
oyYbPKsS2naM1CJAEn2b+1jsuNY3A6fWdt8qs+ewHFrt22hbSRWtVwLASIpq+hf5
F/tkVB+beTMRp9ttcA8LiBftETG67Dn4bo26wxXSpWdMFemW3iax2VcLBb/Rszym
AFdXK5Kvpf8B0xBOE2oeAss7VL41+4BAKnjur16ainkCAwEAATANBgkqhkiG9w0B
AQsFAAOCAQEAlS9tWEgqRQeUGNoe+V/ZsNpXmYATepbZJTDnWPToJjyypJVW+V1D
94MnNEa2j1Sjp2ZVsLDzgnU4nt3EAvlMXRv/3ViuRn4JtzEAeL+QinDuN6/qvo2T
X7QneJLXaFC/xTNQiOZJPuQ9/8lu/Ve+IB6gvADdnPzlnkp/CZF//EZHYZBQ28OX
N4p/XdACnNShyUwJkyQ07euusw1YfJlphc+arH9alTEekWhNmR5VYNgpyu/X+4yQ
Cc1z2Pjd8oyjjcjqb6Pnowy9TV0mzxYXsUdBAT/CcNfe6en8G85/87m+dw5JB6c2
eTVpa8nbKAO5D//WsXmsWjPMheU6NkaYlg==
-----END CERTIFICATE-----
SignatureVWjznXKWd7zrbSgsfEsahCgv6Y7OO6D4ZTWC45Yu8Ym7CJuaRDT4JTaSjSFbBzCj+6TdYN7pilrjaXohW8qB3ASuCJDO1RCVNDwhrYMY8blUg2Xsr4TrmiI5vdL3WRqplGYHtAHll2kfWJKc1eiviODQLbmFhczeQG5EOrBS39nG9hnBkdodn7hLpOrJfVFE1Wegpnh2lE3KIA78M/chg19yBGCeduSJywq0QoWUpk5dxq9Nh+7NDA+aK94Sh5tr/eZcpr2HQocPLwYb2ajDpLIihgbUL0X7XcbIcOZt3ryzavfTfkPaI8kTkgHkXOPHg5QaaODHrgClpG3pSggXHuGTAKv/AVvndpZKrTNAXFGXbF8M6NEYANPcIMvyEOKgT+bihW+4ivzLk6JvjoSjzEgLXeXen1fpJ8Vhw+E5XHTI2v3dtACXKHoWmLi+NbTzL3A2DP9XfOxbgLhPZ8f9XJikov4ZKfOgeGa9X43cLMI1r1R9WWyGMZCoUyOY/B8pmams7mCx4WhN+ersMXg5cFjECtFY+gnag/mJighIJiukJJuPOCGV6npbG0JQy0DBN3ydsl9xuj3O7no/56rfzsFF81fY327mam/qXWV7BWckM975FGuYutr7VFJ90J6PoxBhQJDfK1FNpF9autMc0WJVd5yUpZh/8cjqyhlTQv8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=33.0.0,<36.0.0
Minimum Integer bits32
PHP>=8.2.0
TimeSister 0.9.0
Release Details
UpdatedOct. 5, 2026, 6:31 a.m.
Changelog
  • API unchanged in form (api: 2), only additions; the capability gains absences: 1.
  • The shared vacation calendar. A Team Admin creates the calendar «TimeSister – Vacation» in their own account from the Mac app and shares it: the team group read-only, every Team Admin with write access. The settings record (setting/settings) names it: vacation_calendar: {url, owner}; absence_calendar_kinds says which categories appear (vacation, sickness, parental, civil_service, unpaid; default ["vacation"]).
  • PUT /me/absences: every client reports the complete state of its own absences for this and next year – items: [{source_uid, kind, start, end}], end exclusive, at most 400. The server replaces the person's rows (table ts_absences). A person with vacation_calendar_optout: true in their person record is stored nowhere, and what was there goes.
  • Written by the server: a background job (every 15 minutes) puts the absences of every team with a calendar into the owner's calendar as all-day events «<Category> · Initials Name» with X-TIMESISTER-PERSON, X-TIMESISTER-QUELLE and X-TIMESISTER-ART, over the public calendar API (ICreateFromString, no Sabre). Absences that are gone are written again with STATUS:CANCELLED – the API cannot delete; a Team Admin's Mac tidies them up. Events without the marks are never touched.
  • Migration: table ts_absences.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBTCCAu0CAhQ5MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYxMDAyMTIyNTA2WhcNMzcwMTA3MTIyNTA2WjAVMRMwEQYD
VQQDDAp0aW1lc2lzdGVyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
pIgdY1zTI1ijZ+0dxFCrnqRRDx4NJyPi2Uv+S7CFcpdDZSfE4rF40RTCOqnPKDmm
GFX1b3a96FvJ8b53HZx9mb/wqA4DZfIy3qW+RLsIBNwBQdinFYD78SXWiqN6Ezy7
AV+vzZKl3g5QBxKCjyimBzld4PcrQa7H+UvaU51I+N876QNf/dEuVM7pNvzwqSlS
NVxKMYNhRfEmDrs7oddDDQJZ6xXFXBct8jMAUYsk/bl+gN3C7Qj7q4mdYkVNeUYC
MCLFRY+Vu65OTqQja+ircyWTP0BpPxbipnNhfrRgP4p2e1e1svPhvBuFyZ9wb+qP
LQ9BdMHrbCJ6fZ/QzExIPyvwq64IzusKP2jTu2IN0mDTh9r0hvxo4TlqAsfDPuOn
8LaWQ347jSTI211aodR5+F+k752t/1LuqPypj3pMwqDJ1TGTHKHV5lxK01LpDDwh
NxxTwmL7veeShsCkqYcEBE80mL3GDCSTqS072lBly+vkz3CJhgLBn03Foqtn9bBA
oyYbPKsS2naM1CJAEn2b+1jsuNY3A6fWdt8qs+ewHFrt22hbSRWtVwLASIpq+hf5
F/tkVB+beTMRp9ttcA8LiBftETG67Dn4bo26wxXSpWdMFemW3iax2VcLBb/Rszym
AFdXK5Kvpf8B0xBOE2oeAss7VL41+4BAKnjur16ainkCAwEAATANBgkqhkiG9w0B
AQsFAAOCAQEAlS9tWEgqRQeUGNoe+V/ZsNpXmYATepbZJTDnWPToJjyypJVW+V1D
94MnNEa2j1Sjp2ZVsLDzgnU4nt3EAvlMXRv/3ViuRn4JtzEAeL+QinDuN6/qvo2T
X7QneJLXaFC/xTNQiOZJPuQ9/8lu/Ve+IB6gvADdnPzlnkp/CZF//EZHYZBQ28OX
N4p/XdACnNShyUwJkyQ07euusw1YfJlphc+arH9alTEekWhNmR5VYNgpyu/X+4yQ
Cc1z2Pjd8oyjjcjqb6Pnowy9TV0mzxYXsUdBAT/CcNfe6en8G85/87m+dw5JB6c2
eTVpa8nbKAO5D//WsXmsWjPMheU6NkaYlg==
-----END CERTIFICATE-----
SignatureA4IbD9Dc8QchZ8c6pxbFFoCb60KS5d3dq8mXXz4kaNRbbVmV+6hoQHw8BrbexVVNvBzZWW4ITw2+7CnsCYCx097pgO9u9Bjpr3aQi/f8+0pZfa6nULVcYGLeivNmLaZs/pWBe0ELeZVsLyLuMmf70jepG8gzkflD9efgdHu9zUrv05wr1ya5UjY6Pc2mkstM8dEgc+kE/0+FfWNuY4j7S2cwkfivJL4oSiNWWqRCzK5mCNKM1G+zr5bSpFz46ycVy4UXr1tX4m8g1Zt3Ig+1uR3pmXo+8pbVMX2SJ3vw/iFB0MSxl902rw+vk1tbbD4b6X/gsEMZNuMdprb/LI+QfQW0bKWM54jbNWW08KsA+hSDbXFt9ecdHDDoKIpPCGluzyu8UYNhSqLiQ21Cyt+LgzMUB8x82gWj7cDIJqSCkGlkQRL2ypPvVcj3eFe6eOXBXRiqRa3EvTy7UylTo/o81jasyiCweQAqW2nY6kM1HqjGRMQMHl1FhiNAEIDOrjvno5C2WdXY9xfuXgrhIngpWyOF6VjsIwXJzBRS7cEo8/HNhH8L4Iuati6HsaJLsoJ060iBFfuqponJXSluxn6uIyEddvVWKGeoy9FLZzYjMm5eKWvCo9SxoXy9nXNQcmA9bKwKQwT2fwc7fX40+h4sDhXlDQe2sLw7aS4QETVEg4Y=
Signature digestsha512
Dependencies
Required Nextcloud versions >=33.0.0,<36.0.0
Minimum Integer bits32
PHP>=8.2.0
TimeSister 0.8.3
Release Details
UpdatedOct. 2, 2026, 1:58 p.m.
Changelog
  • Admin settings, new team: the short name is suggested from the name (lowercase, umlauts spelled out, hyphens), typing turns capitals and spaces into the allowed form, and a hint names the rule (lowercase letters, digits, hyphens, 2 to 32 characters). Before, the form only said “fill in this field”.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBTCCAu0CAhQ5MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYxMDAyMTIyNTA2WhcNMzcwMTA3MTIyNTA2WjAVMRMwEQYD
VQQDDAp0aW1lc2lzdGVyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
pIgdY1zTI1ijZ+0dxFCrnqRRDx4NJyPi2Uv+S7CFcpdDZSfE4rF40RTCOqnPKDmm
GFX1b3a96FvJ8b53HZx9mb/wqA4DZfIy3qW+RLsIBNwBQdinFYD78SXWiqN6Ezy7
AV+vzZKl3g5QBxKCjyimBzld4PcrQa7H+UvaU51I+N876QNf/dEuVM7pNvzwqSlS
NVxKMYNhRfEmDrs7oddDDQJZ6xXFXBct8jMAUYsk/bl+gN3C7Qj7q4mdYkVNeUYC
MCLFRY+Vu65OTqQja+ircyWTP0BpPxbipnNhfrRgP4p2e1e1svPhvBuFyZ9wb+qP
LQ9BdMHrbCJ6fZ/QzExIPyvwq64IzusKP2jTu2IN0mDTh9r0hvxo4TlqAsfDPuOn
8LaWQ347jSTI211aodR5+F+k752t/1LuqPypj3pMwqDJ1TGTHKHV5lxK01LpDDwh
NxxTwmL7veeShsCkqYcEBE80mL3GDCSTqS072lBly+vkz3CJhgLBn03Foqtn9bBA
oyYbPKsS2naM1CJAEn2b+1jsuNY3A6fWdt8qs+ewHFrt22hbSRWtVwLASIpq+hf5
F/tkVB+beTMRp9ttcA8LiBftETG67Dn4bo26wxXSpWdMFemW3iax2VcLBb/Rszym
AFdXK5Kvpf8B0xBOE2oeAss7VL41+4BAKnjur16ainkCAwEAATANBgkqhkiG9w0B
AQsFAAOCAQEAlS9tWEgqRQeUGNoe+V/ZsNpXmYATepbZJTDnWPToJjyypJVW+V1D
94MnNEa2j1Sjp2ZVsLDzgnU4nt3EAvlMXRv/3ViuRn4JtzEAeL+QinDuN6/qvo2T
X7QneJLXaFC/xTNQiOZJPuQ9/8lu/Ve+IB6gvADdnPzlnkp/CZF//EZHYZBQ28OX
N4p/XdACnNShyUwJkyQ07euusw1YfJlphc+arH9alTEekWhNmR5VYNgpyu/X+4yQ
Cc1z2Pjd8oyjjcjqb6Pnowy9TV0mzxYXsUdBAT/CcNfe6en8G85/87m+dw5JB6c2
eTVpa8nbKAO5D//WsXmsWjPMheU6NkaYlg==
-----END CERTIFICATE-----
SignatureGRW9C98GhrKmeQUKnAaTPGPg18LlPcFtG8goKnnN2hebOjtVdbU7c6DOdvHS/Don9It0AG9dMsJ1qUSsW8/19lfMfAZBPi6cCFH0X0M7BVna+uYJQqTjcuHTW7y+XX47/awTRfeTcQyzEUoEJGTuKxGwWp+OHDy+5nwdG1zIHptnbAKPzMvlz3757OlK3dKZy9KWKjDIoTfFQ/MhhtmdmsJ2xc3YAeFW6zXuZxB/klHGYgfT6Ql1lc0tgIt91sZ74LJocI9Hfop6SSuWdzjRaYUk2MCgGZsTiwu1JDF6hCnusFvRJWamonjR17HZmRjt2RCrHewDYsXEUIB1O3tO2Zc+JHP9XbLVg6EPCAVIF1p9485Zcome1ziLpFo6j5cNBE/VoA57NJ/5ho9w+kjZHNHgm5uzVxqiMA+jxqkBK7FDO3Kma+zgt67/0qKhbvfiTmWXQoOdaek+mtFeYMCr/yvUcx9EJo568timCcTueptdmB+eYfxzUF3aQNF+mxKi5VbP6/7Ds5dJtcNA2aZia0eDUMxRXZa1hSWdWfO40ytFwHgxac3atulz/qUBWKz2Z34YKXl6aShMnQykTz/uhaZ/fP333Yp+66sl6Yc4nKi6PTLxPFiyTSK09/b6ZmOD9tYFXd2IBnvNBnF352goK6S1R3Ryd9YeWs/DcsbZhnA=
Signature digestsha512
Dependencies
Required Nextcloud versions >=33.0.0,<36.0.0
Minimum Integer bits32
PHP>=8.2.0
TimeSister 0.8.2
Release Details
UpdatedOct. 2, 2026, 1:39 p.m.
Changelog
  • App Store: the screenshots now come from bias.city/timesister. No code changes.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBTCCAu0CAhQ5MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYxMDAyMTIyNTA2WhcNMzcwMTA3MTIyNTA2WjAVMRMwEQYD
VQQDDAp0aW1lc2lzdGVyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
pIgdY1zTI1ijZ+0dxFCrnqRRDx4NJyPi2Uv+S7CFcpdDZSfE4rF40RTCOqnPKDmm
GFX1b3a96FvJ8b53HZx9mb/wqA4DZfIy3qW+RLsIBNwBQdinFYD78SXWiqN6Ezy7
AV+vzZKl3g5QBxKCjyimBzld4PcrQa7H+UvaU51I+N876QNf/dEuVM7pNvzwqSlS
NVxKMYNhRfEmDrs7oddDDQJZ6xXFXBct8jMAUYsk/bl+gN3C7Qj7q4mdYkVNeUYC
MCLFRY+Vu65OTqQja+ircyWTP0BpPxbipnNhfrRgP4p2e1e1svPhvBuFyZ9wb+qP
LQ9BdMHrbCJ6fZ/QzExIPyvwq64IzusKP2jTu2IN0mDTh9r0hvxo4TlqAsfDPuOn
8LaWQ347jSTI211aodR5+F+k752t/1LuqPypj3pMwqDJ1TGTHKHV5lxK01LpDDwh
NxxTwmL7veeShsCkqYcEBE80mL3GDCSTqS072lBly+vkz3CJhgLBn03Foqtn9bBA
oyYbPKsS2naM1CJAEn2b+1jsuNY3A6fWdt8qs+ewHFrt22hbSRWtVwLASIpq+hf5
F/tkVB+beTMRp9ttcA8LiBftETG67Dn4bo26wxXSpWdMFemW3iax2VcLBb/Rszym
AFdXK5Kvpf8B0xBOE2oeAss7VL41+4BAKnjur16ainkCAwEAATANBgkqhkiG9w0B
AQsFAAOCAQEAlS9tWEgqRQeUGNoe+V/ZsNpXmYATepbZJTDnWPToJjyypJVW+V1D
94MnNEa2j1Sjp2ZVsLDzgnU4nt3EAvlMXRv/3ViuRn4JtzEAeL+QinDuN6/qvo2T
X7QneJLXaFC/xTNQiOZJPuQ9/8lu/Ve+IB6gvADdnPzlnkp/CZF//EZHYZBQ28OX
N4p/XdACnNShyUwJkyQ07euusw1YfJlphc+arH9alTEekWhNmR5VYNgpyu/X+4yQ
Cc1z2Pjd8oyjjcjqb6Pnowy9TV0mzxYXsUdBAT/CcNfe6en8G85/87m+dw5JB6c2
eTVpa8nbKAO5D//WsXmsWjPMheU6NkaYlg==
-----END CERTIFICATE-----
SignatureATIAr4qih8sGO+zuFwWiW15at0VtQ4l8zGN+vqelMy+eekzj+Vc4NqUW1CamcgPKiYCgU9jBSg4Zvkdyddyhn4kq70lKXsqrNGm9bNk+Jz7ZAzSHjoFFy8nAojlVFbP1Dqe0JstFE+q0oLYb2i5mK/5+xjW0pYhV3tqqwUDJWrYl1g636B3QuNsmcVz4lj5dVu1yzNjLSyYh9ArVfJDQEh0sRz/YWhnKMo4F4BYOtJ8VZfxmS2QvdjcBoyKXLiOVI79i5vTpVoB/yYFbJcsmiYqAaVQkrSvOB6dbbYUZg2qUORkPBHq/6Mlxr3Pvzh2ezPxZLNImfUwW7sUc541RbYPpx8uZlKLfPitUz9wD7D33Qj8AqXEnANrRQzB/9fhN7H/xX4QGyHZ8PNDgng2Rh3DfXAYNMAvfie2mYzzbiJbenORkNZ++W+52nVwUaUj2ngPVYl0hHsEtDUH3SnWX8IJlPLhKp0EBOnGBXUdYUtSUUYRjWEeK97F/mIJ+X5Orm6Tp3OXknW1yBeMk1m9x0T+h5Qdg3eqxdX2erFpoTIIBSuT0C9KEe4F19LPiz6lCLrU4ZbeB12XecrZQWvn6YUA17LmzD1TXgg2deMR27+M4c8uTi6hf9RmZIfKScuJzRdkJO3jJEZws/Tz5Mab18wKtAWi+4MuHRnm1kjSpnoo=
Signature digestsha512
Dependencies
Required Nextcloud versions >=33.0.0,<36.0.0
Minimum Integer bits32
PHP>=8.2.0
TimeSister 0.8.1
Release Details
UpdatedOct. 2, 2026, 1:21 p.m.
Changelog
  • App Store: current screenshots (teams in the admin settings, the Mac app's week and the team's capacity). No code changes.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBTCCAu0CAhQ5MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYxMDAyMTIyNTA2WhcNMzcwMTA3MTIyNTA2WjAVMRMwEQYD
VQQDDAp0aW1lc2lzdGVyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
pIgdY1zTI1ijZ+0dxFCrnqRRDx4NJyPi2Uv+S7CFcpdDZSfE4rF40RTCOqnPKDmm
GFX1b3a96FvJ8b53HZx9mb/wqA4DZfIy3qW+RLsIBNwBQdinFYD78SXWiqN6Ezy7
AV+vzZKl3g5QBxKCjyimBzld4PcrQa7H+UvaU51I+N876QNf/dEuVM7pNvzwqSlS
NVxKMYNhRfEmDrs7oddDDQJZ6xXFXBct8jMAUYsk/bl+gN3C7Qj7q4mdYkVNeUYC
MCLFRY+Vu65OTqQja+ircyWTP0BpPxbipnNhfrRgP4p2e1e1svPhvBuFyZ9wb+qP
LQ9BdMHrbCJ6fZ/QzExIPyvwq64IzusKP2jTu2IN0mDTh9r0hvxo4TlqAsfDPuOn
8LaWQ347jSTI211aodR5+F+k752t/1LuqPypj3pMwqDJ1TGTHKHV5lxK01LpDDwh
NxxTwmL7veeShsCkqYcEBE80mL3GDCSTqS072lBly+vkz3CJhgLBn03Foqtn9bBA
oyYbPKsS2naM1CJAEn2b+1jsuNY3A6fWdt8qs+ewHFrt22hbSRWtVwLASIpq+hf5
F/tkVB+beTMRp9ttcA8LiBftETG67Dn4bo26wxXSpWdMFemW3iax2VcLBb/Rszym
AFdXK5Kvpf8B0xBOE2oeAss7VL41+4BAKnjur16ainkCAwEAATANBgkqhkiG9w0B
AQsFAAOCAQEAlS9tWEgqRQeUGNoe+V/ZsNpXmYATepbZJTDnWPToJjyypJVW+V1D
94MnNEa2j1Sjp2ZVsLDzgnU4nt3EAvlMXRv/3ViuRn4JtzEAeL+QinDuN6/qvo2T
X7QneJLXaFC/xTNQiOZJPuQ9/8lu/Ve+IB6gvADdnPzlnkp/CZF//EZHYZBQ28OX
N4p/XdACnNShyUwJkyQ07euusw1YfJlphc+arH9alTEekWhNmR5VYNgpyu/X+4yQ
Cc1z2Pjd8oyjjcjqb6Pnowy9TV0mzxYXsUdBAT/CcNfe6en8G85/87m+dw5JB6c2
eTVpa8nbKAO5D//WsXmsWjPMheU6NkaYlg==
-----END CERTIFICATE-----
SignatureEiNQFyO0IijUHbtqEpRvMeWOHL0XMnaxBuRxoNvCJFuD0omr3CvRYl1qOEzslMhF/qhuKhG7uSvgL/YTQrsDcNkgLVmmjXFH7ainztLFrJXlaxImvXeWtjr0sI2UQV3eFmPuXrndrSetvms5rtAjJf/L6RjgY0yhLV3Z62+hcT/o8W3ANurk407qEGWptsrUVZBm1Vnk0+Et1cXIRs4YX0F9mjqUpbUGL4cz6iX7bct9q++T/4kef705qCgfKM2qKbsUq6Je4i5yfJQG+DcfrCOaf9BTmRjjhudQn/g1zrSw5ueIaZc/pneX9gjhcGeRRxJXwlImApg5v+nTWVOirHuY7Wg8zjRo9f0kZsbWYtbOyi2E70KVR33OAVvJaToaJDukpthqOvO/UD/zOmr7hEcWtJa3V0CnK/Qxg8kCBde8BQNLpMIgXo4vr6Xukn7a3VZDZuKc1h29RNcwfwrYkcUdvmWDyW5lpWPDmfOwNMqOv7ZvLX2Clos7guKYLstvQGLTmwR8UaXAX09RPTn5GMap7PBaqUfk8R1/lcDNZ3sQTI0Nu6WybG0KRBtB7reRex9/+0yIpxKmE+or53MK4QdATkG4jQ6QSN9tYQ5L9hMSnT+ELEq6AGwCIYoDiv27QElB17CH1jGhAjVBWn1ymR/fMwRVeoWvtrLTCgzR3kY=
Signature digestsha512
Dependencies
Required Nextcloud versions >=33.0.0,<36.0.0
Minimum Integer bits32
PHP>=8.2.0
TimeSister 0.8.0
Release Details
UpdatedOct. 2, 2026, 1:12 p.m.
Changelog
  • First release in the Nextcloud App Store, for the beta of the TimeSister Mac app 0.4.0.
  • Contains everything listed below under 0.1.0 to 0.7.6; no further changes. API version 2.
  • Modules (Jobs, Budgets, Clients) need no change here: the clients keep the switches in the settings record (setting/settings, field modules).
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBTCCAu0CAhQ5MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYxMDAyMTIyNTA2WhcNMzcwMTA3MTIyNTA2WjAVMRMwEQYD
VQQDDAp0aW1lc2lzdGVyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
pIgdY1zTI1ijZ+0dxFCrnqRRDx4NJyPi2Uv+S7CFcpdDZSfE4rF40RTCOqnPKDmm
GFX1b3a96FvJ8b53HZx9mb/wqA4DZfIy3qW+RLsIBNwBQdinFYD78SXWiqN6Ezy7
AV+vzZKl3g5QBxKCjyimBzld4PcrQa7H+UvaU51I+N876QNf/dEuVM7pNvzwqSlS
NVxKMYNhRfEmDrs7oddDDQJZ6xXFXBct8jMAUYsk/bl+gN3C7Qj7q4mdYkVNeUYC
MCLFRY+Vu65OTqQja+ircyWTP0BpPxbipnNhfrRgP4p2e1e1svPhvBuFyZ9wb+qP
LQ9BdMHrbCJ6fZ/QzExIPyvwq64IzusKP2jTu2IN0mDTh9r0hvxo4TlqAsfDPuOn
8LaWQ347jSTI211aodR5+F+k752t/1LuqPypj3pMwqDJ1TGTHKHV5lxK01LpDDwh
NxxTwmL7veeShsCkqYcEBE80mL3GDCSTqS072lBly+vkz3CJhgLBn03Foqtn9bBA
oyYbPKsS2naM1CJAEn2b+1jsuNY3A6fWdt8qs+ewHFrt22hbSRWtVwLASIpq+hf5
F/tkVB+beTMRp9ttcA8LiBftETG67Dn4bo26wxXSpWdMFemW3iax2VcLBb/Rszym
AFdXK5Kvpf8B0xBOE2oeAss7VL41+4BAKnjur16ainkCAwEAATANBgkqhkiG9w0B
AQsFAAOCAQEAlS9tWEgqRQeUGNoe+V/ZsNpXmYATepbZJTDnWPToJjyypJVW+V1D
94MnNEa2j1Sjp2ZVsLDzgnU4nt3EAvlMXRv/3ViuRn4JtzEAeL+QinDuN6/qvo2T
X7QneJLXaFC/xTNQiOZJPuQ9/8lu/Ve+IB6gvADdnPzlnkp/CZF//EZHYZBQ28OX
N4p/XdACnNShyUwJkyQ07euusw1YfJlphc+arH9alTEekWhNmR5VYNgpyu/X+4yQ
Cc1z2Pjd8oyjjcjqb6Pnowy9TV0mzxYXsUdBAT/CcNfe6en8G85/87m+dw5JB6c2
eTVpa8nbKAO5D//WsXmsWjPMheU6NkaYlg==
-----END CERTIFICATE-----
SignaturefxoTtsaDyhn0+mem57AJMhKdXsUgeVk7ujCfO3TCT3IzToW37oGPQMRHpTtK5V78iEbv6KtQ250ecXjszghDcmsdpmv0jHyl/k3mKsmTuFWzZxshWQAk2ZAiayhyHBp0SdWyW//KJSEV0Up21ZfI0McRAxQpspuq0/9ictjb5NLouygzmJo6B5BiygCfcdc15htF8lmxPDpkmhedHAGb3KYIWba7OyOasqtikSEIjNiCje+ME6vtC5YVMHSFv2AUmQI+cEzpg89dCmPYULmtSb4LnfDYSWAm5pXWBBAnOKNGvjXU2gTrQ+Sp6YUCDGGAZeh3zpjewm4BECbgqXhQ+N/E14VNKKudqXxBKU830li/8StNjgnUQbUgZf2HqlelyTnUz4trW0OdaOmjRGCQHMbutTWa8ZBJzboaOQy/8cQlF+MDMcu+hj60SyRRa88YJUKUpS3P1ydIiV00719P+XEhLSL3urOnbLZDOhq68k22nhgTDCjL0GHb6Ks2GX5nSL74tD/OekpDakZceir1Z8In1hTwGSLm94J1eWThLVlhVdI5u+x5no6LgOQZxrsJurWxmYI45flfszMARmYyZWgO9jQME+gNXcD5ftUb+uPZ/eVQbcIhPjL+/0a2RShhxkkShE60SI6WSdT+BY3qP+ErSpc3xoXh7fV9O4D9bxw=
Signature digestsha512
Dependencies
Required Nextcloud versions >=33.0.0,<36.0.0
Minimum Integer bits32
PHP>=8.2.0

Nextcloud 33

TimeSister 0.10.2
Release Details
UpdatedOct. 5, 2026, 4:10 p.m.
Changelog

API unchanged (api: 2), only additions; the capability gains privacy_notice: 1.

  • Privacy notice per team. GET /team/privacy?format=html|md gives every member a privacy notice of their team as a download (timesister-privacy-<slug>-<date>.html|md), in the language of the account; the Nextcloud admin gets it for any team with GET /admin/teams/{id}/privacy. The content is read live from the team: members with role, Team Admins, Leads with their projects, the shares matrix (who sees or edits whose time calendar), backup owner, consents, modules switched on, absence categories, vacation calendar, externals (count only, never a feed address). Nine sections: controller and contact, purpose, data and categories, where the data is stored, who has access, backups, retention and deletion with the legal references as a template (ArG 46, ArGV 1 Art. 73, OR 958f, DSG 6/19/25/32, GDPR 5(1)(e)/6(1)(b,c)/13/15/17(3)(b)/30/32), rights of the persons, and the note that it is a template from the team's settings and no legal advice. Empty fields read “[to be completed]”. The HTML is printable and loads nothing from outside; everything foreign is escaped.
  • Record setting/privacy. Team Admins keep the entries like setting/settings: controller {name, address, contact}, privacy_contact, hosting {provider, location}, retention {time_years (5), billing_years (10), note}, law (ch, eu, both; default both), authority. Texts at most 500 characters, years 0–30, otherwise 422. The Nextcloud admin writes it from the admin page through PUT /admin/teams/{id}/privacy with { data }.
  • Admin page: “Edit team” gains the section “Privacy” with these fields and the buttons “Privacy notice (HTML)” and “(Markdown)”.
  • New team from a team ZIP. “New team” takes a team ZIP as a second way: POST /admin/teams/import/preview (without a team) checks the file and names name, short name and the people of the backup; the admin chooses the team group, may change name and short name and maps the people to accounts here; POST /admin/teams/from-zip with { token, name, slug, group, mapping } creates the team and imports into it (merge). A taken short name or group is 409 before anything is created; fails the import, the empty team is removed again and the message says so.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBTCCAu0CAhQ5MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYxMDAyMTIyNTA2WhcNMzcwMTA3MTIyNTA2WjAVMRMwEQYD
VQQDDAp0aW1lc2lzdGVyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
pIgdY1zTI1ijZ+0dxFCrnqRRDx4NJyPi2Uv+S7CFcpdDZSfE4rF40RTCOqnPKDmm
GFX1b3a96FvJ8b53HZx9mb/wqA4DZfIy3qW+RLsIBNwBQdinFYD78SXWiqN6Ezy7
AV+vzZKl3g5QBxKCjyimBzld4PcrQa7H+UvaU51I+N876QNf/dEuVM7pNvzwqSlS
NVxKMYNhRfEmDrs7oddDDQJZ6xXFXBct8jMAUYsk/bl+gN3C7Qj7q4mdYkVNeUYC
MCLFRY+Vu65OTqQja+ircyWTP0BpPxbipnNhfrRgP4p2e1e1svPhvBuFyZ9wb+qP
LQ9BdMHrbCJ6fZ/QzExIPyvwq64IzusKP2jTu2IN0mDTh9r0hvxo4TlqAsfDPuOn
8LaWQ347jSTI211aodR5+F+k752t/1LuqPypj3pMwqDJ1TGTHKHV5lxK01LpDDwh
NxxTwmL7veeShsCkqYcEBE80mL3GDCSTqS072lBly+vkz3CJhgLBn03Foqtn9bBA
oyYbPKsS2naM1CJAEn2b+1jsuNY3A6fWdt8qs+ewHFrt22hbSRWtVwLASIpq+hf5
F/tkVB+beTMRp9ttcA8LiBftETG67Dn4bo26wxXSpWdMFemW3iax2VcLBb/Rszym
AFdXK5Kvpf8B0xBOE2oeAss7VL41+4BAKnjur16ainkCAwEAATANBgkqhkiG9w0B
AQsFAAOCAQEAlS9tWEgqRQeUGNoe+V/ZsNpXmYATepbZJTDnWPToJjyypJVW+V1D
94MnNEa2j1Sjp2ZVsLDzgnU4nt3EAvlMXRv/3ViuRn4JtzEAeL+QinDuN6/qvo2T
X7QneJLXaFC/xTNQiOZJPuQ9/8lu/Ve+IB6gvADdnPzlnkp/CZF//EZHYZBQ28OX
N4p/XdACnNShyUwJkyQ07euusw1YfJlphc+arH9alTEekWhNmR5VYNgpyu/X+4yQ
Cc1z2Pjd8oyjjcjqb6Pnowy9TV0mzxYXsUdBAT/CcNfe6en8G85/87m+dw5JB6c2
eTVpa8nbKAO5D//WsXmsWjPMheU6NkaYlg==
-----END CERTIFICATE-----
SignaturejEQ+HIQc3xd3ofU2+tzm7YjzndBoI24ZaUUlSenemv/oVYRfzvlILprDxlfbmB65Btdc786A0+A2R6aIQvfAzeIa2rsbt2JDz1wto4x/3BAn2KH5P3GqzyGwL0QJvgTcglQkQ1BQOlQbpvuKIMpZ+S/hDY3XF2nelakAKxZGn9emn3uJvYTF5ZeLwKwVVPjosuRV8ibHAkmRdayr3Y+1Poo/38W2c6lUSFGym8NSFC3FHiyk0/DyXyontKV6VD72v5o3IfDC1CqQZ0PCgAaWMgbq6gUgWpO8ZiBaVQ1/U5F9I8yHgWhoL8xUfBCgS3BYChqKFOgDAQojZy/azC4hqbht9NYW02LcPp+jCdKvsLkFYfNSQyeEnWpvvrRpw3qc33zWOoEH38eNAbfb/JOBTu0oba+vvxjwlAjXh3tzmjt2Aep/DrqSNG7meXU3bs03uQ5gnM77d64M5pkpYtkdYLFwYAt9BQV7AlSkSM1x1o1WXz1qvqwQPQfIyJ1RrjW9w/iHFJ+vX/uHd36ivUZd1k6yP90XlCucJyb71w4lHukjhnNpU36sxFpUjxP3MoXTMogalpZtSk/iBENncuJHxipZ8skYtXwbKAFeJgZ3tCHDkGNVVITCuO7QQwaPZP57jeSvqBi3nbefYswiwKf3omYBDwA4i9Q/9cLkFr1DmIU=
Signature digestsha512
Dependencies
Required Nextcloud versions >=33.0.0,<36.0.0
Minimum Integer bits32
PHP>=8.2.0
TimeSister 0.10.0
Release Details
UpdatedOct. 5, 2026, 1:45 p.m.
Changelog

API unchanged (api: 2), only additions; the capability gains team_backup: 1.

  • Team backup as a ZIP. On the admin page, every team has “Back up team (ZIP)” (GET /admin/teams/{id}/export): manifest.json with checksums, team.json (team, members, shares, consents), every record with its history under records/<kind>/<key>.json, status.json, absences.json and a fresh export of every active member's time calendar under calendars/. Person records carry their feed, so the ZIP is confidential (contains_secrets: true).
  • Restore and move. “Restore from ZIP” uploads the ZIP for a preview (POST /admin/teams/{id}/import/preview): the people of the backup, whether their account exists here, and the accounts of this Nextcloud to map to. POST /admin/teams/{id}/import with token, mapping (old account → new account or null for “without account”) and mode merge or replace writes records with history, roles, shares, consents, absences and status in one transaction, puts mapped accounts into the team group and stores the calendars as backups per person (source: "import"), which people fetch in the Mac app under “Old events”. Before importing into a team with content, the server stores a backup of it (protected and with the backup owner under TimeSister Backups/_team/).
  • Limits: ZIP 200 MB, entries 50 MB, 600 MB unpacked, no absolute paths or ..; only Nextcloud admins, write routes with brute-force protection.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBTCCAu0CAhQ5MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYxMDAyMTIyNTA2WhcNMzcwMTA3MTIyNTA2WjAVMRMwEQYD
VQQDDAp0aW1lc2lzdGVyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
pIgdY1zTI1ijZ+0dxFCrnqRRDx4NJyPi2Uv+S7CFcpdDZSfE4rF40RTCOqnPKDmm
GFX1b3a96FvJ8b53HZx9mb/wqA4DZfIy3qW+RLsIBNwBQdinFYD78SXWiqN6Ezy7
AV+vzZKl3g5QBxKCjyimBzld4PcrQa7H+UvaU51I+N876QNf/dEuVM7pNvzwqSlS
NVxKMYNhRfEmDrs7oddDDQJZ6xXFXBct8jMAUYsk/bl+gN3C7Qj7q4mdYkVNeUYC
MCLFRY+Vu65OTqQja+ircyWTP0BpPxbipnNhfrRgP4p2e1e1svPhvBuFyZ9wb+qP
LQ9BdMHrbCJ6fZ/QzExIPyvwq64IzusKP2jTu2IN0mDTh9r0hvxo4TlqAsfDPuOn
8LaWQ347jSTI211aodR5+F+k752t/1LuqPypj3pMwqDJ1TGTHKHV5lxK01LpDDwh
NxxTwmL7veeShsCkqYcEBE80mL3GDCSTqS072lBly+vkz3CJhgLBn03Foqtn9bBA
oyYbPKsS2naM1CJAEn2b+1jsuNY3A6fWdt8qs+ewHFrt22hbSRWtVwLASIpq+hf5
F/tkVB+beTMRp9ttcA8LiBftETG67Dn4bo26wxXSpWdMFemW3iax2VcLBb/Rszym
AFdXK5Kvpf8B0xBOE2oeAss7VL41+4BAKnjur16ainkCAwEAATANBgkqhkiG9w0B
AQsFAAOCAQEAlS9tWEgqRQeUGNoe+V/ZsNpXmYATepbZJTDnWPToJjyypJVW+V1D
94MnNEa2j1Sjp2ZVsLDzgnU4nt3EAvlMXRv/3ViuRn4JtzEAeL+QinDuN6/qvo2T
X7QneJLXaFC/xTNQiOZJPuQ9/8lu/Ve+IB6gvADdnPzlnkp/CZF//EZHYZBQ28OX
N4p/XdACnNShyUwJkyQ07euusw1YfJlphc+arH9alTEekWhNmR5VYNgpyu/X+4yQ
Cc1z2Pjd8oyjjcjqb6Pnowy9TV0mzxYXsUdBAT/CcNfe6en8G85/87m+dw5JB6c2
eTVpa8nbKAO5D//WsXmsWjPMheU6NkaYlg==
-----END CERTIFICATE-----
SignatureHHMb2+31646VtvU23p4RVtZtptGF7MTBZWn2lXr6uhOSVxL1J4sdS4IsVuH2k9e8i0h2vuussVImdxT1exUfmkJ8mUAPcEfu1LyRntkz7JpHE3INPcv2hSh1zZEScmLbNnKv7pIo7xfG9zndgUtBjukr3KL3Kf4hgIFnmmtwD030czbquAJpQZZp76OchTkKR+TQsq/uyREiIKWZNJFoma6rvYa/xs7BhlViJW2fvP1bKujcrK9aqlWk1+Y8XYgdhI7XXnCvxSBdURYkaP2v8rWMgzDuH7ZFTOsQkeqWin17nTzKhY983Q1KnRn+atWuJgzBVmGEYY0zLE2cQKdFDgqCrd1708wsiUxD+yvsVHK+yJGmg+7d8pfrCGFNUWj2f5MSQDpM2DQE43880Q6Jb0g6cO3VMv0KlfECIvKOIPnjLIt1cS3HBWa9E8Bqz+41sNHrkdw/a13xVI05gOv/xdYLaBbO82TelnMbL3u0B29afRKRWfzMFa0gAPg3mtkMhoGNCeMf6adf/RhkHEHWwWgp6ERxCY5s8Q1k4quh3+vM/3dXQ1kl2kuoClwxi4eDQlSCu6gxXKoSj2UTSGwjR+ucs1WfxvTLXt+IodA3lDx3VrMgHH/69HD7QcB3iTgm6WsLS5I/1f2TI8vV8Rxk7u0/i7cACWJyUBbcMwLwH/k=
Signature digestsha512
Dependencies
Required Nextcloud versions >=33.0.0,<36.0.0
Minimum Integer bits32
PHP>=8.2.0
TimeSister 0.9.1
Release Details
UpdatedOct. 5, 2026, 12:07 p.m.
Changelog

Three findings of the security review; API unchanged (api: 2).

  • The vacation calendar stays in the team. vacation_calendar in the settings record is accepted only when owner is a Team Admin of the team and url is a calendar of that owner (…/remote.php/dav/calendars/<owner>/<calendar>/), otherwise 422 invalid – on PUT, in a batch and on restore. The background job checks again (owner still a member, URL still theirs) and skips the team with a warning in the log; before, a Team Admin could point the mirror at any account's calendar.
  • PUT /me/absences: control characters in source_uid, kind, start or end are refused with 400 invalid; in the written events a CR is escaped like a line break and other control characters are dropped. Before, a CR in source_uid made the job rewrite the event on every run.
  • Brute-force protection: every writing route (PUT, POST, DELETE) carries #[BruteForceProtection(action: 'timesister')], and a refused write (403) counts for Nextcloud's throttling.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBTCCAu0CAhQ5MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYxMDAyMTIyNTA2WhcNMzcwMTA3MTIyNTA2WjAVMRMwEQYD
VQQDDAp0aW1lc2lzdGVyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
pIgdY1zTI1ijZ+0dxFCrnqRRDx4NJyPi2Uv+S7CFcpdDZSfE4rF40RTCOqnPKDmm
GFX1b3a96FvJ8b53HZx9mb/wqA4DZfIy3qW+RLsIBNwBQdinFYD78SXWiqN6Ezy7
AV+vzZKl3g5QBxKCjyimBzld4PcrQa7H+UvaU51I+N876QNf/dEuVM7pNvzwqSlS
NVxKMYNhRfEmDrs7oddDDQJZ6xXFXBct8jMAUYsk/bl+gN3C7Qj7q4mdYkVNeUYC
MCLFRY+Vu65OTqQja+ircyWTP0BpPxbipnNhfrRgP4p2e1e1svPhvBuFyZ9wb+qP
LQ9BdMHrbCJ6fZ/QzExIPyvwq64IzusKP2jTu2IN0mDTh9r0hvxo4TlqAsfDPuOn
8LaWQ347jSTI211aodR5+F+k752t/1LuqPypj3pMwqDJ1TGTHKHV5lxK01LpDDwh
NxxTwmL7veeShsCkqYcEBE80mL3GDCSTqS072lBly+vkz3CJhgLBn03Foqtn9bBA
oyYbPKsS2naM1CJAEn2b+1jsuNY3A6fWdt8qs+ewHFrt22hbSRWtVwLASIpq+hf5
F/tkVB+beTMRp9ttcA8LiBftETG67Dn4bo26wxXSpWdMFemW3iax2VcLBb/Rszym
AFdXK5Kvpf8B0xBOE2oeAss7VL41+4BAKnjur16ainkCAwEAATANBgkqhkiG9w0B
AQsFAAOCAQEAlS9tWEgqRQeUGNoe+V/ZsNpXmYATepbZJTDnWPToJjyypJVW+V1D
94MnNEa2j1Sjp2ZVsLDzgnU4nt3EAvlMXRv/3ViuRn4JtzEAeL+QinDuN6/qvo2T
X7QneJLXaFC/xTNQiOZJPuQ9/8lu/Ve+IB6gvADdnPzlnkp/CZF//EZHYZBQ28OX
N4p/XdACnNShyUwJkyQ07euusw1YfJlphc+arH9alTEekWhNmR5VYNgpyu/X+4yQ
Cc1z2Pjd8oyjjcjqb6Pnowy9TV0mzxYXsUdBAT/CcNfe6en8G85/87m+dw5JB6c2
eTVpa8nbKAO5D//WsXmsWjPMheU6NkaYlg==
-----END CERTIFICATE-----
SignatureVWjznXKWd7zrbSgsfEsahCgv6Y7OO6D4ZTWC45Yu8Ym7CJuaRDT4JTaSjSFbBzCj+6TdYN7pilrjaXohW8qB3ASuCJDO1RCVNDwhrYMY8blUg2Xsr4TrmiI5vdL3WRqplGYHtAHll2kfWJKc1eiviODQLbmFhczeQG5EOrBS39nG9hnBkdodn7hLpOrJfVFE1Wegpnh2lE3KIA78M/chg19yBGCeduSJywq0QoWUpk5dxq9Nh+7NDA+aK94Sh5tr/eZcpr2HQocPLwYb2ajDpLIihgbUL0X7XcbIcOZt3ryzavfTfkPaI8kTkgHkXOPHg5QaaODHrgClpG3pSggXHuGTAKv/AVvndpZKrTNAXFGXbF8M6NEYANPcIMvyEOKgT+bihW+4ivzLk6JvjoSjzEgLXeXen1fpJ8Vhw+E5XHTI2v3dtACXKHoWmLi+NbTzL3A2DP9XfOxbgLhPZ8f9XJikov4ZKfOgeGa9X43cLMI1r1R9WWyGMZCoUyOY/B8pmams7mCx4WhN+ersMXg5cFjECtFY+gnag/mJighIJiukJJuPOCGV6npbG0JQy0DBN3ydsl9xuj3O7no/56rfzsFF81fY327mam/qXWV7BWckM975FGuYutr7VFJ90J6PoxBhQJDfK1FNpF9autMc0WJVd5yUpZh/8cjqyhlTQv8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=33.0.0,<36.0.0
Minimum Integer bits32
PHP>=8.2.0
TimeSister 0.9.0
Release Details
UpdatedOct. 5, 2026, 6:31 a.m.
Changelog
  • API unchanged in form (api: 2), only additions; the capability gains absences: 1.
  • The shared vacation calendar. A Team Admin creates the calendar «TimeSister – Vacation» in their own account from the Mac app and shares it: the team group read-only, every Team Admin with write access. The settings record (setting/settings) names it: vacation_calendar: {url, owner}; absence_calendar_kinds says which categories appear (vacation, sickness, parental, civil_service, unpaid; default ["vacation"]).
  • PUT /me/absences: every client reports the complete state of its own absences for this and next year – items: [{source_uid, kind, start, end}], end exclusive, at most 400. The server replaces the person's rows (table ts_absences). A person with vacation_calendar_optout: true in their person record is stored nowhere, and what was there goes.
  • Written by the server: a background job (every 15 minutes) puts the absences of every team with a calendar into the owner's calendar as all-day events «<Category> · Initials Name» with X-TIMESISTER-PERSON, X-TIMESISTER-QUELLE and X-TIMESISTER-ART, over the public calendar API (ICreateFromString, no Sabre). Absences that are gone are written again with STATUS:CANCELLED – the API cannot delete; a Team Admin's Mac tidies them up. Events without the marks are never touched.
  • Migration: table ts_absences.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBTCCAu0CAhQ5MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYxMDAyMTIyNTA2WhcNMzcwMTA3MTIyNTA2WjAVMRMwEQYD
VQQDDAp0aW1lc2lzdGVyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
pIgdY1zTI1ijZ+0dxFCrnqRRDx4NJyPi2Uv+S7CFcpdDZSfE4rF40RTCOqnPKDmm
GFX1b3a96FvJ8b53HZx9mb/wqA4DZfIy3qW+RLsIBNwBQdinFYD78SXWiqN6Ezy7
AV+vzZKl3g5QBxKCjyimBzld4PcrQa7H+UvaU51I+N876QNf/dEuVM7pNvzwqSlS
NVxKMYNhRfEmDrs7oddDDQJZ6xXFXBct8jMAUYsk/bl+gN3C7Qj7q4mdYkVNeUYC
MCLFRY+Vu65OTqQja+ircyWTP0BpPxbipnNhfrRgP4p2e1e1svPhvBuFyZ9wb+qP
LQ9BdMHrbCJ6fZ/QzExIPyvwq64IzusKP2jTu2IN0mDTh9r0hvxo4TlqAsfDPuOn
8LaWQ347jSTI211aodR5+F+k752t/1LuqPypj3pMwqDJ1TGTHKHV5lxK01LpDDwh
NxxTwmL7veeShsCkqYcEBE80mL3GDCSTqS072lBly+vkz3CJhgLBn03Foqtn9bBA
oyYbPKsS2naM1CJAEn2b+1jsuNY3A6fWdt8qs+ewHFrt22hbSRWtVwLASIpq+hf5
F/tkVB+beTMRp9ttcA8LiBftETG67Dn4bo26wxXSpWdMFemW3iax2VcLBb/Rszym
AFdXK5Kvpf8B0xBOE2oeAss7VL41+4BAKnjur16ainkCAwEAATANBgkqhkiG9w0B
AQsFAAOCAQEAlS9tWEgqRQeUGNoe+V/ZsNpXmYATepbZJTDnWPToJjyypJVW+V1D
94MnNEa2j1Sjp2ZVsLDzgnU4nt3EAvlMXRv/3ViuRn4JtzEAeL+QinDuN6/qvo2T
X7QneJLXaFC/xTNQiOZJPuQ9/8lu/Ve+IB6gvADdnPzlnkp/CZF//EZHYZBQ28OX
N4p/XdACnNShyUwJkyQ07euusw1YfJlphc+arH9alTEekWhNmR5VYNgpyu/X+4yQ
Cc1z2Pjd8oyjjcjqb6Pnowy9TV0mzxYXsUdBAT/CcNfe6en8G85/87m+dw5JB6c2
eTVpa8nbKAO5D//WsXmsWjPMheU6NkaYlg==
-----END CERTIFICATE-----
SignatureA4IbD9Dc8QchZ8c6pxbFFoCb60KS5d3dq8mXXz4kaNRbbVmV+6hoQHw8BrbexVVNvBzZWW4ITw2+7CnsCYCx097pgO9u9Bjpr3aQi/f8+0pZfa6nULVcYGLeivNmLaZs/pWBe0ELeZVsLyLuMmf70jepG8gzkflD9efgdHu9zUrv05wr1ya5UjY6Pc2mkstM8dEgc+kE/0+FfWNuY4j7S2cwkfivJL4oSiNWWqRCzK5mCNKM1G+zr5bSpFz46ycVy4UXr1tX4m8g1Zt3Ig+1uR3pmXo+8pbVMX2SJ3vw/iFB0MSxl902rw+vk1tbbD4b6X/gsEMZNuMdprb/LI+QfQW0bKWM54jbNWW08KsA+hSDbXFt9ecdHDDoKIpPCGluzyu8UYNhSqLiQ21Cyt+LgzMUB8x82gWj7cDIJqSCkGlkQRL2ypPvVcj3eFe6eOXBXRiqRa3EvTy7UylTo/o81jasyiCweQAqW2nY6kM1HqjGRMQMHl1FhiNAEIDOrjvno5C2WdXY9xfuXgrhIngpWyOF6VjsIwXJzBRS7cEo8/HNhH8L4Iuati6HsaJLsoJ060iBFfuqponJXSluxn6uIyEddvVWKGeoy9FLZzYjMm5eKWvCo9SxoXy9nXNQcmA9bKwKQwT2fwc7fX40+h4sDhXlDQe2sLw7aS4QETVEg4Y=
Signature digestsha512
Dependencies
Required Nextcloud versions >=33.0.0,<36.0.0
Minimum Integer bits32
PHP>=8.2.0
TimeSister 0.8.3
Release Details
UpdatedOct. 2, 2026, 1:58 p.m.
Changelog
  • Admin settings, new team: the short name is suggested from the name (lowercase, umlauts spelled out, hyphens), typing turns capitals and spaces into the allowed form, and a hint names the rule (lowercase letters, digits, hyphens, 2 to 32 characters). Before, the form only said “fill in this field”.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBTCCAu0CAhQ5MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYxMDAyMTIyNTA2WhcNMzcwMTA3MTIyNTA2WjAVMRMwEQYD
VQQDDAp0aW1lc2lzdGVyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
pIgdY1zTI1ijZ+0dxFCrnqRRDx4NJyPi2Uv+S7CFcpdDZSfE4rF40RTCOqnPKDmm
GFX1b3a96FvJ8b53HZx9mb/wqA4DZfIy3qW+RLsIBNwBQdinFYD78SXWiqN6Ezy7
AV+vzZKl3g5QBxKCjyimBzld4PcrQa7H+UvaU51I+N876QNf/dEuVM7pNvzwqSlS
NVxKMYNhRfEmDrs7oddDDQJZ6xXFXBct8jMAUYsk/bl+gN3C7Qj7q4mdYkVNeUYC
MCLFRY+Vu65OTqQja+ircyWTP0BpPxbipnNhfrRgP4p2e1e1svPhvBuFyZ9wb+qP
LQ9BdMHrbCJ6fZ/QzExIPyvwq64IzusKP2jTu2IN0mDTh9r0hvxo4TlqAsfDPuOn
8LaWQ347jSTI211aodR5+F+k752t/1LuqPypj3pMwqDJ1TGTHKHV5lxK01LpDDwh
NxxTwmL7veeShsCkqYcEBE80mL3GDCSTqS072lBly+vkz3CJhgLBn03Foqtn9bBA
oyYbPKsS2naM1CJAEn2b+1jsuNY3A6fWdt8qs+ewHFrt22hbSRWtVwLASIpq+hf5
F/tkVB+beTMRp9ttcA8LiBftETG67Dn4bo26wxXSpWdMFemW3iax2VcLBb/Rszym
AFdXK5Kvpf8B0xBOE2oeAss7VL41+4BAKnjur16ainkCAwEAATANBgkqhkiG9w0B
AQsFAAOCAQEAlS9tWEgqRQeUGNoe+V/ZsNpXmYATepbZJTDnWPToJjyypJVW+V1D
94MnNEa2j1Sjp2ZVsLDzgnU4nt3EAvlMXRv/3ViuRn4JtzEAeL+QinDuN6/qvo2T
X7QneJLXaFC/xTNQiOZJPuQ9/8lu/Ve+IB6gvADdnPzlnkp/CZF//EZHYZBQ28OX
N4p/XdACnNShyUwJkyQ07euusw1YfJlphc+arH9alTEekWhNmR5VYNgpyu/X+4yQ
Cc1z2Pjd8oyjjcjqb6Pnowy9TV0mzxYXsUdBAT/CcNfe6en8G85/87m+dw5JB6c2
eTVpa8nbKAO5D//WsXmsWjPMheU6NkaYlg==
-----END CERTIFICATE-----
SignatureGRW9C98GhrKmeQUKnAaTPGPg18LlPcFtG8goKnnN2hebOjtVdbU7c6DOdvHS/Don9It0AG9dMsJ1qUSsW8/19lfMfAZBPi6cCFH0X0M7BVna+uYJQqTjcuHTW7y+XX47/awTRfeTcQyzEUoEJGTuKxGwWp+OHDy+5nwdG1zIHptnbAKPzMvlz3757OlK3dKZy9KWKjDIoTfFQ/MhhtmdmsJ2xc3YAeFW6zXuZxB/klHGYgfT6Ql1lc0tgIt91sZ74LJocI9Hfop6SSuWdzjRaYUk2MCgGZsTiwu1JDF6hCnusFvRJWamonjR17HZmRjt2RCrHewDYsXEUIB1O3tO2Zc+JHP9XbLVg6EPCAVIF1p9485Zcome1ziLpFo6j5cNBE/VoA57NJ/5ho9w+kjZHNHgm5uzVxqiMA+jxqkBK7FDO3Kma+zgt67/0qKhbvfiTmWXQoOdaek+mtFeYMCr/yvUcx9EJo568timCcTueptdmB+eYfxzUF3aQNF+mxKi5VbP6/7Ds5dJtcNA2aZia0eDUMxRXZa1hSWdWfO40ytFwHgxac3atulz/qUBWKz2Z34YKXl6aShMnQykTz/uhaZ/fP333Yp+66sl6Yc4nKi6PTLxPFiyTSK09/b6ZmOD9tYFXd2IBnvNBnF352goK6S1R3Ryd9YeWs/DcsbZhnA=
Signature digestsha512
Dependencies
Required Nextcloud versions >=33.0.0,<36.0.0
Minimum Integer bits32
PHP>=8.2.0
TimeSister 0.8.2
Release Details
UpdatedOct. 2, 2026, 1:39 p.m.
Changelog
  • App Store: the screenshots now come from bias.city/timesister. No code changes.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBTCCAu0CAhQ5MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYxMDAyMTIyNTA2WhcNMzcwMTA3MTIyNTA2WjAVMRMwEQYD
VQQDDAp0aW1lc2lzdGVyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
pIgdY1zTI1ijZ+0dxFCrnqRRDx4NJyPi2Uv+S7CFcpdDZSfE4rF40RTCOqnPKDmm
GFX1b3a96FvJ8b53HZx9mb/wqA4DZfIy3qW+RLsIBNwBQdinFYD78SXWiqN6Ezy7
AV+vzZKl3g5QBxKCjyimBzld4PcrQa7H+UvaU51I+N876QNf/dEuVM7pNvzwqSlS
NVxKMYNhRfEmDrs7oddDDQJZ6xXFXBct8jMAUYsk/bl+gN3C7Qj7q4mdYkVNeUYC
MCLFRY+Vu65OTqQja+ircyWTP0BpPxbipnNhfrRgP4p2e1e1svPhvBuFyZ9wb+qP
LQ9BdMHrbCJ6fZ/QzExIPyvwq64IzusKP2jTu2IN0mDTh9r0hvxo4TlqAsfDPuOn
8LaWQ347jSTI211aodR5+F+k752t/1LuqPypj3pMwqDJ1TGTHKHV5lxK01LpDDwh
NxxTwmL7veeShsCkqYcEBE80mL3GDCSTqS072lBly+vkz3CJhgLBn03Foqtn9bBA
oyYbPKsS2naM1CJAEn2b+1jsuNY3A6fWdt8qs+ewHFrt22hbSRWtVwLASIpq+hf5
F/tkVB+beTMRp9ttcA8LiBftETG67Dn4bo26wxXSpWdMFemW3iax2VcLBb/Rszym
AFdXK5Kvpf8B0xBOE2oeAss7VL41+4BAKnjur16ainkCAwEAATANBgkqhkiG9w0B
AQsFAAOCAQEAlS9tWEgqRQeUGNoe+V/ZsNpXmYATepbZJTDnWPToJjyypJVW+V1D
94MnNEa2j1Sjp2ZVsLDzgnU4nt3EAvlMXRv/3ViuRn4JtzEAeL+QinDuN6/qvo2T
X7QneJLXaFC/xTNQiOZJPuQ9/8lu/Ve+IB6gvADdnPzlnkp/CZF//EZHYZBQ28OX
N4p/XdACnNShyUwJkyQ07euusw1YfJlphc+arH9alTEekWhNmR5VYNgpyu/X+4yQ
Cc1z2Pjd8oyjjcjqb6Pnowy9TV0mzxYXsUdBAT/CcNfe6en8G85/87m+dw5JB6c2
eTVpa8nbKAO5D//WsXmsWjPMheU6NkaYlg==
-----END CERTIFICATE-----
SignatureATIAr4qih8sGO+zuFwWiW15at0VtQ4l8zGN+vqelMy+eekzj+Vc4NqUW1CamcgPKiYCgU9jBSg4Zvkdyddyhn4kq70lKXsqrNGm9bNk+Jz7ZAzSHjoFFy8nAojlVFbP1Dqe0JstFE+q0oLYb2i5mK/5+xjW0pYhV3tqqwUDJWrYl1g636B3QuNsmcVz4lj5dVu1yzNjLSyYh9ArVfJDQEh0sRz/YWhnKMo4F4BYOtJ8VZfxmS2QvdjcBoyKXLiOVI79i5vTpVoB/yYFbJcsmiYqAaVQkrSvOB6dbbYUZg2qUORkPBHq/6Mlxr3Pvzh2ezPxZLNImfUwW7sUc541RbYPpx8uZlKLfPitUz9wD7D33Qj8AqXEnANrRQzB/9fhN7H/xX4QGyHZ8PNDgng2Rh3DfXAYNMAvfie2mYzzbiJbenORkNZ++W+52nVwUaUj2ngPVYl0hHsEtDUH3SnWX8IJlPLhKp0EBOnGBXUdYUtSUUYRjWEeK97F/mIJ+X5Orm6Tp3OXknW1yBeMk1m9x0T+h5Qdg3eqxdX2erFpoTIIBSuT0C9KEe4F19LPiz6lCLrU4ZbeB12XecrZQWvn6YUA17LmzD1TXgg2deMR27+M4c8uTi6hf9RmZIfKScuJzRdkJO3jJEZws/Tz5Mab18wKtAWi+4MuHRnm1kjSpnoo=
Signature digestsha512
Dependencies
Required Nextcloud versions >=33.0.0,<36.0.0
Minimum Integer bits32
PHP>=8.2.0
TimeSister 0.8.1
Release Details
UpdatedOct. 2, 2026, 1:21 p.m.
Changelog
  • App Store: current screenshots (teams in the admin settings, the Mac app's week and the team's capacity). No code changes.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBTCCAu0CAhQ5MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYxMDAyMTIyNTA2WhcNMzcwMTA3MTIyNTA2WjAVMRMwEQYD
VQQDDAp0aW1lc2lzdGVyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
pIgdY1zTI1ijZ+0dxFCrnqRRDx4NJyPi2Uv+S7CFcpdDZSfE4rF40RTCOqnPKDmm
GFX1b3a96FvJ8b53HZx9mb/wqA4DZfIy3qW+RLsIBNwBQdinFYD78SXWiqN6Ezy7
AV+vzZKl3g5QBxKCjyimBzld4PcrQa7H+UvaU51I+N876QNf/dEuVM7pNvzwqSlS
NVxKMYNhRfEmDrs7oddDDQJZ6xXFXBct8jMAUYsk/bl+gN3C7Qj7q4mdYkVNeUYC
MCLFRY+Vu65OTqQja+ircyWTP0BpPxbipnNhfrRgP4p2e1e1svPhvBuFyZ9wb+qP
LQ9BdMHrbCJ6fZ/QzExIPyvwq64IzusKP2jTu2IN0mDTh9r0hvxo4TlqAsfDPuOn
8LaWQ347jSTI211aodR5+F+k752t/1LuqPypj3pMwqDJ1TGTHKHV5lxK01LpDDwh
NxxTwmL7veeShsCkqYcEBE80mL3GDCSTqS072lBly+vkz3CJhgLBn03Foqtn9bBA
oyYbPKsS2naM1CJAEn2b+1jsuNY3A6fWdt8qs+ewHFrt22hbSRWtVwLASIpq+hf5
F/tkVB+beTMRp9ttcA8LiBftETG67Dn4bo26wxXSpWdMFemW3iax2VcLBb/Rszym
AFdXK5Kvpf8B0xBOE2oeAss7VL41+4BAKnjur16ainkCAwEAATANBgkqhkiG9w0B
AQsFAAOCAQEAlS9tWEgqRQeUGNoe+V/ZsNpXmYATepbZJTDnWPToJjyypJVW+V1D
94MnNEa2j1Sjp2ZVsLDzgnU4nt3EAvlMXRv/3ViuRn4JtzEAeL+QinDuN6/qvo2T
X7QneJLXaFC/xTNQiOZJPuQ9/8lu/Ve+IB6gvADdnPzlnkp/CZF//EZHYZBQ28OX
N4p/XdACnNShyUwJkyQ07euusw1YfJlphc+arH9alTEekWhNmR5VYNgpyu/X+4yQ
Cc1z2Pjd8oyjjcjqb6Pnowy9TV0mzxYXsUdBAT/CcNfe6en8G85/87m+dw5JB6c2
eTVpa8nbKAO5D//WsXmsWjPMheU6NkaYlg==
-----END CERTIFICATE-----
SignatureEiNQFyO0IijUHbtqEpRvMeWOHL0XMnaxBuRxoNvCJFuD0omr3CvRYl1qOEzslMhF/qhuKhG7uSvgL/YTQrsDcNkgLVmmjXFH7ainztLFrJXlaxImvXeWtjr0sI2UQV3eFmPuXrndrSetvms5rtAjJf/L6RjgY0yhLV3Z62+hcT/o8W3ANurk407qEGWptsrUVZBm1Vnk0+Et1cXIRs4YX0F9mjqUpbUGL4cz6iX7bct9q++T/4kef705qCgfKM2qKbsUq6Je4i5yfJQG+DcfrCOaf9BTmRjjhudQn/g1zrSw5ueIaZc/pneX9gjhcGeRRxJXwlImApg5v+nTWVOirHuY7Wg8zjRo9f0kZsbWYtbOyi2E70KVR33OAVvJaToaJDukpthqOvO/UD/zOmr7hEcWtJa3V0CnK/Qxg8kCBde8BQNLpMIgXo4vr6Xukn7a3VZDZuKc1h29RNcwfwrYkcUdvmWDyW5lpWPDmfOwNMqOv7ZvLX2Clos7guKYLstvQGLTmwR8UaXAX09RPTn5GMap7PBaqUfk8R1/lcDNZ3sQTI0Nu6WybG0KRBtB7reRex9/+0yIpxKmE+or53MK4QdATkG4jQ6QSN9tYQ5L9hMSnT+ELEq6AGwCIYoDiv27QElB17CH1jGhAjVBWn1ymR/fMwRVeoWvtrLTCgzR3kY=
Signature digestsha512
Dependencies
Required Nextcloud versions >=33.0.0,<36.0.0
Minimum Integer bits32
PHP>=8.2.0
TimeSister 0.8.0
Release Details
UpdatedOct. 2, 2026, 1:12 p.m.
Changelog
  • First release in the Nextcloud App Store, for the beta of the TimeSister Mac app 0.4.0.
  • Contains everything listed below under 0.1.0 to 0.7.6; no further changes. API version 2.
  • Modules (Jobs, Budgets, Clients) need no change here: the clients keep the switches in the settings record (setting/settings, field modules).
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBTCCAu0CAhQ5MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYxMDAyMTIyNTA2WhcNMzcwMTA3MTIyNTA2WjAVMRMwEQYD
VQQDDAp0aW1lc2lzdGVyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
pIgdY1zTI1ijZ+0dxFCrnqRRDx4NJyPi2Uv+S7CFcpdDZSfE4rF40RTCOqnPKDmm
GFX1b3a96FvJ8b53HZx9mb/wqA4DZfIy3qW+RLsIBNwBQdinFYD78SXWiqN6Ezy7
AV+vzZKl3g5QBxKCjyimBzld4PcrQa7H+UvaU51I+N876QNf/dEuVM7pNvzwqSlS
NVxKMYNhRfEmDrs7oddDDQJZ6xXFXBct8jMAUYsk/bl+gN3C7Qj7q4mdYkVNeUYC
MCLFRY+Vu65OTqQja+ircyWTP0BpPxbipnNhfrRgP4p2e1e1svPhvBuFyZ9wb+qP
LQ9BdMHrbCJ6fZ/QzExIPyvwq64IzusKP2jTu2IN0mDTh9r0hvxo4TlqAsfDPuOn
8LaWQ347jSTI211aodR5+F+k752t/1LuqPypj3pMwqDJ1TGTHKHV5lxK01LpDDwh
NxxTwmL7veeShsCkqYcEBE80mL3GDCSTqS072lBly+vkz3CJhgLBn03Foqtn9bBA
oyYbPKsS2naM1CJAEn2b+1jsuNY3A6fWdt8qs+ewHFrt22hbSRWtVwLASIpq+hf5
F/tkVB+beTMRp9ttcA8LiBftETG67Dn4bo26wxXSpWdMFemW3iax2VcLBb/Rszym
AFdXK5Kvpf8B0xBOE2oeAss7VL41+4BAKnjur16ainkCAwEAATANBgkqhkiG9w0B
AQsFAAOCAQEAlS9tWEgqRQeUGNoe+V/ZsNpXmYATepbZJTDnWPToJjyypJVW+V1D
94MnNEa2j1Sjp2ZVsLDzgnU4nt3EAvlMXRv/3ViuRn4JtzEAeL+QinDuN6/qvo2T
X7QneJLXaFC/xTNQiOZJPuQ9/8lu/Ve+IB6gvADdnPzlnkp/CZF//EZHYZBQ28OX
N4p/XdACnNShyUwJkyQ07euusw1YfJlphc+arH9alTEekWhNmR5VYNgpyu/X+4yQ
Cc1z2Pjd8oyjjcjqb6Pnowy9TV0mzxYXsUdBAT/CcNfe6en8G85/87m+dw5JB6c2
eTVpa8nbKAO5D//WsXmsWjPMheU6NkaYlg==
-----END CERTIFICATE-----
SignaturefxoTtsaDyhn0+mem57AJMhKdXsUgeVk7ujCfO3TCT3IzToW37oGPQMRHpTtK5V78iEbv6KtQ250ecXjszghDcmsdpmv0jHyl/k3mKsmTuFWzZxshWQAk2ZAiayhyHBp0SdWyW//KJSEV0Up21ZfI0McRAxQpspuq0/9ictjb5NLouygzmJo6B5BiygCfcdc15htF8lmxPDpkmhedHAGb3KYIWba7OyOasqtikSEIjNiCje+ME6vtC5YVMHSFv2AUmQI+cEzpg89dCmPYULmtSb4LnfDYSWAm5pXWBBAnOKNGvjXU2gTrQ+Sp6YUCDGGAZeh3zpjewm4BECbgqXhQ+N/E14VNKKudqXxBKU830li/8StNjgnUQbUgZf2HqlelyTnUz4trW0OdaOmjRGCQHMbutTWa8ZBJzboaOQy/8cQlF+MDMcu+hj60SyRRa88YJUKUpS3P1ydIiV00719P+XEhLSL3urOnbLZDOhq68k22nhgTDCjL0GHb6Ks2GX5nSL74tD/OekpDakZceir1Z8In1hTwGSLm94J1eWThLVlhVdI5u+x5no6LgOQZxrsJurWxmYI45flfszMARmYyZWgO9jQME+gNXcD5ftUb+uPZ/eVQbcIhPjL+/0a2RShhxkkShE60SI6WSdT+BY3qP+ErSpc3xoXh7fV9O4D9bxw=
Signature digestsha512
Dependencies
Required Nextcloud versions >=33.0.0,<36.0.0
Minimum Integer bits32
PHP>=8.2.0