Zulu Deleting Events
Can I prevent user from deleting records from iCal?
Absolutely. Since Zulu respects access privileges you're likely already preventing deletions using FileMaker's access privileges. Note that records deleted in iCal aren't actually deleted unless you take some action on the server... more below.
How are deletes handled?
When you delete an event in FileMake the event is, of course, deleted. When iCal next refreshes, the event will disappear from iCal. If you delete an event in iCal, the event is tagged with a 1 in the field "zulu_DELETED" in FileMaker. Once tagged, the event won't show up in iCal any more. Zulu does not actually delete the FileMaker record, but you can: see "cleaning up deleted records" below.
Running a pre-delete script
If your solution's business logic requires that actions be taken before an event is deleted, Zulu will run a script called "Zulu_PreDelete" before it tags any event with a 1 in the "zulu_DELETED" field. This script is blank when you add it to your solution, but you can add business logic here as you see fit. Just be sure that your script steps are supported to run on FileMaker Web Publishing.
Cleaning up "deleted" records
If you'd like to remove the records "deleted" in iCal from your FileMaker table, you can periodically delete them by hand, searching for records with a 1 in the field "zulu_DELETED" and deleting the resulting found set. A more automated (and more reliable) solution, is to create a FileMaker Server schedule running a script to do the same thing.
Note
iCal can be set to "Delete events older than 30 days" and this will place a 1 in the "zulu_DELETED" field for every record as it crosses 30 days old. Cool? Inconvenient? You decide, but it is something to be aware of and possibly as setting to change in iCal. Remember, if ANY user connects with this setting in place and they can edit the record, this field will get flagged.