======================================= Nextcloud for CalDAV & CardDAV ======================================= Host with FQDN = joy and bliss Host without FQDN = endless pain and suffering ======================================= occ command line (as www or root) --------------------------------------- # help occ # status occ status # upgrade after downloading new release package and before completing upgrade occ upgrade -v occ setupchecks # apps occ app:list occ app:disable bruteforcesettings occ app:enable bruteforcesettings # reset - login page error / too many failed attempts occ security:bruteforce:attempts ipaddress occ security:bruteforce:reset ipaddress # maintenance mode on occ maintenance:mode --on # maintenance mode off occ maintenance:mode --off # group commands occ group:list occ group:info groupname occ group:add groupname occ group:delete groupname occ group:adduser groupname username occ group:removeuser groupname username # user commands occ user:add --display-name="User Name" --group="group_name" --group="another_group" username occ user:delete username occ user:resetpassword username # user info occ user:list occ user:report occ user:setting username occ user:info username occ user:lastseen username occ user:setting username occ user:setting username settings email occ user:setting username settings email "username@domain.com" occ user:setting username settings email --delete # calendar occ dav:list-calendars username occ dav:create-calendar username calendarname occ dav:delete-calendar -f username calendarname occ dav:move-calendar calendarname username otheruser # addressbook contacts occ dav:create-addressbook username addressbookname # trash occ trashbin:cleanup username occ trashbin:cleanup --all-users # disable trash occ config:app:set dav calendarRetentionObligation --value=0 ======================================= use curl --------------------------------------- # add user curl -u "username:password" -d userid="adduser" -d password="addpass" -d displayName="First Last" -H "OCS-APIRequest: true" -X POST "https://example.com/ocs/v1.php/dav/cloud/users" # delete user curl -u "username:password" -H "OCS-APIRequest: true" -X DELETE "https://example.com/ocs/v1.php/dav/cloud/users/username" # create calendar curl -u "username:password" -H "Content-Type: application/xml" -X MKCALENDAR "https://example.com/remote.php/dav/calendars/username/calendarname" # change calendar displayname and color curl -u "username:password" -H "Content-Type: application/xml" -X PROPPATCH "https://example.com/remote.php/dav/calendars/username/calendarname" -d 'THE DISPLAY NAME YOU WANT#ff0000' # create calendar alternate try if MKCALENDAR fails curl -u "username:password" -H "Content-Type: application/xml" -X MKCOL "https://example.com/remote.php/dav/calendars/username/calendarname" # delete calendar curl -u "username:password" -X DELETE https://example.com/remote.php/dav/calendars/username/calendarname # add/update ics event curl -u "username:password" -H "Content-Type: text/calendar; charset=utf-8" --data-binary @event.ics -X PUT "https://examaple.com/remote.php/dav/calendars/username/calendarname/eventuid.ics" # delete ics event curl -u "username:password" -X DELETE https://example.com/remote.php/dav/calendars/username/calendarname/eventuid.ics # get list of calendars of user curl -u "username:password" -H "Depth: 1" -X PROPFIND https://example.com/remote.php/dav/calendars/username # get list of ics events in calendar curl -u "username:password" -H "Depth: 1" -H "Prefer: return-minimal" -X PROPFIND https://example.com/remote.php/dav/calendars/username/calendarname # get ics event curl -u "username:password" -X GET https://example.com/remote.php/dav/calendars/username/calendarname/eventuid.ics # create address book curl -u "username:password" -X MKCOL https://example.com/remote.php/dav/addressbooks/username/addressbookname # delete address book curl -u "username:password" -X DELETE https://example.com/remote.php/dav/addressbooks/username/addressbookname # get list of address books of user curl -u username:password -X PROPFIND https://example.com/remote.php/dav/remote.php/dav/addressbooks/username # add/upate vcard curl -u "username:password" -T /path/to/vcard.vcf -X PUT https://example.com/remote.php/dav/addressbooks/username/addressbookname/vcard.vcf # delete vcard curl -u "username:password" -X DELETE https://example.com/remote.php/dav/addressbooks/username/addressbookname/vcard.vcf ======================================= php calendar insert/update ics event --------------------------------------- ======================================= php calendar delete ics event ---------------------------------------